c3d2-web/content/static/datenspuren/2012/fahrplan/attachments/2202_slides.html

442 lines
408 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>BitTorrent Basics</title>
<!-- Slidy: http://www.w3.org/Talks/Tools/Slidy2/ -->
<link rel="stylesheet" type="text/css" media="screen, projection, print" href="data:text/css;base64,Lyogc2xpZHkuY3NzCgogICBDb3B5cmlnaHQgKGMpIDIwMDUtMjAxMCBXM0MgKE1JVCwgRVJDSU0sIEtlaW8pLCBBbGwgUmlnaHRzIFJlc2VydmVkLgogICBXM0MgbGlhYmlsaXR5LCB0cmFkZW1hcmssIGRvY3VtZW50IHVzZSBhbmQgc29mdHdhcmUgbGljZW5zaW5nCiAgIHJ1bGVzIGFwcGx5LCBzZWU6CgogICBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1kb2N1bWVudHMKICAgaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC9jb3B5cmlnaHQtc29mdHdhcmUKKi8KYm9keQp7CiAgbWFyZ2luOiAwIDAgMCAwOwogIHBhZGRpbmc6IDAgMCAwIDA7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIGNvbG9yOiBibGFjazsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICBmb250LWZhbWlseTogIkdpbGwgU2FucyBNVCIsICJHaWxsIFNhbnMiLCBHaWxsU2Fucywgc2Fucy1zZXJpZjsKICBmb250LXNpemU6IDE0cHQ7Cn0KCmRpdi50b29sYmFyIHsKICBwb3NpdGlvbjogZml4ZWQ7IHotaW5kZXg6IDIwMDsKICB0b3A6IGF1dG87IGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7CiAgaGVpZ2h0OiAxLjJlbTsgdGV4dC1hbGlnbjogcmlnaHQ7CiAgcGFkZGluZy1sZWZ0OiAxZW07CiAgcGFkZGluZy1yaWdodDogMWVtOyAKICBmb250LXNpemU6IDYwJTsKICBjb2xvcjogcmVkOwogIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAsMjQwLDI0MCk7CiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYigxODAsMTgwLDE4MCk7Cn0KCmRpdi50b29sYmFyIHNwYW4uY29weXJpZ2h0IHsKICBjb2xvcjogYmxhY2s7CiAgbWFyZ2luLWxlZnQ6IDAuNWVtOwp9CgpkaXYuaW5pdGlhbF9wcm9tcHQgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiAxMDAwOwogIGJvdHRvbTogMS4yZW07CiAgd2lkdGg6IDEwMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMCwyMDAsMjAwKTsKICBvcGFjaXR5OiAwLjM1OwogIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDAsMjAwLDIwMCwgMC4zNSk7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgpkaXYuaW5pdGlhbF9wcm9tcHQgcC5oZWxwIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmRpdi5pbml0aWFsX3Byb21wdCBwLmNsb3NlIHsKICB0ZXh0LWFsaWduOiByaWdodDsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCmRpdi5zbGlkeV90b2MgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiAzMDA7CiAgd2lkdGg6IDYwJTsKICBtYXgtd2lkdGg6IDMwZW07CiAgaGVpZ2h0OiAzMGVtOwogIG92ZXJmbG93OiBhdXRvOwogIHRvcDogYXV0bzsKICByaWdodDogYXV0bzsKICBsZWZ0OiA0ZW07CiAgYm90dG9tOiA0ZW07CiAgcGFkZGluZzogMWVtOwogIGJhY2tncm91bmQ6IHJnYigyNDAsMjQwLDI0MCk7CiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICBib3JkZXItd2lkdGg6IDJweDsKICBmb250LXNpemU6IDYwJTsKfQoKZGl2LnNsaWR5X3RvYyAudG9jX2hlYWRpbmcgewogIHRleHQtYWxpZ246IGNlbnRlcjsKICB3aWR0aDogMTAwJTsKICBtYXJnaW46IDA7CiAgbWFyZ2luLWJvdHRvbTogMWVtOwogIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOwogIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigxODAsMTgwLDE4MCk7CiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4Owp9CgpkaXYuc2xpZGUgewogIHotaW5kZXg6IDIwOwogIG1hcmdpbjogMCAwIDAgMDsKICBwYWRkaW5nLXRvcDogMDsKICBwYWRkaW5nLWJvdHRvbTogMDsKICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgcGFkZGluZy1yaWdodDogMjBweDsKICBib3JkZXItd2lkdGg6IDA7CiAgY2xlYXI6IGJvdGg7CiAgdG9wOiAwOwogIGJvdHRvbTogMDsKICBsZWZ0OiAwOwogIHJpZ2h0OiAwOwogIGxpbmUtaGVpZ2h0OiAxMjAlOwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Owp9CgpkaXYuYmFja2dyb3VuZCB7CiAgZGlzcGxheTogbm9uZTsKfQoKZGl2LmhhbmRvdXQgewogIG1hcmdpbi1sZWZ0OiAyMHB4OwogIG1hcmdpbi1yaWdodDogMjBweDsKfQoKZGl2LnNsaWRlLnRpdGxlcGFnZSB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgpkaXYuc2xpZGUudGl0bGVwYWdlIGgxIHsKICBwYWRkaW5nLXRvcDogMTAlOwogIG1hcmdpbi1yaWdodDogMDsKfQoKZGl2LnNsaWRlIGgxIHsKICBwYWRkaW5nLWxlZnQ6IDA7CiAgcGFkZGluZy1yaWdodDogMjBwdDsKICBwYWRkaW5nLXRvcDogNHB0OwogIHBhZGRpbmctYm90dG9tOiA0cHQ7CiAgbWFyZ2luLXRvcDogMDsKICBtYXJnaW4tbGVmdDogMDsKICBtYXJnaW4tcmlnaHQ6IDYwcHQ7CiAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgZGlzcGxheTogYmxvY2s7IAogIGZvbnQtc2l6ZTogMTYwJTsKICBsaW5lLWhlaWdodDogMS4yZW07CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmRpdi50b2MgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IGF1dG87CiAgYm90dG9tOiA0ZW07CiAgbGVmdDogNGVtOwogIHJpZ2h0OiBhdXRvOwogIHdpZHRoOiA2MCU7CiAgbWF4LXdpZHRoOiAzMGVtOwogIGhlaWdodDogMzBlbTsKICBib3JkZXI6IHNvbGlkIHRoaW4gYmxhY2s7CiAgcGFkZGluZzogMWVtOwogIGJhY2tncm91bmQ6IHJnYigyNDAsMjQwLDI0MCk7CiAgY29sb3I6IGJsYWNrOwogIHotaW5kZXg6IDMwMDsKICBvdmVyZmxvdzogYXV0bzsKICBkaXNwbGF5OiBibG9jazsKICB2aXNpYmlsaXR5OiB2aXNpYmxlOwp9CgpkaXYudG9jLWhlYWRpbmcgewogIHdpZHRoOiAxMDAlOwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2IoMTgwLDE4MCwxODApOwogIG1hcmdpbi1ib3R0b206IDFlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmltZyB7CiAgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1xdWFsaXR5Owp9CgpwcmUgewogZm9udC1zaXplOiA4MCU7CiBmb250LXdlaWdodDogYm9sZDsKIGxpbmUtaGVpZ2h0OiAxMjAlOwogcGFkZGluZy10b3A6IDAuMmVtOwogcGFkZGluZy1ib3R0b206IDAuMmVtOwogcGFkZGluZy1sZWZ0OiAxZW07CiBwYWRkaW5nLXJpZ2h0OiAxZW07CiBib3JkZXItc3R5bGU6IHNvbGlkOwogYm9yZGVyLWxlZnQtd2lkdGg6IDFlbTsKIGJvcmRlci10b3Atd2lkdGg6IHRoaW47CiBib3JkZXItcmlnaHQtd2lkdGg6IHRoaW47CiBib3JkZXItYm90dG9tLXdpZHRoOiB0aGluOwogYm9yZGVyLWNvbG9yOiAjOTVBQkQwOwogY29sb3I6ICMwMDQyOEM7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjRTRFNUU3Owp9CgpsaSBwcmUgeyBtYXJnaW4tbGVmdDogMDsgfQoKYmxvY2txdW90ZSB7IGZvbnQtc3R5bGU6IGl0YWxpYyB9CgppbWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCB9CgpwLmNvcHlyaWdodCB7IGZvbnQtc2l6ZTogc21hbGxlciB9CgouY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyIH0KLmZvb3Rub3RlIHsgZm9udC1zaXplOiBzbWFsbGVyOyBtYXJnaW4tbGVmdDogMmVtOyB9CgphIGltZyB7IGJvcmRlci13aWR0aDogMDsgYm9yZGVyLXN0eWxlOiBub25lIH0KCmE6dmlzaXRlZCB7IGNvbG9yOiBuYXZ5IH0KYTpsaW5rIHsgY29sb3I6IG5hdnkgfQphOmhvdmVyIHsgY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQphOmFjdGl2ZSB7IGNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KCmEge3RleHQtZGVjb3JhdGlvbjogbm9uZX0KLm5hdmJhciBhOmxpbmsge2NvbG9yOiB3aGl0ZX0KLm5hdmJhciBhOnZpc2l0ZWQge2NvbG9yOiB5ZWxsb3d9Ci5uYXZiYXIgYTphY3RpdmUge2NvbG9yOiByZWR9Ci5uYXZiYXIgYTpob3ZlciB7Y29sb3I6IHJlZH0KCnVsIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IH0KdWwgdWwgeyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH0KdWwgdWwgdWwgeyBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgfQp1bCB1bCB1bCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfQpsaSB7IG1hcmdpbi1sZWZ0OiAwLjVlbTsgbWFyZ2luLXRvcDogMC41ZW07IH0KbGkgbGkgeyBmb250LXNpemU6IDg1JTsgZm9udC1zdHlsZTogaXRhbGljIH0KbGkgbGkgbGkgeyBmb250LXNpemU6IDg1JTsgZm9udC1zdHlsZTogbm9ybWFsIH0KCmRpdiBkdAp7CiAgbWFyZ2luLWxlZnQ6IDA7CiAgbWFyZ2luLXRvcDogMWVtOwogIG1hcmdpbi1ib3R0b206IDAuNWVtOwogIGZvbnQtd2VpZ2h0OiBib2xkOwp9CmRpdiBkZAp7CiAgbWFyZ2luLWxlZnQ6IDJlbTsKICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKfQoKCnAscHJlLHVsLG9sLGJsb2NrcXVvdGUsaDIsaDMsaDQsaDUsaDYsZGwsdGFibGUgewogIG1hcmdpbi1sZWZ0OiAxZW07CiAgbWFyZ2luLXJpZ2h0OiAxZW07Cn0KCnAuc3ViaGVhZCB7IGZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tdG9wOiAyZW07IH0KCi5zbWFsbGVyIHsgZm9udC1zaXplOiBzbWFsbGVyIH0KLmJpZ2dlciB7IGZvbnQtc2l6ZTogMTMwJSB9Cgp0ZCx0aCB7IHBhZGRpbmc6IDAuMmVtIH0KCnVsIHsKICBtYXJnaW46IDAuNWVtIDEuNWVtIDAuNWVtIDEuNWVtOwogIHBhZGRpbmc6IDA7Cn0KCm9sIHsKICBtYXJnaW46IDAuNWVtIDEuNWVtIDAuNWVtIDEuNWVtOwogIHBhZGRpbmc6IDA7Cn0KCnVsIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IH0KdWwgdWwgeyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH0KdWwgdWwgdWwgeyBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgfQp1bCB1bCB1bCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfQoKdWwgbGkgeyAKICBsaXN0LXN0eWxlOiBzcXVhcmU7CiAgbWFyZ2luOiAwLjFlbSAwZW0gMC42ZW0gMDsKICBwYWRkaW5nOiAwIDAgMCAwOwogIGxpbmUtaGVpZ2h0OiAxNDAlOwp9CgpvbCBsaSB7IAogIG1hcmdpbjogMC4xZW0gMGVtIDAuNmVtIDEuNWVtOwogIHBhZGRpbmc6IDAgMCAwIDBweDsKICBsaW5lLWhlaWdodDogMTQwJTsKICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7Cn0KCmxpIHVsIGxpIHsgCiAgZm9udC1zaXplOiA4NSU7IAogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgcGFkZGluZzogMCAwIDAgMDsKfQpsaSBsaSB1bCBsaSB7IAogIGZvbnQtc2l6ZTogODUlOyAKICBmb250LXN0eWxlOiBub3JtYWw7CiAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgcGFkZGluZzogMCAwIDAgMDsKfQpsaSBsaSBsaSB1bCBsaSB7CiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIHBhZGRpbmc6IDAgMCAwIDA7Cn0KCmxpIG9sIGxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7Cn0KCgpsaSBsaSBvbCBsaSB7CiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsOwp9CgovKgogc2V0dGluZyBjbGFzcz0ib3V0bGluZSBvbiBvbCBvciB1bCBtYWtlcyBpdCBiZWhhdmUgYXMgYW4KIG91bGluZSBsaXN0IHdoZXJlIGJsb2NrbGV2ZWwgY29udGVudCBpbiBsaSBlbGVtZW50cyBpcwogaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBleHBhbmRlZCBvciBjb2xsYXBzZWQgd2l0aAogbW91c2UgY2xpY2suIFNldCBjbGFzcz0iZXhwYW5kIiBvbiBsaSB0byBvdmVycmlkZSBkZWZhdWx0CiovCgpvbC5vdXRsaW5lIGxpOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyIH0Kb2wub3V0bGluZSBsaS5ub2ZvbGQ6aG92ZXIgeyBjdXJzb3I6IGRlZmF1bHQgfQoKdWwub3V0bGluZSBsaTpob3ZlciB7IGN1cnNvcjogcG9pbnRlciB9CnVsLm91dGxpbmUgbGkubm9mb2xkOmhvdmVyIHsgY3Vyc29yOiBkZWZhdWx0IH0KCm9sLm91dGxpbmUgeyBsaXN0LXN0eWxlOmRlY2ltYWw7IH0Kb2wub3V0bGluZSBvbCB7IGxpc3Qtc3R5bGUtdHlwZTpsb3dlci1hbHBoYSB9CgpvbC5vdXRsaW5lIGxpLm5vZm9sZCB7CiAgcGFkZGluZzogMCAwIDAgMjBweDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vZ3JhcGhpY3Mvbm9mb2xkLWRpbS5naWYpIG5vLXJlcGVhdCAwcHggMC41ZW07Cn0Kb2wub3V0bGluZSBsaS51bmZvbGRlZCB7CiAgcGFkZGluZzogMCAwIDAgMjBweDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vZ3JhcGhpY3MvZm9sZC1kaW0uZ2lmKSBuby1yZXBlYXQgMHB4IDAuNWVtOwp9Cm9sLm91dGxpbmUgbGkuZm9sZGVkIHsKICBwYWRkaW5nOiAwIDAgMCAyMHB4OwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9ncmFwaGljcy91bmZvbGQtZGltLmdpZikgbm8tcmVwZWF0IDBweCAwLjVlbTsKfQpvbC5vdXRsaW5lIGxpLnVuZm9sZGVkOmhvdmVyIHsKICBwYWRkaW5nOiAwIDAgMCAyMHB4OwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9ncmFwaGljcy9mb2xkLmdpZikgbm8tcmVwZWF0IDBweCAwLjVlbTsKfQpvbC5vdXRsaW5lIGxpLmZvbGRlZDpob3ZlciB7CiAgcGFkZGluZzogMCAwIDAgMjBweDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vZ3JhcGhpY3MvdW5mb2xkLmdpZikgbm8tcmVwZWF0IDBweCAwLjVlbTsKfQoKdWwub3V0bGluZSBsaS5ub2ZvbGQgewogIHBhZGRpbmc6IDAgMCAwIDIwcHg7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2dyYXBoaWNzL25vZm9sZC1kaW0uZ2lmKSBuby1yZXBlYXQgMHB4IDAuNWVtOwp9CnVsLm91dGxpbmUgbGkudW5mb2xkZWQgewogIHBhZGRpbmc6IDAgMCAwIDIwcHg7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2dyYXBoaWNzL2ZvbGQtZGltLmdpZikgbm8tcmVwZWF0IDBweCAwLjVlbTsKfQp1bC5vdXRsaW5lIGxpLmZvbGRlZCB7CiAgcGFkZGluZzogMCAwIDAgMjBweDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vZ3JhcGhpY3MvdW5mb2xkLWRpbS5naWYpIG5vLXJlcGVhdCAwcHggMC41ZW07Cn0KdWwub3V0bGluZSBsaS51bmZvbGRlZDpob3ZlciB7CiAgcGFkZGluZzogMCAwIDAgMjBweDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vZ3JhcGhpY3MvZm9sZC5naWYpIG5vLXJlcGVhdCAwcHggMC41ZW07Cn0KdWwub3V0bGluZSBsaS5mb2xkZWQ6aG92ZXIgewogIHBhZGRpbmc6IDAgMCAwIDIwcHg7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2dyYXBoaWNzL3VuZm9sZC5naWYpIG5vLXJlcGVhdCAwcHggMC41ZW07Cn0KCi8qIGZvciBzbGlkZXMgd2l0aCBjbGFzcyAidGl0bGUiIGluIHRhYmxlIG9mIGNvbnRlbnRzICovCmEudGl0bGVzbGlkZSB7IGZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXN0eWxlOiBpdGFsaWMgfQoKLyoKIGhpZGUgaW1hZ2VzIGZvciB3b3JrIGFyb3VuZCBmb3Igc2F2ZSBhcyBidWcKIHdoZXJlIGJyb3dzZXJzIGZhaWwgdG8gc2F2ZSBpbWFnZXMgdXNlZCBieSBDU1MKKi8KaW1nLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbiB9CmRpdi5pbml0aWFsX3Byb21wdCB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbiB9CgogIGRpdi5zbGlkZSB7CiAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgICBwb3NpdGlvbjogaW5oZXJpdDsKICB9CiAgZGl2LmhhbmRvdXQgewogICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOwogICAgIGJvcmRlci10b3Atd2lkdGg6IHRoaW47CiAgICAgYm9yZGVyLXRvcC1jb2xvcjogYmxhY2s7CiAgfQoKQG1lZGlhIHNjcmVlbiB7CiAgLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IHZpc2libGUgfQoKICBkaXYuc2xpZGUuaGlkZGVuIHsgZGlzcGxheTogYmxvY2s7IHZpc2liaWxpdHk6IHZpc2libGUgfQogIGRpdi5oYW5kb3V0LmhpZGRlbiB7IGRpc3BsYXk6IGJsb2NrOyB2aXNpYmlsaXR5OiB2aXNpYmxlIH0KICBkaXYuYmFja2dyb3VuZCB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbiB9CiAgYm9keS5zaW5nbGVfc2xpZGUgZGl2LmluaXRpYWxfcHJvbXB0IHsgZGlzcGxheTogYmxvY2s7IHZpc2liaWxpdHk6IHZpc2libGUgfQogIGJvZHkuc2luZ2xlX3NsaWRlIGRpdi5iYWNrZ3JvdW5kIHsgZGlzcGxheTogYmxvY2s7IHZpc2liaWxpdHk6IHZpc2libGUgfQogIGJvZHkuc2luZ2xlX3NsaWRlIGRpdi5iYWNrZ3JvdW5kLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbiB9CiAgYm9keS5zaW5nbGVfc2xpZGUgLmludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbiB9CiAgYm9keS5zaW5nbGVfc2xpZGUgLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbiB9CiAgYm9keS5zaW5nbGVfc2xpZGUgZGl2LnNsaWRlIHsgcG9zaXRpb246IGFic29sdXRlIH0KICBib2R5LnNpbmdsZV9zbGlkZSBkaXYuaGFuZG91dCB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbiB9Cn0KCkBtZWRpYSBwcmludCB7CiAgLmhpZGRlbiB7IGRpc3BsYXk6IGJsb2NrOyB2aXNpYmlsaXR5OiB2aXNpYmxlIH0KCiAgZGl2LnNsaWRlIHByZSB7IGZvbnQtc2l6ZTogNjAlOyBwYWRkaW5nLWxlZnQ6IDAuNWVtOyB9CiAgZGl2LnRvb2xiYXIgeyBkaXNwbGF5OiBub25lOyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KICBkaXYuc2xpZHlfdG9jIHsgZGlzcGxheTogbm9uZTsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CiAgZGl2LmJhY2tncm91bmQgeyBkaXNwbGF5OiBub25lOyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KICBkaXYuc2xpZGUgeyBwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzIH0KICAvKiA6Zmlyc3QtY2hpbGQgaXNuJ3QgcmVsaWFibGUgZm9yIHByaW50IG1lZGlhICovCiAgZGl2LnNsaWRlLmZpcnN0LXNsaWRlIHsgcGFnZS1icmVhay1iZWZvcmU6IGF2b2lkIH0KfQoK" />
<script src="data:text/javascript;base64,Lyogc2xpZHkuanMKCiAgIENvcHlyaWdodCAoYykgMjAwNS0yMDExIFczQyAoTUlULCBFUkNJTSwgS2VpbyksIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgIFczQyBsaWFiaWxpdHksIHRyYWRlbWFyaywgZG9jdW1lbnQgdXNlIGFuZCBzb2Z0d2FyZSBsaWNlbnNpbmcKICAgcnVsZXMgYXBwbHksIHNlZToKCiAgIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvY29weXJpZ2h0LWRvY3VtZW50cwogICBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZQoKICAgRGVmaW5lcyBzaW5nbGUgbmFtZSAidzNjX3NsaWR5IiBpbiBnbG9iYWwgbmFtZXNwYWNlCiAgIEFkZHMgZXZlbnQgaGFuZGxlcnMgd2l0aG91dCB0cmFtcGxpbmcgb24gYW55IG90aGVycwoqLwoKLy8gdGhlIHNsaWR5IG9iamVjdCBpbXBsZW1lbnRhdGlvbgp2YXIgdzNjX3NsaWR5ID0gewogIC8vIGNsYXNzaWZ5IHdoaWNoIGtpbmQgb2YgYnJvd3NlciB3ZSdyZSBydW5uaW5nIHVuZGVyCiAgbnNfcG9zOiAodHlwZW9mIHdpbmRvdy5wYWdlWU9mZnNldCE9J3VuZGVmaW5lZCcpLAogIGtodG1sOiAoKG5hdmlnYXRvci51c2VyQWdlbnQpLmluZGV4T2YoIktIVE1MIikgPj0gMCA/IHRydWUgOiBmYWxzZSksCiAgb3BlcmE6ICgobmF2aWdhdG9yLnVzZXJBZ2VudCkuaW5kZXhPZigiT3BlcmEiKSA+PSAwID8gdHJ1ZSA6IGZhbHNlKSwKICBpcGFkOiAoKG5hdmlnYXRvci51c2VyQWdlbnQpLmluZGV4T2YoImlQYWQiKSA+PSAwID8gdHJ1ZSA6IGZhbHNlKSwKICBpcGhvbmU6ICgobmF2aWdhdG9yLnVzZXJBZ2VudCkuaW5kZXhPZigiaVBob25lIikgPj0gMCA/IHRydWUgOiBmYWxzZSksCiAgYW5kcm9pZDogKChuYXZpZ2F0b3IudXNlckFnZW50KS5pbmRleE9mKCJBbmRyb2lkIikgPj0gMCA/IHRydWUgOiBmYWxzZSksCiAgaWU6ICh0eXBlb2YgZG9jdW1lbnQuYWxsICE9ICJ1bmRlZmluZWQiICYmICF0aGlzLm9wZXJhKSwKICBpZTY6ICghdGhpcy5uc19wb3MgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDYiKSAhPSAtMSksCiAgaWU3OiAoIXRoaXMubnNfcG9zICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSA3IikgIT0gLTEpLAogIGllODogKCF0aGlzLm5zX3BvcyAmJiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUgOCIpICE9IC0xKSwKICBpZTk6ICghdGhpcy5uc19wb3MgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDkiKSAhPSAtMSksCgogIC8vIGRhdGEgZm9yIHN3aXBlIGFuZCBkb3VibGUgdGFwIGRldGVjdGlvbiBvbiB0b3VjaCBzY3JlZW5zCiAgbGFzdF90YXA6IDAsCiAgcHJldl90YXA6IDAsCiAgc3RhcnRfeDogMCwKICBzdGFydF95OiAwLAogIGRlbHRhX3g6IDAsCiAgZGVsdGFfeTogMCwKCiAgLy8gYXJlIHdlIHJ1bm5pbmcgYXMgWEhUTUw/IChkb2Vzbid0IHdvcmsgb24gT3BlcmEpCiAgaXNfeGh0bWw6IC94bWwvLnRlc3QoZG9jdW1lbnQuY29udGVudFR5cGUpLAoKICBzbGlkZV9udW1iZXI6IDAsIC8vIGludGVnZXIgc2xpZGUgY291bnQ6IDAsIDEsIDIsIC4uLgogIHNsaWRlX251bWJlcl9lbGVtZW50OiBudWxsLCAvLyBlbGVtZW50IGNvbnRhaW5pbmcgc2xpZGUgbnVtYmVyCiAgc2xpZGVzOiBbXSwgLy8gc2V0IHRvIGFycmF5IG9mIHNsaWRlIGRpdidzCiAgbm90ZXM6IFtdLCAvLyBzZXQgdG8gYXJyYXkgb2YgaGFuZG91dCBkaXYncwogIGJhY2tncm91bmRzOiBbXSwgLy8gc2V0IHRvIGFycmF5IG9mIGJhY2tncm91bmQgZGl2J3MKICB0b29sYmFyOiBudWxsLCAvLyBlbGVtZW50IGNvbnRhaW5pbmcgdG9vbGJhcgogIHRpdGxlOiBudWxsLCAvLyBkb2N1bWVudCB0aXRsZQogIGxhc3Rfc2hvd246IG51bGwsIC8vIGxhc3QgaW5jcmVtZW50YWxseSBzaG93biBpdGVtCiAgZW9zOiBudWxsLCAgLy8gc3BhbiBlbGVtZW50IGZvciBlbmQgb2Ygc2xpZGUgaW5kaWNhdG9yCiAgdG9jOiBudWxsLCAvLyB0YWJsZSBvZiBjb250ZW50cwogIG91dGxpbmU6IG51bGwsIC8vIG91dGxpbmUgZWxlbWVudCB3aXRoIHRoZSBmb2N1cwogIHNlbGVjdGVkX3RleHRfbGVuOiAwLCAvLyBsZW5ndGggb2YgZHJhZyBzZWxlY3Rpb24gb24gZG9jdW1lbnQKICB2aWV3X2FsbDogMCwgIC8vIDEgdG8gdmlldyBhbGwgc2xpZGVzICsgaGFuZG91dHMKICB3YW50X3Rvb2xiYXI6IHRydWUsICAvLyB1c2VyIHByZWZlcmVuY2UgdG8gc2hvdy9oaWRlIHRvb2xiYXIKICBtb3VzZV9jbGlja19lbmFibGVkOiB0cnVlLCAvLyBlbmFibGVzIGxlZnQgY2xpY2sgZm9yIG5leHQgc2xpZGUKICBzY3JvbGxfaGFjazogMCwgLy8gSUUgd29yayBhcm91bmQgZm9yIHBvc2l0aW9uOiBmaXhlZAogIGRpc2FibGVfc2xpZGVfY2xpY2s6IGZhbHNlLCAgLy8gdXNlZCBieSBjbGlja2VkIGFuY2hvcnMKCiAgbGFuZzogImVuIiwgLy8gdXBkYXRlZCB0byBsYW5ndWFnZSBzcGVjaWZpZWQgYnkgaHRtbCBmaWxlCgogIGhlbHBfYW5jaG9yOiBudWxsLCAvLyB1c2VkIGZvciBrZXlib2FyZCBmb2N1cyBoYWNrIGluIHNob3dUb29sYmFyKCkKICBoZWxwX3BhZ2U6ICJodHRwOi8vd3d3LnczLm9yZy9UYWxrcy9Ub29scy9TbGlkeTIvaGVscC9oZWxwLmh0bWwiLAogIGhlbHBfdGV4dDogIk5hdmlnYXRlIHdpdGggbW91c2UgY2xpY2ssIHNwYWNlIGJhciwgQ3Vyc29yIExlZnQvUmlnaHQsICIgKwogICAgICAgICAgICAgIm9yIFBnIFVwIGFuZCBQZyBEbi4gVXNlIFMgYW5kIEIgdG8gY2hhbmdlIGZvbnQgc2l6ZS4iLAoKICBzaXplX2luZGV4OiAwLAogIHNpemVfYWRqdXN0bWVudDogMCwKICBzaXplczogIG5ldyBBcnJheSgiMTBwdCIsICIxMnB0IiwgIjE0cHQiLCAiMTZwdCIsICIxOHB0IiwgIjIwcHQiLAogICAgICAgICAgICAgICAgICAgICIyMnB0IiwgIjI0cHQiLCAiMjZwdCIsICIyOHB0IiwgIjMwcHQiLCAiMzJwdCIpLAoKICAvLyBuZWVkZWQgZm9yIGVmZmljaWVudCByZXNpemluZwogIGxhc3Rfd2lkdGg6IDAsCiAgbGFzdF9oZWlnaHQ6IDAsCgoKICAvLyBOZWVkZWQgZm9yIGNyb3NzIGJyb3dzZXIgc3VwcG9ydCBmb3IgcmVsYXRpdmUgd2lkdGgvaGVpZ2h0IG9uCiAgLy8gb2JqZWN0IGVsZW1lbnRzLiBUaGUgd29yayBhcm91bmQgaXMgdG8gc2F2ZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcwogIC8vIGFuZCB0aGVuIHRvIHJlY29tcHV0ZSBhYnNvbHV0ZSB3aWR0aC9oZWlnaHQgZGltZW5zaW9ucyBvbiByZXNpemluZwogICBvYmplY3RzOiBbXSwKCiAgLy8gYXR0YWNoIGluaXRpYWxpYXRpb24gZXZlbnQgaGFuZGxlcnMKICBzZXRfdXA6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBpbml0ID0gZnVuY3Rpb24oKSB7IHczY19zbGlkeS5pbml0KCk7IH07CiAgICBpZiAodHlwZW9mIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyICE9ICJ1bmRlZmluZWQiKQogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGluaXQsIGZhbHNlKTsKICAgIGVsc2UKICAgICAgd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLCBpbml0KTsKICB9LAoKICBoaWRlX3NsaWRlczogZnVuY3Rpb24gKCkgewogICAgaWYgKGRvY3VtZW50LmJvZHkgJiYgIXczY19zbGlkeS5pbml0aWFsaXplZCkKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICBlbHNlCiAgICAgIHNldFRpbWVvdXQodzNjX3NsaWR5LmhpZGVfc2xpZGVzLCA1MCk7CiAgfSwKCiAgLy8gaGFjayB0byBwZXJzdWFkZSBJRSB0byBjb21wdXRlIGNvcnJlY3QgZG9jdW1lbnQgaGVpZ2h0CiAgLy8gYXMgbmVlZGVkIGZvciBzaW11bGF0aW5nIGZpeGVkIHBvc2l0aW9uaW5nIG9mIHRvb2xiYXIKICBpZV9oYWNrOiBmdW5jdGlvbiAoKSB7CiAgICB3aW5kb3cucmVzaXplQnkoMCwtMSk7CiAgICB3aW5kb3cucmVzaXplQnkoMCwgMSk7CiAgfSwKCiAgaW5pdDogZnVuY3Rpb24gKCkgewogICAgLy9hbGVydCgic2xpZHkgc3RhcnRpbmcgdGVzdCAxMCIpOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgdGhpcy5pbml0X2xvY2FsaXphdGlvbigpOwogICAgdGhpcy5hZGRfdG9vbGJhcigpOwogICAgdGhpcy53cmFwX2ltcGxpY2l0X3NsaWRlcygpOwogICAgdGhpcy5jb2xsZWN0X3NsaWRlcygpOwogICAgdGhpcy5jb2xsZWN0X25vdGVzKCk7CiAgICB0aGlzLmNvbGxlY3RfYmFja2dyb3VuZHMoKTsKICAgIHRoaXMub2JqZWN0cyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpOwogICAgdGhpcy5wYXRjaF9hbmNob3JzKCk7CiAgICB0aGlzLnNsaWRlX251bWJlciA9IHRoaXMuZmluZF9zbGlkZV9udW1iZXIobG9jYXRpb24uaHJlZik7CiAgICB3aW5kb3cub2Zmc2NyZWVuYnVmZmVyaW5nID0gdHJ1ZTsKICAgIHRoaXMuc2l6ZV9hZGp1c3RtZW50ID0gdGhpcy5maW5kX3NpemVfYWRqdXN0KCk7CiAgICB0aGlzLnRpbWVfbGVmdCA9IHRoaXMuZmluZF9kdXJhdGlvbigpOwogICAgdGhpcy5oaWRlX2ltYWdlX3Rvb2xiYXIoKTsgIC8vIHN1cHByZXNzIElFIGltYWdlIHRvb2xiYXIgcG9wdXAKICAgIHRoaXMuaW5pdF9vdXRsaW5lcigpOyAgLy8gYWN0aXZhdGUgZm9sZC91bmZvbGQgc3VwcG9ydAogICAgdGhpcy50aXRsZSA9IGRvY3VtZW50LnRpdGxlOwogICAgdGhpcy5rZXlib2FyZGxlc3MgPSAodGhpcy5pcGFkfHx0aGlzLmlwaG9uZXx8dGhpcy5hbmRyb2lkKTsKCiAgICBpZiAodGhpcy5rZXlib2FyZGxlc3MpCiAgICB7CiAgICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3ModzNjX3NsaWR5LnRvb2xiYXIsICJoaWRkZW4iKQogICAgICB0aGlzLndhbnRfdG9vbGJhciA9IDA7CiAgICB9CgogICAgLy8gd29yayBhcm91bmQgZm9yIG9wZXJhIGJ1ZwogICAgdGhpcy5pc194aHRtbCA9IChkb2N1bWVudC5ib2R5LnRhZ05hbWUgPT0gIkJPRFkiID8gZmFsc2UgOiB0cnVlKTsKCiAgICBpZiAodGhpcy5zbGlkZXMubGVuZ3RoID4gMCkKICAgIHsKICAgICAgdmFyIHNsaWRlID0gdGhpcy5zbGlkZXNbdGhpcy5zbGlkZV9udW1iZXJdOwogICAKICAgICAgaWYgKHRoaXMuc2xpZGVfbnVtYmVyID4gMCkKICAgICAgewogICAgICAgIHRoaXMuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJ2aXNpYmxlIik7CiAgICAgICAgdGhpcy5sYXN0X3Nob3duID0gdGhpcy5wcmV2aW91c19pbmNyZW1lbnRhbF9pdGVtKG51bGwpOwogICAgICAgIHRoaXMuc2V0X2Vvc19zdGF0dXModHJ1ZSk7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgdGhpcy5sYXN0X3Nob3duID0gbnVsbDsKICAgICAgICB0aGlzLnNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbCgiaGlkZGVuIik7CiAgICAgICAgdGhpcy5zZXRfZW9zX3N0YXR1cyghdGhpcy5uZXh0X2luY3JlbWVudGFsX2l0ZW0odGhpcy5sYXN0X3Nob3duKSk7CiAgICAgIH0KCiAgICAgIHRoaXMuc2V0X2xvY2F0aW9uKCk7CiAgICAgIHRoaXMuYWRkX2NsYXNzKHRoaXMuc2xpZGVzWzBdLCAiZmlyc3Qtc2xpZGUiKTsKICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgfQoKICAgIHRoaXMudG9jID0gdGhpcy50YWJsZV9vZl9jb250ZW50cygpOwoKICAgIHRoaXMuYWRkX2luaXRpYWxfcHJvbXB0KCk7CgogICAgLy8gYmluZCBldmVudCBoYW5kbGVycyB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggY3VzdG9tIHBhZ2Ugc2NyaXB0cwogICAgLy8gVGFwIGV2ZW50cyBiZWhhdmUgdG9vIHdlaXJkbHkgdG8gc3VwcG9ydCBjbGlja3MgcmVsaWFibHkgb24KICAgIC8vIGlQaG9uZSBhbmQgaVBhZCwgc28gZXhjbHVkZSB0aGVzZSBmcm9tIGNsaWNrIGhhbmRsZXIKCiAgICBpZiAoIXRoaXMua2V5Ym9hcmRsZXNzKQogICAgICB0aGlzLmFkZF9saXN0ZW5lcihkb2N1bWVudC5ib2R5LCAiY2xpY2siLCB0aGlzLm1vdXNlX2J1dHRvbl9jbGljayk7CgogICAgdGhpcy5hZGRfbGlzdGVuZXIoZG9jdW1lbnQsICJrZXlkb3duIiwgdGhpcy5rZXlfZG93bik7CiAgICB0aGlzLmFkZF9saXN0ZW5lcihkb2N1bWVudCwgImtleXByZXNzIiwgdGhpcy5rZXlfcHJlc3MpOwogICAgdGhpcy5hZGRfbGlzdGVuZXIod2luZG93LCAicmVzaXplIiwgdGhpcy5yZXNpemVkKTsKICAgIHRoaXMuYWRkX2xpc3RlbmVyKHdpbmRvdywgInNjcm9sbCIsIHRoaXMuc2Nyb2xsZWQpOwogICAgdGhpcy5hZGRfbGlzdGVuZXIod2luZG93LCAidW5sb2FkIiwgdGhpcy51bmxvYWRlZCk7CgogICAgdGhpcy5hZGRfbGlzdGVuZXIoZG9jdW1lbnQsICJ0b3VjaHN0YXJ0IiwgdGhpcy50b3VjaHN0YXJ0KTsKICAgIHRoaXMuYWRkX2xpc3RlbmVyKGRvY3VtZW50LCAidG91Y2htb3ZlIiwgdGhpcy50b3VjaG1vdmUpOwogICAgdGhpcy5hZGRfbGlzdGVuZXIoZG9jdW1lbnQsICJ0b3VjaGVuZCIsIHRoaXMudG91Y2hlbmQpOwoKICAgIC8vIHRoaXMgc2VlbXMgdG8gYmUgYSBkZWJ1Z2dpbmcgaGFjawogICAgLy9pZiAoIWRvY3VtZW50LmJvZHkub25jbGljaykKICAgIC8vICBkb2N1bWVudC5ib2R5Lm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7IH07CgogICAgdGhpcy5zaW5nbGVfc2xpZGVfdmlldygpOwoKICAgIC8vdGhpcy5zZXRfbG9jYXRpb24oKTsKCiAgICB0aGlzLnJlc2l6ZWQoKTsKCiAgICBpZiAodGhpcy5pZTcpCiAgICAgIHNldFRpbWVvdXQodzNjX3NsaWR5LmllX2hhY2ssIDEwMCk7CgogICAgdGhpcy5zaG93X3Rvb2xiYXIoKTsKCiAgICAvLyBmb3IgYmFjayBidXR0b24gZGV0ZWN0aW9uCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7IHczY19zbGlkeS5jaGVja19sb2NhdGlvbigpOyB9LCAyMDApOwogICAgdzNjX3NsaWR5LmluaXRpYWxpemVkID0gdHJ1ZTsKICB9LAoKICAvLyBjcmVhdGUgZGl2IGVsZW1lbnQgd2l0aCBsaW5rcyB0byBlYWNoIHNsaWRlCiAgdGFibGVfb2ZfY29udGVudHM6IGZ1bmN0aW9uICgpIHsKICAgIHZhciB0b2MgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJkaXYiKTsKICAgIHRoaXMuYWRkX2NsYXNzKHRvYywgInNsaWR5X3RvYyBoaWRkZW4iKTsKICAgIC8vdG9jLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCAiMCIpOwoKICAgIHZhciBoZWFkaW5nID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiZGl2Iik7CiAgICB0aGlzLmFkZF9jbGFzcyhoZWFkaW5nLCAidG9jLWhlYWRpbmciKTsKICAgIGhlYWRpbmcuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgiVGFibGUgb2YgQ29udGVudHMiKTsKCiAgICB0b2MuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CiAgICB2YXIgcHJldmlvdXMgPSBudWxsOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGlkZXMubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIHZhciB0aXRsZSA9IHRoaXMuaGFzX2NsYXNzKHRoaXMuc2xpZGVzW2ldLCAidGl0bGUiKTsKICAgICAgdmFyIG51bSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKChpICsgMSkgKyAiLiAiKTsKCiAgICAgIHRvYy5hcHBlbmRDaGlsZChudW0pOwoKICAgICAgdmFyIGEgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJhIik7CiAgICAgIGEuc2V0QXR0cmlidXRlKCJocmVmIiwgIiMoIiArIChpKzEpICsgIikiKTsKCiAgICAgIGlmICh0aXRsZSkKICAgICAgICB0aGlzLmFkZF9jbGFzcyhhLCAidGl0bGVzbGlkZSIpOwoKICAgICAgdmFyIG5hbWUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnNsaWRlX25hbWUoaSkpOwogICAgICBhLmFwcGVuZENoaWxkKG5hbWUpOwogICAgICBhLm9uY2xpY2sgPSB3M2Nfc2xpZHkudG9jX2NsaWNrOwogICAgICBhLm9ua2V5ZG93biA9IHczY19zbGlkeS50b2Nfa2V5X2Rvd247CiAgICAgIGEucHJldmlvdXMgPSBwcmV2aW91czsKCiAgICAgIGlmIChwcmV2aW91cykKICAgICAgICBwcmV2aW91cy5uZXh0ID0gYTsKCiAgICAgIHRvYy5hcHBlbmRDaGlsZChhKTsKCiAgICAgIGlmIChpID09IDApCiAgICAgICAgdG9jLmZpcnN0ID0gYTsKCiAgICAgIGlmIChpIDwgdGhpcy5zbGlkZXMubGVuZ3RoIC0gMSkKICAgICAgewogICAgICAgIHZhciBiciA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImJyIik7CiAgICAgICAgdG9jLmFwcGVuZENoaWxkKGJyKTsKICAgICAgfQoKICAgICAgcHJldmlvdXMgPSBhOwogICAgfQoKICAgIHRvYy5mb2N1cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHRoaXMuZmlyc3QpCiAgICAgICAgdGhpcy5maXJzdC5mb2N1cygpOwogICAgfQoKICAgIHRvYy5vbm1vdXNldXAgPSB3M2Nfc2xpZHkubW91c2VfYnV0dG9uX3VwOwoKICAgIHRvYy5vbmNsaWNrID0gZnVuY3Rpb24gKGUpIHsKICAgICAgZXx8KGU9d2luZG93LmV2ZW50KTsKCiAgICAgIGlmICh3M2Nfc2xpZHkuc2VsZWN0ZWRfdGV4dF9sZW4gPD0gMCkKICAgICAgICAgdzNjX3NsaWR5LmhpZGVfdGFibGVfb2ZfY29udGVudHModHJ1ZSk7CgogICAgICB3M2Nfc2xpZHkuc3RvcF9wcm9wYWdhdGlvbihlKTsKICAgIAogICAgICBpZiAoZS5jYW5jZWwgIT0gdW5kZWZpbmVkKQogICAgICAgIGUuY2FuY2VsID0gdHJ1ZTsKICAgICAgCiAgICAgIGlmIChlLnJldHVyblZhbHVlICE9IHVuZGVmaW5lZCkKICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRvYywgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKICAgIHJldHVybiB0b2M7CiAgfSwKCiAgaXNfc2hvd25fdG9jOiBmdW5jdGlvbiAoKSB7CiAgICByZXR1cm4gIXczY19zbGlkeS5oYXNfY2xhc3ModzNjX3NsaWR5LnRvYywgImhpZGRlbiIpOwogIH0sCgogIHNob3dfdGFibGVfb2ZfY29udGVudHM6IGZ1bmN0aW9uICgpIHsKICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3ModzNjX3NsaWR5LnRvYywgImhpZGRlbiIpOwogICAgdmFyIHRvYyA9IHczY19zbGlkeS50b2M7CiAgICB0b2MuZm9jdXMoKTsKCiAgICBpZiAodzNjX3NsaWR5LmllNyAmJiB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID09IDApCiAgICAgIHNldFRpbWVvdXQodzNjX3NsaWR5LmllX2hhY2ssIDEwMCk7CiAgfSwKCiAgaGlkZV90YWJsZV9vZl9jb250ZW50czogZnVuY3Rpb24gKGZvY3VzKSB7CiAgICB3M2Nfc2xpZHkuYWRkX2NsYXNzKHczY19zbGlkeS50b2MsICJoaWRkZW4iKTsKCiAgICBpZiAoZm9jdXMgJiYgIXczY19zbGlkeS5vcGVyYSkKICAgICAgdzNjX3NsaWR5LmhlbHBfYW5jaG9yLmZvY3VzKCk7CiAgfSwKCiAgdG9nZ2xlX3RhYmxlX29mX2NvbnRlbnRzOiBmdW5jdGlvbiAoKSB7CiAgICBpZiAodzNjX3NsaWR5LmlzX3Nob3duX3RvYygpKQogICAgICB3M2Nfc2xpZHkuaGlkZV90YWJsZV9vZl9jb250ZW50cyh0cnVlKTsKICAgIGVsc2UKICAgICAgdzNjX3NsaWR5LnNob3dfdGFibGVfb2ZfY29udGVudHMoKTsKICB9LAoKICAvLyBjYWxsZWQgb24gY2xpY2tpbmcgdG9jIGVudHJ5CiAgdG9jX2NsaWNrOiBmdW5jdGlvbiAoZSkgewogICAgaWYgKCFlKQogICAgICBlID0gd2luZG93LmV2ZW50OwoKICAgIHZhciB0YXJnZXQgPSB3M2Nfc2xpZHkuZ2V0X3RhcmdldChlKTsKCiAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5ub2RlVHlwZSA9PSAxKQogICAgewogICAgICB2YXIgdXJpID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgiaHJlZiIpOwoKICAgICAgaWYgKHVyaSkKICAgICAgewogICAgICAgIC8vYWxlcnQoImdvaW5nIHRvICIgKyB1cmkpOwogICAgICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwogICAgICAgIHczY19zbGlkeS5zbGlkZV9udW1iZXIgPSB3M2Nfc2xpZHkuZmluZF9zbGlkZV9udW1iZXIodXJpKTsKICAgICAgICBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSBudWxsOwogICAgICAgIHczY19zbGlkeS5zZXRfbG9jYXRpb24oKTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJoaWRkZW4iKTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXMoIXczY19zbGlkeS5uZXh0X2luY3JlbWVudGFsX2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pKTsKICAgICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICAgICAgLy90YXJnZXQuZm9jdXMoKTsKCiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgaWYgKCF3M2Nfc2xpZHkub3BlcmEpCiAgICAgICAgICAgIHczY19zbGlkeS5oZWxwX2FuY2hvci5mb2N1cygpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZSkKICAgICAgICB7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgdzNjX3NsaWR5LmhpZGVfdGFibGVfb2ZfY29udGVudHModHJ1ZSk7CiAgICBpZiAodzNjX3NsaWR5LmllNykgdzNjX3NsaWR5LmllX2hhY2soKTsKICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGUpOwogICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZSk7CiAgfSwKCiAgLy8gY2FsbGVkIG9ua2V5ZG93biBmb3IgdG9jIGVudHJ5CiAgdG9jX2tleV9kb3duOiBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIHZhciBrZXk7CgogICAgaWYgKCFldmVudCkKICAgICAgdmFyIGV2ZW50ID0gd2luZG93LmV2ZW50OwoKICAgIC8vIGtsdWRnZSBhcm91bmQgTlMvSUUgZGlmZmVyZW5jZXMgCiAgICBpZiAod2luZG93LmV2ZW50KQogICAgICBrZXkgPSB3aW5kb3cuZXZlbnQua2V5Q29kZTsKICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoKQogICAgICBrZXkgPSBldmVudC53aGljaDsKICAgIGVsc2UKICAgICAgcmV0dXJuIHRydWU7IC8vIFlpa2VzISB1bmtub3duIGJyb3dzZXIKCiAgICAvLyBpZ25vcmUgZXZlbnQgaWYga2V5IHZhbHVlIGlzIHplcm8KICAgIC8vIGFzIGZvciBhbHQgb24gT3BlcmEgYW5kIEtvbnF1ZXJvcgogICAgaWYgKCFrZXkpCiAgICAgIHJldHVybiB0cnVlOwoKICAgIC8vIGNoZWNrIGZvciBjb25jdXJyZW50IGNvbnRyb2wvY29tbWFuZC9hbHQga2V5CiAgICAvLyBidXQgYXJlIHRoZXNlIG9ubHkgcHJlc2VudCBvbiBtb3VzZSBldmVudHM/CgogICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuYWx0S2V5KQogICAgICByZXR1cm4gdHJ1ZTsKCiAgICBpZiAoa2V5ID09IDEzKQogICAgewogICAgICB2YXIgdXJpID0gdGhpcy5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKCiAgICAgIGlmICh1cmkpCiAgICAgIHsKICAgICAgICAvL2FsZXJ0KCJnb2luZyB0byAiICsgdXJpKTsKICAgICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwogICAgICAgIHczY19zbGlkeS5zbGlkZV9udW1iZXIgPSB3M2Nfc2xpZHkuZmluZF9zbGlkZV9udW1iZXIodXJpKTsKICAgICAgICBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSBudWxsOwogICAgICAgIHczY19zbGlkeS5zZXRfbG9jYXRpb24oKTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJoaWRkZW4iKTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXMoIXczY19zbGlkeS5uZXh0X2luY3JlbWVudGFsX2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pKTsKICAgICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICAgICAgLy90YXJnZXQuZm9jdXMoKTsKCiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgaWYgKCF3M2Nfc2xpZHkub3BlcmEpCiAgICAgICAgICAgIHczY19zbGlkeS5oZWxwX2FuY2hvci5mb2N1cygpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZSkKICAgICAgICB7CiAgICAgICAgfQogICAgICB9CgogICAgICB3M2Nfc2xpZHkuaGlkZV90YWJsZV9vZl9jb250ZW50cyh0cnVlKTsKCiAgICAgIGlmIChzZWxmLmllNykKICAgICAgIHczY19zbGlkeS5pZV9oYWNrKCk7CgogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CgogICAgaWYgKGtleSA9PSA0MCAmJiB0aGlzLm5leHQpCiAgICB7CiAgICAgIHRoaXMubmV4dC5mb2N1cygpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CgogICAgaWYgKGtleSA9PSAzOCAmJiB0aGlzLnByZXZpb3VzKQogICAgewogICAgICB0aGlzLnByZXZpb3VzLmZvY3VzKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICB0b3VjaHN0YXJ0OiBmdW5jdGlvbiAoZSkKICB7CiAgICAvL2UucHJldmVudERlZmF1bHQoKTsKICAgIHRoaXMucHJldl90YXAgPSB0aGlzLmxhc3RfdGFwOwogICAgdGhpcy5sYXN0X3RhcCA9IChuZXcgRGF0ZSkuZ2V0VGltZSgpOwoKICAgIHZhciB0YXBfZGVsYXkgPSB0aGlzLmxhc3RfdGFwIC0gdGhpcy5wcmV2X3RhcDsKCiAgICBpZiAodGFwX2RlbGF5IDw9IDIwMCkKICAgIHsKICAgICAgLy8gZG91YmxlIHRhcAogICAgfQoKICAgIHZhciB0b3VjaCA9IGUudG91Y2hlc1swXTsKCiAgICB0aGlzLnN0YXJ0X3ggPSB0b3VjaC5wYWdlWDsKICAgIHRoaXMuc3RhcnRfeSA9IHRvdWNoLnBhZ2VZOwogICAgdGhpcy5kZWx0YV94ID0gdGhpcy5kZWx0YV95ID0gMDsKICB9LAoKICB0b3VjaG1vdmU6IGZ1bmN0aW9uIChlKQogIHsKICAgIC8vZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgdmFyIHRvdWNoID0gZS50b3VjaGVzWzBdOwogICAgdGhpcy5kZWx0YV94ID0gdG91Y2gucGFnZVggLSB0aGlzLnN0YXJ0X3g7CiAgICB0aGlzLmRlbHRhX3kgPSB0b3VjaC5wYWdlWSAtIHRoaXMuc3RhcnRfeTsKICB9LAoKICB0b3VjaGVuZDogZnVuY3Rpb24gKGUpCiAgewogICAgLy9lLnByZXZlbnREZWZhdWx0KCk7CiAgICB2YXIgZGVsYXkgPSAobmV3IERhdGUpLmdldFRpbWUoKSAtIHRoaXMubGFzdF90YXA7CiAgICB2YXIgZHggPSB0aGlzLmRlbHRhX3g7CiAgICB2YXIgZHkgPSB0aGlzLmRlbHRhX3k7CiAgICB2YXIgYWJzX2R4ID0gTWF0aC5hYnMoZHgpOwogICAgdmFyIGFic19keSA9IE1hdGguYWJzKGR5KTsKCiAgICBpZiAoZGVsYXkgPCA1MDAgJiYgKGFic19keCA+IDEwMCB8fCBhYnNfZHkgPiAxMDApKQogICAgewogICAgICBpZiAoYWJzX2R4ID4gMC41ICogYWJzX2R5KQogICAgICB7CiAgICAgICAgaWYgKGR4IDwgMCkKICAgICAgICAgIHczY19zbGlkeS5uZXh0X3NsaWRlKHRydWUpOwogICAgICAgIGVsc2UKICAgICAgICAgIHczY19zbGlkeS5wcmV2aW91c19zbGlkZSh0cnVlKTsKICAgICAgfQogICAgICBlbHNlIGlmIChhYnNfZHkgPiAyICogYWJzX2R4KQogICAgICB7CiAgICAgICAgdzNjX3NsaWR5LnRvZ2dsZV90YWJsZV9vZl9jb250ZW50cygpOwogICAgICB9CiAgICB9CiAgfSwKCiAgLy8gIyMjIE9CU09MRVRFICMjIwogIGJlZm9yZV9wcmludDogZnVuY3Rpb24gKCkgewogICAgdGhpcy5zaG93X2FsbF9zbGlkZXMoKTsKICAgIHRoaXMuaGlkZV90b29sYmFyKCk7CiAgICBhbGVydCgiYmVmb3JlIHByaW50Iik7CiAgfSwKCiAgLy8gIyMjIE9CU09MRVRFICMjIwogIGFmdGVyX3ByaW50OiBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIXRoaXMudmlld19hbGwpCiAgICB7CiAgICAgIHRoaXMuc2luZ2xlX3NsaWRlX3ZpZXcoKTsKICAgICAgdGhpcy5zaG93X3Rvb2xiYXIoKTsKICAgIH0KICAgIGFsZXJ0KCJhZnRlciBwcmludCIpOwogIH0sCgogIC8vICMjIyBPQlNPTEVURSAjIyMKICBwcmludF9zbGlkZXM6IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMuYmVmb3JlX3ByaW50KCk7CiAgICB3aW5kb3cucHJpbnQoKTsKICAgIHRoaXMuYWZ0ZXJfcHJpbnQoKTsKICB9LAoKICAvLyAjIyMgT0JTT0xFVEUgPz8gIyMjCiAgdG9nZ2xlX3ZpZXc6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLnZpZXdfYWxsKQogICAgewogICAgICB0aGlzLnNpbmdsZV9zbGlkZV92aWV3KCk7CiAgICAgIHRoaXMuc2hvd190b29sYmFyKCk7CiAgICAgIHRoaXMudmlld19hbGwgPSAwOwogICAgfQogICAgZWxzZQogICAgewogICAgICB0aGlzLnNob3dfYWxsX3NsaWRlcygpOwogICAgICB0aGlzLmhpZGVfdG9vbGJhcigpOwogICAgICB0aGlzLnZpZXdfYWxsID0gMTsKICAgIH0KICB9LAoKICAvLyBwcmVwYXJlIGZvciBwcmludGluZyAgIyMjIE9CU09MRVRFICMjIwogIHNob3dfYWxsX3NsaWRlczogZnVuY3Rpb24gKCkgewogICAgdGhpcy5yZW1vdmVfY2xhc3MoZG9jdW1lbnQuYm9keSwgInNpbmdsZV9zbGlkZSIpOwogICAgdGhpcy5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoInZpc2libGUiKTsKICB9LAoKICAvLyByZXN0b3JlIGFmdGVyIHByaW50aW5nICAjIyMgT0JTT0xFVEUgIyMjCiAgc2luZ2xlX3NsaWRlX3ZpZXc6IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMuYWRkX2NsYXNzKGRvY3VtZW50LmJvZHksICJzaW5nbGVfc2xpZGUiKTsKICAgIHRoaXMuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJ2aXNpYmxlIik7CiAgICB0aGlzLmxhc3Rfc2hvd24gPSB0aGlzLnByZXZpb3VzX2luY3JlbWVudGFsX2l0ZW0obnVsbCk7CiAgfSwKCiAgLy8gc3VwcHJlc3MgSUUncyBpbWFnZSB0b29sYmFyIHBvcCB1cAogIGhpZGVfaW1hZ2VfdG9vbGJhcjogZnVuY3Rpb24gKCkgewogICAgaWYgKCF0aGlzLm5zX3BvcykKICAgIHsKICAgICAgdmFyIGltYWdlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTUciKTsKCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VzLmxlbmd0aDsgKytpKQogICAgICAgIGltYWdlc1tpXS5zZXRBdHRyaWJ1dGUoImdhbGxlcnlpbWciLCAibm8iKTsKICAgIH0KICB9LAoKICB1bmxvYWRlZDogZnVuY3Rpb24gKGUpIHsKICAgIC8vYWxlcnQoInVubG9hZGVkIik7CiAgfSwKCiAgLy8gU2FmYXJpIGFuZCBLb25xdWVyb3IgZG9uJ3QgeWV0IHN1cHBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSgpCiAgLy8gYW5kIHRoZXkgYWx3YXlzIHJlbG9hZCBwYWdlIHdoZW4gbG9jYXRpb24uaHJlZiBpcyB1cGRhdGVkCiAgaXNfS0hUTUw6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBhZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CiAgICByZXR1cm4gKGFnZW50LmluZGV4T2YoIktIVE1MIikgPj0gMCA/IHRydWUgOiBmYWxzZSk7CiAgfSwKCiAgLy8gZmluZCBzbGlkZSBuYW1lIGZyb20gZmlyc3QgaDEgZWxlbWVudAogIC8vIGRlZmF1bHQgdG8gZG9jdW1lbnQgdGl0bGUgKyBzbGlkZSBudW1iZXIKICBzbGlkZV9uYW1lOiBmdW5jdGlvbiAoaW5kZXgpIHsKICAgIHZhciBuYW1lID0gbnVsbDsKICAgIHZhciBzbGlkZSA9IHRoaXMuc2xpZGVzW2luZGV4XTsKCiAgICB2YXIgaGVhZGluZyA9IHRoaXMuZmluZF9oZWFkaW5nKHNsaWRlKTsKCiAgICBpZiAoaGVhZGluZykKICAgICAgbmFtZSA9IHRoaXMuZXh0cmFjdF90ZXh0KGhlYWRpbmcpOwoKICAgIGlmICghbmFtZSkKICAgICAgbmFtZSA9IHRoaXMudGl0bGUgKyAiKCIgKyAoaW5kZXggKyAxKSArICIpIjsKCiAgICBuYW1lLnJlcGxhY2UoL1wmL2csICImYW1wOyIpOwogICAgbmFtZS5yZXBsYWNlKC9cPC9nLCAiJmx0OyIpOwogICAgbmFtZS5yZXBsYWNlKC9cPi9nLCAiJmd0OyIpOwoKICAgIHJldHVybiBuYW1lOwogIH0sCgogIC8vIGZpbmQgZmlyc3QgaDEgZWxlbWVudCBpbiBET00gdHJlZQogIGZpbmRfaGVhZGluZzogZnVuY3Rpb24gKG5vZGUpIHsKICAgIGlmICghbm9kZSB8fCBub2RlLm5vZGVUeXBlICE9IDEpCiAgICAgIHJldHVybiBudWxsOwoKICAgIGlmIChub2RlLm5vZGVOYW1lID09ICJIMSIgfHwgbm9kZS5ub2RlTmFtZSA9PSAiaDEiKQogICAgICByZXR1cm4gbm9kZTsKCiAgICB2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7CgogICAgd2hpbGUgKGNoaWxkKQogICAgewogICAgICBub2RlID0gdGhpcy5maW5kX2hlYWRpbmcoY2hpbGQpOwoKICAgICAgaWYgKG5vZGUpCiAgICAgICAgcmV0dXJuIG5vZGU7CgogICAgICBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nOwogICAgfQoKICAgIHJldHVybiBudWxsOwogIH0sCgogIC8vIHJlY3Vyc2l2ZWx5IGV4dHJhY3QgdGV4dCBmcm9tIERPTSB0cmVlCiAgZXh0cmFjdF90ZXh0OiBmdW5jdGlvbiAobm9kZSkgewogICAgaWYgKCFub2RlKQogICAgICByZXR1cm4gIiI7CgogICAgLy8gdGV4dCBub2RlcwogICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMykKICAgICAgcmV0dXJuIG5vZGUubm9kZVZhbHVlOwoKICAgIC8vIGVsZW1lbnRzCiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxKQogICAgewogICAgICBub2RlID0gbm9kZS5maXJzdENoaWxkOwogICAgICB2YXIgdGV4dCA9ICIiOwoKICAgICAgd2hpbGUgKG5vZGUpCiAgICAgIHsKICAgICAgICB0ZXh0ID0gdGV4dCArIHRoaXMuZXh0cmFjdF90ZXh0KG5vZGUpOwogICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgICB9CgogICAgICByZXR1cm4gdGV4dDsKICAgIH0KCiAgICByZXR1cm4gIiI7CiAgfSwKCiAgLy8gZmluZCBjb3B5cmlnaHQgdGV4dCBmcm9tIG1ldGEgZWxlbWVudAogIGZpbmRfY29weXJpZ2h0OiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgbmFtZSwgY29udGVudDsKICAgIHZhciBtZXRhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm1ldGEiKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1ldGEubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIG5hbWUgPSBtZXRhW2ldLmdldEF0dHJpYnV0ZSgibmFtZSIpOwogICAgICBjb250ZW50ID0gbWV0YVtpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKTsKCiAgICAgIGlmIChuYW1lID09ICJjb3B5cmlnaHQiKQogICAgICAgIHJldHVybiBjb250ZW50OwogICAgfQoKICAgIHJldHVybiBudWxsOwogIH0sCgogIGZpbmRfc2l6ZV9hZGp1c3Q6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBuYW1lLCBjb250ZW50LCBvZmZzZXQ7CiAgICB2YXIgbWV0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRhIik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXRhLmxlbmd0aDsgKytpKQogICAgewogICAgICBuYW1lID0gbWV0YVtpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKTsKICAgICAgY29udGVudCA9IG1ldGFbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50Iik7CgogICAgICBpZiAobmFtZSA9PSAiZm9udC1zaXplLWFkanVzdG1lbnQiKQogICAgICAgIHJldHVybiAxICogY29udGVudDsKICAgIH0KCiAgICByZXR1cm4gMTsKICB9LAoKICAvLyA8bWV0YSBuYW1lPSJkdXJhdGlvbiIgY29udGVudD0iMjAiIC8+ICBmb3IgMjAgbWludXRlcwogIGZpbmRfZHVyYXRpb246IGZ1bmN0aW9uICgpIHsKICAgIHZhciBuYW1lLCBjb250ZW50LCBvZmZzZXQ7CiAgICB2YXIgbWV0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRhIik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXRhLmxlbmd0aDsgKytpKQogICAgewogICAgICBuYW1lID0gbWV0YVtpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKTsKICAgICAgY29udGVudCA9IG1ldGFbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50Iik7CgogICAgICBpZiAobmFtZSA9PSAiZHVyYXRpb24iKQogICAgICAgIHJldHVybiA2MDAwMCAqIGNvbnRlbnQ7CiAgICB9CgogICAgcmV0dXJuIG51bGw7CiAgfSwKCiAgcmVwbGFjZV9ieV9ub25fYnJlYWtpbmdfc3BhY2U6IGZ1bmN0aW9uIChzdHIpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKQogICAgICBzdHJbaV0gPSAxNjA7CiAgfSwKCiAgLy8gIyMjIENIRUNLIE1FICMjIyBpcyB1c2Ugb2YgImxpIiBva2F5IGZvciB0ZXh0L2h0bWw/CiAgLy8gZm9yIFhIVE1MIGRvIHdlIGFsc28gbmVlZCB0byBzcGVjaWZ5IG5hbWVzcGFjZT8KICBpbml0X291dGxpbmVyOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaXRlbXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGkiKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKQogICAgewogICAgICB2YXIgdGFyZ2V0ID0gaXRlbXNbaV07CgogICAgICBpZiAoIXRoaXMuaGFzX2NsYXNzKHRhcmdldC5wYXJlbnROb2RlLCAib3V0bGluZSIpKQogICAgICAgIGNvbnRpbnVlOwoKICAgICAgdGFyZ2V0Lm9uY2xpY2sgPSB0aGlzLm91dGxpbmVfY2xpY2s7Ci8qICMjIyBtb3JlIHdvcmsgbmVlZGVkIGZvciBJRTYKICAgICAgaWYgKCF0aGlzLm5zX3BvcykKICAgICAgewogICAgICAgIHRhcmdldC5vbm1vdXNlb3ZlciA9IHRoaXMuaG92ZXJfb3V0bGluZTsKICAgICAgICB0YXJnZXQub25tb3VzZW91dCA9IHRoaXMudW5ob3Zlcl9vdXRsaW5lOwogICAgICB9CiovCiAgICAgIGlmICh0aGlzLmZvbGRhYmxlKHRhcmdldCkpCiAgICAgIHsKICAgICAgICB0YXJnZXQuZm9sZGFibGUgPSB0cnVlOwogICAgICAgIHRhcmdldC5vbmZvY3VzID0gZnVuY3Rpb24gKCkge3czY19zbGlkeS5vdXRsaW5lID0gdGhpczt9OwogICAgICAgIHRhcmdldC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7dzNjX3NsaWR5Lm91dGxpbmUgPSBudWxsO307CgogICAgICAgIGlmICghdGFyZ2V0LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSkKICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwgIjAiKTsKCiAgICAgICAgaWYgKHRoaXMuaGFzX2NsYXNzKHRhcmdldCwgImV4cGFuZCIpKQogICAgICAgICAgdGhpcy51bmZvbGQodGFyZ2V0KTsKICAgICAgICBlbHNlCiAgICAgICAgICB0aGlzLmZvbGQodGFyZ2V0KTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICB0aGlzLmFkZF9jbGFzcyh0YXJnZXQsICJub2ZvbGQiKTsKICAgICAgICB0YXJnZXQudmlzaWJsZSA9IHRydWU7CiAgICAgICAgdGFyZ2V0LmZvbGRhYmxlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9LAoKICBmb2xkYWJsZTogZnVuY3Rpb24gKGl0ZW0pIHsKICAgIGlmICghaXRlbSB8fCBpdGVtLm5vZGVUeXBlICE9IDEpCiAgICAgIHJldHVybiBmYWxzZTsKCiAgICB2YXIgbm9kZSA9IGl0ZW0uZmlyc3RDaGlsZDsKCiAgICB3aGlsZSAobm9kZSkKICAgIHsKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiB0aGlzLmlzX2Jsb2NrKG5vZGUpKQogICAgICAgIHJldHVybiB0cnVlOwoKICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwogIH0sCgogIC8vICMjIyBDSEVDSyBNRSAjIyMgc3dpdGNoIHRvIGFkZC9yZW1vdmUgImhpZGRlbiIgY2xhc3MKICBmb2xkOiBmdW5jdGlvbiAoaXRlbSkgewogICAgaWYgKGl0ZW0pCiAgICB7CiAgICAgIHRoaXMucmVtb3ZlX2NsYXNzKGl0ZW0sICJ1bmZvbGRlZCIpOwogICAgICB0aGlzLmFkZF9jbGFzcyhpdGVtLCAiZm9sZGVkIik7CiAgICB9CgogICAgdmFyIG5vZGUgPSBpdGVtID8gaXRlbS5maXJzdENoaWxkIDogbnVsbDsKCiAgICB3aGlsZSAobm9kZSkKICAgIHsKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiB0aGlzLmlzX2Jsb2NrKG5vZGUpKSAvLyBlbGVtZW50CiAgICAgIHsKICAgICAgICAgdzNjX3NsaWR5LmFkZF9jbGFzcyhub2RlLCAiaGlkZGVuIik7CiAgICAgIH0KCiAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgfQoKICAgIGl0ZW0udmlzaWJsZSA9IGZhbHNlOwogIH0sCgogIC8vICMjIyBDSEVDSyBNRSAjIyMgc3dpdGNoIHRvIGFkZC9yZW1vdmUgImhpZGRlbiIgY2xhc3MKICB1bmZvbGQ6IGZ1bmN0aW9uIChpdGVtKSB7CiAgICBpZiAoaXRlbSkKICAgIHsKICAgICAgdGhpcy5hZGRfY2xhc3MoaXRlbSwgInVuZm9sZGVkIik7CiAgICAgIHRoaXMucmVtb3ZlX2NsYXNzKGl0ZW0sICJmb2xkZWQiKTsKICAgIH0KCiAgICB2YXIgbm9kZSA9IGl0ZW0gPyBpdGVtLmZpcnN0Q2hpbGQgOiBudWxsOwoKICAgIHdoaWxlIChub2RlKQogICAgewogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxICYmIHRoaXMuaXNfYmxvY2sobm9kZSkpIC8vIGVsZW1lbnQKICAgICAgewogICAgICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3Mobm9kZSwgImhpZGRlbiIpOwogICAgICB9CgogICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZzsKICAgIH0KCiAgICBpdGVtLnZpc2libGUgPSB0cnVlOwogIH0sCgogIG91dGxpbmVfY2xpY2s6IGZ1bmN0aW9uIChlKSB7CiAgICBpZiAoIWUpCiAgICAgIGUgPSB3aW5kb3cuZXZlbnQ7CgogICAgdmFyIHJpZ2h0Y2xpY2sgPSBmYWxzZTsKICAgIHZhciB0YXJnZXQgPSB3M2Nfc2xpZHkuZ2V0X3RhcmdldChlKTsKCiAgICB3aGlsZSAodGFyZ2V0ICYmIHRhcmdldC52aXNpYmxlID09IHVuZGVmaW5lZCkKICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7CgogICAgaWYgKCF0YXJnZXQpCiAgICAgIHJldHVybiB0cnVlOwoKICAgIGlmIChlLndoaWNoKQogICAgICByaWdodGNsaWNrID0gKGUud2hpY2ggPT0gMyk7CiAgICBlbHNlIGlmIChlLmJ1dHRvbikKICAgICAgcmlnaHRjbGljayA9IChlLmJ1dHRvbiA9PSAyKTsKCiAgICBpZiAoIXJpZ2h0Y2xpY2sgJiYgdGFyZ2V0LnZpc2libGUgIT0gdW5kZWZpbmVkKQogICAgewogICAgICBpZiAodGFyZ2V0LmZvbGRhYmxlKQogICAgICB7CiAgICAgICAgaWYgKHRhcmdldC52aXNpYmxlKQogICAgICAgICAgdzNjX3NsaWR5LmZvbGQodGFyZ2V0KTsKICAgICAgICBlbHNlCiAgICAgICAgICB3M2Nfc2xpZHkudW5mb2xkKHRhcmdldCk7CiAgICAgIH0KCiAgICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGUpOwogICAgICBlLmNhbmNlbCA9IHRydWU7CiAgICAgIGUucmV0dXJuVmFsdWUgPSBmYWxzZTsKICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfSwKCiAgYWRkX2luaXRpYWxfcHJvbXB0OiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgcHJvbXB0ID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiZGl2Iik7CiAgICBwcm9tcHQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJpbml0aWFsX3Byb21wdCIpOwoKICAgIHZhciBwMSA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoInAiKTsKICAgIHByb21wdC5hcHBlbmRDaGlsZChwMSk7CiAgICBwMS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImhlbHAiKTsKCiAgICBpZiAodGhpcy5rZXlib2FyZGxlc3MpCiAgICAgIHAxLmlubmVySFRNTCA9ICJzd2lwZSBsZWZ0IHRvIG1vdmUgdG8gbmV4dCBzbGlkZSI7CiAgICBlbHNlCiAgICAgIHAxLmlubmVySFRNTCA9ICJTcGFjZSwgUmlnaHQgQXJyb3cgb3Igc3dpcGUgbGVmdCB0byBtb3ZlIHRvICIgKwogICAgICAgICAgICAgICAgICAgICAibmV4dCBzbGlkZSwgY2xpY2sgaGVscCBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzIjsKCiAgICB0aGlzLmFkZF9saXN0ZW5lcihwcm9tcHQsICJjbGljayIsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocHJvbXB0KTsKICAgICAgdzNjX3NsaWR5LnN0b3BfcHJvcGFnYXRpb24oZSk7CiAgICAKICAgICAgaWYgKGUuY2FuY2VsICE9IHVuZGVmaW5lZCkKICAgICAgICBlLmNhbmNlbCA9IHRydWU7CiAgICAgIAogICAgICBpZiAoZS5yZXR1cm5WYWx1ZSAhPSB1bmRlZmluZWQpCiAgICAgICAgZS5yZXR1cm5WYWx1ZSA9IGZhbHNlOwogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7CgogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwcm9tcHQpOwogICAgdGhpcy5pbml0aWFsX3Byb21wdCA9IHByb21wdDsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwcm9tcHQpO30sIDUwMDApOwogIH0sCgogIGFkZF90b29sYmFyOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgY291bnRlciwgcGFnZTsKCiAgICAgdGhpcy50b29sYmFyID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy50b29sYmFyLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAidG9vbGJhciIpOwoKICAgICAvLyBhIHJlYXNvbmFibHkgYmVoYXZlZCBicm93c2VyCiAgICAgaWYgKHRoaXMubnNfcG9zIHx8ICF0aGlzLmllNikKICAgICB7CiAgICAgICB2YXIgcmlnaHQgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJkaXYiKTsKICAgICAgIHJpZ2h0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodCIpOwoKICAgICAgIGNvdW50ZXIgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIikKICAgICAgIGNvdW50ZXIuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgic2xpZGUiKSArICIgbi9tIjsKICAgICAgIHJpZ2h0LmFwcGVuZENoaWxkKGNvdW50ZXIpOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKHJpZ2h0KTsKCiAgICAgICB2YXIgbGVmdCA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImRpdiIpOwogICAgICAgbGVmdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgInRleHQtYWxpZ246IGxlZnQiKTsKCiAgICAgICAvLyBnbG9iYWwgZW5kIG9mIHNsaWRlIGluZGljYXRvcgogICAgICAgdGhpcy5lb3MgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIik7CiAgICAgICB0aGlzLmVvcy5pbm5lckhUTUwgPSAiKiAiOwogICAgICAgbGVmdC5hcHBlbmRDaGlsZCh0aGlzLmVvcyk7CgogICAgICAgdmFyIGhlbHAgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJhIik7CiAgICAgICBoZWxwLnNldEF0dHJpYnV0ZSgiaHJlZiIsIHRoaXMuaGVscF9wYWdlKTsKICAgICAgIGhlbHAuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIHRoaXMubG9jYWxpemUodGhpcy5oZWxwX3RleHQpKTsKICAgICAgIGhlbHAuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgiaGVscD8iKTsKICAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoaGVscCk7CiAgICAgICB0aGlzLmhlbHBfYW5jaG9yID0gaGVscDsgIC8vIHNhdmUgZm9yIGZvY3VzIGhhY2sKCiAgICAgICB2YXIgZ2FwMSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIik7CiAgICAgICBsZWZ0LmFwcGVuZENoaWxkKGdhcDEpOwoKICAgICAgIHZhciBjb250ZW50cyA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImEiKTsKICAgICAgIGNvbnRlbnRzLnNldEF0dHJpYnV0ZSgiaHJlZiIsICJqYXZhc2NyaXB0OnczY19zbGlkeS50b2dnbGVfdGFibGVfb2ZfY29udGVudHMoKSIpOwogICAgICAgY29udGVudHMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIHRoaXMubG9jYWxpemUoInRhYmxlIG9mIGNvbnRlbnRzIikpOwogICAgICAgY29udGVudHMuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgiY29udGVudHM/Iik7CiAgICAgICBsZWZ0LmFwcGVuZENoaWxkKGNvbnRlbnRzKTsKCiAgICAgICB2YXIgZ2FwMiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIik7CiAgICAgICBsZWZ0LmFwcGVuZENoaWxkKGdhcDIpOwoKICAgICAgIHZhciBjb3B5cmlnaHQgPSB0aGlzLmZpbmRfY29weXJpZ2h0KCk7CgogICAgICAgaWYgKGNvcHlyaWdodCkKICAgICAgIHsKICAgICAgICAgdmFyIHNwYW4gPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIik7CiAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gImNvcHlyaWdodCI7CiAgICAgICAgIHNwYW4uaW5uZXJIVE1MID0gY29weXJpZ2h0OwogICAgICAgICBsZWZ0LmFwcGVuZENoaWxkKHNwYW4pOwogICAgICAgfQoKICAgICAgIHRoaXMudG9vbGJhci5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwgIjAiKTsKICAgICAgIHRoaXMudG9vbGJhci5hcHBlbmRDaGlsZChsZWZ0KTsKICAgICB9CiAgICAgZWxzZSAvLyBJRTYgc28gbmVlZCB0byB3b3JrIGFyb3VuZCBpdHMgcG9vciBDU1Mgc3VwcG9ydAogICAgIHsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS5wb3NpdGlvbiA9ICh0aGlzLmllNyA/ICJmaXhlZCIgOiAiYWJzb2x1dGUiKTsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS56SW5kZXggPSAiMjAwIjsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS53aWR0aCA9ICI5OS45JSI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUuaGVpZ2h0ID0gIjEuMmVtIjsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS50b3AgPSAiYXV0byI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUuYm90dG9tID0gIjAiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLmxlZnQgPSAiMCI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUucmlnaHQgPSAiMCI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUudGV4dEFsaWduID0gImxlZnQiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLmZvbnRTaXplID0gIjYwJSI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUuY29sb3IgPSAicmVkIjsKICAgICAgIHRoaXMudG9vbGJhci5ib3JkZXJXaWR0aCA9IDA7CiAgICAgICB0aGlzLnRvb2xiYXIuY2xhc3NOYW1lID0gInRvb2xiYXIiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLmJhY2tncm91bmQgPSAicmdiKDI0MCwyNDAsMjQwKSI7CgogICAgICAgLy8gd291bGQgbGlrZSB0byBoYXZlIGhlbHAgdGV4dCBsZWZ0IGFsaWduZWQKICAgICAgIC8vIGFuZCBwYWdlIGNvdW50ZXIgcmlnaHQgYWxpZ25lZCwgZmxvYXRpbmcKICAgICAgIC8vIGRpdidzIGRvbid0IHdvcmssIHNvIGluc3RlYWQgdXNlIG5lc3RlZAogICAgICAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkIGRpdidzLgoKICAgICAgIHZhciBzcCA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoInNwYW4iKTsKICAgICAgIHNwLmlubmVySFRNTCA9ICImbmJzcDsmbmJzcDsqJm5ic3A7IjsKICAgICAgIHRoaXMudG9vbGJhci5hcHBlbmRDaGlsZChzcCk7CiAgICAgICB0aGlzLmVvcyA9IHNwOyAgLy8gZW5kIG9mIHNsaWRlIGluZGljYXRvcgoKICAgICAgIHZhciBoZWxwID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiYSIpOwogICAgICAgaGVscC5zZXRBdHRyaWJ1dGUoImhyZWYiLCB0aGlzLmhlbHBfcGFnZSk7CiAgICAgICBoZWxwLnNldEF0dHJpYnV0ZSgidGl0bGUiLCB0aGlzLmxvY2FsaXplKHRoaXMuaGVscF90ZXh0KSk7CiAgICAgICBoZWxwLmlubmVySFRNTCA9IHRoaXMubG9jYWxpemUoImhlbHA/Iik7CiAgICAgICB0aGlzLnRvb2xiYXIuYXBwZW5kQ2hpbGQoaGVscCk7CiAgICAgICB0aGlzLmhlbHBfYW5jaG9yID0gaGVscDsgIC8vIHNhdmUgZm9yIGZvY3VzIGhhY2sKCiAgICAgICB2YXIgZ2FwMSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIik7CiAgICAgICB0aGlzLnRvb2xiYXIuYXBwZW5kQ2hpbGQoZ2FwMSk7CgogICAgICAgdmFyIGNvbnRlbnRzID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiYSIpOwogICAgICAgY29udGVudHMuc2V0QXR0cmlidXRlKCJocmVmIiwgImphdmFzY3JpcHQ6dG9nZ2xlVGFibGVPZkNvbnRlbnRzKCkiKTsKICAgICAgIGNvbnRlbnRzLnNldEF0dHJpYnV0ZSgidGl0bGUiLCB0aGlzLmxvY2FsaXplKCJ0YWJsZSBvZiBjb250ZW50cyIubG9jYWxpemUpKTsKICAgICAgIGNvbnRlbnRzLmlubmVySFRNTCA9IHRoaXMubG9jYWxpemUoImNvbnRlbnRzPyIpOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKGNvbnRlbnRzKTsKCiAgICAgICB2YXIgZ2FwMiA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIik7CiAgICAgICB0aGlzLnRvb2xiYXIuYXBwZW5kQ2hpbGQoZ2FwMik7CgogICAgICAgdmFyIGNvcHlyaWdodCA9IHRoaXMuZmluZF9jb3B5cmlnaHQoKTsKCiAgICAgICBpZiAoY29weXJpZ2h0KQogICAgICAgewogICAgICAgICB2YXIgc3BhbiA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoInNwYW4iKTsKICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBjb3B5cmlnaHQ7CiAgICAgICAgIHNwYW4uc3R5bGUuY29sb3IgPSAiYmxhY2siOwogICAgICAgICBzcGFuLnN0eWxlLm1hcmdpbkxlZnQgPSAiMC41ZW0iOwogICAgICAgICB0aGlzLnRvb2xiYXIuYXBwZW5kQ2hpbGQoc3Bhbik7CiAgICAgICB9CgogICAgICAgY291bnRlciA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImRpdiIpCiAgICAgICBjb3VudGVyLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKICAgICAgIGNvdW50ZXIuc3R5bGUud2lkdGggPSAiYXV0byI7IC8vIjIwJSI7CiAgICAgICBjb3VudGVyLnN0eWxlLmhlaWdodCA9ICIxLjJlbSI7CiAgICAgICBjb3VudGVyLnN0eWxlLnRvcCA9ICJhdXRvIjsKICAgICAgIGNvdW50ZXIuc3R5bGUuYm90dG9tID0gMDsKICAgICAgIGNvdW50ZXIuc3R5bGUucmlnaHQgPSAiMCI7CiAgICAgICBjb3VudGVyLnN0eWxlLnRleHRBbGlnbiA9ICJyaWdodCI7CiAgICAgICBjb3VudGVyLnN0eWxlLmNvbG9yID0gInJlZCI7CiAgICAgICBjb3VudGVyLnN0eWxlLmJhY2tncm91bmQgPSAicmdiKDI0MCwyNDAsMjQwKSI7CgogICAgICAgY291bnRlci5pbm5lckhUTUwgPSB0aGlzLmxvY2FsaXplKCJzbGlkZSIpICsgIiBuL20iOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKGNvdW50ZXIpOwogICAgIH0KCiAgICAgLy8gZW5zdXJlIHRoYXQgY2xpY2sgaXNuJ3QgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHBhZ2UKICAgICB0aGlzLnRvb2xiYXIub25jbGljayA9CiAgICAgICAgIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgaWYgKCFlKQogICAgICAgICAgICAgZSA9IHdpbmRvdy5ldmVudDsKCiAgICAgICAgICAgdmFyIHRhcmdldCA9IGUudGFyZ2V0OwoKICAgICAgICAgICBpZiAoIXRhcmdldCAmJiBlLnNyY0VsZW1lbnQpCiAgICAgICAgICAgICB0YXJnZXQgPSBlLnNyY0VsZW1lbnQ7CgogICAgICAgICAgIC8vIHdvcmsgYXJvdW5kIFNhZmFyaSBidWcKICAgICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5ub2RlVHlwZSA9PSAzKQogICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7CgogICAgICAgICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGUpOwoKICAgICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9ICJhIikKICAgICAgICAgICAgIHczY19zbGlkeS5tb3VzZV9idXR0b25fY2xpY2soZSk7CiAgICAgICAgIH07CgogICAgIHRoaXMuc2xpZGVfbnVtYmVyX2VsZW1lbnQgPSBjb3VudGVyOwogICAgIHRoaXMuc2V0X2Vvc19zdGF0dXMoZmFsc2UpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sYmFyKTsKICB9LAoKICAvLyB3eXNpd3lnIGVkaXRvcnMgbWFrZSBpdCBoYXJkIHRvIHVzZSBkaXYgZWxlbWVudHMKICAvLyBlLmcuIGFtYXlhIGxvc2VzIHRoZSBkaXYgd2hlbiB5b3UgY29weSBhbmQgcGFzdGUKICAvLyB0aGlzIGZ1bmN0aW9uIHdyYXBzIGRpdiBlbGVtZW50cyBhcm91bmQgaW1wbGljaXQKICAvLyBzbGlkZXMgd2hpY2ggc3RhcnQgd2l0aCBhbiBoMSBlbGVtZW50IGFuZCBjb250aW51ZQogIC8vIHVwIHRvIHRoZSBuZXh0IGhlYWRpbmcgb3IgZGl2IGVsZW1lbnQKICB3cmFwX2ltcGxpY2l0X3NsaWRlczogZnVuY3Rpb24gKCkgewogICAgdmFyIGksIGhlYWRpbmcsIG5vZGUsIG5leHQsIGRpdjsKICAgIHZhciBoZWFkaW5ncyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoMSIpOwoKICAgIGlmICghaGVhZGluZ3MpCiAgICAgIHJldHVybjsKCiAgICBmb3IgKGkgPSAwOyBpIDwgaGVhZGluZ3MubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIGhlYWRpbmcgPSBoZWFkaW5nc1tpXTsKCiAgICAgIGlmIChoZWFkaW5nLnBhcmVudE5vZGUgIT0gZG9jdW1lbnQuYm9keSkKICAgICAgICBjb250aW51ZTsKCiAgICAgIG5vZGUgPSBoZWFkaW5nLm5leHRTaWJsaW5nOwoKICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIHRoaXMuYWRkX2NsYXNzKGRpdiwgInNsaWRlIik7CiAgICAgIGRvY3VtZW50LmJvZHkucmVwbGFjZUNoaWxkKGRpdiwgaGVhZGluZyk7CiAgICAgIGRpdi5hcHBlbmRDaGlsZChoZWFkaW5nKTsKCiAgICAgIHdoaWxlIChub2RlKQogICAgICB7CiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSkgLy8gYW4gZWxlbWVudAogICAgICAgIHsKICAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PSAiSDEiIHx8IG5vZGUubm9kZU5hbWUgPT0gImgxIikKICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PSAiRElWIiB8fCBub2RlLm5vZGVOYW1lID09ICJkaXYiKQogICAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh0aGlzLmhhc19jbGFzcyhub2RlLCAic2xpZGUiKSkKICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgaWYgKHRoaXMuaGFzX2NsYXNzKG5vZGUsICJoYW5kb3V0IikpCiAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG5leHQgPSBub2RlLm5leHRTaWJsaW5nOwogICAgICAgIG5vZGUgPSBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG5vZGUpOwogICAgICAgIGRpdi5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICBub2RlID0gbmV4dDsKICAgICAgfSAKICAgIH0KICB9LAoKLy8gcmV0dXJuIG5ldyBhcnJheSBvZiBhbGwgc2xpZGVzCiAgY29sbGVjdF9zbGlkZXM6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBzbGlkZXMgPSBuZXcgQXJyYXkoKTsKICAgIHZhciBkaXZzID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2Iik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgKytpKQogICAgewogICAgICBkaXYgPSBkaXZzLml0ZW0oaSk7CgogICAgICBpZiAodGhpcy5oYXNfY2xhc3MoZGl2LCAic2xpZGUiKSkKICAgICAgewogICAgICAgIC8vIGFkZCBzbGlkZSB0byBjb2xsZWN0aW9uCiAgICAgICAgc2xpZGVzW3NsaWRlcy5sZW5ndGhdID0gZGl2OwoKICAgICAgICAvLyBoaWRlIGVhY2ggc2xpZGUgYXMgaXQgaXMgZm91bmQKICAgICAgICB0aGlzLmFkZF9jbGFzcyhkaXYsICJoaWRkZW4iKTsKCiAgICAgICAgLy8gYWRkIGR1bW15IDxici8+IGF0IGVuZCBmb3Igc2Nyb2xsaW5nIGhhY2sKICAgICAgICB2YXIgbm9kZTEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpOwogICAgICAgIGRpdi5hcHBlbmRDaGlsZChub2RlMSk7CiAgICAgICAgdmFyIG5vZGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKTsKICAgICAgICBkaXYuYXBwZW5kQ2hpbGQobm9kZTIpOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHRoaXMuaGFzX2NsYXNzKGRpdiwgImJhY2tncm91bmQiKSkKICAgICAgeyAgLy8gd29yayBhcm91bmQgZm9yIEZpcmVmb3ggU1ZHIHJlbG9hZCBidWcKICAgICAgICAvLyB3aGljaCBvdGhlcndpc2UgcmVwbGFjZXMgMXN0IFNWRyBncmFwaGljIHdpdGggMm5kCiAgICAgICAgZGl2LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICB9CiAgICB9CgogICAgdGhpcy5zbGlkZXMgPSBzbGlkZXM7CiAgfSwKCiAgLy8gcmV0dXJuIG5ldyBhcnJheSBvZiBhbGwgPGRpdiBjbGFzcz0iaGFuZG91dCI+CiAgY29sbGVjdF9ub3RlczogZnVuY3Rpb24gKCkgewogICAgdmFyIG5vdGVzID0gbmV3IEFycmF5KCk7CiAgICB2YXIgZGl2cyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgZGl2ID0gZGl2cy5pdGVtKGkpOwoKICAgICAgaWYgKHRoaXMuaGFzX2NsYXNzKGRpdiwgImhhbmRvdXQiKSkKICAgICAgewogICAgICAgIC8vIGFkZCBub3RlIHRvIGNvbGxlY3Rpb24KICAgICAgICBub3Rlc1tub3Rlcy5sZW5ndGhdID0gZGl2OwoKICAgICAgICAvLyBhbmQgaGlkZSBpdAogICAgICAgIHRoaXMuYWRkX2NsYXNzKGRpdiwgImhpZGRlbiIpOwogICAgICB9CiAgICB9CgogICAgdGhpcy5ub3RlcyA9IG5vdGVzOwogIH0sCgogIC8vIHJldHVybiBuZXcgYXJyYXkgb2YgYWxsIDxkaXYgY2xhc3M9ImJhY2tncm91bmQiPgogIC8vIGluY2x1ZGluZyBuYW1lZCBiYWNrZ3JvdW5kcyBlLmcuIGNsYXNzPSJiYWNrZ3JvdW5kIHRpdGxlcGFnZSIKICBjb2xsZWN0X2JhY2tncm91bmRzOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgYmFja2dyb3VuZHMgPSBuZXcgQXJyYXkoKTsKICAgIHZhciBkaXZzID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2Iik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgKytpKQogICAgewogICAgICBkaXYgPSBkaXZzLml0ZW0oaSk7CgogICAgICBpZiAodGhpcy5oYXNfY2xhc3MoZGl2LCAiYmFja2dyb3VuZCIpKQogICAgICB7CiAgICAgICAgLy8gYWRkIGJhY2tncm91bmQgdG8gY29sbGVjdGlvbgogICAgICAgIGJhY2tncm91bmRzW2JhY2tncm91bmRzLmxlbmd0aF0gPSBkaXY7CgogICAgICAgIC8vIGFuZCBoaWRlIGl0CiAgICAgICAgdGhpcy5hZGRfY2xhc3MoZGl2LCAiaGlkZGVuIik7CiAgICAgIH0KICAgIH0KCiAgICB0aGlzLmJhY2tncm91bmRzID0gYmFja2dyb3VuZHM7CiAgfSwKCiAgLy8gc2V0IGNsaWNrIGhhbmRsZXJzIG9uIGFsbCBhbmNob3JzCiAgcGF0Y2hfYW5jaG9yczogZnVuY3Rpb24gKCkgewogICAgdmFyIHNlbGYgPSB3M2Nfc2xpZHk7CiAgICB2YXIgaGFuZGxlciA9IGZ1bmN0aW9uIChldmVudCkgewogICAgICAvLyBjb21wYXJlIHRoaXMuaHJlZiB3aXRoIGxvY2F0aW9uLmhyZWYKICAgICAgLy8gZm9yIGxpbmsgdG8gYW5vdGhlciBzbGlkZSBpbiB0aGlzIGRvYwoKICAgICAgaWYgKHNlbGYucGFnZV9hZGRyZXNzKHRoaXMuaHJlZikgPT0gc2VsZi5wYWdlX2FkZHJlc3MobG9jYXRpb24uaHJlZikpCiAgICAgIHsKICAgICAgICAvLyB5ZXMsIHNvIGZpbmQgbmV3IHNsaWRlIG51bWJlcgogICAgICAgIHZhciBuZXdzbGlkZW51bSA9IHNlbGYuZmluZF9zbGlkZV9udW1iZXIodGhpcy5ocmVmKTsKCiAgICAgICAgaWYgKG5ld3NsaWRlbnVtICE9IHNlbGYuc2xpZGVfbnVtYmVyKQogICAgICAgIHsKICAgICAgICAgIHZhciBzbGlkZSA9IHNlbGYuc2xpZGVzW3NlbGYuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgIHNlbGYuaGlkZV9zbGlkZShzbGlkZSk7CiAgICAgICAgICBzZWxmLnNsaWRlX251bWJlciA9IG5ld3NsaWRlbnVtOwogICAgICAgICAgc2xpZGUgPSBzZWxmLnNsaWRlc1tzZWxmLnNsaWRlX251bWJlcl07CiAgICAgICAgICBzZWxmLnNob3dfc2xpZGUoc2xpZGUpOwogICAgICAgICAgc2VsZi5zZXRfbG9jYXRpb24oKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZQogICAgICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGV2ZW50KTsKCi8vICAgICAgZWxzZSBpZiAodGhpcy50YXJnZXQgPT0gbnVsbCkKLy8gICAgICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLmhyZWY7CgogICAgICB0aGlzLmJsdXIoKTsKICAgICAgc2VsZi5kaXNhYmxlX3NsaWRlX2NsaWNrID0gdHJ1ZTsKICAgIH07CgogICAgdmFyIGFuY2hvcnMgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgKytpKQogICAgewogICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpCiAgICAgICAgYW5jaG9yc1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRsZXIsIGZhbHNlKTsKICAgICAgZWxzZQogICAgICAgIGFuY2hvcnNbaV0uYXR0YWNoRXZlbnQoIm9uY2xpY2siLCBoYW5kbGVyKTsKICAgIH0KICB9LAoKICAvLyAjIyMgQ0hFQ0sgTUUgIyMjIHNlZSB3aGljaCBmdW5jdGlvbnMgYXJlIGludm9rZWQgdmlhIHNldFRpbWVvdXQKICAvLyBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBmb3IgdXNlIG9mIHczY19zbGlkeSB2cyB0aGlzCiAgc2hvd19zbGlkZV9udW1iZXI6IGZ1bmN0aW9uICgpIHsKICAgIHZhciB0aW1lciA9IHczY19zbGlkeS5nZXRfdGltZXIoKTsKICAgIHczY19zbGlkeS5zbGlkZV9udW1iZXJfZWxlbWVudC5pbm5lckhUTUwgPSB0aW1lciArIHczY19zbGlkeS5sb2NhbGl6ZSgic2xpZGUiKSArICIgIiArCiAgICAgICAgICAgKHczY19zbGlkeS5zbGlkZV9udW1iZXIgKyAxKSArICIvIiArIHczY19zbGlkeS5zbGlkZXMubGVuZ3RoOwogIH0sCgogIC8vIGV2ZXJ5IDIwMG1TIGNoZWNrIGlmIHRoZSBsb2NhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEKICAvLyByZXN1bHQgb2YgdGhlIHVzZXIgYWN0aXZhdGluZyB0aGUgQmFjayBidXR0b24vbWVudSBpdGVtCiAgLy8gZG9lc24ndCB3b3JrIGZvciBPcGVyYSA8IDkuNQogIGNoZWNrX2xvY2F0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaGFzaCA9IGxvY2F0aW9uLmhhc2g7CgogICAgaWYgKHczY19zbGlkeS5zbGlkZV9udW1iZXIgPiAwICYmIChoYXNoID09ICIiIHx8IGhhc2ggPT0gIiMiKSkKICAgICAgdzNjX3NsaWR5LmdvdG9fc2xpZGUoMCk7CiAgICBlbHNlIGlmIChoYXNoLmxlbmd0aCA+IDIgJiYgaGFzaCAhPSAiIygiKyh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyKzEpKyIpIikKICAgIHsKICAgICAgdmFyIG51bSA9IHBhcnNlSW50KGxvY2F0aW9uLmhhc2guc3Vic3RyKDIpKTsKCiAgICAgIGlmICghaXNOYU4obnVtKSkKICAgICAgICB3M2Nfc2xpZHkuZ290b19zbGlkZShudW0tMSk7CiAgICB9CgogICAgaWYgKHczY19zbGlkeS50aW1lX2xlZnQgJiYgdzNjX3NsaWR5LnNsaWRlX251bWJlciA+IDApCiAgICB7CiAgICAgIHczY19zbGlkeS5zaG93X3NsaWRlX251bWJlcigpOwoKICAgICAgaWYgKHczY19zbGlkeS50aW1lX2xlZnQgPiAwKQogICAgICAgIHczY19zbGlkeS50aW1lX2xlZnQgLT0gMjAwOwogICAgfSAKICB9LAoKICBnZXRfdGltZXI6IGZ1bmN0aW9uICgpIHsKICAgIHZhciB0aW1lciA9ICIiOwogICAgaWYgKHczY19zbGlkeS50aW1lX2xlZnQpCiAgICB7CiAgICAgIHZhciBtaW5zLCBzZWNzOwogICAgICBzZWNzID0gTWF0aC5mbG9vcih3M2Nfc2xpZHkudGltZV9sZWZ0LzEwMDApOwogICAgICBtaW5zID0gTWF0aC5mbG9vcihzZWNzIC8gNjApOwogICAgICBzZWNzID0gc2VjcyAlIDYwOwogICAgICB0aW1lciA9IChtaW5zID8gbWlucysibSIgOiAiIikgKyBzZWNzICsgInMgIjsKICAgIH0KCiAgICByZXR1cm4gdGltZXI7CiAgfSwKCiAgLy8gdGhpcyBkb2Vzbid0IHB1c2ggbG9jYXRpb24gb250byBoaXN0b3J5IHN0YWNrIGZvciBJRQogIC8vIGZvciB3aGljaCBhIGhpZGRlbiBpZnJhbWUgaGFjayBpcyBuZWVkZWQ6IGxvYWQgcGFnZSBpbnRvCiAgLy8gdGhlIGlmcmFtZSB3aXRoIHNjcmlwdCB0aGF0IHNldCdzIHBhcmVudCdzIGxvY2F0aW9uLmhhc2gKICAvLyBidXQgdGhhdCB3b24ndCB3b3JrIGZvciBzdGFuZGFsb25lIHVzZSB1bmxlc3Mgd2UgY2FuCiAgLy8gY3JlYXRlIHRoZSBwYWdlIGR5bmFtaWNhbGx5IHZpYSBhIGphdmFzY3JpcHQ6IFVSTAogIC8vICMjIyB1c2UgaGlzdG9yeS5wdXNoU3RhdGUgaWYgYXZhaWxhYmxlCiAgc2V0X2xvY2F0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgdmFyIHVyaSA9IHczY19zbGlkeS5wYWdlX2FkZHJlc3MobG9jYXRpb24uaHJlZik7CiAgICAgdmFyIGhhc2ggPSAiIygiICsgKHczY19zbGlkeS5zbGlkZV9udW1iZXIrMSkgKyAiKSI7CgogICAgIGlmICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID49IDApCiAgICAgICB1cmkgPSB1cmkgKyBoYXNoOwoKICAgICBpZiAodHlwZW9mKGhpc3RvcnkucHVzaFN0YXRlKSAhPSAidW5kZWZpbmVkIikKICAgICB7CiAgICAgICBkb2N1bWVudC50aXRsZSA9IHczY19zbGlkeS50aXRsZSArICIgKCIgKyAodzNjX3NsaWR5LnNsaWRlX251bWJlcisxKSArICIpIjsKICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKDAsIGRvY3VtZW50LnRpdGxlLCBoYXNoKTsKICAgICAgIHczY19zbGlkeS5zaG93X3NsaWRlX251bWJlcigpOwogICAgICAgcmV0dXJuOwogICAgIH0KCiAgICAgaWYgKHczY19zbGlkeS5pZSAmJiAodzNjX3NsaWR5LmllNiB8fCB3M2Nfc2xpZHkuaWU3KSkKICAgICAgIHczY19zbGlkeS5wdXNoX2hhc2goaGFzaCk7CgogICAgIGlmICh1cmkgIT0gbG9jYXRpb24uaHJlZikgLy8gJiYgIWtodG1sCiAgICAgICAgbG9jYXRpb24uaHJlZiA9IHVyaTsKCiAgICAgaWYgKHRoaXMua2h0bWwpCiAgICAgICAgaGFzaCA9ICIoIiArICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyKzEpICsgIikiOwoKICAgICBpZiAoIXRoaXMuaWUgJiYgbG9jYXRpb24uaGFzaCAhPSBoYXNoICYmIGxvY2F0aW9uLmhhc2ggIT0gIiIpCiAgICAgICBsb2NhdGlvbi5oYXNoID0gaGFzaDsKCiAgICAgZG9jdW1lbnQudGl0bGUgPSB3M2Nfc2xpZHkudGl0bGUgKyAiICgiICsgKHczY19zbGlkeS5zbGlkZV9udW1iZXIrMSkgKyAiKSI7CiAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGVfbnVtYmVyKCk7CiAgfSwKCiAgcGFnZV9hZGRyZXNzOiBmdW5jdGlvbiAodXJpKSB7CiAgICB2YXIgaSA9IHVyaS5pbmRleE9mKCIjIik7CgogICAgaWYgKGkgPCAwKQogICAgICBpID0gdXJpLmluZGV4T2YoIiUyMyIpOwoKICAgIC8vIGNoZWNrIGlmIGFuY2hvciBpcyBlbnRpcmUgcGFnZQoKICAgIGlmIChpIDwgMCkKICAgICAgcmV0dXJuIHVyaTsgIC8vIHllcwoKICAgIHJldHVybiB1cmkuc3Vic3RyKDAsIGkpOwogIH0sCgogIC8vIG9ubHkgdXNlZCBmb3IgSUU2IGFuZCBJRTcKICBvbl9mcmFtZV9sb2FkZWQ6IGZ1bmN0aW9uIChoYXNoKSB7CiAgICBsb2NhdGlvbi5oYXNoID0gaGFzaDsKICAgIHZhciB1cmkgPSB3M2Nfc2xpZHkucGFnZV9hZGRyZXNzKGxvY2F0aW9uLmhyZWYpOwogICAgbG9jYXRpb24uaHJlZiA9IHVyaSArIGhhc2g7CiAgfSwKCiAgLy8gaGlzdG9yeSBoYWNrIHdpdGggdGhhbmtzIHRvIEJlcnRyYW5kIExlIFJveQogIHB1c2hfaGFzaDogZnVuY3Rpb24gKGhhc2gpIHsKICAgIGlmIChoYXNoID09ICIiKSBoYXNoID0gIiMoMSkiOwogICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9IGhhc2g7CgogICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaXN0b3J5RnJhbWUiKS5jb250ZW50V2luZG93LmRvY3VtZW50OwogICAgZG9jLm9wZW4oImphdmFzY3JpcHQ6JzxodG1sPjwvaHRtbD4nIik7CiAgICBkb2Mud3JpdGUoIjxodG1sPjxoZWFkPjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPndpbmRvdy5wYXJlbnQudzNjX3NsaWR5Lm9uX2ZyYW1lX2xvYWRlZCgnIisKICAgICAgKGhhc2gpICsgIicpOzwvc2NyaXB0PjwvaGVhZD48Ym9keT5oZWxsbyBtdW08L2JvZHk+PC9odG1sPiIpOwogICAgICBkb2MuY2xvc2UoKTsKICB9LAoKICAvLyBmaW5kIGN1cnJlbnQgc2xpZGUgYmFzZWQgdXBvbiBsb2NhdGlvbgogIC8vIGZpcnN0IGZpbmQgdGFyZ2V0IGFuY2hvciBhbmQgdGhlbiBsb29rCiAgLy8gZm9yIGFzc29jaWF0ZWQgZGl2IGVsZW1lbnQgZW5jbG9zaW5nIGl0CiAgLy8gZmluYWxseSBtYXAgdGhhdCB0byBzbGlkZSBudW1iZXIKICBmaW5kX3NsaWRlX251bWJlcjogZnVuY3Rpb24gKHVyaSkgewogICAgLy8gZmlyc3QgZ2V0IGFuY2hvciBmcm9tIHBhZ2UgbG9jYXRpb24KCiAgICB2YXIgaSA9IHVyaS5pbmRleE9mKCIjIik7CgogICAgLy8gY2hlY2sgaWYgYW5jaG9yIGlzIGVudGlyZSBwYWdlCiAgICBpZiAoaSA8IDApCiAgICAgIHJldHVybiAwOyAgLy8geWVzCgogICAgdmFyIGFuY2hvciA9IHVuZXNjYXBlKHVyaS5zdWJzdHIoaSsxKSk7CgogICAgLy8gbm93IHVzZSBhbmNob3IgYXMgWE1MIElEIHRvIGZpbmQgdGFyZ2V0CiAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYW5jaG9yKTsKCiAgICBpZiAoIXRhcmdldCkKICAgIHsKICAgICAgLy8gZG9lcyBhbmNob3IgbG9vayBsaWtlICIoMikiIGZvciBzbGlkZSAyID8/CiAgICAgIC8vIHdoZXJlIGZpcnN0IHNsaWRlIGlzICgxKQogICAgICB2YXIgcmUgPSAvXCgoXGQpK1wpLzsKCiAgICAgIGlmIChhbmNob3IubWF0Y2gocmUpKQogICAgICB7CiAgICAgICAgdmFyIG51bSA9IHBhcnNlSW50KGFuY2hvci5zdWJzdHJpbmcoMSwgYW5jaG9yLmxlbmd0aC0xKSk7CgogICAgICAgIGlmIChudW0gPiB0aGlzLnNsaWRlcy5sZW5ndGgpCiAgICAgICAgICBudW0gPSAxOwoKICAgICAgICBpZiAoLS1udW0gPCAwKQogICAgICAgICAgbnVtID0gMDsKCiAgICAgICAgcmV0dXJuIG51bTsKICAgICAgfQoKICAgICAgLy8gYWNjZXB0IFsyXSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgICAgcmUgPSAvXFsoXGQpK1xdLzsKCiAgICAgIGlmIChhbmNob3IubWF0Y2gocmUpKQogICAgICB7CiAgICAgICAgIHZhciBudW0gPSBwYXJzZUludChhbmNob3Iuc3Vic3RyaW5nKDEsIGFuY2hvci5sZW5ndGgtMSkpOwoKICAgICAgICAgaWYgKG51bSA+IHRoaXMuc2xpZGVzLmxlbmd0aCkKICAgICAgICAgICAgbnVtID0gMTsKCiAgICAgICAgIGlmICgtLW51bSA8IDApCiAgICAgICAgICAgIG51bSA9IDA7CgogICAgICAgICByZXR1cm4gbnVtOwogICAgICB9CgogICAgICAvLyBvaCBkZWFyIHVua25vd24gYW5jaG9yCiAgICAgIHJldHVybiAwOwogICAgfQoKICAgIC8vIHNlYXJjaCBmb3IgZW5jbG9zaW5nIHNsaWRlCgogICAgd2hpbGUgKHRydWUpCiAgICB7CiAgICAgIC8vIGJyb3dzZXIgY29lcmNlcyBodG1sIGVsZW1lbnRzIHRvIHVwcGVyY2FzZSEKICAgICAgaWYgKHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09ICJkaXYiICYmCiAgICAgICAgICAgIHRoaXMuaGFzX2NsYXNzKHRhcmdldCwgInNsaWRlIikpCiAgICAgIHsKICAgICAgICAvLyBmb3VuZCB0aGUgc2xpZGUgZWxlbWVudAogICAgICAgIGJyZWFrOwogICAgICB9CgogICAgICAvLyBvdGhlcndpc2UgdHJ5IHBhcmVudCBlbGVtZW50IGlmIGFueQoKICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7CgogICAgICBpZiAoIXRhcmdldCkKICAgICAgewogICAgICAgIHJldHVybiAwOyAgIC8vIG5vIGx1Y2shCiAgICAgIH0KICAgIH07CgogICAgZm9yIChpID0gMDsgaSA8IHNsaWRlcy5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgaWYgKHNsaWRlc1tpXSA9PSB0YXJnZXQpCiAgICAgICAgcmV0dXJuIGk7ICAvLyBzdWNjZXNzCiAgICB9CgogICAgLy8gb2ggZGVhciBzdGlsbCBubyBsdWNrCiAgICByZXR1cm4gMDsKICB9LAoKICBwcmV2aW91c19zbGlkZTogZnVuY3Rpb24gKGluY3JlbWVudGFsKSB7CiAgICBpZiAoIXczY19zbGlkeS52aWV3X2FsbCkKICAgIHsKICAgICAgdmFyIHNsaWRlOwoKICAgICAgaWYgKChpbmNyZW1lbnRhbCB8fCB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID09IDApICYmIHczY19zbGlkeS5sYXN0X3Nob3duICE9IG51bGwpCiAgICAgIHsKICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IHczY19zbGlkeS5oaWRlX3ByZXZpb3VzX2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pOwogICAgICAgIHczY19zbGlkeS5zZXRfZW9zX3N0YXR1cyhmYWxzZSk7CiAgICAgIH0KICAgICAgZWxzZSBpZiAodzNjX3NsaWR5LnNsaWRlX251bWJlciA+IDApCiAgICAgIHsKICAgICAgICBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwoKICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID0gdzNjX3NsaWR5LnNsaWRlX251bWJlciAtIDE7CiAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgIHczY19zbGlkeS5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoInZpc2libGUiKTsKICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IHczY19zbGlkeS5wcmV2aW91c19pbmNyZW1lbnRhbF9pdGVtKG51bGwpOwogICAgICAgIHczY19zbGlkeS5zZXRfZW9zX3N0YXR1cyh0cnVlKTsKICAgICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICAgIH0KCiAgICAgIHczY19zbGlkeS5zZXRfbG9jYXRpb24oKTsKCiAgICAgIGlmICghdzNjX3NsaWR5Lm5zX3BvcykKICAgICAgICB3M2Nfc2xpZHkucmVmcmVzaF90b29sYmFyKDIwMCk7CiAgICB9CiAgfSwKCiAgbmV4dF9zbGlkZTogZnVuY3Rpb24gKGluY3JlbWVudGFsKSB7CiAgICBpZiAoIXczY19zbGlkeS52aWV3X2FsbCkKICAgIHsKICAgICAgdmFyIHNsaWRlLCBsYXN0ID0gdzNjX3NsaWR5Lmxhc3Rfc2hvd247CgogICAgICBpZiAoaW5jcmVtZW50YWwgfHwgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9PSB3M2Nfc2xpZHkuc2xpZGVzLmxlbmd0aCAtIDEpCiAgICAgICAgIHczY19zbGlkeS5sYXN0X3Nob3duID0gdzNjX3NsaWR5LnJldmVhbF9uZXh0X2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pOwoKICAgICAgaWYgKCghaW5jcmVtZW50YWwgfHwgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPT0gbnVsbCkgJiYKICAgICAgICAgICAgIHczY19zbGlkeS5zbGlkZV9udW1iZXIgPCB3M2Nfc2xpZHkuc2xpZGVzLmxlbmd0aCAtIDEpCiAgICAgIHsKICAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CgogICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID0gdzNjX3NsaWR5LnNsaWRlX251bWJlciArIDE7CiAgICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSBudWxsOwogICAgICAgICB3M2Nfc2xpZHkuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJoaWRkZW4iKTsKICAgICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgICB9CiAgICAgIGVsc2UgaWYgKCF3M2Nfc2xpZHkubGFzdF9zaG93bikKICAgICAgewogICAgICAgICBpZiAobGFzdCAmJiBpbmNyZW1lbnRhbCkKICAgICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IGxhc3Q7CiAgICAgIH0KCiAgICAgIHczY19zbGlkeS5zZXRfbG9jYXRpb24oKTsKCiAgICAgIHczY19zbGlkeS5zZXRfZW9zX3N0YXR1cyghdzNjX3NsaWR5Lm5leHRfaW5jcmVtZW50YWxfaXRlbSh3M2Nfc2xpZHkubGFzdF9zaG93bikpOwoKICAgICAgaWYgKCF3M2Nfc2xpZHkubnNfcG9zKQogICAgICAgICB3M2Nfc2xpZHkucmVmcmVzaF90b29sYmFyKDIwMCk7CiAgICAgfQogIH0sCgogIC8vIHRvIGZpcnN0IHNsaWRlIHdpdGggbm90aGluZyByZXZlYWxlZAogIC8vIGkuZS4gc3RhdGUgYXQgc3RhcnQgb2YgcHJlc2VudGF0aW9uCiAgZmlyc3Rfc2xpZGU6IGZ1bmN0aW9uICgpIHsKICAgICBpZiAoIXczY19zbGlkeS52aWV3X2FsbCkKICAgICB7CiAgICAgICB2YXIgc2xpZGU7CgogICAgICAgaWYgKHczY19zbGlkeS5zbGlkZV9udW1iZXIgIT0gMCkKICAgICAgIHsKICAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CgogICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID0gMDsKICAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IG51bGw7CiAgICAgICAgIHczY19zbGlkeS5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoImhpZGRlbiIpOwogICAgICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICAgICB9CgogICAgICAgdzNjX3NsaWR5LnNldF9lb3Nfc3RhdHVzKAogICAgICAgICAhdzNjX3NsaWR5Lm5leHRfaW5jcmVtZW50YWxfaXRlbSh3M2Nfc2xpZHkubGFzdF9zaG93bikpOwogICAgICAgdzNjX3NsaWR5LnNldF9sb2NhdGlvbigpOwogICAgIH0KICB9LAoKICAvLyBnb3RvIGxhc3Qgc2xpZGUgd2l0aCBldmVyeXRoaW5nIHJldmVhbGVkCiAgLy8gaS5lLiBzdGF0ZSBhdCBlbmQgb2YgcHJlc2VudGF0aW9uCiAgbGFzdF9zbGlkZTogZnVuY3Rpb24gKCkgewogICAgaWYgKCF3M2Nfc2xpZHkudmlld19hbGwpCiAgICB7CiAgICAgIHZhciBzbGlkZTsKCiAgICAgIHczY19zbGlkeS5sYXN0X3Nob3duID0gbnVsbDsgLy9yZXZlYWxOZXh0SXRlbShsYXN0U2hvd24pOwoKICAgICAgaWYgKHczY19zbGlkeS5sYXN0X3Nob3duID09IG51bGwgJiYKICAgICAgICAgIHczY19zbGlkeS5zbGlkZV9udW1iZXIgPCB3M2Nfc2xpZHkuc2xpZGVzLmxlbmd0aCAtIDEpCiAgICAgIHsKICAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CiAgICAgICAgIHczY19zbGlkeS5zbGlkZV9udW1iZXIgPSB3M2Nfc2xpZHkuc2xpZGVzLmxlbmd0aCAtIDE7CiAgICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgdzNjX3NsaWR5LnNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbCgidmlzaWJsZSIpOwogICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IHczY19zbGlkeS5wcmV2aW91c19pbmNyZW1lbnRhbF9pdGVtKG51bGwpOwoKICAgICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICB3M2Nfc2xpZHkuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJ2aXNpYmxlIik7CiAgICAgICAgIHczY19zbGlkeS5sYXN0X3Nob3duID0gdzNjX3NsaWR5LnByZXZpb3VzX2luY3JlbWVudGFsX2l0ZW0obnVsbCk7CiAgICAgIH0KCiAgICAgIHczY19zbGlkeS5zZXRfZW9zX3N0YXR1cyh0cnVlKTsKICAgICAgdzNjX3NsaWR5LnNldF9sb2NhdGlvbigpOwogICAgfQogIH0sCgoKICAvLyAjIyMgY2hlY2sgdGhpcyBhbmQgY29uc2lkZXIgYWRkL3JlbW92ZSBjbGFzcwogIHNldF9lb3Nfc3RhdHVzOiBmdW5jdGlvbiAoc3RhdGUpIHsKICAgIGlmICh0aGlzLmVvcykKICAgICAgdGhpcy5lb3Muc3R5bGUuY29sb3IgPSAoc3RhdGUgPyAicmdiKDI0MCwyNDAsMjQwKSIgOiAicmVkIik7CiAgfSwKCiAgLy8gZmlyc3Qgc2xpZGUgaXMgMAogIGdvdG9fc2xpZGU6IGZ1bmN0aW9uIChudW0pIHsKICAgIC8vYWxlcnQoImdvaW5nIHRvIHNsaWRlICIgKyAobnVtKzEpKTsKICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CiAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID0gbnVtOwogICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSBudWxsOwogICAgdzNjX3NsaWR5LnNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbCgiaGlkZGVuIik7CiAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXMoIXczY19zbGlkeS5uZXh0X2luY3JlbWVudGFsX2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pKTsKICAgIGRvY3VtZW50LnRpdGxlID0gdzNjX3NsaWR5LnRpdGxlICsgIiAoIiArICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyKzEpICsgIikiOwogICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgdzNjX3NsaWR5LnNob3dfc2xpZGVfbnVtYmVyKCk7CiAgfSwKCgogIHNob3dfc2xpZGU6IGZ1bmN0aW9uIChzbGlkZSkgewogICAgdGhpcy5zeW5jX2JhY2tncm91bmQoc2xpZGUpOwogICAgd2luZG93LnNjcm9sbFRvKDAsMCk7CiAgICB0aGlzLnJlbW92ZV9jbGFzcyhzbGlkZSwgImhpZGRlbiIpOwogIH0sCgogIGhpZGVfc2xpZGU6IGZ1bmN0aW9uIChzbGlkZSkgewogICAgdGhpcy5hZGRfY2xhc3Moc2xpZGUsICJoaWRkZW4iKTsKICB9LAoKICAvLyBzaG93IGp1c3QgdGhlIGJhY2tncm91bmRzIHBlcnRpbmVudCB0byB0aGlzIHNsaWRlCiAgLy8gd2hlbiBzbGlkZSBiYWNrZ3JvdW5kLWNvbG9yIGlzIHRyYW5zcGFyZW50CiAgLy8gdGhpcyBzaG91bGQgbm93IHdvcmsgd2l0aCByZ2JhIGNvbG9yIHZhbHVlcwogIHN5bmNfYmFja2dyb3VuZDogZnVuY3Rpb24gKHNsaWRlKSB7CiAgICB2YXIgYmFja2dyb3VuZDsKICAgIHZhciBiZ0NvbG9yOwoKICAgIGlmIChzbGlkZS5jdXJyZW50U3R5bGUpCiAgICAgIGJnQ29sb3IgPSBzbGlkZS5jdXJyZW50U3R5bGVbImJhY2tncm91bmRDb2xvciJdOwogICAgZWxzZSBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcpCiAgICB7CiAgICAgIHZhciBzdHlsZXMgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHNsaWRlLG51bGwpOwoKICAgICAgaWYgKHN0eWxlcykKICAgICAgICBiZ0NvbG9yID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoImJhY2tncm91bmQtY29sb3IiKTsKICAgICAgZWxzZSAvLyBicm9rZW4gaW1wbGVtZW50YXRpb24gcHJvYmFibHkgZHVlIFNhZmFyaSBvciBLb25xdWVyb3IKICAgICAgewogICAgICAgIC8vYWxlcnQoImRlZmVjdGl2ZSBpbXBsZW1lbnRhdGlvbiBvZiBnZXRDb21wdXRlZFN0eWxlKCkiKTsKICAgICAgICBiZ0NvbG9yID0gInRyYW5zcGFyZW50IjsKICAgICAgfQogICAgfQogICAgZWxzZQogICAgICBiZ0NvbG9yID09ICJ0cmFuc3BhcmVudCI7CgogICAgaWYgKGJnQ29sb3IgPT0gInRyYW5zcGFyZW50IiB8fAogICAgICAgIGJnQ29sb3IuaW5kZXhPZigicmdiYSIpID49IDAgfHwKICAgICAgICBiZ0NvbG9yLmluZGV4T2YoIm9wYWNpdHkiKSA+PSAwKQogICAgewogICAgICB2YXIgc2xpZGVDbGFzcyA9IHRoaXMuZ2V0X2NsYXNzX2xpc3Qoc2xpZGUpOwoKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJhY2tncm91bmRzLmxlbmd0aDsgaSsrKQogICAgICB7CiAgICAgICAgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZHNbaV07CgogICAgICAgIHZhciBiZ0NsYXNzID0gdGhpcy5nZXRfY2xhc3NfbGlzdChiYWNrZ3JvdW5kKTsKCiAgICAgICAgaWYgKHRoaXMubWF0Y2hpbmdfYmFja2dyb3VuZChzbGlkZUNsYXNzLCBiZ0NsYXNzKSkKICAgICAgICAgIHRoaXMucmVtb3ZlX2NsYXNzKGJhY2tncm91bmQsICJoaWRkZW4iKTsKICAgICAgICBlbHNlCiAgICAgICAgICB0aGlzLmFkZF9jbGFzcyhiYWNrZ3JvdW5kLCAiaGlkZGVuIik7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgLy8gZm9yY2libHkgaGlkZSBhbGwgYmFja2dyb3VuZHMKICAgICAgdGhpcy5oaWRlX2JhY2tncm91bmRzKCk7CiAgfSwKCiAgaGlkZV9iYWNrZ3JvdW5kczogZnVuY3Rpb24gKCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJhY2tncm91bmRzLmxlbmd0aDsgaSsrKQogICAgewogICAgICBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kc1tpXTsKICAgICAgdGhpcy5hZGRfY2xhc3MoYmFja2dyb3VuZCwgImhpZGRlbiIpOwogICAgfQogIH0sCgogIC8vIGNvbXBhcmUgY2xhc3NlcyBmb3Igc2xpZGUgYW5kIGJhY2tncm91bmQKICBtYXRjaGluZ19iYWNrZ3JvdW5kOiBmdW5jdGlvbiAoc2xpZGVDbGFzcywgYmdDbGFzcykgewogICAgdmFyIGksIGNvdW50LCBwYXR0ZXJuLCByZXN1bHQ7CgogICAgLy8gZGVmaW5lIHBhdHRlcm4gYXMgcmVndWxhciBleHByZXNzaW9uCiAgICBwYXR0ZXJuID0gL1x3Ky9nOwoKICAgIC8vIGNoZWNrIGJhY2tncm91bmQgY2xhc3MgbmFtZXMKICAgIHJlc3VsdCA9IGJnQ2xhc3MubWF0Y2gocGF0dGVybik7CgogICAgZm9yIChpID0gY291bnQgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKQogICAgewogICAgICBpZiAocmVzdWx0W2ldID09ICJoaWRkZW4iKQogICAgICAgIGNvbnRpbnVlOwoKICAgICAgaWYgKHJlc3VsdFtpXSA9PSAiYmFja2dyb3VuZCIpCgljb250aW51ZTsKCiAgICAgICsrY291bnQ7CiAgICB9CgogICAgaWYgKGNvdW50ID09IDApICAvLyBkZWZhdWx0IG1hdGNoCiAgICAgIHJldHVybiB0cnVlOwoKICAgIC8vIGNoZWNrIGZvciBtYXRjaGVzIGFuZCBwbGFjZSByZXN1bHQgaW4gYXJyYXkKICAgIHJlc3VsdCA9IHNsaWRlQ2xhc3MubWF0Y2gocGF0dGVybik7CgogICAgLy8gbm93IGNoZWNrIGlmIGRlc2lyZWQgbmFtZSBpcyBwcmVzZW50IGZvciBiYWNrZ3JvdW5kCiAgICBmb3IgKGkgPSBjb3VudCA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspCiAgICB7CiAgICAgIGlmIChyZXN1bHRbaV0gPT0gImhpZGRlbiIpCiAgICAgICAgY29udGludWU7CgogICAgICBpZiAodGhpcy5oYXNfdG9rZW4oYmdDbGFzcywgcmVzdWx0W2ldKSkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfSwKCiAgcmVzaXplZDogZnVuY3Rpb24gKCkgewogICAgIHZhciB3aWR0aCA9IDA7CgogICAgIGlmICggdHlwZW9mKCB3aW5kb3cuaW5uZXJXaWR0aCApID09ICdudW1iZXInICkKICAgICAgIHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7ICAvLyBOb24gSUUgYnJvd3NlcgogICAgIGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpCiAgICAgICB3aWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsgIC8vIElFNgogICAgIGVsc2UgaWYgKGRvY3VtZW50LmJvZHkgJiYgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCkKICAgICAgIHdpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsgLy8gSUU0CgogICAgIHZhciBoZWlnaHQgPSAwOwoKICAgICBpZiAoIHR5cGVvZiggd2luZG93LmlubmVySGVpZ2h0ICkgPT0gJ251bWJlcicgKQogICAgICAgaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OyAgLy8gTm9uIElFIGJyb3dzZXIKICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkKICAgICAgIGhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7ICAvLyBJRTYKICAgICBlbHNlIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KQogICAgICAgaGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7IC8vIElFNAoKICAgICBpZiAoaGVpZ2h0ICYmICh3aWR0aC9oZWlnaHQgPiAxLjA1KjEwMjQvNzY4KSkKICAgICB7CiAgICAgICB3aWR0aCA9IGhlaWdodCAqIDEwMjQuMC83Njg7CiAgICAgfQoKICAgICAvLyBJRSBmaXJlcyBvbnJlc2l6ZSBldmVuIHdoZW4gb25seSBmb250IHNpemUgaXMgY2hhbmdlZCEKICAgICAvLyBzbyB3ZSBkbyBhIGNoZWNrIHRvIGF2b2lkIGJsb2NraW5nIDwgYW5kID4gYWN0aW9ucwogICAgIGlmICh3aWR0aCAhPSB3M2Nfc2xpZHkubGFzdF93aWR0aCB8fCBoZWlnaHQgIT0gdzNjX3NsaWR5Lmxhc3RfaGVpZ2h0KQogICAgIHsKICAgICAgIGlmICh3aWR0aCA+PSAxMTAwKQogICAgICAgICB3M2Nfc2xpZHkuc2l6ZV9pbmRleCA9IDU7ICAgIC8vIDQKICAgICAgIGVsc2UgaWYgKHdpZHRoID49IDEwMDApCiAgICAgICAgIHczY19zbGlkeS5zaXplX2luZGV4ID0gNDsgICAgLy8gMwogICAgICAgZWxzZSBpZiAod2lkdGggPj0gODAwKQogICAgICAgICB3M2Nfc2xpZHkuc2l6ZV9pbmRleCA9IDM7ICAgIC8vIDIKICAgICAgIGVsc2UgaWYgKHdpZHRoID49IDYwMCkKICAgICAgICAgdzNjX3NsaWR5LnNpemVfaW5kZXggPSAyOyAgICAvLyAxCiAgICAgICBlbHNlIGlmICh3aWR0aCkKICAgICAgICAgdzNjX3NsaWR5LnNpemVfaW5kZXggPSAwOwoKICAgICAgIC8vIGFkZCBpbiBmb250IHNpemUgYWRqdXN0bWVudCBmcm9tIG1ldGEgZWxlbWVudCBlLmcuCiAgICAgICAvLyA8bWV0YSBuYW1lPSJmb250LXNpemUtYWRqdXN0bWVudCIgY29udGVudD0iLTIiIC8+CiAgICAgICAvLyB1c2VmdWwgd2hlbiBzbGlkZXMgaGF2ZSB0b28gbXVjaCBjb250ZW50IDstKQoKICAgICAgIGlmICgwIDw9IHczY19zbGlkeS5zaXplX2luZGV4ICsgdzNjX3NsaWR5LnNpemVfYWRqdXN0bWVudCAmJgogICAgICAgICAgICAgdzNjX3NsaWR5LnNpemVfaW5kZXggKyB3M2Nfc2xpZHkuc2l6ZV9hZGp1c3RtZW50IDwgdzNjX3NsaWR5LnNpemVzLmxlbmd0aCkKICAgICAgICAgdzNjX3NsaWR5LnNpemVfaW5kZXggPSB3M2Nfc2xpZHkuc2l6ZV9pbmRleCArIHczY19zbGlkeS5zaXplX2FkanVzdG1lbnQ7CgogICAgICAgLy8gZW5hYmxlcyBjcm9zcyBicm93c2VyIHVzZSBvZiByZWxhdGl2ZSB3aWR0aC9oZWlnaHQKICAgICAgIC8vIG9uIG9iamVjdCBlbGVtZW50cyBmb3IgdXNlIHdpdGggU1ZHIGFuZCBGbGFzaCBtZWRpYQogICAgICAgdzNjX3NsaWR5LmFkanVzdF9vYmplY3RfZGltZW5zaW9ucyh3aWR0aCwgaGVpZ2h0KTsKCiAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5zdHlsZS5mb250U2l6ZSAhPSB3M2Nfc2xpZHkuc2l6ZXNbdzNjX3NsaWR5LnNpemVfaW5kZXhdKQogICAgICAgewogICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmZvbnRTaXplID0gdzNjX3NsaWR5LnNpemVzW3czY19zbGlkeS5zaXplX2luZGV4XTsKICAgICAgIH0KCiAgICAgICB3M2Nfc2xpZHkubGFzdF93aWR0aCA9IHdpZHRoOwogICAgICAgdzNjX3NsaWR5Lmxhc3RfaGVpZ2h0ID0gaGVpZ2h0OwoKICAgICAgIC8vIGZvcmNlIHJlZmxvdyB0byB3b3JrIGFyb3VuZCBNb3ppbGxhIGJ1ZwogICAgICAgaWYgKHczY19zbGlkeS5uc19wb3MpCiAgICAgICB7CiAgICAgICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgIHczY19zbGlkeS5oaWRlX3NsaWRlKHNsaWRlKTsKICAgICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgICAgfQoKICAgICAgIC8vIGZvcmNlIGNvcnJlY3QgcG9zaXRpb25pbmcgb2YgdG9vbGJhcgogICAgICAgdzNjX3NsaWR5LnJlZnJlc2hfdG9vbGJhcigyMDApOwogICAgIH0KICB9LAoKICBzY3JvbGxlZDogZnVuY3Rpb24gKCkgewogICAgaWYgKHczY19zbGlkeS50b29sYmFyICYmICF3M2Nfc2xpZHkubnNfcG9zICYmICF3M2Nfc2xpZHkuaWU3KQogICAgewogICAgICB3M2Nfc2xpZHkuaGFja19vZmZzZXQgPSB3M2Nfc2xpZHkuc2Nyb2xsX3hfb2Zmc2V0KCk7CiAgICAgIC8vIGhpZGUgdG9vbGJhcgogICAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoKICAgICAgLy8gbWFrZSBpdCByZWFwcGVhciBsYXRlcgogICAgICBpZiAodzNjX3NsaWR5LnNjcm9sbGhhY2sgPT0gMCAmJiAhdzNjX3NsaWR5LnZpZXdfYWxsKQogICAgICB7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7dzNjX3NsaWR5LnNob3dfdG9vbGJhcigpOyB9LCAxMDAwKTsKICAgICAgICB3M2Nfc2xpZHkuc2Nyb2xsaGFjayA9IDE7CiAgICAgIH0KICAgIH0KICB9LAoKICBoaWRlX3Rvb2xiYXI6IGZ1bmN0aW9uICgpIHsKICAgIHczY19zbGlkeS5hZGRfY2xhc3ModzNjX3NsaWR5LnRvb2xiYXIsICJoaWRkZW4iKTsKICAgIHdpbmRvdy5mb2N1cygpOwogIH0sCgogIC8vIHVzZWQgdG8gZW5zdXJlIElFIHJlZnJlc2hlcyB0b29sYmFyIGluIGNvcnJlY3QgcG9zaXRpb24KICByZWZyZXNoX3Rvb2xiYXI6IGZ1bmN0aW9uIChpbnRlcnZhbCkgewogICAgaWYgKCF3M2Nfc2xpZHkubnNfcG9zICYmICF3M2Nfc2xpZHkuaWU3KQogICAgewogICAgICB3M2Nfc2xpZHkuaGlkZV90b29sYmFyKCk7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge3czY19zbGlkeS5zaG93X3Rvb2xiYXIoKTsgfSwgaW50ZXJ2YWwpOwogICAgfQogIH0sCgogIC8vIHJlc3RvcmVzIHRvb2xiYXIgYWZ0ZXIgc2hvcnQgZGVsYXkKICBzaG93X3Rvb2xiYXI6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh3M2Nfc2xpZHkud2FudF90b29sYmFyKQogICAgewogICAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCiAgICAgIGlmICghdzNjX3NsaWR5Lm5zX3BvcykKICAgICAgewogICAgICAgIC8vIGFkanVzdCBwb3NpdGlvbiB0byBhbGxvdyBmb3Igc2Nyb2xsaW5nCiAgICAgICAgdmFyIHhvZmZzZXQgPSB3M2Nfc2xpZHkuc2Nyb2xsX3hfb2Zmc2V0KCk7CiAgICAgICAgdzNjX3NsaWR5LnRvb2xiYXIuc3R5bGUubGVmdCA9IHhvZmZzZXQ7CiAgICAgICAgdzNjX3NsaWR5LnRvb2xiYXIuc3R5bGUucmlnaHQgPSB4b2Zmc2V0OwoKICAgICAgICAvLyBkZXRlcm1pbmUgdmVydGljYWwgc2Nyb2xsIG9mZnNldAogICAgICAgIC8vdmFyIHlvZmZzZXQgPSBzY3JvbGxZT2Zmc2V0KCk7CgogICAgICAgIC8vIGJvdHRvbSBpcyBkb2MgaGVpZ2h0IC0gd2luZG93IGhlaWdodCAtIHNjcm9sbCBvZmZzZXQKICAgICAgICAvL3ZhciBib3R0b20gPSBkb2N1bWVudEhlaWdodCgpIC0gbGFzdEhlaWdodCAtIHlvZmZzZXQKCiAgICAgICAgLy9pZiAoeW9mZnNldCA+IDAgfHwgZG9jdW1lbnRIZWlnaHQoKSA+IGxhc3RIZWlnaHQpCiAgICAgICAgLy8gICBib3R0b20gKz0gMTY7ICAvLyBhbGxvdyBmb3IgaGVpZ2h0IG9mIHNjcm9sbGJhcgoKICAgICAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5ib3R0b20gPSAwOyAvL2JvdHRvbTsKICAgICAgfQoKICAgICAgdzNjX3NsaWR5LnJlbW92ZV9jbGFzcyh3M2Nfc2xpZHkudG9vbGJhciwgImhpZGRlbiIpOwogICAgfQoKICAgIHczY19zbGlkeS5zY3JvbGxoYWNrID0gMDsKCgogICAgLy8gc2V0IHRoZSBrZXlib2FyZCBmb2N1cyB0byB0aGUgaGVscCBsaW5rIG9uIHRoZQogICAgLy8gdG9vbGJhciB0byBlbnN1cmUgdGhhdCBkb2N1bWVudCBoYXMgdGhlIGZvY3VzCiAgICAvLyBJRSBkb2Vzbid0IGFsd2F5cyB3b3JrIHdpdGggd2luZG93LmZvY3VzKCkKICAgIC8vIGFuZCB0aGlzIGhhY2sgaGFzIGJlbmVmaXQgb2YgRW50ZXIgZm9yIGhlbHAKCiAgICB0cnkKICAgIHsKICAgICAgaWYgKCF3M2Nfc2xpZHkub3BlcmEpCiAgICAgICAgdzNjX3NsaWR5LmhlbHBfYW5jaG9yLmZvY3VzKCk7CiAgICB9CiAgICBjYXRjaCAoZSkKICAgIHsKICAgIH0KICB9LAoKLy8gaW52b2tlZCB2aWEgRiBrZXkKICB0b2dnbGVfdG9vbGJhcjogZnVuY3Rpb24gKCkgewogICAgaWYgKCF3M2Nfc2xpZHkudmlld19hbGwpCiAgICB7CiAgICAgIGlmICh3M2Nfc2xpZHkuaGFzX2NsYXNzKHczY19zbGlkeS50b29sYmFyLCAiaGlkZGVuIikpCiAgICAgIHsKICAgICAgICB3M2Nfc2xpZHkucmVtb3ZlX2NsYXNzKHczY19zbGlkeS50b29sYmFyLCAiaGlkZGVuIikKICAgICAgICB3M2Nfc2xpZHkud2FudF90b29sYmFyID0gMTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICB3M2Nfc2xpZHkuYWRkX2NsYXNzKHczY19zbGlkeS50b29sYmFyLCAiaGlkZGVuIikKICAgICAgICB3M2Nfc2xpZHkud2FudF90b29sYmFyID0gMDsKICAgICAgfQogICAgfQogIH0sCgogIHNjcm9sbF94X29mZnNldDogZnVuY3Rpb24gKCkgewogICAgaWYgKHdpbmRvdy5wYWdlWE9mZnNldCkKICAgICAgcmV0dXJuIHNlbGYucGFnZVhPZmZzZXQ7CgogICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAKICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0KQogICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7CgogICAgaWYgKGRvY3VtZW50LmJvZHkpCiAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7CgogICAgcmV0dXJuIDA7CiAgfSwKCiAgc2Nyb2xsX3lfb2Zmc2V0OiBmdW5jdGlvbiAoKSB7CiAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0KQogICAgICByZXR1cm4gc2VsZi5wYWdlWU9mZnNldDsKCiAgICBpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIAogICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCkKICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7CgogICAgaWYgKGRvY3VtZW50LmJvZHkpCiAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKCiAgICByZXR1cm4gMDsKICB9LAoKICAvLyBsb29raW5nIGZvciBhIHdheSB0byBkZXRlcm1pbmUgaGVpZ2h0IG9mIHNsaWRlIGNvbnRlbnQKICAvLyB0aGUgc2xpZGUgaXRzZWxmIGlzIHNldCB0byB0aGUgaGVpZ2h0IG9mIHRoZSB3aW5kb3cKICBvcHRpbWl6ZV9mb250X3NpemU6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CgogICAgLy92YXIgZGggPSBkb2N1bWVudEhlaWdodCgpOyAvL2dldERvY0hlaWdodChkb2N1bWVudCk7CiAgICB2YXIgZGggPSBzbGlkZS5zY3JvbGxIZWlnaHQ7CiAgICB2YXIgd2ggPSBnZXRXaW5kb3dIZWlnaHQoKTsKICAgIHZhciB1ID0gMTAwICogZGggLyB3aDsKCiAgICBhbGVydCgid2luZG93IHV0aWxpemF0aW9uID0gIiArIHUgKyAiJSAoZG9jICIKICAgICAgKyBkaCArICIgd2luICIgKyB3aCArICIpIik7CiAgfSwKCiAgLy8gZnJvbSBkb2N1bWVudCBvYmplY3QKICBnZXRfZG9jX2hlaWdodDogZnVuY3Rpb24gKGRvYykgewogICAgaWYgKCFkb2MpCiAgICAgIGRvYyA9IGRvY3VtZW50OwoKICAgIGlmIChkb2MgJiYgZG9jLmJvZHkgJiYgZG9jLmJvZHkub2Zmc2V0SGVpZ2h0KQogICAgICByZXR1cm4gZG9jLmJvZHkub2Zmc2V0SGVpZ2h0OyAgLy8gbnMvZ2Vja28gc3ludGF4CgogICAgaWYgKGRvYyAmJiBkb2MuYm9keSAmJiBkb2MuYm9keS5zY3JvbGxIZWlnaHQpCiAgICAgIHJldHVybiBkb2MuYm9keS5zY3JvbGxIZWlnaHQ7CgogICAgYWxlcnQoImNvdWxkbid0IGRldGVybWluZSBkb2N1bWVudCBoZWlnaHQiKTsKICB9LAoKICBnZXRfd2luZG93X2hlaWdodDogZnVuY3Rpb24gKCkgewogICAgaWYgKCB0eXBlb2YoIHdpbmRvdy5pbm5lckhlaWdodCApID09ICdudW1iZXInICkKICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDsgIC8vIE5vbiBJRSBicm93c2VyCgogICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KQogICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDsgIC8vIElFNgoKICAgIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KQogICAgICByZXR1cm4gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7IC8vIElFNAogIH0sCgogIGRvY3VtZW50X2hlaWdodDogZnVuY3Rpb24gKCkgewogICAgdmFyIHNoLCBvaDsKCiAgICBzaCA9IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0OwogICAgb2ggPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKCiAgICBpZiAoc2ggJiYgb2gpCiAgICB7CiAgICAgIHJldHVybiAoc2ggPiBvaCA/IHNoIDogb2gpOwogICAgfQoKICAgIC8vIG5vIGlkZWEhCiAgICByZXR1cm4gMDsKICB9LAoKICBzbWFsbGVyOiBmdW5jdGlvbiAoKSB7CiAgICBpZiAodzNjX3NsaWR5LnNpemVfaW5kZXggPiAwKQogICAgewogICAgICAtLXczY19zbGlkeS5zaXplX2luZGV4OwogICAgfQoKICAgIHczY19zbGlkeS50b29sYmFyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmZvbnRTaXplID0gdzNjX3NsaWR5LnNpemVzW3czY19zbGlkeS5zaXplX2luZGV4XTsKICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CiAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt3M2Nfc2xpZHkuc2hvd190b29sYmFyKCk7IH0sIDUwKTsKICB9LAoKICBiaWdnZXI6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh3M2Nfc2xpZHkuc2l6ZV9pbmRleCA8IHczY19zbGlkeS5zaXplcy5sZW5ndGggLSAxKQogICAgewogICAgICArK3czY19zbGlkeS5zaXplX2luZGV4OwogICAgfQoKICAgIHczY19zbGlkeS50b29sYmFyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmZvbnRTaXplID0gdzNjX3NsaWR5LnNpemVzW3czY19zbGlkeS5zaXplX2luZGV4XTsKICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CiAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt3M2Nfc2xpZHkuc2hvd190b29sYmFyKCk7IH0sIDUwKTsKICB9LAoKICAvLyBlbmFibGVzIGNyb3NzIGJyb3dzZXIgdXNlIG9mIHJlbGF0aXZlIHdpZHRoL2hlaWdodAogIC8vIG9uIG9iamVjdCBlbGVtZW50cyBmb3IgdXNlIHdpdGggU1ZHIGFuZCBGbGFzaCBtZWRpYQogIC8vIHdpdGggdGhhbmtzIHRvIEl2YW4gSGVybWFuIGZvciB0aGUgc3VnZ2VzdGlvbgogIGFkanVzdF9vYmplY3RfZGltZW5zaW9uczogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpIHsKICAgIGZvciggdmFyIGkgPSAwOyBpIDwgdzNjX3NsaWR5Lm9iamVjdHMubGVuZ3RoOyBpKysgKQogICAgewogICAgICB2YXIgb2JqID0gdGhpcy5vYmplY3RzW2ldOwogICAgICB2YXIgbWltZVR5cGUgPSBvYmouZ2V0QXR0cmlidXRlKCJ0eXBlIik7CgogICAgICBpZiAobWltZVR5cGUgPT0gImltYWdlL3N2Zyt4bWwiIHx8IG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIpCiAgICAgIHsKICAgICAgICBpZiAoICFvYmouaW5pdGlhbFdpZHRoICkgCiAgICAgICAgICBvYmouaW5pdGlhbFdpZHRoID0gb2JqLmdldEF0dHJpYnV0ZSgid2lkdGgiKTsKCiAgICAgICAgaWYgKCAhb2JqLmluaXRpYWxIZWlnaHQgKSAKICAgICAgICAgIG9iai5pbml0aWFsSGVpZ2h0ID0gb2JqLmdldEF0dHJpYnV0ZSgiaGVpZ2h0Iik7CgogICAgICAgIGlmICggb2JqLmluaXRpYWxXaWR0aCAmJiBvYmouaW5pdGlhbFdpZHRoLmNoYXJBdChvYmouaW5pdGlhbFdpZHRoLmxlbmd0aC0xKSA9PSAiJSIgKQogICAgICAgIHsKICAgICAgICAgIHZhciB3ID0gcGFyc2VJbnQob2JqLmluaXRpYWxXaWR0aC5zbGljZSgwLCBvYmouaW5pdGlhbFdpZHRoLmxlbmd0aC0xKSk7CiAgICAgICAgICB2YXIgbmV3VyA9IHdpZHRoICogKHcvMTAwLjApOwogICAgICAgICAgb2JqLnNldEF0dHJpYnV0ZSgid2lkdGgiLG5ld1cpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBvYmouaW5pdGlhbEhlaWdodCAmJgogICAgICAgICAgICAgb2JqLmluaXRpYWxIZWlnaHQuY2hhckF0KG9iai5pbml0aWFsSGVpZ2h0Lmxlbmd0aC0xKSA9PSAiJSIgKQogICAgICAgIHsKICAgICAgICAgIHZhciBoID0gcGFyc2VJbnQob2JqLmluaXRpYWxIZWlnaHQuc2xpY2UoMCwgb2JqLmluaXRpYWxIZWlnaHQubGVuZ3RoLTEpKTsKICAgICAgICAgIHZhciBuZXdIID0gaGVpZ2h0ICogKGgvMTAwLjApOwogICAgICAgICAgb2JqLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgbmV3SCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKCiAgLy8gbmVlZGVkIGZvciBPcGVyYSB0byBpbmhpYml0IGRlZmF1bHQgYmVoYXZpb3IKICAvLyBzaW5jZSBPcGVyYSBkZWxpdmVycyBrZXlQcmVzcyBldmVuIGlmIGtleURvd24KICAvLyB3YXMgY2FuY2VsbGVkCiAga2V5X3ByZXNzOiBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIGlmICghZXZlbnQpCiAgICAgIGV2ZW50ID0gd2luZG93LmV2ZW50OwoKICAgIGlmICghdzNjX3NsaWR5LmtleV93YW50ZWQpCiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICAvLyAgU2VlIGUuZy4gaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9qcy9ldmVudHMva2V5cy5odG1sIGZvciBrZXljb2RlcwogIGtleV9kb3duOiBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIHZhciBrZXksIHRhcmdldCwgdGFnOwoKICAgIHczY19zbGlkeS5rZXlfd2FudGVkID0gdHJ1ZTsKCiAgICBpZiAoIWV2ZW50KQogICAgICBldmVudCA9IHdpbmRvdy5ldmVudDsKCiAgICAvLyBrbHVkZ2UgYXJvdW5kIE5TL0lFIGRpZmZlcmVuY2VzIAogICAgaWYgKHdpbmRvdy5ldmVudCkKICAgIHsKICAgICAga2V5ID0gd2luZG93LmV2ZW50LmtleUNvZGU7CiAgICAgIHRhcmdldCA9IHdpbmRvdy5ldmVudC5zcmNFbGVtZW50OwogICAgfQogICAgZWxzZSBpZiAoZXZlbnQud2hpY2gpCiAgICB7CiAgICAgIGtleSA9IGV2ZW50LndoaWNoOwogICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQ7CiAgICB9CiAgICBlbHNlCiAgICAgIHJldHVybiB0cnVlOyAvLyBZaWtlcyEgdW5rbm93biBicm93c2VyCgogICAgLy8gaWdub3JlIGV2ZW50IGlmIGtleSB2YWx1ZSBpcyB6ZXJvCiAgICAvLyBhcyBmb3IgYWx0IG9uIE9wZXJhIGFuZCBLb25xdWVyb3IKICAgIGlmICgha2V5KQogICAgICAgcmV0dXJuIHRydWU7CgogICAgLy8gYXZvaWQgaW50ZXJmZXJpbmcgd2l0aCBrZXlzdHJva2UKICAgIC8vIGJlaGF2aW9yIGZvciBub24tc2xpZHkgY2hyb21lIGVsZW1lbnRzCiAgICBpZiAoIXczY19zbGlkeS5zbGlkeV9jaHJvbWUodGFyZ2V0KSAmJgogICAgICAgIHczY19zbGlkeS5zcGVjaWFsX2VsZW1lbnQodGFyZ2V0KSkKICAgICAgcmV0dXJuIHRydWU7CgogICAgLy8gY2hlY2sgZm9yIGNvbmN1cnJlbnQgY29udHJvbC9jb21tYW5kL2FsdCBrZXkKICAgIC8vIGJ1dCBhcmUgdGhlc2Ugb25seSBwcmVzZW50IG9uIG1vdXNlIGV2ZW50cz8KCiAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleSkKICAgICAgIHJldHVybiB0cnVlOwoKICAgIC8vIGRpc21pc3MgdGFibGUgb2YgY29udGVudHMgaWYgdmlzaWJsZQogICAgaWYgKHczY19zbGlkeS5pc19zaG93bl90b2MoKSAmJiBrZXkgIT0gOSAmJiBrZXkgIT0gMTYgJiYga2V5ICE9IDM4ICYmIGtleSAhPSA0MCkKICAgIHsKICAgICAgdzNjX3NsaWR5LmhpZGVfdGFibGVfb2ZfY29udGVudHModHJ1ZSk7CgogICAgICBpZiAoa2V5ID09IDI3IHx8IGtleSA9PSA4NCB8fCBrZXkgPT0gNjcpCiAgICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQoKICAgIGlmIChrZXkgPT0gMzQpIC8vIFBhZ2UgRG93bgogICAgewogICAgICBpZiAodzNjX3NsaWR5LnZpZXdfYWxsKQogICAgICAgIHJldHVybiB0cnVlOwoKICAgICAgdzNjX3NsaWR5Lm5leHRfc2xpZGUoZmFsc2UpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMzMpIC8vIFBhZ2UgVXAKICAgIHsKICAgICAgaWYgKHczY19zbGlkeS52aWV3X2FsbCkKICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgIHczY19zbGlkeS5wcmV2aW91c19zbGlkZShmYWxzZSk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAzMikgLy8gc3BhY2UgYmFyCiAgICB7CiAgICAgIHczY19zbGlkeS5uZXh0X3NsaWRlKHRydWUpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMzcpIC8vIExlZnQgYXJyb3cKICAgIHsKICAgICAgdzNjX3NsaWR5LnByZXZpb3VzX3NsaWRlKCFldmVudC5zaGlmdEtleSk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAzNikgLy8gSG9tZQogICAgewogICAgICB3M2Nfc2xpZHkuZmlyc3Rfc2xpZGUoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDM1KSAvLyBFbmQKICAgIHsKICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2xpZGUoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDM5KSAvLyBSaWdodCBhcnJvdwogICAgewogICAgICB3M2Nfc2xpZHkubmV4dF9zbGlkZSghZXZlbnQuc2hpZnRLZXkpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMTMpIC8vIEVudGVyCiAgICB7CiAgICAgIGlmICh3M2Nfc2xpZHkub3V0bGluZSkKICAgICAgewogICAgICAgIGlmICh3M2Nfc2xpZHkub3V0bGluZS52aXNpYmxlKQogICAgICAgICAgdzNjX3NsaWR5LmZvbGQodzNjX3NsaWR5Lm91dGxpbmUpOwogICAgICAgIGVsc2UKICAgICAgICAgIHczY19zbGlkeS51bmZvbGQodzNjX3NsaWR5Lm91dGxpbmUpOwogICAgICAgICAgCiAgICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAxODgpICAvLyA8IGZvciBzbWFsbGVyIGZvbnRzCiAgICB7CiAgICAgIHczY19zbGlkeS5zbWFsbGVyKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAxOTApICAvLyA+IGZvciBsYXJnZXIgZm9udHMKICAgIHsKICAgICAgdzNjX3NsaWR5LmJpZ2dlcigpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMTg5IHx8IGtleSA9PSAxMDkpICAvLyAtIGZvciBzbWFsbGVyIGZvbnRzCiAgICB7CiAgICAgIHczY19zbGlkeS5zbWFsbGVyKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAxODcgfHwga2V5ID09IDE5MSB8fCBrZXkgPT0gMTA3KSAgLy8gPSArICBmb3IgbGFyZ2VyIGZvbnRzCiAgICB7CiAgICAgIHczY19zbGlkeS5iaWdnZXIoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDgzKSAgLy8gUyBmb3Igc21hbGxlciBmb250cwogICAgewogICAgICB3M2Nfc2xpZHkuc21hbGxlcigpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gNjYpICAvLyBCIGZvciBsYXJnZXIgZm9udHMKICAgIHsKICAgICAgdzNjX3NsaWR5LmJpZ2dlcigpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gOTApICAvLyBaIGZvciBsYXN0IHNsaWRlCiAgICB7CiAgICAgIHczY19zbGlkeS5sYXN0X3NsaWRlKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSA3MCkgIC8vIEYgZm9yIHRvZ2dsZSB0b29sYmFyCiAgICB7CiAgICAgIHczY19zbGlkeS50b2dnbGVfdG9vbGJhcigpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gNjUpICAvLyBBIGZvciB0b2dnbGUgdmlldyBzaW5nbGUvYWxsIHNsaWRlcwogICAgewogICAgICB3M2Nfc2xpZHkudG9nZ2xlX3ZpZXcoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDc1KSAgLy8gdG9nZ2xlIGFjdGlvbiBvZiBsZWZ0IGNsaWNrIGZvciBuZXh0IHBhZ2UKICAgIHsKICAgICAgdzNjX3NsaWR5Lm1vdXNlX2NsaWNrX2VuYWJsZWQgPSAhdzNjX3NsaWR5Lm1vdXNlX2NsaWNrX2VuYWJsZWQ7CiAgICAgIHZhciBhbGVydF9tc2cgPSAodzNjX3NsaWR5Lm1vdXNlX2NsaWNrX2VuYWJsZWQgPwogICAgICAgICAgICAgICAgImVuYWJsZWQiIDogImRpc2FibGVkIikgKyAgIiBtb3VzZSBjbGljayBhZHZhbmNlIjsKCiAgICAgIGFsZXJ0KHczY19zbGlkeS5sb2NhbGl6ZShhbGVydF9tc2cpKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDg0IHx8IGtleSA9PSA2NykgIC8vIFQgb3IgQyBmb3IgdGFibGUgb2YgY29udGVudHMKICAgIHsKICAgICAgaWYgKHczY19zbGlkeS50b2MpCiAgICAgICAgdzNjX3NsaWR5LnRvZ2dsZV90YWJsZV9vZl9jb250ZW50cygpOwoKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDcyKSAvLyBIIGZvciBoZWxwCiAgICB7CiAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHczY19zbGlkeS5oZWxwX3BhZ2U7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIC8vZWxzZSBhbGVydCgia2V5IGNvZGUgaXMgIisga2V5KTsKCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICAvLyBzYWZlIGZvciBib3RoIHRleHQvaHRtbCBhbmQgYXBwbGljYXRpb24veGh0bWwreG1sCiAgY3JlYXRlX2VsZW1lbnQ6IGZ1bmN0aW9uIChuYW1lKSB7CiAgICBpZiAodGhpcy54aHRtbCAmJiAodHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyAhPSAndW5kZWZpbmVkJykpCiAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCBuYW1lKQoKICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpOwogIH0sCgogIGdldF9lbGVtZW50X3N0eWxlOiBmdW5jdGlvbiAoZWxlbSwgSUVTdHlsZVByb3AsIENTU1N0eWxlUHJvcCkgewogICAgaWYgKGVsZW0uY3VycmVudFN0eWxlKQogICAgewogICAgICByZXR1cm4gZWxlbS5jdXJyZW50U3R5bGVbSUVTdHlsZVByb3BdOwogICAgfQogICAgZWxzZSBpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUpCiAgICB7CiAgICAgIHZhciBjb21wU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtLCAiIik7CiAgICAgIHJldHVybiBjb21wU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShDU1NTdHlsZVByb3ApOwogICAgfQogICAgcmV0dXJuICIiOwogIH0sCgogIC8vIHRoZSBzdHJpbmcgc3RyIGlzIGEgd2hpdGVzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiB0b2tlbnMKICAvLyB0ZXN0IGlmIHN0ciBjb250YWlucyBhIHBhcnRpY3VsYXIgdG9rZW4sIGUuZy4gInNsaWRlIgogIGhhc190b2tlbjogZnVuY3Rpb24gKHN0ciwgdG9rZW4pIHsKICAgIGlmIChzdHIpCiAgICB7CiAgICAgIC8vIGRlZmluZSBwYXR0ZXJuIGFzIHJlZ3VsYXIgZXhwcmVzc2lvbgogICAgICB2YXIgcGF0dGVybiA9IC9cdysvZzsKCiAgICAgIC8vIGNoZWNrIGZvciBtYXRjaGVzCiAgICAgIC8vIHBsYWNlIHJlc3VsdCBpbiBhcnJheQogICAgICB2YXIgcmVzdWx0ID0gc3RyLm1hdGNoKHBhdHRlcm4pOwoKICAgICAgLy8gbm93IGNoZWNrIGlmIGRlc2lyZWQgdG9rZW4gaXMgcHJlc2VudAogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykKICAgICAgewogICAgICAgIGlmIChyZXN1bHRbaV0gPT0gdG9rZW4pCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBmYWxzZTsKICB9LAoKICBnZXRfY2xhc3NfbGlzdDogZnVuY3Rpb24gKGVsZW1lbnQpIHsKICAgIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgIT0gJ3VuZGVmaW5lZCcpCiAgICAgIHJldHVybiBlbGVtZW50LmNsYXNzTmFtZTsKCiAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImNsYXNzIik7CiAgfSwKCiAgaGFzX2NsYXNzOiBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkgewogICAgaWYgKGVsZW1lbnQubm9kZVR5cGUgIT0gMSkKICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIHZhciByZWdleHAgPSBuZXcgUmVnRXhwKCIoXnwgKSIgKyBuYW1lICsgIlxXKiIpOwoKICAgIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgIT0gJ3VuZGVmaW5lZCcpCiAgICAgIHJldHVybiByZWdleHAudGVzdChlbGVtZW50LmNsYXNzTmFtZSk7CgogICAgcmV0dXJuIHJlZ2V4cC50ZXN0KGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKTsKICB9LAoKICByZW1vdmVfY2xhc3M6IGZ1bmN0aW9uIChlbGVtZW50LCBuYW1lKSB7CiAgICB2YXIgcmVnZXhwID0gbmV3IFJlZ0V4cCgiKF58ICkiICsgbmFtZSArICJcVyoiKTsKICAgIHZhciBjbHN2YWwgPSAiIjsKCiAgICBpZiAodHlwZW9mIGVsZW1lbnQuY2xhc3NOYW1lICE9ICd1bmRlZmluZWQnKQogICAgewogICAgICBjbHN2YWwgPSBlbGVtZW50LmNsYXNzTmFtZTsKCiAgICAgIGlmIChjbHN2YWwpCiAgICAgIHsKICAgICAgICBjbHN2YWwgPSBjbHN2YWwucmVwbGFjZShyZWdleHAsICIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGNsc3ZhbDsKICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICBjbHN2YWwgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsKCiAgICAgIGlmIChjbHN2YWwpCiAgICAgIHsKICAgICAgICBjbHN2YWwgPSBjbHN2YWwucmVwbGFjZShyZWdleHAsICIiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCBjbHN2YWwpOwogICAgICB9CiAgICB9CiAgfSwKCiAgYWRkX2NsYXNzOiBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkgewogICAgaWYgKCF0aGlzLmhhc19jbGFzcyhlbGVtZW50LCBuYW1lKSkKICAgIHsKICAgICAgaWYgKHR5cGVvZiBlbGVtZW50LmNsYXNzTmFtZSAhPSAndW5kZWZpbmVkJykKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSArPSAiICIgKyBuYW1lOwogICAgICBlbHNlCiAgICAgIHsKICAgICAgICB2YXIgY2xzdmFsID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImNsYXNzIik7CiAgICAgICAgY2xzdmFsID0gY2xzdmFsID8gY2xzdmFsICsgIiAiICsgbmFtZSA6IG5hbWU7CiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgY2xzdmFsKTsKICAgICAgfQogICAgfQogIH0sCgogIC8vIEhUTUwgZWxlbWVudHMgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIGNsYXNzPSJpbmNyZW1lbnRhbCIKICAvLyBub3RlIHRoYXQgeW91IGNhbiBhbHNvIHB1dCB0aGUgY2xhc3Mgb24gY29udGFpbmVycyBsaWtlCiAgLy8gdXAsIG9sLCBkbCwgYW5kIGRpdiB0byBtYWtlIHRoZWlyIGNvbnRlbnRzIGFwcGVhcgogIC8vIGluY3JlbWVudGFsbHkuIFVwcGVyIGNhc2UgaXMgdXNlZCBzaW5jZSB0aGlzIGlzIHdoYXQKICAvLyBicm93c2VycyByZXBvcnQgZm9yIEhUTUwgbm9kZSBuYW1lcyAodGV4dC9odG1sKS4KICBpbmNyZW1lbnRhbF9lbGVtZW50czogbnVsbCwKICBva2F5X2Zvcl9pbmNyZW1lbnRhbDogZnVuY3Rpb24gKG5hbWUpIHsKICAgIGlmICghdGhpcy5pbmNyZW1lbnRhbF9lbGVtZW50cykKICAgIHsKICAgICAgdmFyIGluY2xpc3QgPSBuZXcgQXJyYXkoKTsKICAgICAgaW5jbGlzdFsicCJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsicHJlIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJsaSJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiYmxvY2txdW90ZSJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiZHQiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImRkIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJoMiJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiaDMiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImg0Il0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJoNSJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiaDYiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbInNwYW4iXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImFkZHJlc3MiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbInRhYmxlIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJ0ciJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsidGgiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbInRkIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJpbWciXSA9IHRydWU7CiAgICAgIGluY2xpc3RbIm9iamVjdCJdID0gdHJ1ZTsKICAgICAgdGhpcy5pbmNyZW1lbnRhbF9lbGVtZW50cyA9IGluY2xpc3Q7CiAgICB9CiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnRhbF9lbGVtZW50c1tuYW1lLnRvTG93ZXJDYXNlKCldOwogIH0sCgogIG5leHRfaW5jcmVtZW50YWxfaXRlbTogZnVuY3Rpb24gKG5vZGUpIHsKICAgIHZhciBiciA9IHRoaXMuaXNfeGh0bWwgPyAiYnIiIDogIkJSIjsKICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CgogICAgZm9yICg7OykKICAgIHsKICAgICAgbm9kZSA9IHczY19zbGlkeS5uZXh0X25vZGUoc2xpZGUsIG5vZGUpOwoKICAgICAgaWYgKG5vZGUgPT0gbnVsbCB8fCBub2RlLnBhcmVudE5vZGUgPT0gbnVsbCkKICAgICAgICBicmVhazsKCiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEpICAvLyBFTEVNRU5UCiAgICAgIHsKICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PSBicikKICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICBpZiAodzNjX3NsaWR5Lmhhc19jbGFzcyhub2RlLCAiaW5jcmVtZW50YWwiKQogICAgICAgICAgICAgJiYgdzNjX3NsaWR5Lm9rYXlfZm9yX2luY3JlbWVudGFsKG5vZGUubm9kZU5hbWUpKQogICAgICAgICAgcmV0dXJuIG5vZGU7CgogICAgICAgIGlmICh3M2Nfc2xpZHkuaGFzX2NsYXNzKG5vZGUucGFyZW50Tm9kZSwgImluY3JlbWVudGFsIikKICAgICAgICAgICAgICYmICF3M2Nfc2xpZHkuaGFzX2NsYXNzKG5vZGUsICJub24taW5jcmVtZW50YWwiKSkKICAgICAgICAgIHJldHVybiBub2RlOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIG5vZGU7CiAgfSwKCiAgcHJldmlvdXNfaW5jcmVtZW50YWxfaXRlbTogZnVuY3Rpb24gKG5vZGUpIHsKICAgIHZhciBiciA9IHRoaXMuaXNfeGh0bWwgPyAiYnIiIDogIkJSIjsKICAgIHZhciBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CgogICAgZm9yICg7OykKICAgIHsKICAgICAgbm9kZSA9IHczY19zbGlkeS5wcmV2aW91c19ub2RlKHNsaWRlLCBub2RlKTsKCiAgICAgIGlmIChub2RlID09IG51bGwgfHwgbm9kZS5wYXJlbnROb2RlID09IG51bGwpCiAgICAgICAgYnJlYWs7CgogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxKQogICAgICB7CiAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gYnIpCiAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgaWYgKHczY19zbGlkeS5oYXNfY2xhc3Mobm9kZSwgImluY3JlbWVudGFsIikKICAgICAgICAgICAgICYmIHczY19zbGlkeS5va2F5X2Zvcl9pbmNyZW1lbnRhbChub2RlLm5vZGVOYW1lKSkKICAgICAgICAgIHJldHVybiBub2RlOwoKICAgICAgICBpZiAodzNjX3NsaWR5Lmhhc19jbGFzcyhub2RlLnBhcmVudE5vZGUsICJpbmNyZW1lbnRhbCIpCiAgICAgICAgICAgICAmJiAhdzNjX3NsaWR5Lmhhc19jbGFzcyhub2RlLCAibm9uLWluY3JlbWVudGFsIikpCiAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBub2RlOwogIH0sCgogIC8vIHNldCB2aXNpYmlsaXR5IGZvciBhbGwgZWxlbWVudHMgb24gY3VycmVudCBzbGlkZSB3aXRoCiAgLy8gYSBwYXJlbnQgZWxlbWVudCB3aXRoIGF0dHJpYnV0ZSBjbGFzcz0iaW5jcmVtZW50YWwiCiAgc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsOiBmdW5jdGlvbiAodmFsdWUpIHsKICAgIHZhciBub2RlID0gdGhpcy5uZXh0X2luY3JlbWVudGFsX2l0ZW0obnVsbCk7CgogICAgaWYgKHZhbHVlID09ICJoaWRkZW4iKQogICAgewogICAgICB3aGlsZSAobm9kZSkKICAgICAgewogICAgICAgIHczY19zbGlkeS5hZGRfY2xhc3Mobm9kZSwgImludmlzaWJsZSIpOwogICAgICAgIG5vZGUgPSB3M2Nfc2xpZHkubmV4dF9pbmNyZW1lbnRhbF9pdGVtKG5vZGUpOwogICAgICB9CiAgICB9CiAgICBlbHNlIC8vIHZhbHVlID09ICJ2aXNpYmxlIgogICAgewogICAgICB3aGlsZSAobm9kZSkKICAgICAgewogICAgICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3Mobm9kZSwgImludmlzaWJsZSIpOwogICAgICAgIG5vZGUgPSB3M2Nfc2xpZHkubmV4dF9pbmNyZW1lbnRhbF9pdGVtKG5vZGUpOwogICAgICB9CiAgICB9CiAgfSwKCiAgLy8gcmV2ZWFsIHRoZSBuZXh0IGhpZGRlbiBpdGVtIG9uIHRoZSBzbGlkZQogIC8vIG5vZGUgaXMgbnVsbCBvciB0aGUgbm9kZSB0aGF0IHdhcyBsYXN0IHJldmVhbGVkCiAgcmV2ZWFsX25leHRfaXRlbTogZnVuY3Rpb24gKG5vZGUpIHsKICAgIG5vZGUgPSB3M2Nfc2xpZHkubmV4dF9pbmNyZW1lbnRhbF9pdGVtKG5vZGUpOwoKICAgIGlmIChub2RlICYmIG5vZGUubm9kZVR5cGUgPT0gMSkgIC8vIGFuIGVsZW1lbnQKICAgICAgdzNjX3NsaWR5LnJlbW92ZV9jbGFzcyhub2RlLCAiaW52aXNpYmxlIik7CgogICAgcmV0dXJuIG5vZGU7CiAgfSwKCiAgLy8gZXhhY3QgaW52ZXJzZSBvZiByZXZlYWxOZXh0SXRlbShub2RlKQogIGhpZGVfcHJldmlvdXNfaXRlbTogZnVuY3Rpb24gKG5vZGUpIHsKICAgIGlmIChub2RlICYmIG5vZGUubm9kZVR5cGUgPT0gMSkgIC8vIGFuIGVsZW1lbnQKICAgICAgdzNjX3NsaWR5LmFkZF9jbGFzcyhub2RlLCAiaW52aXNpYmxlIik7CgogICAgcmV0dXJuIHRoaXMucHJldmlvdXNfaW5jcmVtZW50YWxfaXRlbShub2RlKTsKICB9LAoKICAvLyBsZWZ0IHRvIHJpZ2h0IHRyYXZlcnNhbCBvZiByb290J3MgY29udGVudAogIG5leHRfbm9kZTogZnVuY3Rpb24gKHJvb3QsIG5vZGUpIHsKICAgIGlmIChub2RlID09IG51bGwpCiAgICAgIHJldHVybiByb290LmZpcnN0Q2hpbGQ7CgogICAgaWYgKG5vZGUuZmlyc3RDaGlsZCkKICAgICAgcmV0dXJuIG5vZGUuZmlyc3RDaGlsZDsKCiAgICBpZiAobm9kZS5uZXh0U2libGluZykKICAgICAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmc7CgogICAgZm9yICg7OykKICAgIHsKICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsKCiAgICAgIGlmICghbm9kZSB8fCBub2RlID09IHJvb3QpCiAgICAgICAgYnJlYWs7CgogICAgICBpZiAobm9kZSAmJiBub2RlLm5leHRTaWJsaW5nKQogICAgICAgIHJldHVybiBub2RlLm5leHRTaWJsaW5nOwogICAgfQoKICAgIHJldHVybiBudWxsOwogIH0sCgogIC8vIHJpZ2h0IHRvIGxlZnQgdHJhdmVyc2FsIG9mIHJvb3QncyBjb250ZW50CiAgcHJldmlvdXNfbm9kZTogZnVuY3Rpb24gKHJvb3QsIG5vZGUpIHsKICAgIGlmIChub2RlID09IG51bGwpCiAgICB7CiAgICAgIG5vZGUgPSByb290Lmxhc3RDaGlsZDsKCiAgICAgIGlmIChub2RlKQogICAgICB7CiAgICAgICAgd2hpbGUgKG5vZGUubGFzdENoaWxkKQogICAgICAgICAgbm9kZSA9IG5vZGUubGFzdENoaWxkOwogICAgICB9CgogICAgICByZXR1cm4gbm9kZTsKICAgIH0KCiAgICBpZiAobm9kZS5wcmV2aW91c1NpYmxpbmcpCiAgICB7CiAgICAgIG5vZGUgPSBub2RlLnByZXZpb3VzU2libGluZzsKCiAgICAgIHdoaWxlIChub2RlLmxhc3RDaGlsZCkKICAgICAgICBub2RlID0gbm9kZS5sYXN0Q2hpbGQ7CgogICAgICByZXR1cm4gbm9kZTsKICAgIH0KCiAgICBpZiAobm9kZS5wYXJlbnROb2RlICE9IHJvb3QpCiAgICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7CgogICAgcmV0dXJuIG51bGw7CiAgfSwKCiAgcHJldmlvdXNfc2libGluZ19lbGVtZW50OiBmdW5jdGlvbiAoZWwpIHsKICAgIGVsID0gZWwucHJldmlvdXNTaWJsaW5nOwoKICAgIHdoaWxlIChlbCAmJiBlbC5ub2RlVHlwZSAhPSAxKQogICAgICBlbCA9IGVsLnByZXZpb3VzU2libGluZzsKCiAgICByZXR1cm4gZWw7CiAgfSwKCiAgbmV4dF9zaWJsaW5nX2VsZW1lbnQ6IGZ1bmN0aW9uIChlbCkgewogICAgZWwgPSBlbC5uZXh0U2libGluZzsKCiAgICB3aGlsZSAoZWwgJiYgZWwubm9kZVR5cGUgIT0gMSkKICAgICAgZWwgPSBlbC5uZXh0U2libGluZzsKCiAgICByZXR1cm4gZWw7CiAgfSwKCiAgZmlyc3RfY2hpbGRfZWxlbWVudDogZnVuY3Rpb24gKGVsKSB7CiAgICB2YXIgbm9kZTsKCiAgICBmb3IgKG5vZGUgPSBlbC5maXJzdENoaWxkOyBub2RlOyBub2RlID0gbm9kZS5uZXh0U2libGluZykKICAgIHsKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSkKICAgICAgICBicmVhazsKICAgIH0KCiAgICByZXR1cm4gbm9kZTsKICB9LAoKICBmaXJzdF90YWc6IGZ1bmN0aW9uIChlbGVtZW50LCB0YWcpIHsKICAgIHZhciBub2RlOwoKICAgIGlmICghdGhpcy5pc194aHRtbCkKICAgICAgdGFnID0gdGFnLnRvVXBwZXJDYXNlKCk7CgogICAgZm9yIChub2RlID0gZWxlbWVudC5maXJzdENoaWxkOyBub2RlOyBub2RlID0gbm9kZS5uZXh0U2libGluZykKICAgIHsKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiBub2RlLm5vZGVOYW1lID09IHRhZykKICAgICAgICBicmVhazsKICAgIH0KCiAgICByZXR1cm4gbm9kZTsKICB9LAoKICBoaWRlX3NlbGVjdGlvbjogZnVuY3Rpb24gKCkgewogICAgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24pIC8vIEZpcmVmb3gsIENocm9taXVtLCBTYWZhcmksIE9wZXJhCiAgICB7CiAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CgogICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKQogICAgICB7CiAgICAgICAgdmFyIHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7CiAgICAgICAgcmFuZ2UuY29sbGFwc2UgKGZhbHNlKTsKICAgICAgfQogICAgfQogICAgZWxzZSAvLyBJbnRlcm5ldCBFeHBsb3JlcgogICAgewogICAgICB2YXIgdGV4dFJhbmdlID0gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlICgpOwogICAgICB0ZXh0UmFuZ2UuY29sbGFwc2UgKGZhbHNlKTsKICAgIH0KICB9LAoKICBnZXRfc2VsZWN0ZWRfdGV4dDogZnVuY3Rpb24gKCkgewogICAgdHJ5CiAgICB7CiAgICAgIGlmICh3aW5kb3cuZ2V0U2VsZWN0aW9uKQogICAgICAgIHJldHVybiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKCiAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24pCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CgogICAgICBpZiAoZG9jdW1lbnQuc2VsZWN0aW9uKQogICAgICAgIHJldHVybiBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS50ZXh0OwogICAgfQogICAgY2F0Y2ggKGUpCiAgICB7CiAgICB9CgogICAgcmV0dXJuICIiOwogIH0sCgogIC8vIG1ha2Ugbm90ZSBvZiBsZW5ndGggb2Ygc2VsZWN0ZWQgdGV4dAogIC8vIGFzIHRoaXMgZXZhbHVhdGVzIHRvIHplcm8gaW4gY2xpY2sgZXZlbnQKICBtb3VzZV9idXR0b25fdXA6IGZ1bmN0aW9uIChlKSB7CiAgICB3M2Nfc2xpZHkuc2VsZWN0ZWRfdGV4dF9sZW4gPSB3M2Nfc2xpZHkuZ2V0X3NlbGVjdGVkX3RleHQoKS5sZW5ndGg7CiAgfSwKCiAgLy8gcmlnaHQgbW91c2UgYnV0dG9uIGNsaWNrIGlzIHJlc2VydmVkIGZvciBjb250ZXh0IG1lbnVzCiAgLy8gaXQgaXMgbW9yZSByZWxpYWJsZSB0byBkZXRlY3QgcmlnaHRjbGljayB0aGFuIGxlZnRjbGljawogIG1vdXNlX2J1dHRvbl9jbGljazogZnVuY3Rpb24gKGUpIHsKICAgIHZhciByaWdodGNsaWNrID0gZmFsc2U7CiAgICB2YXIgbGVmdGNsaWNrID0gZmFsc2U7CiAgICB2YXIgbWlkZGxlY2xpY2sgPSBmYWxzZTsKICAgIHZhciB0YXJnZXQ7CgogICAgaWYgKCFlKQogICAgICB2YXIgZSA9IHdpbmRvdy5ldmVudDsKCiAgICBpZiAoZS50YXJnZXQpCiAgICAgIHRhcmdldCA9IGUudGFyZ2V0OwogICAgZWxzZSBpZiAoZS5zcmNFbGVtZW50KQogICAgICB0YXJnZXQgPSBlLnNyY0VsZW1lbnQ7CgogICAgLy8gd29yayBhcm91bmQgU2FmYXJpIGJ1ZwogICAgaWYgKHRhcmdldC5ub2RlVHlwZSA9PSAzKQogICAgICB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZTsKCiAgICBpZiAoZS53aGljaCkgLy8gYWxsIGJyb3dzZXJzIGV4Y2VwdCBJRQogICAgewogICAgICBsZWZ0Y2xpY2sgPSAoZS53aGljaCA9PSAxKTsKICAgICAgbWlkZGxlY2xpY2sgPSAoZS53aGljaCA9PSAyKTsKICAgICAgcmlnaHRjbGljayA9IChlLndoaWNoID09IDMpOwogICAgfQogICAgZWxzZSBpZiAoZS5idXR0b24pCiAgICB7CiAgICAgIC8vIEtvbnF1ZXJvciBnaXZlcyAxIGZvciBsZWZ0LCA0IGZvciBtaWRkbGUKICAgICAgLy8gSUU2IGdpdmVzIDAgZm9yIGxlZnQgYW5kIG5vdCAxIGFzIEkgZXhwZWN0ZWQKCiAgICAgIGlmIChlLmJ1dHRvbiA9PSA0KQogICAgICAgIG1pZGRsZWNsaWNrID0gdHJ1ZTsKCiAgICAgIC8vIGFsbCBicm93c2VycyBhZ3JlZSBvbiAyIGZvciByaWdodCBidXR0b24KICAgICAgcmlnaHRjbGljayA9IChlLmJ1dHRvbiA9PSAyKTsKICAgIH0KICAgIGVsc2UKICAgICAgbGVmdGNsaWNrID0gdHJ1ZTsKCiAgICBpZiAodzNjX3NsaWR5LnNlbGVjdGVkX3RleHRfbGVuID4gMCkKICAgIHsKICAgICAgdzNjX3NsaWR5LnN0b3BfcHJvcGFnYXRpb24oZSk7CiAgICAgIGUuY2FuY2VsID0gdHJ1ZTsKICAgICAgZS5yZXR1cm5WYWx1ZSA9IGZhbHNlOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gZGlzbWlzcyB0YWJsZSBvZiBjb250ZW50cwogICAgdzNjX3NsaWR5LmhpZGVfdGFibGVfb2ZfY29udGVudHMoZmFsc2UpOwoKICAgIC8vIGNoZWNrIGlmIHRhcmdldCBpcyBzb21ldGhpbmcgdGhhdCBwcm9iYWJseSB3YW50J3MgY2xpY2tzCiAgICAvLyBlLmcuIGEsIGVtYmVkLCBvYmplY3QsIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24KICAgIHZhciB0YWcgPSB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsKCiAgICBpZiAodzNjX3NsaWR5Lm1vdXNlX2NsaWNrX2VuYWJsZWQgJiYgbGVmdGNsaWNrICYmCiAgICAgICAgIXczY19zbGlkeS5zcGVjaWFsX2VsZW1lbnQodGFyZ2V0KSAmJgogICAgICAgICF0YXJnZXQub25jbGljaykKICAgIHsKICAgICAgdzNjX3NsaWR5Lm5leHRfc2xpZGUodHJ1ZSk7CiAgICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGUpOwogICAgICBlLmNhbmNlbCA9IHRydWU7CiAgICAgIGUucmV0dXJuVmFsdWUgPSBmYWxzZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0sCgogIHNwZWNpYWxfZWxlbWVudDogZnVuY3Rpb24gKGVsZW1lbnQpIHsKICAgIGlmICh0aGlzLmhhc19jbGFzcyhlbGVtZW50LCAibm9uLWludGVyYWN0aXZlIikpCiAgICAgIHJldHVybiBmYWxzZTsKCiAgICB2YXIgdGFnID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoKICAgIHJldHVybiBlbGVtZW50Lm9ua2V5ZG93biB8fAogICAgICBlbGVtZW50Lm9uY2xpY2sgfHwKICAgICAgdGFnID09ICJhIiB8fAogICAgICB0YWcgPT0gImVtYmVkIiB8fAogICAgICB0YWcgPT0gIm9iamVjdCIgfHwKICAgICAgdGFnID09ICJ2aWRlbyIgfHwKICAgICAgdGFnID09ICJhdWRpbyIgfHwKICAgICAgdGFnID09ICJzdmciIHx8CiAgICAgIHRhZyA9PSAiY2FudmFzIiB8fAogICAgICB0YWcgPT0gImlucHV0IiB8fAogICAgICB0YWcgPT0gInRleHRhcmVhIiB8fAogICAgICB0YWcgPT0gInNlbGVjdCIgfHwKICAgICAgdGFnID09ICJvcHRpb24iOwogIH0sCgogIHNsaWR5X2Nocm9tZTogZnVuY3Rpb24gKGVsKSB7CiAgICB3aGlsZSAoZWwpCiAgICB7CiAgICAgIGlmIChlbCA9PSB3M2Nfc2xpZHkudG9jIHx8CiAgICAgICAgICBlbCA9PSB3M2Nfc2xpZHkudG9vbGJhciB8fAogICAgICAgICAgdzNjX3NsaWR5Lmhhc19jbGFzcyhlbCwgIm91dGxpbmUiKSkKICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgIGVsID0gZWwucGFyZW50Tm9kZTsKICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfSwKCiAgZ2V0X2tleTogZnVuY3Rpb24gKGUpCiAgewogICAgdmFyIGtleTsKCiAgICAvLyBrbHVkZ2UgYXJvdW5kIE5TL0lFIGRpZmZlcmVuY2VzIAogICAgaWYgKHR5cGVvZiB3aW5kb3cuZXZlbnQgIT0gInVuZGVmaW5lZCIpCiAgICAgIGtleSA9IHdpbmRvdy5ldmVudC5rZXlDb2RlOwogICAgZWxzZSBpZiAoZS53aGljaCkKICAgICAga2V5ID0gZS53aGljaDsKCiAgICByZXR1cm4ga2V5OwogIH0sCgogIGdldF90YXJnZXQ6IGZ1bmN0aW9uIChlKSB7CiAgICB2YXIgdGFyZ2V0OwoKICAgIGlmICghZSkKICAgICAgZSA9IHdpbmRvdy5ldmVudDsKCiAgICBpZiAoZS50YXJnZXQpCiAgICAgIHRhcmdldCA9IGUudGFyZ2V0OwogICAgZWxzZSBpZiAoZS5zcmNFbGVtZW50KQogICAgICB0YXJnZXQgPSBlLnNyY0VsZW1lbnQ7CgogICAgaWYgKHRhcmdldC5ub2RlVHlwZSAhPSAxKQogICAgICB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZTsKCiAgICByZXR1cm4gdGFyZ2V0OwogIH0sCgogIC8vIGRvZXMgZGlzcGxheSBwcm9wZXJ0eSBwcm92aWRlIGNvcnJlY3QgZGVmYXVsdHM/CiAgaXNfYmxvY2s6IGZ1bmN0aW9uIChlbGVtKSB7CiAgICB2YXIgdGFnID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoKICAgIHJldHVybiB0YWcgPT0gIm9sIiB8fCB0YWcgPT0gInVsIiB8fCB0YWcgPT0gInAiIHx8CiAgICAgICAgICAgdGFnID09ICJsaSIgfHwgdGFnID09ICJ0YWJsZSIgfHwgdGFnID09ICJwcmUiIHx8CiAgICAgICAgICAgdGFnID09ICJoMSIgfHwgdGFnID09ICJoMiIgfHwgdGFnID09ICJoMyIgfHwKICAgICAgICAgICB0YWcgPT0gImg0IiB8fCB0YWcgPT0gImg1IiB8fCB0YWcgPT0gImg2IiB8fAogICAgICAgICAgIHRhZyA9PSAiYmxvY2txdW90ZSIgfHwgdGFnID09ICJhZGRyZXNzIjsgCiAgfSwKCiAgYWRkX2xpc3RlbmVyOiBmdW5jdGlvbiAoZWxlbWVudCwgZXZlbnQsIGhhbmRsZXIpIHsKICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCBmYWxzZSk7CiAgICBlbHNlCiAgICAgIGVsZW1lbnQuYXR0YWNoRXZlbnQoIm9uIitldmVudCwgaGFuZGxlcik7CiAgfSwKCiAgLy8gdXNlZCB0byBwcmV2ZW50IGV2ZW50IHByb3BhZ2F0aW9uIGZyb20gZmllbGQgY29udHJvbHMKICBzdG9wX3Byb3BhZ2F0aW9uOiBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIGV2ZW50ID0gZXZlbnQgPyBldmVudCA6IHdpbmRvdy5ldmVudDsKICAgIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7ICAvLyBmb3IgSUUKCiAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKQogICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICBjYW5jZWw6IGZ1bmN0aW9uIChldmVudCkgewogICAgaWYgKGV2ZW50KQogICAgewogICAgICAgZXZlbnQuY2FuY2VsID0gdHJ1ZTsKICAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2U7CgogICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgIH0KCiAgICB3M2Nfc2xpZHkua2V5X3dhbnRlZCA9IGZhbHNlOwogICAgcmV0dXJuIGZhbHNlOwogIH0sCgovLyBmb3IgZWFjaCBsYW5ndWFnZSBkZWZpbmUgYW4gYXNzb2NpYXRpdmUgYXJyYXkKLy8gYW5kIGFsc28gdGhlIGhlbHAgdGV4dCB3aGljaCBpcyBsb25nZXIKCiAgc3RyaW5nc19lczogewogICAgInNsaWRlIjoicMOhZy4iLAogICAgImhlbHA/IjoiQXl1ZGEiLAogICAgImNvbnRlbnRzPyI6IsONbmRpY2UiLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoidGFibGEgZGUgY29udGVuaWRvcyIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiJUYWJsYSBkZSBDb250ZW5pZG9zIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6IlJlaW5pY2lhciBwcmVzZW50YWNpw7NuIiwKICAgICJyZXN0YXJ0PyI6IkluaWNpbyIKICB9LAogIGhlbHBfZXM6CiAgICAiVXRpbGljZSBlbCByYXTDs24sIGJhcnJhIGVzcGFjaWFkb3JhLCB0ZWNsYXMgSXpkYS9EY2hhLCAiICsKICAgICJvIFJlIHDDoWcgeSBBdiBww6FnLiBVc2UgUyB5IEIgcGFyYSBjYW1iaWFyIGVsIHRhbWHDsW8gZGUgZnVlbnRlLiIsCgogIHN0cmluZ3NfY2E6IHsKICAgICJzbGlkZSI6InDDoGcuLiIsCiAgICAiaGVscD8iOiJBanVkYSIsCiAgICAiY29udGVudHM/Ijoiw41uZGV4IiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6InRhdWxhIGRlIGNvbnRpbmd1dHMiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiVGF1bGEgZGUgQ29udGluZ3V0cyIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJSZWluaWNpYXIgcHJlc2VudGFjacOzIiwKICAgICJyZXN0YXJ0PyI6IkluaWNpIgogIH0sCiAgaGVscF9jYToKICAgICJVdGlsaXR6aSBlbCByYXRvbMOtLCBiYXJyYSBlc3BhaWFkb3JhLCB0ZWNsZXMgRXNxLi9EdGEuICIgKwogICAgIm8gUmUgcMOgZyB5IEF2IHDDoGcuIFVzaSBTIGkgQiBwZXIgY2FudmlhciBncmFuZMOgcmlhIGRlIGZvbnQuIiwKCiAgc3RyaW5nc19jczogewogICAgInNsaWRlIjoic27DrW1layIsCiAgICAiaGVscD8iOiJuw6Fwb3bEm2RhIiwKICAgICJjb250ZW50cz8iOiJvYnNhaCIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJvYnNhaCBwcmV6ZW50YWNlIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6Ik9ic2FoIHByZXplbnRhY2UiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiem5vdnUgc3B1c3RpdCBwcmV6ZW50YWNpIiwKICAgICJyZXN0YXJ0PyI6InJlc3RhcnQiCiAgfSwKICBoZWxwX2NzOgogICAgIlByZXplbnRhY2kgbcWvxb5ldGUgcHJvY2jDoXpldCBwb21vY8OtIGtsaWtudXTDrSBtecWhaSwgbWV6ZXJuw61rdSwgIiArCiAgICAixaFpcGVrIHZsZXZvIGEgdnByYXZvIG5lYm8ga2zDoXZlcyBQYWdlVXAgYSBQYWdlRG93bi4gUMOtc21vIHNlICIgKwogICAgImTDoSB6dsSbdMWhaXQgYSB6bWVuxaFpdCBwb21vY8OtIGtsw6F2ZXMgQiBhIFMuIiwKCiAgc3RyaW5nc19ubDogewogICAgInNsaWRlIjoicGFnaW5hIiwKICAgICJoZWxwPyI6IkhlbHA/IiwKICAgICJjb250ZW50cz8iOiJJbmhvdWQ/IiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6ImluaG91ZHNvcGdhdmUiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiSW5ob3Vkc29wZ2F2ZSIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJoZXJzdGFydCBwcmVzZW50YXRpZSIsCiAgICAicmVzdGFydD8iOiJIZXJzdGFydD8iCiAgfSwKICBoZWxwX25sOgogICAgICJOYXZpZ2VlciBkLm0udi4gaGV0IG11aXMsIHNwYXRpZWJhciwgTGlua3MvUmVjaHRzIHRvZXRzZW4sICIgKwogICAgICJvZiBQZ1VwIGVuIFBnRG4uIEdlYnJ1aWsgUyBlbiBCIG9tIGRlIGthcmFrdGVyZ3Jvb3R0ZSB0ZSB2ZXJhbmRlcmVuLiIsCgogIHN0cmluZ3NfZGU6IHsKICAgICJzbGlkZSI6IlNlaXRlIiwKICAgICJoZWxwPyI6IkhpbGZlIiwKICAgICJjb250ZW50cz8iOiLDnGJlcnNpY2h0IiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6IkluaGFsdHN2ZXJ6ZWljaG5pcyIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiJJbmhhbHRzdmVyemVpY2huaXMiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiUHLDpHNlbnRhdGlvbiBuZXUgc3RhcnRlbiIsCiAgICAicmVzdGFydD8iOiJOZXVzdGFydCIKICB9LAogIGhlbHBfZGU6CiAgICAiQmVudXR6ZW4gU2llIGRpZSBNYXVzLCBMZWVyc2NobGFnLCBkaWUgQ3Vyc29ydGFzdGVuIGxpbmtzL3JlY2h0cyBvZGVyICIgKwogICAgIlBhZ2UgdXAvUGFnZSBEb3duIHp1bSBXZWNoc2VsbiBkZXIgU2VpdGVuIHVuZCBTIHVuZCBCIGbDvHIgZGllIFNjaHJpZnRncsO2c3NlLiIsCgogIHN0cmluZ3NfcGw6IHsKICAgICJzbGlkZSI6InNsYWpkIiwKICAgICJoZWxwPyI6InBvbW9jPyIsCiAgICAiY29udGVudHM/Ijoic3BpcyB0cmXFm2NpPyIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJzcGlzIHRyZcWbY2kiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiU3BpcyBUcmXFm2NpIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6IlJlc3RhcnR1aiBwcmV6ZW50YWNqxJkiLAogICAgInJlc3RhcnQ/IjoicmVzdGFydD8iCiAgfSwKICBoZWxwX3BsOgogICAgIlptaWVuaWFqIHNsYWpkeSBrbGlrYWrEhWMgbXlzesSFLCBuYWNpc2thasSFYyBzcGFjasSZLCBzdHJ6YcWCa2kgbGV3by9wcmF3byIgKwogICAgImx1YiBQZ1VwIC8gUGdEbi4gVcW8eWoga2xhd2lzenkgUyBpIEIsIGFieSB6bWllbmnEhyByb3ptaWFyIGN6Y3ppb25raS4iLAoKICBzdHJpbmdzX2ZyOiB7CiAgICAic2xpZGUiOiJwYWdlIiwKICAgICJoZWxwPyI6IkFpZGUiLAogICAgImNvbnRlbnRzPyI6IkluZGV4IiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6InRhYmxlIGRlcyBtYXRpw6hyZXMiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiVGFibGUgZGVzIG1hdGnDqHJlcyIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJSZWNvbW1lbmNlciBsJ2V4cG9zw6kiLAogICAgInJlc3RhcnQ/IjoiRMOpYnV0IgogIH0sCiAgaGVscF9mcjoKICAgICJOYXZpZ3VleiBhdmVjIGxhIHNvdXJpcywgbGEgYmFycmUgZCdlc3BhY2UsIGxlcyBmbMOoY2hlcyAiICsKICAgICJnYXVjaGUvZHJvaXRlIG91IGxlcyB0b3VjaGVzIFBnIFVwLCBQZyBEbi4gVXRpbGlzZXogIiArCiAgICAibGVzIHRvdWNoZXMgUyBldCBCIHBvdXIgbW9kaWZpZXIgbGEgdGFpbGxlIGRlIGxhIHBvbGljZS4iLAoKICBzdHJpbmdzX2h1OiB7CiAgICAic2xpZGUiOiJvbGRhbCIsCiAgICAiaGVscD8iOiJzZWfDrXRzw6lnIiwKICAgICJjb250ZW50cz8iOiJ0YXJ0YWxvbSIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJ0YXJ0YWxvbWplZ3l6w6lrIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IlRhcnRhbG9tamVneXrDqWsiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiYmVtdXRhdMOzIMO6anJhaW5kw610w6FzYSIsCiAgICAicmVzdGFydD8iOiLDumpyYWluZMOtdMOhcyIKICB9LAogIGhlbHBfaHU6CiAgICAiQXogb2xkYWxhayBrw7Z6dGkgbMOpcGtlZMOpc2hleiBrYXR0aW50c29uIGF6IGVnw6lycmVsLCB2YWd5ICIgKwogICAgImhhc3puw6FsamEgYSBzesOza8O2eiwgYSBiYWwsIHZhZ3kgYSBqb2JiIG55w61sLCBpbGxldHZlIGEgUGFnZSBEb3duLCAiICsKICAgICJQYWdlIFVwIGJpbGxlbnR5xbFrZXQuIEF6IFMgw6lzIGEgQiBiaWxsZW50ecWxa2tlbCB2w6FsdG96dGF0aGF0amEgIiArCiAgICAiYSBzesO2dmVnIG3DqXJldMOpdC4iLAoKICBzdHJpbmdzX2l0OiB7CiAgICAic2xpZGUiOiJwYWcuIiwKICAgICJoZWxwPyI6IkFpdXRvIiwKICAgICJjb250ZW50cz8iOiJJbmRpY2UiLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoiaW5kaWNlIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IkluZGljZSIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJSaWNvbWluY2lhcmUgbGEgcHJlc2VudGF6aW9uZSIsCiAgICAicmVzdGFydD8iOiJJbml6aW8iCiAgfSwKICBoZWxwX2l0OgogICAgIk5hdmlnYXJlIGNvbiBtb3VzZSwgYmFycmEgc3BhemlvLCBmcmVjY2Ugc2luaXN0cmEvZGVzdHJhIG8gIiArCiAgICAiUGdVcCBlIFBnRG4uIFVzYXJlIFMgZSBCIHBlciBjYW1iaWFyZSBsYSBkaW1lbnNpb25lIGRlaSBjYXJhdHRlcmkuIiwKCiAgc3RyaW5nc19lbDogewogICAgInNsaWRlIjoiz4POtc67zq/OtM6xIiwKICAgICJoZWxwPyI6Is6yzr/Ors64zrXOuc6xOyIsCiAgICAiY29udGVudHM/Ijoiz4DOtc+BzrnOtc+Hz4zOvM61zr3OsTsiLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoiz4DOr869zrHOus6xz4Igz4DOtc+BzrnOtc+Hzr/OvM6tzr3Pic69IiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6Is6gzq/Ovc6xzrrOsc+CIM6gzrXPgc65zrXPh86/zrzOrc69z4nOvSIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiLOtc+AzrHOvc61zrrOus6vzr3Ot8+Dzrcgz4DOsc+Bzr/Phc+Dzq/Osc+DzrfPgiIsCiAgICAicmVzdGFydD8iOiLOtc+AzrHOvc61zrrOus6vzr3Ot8+Dzrc7IgogIH0sCiAgaGVscF9lbDoKICAgICLOoM67zr/Ot86zzrfOuM61zq/PhM61IM68zrUgz4TOvyDOus67zq/OuiDPhM6/z4Ugz4DOv869z4TOuc66zrnOv8+NLCDPhM6/IHNwYWNlLCDPhM6xIM6yzq3Ou863IM6xz4HOuc+Dz4TOtc+BzqwvzrTOtc6+zrnOrCwgIiArCiAgICAizq4gUGFnZSBVcCDOus6xzrkgUGFnZSBEb3duLiDOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+EzrEgz4DOu86uzrrPhM+BzrEgUyDOus6xzrkgQiDOs865zrEgzr3OsSDOsc67zrvOrM6+zrXPhM61ICIgKwogICAgIs+Ezr8gzrzOrc6zzrXOuM6/z4Igz4TOt8+CIM6zz4HOsc68zrzOsc+Ezr/Pg861zrnPgc6sz4IuIiwKCiAgc3RyaW5nc19qYTogewogICAgInNsaWRlIjoi44K544Op44Kk44OJIiwKICAgICJoZWxwPyI6IuODmOODq+ODlyIsCiAgICAiY29udGVudHM/Ijoi55uu5qyhIiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6IuebruasoeOCkuihqOekuiIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiLnm67mrKEiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoi5pyA5Yid44GL44KJ5YaN55SfIiwKICAgICJyZXN0YXJ0PyI6IuacgOWIneOBi+OCiSIKICB9LAogIGhlbHBfamE6CiAgICAgIuODnuOCpuOCueW3puOCr+ODquODg+OCryDjg7sg44K544Oa44O844K5IOODuyDlt6blj7Pjgq3jg7wgIiArCiAgICAgIuOBvuOBn+OBryBQYWdlIFVwIOODuyBQYWdlIERvd27jgafmk43kvZzvvIwgUyDjg7sgQuOBp+ODleOCqeODs+ODiOOCteOCpOOCuuWkieabtCIsCgogIHN0cmluZ3Nfemg6IHsKICAgICJzbGlkZSI6IuW5u+eBr+eJhyIsCiAgICAiaGVscD8iOiLluK7liqk/IiwKICAgICJjb250ZW50cz8iOiLlhoXlrrk/IiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6IuebruW9lSIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiLnm67lvZUiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoi6YeN5paw5ZCv5Yqo5bGV56S6IiwKICAgICJyZXN0YXJ0PyI6IumHjeaWsOWQr+WKqD8iCiAgfSwKICBoZWxwX3poOgogICAgIueUqOm8oOagh+eCueWHuywg56m65qC85p2hLCDlt6blj7Pnrq3lpLQsIFBnIFVwIOWSjCBQZyBEbiDlr7zoiKouICIgKwogICAgIueUqCBTLCBCIOaUueWPmOWtl+S9k+Wkp+Wwjy4iLAoKICBzdHJpbmdzX3J1OiB7CiAgICAic2xpZGUiOiLRgdC70LDQudC0IiwKICAgICJoZWxwPyI6ItC/0L7QvNC+0YnRjD8iLAogICAgImNvbnRlbnRzPyI6ItGB0L7QtNC10YDQttCw0L3QuNC1PyIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiLQvtCz0LvQsNCy0LvQtdC90LjQtSIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiLQntCz0LvQsNCy0LvQtdC90LjQtSIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiLQv9C10YDQtdC30LDQv9GD0YHRgtC40YLRjCDQv9GA0LXQt9C10L3RgtCw0YbQuNGOIiwKICAgICJyZXN0YXJ0PyI6ItC/0LXRgNC10LfQsNC/0YPRgdC6PyIKICB9LAogIGhlbHBfcnU6CiAgICAi0J/QtdGA0LXQvNC10YnQsNC50YLQtdGB0Ywg0LrQu9C40LrQsNGPINC80YvRiNC60L7QuSwg0LjRgdC/0L7Qu9GM0LfRg9GPINC60LvQsNCy0LjRiNGDINC/0YDQvtCx0LXQuywg0YHRgtGA0LXQu9C60LgiICsKICAgICLQstC70LXQstC+L9Cy0L/RgNCw0LLQviDQuNC70LggUGcgVXAg0LggUGcgRG4uINCa0LvQsNCy0LjRiNC4IFMg0LggQiDQvNC10L3Rj9GO0YIg0YDQsNC30LzQtdGAINGI0YDQuNGE0YLQsC4iLAoKICBzdHJpbmdzX3N2OiB7CiAgICAic2xpZGUiOiJzaWRhIiwKICAgICJoZWxwPyI6Imhqw6RscCIsCiAgICAiY29udGVudHM/IjoiaW5uZWjDpWxsIiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6ImlubmVow6VsbHNmw7ZydGVja25pbmciLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiSW5uZWjDpWxsc2bDtnJ0ZWNrbmluZyIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJ2aXNhIHByZXNlbnRhdGlvbmVuIGZyw6VuIGLDtnJqYW4iLAogICAgInJlc3RhcnQ/IjoiYsO2cmphIG9tIgogIH0sCiAgaGVscF9zdjoKICAgICJCbMOkZGRyYSBtZWQgZXR0IGtsaWNrIG1lZCB2w6Ruc3RyYSBtdXNrbmFwcGVuLCBtZWxsYW5zbGFnc3RhbmdlbnRlbiwgIiArCiAgICAidsOkbnN0ZXItIG9jaCBow7ZnZXJwaWx0YW5nZW50ZXJuYSBlbGxlciB0YW5nZW50ZXJuYSBQZyBVcCwgUGcgRG4uICIgKwogICAgIkFudsOkbmQgdGFuZ2VudGVybmEgUyBvY2ggQiBmw7ZyIGF0dCDDpG5kcmEgdGV4dGVucyBzdG9ybGVrLiIsCgogIHN0cmluZ3M6IHsgfSwKCiAgbG9jYWxpemU6IGZ1bmN0aW9uIChzcmMpIHsKICAgIGlmIChzcmMgPT0gIiIpCiAgICAgIHJldHVybiBzcmM7CgogICAgIC8vIHRyeSBmdWxsIGxhbmd1YWdlIGNvZGUsIGUuZy4gZW4tVVMKICAgICB2YXIgcywgbG9va3VwID0gdzNjX3NsaWR5LnN0cmluZ3NbdzNjX3NsaWR5LmxhbmddOwoKICAgICBpZiAobG9va3VwKQogICAgIHsKICAgICAgIHMgPSBsb29rdXBbc3JjXTsKCiAgICAgICBpZiAocykKICAgICAgICByZXR1cm4gczsKICAgICB9CgogICAgIC8vIHN0cmlwIGNvdW50cnkgY29kZSBzdWZmaXgsIGUuZy4KICAgICAvLyB0cnkgZW4gaWYgdW5kZWZpbmVkIGZvciBlbi1VUwogICAgIHZhciBsZyA9IHczY19zbGlkeS5sYW5nLnNwbGl0KCItIik7CgogICAgIGlmIChsZy5sZW5ndGggPiAxKQogICAgIHsKICAgICAgIGxvb2t1cCA9IHczY19zbGlkeS5zdHJpbmdzW2xnWzBdXTsKCiAgICAgICBpZiAobG9va3VwKQogICAgICAgewogICAgICAgICBzID0gbG9va3VwW3NyY107CgogICAgICAgICBpZiAocykKICAgICAgICAgIHJldHVybiBzOwogICAgICAgfQogICAgIH0KCiAgICAgLy8gb3RoZXJ3aXNlIHN0cmluZyBhcyBpcwogICAgIHJldHVybiBzcmM7CiAgfSwKCiAgaW5pdF9sb2NhbGl6YXRpb246IGZ1bmN0aW9uICgpIHsKICAgIHZhciBpMThuID0gdzNjX3NsaWR5OwogICAgdmFyIGhlbHBfdGV4dCA9IHczY19zbGlkeS5oZWxwX3RleHQ7CgogICAgLy8gZWFjaCBzdWNoIGxhbmd1YWdlIGFycmF5IGlzIGRlY2xhcmVkIGluIHRoZSBsb2NhbGl6ZSBhcnJheQogICAgLy8gdGhpcyBpcyB1c2VkIGFzIGluICB3M2Nfc2xpZHkubG9jYWxpemUoImZvbyIpOwogICAgdGhpcy5zdHJpbmdzID0gewogICAgICAiZXMiOnRoaXMuc3RyaW5nc19lcywKICAgICAgImNhIjp0aGlzLnN0cmluZ3NfY2EsCiAgICAgICJjcyI6dGhpcy5zdHJpbmdzX2NzLAogICAgICAibmwiOnRoaXMuc3RyaW5nc19ubCwKICAgICAgImRlIjp0aGlzLnN0cmluZ3NfZGUsCiAgICAgICJwbCI6dGhpcy5zdHJpbmdzX3BsLAogICAgICAiZnIiOnRoaXMuc3RyaW5nc19mciwKICAgICAgImh1Ijp0aGlzLnN0cmluZ3NfaHUsCiAgICAgICJpdCI6dGhpcy5zdHJpbmdzX2l0LAogICAgICAiZWwiOnRoaXMuc3RyaW5nc19lbCwKICAgICAgImpwIjp0aGlzLnN0cmluZ3NfamEsCiAgICAgICJ6aCI6dGhpcy5zdHJpbmdzX3poLAogICAgICAicnUiOnRoaXMuc3RyaW5nc19ydSwKICAgICAgInN2Ijp0aGlzLnN0cmluZ3Nfc3YKICAgIH0sCgogICAgaTE4bi5zdHJpbmdzX2VzW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfZXM7CiAgICBpMThuLnN0cmluZ3NfY2FbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9jYTsKICAgIGkxOG4uc3RyaW5nc19jc1toZWxwX3RleHRdID0gaTE4bi5oZWxwX2NzOwogICAgaTE4bi5zdHJpbmdzX25sW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfbmw7CiAgICBpMThuLnN0cmluZ3NfZGVbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9kZTsKICAgIGkxOG4uc3RyaW5nc19wbFtoZWxwX3RleHRdID0gaTE4bi5oZWxwX3BsOwogICAgaTE4bi5zdHJpbmdzX2ZyW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfZnI7CiAgICBpMThuLnN0cmluZ3NfaHVbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9odTsKICAgIGkxOG4uc3RyaW5nc19pdFtoZWxwX3RleHRdID0gaTE4bi5oZWxwX2l0OwogICAgaTE4bi5zdHJpbmdzX2VsW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfZWw7CiAgICBpMThuLnN0cmluZ3NfamFbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9qYTsKICAgIGkxOG4uc3RyaW5nc196aFtoZWxwX3RleHRdID0gaTE4bi5oZWxwX3poOwogICAgaTE4bi5zdHJpbmdzX3J1W2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfcnU7CiAgICBpMThuLnN0cmluZ3Nfc3ZbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9zdjsKCiAgICB3M2Nfc2xpZHkubGFuZyA9IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoImxhbmciKTsKCiAgICBpZiAoIXczY19zbGlkeS5sYW5nKQogICAgICB3M2Nfc2xpZHkubGFuZyA9IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIik7CgogICAgaWYgKCF3M2Nfc2xpZHkubGFuZykKICAgICAgdzNjX3NsaWR5LmxhbmcgPSAiZW4iOwogIH0KfTsKCi8vIGhhY2sgZm9yIGJhY2sgYnV0dG9uIGJlaGF2aW9yCmlmICh3M2Nfc2xpZHkuaWU2IHx8IHczY19zbGlkeS5pZTcpCnsKICBkb2N1bWVudC53cml0ZSgiPGlmcmFtZSBpZD0naGlzdG9yeUZyYW1lJyAiICsKICAic3JjPSdqYXZhc2NyaXB0OlwiPGh0bWwiKyI+PC8iKyJodG1sPlwiJyAiICsKICAiaGVpZ2h0PScxJyB3aWR0aD0nMScgIiArCiAgInN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi04MDBweCc+PC9pZnJhbWU+Iik7Cn0KCi8vIGF0dGFjaCBldmVudCBsaXN0ZW5lcnMgZm9yIGluaXRpYWxpemF0aW9uCnczY19zbGlkeS5zZXRfdXAoKTsKCi8vIGhpZGUgdGhlIHNsaWRlcyBhcyBzb29uIGFzIGJvZHkgZWxlbWVudCBpcyBhdmFpbGFibGUKLy8gdG8gcmVkdWNlIGFubm95aW5nIHNjcmVlbiBtZXNzIGJlZm9yZSB0aGUgb25sb2FkIGV2ZW50CnNldFRpbWVvdXQodzNjX3NsaWR5LmhpZGVfc2xpZGVzLCA1MCk7Cgo=" charset="utf-8" type="text/javascript"></script>
<!-- Custom style -->
<style type="text/css">
.cover, h1, h2, h3, h4 {
text-align: center;
}
.cover h1 {
padding: 0;
margin: 0;
}
.speakers {
margin: 1em 0;
}
.speakers li {
list-style-type: none;
margin: 0;
padding: 0;
}
.slide > img {
margin: 0 auto;
}
@media screen {
.note { display: none; visibility: visible }
.toolbar { display:none }
}
@media print {
.note { display: block; visibility: visible; color: red; font-size: 110%; line-height: 1.5em; }
}
</style>
</head>
<body>
<div class="slide cover">
<h1>BitTorrent Basics</h1>
<p>Astro &lt;astro@spaceboyz.net&gt;</p>
<p>Datenspuren 2012</p>
<p>2012-10-14</p>
</div>
<div class="slide">
<h1>Agenda</h1>
<ul>
<li>Geschichte, Motivation, Werbung</li>
<li>Konzepte</li>
<li>Tracker</li>
<li>Wire Protocol</li>
<li>Vermeidung legaler Gefahren</li>
</ul>
</div>
<div class="slide">
<h1>Geschichte</h1>
<ul>
<li>Bram Cohen, April 2001</li>
<li>Released Juli 2001</li>
<li>Offen spezifiziert</li>
<li>Vielzahl an Clients verfügbar</li>
<li>Januar 2012: 150.000.000 active users (according to BitTorrent, Inc.)</li>
</ul>
</div>
<div class="slide">
<p class="note">Zur Bedeutung, eigentliche Motivation, deshalb damit beschäftigen</p>
<h1>BitTorrent Still Dominates Global Internet Traffic</h1>
<p>
A new Internet traffic trends report released by the Canadian
broadband management company Sandvine reveals that global P2P
traffic is expanding, with BitTorrent as the key player<span class="note">!</span>. In North
America, more than half of all upstream<span class="note">!</span> traffic (53.3%) on an
average day can be attributed to P2P. The report further signals
some really interesting regional differences in P2P use, such as
the dominance of Ares in Latin America.
</p>
<p><a href="http://torrentfreak.com/bittorrent-still-dominates-global-internet-traffic-101026/">http://torrentfreak.com/bittorrent-still-dominates-global-internet-traffic-101026/</a></p>
</div>
<div class="slide">
<h1>Werbung</h1>
<ul>
<li>Bitlove.org</li>
<li>Macht aus Podcasts Torrents <span class="note">Dank offener Protokolle</span></li>
<li>Eine legale BitTorrent-Website!</li>
</ul>
</div>
<div class="slide">
<h1>Wie funktioniert das eigentlich?</h1>
<img src="data:image/png;base64,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mLxQ7QzASPbZl5aW/mfq1Kk77bXXXrmJKgWXXnopZsyY0aXP/qabbtr2yiuvmO3t7XekULwoP/u2trZj29o6PTcFAFRWVn5wxRVXDNxvv/1yEFVqzj77bEybNs2orKxMe9vx48d//fbbb/+qra3tsSyElkj00aqdw2MWJE3QO0ppfFifz/fUxx9/fEE+jSpmGIZUVVXR5s2b8frrr39r3ciRIzu9unr//fe32bb9JIDuTJxe6FKajL20tPTZjz766IwDDjgg2/GkzOfzJfzsTz755E63Xb16dRuAnv7Zp0REFjU2Nl6633775c+tM9eyZctw9913Y4899gAArF27FrfffnvC8rZtY/Xq1RUAXspRiAAAwzB2EhEA2JzL4xYibSTWRVu3bn369ddfT2cmlpx55513cNttt6G5uRnNzc247bbb0NlV4datW/Hll1+WA/h37qIsXFu2bHnyzTffzMsryXiffWe+/vprbNq0qQTAW7mJsLA1NTUtzNf/919++SX69OmDqVOnYurUqVizZk2n5VevXo3S0tLPAGzITYQOESl3f9WhPpPQK+iuW7JixYq8O4uOGjVqFO68804AQENDQ6dlV61ahfLy8re2bNnS6TNI9Y0lb7zxRsTrIBI577zzvvns77rrrk7Lrly5EuXl5f9ua2vT242pWbJixYq8/d48+uijMXLkyJTKrly5EiLybJZD2gER9RERiEhKd6x6srz9QysA7zQ3N9tffvkldtttN69j6ZYVK1a0t7a2dpzMXCX21qZNm0q+/vpr9OnTx+tYumXFihVtzc3NT3gdRwH50LbtbZ9++mlF9FZyPpk3bx5+/OMfp1R2+fLlm5uamhZmOaQd2La9BxHBMIxPc33sQqO3uLuhvLx8WWNjo9dhxNXQ0AAiAhFh8+bOH/UsX758a2tr6/M5Cq0Y2OXl5f9euXKl13HENW/evG8++2SWL1/e1N7evjgHYRWNkpKSl/Lxs997771x6KGH4tFHH8Wjjz6K4cOHd1q+sbHRB2BJbqLbjoh2BwAR+TzXxy40egXdDVu2bHnizTffHDp8+PDy5KVzZ8SIERgxYkRKZSORCD788MOcNxQpdM3NzU+uWLHi8COPPDKv+lul89m3trbik08+6QVgWXajKi6bN29+4s033zzu+OOPz6sJlA866KCU5yz//PPP0eY0W1+d3aji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"/>
<p class="note">Daten bleiben unten, Gegensatz zu HTTP/Fileserver/Sharehoster</p>
<p class="note">Unmittelbare Kommunikation, deshalb IP-Addressen sichtbar</p>
<p class="note">Skalierbarkeit</p>
<p class="note">Initial Seeder: Torrent tot sobald ein Stück bei keinem Peer ist</p>
<p class="note">Ratio &gt; 2</p>
</div>
<div class="slide">
<h1>Bencoding</h1>
<ul>
<li>Ähnlich zu JSON/BSON</li>
<li>Binary safe</li>
<li>
Struktur:
<ul>
<li>Dictionaries: <code>d...e</code></li>
<li>Listen: <code>l...e</code></li>
<li>Strings: <code>23:...</code></li>
<li>Integers: <code>i...e</code></li>
</ul>
</li>
</ul>
<pre style="white-space: pre-wrap"><span style="color: green">d<span style="color: red">8:<span style="color: blue">announce</span></span><span style="color: red">39:<span style="color: blue">http://tracker.publicbt.com:80/announce</span></span><span style="color: red">13:<span style="color: blue">announce-list</span></span><span style="color: green">l<span style="color: blue">l<span style="color: red">39:<span style="color: red">http://tracker.publicbt.com:80/announce</span></span>el<span style="color: red">45:</span><span style="color: blue">http://tracker.openbittorrent.com:80/announce</span></span>el<span style="color: red">38:<span style="color: blue">udp://tracker.publicbt.com:80/announce</span></span>el44:udp://tracker.openbittorrent.com:80/announceel42:http://tracker.torrentbay.to:6969/announceel39:http://tracker.torrent.to:2710/announceel35:http://tracker.zond.org:80/announceel36:http://exodus.desync.com:80/announceel37:http://fr33dom.h33t.com:3310/announceel35:udp://tracker.1337x.org:80/announceel31:http://cpleft.com:2710/announceel43:http://tracker.torrentbox.com:2710/announceee7:comment50:SXSW 2012 Showcasing Artists (Unofficial) - Part 113:creation datei1329452716e</span>e</span>
</pre>
</div>
<div class="slide">
<h1>.torrent Metainfo Files</h1>
<img src="data:image/png;base64,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"/>
<ul>
<li><code>announce :: String</code></li>
<li><code>announce-list :: [[String]]</code></li>
<li><code>info/private :: Integer (BEP27)</code></li>
</ul>
</div>
<div class="slide">
<h1>Trackers</h1>
<ul>
<li>HTTP</li>
<li>
Erweiterungen:
<ul>
<li>UDP</li>
<li>(PEX)</li>
<li>(DHT)</li>
</ul>
</li>
</ul>
</div>
<div class="slide">
<h1>Tracker Request</h1>
<p>Client an Server:</p>
<ul>
<li>info_hash</li>
<li>peer_id</li>
<li>ip <span class="note">Sinn?</span></li>
<li>port</li>
<li>uploaded</li>
<li>downloaded</li>
<li>left</li>
<li>event <span class="note">started, completed, stopped, empty</span></li>
</ul>
<p class="note">Statistiken fälschbar</p>
<p class="note">Key</p>
</div>
<div class="slide">
<h1>Tracker Response</h1>
<p>Server an Client:</p>
<ul>
<li>
Peers, Peers6
<ul>
<li>Ursprünglich: Host, Port, Peer ID</li>
<li>Compact: Host, Port</li>
</ul>
</li>
<li>Interval</li>
<li>
Scrape-Informationen:
<ul>
<li>Anzahl aller Seeders</li>
<li>Anzahl aller Leechers</li>
</ul>
</li>
</ul>
<p class="note">DDoS Potential</p>
</div>
<div class="slide">
<h1>UDP Trackers</h1>
<ul>
<li>Anfrage &amp; Antwort je 1 UDP-Paket</li>
<li>Kein TCP-State</li>
<li>Effizienz</li>
</ul>
<p class="note">TCP besser throttlebar, aber UDP lohnt bei Verkehr mit vielen</p>
</div>
<div class="slide">
<h1>PEX: Peer Exchange</h1>
<ul>
<li>Austausch zwischen Peers über dritte Peers</li>
<li>Erweiterungen: <code>AZ_PEX</code>, <code>ut_pex</code></li>
<li>Schnelleres Bootstrapping <span class="note">Mehr Peers unabhängig von Tracker</span></li>
<li>Hält Schwarm zusammen wenn Tracker down ist</li>
</ul>
<p class="note">Tracker trotzdem benötigt wegen 1. Peer</p>
</div>
<div class="slide">
<h1>DHT: Distributed Hash Table</h1>
<ul>
<li>160-bit Schlüsselraum korrespondiert zu Info Hashes</li>
<li>UDP-Protokoll mit Bencoded Messages</li>
<li>
Nachrichten:
<ul>
<li>ping</li>
<li>find_node</li>
<li>get_peers</li>
<li>announce_peer <span class="note">Nur nach get_peers, limitiert Schreibzugriff</span></li>
</ul>
</li>
</ul>
</div>
<div class="slide">
<h1>Tracker Exchange</h1>
<ul>
<li>Beim Handshake Vergleich von Hashes der Tracker-Liste</li>
<li>Peers senden sich komplette Tracker-Liste und Updates</li>
<li>Nur <i>gute</i> Tracker werden weitergegeben</li>
</ul>
</div>
<div class="slide">
<h1>Peer IDs</h1>
<ul>
<li>160 Bits, hauptsächlich zufällig <p class="note">Per Client-Instanz oder per Torrent</p></li>
<li>Beginnt mit Version Identifier</li>
<li>BEP20: Peer ID Conventions</li>
<li>Mainline: <code>M4-3-6--</code>, <code>M4-20-8-</code></li>
<li>Andere: <code>-AZ2060-</code></li>
<li>
<code>AG</code>,
<code>A~</code>,
<code>AR</code>,
<code>AV</code>,
<code>AX</code>,
<code>AZ</code>,
<code>BB</code>,
<code>BC</code>,
<code>BF</code>,
<code>BG</code>,
<code>BR</code>,
<code>BS</code>,
<code>BX</code>,
<code>CD</code>,
<code>CT</code>,
<code>DE</code>,
<code>DP</code>,
<code>EB</code>,
<code>ES</code>,
<code>FT</code>,
<code>GS</code>,
<code>HL</code>,
<code>HN</code>,
<code>KG</code>,
<code>KT</code>,
<code>LH</code>,
<code>LP</code>,
<code>LT</code>,
<code>lt</code>,
<code>LW</code>,
<code>MO</code>,
<code>MP</code>,
<code>MR</code>,
<code>MT</code>,
<code>NX</code>,
<code>PD</code>,
<code>qB</code>,
<code>QD</code>,
<code>QT</code>,
<code>RT</code>,
<code>S~</code>,
<code>SB</code>,
<code>SS</code>,
<code>ST</code>,
<code>st</code>,
<code>SZ</code>,
<code>TN</code>,
<code>TR</code>,
<code>TS</code>,
<code>TT</code>,
<code>UL</code>,
<code>UT</code>,
<code>VG</code>,
<code>WT</code>,
<code>WY</code>,
<code>XL</code>,
<code>XT</code>,
<code>XX</code>,
<code>ZT</code>
<span class="note">So many clients!</span>
</li>
</ul>
</div>
<div class="slide">
<h1>Wire Protocol: Handshake</h1>
<p class="note">Für DDoS gegen HTTP</p>
<ul>
<li><code>"\19BitTorrent protocol"</code></li>
<li>8 Bytes Extensions</li>
<li>20 Bytes Info Hash</li>
<li>20 Bytes Peer ID</li>
</ul>
</div>
<div class="slide">
<h1>Wire Protocol: Messages</h1>
<img style="float: right" src="data:image/gif;base64,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k9ywyO5CnDJHJWvF8csWxRwyyjTDvDLOLbNMmMlhAV2uQjZv7HLOGBV9stBIX6R0zzw37fTOTFd8tNQJPe3UzFgTpHXCV3dt0NdW+yz2QWQvxfXZaRe1tthtE/V213EPNTfWdQt1t9R5B1a1d9N9Oxv22YlSLfPghO97MOJ2M8624TdXnbhAgev0N9KV53R5zplP6zjckBtt9uSUh7406Qh13u3ndJsOteSTq24w7LGDvPjh9KKedaK829u77kMFBAAh+QQFZAAfACxxAEoAsQBIAAAI/wA/fPBAsKDBgwgTKlQosKHDhxAjSpxIsaLFixgzXlzIsaPHgxpDihxJsqTIjyhTJjTJsqXLlxNVylQJs6bNmxln6uyIs6fPn0AHegxKtKjRnB6ErjzKtKnThgyfSp3qcynVq1hdIszKtWtIq17DioW4daxZs2XPqvUKcq3brG3fypUad67do3Xv6gWad6/fm33/CtZqcLBhmIEPK9aYeLHjio0fSyZbeLJlipEvT86s+THnzos/gz4sevTg0qb/ok69dzXru65fz40t+y3t2mtv4z6re/fY3r7DAg/edThxuJWPn06uXDXz5q2fQ4ctffrs6tZtY8+eezt33t6//2UOL144+fLFz6NHXnC99vbuu8OPD34+/fH275vPrz89//7s/QcgVWkNGKCABjYFVoIEFsggXQ4+6NRCEk41VIVM7aThhhx2OBNWHoYo4ogackXiiSimiCCEKrbo4k77vSjjjBwFBAA7"/>
<ul>
<li>4 Bytes Length Prefix</li>
<li>
Messages:
<ul style="font-family: fixed, monospace">
<li>Choke</li>
<li>Unchoke</li>
<li>Interested</li>
<li>Not interested</li>
<li>Have(Index)</li>
<li>Bitfield(Pieces)</li>
<li>Request(Index, Begin, Length)</li>
<li>Piece(Index, Begin, Data)</li>
<li>Cancel(Index, Begin, Length)</li>
</ul>
</li>
</ul>
<p style="color: grey">http://en.wikipedia.org/wiki/BitTorrent</p>
</div>
<div class="slide">
<h1>uTP: µTorrent Protocol</h1>
<img style="float: right; height: 50%" src="data:image/png;base64,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"/>
<ul>
<li>Motivation: Upstream dicht, Bufferbloat, unangenehme Latenz des Internetanschlusses <span class="note">Konfiguration von Upload-Limit nötig</span></li>
<li>TCP wird bei vielen Verbindungen suboptimal <span class="note">2 Transfers, 1 hört auf, 1. plötzlich doppelt so schnell</span></li>
<li>Deshalb: UDP</li>
<li>Ähnliche Idee wie CoDeL <span class="note">5ms in Queue vs 100ms RTT</span></li>
<li>Wie TCP: reliable, ordered delivery</li>
</ul>
<p style="color: grey">http://blog.bittorrent.com/2009/11/02/visualizing-%C2%B5tp/</p>
</div>
<div class="slide">
<h1>Magnet Links</h1>
<pre style="white-space: pre">magnet:?xt=urn:btih:<span style="color: red">41e5a43777cc554ce9b17f0731558ecdb198a418</span>
&amp;dn=<span style="color: blue">pentaradio-rapnroll-2009-09-22</span>&amp;<span style="color: green">tr=udp%3A%2F%2Ftracker.op
enbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A
80&amp;tr=udp%3A%2F%2Ftracker.istole.it%3A6969&amp;tr=udp%3A%2F%2Ftr
acker.ccc.de%3A80</span></pre>
<ul>
<li>BEP9: Extension for Peers to Send Metadata Files</li>
<li>Tracker optional (DHT)</li>
</ul>
</div>
<div class="slide">
<h1>BitTorrent Protocol Encryption</h1>
<ul>
<li>Message Stream Encryption/Protocol Encryption</li>
<li>DH Key Exchange</li>
<li>RC4 <span class="note">einfach, schnell, WEP, schlimmste Vulnerability vermieden (Anfang des Streams)</span></li>
<li>Confidentiality?</li>
<li><strike>Anonymity</strike></li>
<li>Obfuscation!</li>
<li>Häufige Einstellungen: Aus, Erlaubt/Bevorzugt, Erzwungen</li>
</ul>
</div>
<div class="slide">
<h1>Direkte Erreichbarkeit bei P2P</h1>
<p class="note">Nach Start sind nur erreichbare Peers nützliche Peers</p>
<p class="note">Später nicht-erreichbare Peers incoming, wenn
selbst erreichbar</p>
<ul>
<li>Direkte TCP-Verbindungen zwischen Endgeräten</li>
<li>Problem: zu viele Nutzer befinden sich hinter NAT</li>
<li>Automatisches Port-Mapping (DNAT): UPnP/IGD<span class="note">
Internet Gateway Device</span>, NAT PMP</li>
<li>The IPv6 Killer Application!</li>
</ul>
</div>
<div class="slide">
<h1>Erreichbar sein heißt...</h1>
<ul>
<li>...einen Internet-Dienst anzubieten</li>
<li>Datenaustausch findet auch bei ausgehenden Verbindungen
statt</li>
<li>Don't get caught:
<ul>
<li>Filterlisten: PeerGuardian, iBlocklist <span class="note">Böse Institutionen nutzen
auch normale DSL-Anschlüsse</span></li>
<li>VPN-Anbieter</li>
</ul>
</li>
</ul>
</div>
<div class="slide">
<h1>Internet-Traffic über VPN-Provider</h1>
<ul>
<li>Viele Anbieter, ca. 5-10 €/Monat</li>
<li>Tunnel mit PPTP oder OpenVPN: <code>tun0</code></li>
<li>Manuelle Route zum Tunnelendpunkt wie herkömmliche Default-Route</li>
<li>Neue Default-Route einzig über Tunnel</li>
</ul>
<p class="note">Zusicherung der Anbieter, sicher durch Ausland</p>
<p class="note">Anonyme Bezahlung?</p>
</div>
<div class="slide">
<h1>Internet-Traffic über VPN-Provider</h1>
<p>Wait, what?</p>
<p class="incremental">Lieber nur Torrent-Traffic, Isolation
bspw. über Virtualisierung</p>
</div>
<div class="slide">
<h1>Resümee</h1>
<ul>
<li>BitTorrent wird als <i>gefährlich</i> angesehen weil es gut funktioniert</li>
<li>Inhalte inkriminieren</li>
<li>Seed more pls!</li>
</ul>
</div>
</body>
</html>