U3VtbWFyeTogTGlicmFyeSBwcm92aWRpbmcgWE1MIGFuZCBIVE1MIHN1cHBvcnQKTmFtZTogbGlieG1sMgpWZXJzaW9uOiBAVkVSU0lPTkAKUmVsZWFzZTogMQpMaWNlbnNlOiBNSVQKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpTb3VyY2U6IGZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDItJXt2ZXJzaW9ufS50YXIuZ3oKQnVpbGRSb290OiAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tcm9vdApCdWlsZFJlcXVpcmVzOiBweXRob24gcHl0aG9uLWRldmVsClVSTDogaHR0cDovL3htbHNvZnQub3JnLwpQcmVmaXg6ICV7X3ByZWZpeH0KRG9jZGlyOiAle19kb2NkaXJ9CgolZGVzY3JpcHRpb24KVGhpcyBsaWJyYXJ5IGFsbG93cyB0byBtYW5pcHVsYXRlIFhNTCBmaWxlcy4gSXQgaW5jbHVkZXMgc3VwcG9ydCAKdG8gcmVhZCwgbW9kaWZ5IGFuZCB3cml0ZSBYTUwgYW5kIEhUTUwgZmlsZXMuIFRoZXJlIGlzIERURHMgc3VwcG9ydAp0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRHREcywgZWl0aGVyCmF0IHBhcnNlIHRpbWUgb3IgbGF0ZXIgb25jZSB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gbW9kaWZpZWQuIFRoZSBvdXRwdXQKY2FuIGJlIGEgc2ltcGxlIFNBWCBzdHJlYW0gb3IgYW5kIGluLW1lbW9yeSBET00gbGlrZSByZXByZXNlbnRhdGlvbnMuCkluIHRoaXMgY2FzZSBvbmUgY2FuIHVzZSB0aGUgYnVpbHQtaW4gWFBhdGggYW5kIFhQb2ludGVyIGltcGxlbWVudGF0aW9uCnRvIHNlbGVjdCBzdWJub2RlcyBvciByYW5nZXMuIEEgZmxleGlibGUgSW5wdXQvT3V0cHV0IG1lY2hhbmlzbSBpcwphdmFpbGFibGUsIHdpdGggZXhpc3RpbmcgSFRUUCBhbmQgRlRQIG1vZHVsZXMgYW5kIGNvbWJpbmVkIHRvIGFuClVSSSBsaWJyYXJ5LgoKJXBhY2thZ2UgZGV2ZWwKU3VtbWFyeTogTGlicmFyaWVzLCBpbmNsdWRlcywgZXRjLiB0byBkZXZlbG9wIFhNTCBhbmQgSFRNTCBhcHBsaWNhdGlvbnMKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogbGlieG1sMiA9ICV7dmVyc2lvbn0KUmVxdWlyZXM6IHpsaWItZGV2ZWwKCiVkZXNjcmlwdGlvbiBkZXZlbApMaWJyYXJpZXMsIGluY2x1ZGUgZmlsZXMsIGV0YyB5b3UgY2FuIHVzZSB0byBkZXZlbG9wIFhNTCBhcHBsaWNhdGlvbnMuClRoaXMgbGlicmFyeSBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBYTUwgZmlsZXMuIEl0IGluY2x1ZGVzIHN1cHBvcnQgCnRvIHJlYWQsIG1vZGlmeSBhbmQgd3JpdGUgWE1MIGFuZCBIVE1MIGZpbGVzLiBUaGVyZSBpcyBEVERzIHN1cHBvcnQKdGhpcyBpbmNsdWRlcyBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGV2ZW4gd2l0aCBjb21wbGV4IER0RHMsIGVpdGhlcgphdCBwYXJzZSB0aW1lIG9yIGxhdGVyIG9uY2UgdGhlIGRvY3VtZW50IGhhcyBiZWVuIG1vZGlmaWVkLiBUaGUgb3V0cHV0CmNhbiBiZSBhIHNpbXBsZSBTQVggc3RyZWFtIG9yIGFuZCBpbi1tZW1vcnkgRE9NIGxpa2UgcmVwcmVzZW50YXRpb25zLgpJbiB0aGlzIGNhc2Ugb25lIGNhbiB1c2UgdGhlIGJ1aWx0LWluIFhQYXRoIGFuZCBYUG9pbnRlciBpbXBsZW1lbnRhdGlvbgp0byBzZWxlY3Qgc3Vibm9kZXMgb3IgcmFuZ2VzLiBBIGZsZXhpYmxlIElucHV0L091dHB1dCBtZWNoYW5pc20gaXMKYXZhaWxhYmxlLCB3aXRoIGV4aXN0aW5nIEhUVFAgYW5kIEZUUCBtb2R1bGVzIGFuZCBjb21iaW5lZCB0byBhbgpVUkkgbGlicmFyeS4KCiVwYWNrYWdlIHB5dGhvbgpTdW1tYXJ5OiBQeXRob24gYmluZGluZ3MgZm9yIHRoZSBsaWJ4bWwyIGxpYnJhcnkKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogbGlieG1sMiA9ICV7dmVyc2lvbn0KUmVxdWlyZXM6IHB5dGhvbgoKJWRlc2NyaXB0aW9uIHB5dGhvbgpUaGUgbGlieG1sMi1weXRob24gcGFja2FnZSBjb250YWlucyBhIG1vZHVsZSB0aGF0IHBlcm1pdHMgYXBwbGljYXRpb25zCndyaXR0ZW4gaW4gdGhlIFB5dGhvbiBwcm9ncmFtbWluZyBsYW5ndWFnZSB0byB1c2UgdGhlIGludGVyZmFjZQpzdXBwbGllZCBieSB0aGUgbGlieG1sMiBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLgoKVGhpcyBsaWJyYXJ5IGFsbG93cyB0byBtYW5pcHVsYXRlIFhNTCBmaWxlcy4gSXQgaW5jbHVkZXMgc3VwcG9ydCAKdG8gcmVhZCwgbW9kaWZ5IGFuZCB3cml0ZSBYTUwgYW5kIEhUTUwgZmlsZXMuIFRoZXJlIGlzIERURHMgc3VwcG9ydAp0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRFREcywgZWl0aGVyCmF0IHBhcnNlIHRpbWUgb3IgbGF0ZXIgb25jZSB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gbW9kaWZpZWQuCgolcHJlcAolc2V0dXAgLXEKCiVidWlsZAolY29uZmlndXJlCm1ha2UgTElCVE9PTD0vdXNyL2Jpbi9saWJ0b29sCgolaW5zdGFsbApybSAtZnIgJXtidWlsZHJvb3R9CgolbWFrZWluc3RhbGwKCiMKIyB0aGlzIGlzIGEgYml0IHVnbHkgYnV0IHRyaWVzIHRvIGdlbmVyYXRlIHRoZSBiaW5kaW5ncyBmb3IgYWxsIHZlcnNpb25zCiMgb2YgcHl0aG9uIGluc3RhbGxlZAojCmZvciBpIGluICV7cHJlZml4fS9pbmNsdWRlL3B5dGhvbioKZG8KICAgIHB5X3ZlcnNpb249YGVjaG8gJGkgfCBzZWQgInMrJXtwcmVmaXh9L2luY2x1ZGUvcHl0aG9uKysiYAogICAgaWYgdGVzdCAteCAle3ByZWZpeH0vYmluL3B5dGhvbiRweV92ZXJzaW9uCiAgICB0aGVuCiAgICAgICAgZWNobyBnZW5lcmF0aW5nIGJpbmRpbmdzIGZvciBQeXRob24gJHB5X3ZlcnNpb24KICAgICAgKGNkIHB5dGhvbiA7IG1ha2UgY2xlYW4gOyBcCiAgICAgICAgIG1ha2UgUFlUSE9OPSIle3ByZWZpeH0vYmluL3B5dGhvbiRweV92ZXJzaW9uIiBcCiAgICAgICAgICAgIFBZVEhPTl9JTkNMVURFUz0iJXtwcmVmaXh9L2luY2x1ZGUvcHl0aG9uJHB5X3ZlcnNpb24iIFwKICAgICAgICAgICAgUFlUSE9OX1ZFUlNJT049IiRweV92ZXJzaW9uIjsgXAolbWFrZWluc3RhbGwgUFlUSE9OPSIle3ByZWZpeH0vYmluL3B5dGhvbiRweV92ZXJzaW9uIiBcCiAgICAgICAgICAgIFBZVEhPTl9JTkNMVURFUz0iJXtwcmVmaXh9L2luY2x1ZGUvcHl0aG9uJHB5X3ZlcnNpb24iIFwKICAgICAgICAgICAgUFlUSE9OX1ZFUlNJT049IiRweV92ZXJzaW9uIiApCiAgICBmaQpkb25lCgolY2xlYW4Kcm0gLWZyICV7YnVpbGRyb290fQoKJXBvc3QKL3NiaW4vbGRjb25maWcKCiVwb3N0dW4KL3NiaW4vbGRjb25maWcKCiVmaWxlcwolZGVmYXR0cigtLCByb290LCByb290KQoKJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBORVdTIFJFQURNRSBDb3B5cmlnaHQgVE9ETwolZG9jICV7X21hbmRpcn0vbWFuMS94bWxsaW50LjEqCiVkb2MgJXtfbWFuZGlyfS9tYW4xL3htbGNhdGFsb2cuMSoKJWRvYyAle19tYW5kaXJ9L21hbjMvbGlieG1sLjMqCgole19saWJkaXJ9L2xpYiouc28uKgole3ByZWZpeH0vYmluL3htbGxpbnQKJXtwcmVmaXh9L2Jpbi94bWxjYXRhbG9nCgolZmlsZXMgZGV2ZWwKJWRlZmF0dHIoLSwgcm9vdCwgcm9vdCkKCiVkb2MgJXtfbWFuZGlyfS9tYW4xL3htbDItY29uZmlnLjEqCiVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgTkVXUyBSRUFETUUgQ29weXJpZ2h0IFRPRE8KJWRvYyBkb2MvKi5odG1sIGRvYy9odG1sIGRvYy8qLmdpZiBkb2MvKi5wbmcKJWRvYyBkb2MvdHV0b3JpYWwgZG9jL2xpYnhtbDItYXBpLnhtbAoKJXtfbGliZGlyfS9saWIqLnNvCiV7X2xpYmRpcn0vKmEKJXtfbGliZGlyfS8qLnNoCiV7cHJlZml4fS9pbmNsdWRlLyoKJXtwcmVmaXh9L2Jpbi94bWwyLWNvbmZpZwole3ByZWZpeH0vc2hhcmUvYWNsb2NhbC9saWJ4bWwubTQKJXtfbGliZGlyfS9wa2djb25maWcvbGlieG1sLTIuMC5wYwolZmlsZXMgcHl0aG9uCiVkZWZhdHRyKC0sIHJvb3QsIHJvb3QpCgolZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIE5FV1MgUkVBRE1FIENvcHlyaWdodAole19saWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9saWJ4bWwyLnB5CiV7X2xpYmRpcn0vcHl0aG9uKi9zaXRlLXBhY2thZ2VzL2Rydl9saWJ4bWwyLnB5CiV7X2xpYmRpcn0vcHl0aG9uKi9zaXRlLXBhY2thZ2VzL2xpYnhtbDJtb2QqCiVkb2MgcHl0aG9uL1RPRE8KJWRvYyBweXRob24vbGlieG1sMmNsYXNzLnR4dAolZG9jIHB5dGhvbi90ZXN0cy8qLnB5CiVkb2MgZG9jLyoucHkKJWRvYyBkb2MvcHl0aG9uLmh0bWwKCiVjaGFuZ2Vsb2cKKiBAUkVMREFURUAgRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgotIHVwc3RyZWFtIHJlbGVhc2UgQFZFUlNJT05AIHNlZSBodHRwOi8veG1sc29mdC5vcmcvbmV3cy5odG1sCgoqIFRodSBKYW4gIDIgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+Ci0gaW50ZWdyYXRlZCBkcnZfbGlieG1sMiB4bWwuc2F4IGRyaXZlciBmcm9tIFN06XBoYW5lIEJpZG91bAotIHByb3ZpZGVzIHRoZSBuZXcgWG1sVGV4dFJlYWRlciBpbnRlcmZhY2VzIGJhc2VkIG9uIEMjIFhNTCBBUElzCgoqIFdlZCBPY3QgMjMgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+Ci0gcmV2YW1wZWQgdGhlIHNwZWMgZmlsZSwgY2xlYW5lZCB1cCBzb21lIHJwbSBidWlsZGluZyBwcm9ibGVtcwoKKiBGcmkgT2N0ICA0IDIwMDIgSmVyZW15IEthdHogPGthdHpqQHJlZGhhdC5jb20+Ci0gYnVpbGQgd2l0aCAnbWFrZSBMSUJUT09MPS91c3IvYmluL2xpYnRvb2wnIHRvIHVzZSBzeXN0ZW0gbGlidG9vbAoKKiBXZWQgU2VwICA0IDIwMDIgRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgoKLSBsaWJyYXJ5IHBhdGhzIGZpeGVkIGZvciB4ODYtNjQKCiogRnJpIEZlYiAgMSAyMDAyIERhbmllbCBWZWlsbGFyZCA8dmVpbGxhcmRAcmVkaGF0LmNvbT4KCi0gQWRkZWQgdGhlIHB5dGhvbiBwYWNrYWdlCgoqIFN1biBOb3YgIDQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+CgotIGNsZWFuZWQgdXAgdGhlIHNwZWNmaWxlCi0gMi40LjcgYnJva2UgU0dNTCBjYXRhbG9ncyBiYWRseS4gdGhpcyBmaXhlcyBpdC4KCiogVGh1IEFwciAyNiAyMDAxIFRvc2hpbyBLdXJhdG9taSA8YmFkZ2VyQHBydHItMTMudWNzYy5lZHU+CgpbMi4zLjddCi0gQWRkZWQgbGlieG1sLm00IHRvIHRoZSBkaXN0cmlidXRpb24gZmlsZSBsaXN0Ci0gTW92ZWQgdGhlIG1hbiBwYWdlcyBmcm9tIC91c3IvbWFuIHRvIC91c3Ivc2hhcmUvbWFuIHRvIGNvbmZvcm0gdG8gRkhTMi4wCi0gTW92ZWQgcHJvZ3JhbW1lciBkb2N1bWVudGF0aW9uIGludG8gdGhlIGRldmVsIHBhY2thZ2UKCiogVGh1IFNlcCAyMyAxOTk5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KCi0gY29ycmVjdGVkIHRoZSBzcGVjIGZpbGUgYWxwaGEgc3R1ZmYKLSBzd2l0Y2hlZCB0byB2ZXJzaW9uIDEuNy4xCi0gQWRkZWQgdmFsaWRhdGlvbiwgWFBhdGgsIG5hbm9odHRwLCByZW1vdmVkIG1lbW9yeSBsZWFrcwotIFJlbmFtZWQgQ0hBUiB0byB4bWxDaGFyCgoqIFdlZCBKdW4gIDIgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CgotIFN3aXRjaGVkIHRvIHZlcnNpb24gMS4xOiBTQVggZXh0ZW5zaW9ucywgYmV0dGVyIGVudGl0aWVzIHN1cHBvcnQsIGxvdHMgb2YKICBidWcgZml4ZXMuCgoqIFN1biBPY3QgIDQgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CgotIEFkZGVkIHhtbC1jb25maWcgdG8gdGhlIHBhY2thZ2UKCiogVGh1IFNlcCAyNCAxOTk4IE1pY2hhZWwgRnVsYnJpZ2h0IDxtc2ZAcmVkaGF0LmNvbT4KCi0gQnVpbHQgcmVsZWFzZSAwLjMwCgo=