
/*

ET-Chat Copyright by SEDesign | ET-Chat v3.x.x Lizenz: CCPL | Autor: Evgeni Tcherkasski (info@s-e-d.de)

ET-Chat_T-FISH-MOD Weiterentwicklung des ET-Chats durch Tommy (Thomas Kuhn) und Harlekin (Bernd Witte)

Die Weiterentwicklungen, Optimierungen und Ergänzungen am Code sind das geistige Eigentum von Tommy (Thomas Kuhn) und Harlekin (Bernd Witte).

*/

@import url('data:text/css;base64,LyoKSGllciB3ZXJkZW4gVGV4dGZhcmJlIGFtIENoYXRzdGFydCB1bmQgU3lzdGVtdGV4dGZhcmJlIGFuZ2VnZWJlbi4KRGllIFBhcmFtZXRlciB3ZXJkZW4gbWl0IFBIUCBhdXNnZWxlc2VuLCBkZXNoYWxiIGJpdHRlIGRpZSBTeW50YXhpcyBiZWFjaHRlbiEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRleHRmYXJiZTpENEY1RUYKU3lzdGVtZmFyYmU6MDBFOEM4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqLwoKLyoKRVQtQ2hhdCBDb3B5cmlnaHQgYnkgU0VEZXNpZ24gfCBFVC1DaGF0IHYzLngueCBMaXplbno6IENDUEwKRVQtQ2hhdF9ULUZJU0gtTU9EIFdlaXRlcmVudHdpY2tsdW5nIGR1cmNoIFRvbW15IHVuZCBIYXJsZWtpbgoK4piFIFJFU0tJTjogUmFkaW8gU291bmQgQmFyIOKAkyBIb21lcGFnZSBUaGVtZSB2MgogIFZvbGxzdMOkbmRpZyDDvGJlcmFyYmVpdGV0ZXMgRGVzaWduIGlkZW50aXNjaCB6dXIgUlNCLUhvbWVwYWdlCiovCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEdPT0dMRSBGT05UUyDigJMgaWRlbnRpc2NoIHp1ciBIUAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUJlYmFzK05ldWUmZmFtaWx5PURNK1NhbnM6d2dodEAzMDA7NDAwOzYwMCZkaXNwbGF5PXN3YXAnKTsKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgREVTSUdOLVZBUklBQkxFTiDigJMgMToxIHZvbiBkZXIgSG9tZXBhZ2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwo6cm9vdCB7CiAgLS1iZzogICAgICAgICMwNjBkMGY7CiAgLS1zdXJmYWNlOiAgICMwYTE1MTg7CiAgLS1jYXJkOiAgICAgICMwZDFjMjA7CiAgLS1ib3JkZXI6ICAgICMxMzI4MzA7CiAgLS1hY2NlbnQxOiAgICMwMGU4Yzg7CiAgLS1hY2NlbnQyOiAgICNmZjIyMjI7CiAgLS1hY2NlbnQzOiAgICMwMDc3ZmY7CiAgLS1hY2NlbnQ0OiAgICMwMGNjNTU7CiAgLS10ZXh0OiAgICAgICNkNGY1ZWY7CiAgLS1tdXRlZDogICAgICM0YTdhNzI7CiAgLS1nbG93MTogICAgIDAgMCAyMHB4ICMwMGU4Yzg2NjsKICAtLWdsb3cxLXM6ICAgMCAwIDEwcHggIzAwZThjODQ0OwogIC0tZ2xvdzI6ICAgICAwIDAgMjBweCAjZmYyMjIyNjY7CiAgLS1nbG93MzogICAgIDAgMCAyMHB4ICMwMDc3ZmY1NTsKICAtLWdsb3c0OiAgICAgMCAwIDIwcHggIzAwY2M1NTU1OwogIC0tZm9udDogICAgICAnRE0gU2FucycsIHZlcmRhbmEsIHNhbnMtc2VyaWY7CiAgLS1mb250LWhlYWQ6ICdCZWJhcyBOZXVlJywgdmVyZGFuYSwgc2Fucy1zZXJpZjsKCiAgLyogUHJpdmlsZWdpZW4gKi8KICAtLWNvbG9yLWFkbWluOiAjZmYyMjIyOwogIC0tY29sb3ItbW9kOiAgICMwMGU4Yzg7CiAgLS1jb2xvci11c2VyOiAgIzAwY2M1NTsKICAtLWNvbG9yLWdhc3Q6ICAjNGE3YTcyOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJFU0VUICYgQkFTRQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CgouaGlkZGVuIHsgZGlzcGxheTogbm9uZTsgfQojaGlkZGVuIHsgZGlzcGxheTogbm9uZTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBQUklWSUxFR0lFTgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5wcml2aWxlZ2UtYWRtaW4geyBjb2xvcjogdmFyKC0tY29sb3ItYWRtaW4pOyBmb250LXdlaWdodDogNzAwOyB0ZXh0LXNoYWRvdzogdmFyKC0tZ2xvdzIpOyB9Ci5wcml2aWxlZ2UtbW9kICAgeyBjb2xvcjogdmFyKC0tY29sb3ItbW9kKTsgICBmb250LXdlaWdodDogNzAwOyB0ZXh0LXNoYWRvdzogdmFyKC0tZ2xvdzEpOyB9Ci5wcml2aWxlZ2UtdXNlciAgeyBjb2xvcjogdmFyKC0tY29sb3ItdXNlcik7ICBmb250LXdlaWdodDogNjAwOyB9Ci5wcml2aWxlZ2UtZ2FzdCAgeyBjb2xvcjogdmFyKC0tY29sb3ItZ2FzdCk7ICBmb250LXdlaWdodDogNDAwOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEJPRFkgJiBISU5URVJHUlVORAogICDihpIgR2xlaWNoZXIgTWVzaC1HcmFkaWVudCB3aWUgSG9tZXBhZ2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwpib2R5LCAjYm9keSwgI2JvZHlfaWQgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnKSAhaW1wb3J0YW50OwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgZm9udC1zaXplOiAxMXB0OwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBtaW4taGVpZ2h0OiAxMDB2aDsKICBvdmVyZmxvdy14OiBoaWRkZW47Cn0KCi8qIERhcyBjaGFyYWt0ZXJpc3Rpc2NoZSBNZXNoIGF1cyBkZXIgSFAgKi8KYm9keTo6YmVmb3JlIHsKICBjb250ZW50OiAnJzsKICBwb3NpdGlvbjogZml4ZWQ7CiAgaW5zZXQ6IDA7CiAgei1pbmRleDogLTE7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgYmFja2dyb3VuZDoKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDcwJSA1MCUgYXQgNSUgIDE1JSwgcmdiYSgwLDIzMiwyMDAsLjE4KSAwJSwgdHJhbnNwYXJlbnQgNTUlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDYwJSA1NSUgYXQgOTUlIDg1JSwgcmdiYSgyNTUsMzQsMzQsLjE0KSAgMCUsIHRyYW5zcGFyZW50IDU1JSksCiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1MCUgNDAlIGF0IDUwJSAgNSUsIHJnYmEoMCwxMTksMjU1LC4xMCkgIDAlLCB0cmFuc3BhcmVudCA2MCUpLAogICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNDUlIDQ1JSBhdCA4NSUgNDUlLCByZ2JhKDAsMjA0LDg1LC4wOCkgICAwJSwgdHJhbnNwYXJlbnQgNTUlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDgwJSA4MCUgYXQgNTAlIDUwJSwgcmdiYSgwLDIzMiwyMDAsLjAzKSAgMCUsIHRyYW5zcGFyZW50IDcwJSk7Cn0KCi8qIFZpZGVvLUhpbnRlcmdyw7xuZGUg4oCTIGxlaWNodCB2ZXJkdW5rZWx0IGRhbWl0IEZhcmJlbiBsZXVjaHRlbiAqLwpAa2V5ZnJhbWVzIGZhZGVJbk91dF92aWRlb19iYWNrZ3JvdW5kX0xvZ2luIHsKICAwJSAgIHsgb3BhY2l0eTogMDsgfQogIDEwMCUgeyBvcGFjaXR5OiAwLjMwOyB9Cn0KQGtleWZyYW1lcyBmYWRlSW5PdXRfdmlkZW9fYmFja2dyb3VuZF9jaGF0IHsKICAwJSAgIHsgb3BhY2l0eTogMDsgfQogIDEwMCUgeyBvcGFjaXR5OiAwLjI1OyB9Cn0KCiN2aWRlb19iYWNrZ3JvdW5kX0xvZ2luLAojdmlkZW9fYmFja2dyb3VuZF9jaGF0IHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiA1MCU7IGxlZnQ6IDUwJTsKICBtaW4td2lkdGg6IDEwMCU7IG1pbi1oZWlnaHQ6IDEwMCU7CiAgd2lkdGg6IGF1dG87IGhlaWdodDogYXV0bzsKICB6LWluZGV4OiAtMTAwOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpOwogIG9iamVjdC1maXQ6IGNvdmVyOwogIGZpbHRlcjogYnJpZ2h0bmVzcyguMjUpIHNhdHVyYXRlKDEuNCkgaHVlLXJvdGF0ZSgxNjBkZWcpOwp9CiN2aWRlb19iYWNrZ3JvdW5kX0xvZ2luIHsgYW5pbWF0aW9uOiBmYWRlSW5PdXRfdmlkZW9fYmFja2dyb3VuZF9Mb2dpbiA1cyBlYXNlLWluIGZvcndhcmRzOyB9CiN2aWRlb19iYWNrZ3JvdW5kX2NoYXQgIHsgYW5pbWF0aW9uOiBmYWRlSW5PdXRfdmlkZW9fYmFja2dyb3VuZF9jaGF0ICA1cyBlYXNlLWluIGZvcndhcmRzOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEhFQURFUiAvIEtPUEZaRUlMRSAgKCNrb3BmKQogICDihpIgU3RpY2t5IEhlYWRlciBkZXIgSFA6IEdsYXNtb3JwaGlzbSwgVMO8cmtpcy1HbG93IHVudGVuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2tvcGYgewogIGhlaWdodDogNjJweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDYsIDEzLCAxNSwgMC45MikgIWltcG9ydGFudDsKICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7CiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxNHB4OwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxNHB4OwogIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDAsMjMyLDIwMCwuMjUpOwogIGJveC1zaGFkb3c6IDAgNHB4IDMwcHggcmdiYSgwLDAsMCwuNiksIGluc2V0IDAgLTFweCAwIHJnYmEoMCwyMzIsMjAwLC4xKTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgY29sb3I6IHZhcigtLXRleHQpOwogIHBhZGRpbmc6IDAgMTRweDsKICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogMTBweDsKfQoKLmxlZnQtc2VjdGlvbiB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogMTBweDsKICBmbGV4LWdyb3c6IDE7CiAgbWFyZ2luLWxlZnQ6IDZweDsKfQoubGVmdC1zZWN0aW9uIGlmcmFtZSB7IGZsZXgtZ3JvdzogMTsgbWluLXdpZHRoOiAyMzBweDsgbWF4LXdpZHRoOiAxMDAlOyB9Ci5yaWdodC1zZWN0aW9uIHsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZ2FwOiAxMHB4OwogIG1hcmdpbi1yaWdodDogNnB4OwogIGZsZXgtc2hyaW5rOiAwOwp9CgovKiAiUGxheWluZyBOb3ciLVRleHQgaW0gSGVhZGVyICovCiNrb3BmIGIsICNrb3BmIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1hY2NlbnQxKTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENIQVQtSU5IQUxUICAoI2NoYXRpbmhhbHQpCiAgIOKGkiBIYXVwdGZlbnN0ZXI6IGR1bmtsZSBHbGFzY2FyZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNjaGF0aW5oYWx0IHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIHBhZGRpbmc6IDEwcHggMTJweDsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIGJvcmRlci1sZWZ0OiAycHggc29saWQgcmdiYSgwLDIzMiwyMDAsLjE1KTsKICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAyMSwgMjQsIDAuODgpICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxMXB0OwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgbGluZS1oZWlnaHQ6IDE3MCU7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGhlaWdodDogNDUwcHg7CiAgb3ZlcmZsb3c6IGF1dG87CiAgYm94LXNoYWRvdzoKICAgIGluc2V0IDAgMCA4MHB4IHJnYmEoMCwwLDAsLjQpLAogICAgaW5zZXQgMCAwIDFweCByZ2JhKDAsMjMyLDIwMCwuMDgpOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIE9OTElORS1MSVNURSAgKCNvbmxpbmVsaXN0KQogICDihpIgUmVjaHRlIFNpZGViYXItQ2FyZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNvbmxpbmVsaXN0IHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIHBhZGRpbmc6IDEwcHg7CiAgYmFja2dyb3VuZDogcmdiYSgxMCwgMjEsIDI0LCAwLjkyKSAhaW1wb3J0YW50OwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLDExOSwyNTUsLjIpOwogIGZvbnQtc2l6ZTogMTFwdDsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgY29sb3I6IHZhcigtLXRleHQpOwogIGhlaWdodDogNDUwcHg7CiAgbGluZS1oZWlnaHQ6IDE3MCU7CiAgb3ZlcmZsb3c6IGF1dG87CiAgYm94LXNoYWRvdzoKICAgIDAgMCA0MHB4IHJnYmEoMCwwLDAsLjUpLAogICAgaW5zZXQgMCAwIDYwcHggcmdiYSgwLDAsMCwuMyk7CiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOwp9CiNvbmxpbmVsaXN0LmNvbGxhcHNlZCB7IHdpZHRoOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IG5vbmU7IG92ZXJmbG93OiBoaWRkZW47IH0KCiNzcGxpdHBhbmUgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOwogIGZsb2F0OiByaWdodDsKICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgd2lkdGg6IDA7IG1hcmdpbjogMDsKICBoZWlnaHQ6IDQ1MHB4OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Owp9CiNzcGxpdHBhbmUuY29sbGFwc2VkIHsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0KCi8qIFJhdW0tw5xiZXJzY2hyaWZ0ZW4gaW4gZGVyIE9ubGluZWxpc3RlICovCiNvbmxpbmVsaXN0IGIsICNvbmxpbmVsaXN0IHN0cm9uZyB7CiAgY29sb3I6IHZhcigtLWFjY2VudDEpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWQpOwogIGxldHRlci1zcGFjaW5nOiAuMDVlbTsKICBmb250LXNpemU6IDEycHQ7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgREogQk9YCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLmRqX29ubGluZSB7CiAgd2lkdGg6IDIyNXB4OwogIG1pbi1oZWlnaHQ6IDE0MHB4OwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudDEpOwogIGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOwogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzEpLCBpbnNldCAwIDAgMzBweCByZ2JhKDAsMjMyLDIwMCwuMDUpOwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLyogREogQm94ICsgU2VuZGVwbGFuIEJ1dHRvbnMgKi8KLmRqLWJveC1idG4sIC5zZW5kZXBsYW4tYnRuIHsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDM0cHg7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgY29sb3I6IHZhcigtLWFjY2VudDEpOwogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkKTsKICBmb250LXNpemU6IDEzcHQ7CiAgbGV0dGVyLXNwYWNpbmc6IC4wOGVtOwogIGJvcmRlcjogbm9uZTsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgb3V0bGluZTogbm9uZTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgdGV4dC1zaGFkb3c6IHZhcigtLWdsb3cxLXMpOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjJzLCBjb2xvciAuMnM7Cn0KLmRqLWJveC1idG46OmJlZm9yZSwgLnNlbmRlcGxhbi1idG46OmJlZm9yZSB7IGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7IH0KLmRqLWJveC1idG46aG92ZXIsIC5zZW5kZXBsYW4tYnRuOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiByZ2JhKDAsMjMyLDIwMCwuMTIpOwogIGNvbG9yOiAjZmZmOwp9Ci5kai1ib3gtYnRuOmFjdGl2ZSwgLnNlbmRlcGxhbi1idG46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBFSU5HQUJFLUxFSVNURSAgKCNmb3JtKQogICDihpIgUGxheWVyLUJhciBkZXIgSFA6IEdsYXNtb3JwaGlzbSwgb2JlbiBUw7xya2lzLUdsb3cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZm9ybSB7CiAgYmFja2dyb3VuZDogcmdiYSg4LCAxNywgMjAsIDAuOTYpICFpbXBvcnRhbnQ7CiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE2cHgpOwogIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE2cHgpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKICBjbGVhcjogYm90aDsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsMjMyLDIwMCwuMjIpOwogIG1hcmdpbi10b3A6IDhweDsKICBwYWRkaW5nOiA2cHggMTBweDsKICBoZWlnaHQ6IDU0cHg7CiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTRweDsKICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTRweDsKICBib3gtc2hhZG93OiAwIC00cHggMjRweCByZ2JhKDAsMCwwLC41KTsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNmb3JtX2xlZnQgewogIGJvcmRlcjogMDsKICBwYWRkaW5nOiA0cHggOHB4IDRweCA0cHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGZsb2F0OiBsZWZ0Owp9CiNmb3JtX3JpZ2h0IHsKICBib3JkZXI6IDA7CiAgcGFkZGluZzogOHB4IDRweCA0cHggNHB4OwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBmbG9hdDogbGVmdDsKfQoKLyogSGF1cHRlaW5nYWJlZmVsZCDigJMgUGlsbC1Gb3JtIHdpZSBIUCAqLwojbWVzc2FnZSB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBib3JkZXItcmFkaXVzOiA1MHB4OwogIG91dGxpbmU6IG5vbmU7CiAgcGFkZGluZzogOXB4IDE4cHg7CiAgZm9udC1zaXplOiAxMXB0OwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKSAhaW1wb3J0YW50OwogIGNvbG9yOiB2YXIoLS10ZXh0KSAhaW1wb3J0YW50OwogIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMjVzLCBib3gtc2hhZG93IC4yNXM7CiAgY2FyZXQtY29sb3I6IHZhcigtLWFjY2VudDEpOwp9CiNtZXNzYWdlOmZvY3VzIHsKICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudDEpOwogIGJveC1zaGFkb3c6IHZhcigtLWdsb3cxKTsKfQojbWVzc2FnZTo6cGxhY2Vob2xkZXIgeyBjb2xvcjogdmFyKC0tbXV0ZWQpOyB9CgovKiBQcml2YXQtTmFjaHJpY2h0ZW4tRWluZ2FiZSAqLwoucHJpdmF0ZV9tZXNzYWdlX2ZpZWxkIHsKICBmb250LXNpemU6IDExcHQ7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOwogIHdpZHRoOiAyMDBweDsKICBtYXJnaW4tdG9wOiA4cHg7CiAgcGFkZGluZzogOXB4IDE2cHg7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgY29sb3I6IHZhcigtLXRleHQpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgYm9yZGVyLXJhZGl1czogNTBweDsKICBvdXRsaW5lOiBub25lOwogIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsIGJveC1zaGFkb3cgLjJzOwp9Ci5wcml2YXRlX21lc3NhZ2VfZmllbGQ6Zm9jdXMgewogIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50MSk7CiAgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzEpOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEJVVFRPTlMg4oCTIHVuaXZlcnNhbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5idXR0b24sIC50ZWFtc3BlYWtfc3VibWl0X2J1dHRvbiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtc2l6ZTogMTAuNXB0OwogIGNvbG9yOiB2YXIoLS1tdXRlZCk7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBwYWRkaW5nOiA3cHggMTZweDsKICBib3JkZXItcmFkaXVzOiA4cHg7CiAgb3V0bGluZTogbm9uZTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycywgYm9yZGVyLWNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnMsIGNvbG9yIC4yczsKfQouYnV0dG9uOmhvdmVyLCAudGVhbXNwZWFrX3N1Ym1pdF9idXR0b246aG92ZXIgewogIGJhY2tncm91bmQ6IHJnYmEoMCwyMzIsMjAwLC4xKTsKICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudDEpOwogIGNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93MS1zKTsKfQouYnV0dG9uOmFjdGl2ZSwgLnRlYW1zcGVha19zdWJtaXRfYnV0dG9uOmFjdGl2ZSB7CiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKfQoKLyogU3VibWl0IC8gTG9naW4gQnV0dG9uICovCiNzdWJtaXRfYnV0dG9uIHsKICBmb250LXNpemU6IDExcHQ7CiAgY29sb3I6IHZhcigtLWJnKTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQxKTsKICBib3JkZXI6IG5vbmU7CiAgb3V0bGluZTogbm9uZTsKICBwYWRkaW5nOiA5cHggMjZweDsKICBib3JkZXItcmFkaXVzOiA1MHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93MSk7CiAgbGV0dGVyLXNwYWNpbmc6IC4wNmVtOwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzLCBib3gtc2hhZG93IC4xNXMsIG9wYWNpdHkgLjE1czsKfQojc3VibWl0X2J1dHRvbjpob3ZlciAgeyBvcGFjaXR5OiAuODg7IGJveC1zaGFkb3c6IDAgMCAzNnB4ICMwMGU4Yzg5OTsgfQojc3VibWl0X2J1dHRvbjphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIE5BQ0hSSUNIVEVOLVpFSUxFTgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgovKiBGcmVtZGUgTmFjaHJpY2h0ICovCi5tZXNzX2JhY2sgewogIGJhY2tncm91bmQ6IHJnYmEoMTMsIDI4LCAzMiwgMC42KTsKICBib3JkZXI6IDA7CiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwOwogIHBhZGRpbmc6IDdweCAxOHB4IDdweCAxMHB4OwogIG1hcmdpbi1ib3R0b206IDRweDsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogMTAwJTsKICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cywgYmFja2dyb3VuZCAuMTVzOwp9Ci5tZXNzX2JhY2s6aG92ZXIgewogIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKICBiYWNrZ3JvdW5kOiByZ2JhKDAsMjMyLDIwMCwuMDQpOwp9CgovKiBFaWdlbmUgTmFjaHJpY2h0IOKAkyBsZWljaHQgdMO8cmtpcyB1bnRlcmxlZ3QgKi8KLm1lc3Nfc2VsZiB7CiAgYmFja2dyb3VuZDogcmdiYSgwLCAyMzIsIDIwMCwgMC4wNik7CiAgYm9yZGVyOiAwOwogIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tYWNjZW50MSk7CiAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgcGFkZGluZzogN3B4IDE4cHggN3B4IDEwcHg7CiAgbWFyZ2luLWJvdHRvbTogNHB4OwogIGRpc3BsYXk6IGJsb2NrOwogIGRpcmVjdGlvbjogbHRyOwogIHdpZHRoOiAxMDAlOwogIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIDEycHggcmdiYSgwLDIzMiwyMDAsLjA2KTsKfQoKLyogUHJpdmF0ZSBBdXNnYWJlICovCi5wcml2YXRfYXVzZ19hbiB7CiAgYmFja2dyb3VuZDogcmdiYSgwLCAxMTksIDI1NSwgMC4wNyk7CiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1hY2NlbnQzKTsKICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICBwYWRkaW5nOiA3cHggMThweCA3cHggMTBweDsKICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgZGlzcGxheTogYmxvY2s7CiAgd2lkdGg6IDEwMCU7CiAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDAgMTJweCByZ2JhKDAsMTE5LDI1NSwuMDYpOwp9Ci5wcml2YXRfYXVzZ192b24gewogIGJhY2tncm91bmQ6IHJnYmEoMCwgMjMyLCAyMDAsIDAuMDYpOwogIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tYWNjZW50MSk7CiAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7CiAgcGFkZGluZzogN3B4IDE4cHggN3B4IDEwcHg7CiAgbWFyZ2luLWJvdHRvbTogNHB4OwogIGRpc3BsYXk6IGJsb2NrOwogIHdpZHRoOiAxMDAlOwp9CgovKiBTeXN0ZW0tTmFjaHJpY2h0ZW4gKi8KLm1lc3NfYmFja1tjbGFzcyo9InN5c3RlbSJdLAoua29wZiB7CiAgYmFja2dyb3VuZDogcmdiYSgwLDIzMiwyMDAsLjA0KTsKICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tYWNjZW50MSkgIWltcG9ydGFudDsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBISVNUT1JZIFRBQkVMTEVOLVpFSUxFTgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5rb3BmICAgIHsgYmFja2dyb3VuZDogcmdiYSgwLDIzMiwyMDAsLjA2KTsgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1hY2NlbnQxKSAhaW1wb3J0YW50OyB9Ci5nZXJhZGUgIHsgYmFja2dyb3VuZDogcmdiYSgxMywgMjgsIDMyLCAuNjUpOyB9Ci51bmdlcmFkZXsgYmFja2dyb3VuZDogcmdiYSgxMCwgMjEsIDI0LCAuNDUpOyB9Ci5wcml2YXRfdm9uICB7IGJhY2tncm91bmQ6IHJnYmEoMCwyMDQsODUsLjA2KTsgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWFjY2VudDQpICFpbXBvcnRhbnQ7IH0KLnByaXZhdF9uYWNoIHsgYmFja2dyb3VuZDogcmdiYSgwLDExOSwyNTUsLjA2KTsgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tYWNjZW50MykgIWltcG9ydGFudDsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBSw4RVTUUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoucm9vbXMgewogIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgcGFkZGluZzogNXB4IDEwcHg7CiAgY29sb3I6IHZhcigtLW11dGVkKTsKICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1yYWRpdXM6IDhweDsKICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycywgY29sb3IgLjJzLCBib3JkZXItY29sb3IgLjJzOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKfQoucm9vbXM6aG92ZXIgewogIGJhY2tncm91bmQ6IHJnYmEoMCwyMzIsMjAwLC4xKTsKICBjb2xvcjogdmFyKC0tYWNjZW50MSk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93MS1zKTsKfQoucm9vbXNfbm90X2FsbG93ZWQgewogIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgcGFkZGluZzogNXB4IDEwcHg7CiAgY29sb3I6IHZhcigtLW11dGVkKTsKICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgYm9yZGVyLXJhZGl1czogOHB4OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgb3BhY2l0eTogLjQ7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgTE9HSU4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojYm9keSB7IGhlaWdodDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LWZhbWlseTogdmFyKC0tZm9udCk7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnKTsgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlciBmaXhlZDsgb3ZlcmZsb3cteDogaGlkZGVuOyB9CgovKiBMb2dpbi1Cb3ggKi8KI2JveCB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBtYXgtd2lkdGg6IDUwMHB4OwogIGZvbnQtc2l6ZTogMTFwdDsKICBtYXJnaW46IDAgYXV0bzsKICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3gtc2hhZG93OgogICAgMCAwIDAgMXB4IHJnYmEoMCwyMzIsMjAwLC4xKSwKICAgIDAgMCA2MHB4IHJnYmEoMCwyMzIsMjAwLC4xKSwKICAgIDAgMCAxMjBweCByZ2JhKDAsMCwwLC43KTsKICBib3JkZXItcmFkaXVzOiAxOHB4Owp9CgojdG9wLWFyZWEgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE1cHg7IH0KCiNib3gtbGlua3MgewogIHBvc2l0aW9uOiBmaXhlZDsgd2lkdGg6IDM1MHB4OyBoZWlnaHQ6IGNhbGMoMTAwJSAtIDI0MHB4KTsKICB0b3A6IDQ1JTsgbGVmdDogMTUlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwp9Ci5ib3gtbGlua3MgewogIGZvbnQtc2l6ZTogOXB0OwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgcGFkZGluZzogMTRweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3JkZXItcmFkaXVzOiAxMnB4OwogIGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEoMCwwLDAsLjUpOwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKfQouYm94LWxpbmtzLWFkbWluIHsKICBmb250LXNpemU6IDlwdDsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQyKTsKICBwYWRkaW5nOiAxNHB4OwogIGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOwogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzIpOwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKfQojYm94LXJlY2h0cyB7CiAgcG9zaXRpb246IGZpeGVkOyB3aWR0aDogMzUwcHg7IGhlaWdodDogY2FsYygxMDAlIC0gMjQwcHgpOwogIHRvcDogNDUlOyBsZWZ0OiA4NSU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7Cn0KLmJveC1yZWNodHMgewogIGZvbnQtc2l6ZTogOXB0OwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgcGFkZGluZzogMTRweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3JkZXItcmFkaXVzOiAxMnB4OwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKfQouYm94LXJlY2h0cy1hZG1pbiB7CiAgZm9udC1zaXplOiA5cHQ7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWNjZW50Mik7CiAgcGFkZGluZzogMTRweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3JkZXItcmFkaXVzOiAxMnB4OwogIGJveC1zaGFkb3c6IHZhcigtLWdsb3cyKTsKICBjb2xvcjogdmFyKC0tdGV4dCk7Cn0KLmJveC1kYXRlbnNjaHV0eiB7IGZvbnQtc2l6ZTogMTFwdDsgcGFkZGluZzogMTBweDsgY29sb3I6IHZhcigtLW11dGVkKTsgbGluZS1oZWlnaHQ6IDEuNzsgfQouYm94LWZvb3RlciB7IHBhZGRpbmc6IDEwcHg7IH0KCi8qIMOcYmVyc2NocmlmdCBpbSBMb2dpbiAqLwojdWViZXJzY2hyaWZ0IHsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIHdpZHRoOiA3NSU7CiAgZm9udC1zaXplOiAxNHB0OwogIG1hcmdpbjogMCBhdXRvOwogIHBhZGRpbmc6IDEzcHg7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgY29sb3I6IHZhcigtLWFjY2VudDEpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWQpOwogIGxldHRlci1zcGFjaW5nOiAuMTJlbTsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93MSk7CiAgYm9yZGVyLXJhZGl1czogMTBweDsKICB0ZXh0LXNoYWRvdzogdmFyKC0tZ2xvdzEpOwp9CgojaW5oYWx0IHsgcGFkZGluZzogMDsgZm9udC1zaXplOiAxMXB0OyBtYXJnaW46IDAgYXV0bzsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQoKLyogSW5wdXQtRmVsZGVyICovCiN1c2VybmFtZSwgI3B3LCAjZ2VuZGVyIHsKICBmb250LXNpemU6IDExcHQ7CiAgY29sb3I6IHZhcigtLXRleHQpOwogIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgb3V0bGluZTogbm9uZTsKICBwYWRkaW5nOiA5cHggMTZweDsKICBib3JkZXItcmFkaXVzOiA4cHg7CiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnM7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOwogIGNhcmV0LWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKfQojdXNlcm5hbWU6Zm9jdXMsICNwdzpmb2N1cyB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93MSk7Cn0KCi5nZW5kZXItbGFiZWwgewogIHRleHQtYWxpZ246IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tbXV0ZWQpOwogIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgcGFkZGluZzogOHB4IDE2cHg7CiAgYm9yZGVyLXJhZGl1czogOHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICB0cmFuc2l0aW9uOiBhbGwgLjJzOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKICBmb250LXNpemU6IDExcHQ7Cn0KLmdlbmRlci1pbnB1dCB7IGRpc3BsYXk6IG5vbmU7IH0KLmdlbmRlci1pbnB1dDpjaGVja2VkICsgLmdlbmRlci1sYWJlbCB7CiAgY29sb3I6IHZhcigtLWJnKTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQxKTsKICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudDEpOwogIGJveC1zaGFkb3c6IHZhcigtLWdsb3cxKTsKfQoKI2NvcHlyaWdodCB7IGZvbnQtc2l6ZTogMTBwdDsgY29sb3I6IHZhcigtLW11dGVkKTsgfQojbG9naW4geyBkaXNwbGF5OiBpbmxpbmU7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgUE9QVVAgLyBNT0RBTAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5wb3B1cCB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgcG9zaXRpb246IGZpeGVkOyB3aWR0aDogMTAwdnc7IGhlaWdodDogMTAwdmg7IHRvcDogMDsgcmlnaHQ6IDA7CiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgyKTsKICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgei1pbmRleDogMjsgdmlzaWJpbGl0eTogaGlkZGVuOyBvcGFjaXR5OiAwOyBvdmVyZmxvdzogaGlkZGVuOwogIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzLCB2aXNpYmlsaXR5IC40czsKfQoucG9wdXA6dGFyZ2V0IHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMTsgfQoKLnd1bnNjaGJveCwgLnNlbmRlcGxhbiwgLmRhdGVuc2NodXR6YmVzdGltbXVuZywKLnVzZXJsaXN0ZSwgLmluZm8sIC5saXplbnppbmZvcm1hdGlvbiwgLnJlZ2lzdGVyIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIGJvcmRlci1yYWRpdXM6IDE4cHg7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogNTAlOyBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgd2lkdGg6IDc1JTsKICBoZWlnaHQ6IDg4JTsKICBib3gtc2hhZG93OgogICAgMCAwIDAgMXB4IHJnYmEoMCwyMzIsMjAwLC4wOCksCiAgICAwIDAgODBweCByZ2JhKDAsMjMyLDIwMCwuMDgpLAogICAgMCAwIDIwMHB4IHJnYmEoMCwwLDAsLjgpOwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKfQoud3Vuc2NoYm94ICB7IGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMzQsMzQsLjQpOyAgYm94LXNoYWRvdzogMCAwIDYwcHggcmdiYSgyNTUsMzQsMzQsLjEpLCAwIDAgMCAxcHggcmdiYSgyNTUsMzQsMzQsLjE1KTsgfQouc2VuZGVwbGFuICB7IGJvcmRlci1jb2xvcjogcmdiYSgwLDExOSwyNTUsLjQpOyAgYm94LXNoYWRvdzogMCAwIDYwcHggcmdiYSgwLDExOSwyNTUsLjEpLCAwIDAgMCAxcHggcmdiYSgwLDExOSwyNTUsLjE1KTsgfQoudXNlcmxpc3RlICB7IGJvcmRlci1jb2xvcjogcmdiYSgwLDIzMiwyMDAsLjMpOyAgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzEpOyB9CgoucG9wdXBfdGV4dCB7CiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHBhZGRpbmc6IDIuNXJlbTsKICBvdmVyZmxvdy15OiBhdXRvOwogIGNvbG9yOiB2YXIoLS10ZXh0KTsKfQoucG9wdXBfY2xvc2UgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IC0uNDVyZW07IHRvcDogLS40NXJlbTsKICB3aWR0aDogMi4ycmVtOyBoZWlnaHQ6IDIuMnJlbTsKICBmb250LXNpemU6IDFyZW07IGZvbnQtd2VpZ2h0OiA5MDA7IGJvcmRlci1yYWRpdXM6IDUwJTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQyKTsgei1pbmRleDogNDsgY29sb3I6ICNmZmY7CiAgbGluZS1oZWlnaHQ6IDIuMnJlbTsgdGV4dC1hbGlnbjogY2VudGVyOyBjdXJzb3I6IHBvaW50ZXI7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGJveC1zaGFkb3c6IHZhcigtLWdsb3cyKTsKICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLCBib3gtc2hhZG93IC4yczsKfQoucG9wdXBfY2xvc2U6aG92ZXIgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjI4KTsgYm94LXNoYWRvdzogMCAwIDI0cHggI2ZmMjIyMjk5OyB9Ci5wb3B1cF9jbG9zZTphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDApOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFBSSVZBVCBOQUNIUklDSFRFTiBGRU5TVEVSCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI3ByaXZhdF9hbnplaWdlIHsgcGFkZGluZy1ib3R0b206IDNweDsgY29sb3I6IHZhcigtLWFjY2VudDEpOyBoZWlnaHQ6IDE4cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsgfQojcHJpdmF0X21vZHVzICAgeyBmb250LXNpemU6IDExcHQ7IH0KI2Nsb3NlX3ByaXZhdCB7CiAgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQyKTsgY29sb3I6ICNmZmY7CiAgZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiA2cHg7IHBhZGRpbmc6IDNweCAxMHB4OwogIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzOwp9CiNjbG9zZV9wcml2YXQ6aG92ZXIgeyBvcGFjaXR5OiAuODU7IH0KCi5wcml2YXRfbWVzYWdlc193aW5kb3cgewogIGhlaWdodDogY2FsYygxMDAlIC0gNjBweCk7IHBhZGRpbmc6IDZweDsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiA4cHg7CiAgb3ZlcmZsb3c6IGF1dG87IGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOwp9Ci5wcml2YXRfd2luX2J1dHRvbiB7CiAgY3Vyc29yOiBwb2ludGVyOyBmb250LXdlaWdodDogNjAwOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudDMpOyBjb2xvcjogdmFyKC0tYWNjZW50Myk7CiAgd2lkdGg6IDE5MHB4OyBtYXJnaW4tdG9wOiA1cHg7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IHRleHQtYWxpZ246IGNlbnRlcjsKICBib3JkZXItcmFkaXVzOiA3cHg7IHBhZGRpbmc6IDVweDsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4yczsKfQoucHJpdmF0X3dpbl9idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQzKTsgY29sb3I6ICNmZmY7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgVEVYVC1FSU5HQUJFTiBhbGxnZW1laW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoudGV4dCB7CiAgZm9udC1zaXplOiAxMXB0OyBjb2xvcjogdmFyKC0tdGV4dCk7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBwYWRkaW5nOiA3cHggMTJweDsgb3V0bGluZTogbm9uZTsKICBib3JkZXItcmFkaXVzOiA3cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzLCBib3gtc2hhZG93IC4yczsKICBjYXJldC1jb2xvcjogdmFyKC0tYWNjZW50MSk7Cn0KLnRleHQ6Zm9jdXMgeyBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudDEpOyBib3gtc2hhZG93OiB2YXIoLS1nbG93MS1zKTsgfQoKc2VsZWN0IHsKICBjdXJzb3I6IHBvaW50ZXI7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIGJvcmRlci1yYWRpdXM6IDdweDsgcGFkZGluZzogNXB4IDEwcHg7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOyBvdXRsaW5lOiBub25lOwogIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnM7Cn0Kc2VsZWN0OmZvY3VzIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsgfQpzZWxlY3Qgb3B0aW9uIHsgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQoKLmNvbG9ycGljayB7CiAgZm9udC1zaXplOiAxMXB0OyBjdXJzb3I6IHBvaW50ZXI7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogNXB4OwogIHdpZHRoOiAxMDAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTsKfQouZGlhbG9nIHsgZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTogdmFyKC0tZm9udCk7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQoKLyogRmlsZSBVcGxvYWQgQnV0dG9ucyAqLwppbnB1dFt0eXBlPWZpbGVdOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiwKaW5wdXRbdHlwZT1maWxlXTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24gewogIGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMXB0OyBjb2xvcjogdmFyKC0tdGV4dCk7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgYm9yZGVyLXJhZGl1czogN3B4OyBwYWRkaW5nOiA2cHggMTZweDsgb3V0bGluZTogbm9uZTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7IHRyYW5zaXRpb246IGJhY2tncm91bmQgLjJzLCBib3JkZXItY29sb3IgLjJzOwp9CmlucHV0W3R5cGU9ZmlsZV06OmZpbGUtc2VsZWN0b3ItYnV0dG9uOmhvdmVyLAppbnB1dFt0eXBlPWZpbGVdOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbjpob3ZlciB7CiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZCk7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50MSk7IGNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKfQppbnB1dFt0eXBlPWZpbGVdOjotbXMtdmFsdWUgIHsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZToxMXB0OyBjb2xvcjp2YXIoLS10ZXh0KTsgYmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBvdXRsaW5lOm5vbmU7IH0KaW5wdXRbdHlwZT1maWxlXTo6LW1zLWJyb3dzZSB7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MTFwdDsgY29sb3I6dmFyKC0tdGV4dCk7IGJhY2tncm91bmQ6dmFyKC0tc3VyZmFjZSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgb3V0bGluZTpub25lOyBib3JkZXItcmFkaXVzOjdweDsgcGFkZGluZzo1cHggMTZweDsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBJQ09OUyAmIEJJTERFUgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5pbWdfYnV0dG9uIHsKICBtYXJnaW46IDAgNHB4OyBjdXJzb3I6IHBvaW50ZXI7CiAgZmlsdGVyOiBicmlnaHRuZXNzKC43NSkgc2F0dXJhdGUoMS4xKTsKICB0cmFuc2l0aW9uOiBmaWx0ZXIgLjE4cywgdHJhbnNmb3JtIC4xNXM7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQouaW1nX2J1dHRvbjpob3ZlciAgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xNSkgZHJvcC1zaGFkb3coMCAwIDVweCAjMDBlOGM4YWEpOyB9Ci5pbWdfYnV0dG9uOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xMik7IGZpbHRlcjogYnJpZ2h0bmVzcygxLjMpOyB9Cgouc21pbGV5LWJveCB7CiAgd2lkdGg6IGF1dG87IGhlaWdodDogMTAwJTsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBwYWRkaW5nOiA1cHg7IG1hcmdpbjogNHB4OwogIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOwogIGJvcmRlci1yYWRpdXM6IDlweDsKICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4ycywgYmFja2dyb3VuZCAuMnM7Cn0KLnNtaWxleS1ib3g6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudDEpOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMjMyLDIwMCwuMDYpOyB9CgouaW1nX3NtaWxleSB7CiAgY3Vyc29yOiBwb2ludGVyOyBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDsKICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cywgZmlsdGVyIC4xNXM7Cn0KLmltZ19zbWlsZXk6aG92ZXIgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTsgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNHB4ICMwMGU4Yzg4OCk7IH0KLmltZ19zbWlsZXk6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSguOTMpOyB9CgouaW1nX2NoYXQgewogIG1heC13aWR0aDogMjAwcHg7IG1heC1oZWlnaHQ6IDIwMHB4OyBjdXJzb3I6IHBvaW50ZXI7CiAgYm9yZGVyLXJhZGl1czogOHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsIGJveC1zaGFkb3cgLjJzOwp9Ci5pbWdfY2hhdDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50MSk7IGJveC1zaGFkb3c6IHZhcigtLWdsb3cxKTsgfQoKLmltZ19mdWxsc2NyZWVuIHsKICBvcGFjaXR5OiAuODsgY3Vyc29yOiBwb2ludGVyOyBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiAtM3B4OyByaWdodDogLTNweDsgaGVpZ2h0OiAyNXB4OyB3aWR0aDogMjVweDsKICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4xNXM7Cn0KLmltZ19mdWxsc2NyZWVuOmhvdmVyICB7IG9wYWNpdHk6IDE7IH0KLmltZ19mdWxsc2NyZWVuOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoLjk1KTsgfQoKLmJ1dHRvbl9hZG1pbiB7IGN1cnNvcjogcG9pbnRlcjsgZmlsdGVyOiBicmlnaHRuZXNzKC44NSk7IHRyYW5zaXRpb246IGZpbHRlciAuMTVzOyB9Ci5idXR0b25fYWRtaW46aG92ZXIgIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMTUpOyB9Ci5idXR0b25fYWRtaW46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9CgovKiBBdmF0YXJlICovCi51c2VyYmlsZF9pbl9vdXQgewogIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWFjY2VudDEpOwogIGJveC1zaGFkb3c6IHZhcigtLWdsb3cxLXMpOwogIGhlaWdodDogMzBweDsgd2lkdGg6IDMwcHg7IGJvcmRlci1yYWRpdXM6IDUwJTsKICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yczsKfQoudXNlcmJpbGQgewogIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgwLDIzMiwyMDAsLjE1KTsKICBoZWlnaHQ6IDcwcHg7IHdpZHRoOiA3MHB4OyBib3JkZXItcmFkaXVzOiA1MCU7CiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnM7Cn0KLnVzZXJiaWxkOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzEpOyB9CgoudXNlcm9ubGluZWJpbGQgewogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGN1cnNvcjogem9vbS1pbjsKICBoZWlnaHQ6IDE2cHg7IHdpZHRoOiAxNnB4OyBib3JkZXItcmFkaXVzOiAzcHg7Cn0KLnVzZXJvbmxpbmViaWxkOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoNCkgdHJhbnNsYXRlKC0zNSUsIC0zNSUpOyB9CgouZ2VuZGVyX2ljb24gICAgICAgICAgIHsgaGVpZ2h0OiAxNnB4OyB3aWR0aDogMTVweDsgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tOyB9Ci5nZW5kZXJfaWNvbl91c2VybGlzdGUgeyBoZWlnaHQ6IDE3cHg7IHdpZHRoOiAxNnB4OyB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207IH0KLnphdWJlcnN0YWIgICAgICAgICAgICB7IGN1cnNvcjogcG9pbnRlcjsgaGVpZ2h0OiAxOHB4OyB3aWR0aDogMTdweDsgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFRFQU1TUEVBSwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi50ZWFtc3BlYWtfaW5wdXRfbmFtZSB7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IGNvbG9yOiB2YXIoLS10ZXh0KTsKICBmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOiAxOTZweDsgaGVpZ2h0OiAyOHB4OwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDdweDsgb3V0bGluZTogbm9uZTsKICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzOwp9Ci50ZWFtc3BlYWtfaW5wdXRfbmFtZTpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50MSk7IH0KLnRlYW1zcGVha19pbmZvd2luIHsKICB3aWR0aDogODAlOyB0ZXh0LWFsaWduOiBsZWZ0OyBjb2xvcjogdmFyKC0tbXV0ZWQpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDhweDsKICBwYWRkaW5nOiAxMnB4IDIwcHg7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIExJTktTCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KYTpsaW5rLCBhOnZpc2l0ZWQsIGE6YWN0aXZlIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7IGZvbnQtc2l6ZTogMTFwdDsKICBjb2xvcjogdmFyKC0tYWNjZW50MSk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGNvbG9yIC4yczsKfQphOmhvdmVyIHsKICBjb2xvcjogI2ZmZjsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgRk9PVEVSCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KZm9vdGVyIHsKICBwb3NpdGlvbjogZml4ZWQ7IHotaW5kZXg6IDE7IGxlZnQ6IDA7IGJvdHRvbTogMDsgd2lkdGg6IDEwMCU7CiAgYmFja2dyb3VuZDogcmdiYSg2LCAxMywgMTUsIDAuOTUpOwogIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTsKICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTsKICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBwYWRkaW5nOiA1cHggMCA2cHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tbXV0ZWQpOwogIGZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOwogIGxldHRlci1zcGFjaW5nOiAuMDRlbTsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBTTUlMRVlTIEtBVEVHT1JJRU4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoua2F0LWhlYWRlciB7CiAgcG9zaXRpb246IHN0aWNreTsgdG9wOiAtNXB4OyBtYXJnaW4tdG9wOiAtNXB4OwogIGxlZnQ6IDA7IG1hcmdpbi1sZWZ0OiAwOyB3aWR0aDogY2FsYygxMDAlIC0gMTVweCk7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgY29sb3I6IHZhcigtLXRleHQpOyBwYWRkaW5nOiA3cHg7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgei1pbmRleDogMTAwMDsKICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOwp9Ci5rYXQgewogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsgY3Vyc29yOiBwb2ludGVyOwogIHBhZGRpbmc6IDRweCAxMnB4OyBmb250LXNpemU6IDEwcHQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogM3B4OwogIGNvbG9yOiB2YXIoLS1tdXRlZCk7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1yYWRpdXM6IDdweDsKICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7CiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4ycywgYm9yZGVyLWNvbG9yIC4yczsKfQoua2F0OmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgwLDIzMiwyMDAsLjEpOyBjb2xvcjogdmFyKC0tYWNjZW50MSk7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50MSk7IH0KYS5rYXQgICAgICB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoKaHIgewogIGJvcmRlcjogMDsKICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICBtYXJnaW46IDEwcHggMDsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBISVNUT1JZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLnN0aWNreS1oZWFkZXIgewogIHBvc2l0aW9uOiBzdGlja3k7IHRvcDogLTVweDsgbWFyZ2luLXRvcDogLTVweDsgbGVmdDogLTVweDsgbWFyZ2luLWxlZnQ6IC01cHg7CiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7CiAgei1pbmRleDogMTAwMDsgcGFkZGluZzogNnB4OwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIGNvbG9yOiB2YXIoLS1hY2NlbnQxKTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkKTsKICBsZXR0ZXItc3BhY2luZzogLjA2ZW07Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgR0FMTEVSWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5nYWxsZXJ5IHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDEwcHg7IHBhZGRpbmc6IDEwcHg7IH0KLmltYWdlLWNvbnRhaW5lciB7CiAgd2lkdGg6IGNhbGMoMjAlIC0gMTBweCk7CiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgcGFkZGluZzogMTBweDsgYm9yZGVyLXJhZGl1czogMTBweDsKICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OyBtaW4taGVpZ2h0OiAyNTBweDsKICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzLCBib3gtc2hhZG93IC4yczsKfQouaW1hZ2UtY29udGFpbmVyOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQxKTsgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzEtcyk7IH0KLm1ldGEgIHsgZm9udC1zaXplOiAuOGVtOyBjb2xvcjogdmFyKC0tbXV0ZWQpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDVweDsgfQouYm90dG9tIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IH0KLmJvdHRvbSBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6IDE1MHB4OyBib3JkZXItcmFkaXVzOiA2cHg7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQURNSU5CRVJFSUNICj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2FkbWluYmVyZWljaF9ib2R5IHsgYmFja2dyb3VuZDogdmFyKC0tYmcpOyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOyB9CiNhZG1pbmJlcmVpY2hfYm9keSBhOmxpbmsgICAgeyBmb250LWZhbWlseTp2YXIoLS1mb250KTsgZm9udC1zaXplOjExcHQ7IGNvbG9yOnZhcigtLWFjY2VudDEpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY3Vyc29yOnBvaW50ZXI7IH0KI2FkbWluYmVyZWljaF9ib2R5IGE6dmlzaXRlZCB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQpOyBmb250LXNpemU6MTFwdDsgY29sb3I6dmFyKC0tYWNjZW50MSk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjdXJzb3I6cG9pbnRlcjsgfQojYWRtaW5iZXJlaWNoX2JvZHkgYTphY3RpdmUgIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udCk7IGZvbnQtc2l6ZToxMXB0OyBjb2xvcjp2YXIoLS1hY2NlbnQxKTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY3Vyc29yOnBvaW50ZXI7IH0KI2FkbWluYmVyZWljaF9ib2R5IGE6aG92ZXIgICB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQpOyBmb250LXNpemU6MTFwdDsgY29sb3I6I2ZmZjsgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGN1cnNvcjpwb2ludGVyOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENIQVQtRkVOU1RFUiBSQUhNRU4gKHN0eWxlX2NoYXRfKikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoub3ZlcmxheV9zdHlsZV9jaGF0IHsgYmFja2dyb3VuZDogcmdiYSgwLDIzMiwyMDAsLjA2KTsgb3BhY2l0eTogLjY7IH0KCi5zdHlsZV9jaGF0X253IHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgd2lkdGg6MTBweDsgaGVpZ2h0OjE4cHg7IGJhY2tncm91bmQ6dmFyKC0tc3VyZmFjZSk7IH0KLnN0eWxlX2NoYXRfbiAgeyBib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpOyB9Ci5zdHlsZV9jaGF0X25lIHsgYm9yZGVyLXJpZ2h0OjA7IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IHdpZHRoOjEwcHg7IGhlaWdodDoxOHB4OyBiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpOyB9Ci5zdHlsZV9jaGF0X3cgIHsgYm9yZGVyLWxlZnQ6MDsgd2lkdGg6MTBweDsgYmFja2dyb3VuZDp2YXIoLS1iZyk7IGJhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHZhcigtLWJnKSwgdmFyKC0tc3VyZmFjZSkpOyB9Ci5zdHlsZV9jaGF0X2UgIHsgYm9yZGVyLXJpZ2h0OjA7IHdpZHRoOjEwcHg7IGJhY2tncm91bmQ6dmFyKC0tYmcpOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tYmcpLCB2YXIoLS1zdXJmYWNlKSk7IH0KLnN0eWxlX2NoYXRfc3cgeyBib3JkZXItbGVmdDowOyBib3JkZXItYm90dG9tOjA7IHdpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLCB2YXIoLS1iZyksIHZhcigtLXN1cmZhY2UpLCB2YXIoLS1zdXJmYWNlKSk7IH0KLnN0eWxlX2NoYXRfcyAgeyBoZWlnaHQ6MTBweDsgYm9yZGVyLWJvdHRvbTowOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJnKSwgdmFyKC0tc3VyZmFjZSkpOyB9Ci5zdHlsZV9jaGF0X3NlLCAuc3R5bGVfY2hhdF9zaXplciB7IGJvcmRlci1yaWdodDowOyBib3JkZXItYm90dG9tOjA7IHdpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJnKSwgdmFyKC0tc3VyZmFjZSksIHZhcigtLXN1cmZhY2UpKTsgfQouc3R5bGVfY2hhdF9zaXplciB7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJnKSwgIzZhMDAwMCwgIzZhMDAwMCk7IH0KCi5zdHlsZV9jaGF0X2Nsb3NlIHsKICB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OwogIGJhY2tncm91bmQ6CiAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICB0cmFuc3BhcmVudCAzOCUsICNmZmYgMzglLCAjZmZmIDYyJSwgdHJhbnNwYXJlbnQgNjIlKSwKICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50IDM4JSwgI2ZmZiAzOCUsICNmZmYgNjIlLCB0cmFuc3BhcmVudCA2MiUpLAogICAgcmdiYSgyNTUsMzQsMzQsLjgpOwogIGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogNTAlOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxOHB4OyByaWdodDogMTBweDsKICBjdXJzb3I6IHBvaW50ZXI7IHotaW5kZXg6IDEwMDA7CiAgYm94LXNoYWRvdzogdmFyKC0tZ2xvdzIpOwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzLCBib3gtc2hhZG93IC4xOHM7Cn0KLnN0eWxlX2NoYXRfY2xvc2U6aG92ZXIgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMjIpOyBib3gtc2hhZG93OiAwIDAgMjhweCAjZmYyMjIyOTk7IH0KCi5zdHlsZV9jaGF0X21pbmltaXplIHsgd2lkdGg6MjNweDsgaGVpZ2h0OjIzcHg7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwKSB1cmwoYnV0dG9uLW1pbi1mb2N1cy5naWYpIG5vLXJlcGVhdCAwIDA7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6NTVweDsgY3Vyc29yOnBvaW50ZXI7IHotaW5kZXg6MTAwMDsgfQouc3R5bGVfY2hhdF9tYXhpbWl6ZSB7IHdpZHRoOjIzcHg7IGhlaWdodDoyM3B4OyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCkgdXJsKGJ1dHRvbi1tYXgtZm9jdXMuZ2lmKSBuby1yZXBlYXQgMCAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjMzcHg7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjEwMDA7IH0KCi5zdHlsZV9jaGF0X3RpdGxlIHsKICBjb2xvcjogdmFyKC0tYWNjZW50MSk7CiAgZmxvYXQ6IGxlZnQ7IGZvbnQtc2l6ZTogMTNwdDsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkKTsKICBmb250LXdlaWdodDogbm9ybWFsOwogIGxldHRlci1zcGFjaW5nOiAuMWVtOwogIG1hcmdpbjogMDsgcGFkZGluZzogMTRweCA4cHg7CiAgdGV4dC1zaGFkb3c6IHZhcigtLWdsb3cxKTsKfQoKLnN0eWxlX2NoYXRfY29udGVudCB7CiAgcGFkZGluZy10b3A6IDVweDsgb3ZlcmZsb3c6IGF1dG87CiAgY29sb3I6IHZhcigtLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udCk7IGZvbnQtc2l6ZTogMTFwdDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsgb3ZlcmZsb3cteDogaGlkZGVuOwp9CgovKiBQbGFjZWhvbGRlciAqLwouZHluYW1pYy1wbGFjZWhvbGRlcjo6cGxhY2Vob2xkZXIgICAgICAgICAgICAgICB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH0KLmR5bmFtaWMtcGxhY2Vob2xkZXI6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgeyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBvcGFjaXR5OiAxOyB9Ci5keW5hbWljLXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHsgY29sb3I6IHZhcigtLW11dGVkKTsgfQouZHluYW1pYy1wbGFjZWhvbGRlcjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQlJPQURDQVNUIC8gU1lTVEVNLU5BQ0hSSUNIVEVOCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2Jyb2FkY2FzdC1vdmVybGF5IHsKICBkaXNwbGF5OiBub25lOyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC43OCk7CiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgei1pbmRleDogOTk5ODsKfQojYnJvYWRjYXN0LW1vZGFsIHsKICBkaXNwbGF5OiBub25lOyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogNTAlOyBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZCk7CiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYWNjZW50Mik7CiAgYm9yZGVyLXJhZGl1czogMTZweDsKICBwYWRkaW5nOiAyNnB4OwogIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwzNCwzNCwuMiksIHZhcigtLWdsb3cyKTsKICB6LWluZGV4OiA5OTk5OyBtaW4td2lkdGg6IDM0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KI2Jyb2FkY2FzdC1tb2RhbCBoMyB7CiAgY29sb3I6IHZhcigtLWFjY2VudDIpOyBtYXJnaW4tdG9wOiAwOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWQpOyBmb250LXNpemU6IDEuNXJlbTsKICBsZXR0ZXItc3BhY2luZzogLjFlbTsgdGV4dC1zaGFkb3c6IHZhcigtLWdsb3cyKTsKfQojYnJvYWRjYXN0LWNvbnRlbnQgeyBtYXJnaW46IDE0cHggMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS41NTsgY29sb3I6IHZhcigtLXRleHQpOyB9CiNjb25maXJtLWJyb2FkY2FzdCB7CiAgcGFkZGluZzogOXB4IDI2cHg7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudDQpOyBjb2xvcjogI2ZmZjsKICBib3JkZXI6IG5vbmU7IGJvcmRlci1yYWRpdXM6IDUwcHg7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxM3B4OwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsgZm9udC13ZWlnaHQ6IDcwMDsgb3V0bGluZTogbm9uZTsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93NCk7CiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMsIHRyYW5zZm9ybSAuMTVzOwp9CiNjb25maXJtLWJyb2FkY2FzdDpob3ZlciAgeyBvcGFjaXR5OiAuODU7IH0KI2NvbmZpcm0tYnJvYWRjYXN0OmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNik7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQkVOVVRaRVIgUFJPRklMCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLnByb2ZpbGUtY29udGFpbmVyIHsKICBtYXgtd2lkdGg6IDYwMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIHBhZGRpbmc6IDI2cHg7IGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgYm94LXNoYWRvdzogMCAwIDYwcHggcmdiYSgwLDAsMCwuNSksIDAgMCAwIDFweCByZ2JhKDAsMjMyLDIwMCwuMDYpOwogIG1hcmdpbjogYXV0bzsKfQoucHJvZmlsZS1pbmZvIHsgZm9udC1zaXplOiAxMXB0OyBtYXJnaW46IDA7IGNvbG9yOiB2YXIoLS10ZXh0KTsgbGluZS1oZWlnaHQ6IDEuNzU7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQVZBVEFSIFVQTE9BRAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi5hdmF0YXItY29udGFpbmVyIHsKICBtYXgtd2lkdGg6IDkwMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogIHBhZGRpbmc6IDI2cHg7IGJvcmRlci1yYWRpdXM6IDE2cHg7IG1hcmdpbjogYXV0bzsKfQoucHJldmlldy1pbWFnZSB7CiAgd2lkdGg6IDcwcHg7IGhlaWdodDogNzBweDsgbWFyZ2luLXRvcDogMzBweDsKICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1hY2NlbnQxKTsKICBib3gtc2hhZG93OiB2YXIoLS1nbG93MSk7IGJvcmRlci1yYWRpdXM6IDUwJTsKfQoKLyogRmFyYi1UYWdzICovCncgeyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiB2YXIoLS1hY2NlbnQyKTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBib2xkOyB9Cm8geyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiB2YXIoLS1hY2NlbnQ0KTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBib2xkOyB9CnYgeyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiB2YXIoLS10ZXh0KTsgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBib2xkOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFNDUk9MTEJBTEtFTiDigJMgVMO8cmtpcy9UZWFsIHBhc3NlbmQgenVtIFRoZW1lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKiB7CiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogIHNjcm9sbGJhci1jb2xvcjogcmdiYSgwLDIzMiwyMDAsLjQpIHJnYmEoMTAsMjEsMjQsLjcpOwp9Cio6Oi13ZWJraXQtc2Nyb2xsYmFyICAgICAgIHsgd2lkdGg6IDVweDsgaGVpZ2h0OiA1cHg7IH0KKjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiByZ2JhKDEwLDIxLDI0LC43KTsgYm9yZGVyLXJhZGl1czogM3B4OyB9Cio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogcmdiYSgwLDIzMiwyMDAsLjQpOyBib3JkZXItcmFkaXVzOiAzcHg7IH0KKjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsMjMyLDIwMCwuNyk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgUkVTUE9OU0lWRQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KSAgeyAjZm9vdGVyIHsgZGlzcGxheTogbm9uZTsgfSAjbGlua3MgeyBkaXNwbGF5OiBub25lOyB9IH0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpICB7CiAgI3ZpZGVvX2JhY2tncm91bmRfTG9naW4geyBkaXNwbGF5OiBub25lOyB9CiAgI3ZpZGVvX2JhY2tncm91bmRfY2hhdCAgeyBkaXNwbGF5OiBub25lOyB9CiAgI2xpbmtfcHJvZmlsIHsgZGlzcGxheTogbm9uZTsgfQogIC51c2VyYmlsZCB7IGRpc3BsYXk6IG5vbmU7IH0KICAjZm9ybV9yaWdodCB7IHBhZGRpbmctdG9wOiAxMHB4OyBwYWRkaW5nLXJpZ2h0OiAwOyB9Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI0MHB4KSB7ICNib3gtbGlua3MgeyBkaXNwbGF5OiBub25lOyB9ICNib3gtcmVjaHRzIHsgZGlzcGxheTogbm9uZTsgfSB9CgpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyNTBweCkgIHsgI2tvcGYgeyBkaXNwbGF5OiBub25lOyB9ICNjaGF0aW5oYWx0IHsgZGlzcGxheTogbm9uZTsgfSAjZm9ybSB7IGRpc3BsYXk6IG5vbmU7IH0gLmltZ19mdWxsc2NyZWVuIHsgZGlzcGxheTogbm9uZTsgfSB9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI4MHB4KSAgeyAjZm9ybV9yaWdodCB7IHBhZGRpbmctbGVmdDogMDsgfSAjZm9ybSB7IHBhZGRpbmctbGVmdDogMDsgcGFkZGluZy1yaWdodDogMDsgfSB9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMwNXB4KSAgeyAucGljdHVyZV9zbWlsZXkgeyBkaXNwbGF5OiBub25lOyB9IH0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzYwcHgpICB7ICNtZXNzYWdlIHsgcGFkZGluZy1sZWZ0OiA1cHg7IHBhZGRpbmctcmlnaHQ6IDA7IH0gLmltZ19jb2xvciB7IGRpc3BsYXk6IG5vbmU7IH0gLmltZ19ncnVzc2JveCB7IGRpc3BsYXk6IG5vbmU7IH0gfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MDBweCkgIHsgLmltZ19wcm9wIHsgZGlzcGxheTogbm9uZTsgfSB9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSAgeyAuaW1nX3d1ZXJmZWwgeyBkaXNwbGF5OiBub25lOyB9IH0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTQwcHgpICB7IC5pbWdfYnV0dG9uIHsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgbWFyZ2luOiAwIDNweDsgfSAuaW1nX2dhbGxlcnkgeyBkaXNwbGF5OiBub25lOyB9IH0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7CiAgI29ubGluZXVzZXIgeyBkaXNwbGF5OiBub25lOyB9ICNkamJveCB7IGRpc3BsYXk6IG5vbmU7IH0gI2xpdmVndWlkZSB7IGRpc3BsYXk6IG5vbmU7IH0KICAjY2hhdGluaGFsdCwgI3NwbGl0cGFuZSwgI29ubGluZWxpc3QgeyBoZWlnaHQ6IDQ1MHB4OyB9CiAgI29ubGluZWxpc3QgeyBoZWlnaHQ6IDcwdmggIWltcG9ydGFudDsgfQogICNtZXNzYWdlIHsgd2lkdGg6IDEwMHB4OyB9CiAgI3NwbGl0cGFuZSB7IHdpZHRoOiAwOyBtYXJnaW46IDA7IH0KICAuYnV0dG9uX2FkbWluIHsgZGlzcGxheTogbm9uZTsgfQogIC5pbWdfY2hhdCB7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiBhdXRvOyB9CiAgLmltZ19ob21lIHsgZGlzcGxheTogbm9uZTsgfQogIC5pbWdfc21pbGV5IHsgd2lkdGg6IGF1dG87IG1heC1oZWlnaHQ6IDYwcHg7IH0KICAuaW1nX3RlYW1zcGVhayB7IGRpc3BsYXk6IG5vbmU7IH0KICAuaW1nX2luZm8geyBkaXNwbGF5OiBub25lOyB9CiAgLnVzZXJiaWxkIHsgaGVpZ2h0OiA0MHB4OyB3aWR0aDogNDBweDsgfQogIC50cmlnZXItbW9kYWwgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBjb2xvcjogI2ZmZjsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMXB0OyB9CiAgLm1vZGFsLXdyYXAgewogICAgYmFja2dyb3VuZDogcmdiYSg2LDEzLDE1LC45OCk7IGhlaWdodDogMTAxJTsgbGVmdDogMDsgb3BhY2l0eTogMDsKICAgIG92ZXJmbG93OiBhdXRvOyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogLTFweDsgdmlzaWJpbGl0eTogaGlkZGVuOyB3aWR0aDogMTAwJTsgei1pbmRleDogMTA7CiAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZS1pbi1vdXQ7CiAgfQogIC5tb2RhbC13cmFwLnZpc2libGUgeyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9CiAgLm1vZGFsLXdyYXAgLm1vZGFsLWNvbnRhaW5lciB7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOyBtYXJnaW46IDAgMTBweDsgbWF4LXdpZHRoOiAxMDAlOyB3aWR0aDogNjAwcHg7IHotaW5kZXg6IDEwMDsgYm9yZGVyLXJhZGl1czogMTZweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgfQogIC5tb2RhbC13cmFwIC5tb2RhbC1jb250YWluZXIgLm1vZGFsLWhlYWRlciwKICAubW9kYWwtd3JhcCAubW9kYWwtY29udGFpbmVyIC5tb2RhbC1mb290ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDAlOyB9CiAgLm1vZGFsLXdyYXAgLm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUgeyBjb2xvcjogdmFyKC0tYWNjZW50MSk7IGZsb2F0OiBsZWZ0OyBmb250LXNpemU6IDEycHQ7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWQpOyBsZXR0ZXItc3BhY2luZzogLjA4ZW07IG1hcmdpbjogMDsgcGFkZGluZzogMTZweCAyMHB4OyB9CiAgLm1vZGFsLXdyYXAgLm1vZGFsLWhlYWRlciAuY2xvc2UtbW9kYWwgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAwOyBjb2xvcjogdmFyKC0tdGV4dCk7IGN1cnNvcjogcG9pbnRlcjsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nOiAycHggMTBweDsgZm9udC1zaXplOiA0MHB4OyBmb250LXdlaWdodDogYm9sZDsgdHJhbnNpdGlvbjogY29sb3IgLjJzOyB9CiAgLm1vZGFsLXdyYXAgLm1vZGFsLWhlYWRlciAuY2xvc2UtbW9kYWw6aG92ZXIgeyBjb2xvcjogdmFyKC0tYWNjZW50Mik7IH0KICAubW9kYWwtd3JhcCAubW9kYWwtY29udGVudCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDA7IHBhZGRpbmc6IDMlOyB3aWR0aDogOTQlOyBjb2xvcjogdmFyKC0tdGV4dCk7IH0KfQoKQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHsKICAjbW9iaWxlIHsgZGlzcGxheTogbm9uZTsgfSAjb3Blbi1tb2RhbCB7IGRpc3BsYXk6IG5vbmU7IH0KICAjc3BsaXRwYW5lLCAjb25saW5lbGlzdCB7IGZsb2F0OiByaWdodDsgfQogICNjaGF0aW5oYWx0LCAjc3BsaXRwYW5lLCAjb25saW5lbGlzdCB7IGhlaWdodDogNDUwcHg7IH0KICAjb25saW5lbGlzdCB7IHdpZHRoOiAzMjhweDsgaGVpZ2h0OiA0NTBweDsgfQogICNjaGF0aW5oYWx0IHsgbWFyZ2luLWxlZnQ6IDA7IH0KICAjbWVzc2FnZSB7IHdpZHRoOiAyNTBweDsgfQogIC5pbWdfc21pbGV5IHsgd2lkdGg6IGF1dG87IG1heC1oZWlnaHQ6IDkwcHg7IH0KICAudXNlcmJpbGQgeyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB9Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTUwMHB4KSB7CiAgI21lc3NhZ2UgeyB3aWR0aDogNDAwcHg7IH0KICAuaW1nX3NtaWxleSB7IHdpZHRoOiBhdXRvOyBtYXgtaGVpZ2h0OiAxMjBweDsgfQogIC51c2VyYmlsZCB7IGhlaWdodDogNjBweDsgd2lkdGg6IDYwcHg7IH0KfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAjcmFobWVuX3VtX2FsbGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI3JhaG1lbl91bV9hbGxlcyB7IG1hcmdpbjogOHB4OyB9Ci5jZW50ZXJlZCB7IG1hcmdpbjogMCBhdXRvOyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogODAwcHg7IH0KdGFibGUgeyBmb250LXNpemU6IDExcHQ7IH0K');