PGh0bWw+Cgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1MYW5ndWFnZSIgY29udGVudD0iZW4tdXMiPgo8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBGcm9udFBhZ2UgNS4wIj4KPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KPHRpdGxlPkRvIExpc3Q8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogIGJvZHkgICAgeyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgbWFyZ2luOiAxZW07IH0KICBwLCB0ZCwgbGksIGJsb2NrcXVvdGUgeyBmb250LXNpemU6IDEwcHQ7IH0KICBwcmUgICAgIHsgZm9udC1zaXplOiA5cHQ7IH0KPC9zdHlsZT4KPC9oZWFkPgoKPGJvZHk+Cgo8aDE+Qm9vc3QgRmlsZXN5c3RlbSBEbyBMaXN0PGJyPgo8IS0td2ViYm90IGJvdD0iVGltZXN0YW1wIiBTLVR5cGU9IkVESVRFRCIgUy1Gb3JtYXQ9IiVkICVCICVZIiBzdGFydHNwYW4gLS0+MjQgSnVuZSAyMDEwPCEtLXdlYmJvdCBib3Q9IlRpbWVzdGFtcCIgZW5kc3BhbiBpLWNoZWNrc3VtPSIxNzU1MiIgLS0+PC9oMT4KCjxoMj5CZXRhIDEgY29tbWVudHM8L2gyPgo8dWw+CiAgPGxpIGRpcj0ibHRyIj4KCjxwIGRpcj0ibHRyIj5aYWNoIExhaW5lOjwvbGk+CjwvdWw+CjxibG9ja3F1b3RlPgogIDxwcmUgZGlyPSJsdHIiPlRoZSBkZXNjcmlwdGlvbnMgZm9yIHBvcnRhYmxlX25hbWUoKSBhbmQgcG9ydGFibGVfZGlyZWN0b3J5X25hbWUoKQphcHBlYXIgdG8gYmUgYXQgb2Rkcy4KCnBvcnRhYmxlX25hbWUoKSA6IC4uLiAmYW1wOyZhbXA7IChuYW1lIGlzICZxdW90Oy4mcXVvdDsgb3IgJnF1b3Q7Li4mcXVvdDssIGFuZCB0aGUgZmlyc3QgY2hhcmFjdGVyCm5vdCBhIHBlcmlvZCBvciBoeXBoZW4pCgpwb3J0YWJsZV9kaXJlY3RvcnlfbmFtZSgpOiAuLi4gJmFtcDsmYW1wOyAobmFtZSBpcyAmcXVvdDsuJnF1b3Q7IG9yICZxdW90Oy4uJnF1b3Q7ICZuYnNwO29yIGNvbnRhaW5zIG5vIHBlcmlvZHMpCgpTaG91bGQgcG9ydGFibGVfbmFtZSgpIGJlICZxdW90Oy4uLiAmYW1wOyZhbXA7IChuYW1lIGlzICZxdW90Oy4mcXVvdDsgb3IgJnF1b3Q7Li4mcXVvdDssIG9yIGNvbnRhaW5zIG5vCnBlcmlvZHMpICZhbXA7JmFtcDsgKGZpcnN0IGNoYXJhY3RlciBub3QgYSBoeXBoZW4pJnF1b3Q7PyAmbmJzcDtNYXliZSBJJ20gbWlzc2luZwpzb21ldGhpbmc/PC9wcmU+CjwvYmxvY2txdW90ZT4KPHVsPgogIDxsaSBkaXI9Imx0ciI+CjxwIGRpcj0ibHRyIj5TY290dCBNY011cnJheSAtIHRyZWF0IGFzIFdpc2ggTGlzdDo8L2xpPgo8L3VsPgo8YmxvY2txdW90ZT4KICA8cHJlIGRpcj0ibHRyIj4tIHVuY29tcGxldGUocCwgYmFzZSkKCk15IHBldCByZXF1ZXN0LiAmbmJzcDtJdCBtYXkgYmUgdXNlZnVsIHRvIHNpbXBsaWZ5IG90aGVyIGZ1bmN0aW9ucyBhcyB3ZWxsLApzaW5jZSB0aGVyZSdzIG5vIGN1cnJlbnQgd2F5IHRvIGdvIGZyb20gYW4gYWJzb2x1dGUgcGF0aCB0byBhIHJlbGF0aXZlCm9uZSwgbWVhbmluZyB0aGF0IG1vc3QgZnVuY3Rpb25zIG5lZWQgdG8gaGFuZGxlIHJlbGF0aXZlIG9uZXMgZXZlbgp3aGVuIHRoYXQgbWlnaHQgbm90IGJlIG5hdHVyYWwuICZuYnNwO1dpdGggdGhpcyBmdW5jdGlvbmFsaXR5LApwcmVjb25kaXRpb25zIHJlcXVpcmluZyBhYnNvbHV0ZSBwYXRocyB3b3VsZCBiZSBsZXNzIG9uZXJvdXMuCgombmJzcDsgJm5ic3A7UHJlY29uZGl0aW9uOiBwLmlzX2Fic29sdXRlKCkgJmFtcDsmYW1wOyBiYXNlLmlzX2Fic29sdXRlKCkKCiZuYnNwOyAmbmJzcDtFZmZlY3RzOiBFeHRyYWN0cyBhIHBhdGgsIHJwLCBmcm9tIHAgcmVsYXRpdmUgdG8gYmFzZSBzdWNoIHRoYXQKY2Fub25pY2FsKHApID09IGNvbXBsZXRlKHJwLCBiYXNlKS4gJm5ic3A7QW55ICZxdW90Oy4uJnF1b3Q7IHBhdGggZWxlbWVudHMgaW4gcnAgZm9ybQphIHByZWZpeC4KCiZuYnNwOyAmbmJzcDtSZXR1cm5zOiBUaGUgZXh0cmFjdGVkIHBhdGguCgombmJzcDsgJm5ic3A7UG9zdGNvbmRpdGlvbnM6IEZvciB0aGUgcmV0dXJuZWQgcGF0aCwgcnAsIHJwLmlzX3JlbGF0aXZlKCkgPT0KKHAucm9vdF9uYW1lKCkgPT0gYi5yb290X25hbWUoKSkuCgpbTm90ZXM6IFRoaXMgZnVuY3Rpb24gc2ltcGxpZmllcyBwYXRocyBieSBvbWl0dGluZyBjb250ZXh0LiAmbmJzcDtJdCBpcwpwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBzZXJpYWxpemluZyBwYXRocyBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWZ1bGx5Cm1vdmVkIGJldHdlZW4gaG9zdHMgd2hlcmUgdGhlIGNvbnRleHQgbWF5IGJlIGRpZmZlcmVudCwgc3VjaCBhcyBpbnNpZGUKc291cmNlIGNvbnRyb2wgdHJlZXMuICZuYnNwO0l0IGNhbiBhbHNvIGJlIGhlbHBmdWwgZm9yIGRpc3BsYXkgdG8gdXNlcnMsCnN1Y2ggYXMgaW4gc2hlbGxzIHdoZXJlIHBhdGhzIGFyZSBvZnRlbiBzaG93biByZWxhdGl2ZSB0byAkSE9NRS4KCkluIHRoZSBwcmVzZW5jZSBvZiBzeW1saW5rcywgdGhlIHJlc3VsdCBvZiB0aGlzIGZ1bmN0aW9uIG1heSBkaWZmZXIKYmV0d2VlbiBpbXBsZW1lbnRhdGlvbnMsIGFzIHNvbWUgbWF5IGV4cGFuZCBzeW1saW5rcyB0aGF0IG90aGVycyBtYXkKbm90LiAmbmJzcDtUaGUgc2ltcGxlc3QgaW1wbGVtZW50YXRpb24gdXNlcyBjYW5vbmljYWwgdG8gZXhwYW5kIGJvdGggcCBhbmQKYmFzZSwgdGhlbiByZW1vdmVzIHRoZSBjb21tb24gcHJlZml4IGFuZCBwcmVwZW5kcyB0aGUgcmVxdWlzaXRlICZxdW90Oy4uJnF1b3Q7CmVsZW1lbnRzLiAmbmJzcDtTbWFydGVyIGltcGxlbWVudGF0aW9ucyB3aWxsIGF2b2lkIGV4cGFuZGluZyBzeW1saW5rcwp1bm5lY2Vzc2FyaWx5LiAmbmJzcDtObyBpbXBsZW1lbnRhdGlvbiBpcyBleHBlY3RlZCB0byBkaXNjb3ZlciBuZXcgc3ltbGlua3MKdG8gcmV0dXJuIHBhdGhzIHdpdGggZmV3ZXIgZWxlbWVudHMuXTwvcHJlPgo8L2Jsb2NrcXVvdGU+CjxoMiBkaXI9Imx0ciI+RG9jczwvaDI+Cjx1bD4KICA8bGk+UmVvcmdhbml6ZSBmaWxlcyAtIGRlbGV0ZSBleGFtcGxlcyB0aGF0IG5vIGxvbmdlciBhcHBseS48L2xpPgogIDxsaT5TaG91bGQgbWluaW1hbC5jc3MgYmUgY2hhbmdlZCB0byB1c2VkIHJlbGF0aXZlIGZvbnQgc2l6ZXM/IFNlZQogIDxhIGhyZWY9Imh0dHA6Ly93d3cudzNzY2hvb2xzLmNvbS9DU1MvcHJfZm9udF9mb250LXNpemUuYXNwLyI+aHR0cDovL3d3dy53M3NjaG9vbHMuY29tL0NTUy9wcl9mb250X2ZvbnQtc2l6ZS5hc3BcPC9hPjwvbGk+CiAgPGxpPkRvY3VtZW50IGJlaGF2aW9yIG9mIHBhdGg6OnJlcGxhY2VfZXh0ZW5zaW9uIGhhcyBjaGFuZ2UgV1JUIGFyZ3VtZW50IHcvbyBhIAogIGRvdC48L2xpPgogIDxsaSBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij5Eb2N1bWVudCBsZWFkaW5nIC8vOiBubyBsb25nZXIgdHJlYXRlZCBzcGVjaWFsbHkuIAogIEJ1dCBpcyB0aGF0IHJlYWxseSBjb3JyZWN0PzwvbGk+CiAgPGxpIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPkJlaGF2aW9yIG9mIHJvb3RfcGF0aCgpIGhhcyBiZWVuIGNoYW5nZWQuIENoYW5nZSAKICBuZWVkcyB0byBiZSBwcm9wYWdhdGVkIHRvIHRydW5rPzwvbGk+CiAgPGxpIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPlJlZ2VuZXJhdGUgcGF0aCBkZWNvbXBvc2l0aW9uIHRhYmxlLjwvbGk+CjwvdWw+Cgo8aDI+Q29kZTwvaDI+CjxoMz5BbGw8L2gzPgo8dWw+CiAgPGxpIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPk1vdmUgc2VtYW50aWNzLjwvbGk+CiAgPGxpIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPlVzZSBCT09TVF9ERUxFVEVELCBCT09TVF9ERUZBVUxURUQsIHdoZXJlIAogIGFwcHJvcHJpYXRlLjwvbGk+CiAgPGxpIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPk90aGVyIEMrKzB4IGZlYXR1cmVzLjwvbGk+CjwvdWw+CjxoMz5DbGFzcyBwYXRoPC9oMz4KPHVsPgogIDxsaT5XaW5kb3dzLCBQT1NJWCwgY29udmVyc2lvbnMgZm9yIGNoYXIxNl90LCBjaGFyMzJfdCBmb3IgQysrMHggY29tcGlsZXJzLjwvbGk+CiAgPGxpPkFkZCBXaW5kb3dzIEFsdGVybmF0ZSBEYXRhIFN0cmVhbSB0ZXN0IGNhc2VzLiBTZWUgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9OVEZTIAogIEZlYXR1cmVzLjwvbGk+CiAgPGxpPkFkZCB0ZXN0IGNhc2U6IHJlbGF0aW9uYWwgb3BlcmF0b3JzIG9uIHBhdGhzIGRpZmZlcmluZyBvbmx5IGluIHRyYWlsaW5nIAogIHNlcGFyYXRvci4gUmF0aW9uYWxlPzwvbGk+CiAgPGxpPlByb3ZpZGUgdGhlIG5hbWUgY2hlY2sgZnVuY3Rpb25zIGZvciBtb3JlIGNoYXJhY3RlciB0eXBlcz8gVGVtcGxhdGl6ZT8gCiAgdGFrZSBhIHBhdGggYXJndW1lbnQ/PC9saT4KICA8bGkgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+QWRkIGNvZGVwYWdlIDkzNi85NTAvZXRjIHRlc3QgY2FzZXMuPC9saT4KICA8bGkgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+U2hvdWxkIFVEVCdzIGJlIHN1cHBvcnRlZD88L2xpPgogIDxsaSBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij5TaG91bGQgcGF0aCBpdGVyYXRpb24gdG8gYSBzZXBhcmF0b3IgcmVzdWx0IGluOjxicj4KICAtLSB0aGUgYWN0dWFsIHNlcGFyYXRvciB1c2VkPGJyPgogIC0tIHRoZSBwcmVmZXJyZWQgc2VwYXJhdG9yPGJyPgogIC0tIHRoZSBnZW5lcmljIHNlcGFyYXRvciAmbHQ7LS0gbWFrZXMgaXQgZWFzaWVyIHRvIHdyaXRlIHBvcnRhYmxlIGNvZGU8YnI+CiAgLS0gYSBkb3Q8L2xpPgo8L3VsPgo8aDM+T3BlcmF0aW9uczwvaDM+Cjx1bD4KICA8bGk+V291bGQgY29tcGxldGUoKSwgc3lzdGVtX2NvbXBsZXRlKCkgYmUgY2xlYXJlciBpZiByZW5hbWVkIGFic29sdXRlKCksIAogIGFic29sdXRlX3N5c3RlbSgpIChvciBhYnNvbHV0ZV9uYXRpdmUoKSk/PC9saT4KICA8bGk+UmV2aWV3IGFsbCBvcGVyYXRpb25zLmNwcCBjb2RlIGZvciByYWNlIGNvbmRpdGlvbnMgc2ltaWxhciB0byAjMjkyNS4gRml4IAogIG9yIGRvY3VtZW50LjwvbGk+CiAgPGxpPkVuYWJsZSBhbGwgQk9PU1RfRklMRVNZU1RFTV9OT19ERVBSRUNBVEVEIGNvZGUuPC9saT4KICA8bGk+cmVuYW1lIGFuZCByZW1vdmUgbmFtZXMgYXJlIHByb2JsZW1zLiBJZiB1c2VycyBzYXlzICZxdW90O3VzaW5nIAogIG5hbWVzcGFjZSBib29zdDo6ZmlsZXN5c3RlbSZxdW90Ozxicj4KICBhbmQgc29tZSBoZWFkZXIgaW5jbHVkZWQgc3RkaW8sIHRoZXJlIGlzIGp1c3QgdG9vIG11Y2ggY2hhbmNlIG9mIHNpbGVudCBlcnJvci48L2xpPgogIDxsaT5jcmVhdGVfZGlyZWN0b3JpZXMgZXJyb3IgaGFuZGxpbmcgbmVlZHMgd29yay48L2xpPgogIDxsaT5Gb2xkIGNvbnZlbmllbmNlLmhwcCBpbnRvIG9wZXJhdGlvbnMuaHBwPC9saT4KICA8bGk+VHdvIGFyZ3VtZW50IHJlY3Vyc2l2ZV9kaXJlY3RvcnlfaXRlcmF0b3IgY3RvciBpc24ndCByZWNvZ25pemluZyB0aHJvd3MoKS4gCiAgV291bGQgaXQgYmUgYmV0dGVyIHRvIGZvbGQgaW50byBhIHNpbmdsZSB0d28gYXJndW1lbnQgY3RvciB3aXRoIGRlZmF1bHQ/PC9saT4KICA8bGk+QWRkIHRoZSBwdXNoX2RpcmVjdG9yeSBjbGFzcyBmcm9tIHRvb2xzL3JlbGVhc2UvcmVxdWlyZWRfZmlsZXMuY3BwPC9saT4KPC91bD4KCjxoMz5NaXNjZWxsYW5lb3VzPC9oMz4KPHVsPgogIDxsaSBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aT5SZWd1bGFyPC9pPiBjbGFzc2VzIG5lZWQgaGFzaCBmdW5jdGlvbnMuPC9saT4KPC91bD4KCjxocj4KPHA+qSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMsIDIwMTA8L3A+CjxwPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gU2VlCjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+PC9wPgoKPC9ib2R5PgoKPC9odG1sPg==