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IAAAAIuhAQAhAAAArKEBADsAAADOoQEALgAAAAqiAQAgAAAAOaIBADsAAABaogEACAAAAJaiAQAXAAAAn6IBACQAAAC3ogEAIQAAANyiAQARAAAA/qIBABEAAAAQowEAEQAAACKjAQAJAAAANKMBACcAAAA+owEAKAAAAGajAQBIAAAAj6MBABgAAADYowEACQAAAPGjAQAeAAAA+6MBACMAAAAapAEADgAAAD6kAQA/AAAATaQBACAAAACNpAEAPAAAAK6kAQA7AAAA66QBACIAAAAnpQEAMAAAAEqlAQAxAAAAe6UBADwAAACtpQEAPwAAAOqlAQAsAAAAKqYBAC8AAABXpgEALgAAAIemAQAvAAAAtqYBAC4AAADmpgEAOQAAABWnAQA3AAAAT6cBADsAAACHpwEAMwAAAMOnAQA3AAAA96cBACAAAAAvqAEAMAAAAFCoAQAwAAAAgagBACoAAACyqAEANAAAAN2oAQAmAAAAEqkBABoAAAA5qQEANgAAAFSpAQCtAAAAi6kBALoAAAA5qgEAKAAAAPSqAQAoAAAAHasBACcAAABGqwEADAAAAG6rAQAgAAAAe6sBACQAAACcqwEAJQAAAMGrAQAIAAAA56sBADUAAADwqwEAMgAAACasAQAUAAAAWawBABIAAABurAEAFgAAAIGsAQAnAAAAmKwBAAsAAADArAEAIAAAAMysAQATAAAA7awBABUAAAABrQEAHgAAABetAQAvAAAANq0BADAAAABmrQEAKQAAAJetAQAwAAAAwa0BAA4AAADyrQEAPQAAAAGuAQAIAAAAP64BAA8AAABIrgEAGgAAAFiuAQAvAAAAc64BABgAAACjrgEAJwAAALyuAQAFAAAA5K4BAFMAAADqrgEAFAAAAD6vAQAgAAAAU68BACMAAAB0rwEAMAAAAJivAQAoAAAAya8BADwAAADyrwEAMgAAAC+wAQAqAAAAYrABAE4AAACNsAEAQwAAANywAQAvAAAAILEBAE4AAABQsQEALgAAAJ+xAQAeAAAAzrEBACgAAADtsQEAGwAAABayAQAYAAAAMrIBAEAAAABLsgEAWQAAAIyyAQASAAAA5rIBABMAAAD5sgEADQAAAA2zAQA/AAAAG7MBAEcAAABbswEALAAAAKOzAQAsAAAA0LMBAB8AAAD9swEAHgAAAB20AQARAAAA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YWNlIGZpbGUgZGVzY3JpcHRvcgAlczogJXM6IG11c3QgdXNlIHN1YnNjcmlwdCB3aGVuIGFzc2lnbmluZyBhc3NvY2lhdGl2ZSBhcnJheQAlczogJXM6JWQ6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMAJXM6ICVzOiVkOiBjYW5ub3QgYWxsb2NhdGUgJWx1IGJ5dGVzICglbHUgYnl0ZXMgYWxsb2NhdGVkKQAlczogYW1iaWd1b3VzIGpvYiBzcGVjACVzOiBhbWJpZ3VvdXMgcmVkaXJlY3QAJXM6IGFyZ3VtZW50cyBtdXN0IGJlIHByb2Nlc3Mgb3Igam9iIElEcwAlczogYmFkIG5ldHdvcmsgcGF0aCBzcGVjaWZpY2F0aW9uACVzOiBiYWQgc3Vic3RpdHV0aW9uACVzOiBiaW5hcnkgb3BlcmF0b3IgZXhwZWN0ZWQAJXM6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMAJXM6IGNhbm5vdCBhbGxvY2F0ZSAlbHUgYnl0ZXMgKCVsdSBieXRlcyBhbGxvY2F0ZWQpACVzOiBjYW5ub3QgYXNzaWduIGZkIHRvIHZhcmlhYmxlACVzOiBjYW5ub3QgYXNzaWduIGxpc3QgdG8gYXJyYXkgbWVtYmVyACVzOiBjYW5ub3QgYXNzaWduIHRvIG5vbi1udW1lcmljIGluZGV4ACVzOiBjYW5ub3QgY29udmVydCBhc3NvY2lhdGl2ZSB0byBpbmRleGVkIGFycmF5ACVzOiBjYW5ub3QgY29udmVydCBpbmRleGVkIHRvIGFzc29jaWF0aXZlIGFycmF5ACVzOiBjYW5ub3QgY3JlYXRlOiAlcwAlczogY2Fubm90IGRlbGV0ZTogJXMAJXM6IGNhbm5vdCBkZXN0cm95IGFycmF5IHZhcmlhYmxlcyBpbiB0aGlzIHdheQAlczogY2Fubm90IGV4ZWN1dGUgYmluYXJ5IGZpbGUAJXM6IGNhbm5vdCBleGVjdXRlOiAlcwAlczogY2Fubm90IGdldCBsaW1pdDogJXMAJXM6IGNhbm5vdCBtb2RpZnkgbGltaXQ6ICVzACVzOiBjYW5ub3Qgb3BlbiB0ZW1wIGZpbGU6ICVzACVzOiBjYW5ub3Qgb3BlbjogJXMAJXM6IGNhbm5vdCBvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZQAlczogY2Fubm90IHJlYWQ6ICVzACVzOiBjYW5ub3QgdW5zZXQAJXM6IGNhbm5vdCB1bnNldDogcmVhZG9ubHkgJXMAJXM6IGNvbW1hbmQgbm90IGZvdW5kACVzOiBlcnJvciByZXRyaWV2aW5nIGN1cnJlbnQgZGlyZWN0b3J5OiAlczogJXMKACVzOiBleHByZXNzaW9uIGVycm9yCgAlczogZmlsZSBpcyB0b28gbGFyZ2UAJXM6IGZpbGUgbm90IGZvdW5kACVzOiBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgbm90IGAiJwAlczogaGFzaCB0YWJsZSBlbXB0eQoAJXM6IGhpc3RvcnkgZXhwYW5zaW9uIGZhaWxlZAAlczogaG9zdCB1bmtub3duACVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlYwoAJXM6IGlubGliIGZhaWxlZAAlczogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkACVzOiBpbnZhbGlkIGFjdGlvbiBuYW1lACVzOiBpbnZhbGlkIGFycmF5IG9yaWdpbgAlczogaW52YWxpZCBhc3NvY2lhdGl2ZSBhcnJheSBrZXkAJXM6IGludmFsaWQgY2FsbGJhY2sgcXVhbnR1bQAlczogaW52YWxpZCBmaWxlIGRlc2NyaXB0b3Igc3BlY2lmaWNhdGlvbgAlczogaW52YWxpZCBsaW1pdCBhcmd1bWVudAAlczogaW52YWxpZCBsaW5lIGNvdW50ACVzOiBpbnZhbGlkIG9wdGlvbgAlczogaW52YWxpZCBvcHRpb24gbmFtZQAlczogaW52YWxpZCBzZXJ2aWNlACVzOiBpbnZhbGlkIHNoZWxsIG9wdGlvbiBuYW1lACVzOiBpbnZhbGlkIHNpZ25hbCBzcGVjaWZpY2F0aW9uACVzOiBpbnZhbGlkIHRpbWVvdXQgc3BlY2lmaWNhdGlvbgAlczogaXMgYSBkaXJlY3RvcnkAJXM6IGpvYiAlZCBhbHJlYWR5IGluIGJhY2tncm91bmQAJXM6IGpvYiBoYXMgdGVybWluYXRlZAAlczogbGluZSAlZDogACVzOiBtaXNzaW5nIGNvbG9uIHNlcGFyYXRvcgAlczogbm8gY29tcGxldGlvbiBzcGVjaWZpY2F0aW9uACVzOiBubyBqb2IgY29udHJvbAAlczogbm8gc3VjaCBqb2IAJXM6IG5vdCBhIGZ1bmN0aW9uACVzOiBub3QgYSByZWd1bGFyIGZpbGUAJXM6IG5vdCBhIHNoZWxsIGJ1aWx0aW4AJXM6IG5vdCBhbiBhcnJheSB2YXJpYWJsZQAlczogbm90IGFuIGluZGV4ZWQgYXJyYXkAJXM6IG5vdCBkeW5hbWljYWxseSBsb2FkZWQAJXM6IG5vdCBmb3VuZAAlczogbnVtZXJpYyBhcmd1bWVudCByZXF1aXJlZAAlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50ACVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJWMKACVzOiBwYXJhbWV0ZXIgbnVsbCBvciBub3Qgc2V0ACVzOiByZWFkb25seSBmdW5jdGlvbgAlczogcmVhZG9ubHkgdmFyaWFibGUAJXM6IHJlc3RyaWN0ZWQAJXM6IHJlc3RyaWN0ZWQ6IGNhbm5vdCByZWRpcmVjdCBvdXRwdXQAJXM6IHJlc3RyaWN0ZWQ6IGNhbm5vdCBzcGVjaWZ5IGAvJyBpbiBjb21tYW5kIG5hbWVzACVzOiBzdWJzdHJpbmcgZXhwcmVzc2lvbiA8IDAAJXM6IHVuYXJ5IG9wZXJhdG9yIGV4cGVjdGVkACVzOiB1bmJvdW5kIHZhcmlhYmxlACVzOiB1c2FnZTogACgoIGV4cHJlc3Npb24gKSkAKGNvcmUgZHVtcGVkKSAAKHdkIG5vdzogJXMpCgAuIGZpbGVuYW1lIFthcmd1bWVudHNdAC9kZXYvKHRjcHx1ZHApL2hvc3QvcG9ydCBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgbmV0d29ya2luZwAvdG1wIG11c3QgYmUgYSB2YWxpZCBkaXJlY3RvcnkgbmFtZQA6ADxubyBjdXJyZW50IGRpcmVjdG9yeT4AQUJPUlQgaW5zdHJ1Y3Rpb24AQWJvcnRpbmcuLi4AQWRkIGRpcmVjdG9yaWVzIHRvIHN0YWNrLgogICAgCiAgICBBZGRzIGEgZGlyZWN0b3J5IHRvIHRoZSB0b3Agb2YgdGhlIGRpcmVjdG9yeSBzdGFjaywgb3Igcm90YXRlcwogICAgdGhlIHN0YWNrLCBtYWtpbmcgdGhlIG5ldyB0b3Agb2YgdGhlIHN0YWNrIHRoZSBjdXJyZW50IHdvcmtpbmcKICAgIGRpcmVjdG9yeS4gIFdpdGggbm8gYXJndW1lbnRzLCBleGNoYW5nZXMgdGhlIHRvcCB0d28gZGlyZWN0b3JpZXMuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1uCVN1cHByZXNzZXMgdGhlIG5vcm1hbCBjaGFuZ2Ugb2YgZGlyZWN0b3J5IHdoZW4gYWRkaW5nCiAgICAJZGlyZWN0b3JpZXMgdG8gdGhlIHN0YWNrLCBzbyBvbmx5IHRoZSBzdGFjayBpcyBtYW5pcHVsYXRlZC4KICAgIAogICAgQXJndW1lbnRzOgogICAgICArTglSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZwogICAgCWZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3Qgc2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoCiAgICAJemVybykgaXMgYXQgdGhlIHRvcC4KICAgIAogICAgICAtTglSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZwogICAgCWZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0IHNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aAogICAgCXplcm8pIGlzIGF0IHRoZSB0b3AuCiAgICAKICAgICAgZGlyCUFkZHMgRElSIHRvIHRoZSBkaXJlY3Rvcnkgc3RhY2sgYXQgdGhlIHRvcCwgbWFraW5nIGl0IHRoZQogICAgCW5ldyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgogICAgCiAgICBUaGUgYGRpcnMnIGJ1aWx0aW4gZGlzcGxheXMgdGhlIGRpcmVjdG9yeSBzdGFjay4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgYXJndW1lbnQgaXMgc3VwcGxpZWQgb3IgdGhlIGRpcmVjdG9yeQogICAgY2hhbmdlIGZhaWxzLgBBZGRzIGEgZGlyZWN0b3J5IHRvIHRoZSB0b3Agb2YgdGhlIGRpcmVjdG9yeSBzdGFjaywgb3Igcm90YXRlcwogICAgdGhlIHN0YWNrLCBtYWtpbmcgdGhlIG5ldyB0b3Agb2YgdGhlIHN0YWNrIHRoZSBjdXJyZW50IHdvcmtpbmcKICAgIGRpcmVjdG9yeS4gIFdpdGggbm8gYXJndW1lbnRzLCBleGNoYW5nZXMgdGhlIHRvcCB0d28gZGlyZWN0b3JpZXMuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1uCVN1cHByZXNzZXMgdGhlIG5vcm1hbCBjaGFuZ2Ugb2YgZGlyZWN0b3J5IHdoZW4gYWRkaW5nCiAgICAJZGlyZWN0b3JpZXMgdG8gdGhlIHN0YWNrLCBzbyBvbmx5IHRoZSBzdGFjayBpcyBtYW5pcHVsYXRlZC4KICAgIAogICAgQXJndW1lbnRzOgogICAgICArTglSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZwogICAgCWZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3Qgc2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoCiAgICAJemVybykgaXMgYXQgdGhlIHRvcC4KICAgIAogICAgICAtTglSb3RhdGVzIHRoZSBzdGFjayBzbyB0aGF0IHRoZSBOdGggZGlyZWN0b3J5IChjb3VudGluZwogICAgCWZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0IHNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aAogICAgCXplcm8pIGlzIGF0IHRoZSB0b3AuCiAgICAKICAgICAgZGlyCUFkZHMgRElSIHRvIHRoZSBkaXJlY3Rvcnkgc3RhY2sgYXQgdGhlIHRvcCwgbWFraW5nIGl0IHRoZQogICAgCW5ldyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgogICAgCiAgICBUaGUgYGRpcnMnIGJ1aWx0aW4gZGlzcGxheXMgdGhlIGRpcmVjdG9yeSBzdGFjay4AQWxhcm0gKHByb2ZpbGUpAEFsYXJtICh2aXJ0dWFsKQBBbGFybSBjbG9jawBBcml0aG1ldGljIGZvciBsb29wLgogICAgCiAgICBFcXVpdmFsZW50IHRvCiAgICAJKCggRVhQMSApKQogICAgCXdoaWxlICgoIEVYUDIgKSk7IGRvCiAgICAJCUNPTU1BTkRTCiAgICAJCSgoIEVYUDMgKSkKICAgIAlkb25lCiAgICBFWFAxLCBFWFAyLCBhbmQgRVhQMyBhcmUgYXJpdGhtZXRpYyBleHByZXNzaW9ucy4gIElmIGFueSBleHByZXNzaW9uIGlzCiAgICBvbWl0dGVkLCBpdCBiZWhhdmVzIGFzIGlmIGl0IGV2YWx1YXRlcyB0byAxLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLgBCUFQgdHJhY2UvdHJhcABCYWQgc3lzdGVtIGNhbGwAQm9ndXMgc2lnbmFsAEJyb2tlbiBwaXBlAEJ1cyBlcnJvcgBDUFUgbGltaXQAQ2hpbGQgZGVhdGggb3Igc3RvcABDb21tb24gc2hlbGwgdmFyaWFibGUgbmFtZXMgYW5kIHVzYWdlLgogICAgCiAgICBCQVNIX1ZFUlNJT04JVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgdGhpcyBCYXNoLgogICAgQ0RQQVRICUEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoCiAgICAJCWZvciBkaXJlY3RvcmllcyBnaXZlbiBhcyBhcmd1bWVudHMgdG8gYGNkJy4KICAgIEdMT0JJR05PUkUJQSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBwYXR0ZXJucyBkZXNjcmliaW5nIGZpbGVuYW1lcyB0bwogICAgCQliZSBpZ25vcmVkIGJ5IHBhdGhuYW1lIGV4cGFuc2lvbi4KICAgIEhJU1RGSUxFCVRoZSBuYW1lIG9mIHRoZSBmaWxlIHdoZXJlIHlvdXIgY29tbWFuZCBoaXN0b3J5IGlzIHN0b3JlZC4KICAgIEhJU1RGSUxFU0laRQlUaGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdGhpcyBmaWxlIGNhbiBjb250YWluLgogICAgSElTVFNJWkUJVGhlIG1heGltdW0gbnVtYmVyIG9mIGhpc3RvcnkgbGluZXMgdGhhdCBhIHJ1bm5pbmcKICAgIAkJc2hlbGwgY2FuIGFjY2Vzcy4KICAgIEhPTUUJVGhlIGNvbXBsZXRlIHBhdGhuYW1lIHRvIHlvdXIgbG9naW4gZGlyZWN0b3J5LgogICAgSE9TVE5BTUUJVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgaG9zdC4KICAgIEhPU1RUWVBFCVRoZSB0eXBlIG9mIENQVSB0aGlzIHZlcnNpb24gb2YgQmFzaCBpcyBydW5uaW5nIHVuZGVyLgogICAgSUdOT1JFRU9GCUNvbnRyb2xzIHRoZSBhY3Rpb24gb2YgdGhlIHNoZWxsIG9uIHJlY2VpcHQgb2YgYW4gRU9GCiAgICAJCWNoYXJhY3RlciBhcyB0aGUgc29sZSBpbnB1dC4gIElmIHNldCwgdGhlbiB0aGUgdmFsdWUKICAgIAkJb2YgaXQgaXMgdGhlIG51bWJlciBvZiBFT0YgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSBzZWVuCiAgICAJCWluIGEgcm93IG9uIGFuIGVtcHR5IGxpbmUgYmVmb3JlIHRoZSBzaGVsbCB3aWxsIGV4aXQKICAgIAkJKGRlZmF1bHQgMTApLiAgV2hlbiB1bnNldCwgRU9GIHNpZ25pZmllcyB0aGUgZW5kIG9mIGlucHV0LgogICAgTUFDSFRZUEUJQSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY3VycmVudCBzeXN0ZW0gQmFzaCBpcyBydW5uaW5nIG9uLgogICAgTUFJTENIRUNLCUhvdyBvZnRlbiwgaW4gc2Vjb25kcywgQmFzaCBjaGVja3MgZm9yIG5ldyBtYWlsLgogICAgTUFJTFBBVEgJQSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBmaWxlbmFtZXMgd2hpY2ggQmFzaCBjaGVja3MKICAgIAkJZm9yIG5ldyBtYWlsLgogICAgT1NUWVBFCVRoZSB2ZXJzaW9uIG9mIFVuaXggdGhpcyB2ZXJzaW9uIG9mIEJhc2ggaXMgcnVubmluZyBvbi4KICAgIFBBVEgJQSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBzZWFyY2ggd2hlbgogICAgCQlsb29raW5nIGZvciBjb21tYW5kcy4KICAgIFBST01QVF9DT01NQU5ECUEgY29tbWFuZCB0byBiZSBleGVjdXRlZCBiZWZvcmUgdGhlIHByaW50aW5nIG9mIGVhY2gKICAgIAkJcHJpbWFyeSBwcm9tcHQuCiAgICBQUzEJCVRoZSBwcmltYXJ5IHByb21wdCBzdHJpbmcuCiAgICBQUzIJCVRoZSBzZWNvbmRhcnkgcHJvbXB0IHN0cmluZy4KICAgIFBXRAkJVGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgogICAgU0hFTExPUFRTCUEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZW5hYmxlZCBzaGVsbCBvcHRpb25zLgogICAgVEVSTQlUaGUgbmFtZSBvZiB0aGUgY3VycmVudCB0ZXJtaW5hbCB0eXBlLgogICAgVElNRUZPUk1BVAlUaGUgb3V0cHV0IGZvcm1hdCBmb3IgdGltaW5nIHN0YXRpc3RpY3MgZGlzcGxheWVkIGJ5IHRoZQogICAgCQlgdGltZScgcmVzZXJ2ZWQgd29yZC4KICAgIGF1dG9fcmVzdW1lCU5vbi1udWxsIG1lYW5zIGEgY29tbWFuZCB3b3JkIGFwcGVhcmluZyBvbiBhIGxpbmUgYnkKICAgIAkJaXRzZWxmIGlzIGZpcnN0IGxvb2tlZCBmb3IgaW4gdGhlIGxpc3Qgb2YgY3VycmVudGx5CiAgICAJCXN0b3BwZWQgam9icy4gIElmIGZvdW5kIHRoZXJlLCB0aGF0IGpvYiBpcyBmb3JlZ3JvdW5kZWQuCiAgICAJCUEgdmFsdWUgb2YgYGV4YWN0JyBtZWFucyB0aGF0IHRoZSBjb21tYW5kIHdvcmQgbXVzdAogICAgCQlleGFjdGx5IG1hdGNoIGEgY29tbWFuZCBpbiB0aGUgbGlzdCBvZiBzdG9wcGVkIGpvYnMuICBBCiAgICAJCXZhbHVlIG9mIGBzdWJzdHJpbmcnIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgd29yZCBtdXN0CiAgICAJCW1hdGNoIGEgc3Vic3RyaW5nIG9mIHRoZSBqb2IuICBBbnkgb3RoZXIgdmFsdWUgbWVhbnMgdGhhdAogICAgCQl0aGUgY29tbWFuZCBtdXN0IGJlIGEgcHJlZml4IG9mIGEgc3RvcHBlZCBqb2IuCiAgICBoaXN0Y2hhcnMJQ2hhcmFjdGVycyBjb250cm9sbGluZyBoaXN0b3J5IGV4cGFuc2lvbiBhbmQgcXVpY2sKICAgIAkJc3Vic3RpdHV0aW9uLiAgVGhlIGZpcnN0IGNoYXJhY3RlciBpcyB0aGUgaGlzdG9yeQogICAgCQlzdWJzdGl0dXRpb24gY2hhcmFjdGVyLCB1c3VhbGx5IGAhJy4gIFRoZSBzZWNvbmQgaXMKICAgIAkJdGhlIGBxdWljayBzdWJzdGl0dXRpb24nIGNoYXJhY3RlciwgdXN1YWxseSBgXicuICBUaGUKICAgIAkJdGhpcmQgaXMgdGhlIGBoaXN0b3J5IGNvbW1lbnQnIGNoYXJhY3RlciwgdXN1YWxseSBgIycuCiAgICBISVNUSUdOT1JFCUEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgcGF0dGVybnMgdXNlZCB0byBkZWNpZGUgd2hpY2gKICAgIAkJY29tbWFuZHMgc2hvdWxkIGJlIHNhdmVkIG9uIHRoZSBoaXN0b3J5IGxpc3QuCgBDb250aW51ZQBDcmVhdGUgYSBjb3Byb2Nlc3MgbmFtZWQgTkFNRS4KICAgIAogICAgRXhlY3V0ZSBDT01NQU5EIGFzeW5jaHJvbm91c2x5LCB3aXRoIHRoZSBzdGFuZGFyZCBvdXRwdXQgYW5kIHN0YW5kYXJkCiAgICBpbnB1dCBvZiB0aGUgY29tbWFuZCBjb25uZWN0ZWQgdmlhIGEgcGlwZSB0byBmaWxlIGRlc2NyaXB0b3JzIGFzc2lnbmVkCiAgICB0byBpbmRpY2VzIDAgYW5kIDEgb2YgYW4gYXJyYXkgdmFyaWFibGUgTkFNRSBpbiB0aGUgZXhlY3V0aW5nIHNoZWxsLgogICAgVGhlIGRlZmF1bHQgTkFNRSBpcyAiQ09QUk9DIi4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHRoZSBleGl0IHN0YXR1cyBvZiBDT01NQU5ELgBEZWZpbmUgb3IgZGlzcGxheSBhbGlhc2VzLgogICAgCiAgICBXaXRob3V0IGFyZ3VtZW50cywgYGFsaWFzJyBwcmludHMgdGhlIGxpc3Qgb2YgYWxpYXNlcyBpbiB0aGUgcmV1c2FibGUKICAgIGZvcm0gYGFsaWFzIE5BTUU9VkFMVUUnIG9uIHN0YW5kYXJkIG91dHB1dC4KICAgIAogICAgT3RoZXJ3aXNlLCBhbiBhbGlhcyBpcyBkZWZpbmVkIGZvciBlYWNoIE5BTUUgd2hvc2UgVkFMVUUgaXMgZ2l2ZW4uCiAgICBBIHRyYWlsaW5nIHNwYWNlIGluIFZBTFVFIGNhdXNlcyB0aGUgbmV4dCB3b3JkIHRvIGJlIGNoZWNrZWQgZm9yCiAgICBhbGlhcyBzdWJzdGl0dXRpb24gd2hlbiB0aGUgYWxpYXMgaXMgZXhwYW5kZWQuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1wCVByaW50IGFsbCBkZWZpbmVkIGFsaWFzZXMgaW4gYSByZXVzYWJsZSBmb3JtYXQKICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBhbGlhcyByZXR1cm5zIHRydWUgdW5sZXNzIGEgTkFNRSBpcyBzdXBwbGllZCBmb3Igd2hpY2ggbm8gYWxpYXMgaGFzIGJlZW4KICAgIGRlZmluZWQuAERlZmluZSBzaGVsbCBmdW5jdGlvbi4KICAgIAogICAgQ3JlYXRlIGEgc2hlbGwgZnVuY3Rpb24gbmFtZWQgTkFNRS4gIFdoZW4gaW52b2tlZCBhcyBhIHNpbXBsZSBjb21tYW5kLAogICAgTkFNRSBydW5zIENPTU1BTkRzIGluIHRoZSBjYWxsaW5nIHNoZWxsJ3MgY29udGV4dC4gIFdoZW4gTkFNRSBpcyBpbnZva2VkLAogICAgdGhlIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBhcyAkMS4uLiRuLCBhbmQgdGhlIGZ1bmN0aW9uJ3MKICAgIG5hbWUgaXMgaW4gJEZVTkNOQU1FLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTkFNRSBpcyByZWFkb25seS4ARGlzcGxheSBkaXJlY3Rvcnkgc3RhY2suCiAgICAKICAgIERpc3BsYXkgdGhlIGxpc3Qgb2YgY3VycmVudGx5IHJlbWVtYmVyZWQgZGlyZWN0b3JpZXMuICBEaXJlY3RvcmllcwogICAgZmluZCB0aGVpciB3YXkgb250byB0aGUgbGlzdCB3aXRoIHRoZSBgcHVzaGQnIGNvbW1hbmQ7IHlvdSBjYW4gZ2V0CiAgICBiYWNrIHVwIHRocm91Z2ggdGhlIGxpc3Qgd2l0aCB0aGUgYHBvcGQnIGNvbW1hbmQuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1jCWNsZWFyIHRoZSBkaXJlY3Rvcnkgc3RhY2sgYnkgZGVsZXRpbmcgYWxsIG9mIHRoZSBlbGVtZW50cwogICAgICAtbAlkbyBub3QgcHJpbnQgdGlsZGUtcHJlZml4ZWQgdmVyc2lvbnMgb2YgZGlyZWN0b3JpZXMgcmVsYXRpdmUKICAgIAl0byB5b3VyIGhvbWUgZGlyZWN0b3J5CiAgICAgIC1wCXByaW50IHRoZSBkaXJlY3Rvcnkgc3RhY2sgd2l0aCBvbmUgZW50cnkgcGVyIGxpbmUKICAgICAgLXYJcHJpbnQgdGhlIGRpcmVjdG9yeSBzdGFjayB3aXRoIG9uZSBlbnRyeSBwZXIgbGluZSBwcmVmaXhlZAogICAgCXdpdGggaXRzIHBvc2l0aW9uIGluIHRoZSBzdGFjawogICAgCiAgICBBcmd1bWVudHM6CiAgICAgICtOCURpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biBieQogICAgCWRpcnMgd2hlbiBpbnZva2VkIHdpdGhvdXQgb3B0aW9ucywgc3RhcnRpbmcgd2l0aCB6ZXJvLgogICAgCiAgICAgIC1OCURpc3BsYXlzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3Qgc2hvd24gYnkKICAgIAlkaXJzIHdoZW4gaW52b2tlZCB3aXRob3V0IG9wdGlvbnMsIHN0YXJ0aW5nIHdpdGggemVyby4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgb3B0aW9uIGlzIHN1cHBsaWVkIG9yIGFuIGVycm9yIG9jY3Vycy4ARGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBidWlsdGluIGNvbW1hbmRzLgogICAgCiAgICBEaXNwbGF5cyBicmllZiBzdW1tYXJpZXMgb2YgYnVpbHRpbiBjb21tYW5kcy4gIElmIFBBVFRFUk4gaXMKICAgIHNwZWNpZmllZCwgZ2l2ZXMgZGV0YWlsZWQgaGVscCBvbiBhbGwgY29tbWFuZHMgbWF0Y2hpbmcgUEFUVEVSTiwKICAgIG90aGVyd2lzZSB0aGUgbGlzdCBvZiBoZWxwIHRvcGljcyBpcyBwcmludGVkLgogICAgCiAgICBPcHRpb25zOgogICAgICAtZAlvdXRwdXQgc2hvcnQgZGVzY3JpcHRpb24gZm9yIGVhY2ggdG9waWMKICAgICAgLW0JZGlzcGxheSB1c2FnZSBpbiBwc2V1ZG8tbWFucGFnZSBmb3JtYXQKICAgICAgLXMJb3V0cHV0IG9ubHkgYSBzaG9ydCB1c2FnZSBzeW5vcHNpcyBmb3IgZWFjaCB0b3BpYyBtYXRjaGluZwogICAgCVBBVFRFUk4KICAgIAogICAgQXJndW1lbnRzOgogICAgICBQQVRURVJOCVBhdHRlcm4gc3BlY2lmaXlpbmcgYSBoZWxwIHRvcGljCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBQQVRURVJOIGlzIG5vdCBmb3VuZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4ARGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5kIHR5cGUuCiAgICAKICAgIEZvciBlYWNoIE5BTUUsIGluZGljYXRlIGhvdyBpdCB3b3VsZCBiZSBpbnRlcnByZXRlZCBpZiB1c2VkIGFzIGEKICAgIGNvbW1hbmQgbmFtZS4KICAgIAogICAgT3B0aW9uczoKICAgICAgLWEJZGlzcGxheSBhbGwgbG9jYXRpb25zIGNvbnRhaW5pbmcgYW4gZXhlY3V0YWJsZSBuYW1lZCBOQU1FOwogICAgCWluY2x1ZGVzIGFsaWFzZXMsIGJ1aWx0aW5zLCBhbmQgZnVuY3Rpb25zLCBpZiBhbmQgb25seSBpZgogICAgCXRoZSBgLXAnIG9wdGlvbiBpcyBub3QgYWxzbyB1c2VkCiAgICAgIC1mCXN1cHByZXNzIHNoZWxsIGZ1bmN0aW9uIGxvb2t1cAogICAgICAtUAlmb3JjZSBhIFBBVEggc2VhcmNoIGZvciBlYWNoIE5BTUUsIGV2ZW4gaWYgaXQgaXMgYW4gYWxpYXMsCiAgICAJYnVpbHRpbiwgb3IgZnVuY3Rpb24sIGFuZCByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBkaXNrIGZpbGUKICAgIAl0aGF0IHdvdWxkIGJlIGV4ZWN1dGVkCiAgICAgIC1wCXJldHVybnMgZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBkaXNrIGZpbGUgdGhhdCB3b3VsZCBiZSBleGVjdXRlZCwKICAgIAlvciBub3RoaW5nIGlmIGB0eXBlIC10IE5BTUUnIHdvdWxkIG5vdCByZXR1cm4gYGZpbGUnLgogICAgICAtdAlvdXRwdXQgYSBzaW5nbGUgd29yZCB3aGljaCBpcyBvbmUgb2YgYGFsaWFzJywgYGtleXdvcmQnLAogICAgCWBmdW5jdGlvbicsIGBidWlsdGluJywgYGZpbGUnIG9yIGAnLCBpZiBOQU1FIGlzIGFuIGFsaWFzLCBzaGVsbAogICAgCXJlc2VydmVkIHdvcmQsIHNoZWxsIGZ1bmN0aW9uLCBzaGVsbCBidWlsdGluLCBkaXNrIGZpbGUsIG9yIG5vdAogICAgCWZvdW5kLCByZXNwZWN0aXZlbHkKICAgIAogICAgQXJndW1lbnRzOgogICAgICBOQU1FCUNvbW1hbmQgbmFtZSB0byBiZSBpbnRlcnByZXRlZC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgaWYgYWxsIG9mIHRoZSBOQU1FcyBhcmUgZm91bmQ7IGZhaWxzIGlmIGFueSBhcmUgbm90IGZvdW5kLgBEaXNwbGF5IG9yIGV4ZWN1dGUgY29tbWFuZHMgZnJvbSB0aGUgaGlzdG9yeSBsaXN0LgogICAgCiAgICBmYyBpcyB1c2VkIHRvIGxpc3Qgb3IgZWRpdCBhbmQgcmUtZXhlY3V0ZSBjb21tYW5kcyBmcm9tIHRoZSBoaXN0b3J5IGxpc3QuCiAgICBGSVJTVCBhbmQgTEFTVCBjYW4gYmUgbnVtYmVycyBzcGVjaWZ5aW5nIHRoZSByYW5nZSwgb3IgRklSU1QgY2FuIGJlIGEKICAgIHN0cmluZywgd2hpY2ggbWVhbnMgdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgYmVnaW5uaW5nIHdpdGggdGhhdAogICAgc3RyaW5nLgogICAgCiAgICBPcHRpb25zOgogICAgICAtZSBFTkFNRQlzZWxlY3Qgd2hpY2ggZWRpdG9yIHRvIHVzZS4gIERlZmF1bHQgaXMgRkNFRElULCB0aGVuIEVESVRPUiwKICAgIAkJdGhlbiB2aQogICAgICAtbCAJbGlzdCBsaW5lcyBpbnN0ZWFkIG9mIGVkaXRpbmcKICAgICAgLW4Jb21pdCBsaW5lIG51bWJlcnMgd2hlbiBsaXN0aW5nCiAgICAgIC1yCXJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBsaW5lcyAobmV3ZXN0IGxpc3RlZCBmaXJzdCkKICAgIAogICAgV2l0aCB0aGUgYGZjIC1zIFtwYXQ9cmVwIC4uLl0gW2NvbW1hbmRdJyBmb3JtYXQsIENPTU1BTkQgaXMKICAgIHJlLWV4ZWN1dGVkIGFmdGVyIHRoZSBzdWJzdGl0dXRpb24gT0xEPU5FVyBpcyBwZXJmb3JtZWQuCiAgICAKICAgIEEgdXNlZnVsIGFsaWFzIHRvIHVzZSB3aXRoIHRoaXMgaXMgcj0nZmMgLXMnLCBzbyB0aGF0IHR5cGluZyBgciBjYycKICAgIHJ1bnMgdGhlIGxhc3QgY29tbWFuZCBiZWdpbm5pbmcgd2l0aCBgY2MnIGFuZCB0eXBpbmcgYHInIHJlLWV4ZWN1dGVzCiAgICB0aGUgbGFzdCBjb21tYW5kLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyBvciBzdGF0dXMgb2YgZXhlY3V0ZWQgY29tbWFuZDsgbm9uLXplcm8gaWYgYW4gZXJyb3Igb2NjdXJzLgBEaXNwbGF5IG9yIG1hbmlwdWxhdGUgdGhlIGhpc3RvcnkgbGlzdC4KICAgIAogICAgRGlzcGxheSB0aGUgaGlzdG9yeSBsaXN0IHdpdGggbGluZSBudW1iZXJzLCBwcmVmaXhpbmcgZWFjaCBtb2RpZmllZAogICAgZW50cnkgd2l0aCBhIGAqJy4gIEFuIGFyZ3VtZW50IG9mIE4gbGlzdHMgb25seSB0aGUgbGFzdCBOIGVudHJpZXMuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1jCWNsZWFyIHRoZSBoaXN0b3J5IGxpc3QgYnkgZGVsZXRpbmcgYWxsIG9mIHRoZSBlbnRyaWVzCiAgICAgIC1kIG9mZnNldAlkZWxldGUgdGhlIGhpc3RvcnkgZW50cnkgYXQgb2Zmc2V0IE9GRlNFVC4KICAgIAogICAgICAtYQlhcHBlbmQgaGlzdG9yeSBsaW5lcyBmcm9tIHRoaXMgc2Vzc2lvbiB0byB0aGUgaGlzdG9yeSBmaWxlCiAgICAgIC1uCXJlYWQgYWxsIGhpc3RvcnkgbGluZXMgbm90IGFscmVhZHkgcmVhZCBmcm9tIHRoZSBoaXN0b3J5IGZpbGUKICAgICAgLXIJcmVhZCB0aGUgaGlzdG9yeSBmaWxlIGFuZCBhcHBlbmQgdGhlIGNvbnRlbnRzIHRvIHRoZSBoaXN0b3J5CiAgICAJbGlzdAogICAgICAtdwl3cml0ZSB0aGUgY3VycmVudCBoaXN0b3J5IHRvIHRoZSBoaXN0b3J5IGZpbGUKICAgIAlhbmQgYXBwZW5kIHRoZW0gdG8gdGhlIGhpc3RvcnkgbGlzdAogICAgCiAgICAgIC1wCXBlcmZvcm0gaGlzdG9yeSBleHBhbnNpb24gb24gZWFjaCBBUkcgYW5kIGRpc3BsYXkgdGhlIHJlc3VsdAogICAgCXdpdGhvdXQgc3RvcmluZyBpdCBpbiB0aGUgaGlzdG9yeSBsaXN0CiAgICAgIC1zCWFwcGVuZCB0aGUgQVJHcyB0byB0aGUgaGlzdG9yeSBsaXN0IGFzIGEgc2luZ2xlIGVudHJ5CiAgICAKICAgIElmIEZJTEVOQU1FIGlzIGdpdmVuLCBpdCBpcyB1c2VkIGFzIHRoZSBoaXN0b3J5IGZpbGUuICBPdGhlcndpc2UsCiAgICBpZiAkSElTVEZJTEUgaGFzIGEgdmFsdWUsIHRoYXQgaXMgdXNlZCwgZWxzZSB+Ly5iYXNoX2hpc3RvcnkuCiAgICAKICAgIElmIHRoZSAkSElTVFRJTUVGT1JNQVQgdmFyaWFibGUgaXMgc2V0IGFuZCBub3QgbnVsbCwgaXRzIHZhbHVlIGlzIHVzZWQKICAgIGFzIGEgZm9ybWF0IHN0cmluZyBmb3Igc3RyZnRpbWUoMykgdG8gcHJpbnQgdGhlIHRpbWUgc3RhbXAgYXNzb2NpYXRlZAogICAgd2l0aCBlYWNoIGRpc3BsYXllZCBoaXN0b3J5IGVudHJ5LiAgTm8gdGltZSBzdGFtcHMgYXJlIHByaW50ZWQgb3RoZXJ3aXNlLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYW4gZXJyb3Igb2NjdXJzLgBEaXNwbGF5IG9yIHNldCBmaWxlIG1vZGUgbWFzay4KICAgIAogICAgU2V0cyB0aGUgdXNlciBmaWxlLWNyZWF0aW9uIG1hc2sgdG8gTU9ERS4gIElmIE1PREUgaXMgb21pdHRlZCwgcHJpbnRzCiAgICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgbWFzay4KICAgIAogICAgSWYgTU9ERSBiZWdpbnMgd2l0aCBhIGRpZ2l0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhbiBvY3RhbCBudW1iZXI7CiAgICBvdGhlcndpc2UgaXQgaXMgYSBzeW1ib2xpYyBtb2RlIHN0cmluZyBsaWtlIHRoYXQgYWNjZXB0ZWQgYnkgY2htb2QoMSkuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1wCWlmIE1PREUgaXMgb21pdHRlZCwgb3V0cHV0IGluIGEgZm9ybSB0aGF0IG1heSBiZSByZXVzZWQgYXMgaW5wdXQKICAgICAgLVMJbWFrZXMgdGhlIG91dHB1dCBzeW1ib2xpYzsgb3RoZXJ3aXNlIGFuIG9jdGFsIG51bWJlciBpcyBvdXRwdXQKICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIE1PREUgaXMgaW52YWxpZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4ARGlzcGxheSBwb3NzaWJsZSBjb21wbGV0aW9ucyBkZXBlbmRpbmcgb24gdGhlIG9wdGlvbnMuCiAgICAKICAgIEludGVuZGVkIHRvIGJlIHVzZWQgZnJvbSB3aXRoaW4gYSBzaGVsbCBmdW5jdGlvbiBnZW5lcmF0aW5nIHBvc3NpYmxlCiAgICBjb21wbGV0aW9ucy4gIElmIHRoZSBvcHRpb25hbCBXT1JEIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCBtYXRjaGVzIGFnYWluc3QKICAgIFdPUkQgYXJlIGdlbmVyYXRlZC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGFuIGludmFsaWQgb3B0aW9uIGlzIHN1cHBsaWVkIG9yIGFuIGVycm9yIG9jY3Vycy4ARGlzcGxheSBwcm9jZXNzIHRpbWVzLgogICAgCiAgICBQcmludHMgdGhlIGFjY3VtdWxhdGVkIHVzZXIgYW5kIHN5c3RlbSB0aW1lcyBmb3IgdGhlIHNoZWxsIGFuZCBhbGwgb2YgaXRzCiAgICBjaGlsZCBwcm9jZXNzZXMuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgQWx3YXlzIHN1Y2NlZWRzLgBEaXNwbGF5IHRoZSBsaXN0IG9mIGN1cnJlbnRseSByZW1lbWJlcmVkIGRpcmVjdG9yaWVzLiAgRGlyZWN0b3JpZXMKICAgIGZpbmQgdGhlaXIgd2F5IG9udG8gdGhlIGxpc3Qgd2l0aCB0aGUgYHB1c2hkJyBjb21tYW5kOyB5b3UgY2FuIGdldAogICAgYmFjayB1cCB0aHJvdWdoIHRoZSBsaXN0IHdpdGggdGhlIGBwb3BkJyBjb21tYW5kLgogICAgCiAgICBPcHRpb25zOgogICAgICAtYwljbGVhciB0aGUgZGlyZWN0b3J5IHN0YWNrIGJ5IGRlbGV0aW5nIGFsbCBvZiB0aGUgZWxlbWVudHMKICAgICAgLWwJZG8gbm90IHByaW50IHRpbGRlLXByZWZpeGVkIHZlcnNpb25zIG9mIGRpcmVjdG9yaWVzIHJlbGF0aXZlCiAgICAJdG8geW91ciBob21lIGRpcmVjdG9yeQogICAgICAtcAlwcmludCB0aGUgZGlyZWN0b3J5IHN0YWNrIHdpdGggb25lIGVudHJ5IHBlciBsaW5lCiAgICAgIC12CXByaW50IHRoZSBkaXJlY3Rvcnkgc3RhY2sgd2l0aCBvbmUgZW50cnkgcGVyIGxpbmUgcHJlZml4ZWQKICAgIAl3aXRoIGl0cyBwb3NpdGlvbiBpbiB0aGUgc3RhY2sKICAgIAogICAgQXJndW1lbnRzOgogICAgICArTglEaXNwbGF5cyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3Qgc2hvd24gYnkKICAgIAlkaXJzIHdoZW4gaW52b2tlZCB3aXRob3V0IG9wdGlvbnMsIHN0YXJ0aW5nIHdpdGggemVyby4KICAgIAogICAgICAtTglEaXNwbGF5cyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIHJpZ2h0IG9mIHRoZSBsaXN0IHNob3duIGJ5CglkaXJzIHdoZW4gaW52b2tlZCB3aXRob3V0IG9wdGlvbnMsIHN0YXJ0aW5nIHdpdGggemVyby4ARG9uZQBEb25lKCVkKQBFTVQgaW5zdHJ1Y3Rpb24ARW5hYmxlIGFuZCBkaXNhYmxlIHNoZWxsIGJ1aWx0aW5zLgogICAgCiAgICBFbmFibGVzIGFuZCBkaXNhYmxlcyBidWlsdGluIHNoZWxsIGNvbW1hbmRzLiAgRGlzYWJsaW5nIGFsbG93cyB5b3UgdG8KICAgIGV4ZWN1dGUgYSBkaXNrIGNvbW1hbmQgd2hpY2ggaGFzIHRoZSBzYW1lIG5hbWUgYXMgYSBzaGVsbCBidWlsdGluCiAgICB3aXRob3V0IHVzaW5nIGEgZnVsbCBwYXRobmFtZS4KICAgIAogICAgT3B0aW9uczoKICAgICAgLWEJcHJpbnQgYSBsaXN0IG9mIGJ1aWx0aW5zIHNob3dpbmcgd2hldGhlciBvciBub3QgZWFjaCBpcyBlbmFibGVkCiAgICAgIC1uCWRpc2FibGUgZWFjaCBOQU1FIG9yIGRpc3BsYXkgYSBsaXN0IG9mIGRpc2FibGVkIGJ1aWx0aW5zCiAgICAgIC1wCXByaW50IHRoZSBsaXN0IG9mIGJ1aWx0aW5zIGluIGEgcmV1c2FibGUgZm9ybWF0CiAgICAgIC1zCXByaW50IG9ubHkgdGhlIG5hbWVzIG9mIFBvc2l4IGBzcGVjaWFsJyBidWlsdGlucwogICAgCiAgICBPcHRpb25zIGNvbnRyb2xsaW5nIGR5bmFtaWMgbG9hZGluZzoKICAgICAgLWYJTG9hZCBidWlsdGluIE5BTUUgZnJvbSBzaGFyZWQgb2JqZWN0IEZJTEVOQU1FCiAgICAgIC1kCVJlbW92ZSBhIGJ1aWx0aW4gbG9hZGVkIHdpdGggLWYKICAgIAogICAgV2l0aG91dCBvcHRpb25zLCBlYWNoIE5BTUUgaXMgZW5hYmxlZC4KICAgIAogICAgVG8gdXNlIHRoZSBgdGVzdCcgZm91bmQgaW4gJFBBVEggaW5zdGVhZCBvZiB0aGUgc2hlbGwgYnVpbHRpbgogICAgdmVyc2lvbiwgdHlwZSBgZW5hYmxlIC1uIHRlc3QnLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTkFNRSBpcyBub3QgYSBzaGVsbCBidWlsdGluIG9yIGFuIGVycm9yIG9jY3Vycy4ARXZhbHVhdGUgYXJpdGhtZXRpYyBleHByZXNzaW9uLgogICAgCiAgICBUaGUgRVhQUkVTU0lPTiBpcyBldmFsdWF0ZWQgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBmb3IgYXJpdGhtZXRpYwogICAgZXZhbHVhdGlvbi4gIEVxdWl2YWxlbnQgdG8gImxldCBFWFBSRVNTSU9OIi4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIDEgaWYgRVhQUkVTU0lPTiBldmFsdWF0ZXMgdG8gMDsgcmV0dXJucyAwIG90aGVyd2lzZS4ARXZhbHVhdGUgYXJpdGhtZXRpYyBleHByZXNzaW9ucy4KICAgIAogICAgRXZhbHVhdGUgZWFjaCBBUkcgYXMgYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uLiAgRXZhbHVhdGlvbiBpcyBkb25lIGluCiAgICBmaXhlZC13aWR0aCBpbnRlZ2VycyB3aXRoIG5vIGNoZWNrIGZvciBvdmVyZmxvdywgdGhvdWdoIGRpdmlzaW9uIGJ5IDAKICAgIGlzIHRyYXBwZWQgYW5kIGZsYWdnZWQgYXMgYW4gZXJyb3IuICBUaGUgZm9sbG93aW5nIGxpc3Qgb2Ygb3BlcmF0b3JzIGlzCiAgICBncm91cGVkIGludG8gbGV2ZWxzIG9mIGVxdWFsLXByZWNlZGVuY2Ugb3BlcmF0b3JzLiAgVGhlIGxldmVscyBhcmUgbGlzdGVkCiAgICBpbiBvcmRlciBvZiBkZWNyZWFzaW5nIHByZWNlZGVuY2UuCiAgICAKICAgIAlpZCsrLCBpZC0tCXZhcmlhYmxlIHBvc3QtaW5jcmVtZW50LCBwb3N0LWRlY3JlbWVudAogICAgCSsraWQsIC0taWQJdmFyaWFibGUgcHJlLWluY3JlbWVudCwgcHJlLWRlY3JlbWVudAogICAgCS0sICsJCXVuYXJ5IG1pbnVzLCBwbHVzCiAgICAJISwgfgkJbG9naWNhbCBhbmQgYml0d2lzZSBuZWdhdGlvbgogICAgCSoqCQlleHBvbmVudGlhdGlvbgogICAgCSosIC8sICUJCW11bHRpcGxpY2F0aW9uLCBkaXZpc2lvbiwgcmVtYWluZGVyCiAgICAJKywgLQkJYWRkaXRpb24sIHN1YnRyYWN0aW9uCiAgICAJPDwsID4+CQlsZWZ0IGFuZCByaWdodCBiaXR3aXNlIHNoaWZ0cwogICAgCTw9LCA+PSwgPCwgPgljb21wYXJpc29uCiAgICAJPT0sICE9CQllcXVhbGl0eSwgaW5lcXVhbGl0eQogICAgCSYJCWJpdHdpc2UgQU5ECiAgICAJXgkJYml0d2lzZSBYT1IKICAgIAl8CQliaXR3aXNlIE9SCiAgICAJJiYJCWxvZ2ljYWwgQU5ECiAgICAJfHwJCWxvZ2ljYWwgT1IKICAgIAlleHByID8gZXhwciA6IGV4cHIKICAgIAkJCWNvbmRpdGlvbmFsIG9wZXJhdG9yCiAgICAJPSwgKj0sIC89LCAlPSwKICAgIAkrPSwgLT0sIDw8PSwgPj49LAogICAgCSY9LCBePSwgfD0JYXNzaWdubWVudAogICAgCiAgICBTaGVsbCB2YXJpYWJsZXMgYXJlIGFsbG93ZWQgYXMgb3BlcmFuZHMuICBUaGUgbmFtZSBvZiB0aGUgdmFyaWFibGUKICAgIGlzIHJlcGxhY2VkIGJ5IGl0cyB2YWx1ZSAoY29lcmNlZCB0byBhIGZpeGVkLXdpZHRoIGludGVnZXIpIHdpdGhpbgogICAgYW4gZXhwcmVzc2lvbi4gIFRoZSB2YXJpYWJsZSBuZWVkIG5vdCBoYXZlIGl0cyBpbnRlZ2VyIGF0dHJpYnV0ZQogICAgdHVybmVkIG9uIHRvIGJlIHVzZWQgaW4gYW4gZXhwcmVzc2lvbi4KICAgIAogICAgT3BlcmF0b3JzIGFyZSBldmFsdWF0ZWQgaW4gb3JkZXIgb2YgcHJlY2VkZW5jZS4gIFN1Yi1leHByZXNzaW9ucyBpbgogICAgcGFyZW50aGVzZXMgYXJlIGV2YWx1YXRlZCBmaXJzdCBhbmQgbWF5IG92ZXJyaWRlIHRoZSBwcmVjZWRlbmNlCiAgICBydWxlcyBhYm92ZS4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBJZiB0aGUgbGFzdCBBUkcgZXZhbHVhdGVzIHRvIDAsIGxldCByZXR1cm5zIDE7IGxldCByZXR1cm5zIDAgb3RoZXJ3aXNlLgBFdmFsdWF0ZSBjb25kaXRpb25hbCBleHByZXNzaW9uLgogICAgCiAgICBUaGlzIGlzIGEgc3lub255bSBmb3IgdGhlICJ0ZXN0IiBidWlsdGluLCBidXQgdGhlIGxhc3QgYXJndW1lbnQgbXVzdAogICAgYmUgYSBsaXRlcmFsIGBdJywgdG8gbWF0Y2ggdGhlIG9wZW5pbmcgYFsnLgBFeGVjdXRlIGEgc2ltcGxlIGNvbW1hbmQgb3IgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5kcy4KICAgIAogICAgUnVucyBDT01NQU5EIHdpdGggQVJHUyBzdXBwcmVzc2luZyAgc2hlbGwgZnVuY3Rpb24gbG9va3VwLCBvciBkaXNwbGF5CiAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIENPTU1BTkRzLiAgQ2FuIGJlIHVzZWQgdG8gaW52b2tlIGNvbW1hbmRzCiAgICBvbiBkaXNrIHdoZW4gYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUgZXhpc3RzLgogICAgCiAgICBPcHRpb25zOgogICAgICAtcAl1c2UgYSBkZWZhdWx0IHZhbHVlIGZvciBQQVRIIHRoYXQgaXMgZ3VhcmFudGVlZCB0byBmaW5kIGFsbCBvZgogICAgCXRoZSBzdGFuZGFyZCB1dGlsaXRpZXMKICAgICAgLXYJcHJpbnQgYSBkZXNjcmlwdGlvbiBvZiBDT01NQU5EIHNpbWlsYXIgdG8gdGhlIGB0eXBlJyBidWlsdGluCiAgICAgIC1WCXByaW50IGEgbW9yZSB2ZXJib3NlIGRlc2NyaXB0aW9uIG9mIGVhY2ggQ09NTUFORAogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgZXhpdCBzdGF0dXMgb2YgQ09NTUFORCwgb3IgZmFpbHVyZSBpZiBDT01NQU5EIGlzIG5vdCBmb3VuZC4ARXhlY3V0ZSBhcmd1bWVudHMgYXMgYSBzaGVsbCBjb21tYW5kLgogICAgCiAgICBDb21iaW5lIEFSR3MgaW50byBhIHNpbmdsZSBzdHJpbmcsIHVzZSB0aGUgcmVzdWx0IGFzIGlucHV0IHRvIHRoZSBzaGVsbCwKICAgIGFuZCBleGVjdXRlIHRoZSByZXN1bHRpbmcgY29tbWFuZHMuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyBleGl0IHN0YXR1cyBvZiBjb21tYW5kIG9yIHN1Y2Nlc3MgaWYgY29tbWFuZCBpcyBudWxsLgBFeGVjdXRlIGNvbW1hbmRzIGFzIGxvbmcgYXMgYSB0ZXN0IGRvZXMgbm90IHN1Y2NlZWQuCiAgICAKICAgIEV4cGFuZCBhbmQgZXhlY3V0ZSBDT01NQU5EUyBhcyBsb25nIGFzIHRoZSBmaW5hbCBjb21tYW5kIGluIHRoZQogICAgYHVudGlsJyBDT01NQU5EUyBoYXMgYW4gZXhpdCBzdGF0dXMgd2hpY2ggaXMgbm90IHplcm8uCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuAEV4ZWN1dGUgY29tbWFuZHMgYXMgbG9uZyBhcyBhIHRlc3Qgc3VjY2VlZHMuCiAgICAKICAgIEV4cGFuZCBhbmQgZXhlY3V0ZSBDT01NQU5EUyBhcyBsb25nIGFzIHRoZSBmaW5hbCBjb21tYW5kIGluIHRoZQogICAgYHdoaWxlJyBDT01NQU5EUyBoYXMgYW4gZXhpdCBzdGF0dXMgb2YgemVyby4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4ARXhlY3V0ZSBjb21tYW5kcyBiYXNlZCBvbiBjb25kaXRpb25hbC4KICAgIAogICAgVGhlIGBpZiBDT01NQU5EUycgbGlzdCBpcyBleGVjdXRlZC4gIElmIGl0cyBleGl0IHN0YXR1cyBpcyB6ZXJvLCB0aGVuIHRoZQogICAgYHRoZW4gQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQuICBPdGhlcndpc2UsIGVhY2ggYGVsaWYgQ09NTUFORFMnIGxpc3QgaXMKICAgIGV4ZWN1dGVkIGluIHR1cm4sIGFuZCBpZiBpdHMgZXhpdCBzdGF0dXMgaXMgemVybywgdGhlIGNvcnJlc3BvbmRpbmcKICAgIGB0aGVuIENPTU1BTkRTJyBsaXN0IGlzIGV4ZWN1dGVkIGFuZCB0aGUgaWYgY29tbWFuZCBjb21wbGV0ZXMuICBPdGhlcndpc2UsCiAgICB0aGUgYGVsc2UgQ09NTUFORFMnIGxpc3QgaXMgZXhlY3V0ZWQsIGlmIHByZXNlbnQuICBUaGUgZXhpdCBzdGF0dXMgb2YgdGhlCiAgICBlbnRpcmUgY29uc3RydWN0IGlzIHRoZSBleGl0IHN0YXR1cyBvZiB0aGUgbGFzdCBjb21tYW5kIGV4ZWN1dGVkLCBvciB6ZXJvCiAgICBpZiBubyBjb25kaXRpb24gdGVzdGVkIHRydWUuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuAEV4ZWN1dGUgY29tbWFuZHMgYmFzZWQgb24gcGF0dGVybiBtYXRjaGluZy4KICAgIAogICAgU2VsZWN0aXZlbHkgZXhlY3V0ZSBDT01NQU5EUyBiYXNlZCB1cG9uIFdPUkQgbWF0Y2hpbmcgUEFUVEVSTi4gIFRoZQogICAgYHwnIGlzIHVzZWQgdG8gc2VwYXJhdGUgbXVsdGlwbGUgcGF0dGVybnMuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuAEV4ZWN1dGUgY29tbWFuZHMgZm9yIGVhY2ggbWVtYmVyIGluIGEgbGlzdC4KICAgIAogICAgVGhlIGBmb3InIGxvb3AgZXhlY3V0ZXMgYSBzZXF1ZW5jZSBvZiBjb21tYW5kcyBmb3IgZWFjaCBtZW1iZXIgaW4gYQogICAgbGlzdCBvZiBpdGVtcy4gIElmIGBpbiBXT1JEUyAuLi47JyBpcyBub3QgcHJlc2VudCwgdGhlbiBgaW4gIiRAIicgaXMKICAgIGFzc3VtZWQuICBGb3IgZWFjaCBlbGVtZW50IGluIFdPUkRTLCBOQU1FIGlzIHNldCB0byB0aGF0IGVsZW1lbnQsIGFuZAogICAgdGhlIENPTU1BTkRTIGFyZSBleGVjdXRlZC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4ARXhlY3V0ZSBjb21tYW5kcyBmcm9tIGEgZmlsZSBpbiB0aGUgY3VycmVudCBzaGVsbC4KICAgIAogICAgUmVhZCBhbmQgZXhlY3V0ZSBjb21tYW5kcyBmcm9tIEZJTEVOQU1FIGluIHRoZSBjdXJyZW50IHNoZWxsLiAgVGhlCiAgICBlbnRyaWVzIGluICRQQVRIIGFyZSB1c2VkIHRvIGZpbmQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIEZJTEVOQU1FLgogICAgSWYgYW55IEFSR1VNRU5UUyBhcmUgc3VwcGxpZWQsIHRoZXkgYmVjb21lIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMKICAgIHdoZW4gRklMRU5BTUUgaXMgZXhlY3V0ZWQuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQgaW4gRklMRU5BTUU7IGZhaWxzIGlmCiAgICBGSUxFTkFNRSBjYW5ub3QgYmUgcmVhZC4ARXhlY3V0ZSBjb25kaXRpb25hbCBjb21tYW5kLgogICAgCiAgICBSZXR1cm5zIGEgc3RhdHVzIG9mIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIGV2YWx1YXRpb24gb2YgdGhlIGNvbmRpdGlvbmFsCiAgICBleHByZXNzaW9uIEVYUFJFU1NJT04uICBFeHByZXNzaW9ucyBhcmUgY29tcG9zZWQgb2YgdGhlIHNhbWUgcHJpbWFyaWVzIHVzZWQKICAgIGJ5IHRoZSBgdGVzdCcgYnVpbHRpbiwgYW5kIG1heSBiZSBjb21iaW5lZCB1c2luZyB0aGUgZm9sbG93aW5nIG9wZXJhdG9yczoKICAgIAogICAgICAoIEVYUFJFU1NJT04gKQlSZXR1cm5zIHRoZSB2YWx1ZSBvZiBFWFBSRVNTSU9OCiAgICAgICEgRVhQUkVTU0lPTgkJVHJ1ZSBpZiBFWFBSRVNTSU9OIGlzIGZhbHNlOyBlbHNlIGZhbHNlCiAgICAgIEVYUFIxICYmIEVYUFIyCVRydWUgaWYgYm90aCBFWFBSMSBhbmQgRVhQUjIgYXJlIHRydWU7IGVsc2UgZmFsc2UKICAgICAgRVhQUjEgfHwgRVhQUjIJVHJ1ZSBpZiBlaXRoZXIgRVhQUjEgb3IgRVhQUjIgaXMgdHJ1ZTsgZWxzZSBmYWxzZQogICAgCiAgICBXaGVuIHRoZSBgPT0nIGFuZCBgIT0nIG9wZXJhdG9ycyBhcmUgdXNlZCwgdGhlIHN0cmluZyB0byB0aGUgcmlnaHQgb2YKICAgIHRoZSBvcGVyYXRvciBpcyB1c2VkIGFzIGEgcGF0dGVybiBhbmQgcGF0dGVybiBtYXRjaGluZyBpcyBwZXJmb3JtZWQuCiAgICBXaGVuIHRoZSBgPX4nIG9wZXJhdG9yIGlzIHVzZWQsIHRoZSBzdHJpbmcgdG8gdGhlIHJpZ2h0IG9mIHRoZSBvcGVyYXRvcgogICAgaXMgbWF0Y2hlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAgIAogICAgVGhlICYmIGFuZCB8fCBvcGVyYXRvcnMgZG8gbm90IGV2YWx1YXRlIEVYUFIyIGlmIEVYUFIxIGlzIHN1ZmZpY2llbnQgdG8KICAgIGRldGVybWluZSB0aGUgZXhwcmVzc2lvbidzIHZhbHVlLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIDAgb3IgMSBkZXBlbmRpbmcgb24gdmFsdWUgb2YgRVhQUkVTU0lPTi4ARXhlY3V0ZSBzaGVsbCBidWlsdGlucy4KICAgIAogICAgRXhlY3V0ZSBTSEVMTC1CVUlMVElOIHdpdGggYXJndW1lbnRzIEFSR3Mgd2l0aG91dCBwZXJmb3JtaW5nIGNvbW1hbmQKICAgIGxvb2t1cC4gIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdpc2ggdG8gcmVpbXBsZW1lbnQgYSBzaGVsbCBidWlsdGluCiAgICBhcyBhIHNoZWxsIGZ1bmN0aW9uLCBidXQgbmVlZCB0byBleGVjdXRlIHRoZSBidWlsdGluIHdpdGhpbiB0aGUgZnVuY3Rpb24uCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgZXhpdCBzdGF0dXMgb2YgU0hFTEwtQlVJTFRJTiwgb3IgZmFsc2UgaWYgU0hFTEwtQlVJTFRJTiBpcwogICAgbm90IGEgc2hlbGwgYnVpbHRpbi4uAEV4aXQgJWQARXhpdCBhIGxvZ2luIHNoZWxsLgogICAgCiAgICBFeGl0cyBhIGxvZ2luIHNoZWxsIHdpdGggZXhpdCBzdGF0dXMgTi4gIFJldHVybnMgYW4gZXJyb3IgaWYgbm90IGV4ZWN1dGVkCiAgICBpbiBhIGxvZ2luIHNoZWxsLgBFeGl0IGZvciwgd2hpbGUsIG9yIHVudGlsIGxvb3BzLgogICAgCiAgICBFeGl0IGEgRk9SLCBXSElMRSBvciBVTlRJTCBsb29wLiAgSWYgTiBpcyBzcGVjaWZpZWQsIGJyZWFrIE4gZW5jbG9zaW5nCiAgICBsb29wcy4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBUaGUgZXhpdCBzdGF0dXMgaXMgMCB1bmxlc3MgTiBpcyBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEuAEV4aXQgdGhlIHNoZWxsLgogICAgCiAgICBFeGl0cyB0aGUgc2hlbGwgd2l0aCBhIHN0YXR1cyBvZiBOLiAgSWYgTiBpcyBvbWl0dGVkLCB0aGUgZXhpdCBzdGF0dXMKICAgIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4ARmlsZSBsaW1pdABGbG9hdGluZyBwb2ludCBleGNlcHRpb24AR05VIGJhc2gsIHZlcnNpb24gJXMgKCVzKQoAR05VIGJhc2gsIHZlcnNpb24gJXMtKCVzKQoAR05VIGxvbmcgb3B0aW9uczoKAEdyb3VwIGNvbW1hbmRzIGFzIGEgdW5pdC4KICAgIAogICAgUnVuIGEgc2V0IG9mIGNvbW1hbmRzIGluIGEgZ3JvdXAuICBUaGlzIGlzIG9uZSB3YXkgdG8gcmVkaXJlY3QgYW4KICAgIGVudGlyZSBzZXQgb2YgY29tbWFuZHMuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZXhlY3V0ZWQuAEhGVCBpbnB1dCBkYXRhIHBlbmRpbmcASEZUIG1vbml0b3IgbW9kZSBncmFudGVkAEhGVCBtb25pdG9yIG1vZGUgcmV0cmFjdGVkAEhGVCBzb3VuZCBzZXF1ZW5jZSBoYXMgY29tcGxldGVkAEhPTUUgbm90IHNldABIYW5ndXAASSBoYXZlIG5vIG5hbWUhAEkvTyByZWFkeQBJbGxlZ2FsIGluc3RydWN0aW9uAEluZm9ybWF0aW9uIHJlcXVlc3QASW50ZXJydXB0AEtpbGxlZABMaWNlbnNlIEdQTHYzKzogR05VIEdQTCB2ZXJzaW9uIDMgb3IgbGF0ZXIgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPgoATW9kaWZ5IG9yIGRpc3BsYXkgY29tcGxldGlvbiBvcHRpb25zLgogICAgCiAgICBNb2RpZnkgdGhlIGNvbXBsZXRpb24gb3B0aW9ucyBmb3IgZWFjaCBOQU1FLCBvciwgaWYgbm8gTkFNRXMgYXJlIHN1cHBsaWVkLAogICAgdGhlIGNvbXBsZXRpb24gY3VycmVudGx5IGJlaW5nIGV4ZWN1dGVkLiAgSWYgbm8gT1BUSU9OcyBhcmUgZ2l2ZW4sIHByaW50CiAgICB0aGUgY29tcGxldGlvbiBvcHRpb25zIGZvciBlYWNoIE5BTUUgb3IgdGhlIGN1cnJlbnQgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9uLgogICAgCiAgICBPcHRpb25zOgogICAgCS1vIG9wdGlvbglTZXQgY29tcGxldGlvbiBvcHRpb24gT1BUSU9OIGZvciBlYWNoIE5BTUUKICAgIAktRAkJQ2hhbmdlIG9wdGlvbnMgZm9yIHRoZSAiZGVmYXVsdCIgY29tbWFuZCBjb21wbGV0aW9uCiAgICAJLUUJCUNoYW5nZSBvcHRpb25zIGZvciB0aGUgImVtcHR5IiBjb21tYW5kIGNvbXBsZXRpb24KICAgIAogICAgVXNpbmcgYCtvJyBpbnN0ZWFkIG9mIGAtbycgdHVybnMgb2ZmIHRoZSBzcGVjaWZpZWQgb3B0aW9uLgogICAgCiAgICBBcmd1bWVudHM6CiAgICAKICAgIEVhY2ggTkFNRSByZWZlcnMgdG8gYSBjb21tYW5kIGZvciB3aGljaCBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBtdXN0CiAgICBoYXZlIHByZXZpb3VzbHkgYmVlbiBkZWZpbmVkIHVzaW5nIHRoZSBgY29tcGxldGUnIGJ1aWx0aW4uICBJZiBubyBOQU1FcwogICAgYXJlIHN1cHBsaWVkLCBjb21wb3B0IG11c3QgYmUgY2FsbGVkIGJ5IGEgZnVuY3Rpb24gY3VycmVudGx5IGdlbmVyYXRpbmcKICAgIGNvbXBsZXRpb25zLCBhbmQgdGhlIG9wdGlvbnMgZm9yIHRoYXQgY3VycmVudGx5LWV4ZWN1dGluZyBjb21wbGV0aW9uCiAgICBnZW5lcmF0b3IgYXJlIG1vZGlmaWVkLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgc3VwcGxpZWQgb3IgTkFNRSBkb2VzIG5vdAogICAgaGF2ZSBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBkZWZpbmVkLgBNb3ZlIGpvYiB0byB0aGUgZm9yZWdyb3VuZC4KICAgIAogICAgUGxhY2UgdGhlIGpvYiBpZGVudGlmaWVkIGJ5IEpPQl9TUEVDIGluIHRoZSBmb3JlZ3JvdW5kLCBtYWtpbmcgaXQgdGhlCiAgICBjdXJyZW50IGpvYi4gIElmIEpPQl9TUEVDIGlzIG5vdCBwcmVzZW50LCB0aGUgc2hlbGwncyBub3Rpb24gb2YgdGhlCiAgICBjdXJyZW50IGpvYiBpcyB1c2VkLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFN0YXR1cyBvZiBjb21tYW5kIHBsYWNlZCBpbiBmb3JlZ3JvdW5kLCBvciBmYWlsdXJlIGlmIGFuIGVycm9yIG9jY3Vycy4ATW92ZSBqb2JzIHRvIHRoZSBiYWNrZ3JvdW5kLgogICAgCiAgICBQbGFjZSB0aGUgam9icyBpZGVudGlmaWVkIGJ5IGVhY2ggSk9CX1NQRUMgaW4gdGhlIGJhY2tncm91bmQsIGFzIGlmIHRoZXkKICAgIGhhZCBiZWVuIHN0YXJ0ZWQgd2l0aCBgJicuICBJZiBKT0JfU1BFQyBpcyBub3QgcHJlc2VudCwgdGhlIHNoZWxsJ3Mgbm90aW9uCiAgICBvZiB0aGUgY3VycmVudCBqb2IgaXMgdXNlZC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgdW5sZXNzIGpvYiBjb250cm9sIGlzIG5vdCBlbmFibGVkIG9yIGFuIGVycm9yIG9jY3Vycy4ATnVsbCBjb21tYW5kLgogICAgCiAgICBObyBlZmZlY3Q7IHRoZSBjb21tYW5kIGRvZXMgbm90aGluZy4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBBbHdheXMgc3VjY2VlZHMuAE9MRFBXRCBub3Qgc2V0AFBhcnNlIG9wdGlvbiBhcmd1bWVudHMuCiAgICAKICAgIEdldG9wdHMgaXMgdXNlZCBieSBzaGVsbCBwcm9jZWR1cmVzIHRvIHBhcnNlIHBvc2l0aW9uYWwgcGFyYW1ldGVycwogICAgYXMgb3B0aW9ucy4KICAgIAogICAgT1BUU1RSSU5HIGNvbnRhaW5zIHRoZSBvcHRpb24gbGV0dGVycyB0byBiZSByZWNvZ25pemVkOyBpZiBhIGxldHRlcgogICAgaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiwgdGhlIG9wdGlvbiBpcyBleHBlY3RlZCB0byBoYXZlIGFuIGFyZ3VtZW50LAogICAgd2hpY2ggc2hvdWxkIGJlIHNlcGFyYXRlZCBmcm9tIGl0IGJ5IHdoaXRlIHNwYWNlLgogICAgCiAgICBFYWNoIHRpbWUgaXQgaXMgaW52b2tlZCwgZ2V0b3B0cyB3aWxsIHBsYWNlIHRoZSBuZXh0IG9wdGlvbiBpbiB0aGUKICAgIHNoZWxsIHZhcmlhYmxlICRuYW1lLCBpbml0aWFsaXppbmcgbmFtZSBpZiBpdCBkb2VzIG5vdCBleGlzdCwgYW5kCiAgICB0aGUgaW5kZXggb2YgdGhlIG5leHQgYXJndW1lbnQgdG8gYmUgcHJvY2Vzc2VkIGludG8gdGhlIHNoZWxsCiAgICB2YXJpYWJsZSBPUFRJTkQuICBPUFRJTkQgaXMgaW5pdGlhbGl6ZWQgdG8gMSBlYWNoIHRpbWUgdGhlIHNoZWxsIG9yCiAgICBhIHNoZWxsIHNjcmlwdCBpcyBpbnZva2VkLiAgV2hlbiBhbiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQsCiAgICBnZXRvcHRzIHBsYWNlcyB0aGF0IGFyZ3VtZW50IGludG8gdGhlIHNoZWxsIHZhcmlhYmxlIE9QVEFSRy4KICAgIAogICAgZ2V0b3B0cyByZXBvcnRzIGVycm9ycyBpbiBvbmUgb2YgdHdvIHdheXMuICBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyCiAgICBvZiBPUFRTVFJJTkcgaXMgYSBjb2xvbiwgZ2V0b3B0cyB1c2VzIHNpbGVudCBlcnJvciByZXBvcnRpbmcuICBJbgogICAgdGhpcyBtb2RlLCBubyBlcnJvciBtZXNzYWdlcyBhcmUgcHJpbnRlZC4gIElmIGFuIGludmFsaWQgb3B0aW9uIGlzCiAgICBzZWVuLCBnZXRvcHRzIHBsYWNlcyB0aGUgb3B0aW9uIGNoYXJhY3RlciBmb3VuZCBpbnRvIE9QVEFSRy4gIElmIGEKICAgIHJlcXVpcmVkIGFyZ3VtZW50IGlzIG5vdCBmb3VuZCwgZ2V0b3B0cyBwbGFjZXMgYSAnOicgaW50byBOQU1FIGFuZAogICAgc2V0cyBPUFRBUkcgdG8gdGhlIG9wdGlvbiBjaGFyYWN0ZXIgZm91bmQuICBJZiBnZXRvcHRzIGlzIG5vdCBpbgogICAgc2lsZW50IG1vZGUsIGFuZCBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzZWVuLCBnZXRvcHRzIHBsYWNlcyAnPycgaW50bwogICAgTkFNRSBhbmQgdW5zZXRzIE9QVEFSRy4gIElmIGEgcmVxdWlyZWQgYXJndW1lbnQgaXMgbm90IGZvdW5kLCBhICc/JwogICAgaXMgcGxhY2VkIGluIE5BTUUsIE9QVEFSRyBpcyB1bnNldCwgYW5kIGEgZGlhZ25vc3RpYyBtZXNzYWdlIGlzCiAgICBwcmludGVkLgogICAgCiAgICBJZiB0aGUgc2hlbGwgdmFyaWFibGUgT1BURVJSIGhhcyB0aGUgdmFsdWUgMCwgZ2V0b3B0cyBkaXNhYmxlcyB0aGUKICAgIHByaW50aW5nIG9mIGVycm9yIG1lc3NhZ2VzLCBldmVuIGlmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YKICAgIE9QVFNUUklORyBpcyBub3QgYSBjb2xvbi4gIE9QVEVSUiBoYXMgdGhlIHZhbHVlIDEgYnkgZGVmYXVsdC4KICAgIAogICAgR2V0b3B0cyBub3JtYWxseSBwYXJzZXMgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyAoJDAgLSAkOSksIGJ1dCBpZgogICAgbW9yZSBhcmd1bWVudHMgYXJlIGdpdmVuLCB0aGV5IGFyZSBwYXJzZWQgaW5zdGVhZC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHN1Y2Nlc3MgaWYgYW4gb3B0aW9uIGlzIGZvdW5kOyBmYWlscyBpZiB0aGUgZW5kIG9mIG9wdGlvbnMgaXMKICAgIGVuY291bnRlcmVkIG9yIGFuIGVycm9yIG9jY3Vycy4AUHJpbnQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1MCXByaW50IHRoZSB2YWx1ZSBvZiAkUFdEIGlmIGl0IG5hbWVzIHRoZSBjdXJyZW50IHdvcmtpbmcKICAgIAlkaXJlY3RvcnkKICAgICAgLVAJcHJpbnQgdGhlIHBoeXNpY2FsIGRpcmVjdG9yeSwgd2l0aG91dCBhbnkgc3ltYm9saWMgbGlua3MKICAgIAogICAgQnkgZGVmYXVsdCwgYHB3ZCcgYmVoYXZlcyBhcyBpZiBgLUwnIHdlcmUgc3BlY2lmaWVkLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgMCB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgdGhlIGN1cnJlbnQgZGlyZWN0b3J5CiAgICBjYW5ub3QgYmUgcmVhZC4AUXVpdABSZWFkIGxpbmVzIGZyb20gYSBmaWxlIGludG8gYW4gYXJyYXkgdmFyaWFibGUuCiAgICAKICAgIEEgc3lub255bSBmb3IgYG1hcGZpbGUnLgBSZWFkIGxpbmVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IGludG8gYW4gaW5kZXhlZCBhcnJheSB2YXJpYWJsZS4KICAgIAogICAgUmVhZCBsaW5lcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCBpbnRvIHRoZSBpbmRleGVkIGFycmF5IHZhcmlhYmxlIEFSUkFZLCBvcgogICAgZnJvbSBmaWxlIGRlc2NyaXB0b3IgRkQgaWYgdGhlIC11IG9wdGlvbiBpcyBzdXBwbGllZC4gIFRoZSB2YXJpYWJsZSBNQVBGSUxFCiAgICBpcyB0aGUgZGVmYXVsdCBBUlJBWS4KICAgIAogICAgT3B0aW9uczoKICAgICAgLW4gY291bnQJQ29weSBhdCBtb3N0IENPVU5UIGxpbmVzLiAgSWYgQ09VTlQgaXMgMCwgYWxsIGxpbmVzIGFyZSBjb3BpZWQuCiAgICAgIC1PIG9yaWdpbglCZWdpbiBhc3NpZ25pbmcgdG8gQVJSQVkgYXQgaW5kZXggT1JJR0lOLiAgVGhlIGRlZmF1bHQgaW5kZXggaXMgMC4KICAgICAgLXMgY291bnQgCURpc2NhcmQgdGhlIGZpcnN0IENPVU5UIGxpbmVzIHJlYWQuCiAgICAgIC10CQlSZW1vdmUgYSB0cmFpbGluZyBuZXdsaW5lIGZyb20gZWFjaCBsaW5lIHJlYWQuCiAgICAgIC11IGZkCQlSZWFkIGxpbmVzIGZyb20gZmlsZSBkZXNjcmlwdG9yIEZEIGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIGlucHV0LgogICAgICAtQyBjYWxsYmFjawlFdmFsdWF0ZSBDQUxMQkFDSyBlYWNoIHRpbWUgUVVBTlRVTSBsaW5lcyBhcmUgcmVhZC4KICAgICAgLWMgcXVhbnR1bQlTcGVjaWZ5IHRoZSBudW1iZXIgb2YgbGluZXMgcmVhZCBiZXR3ZWVuIGVhY2ggY2FsbCB0byBDQUxMQkFDSy4KICAgIAogICAgQXJndW1lbnRzOgogICAgICBBUlJBWQkJQXJyYXkgdmFyaWFibGUgbmFtZSB0byB1c2UgZm9yIGZpbGUgZGF0YS4KICAgIAogICAgSWYgLUMgaXMgc3VwcGxpZWQgd2l0aG91dCAtYywgdGhlIGRlZmF1bHQgcXVhbnR1bSBpcyA1MDAwLiAgV2hlbgogICAgQ0FMTEJBQ0sgaXMgZXZhbHVhdGVkLCBpdCBpcyBzdXBwbGllZCB0aGUgaW5kZXggb2YgdGhlIG5leHQgYXJyYXkKICAgIGVsZW1lbnQgdG8gYmUgYXNzaWduZWQgYW5kIHRoZSBsaW5lIHRvIGJlIGFzc2lnbmVkIHRvIHRoYXQgZWxlbWVudAogICAgYXMgYWRkaXRpb25hbCBhcmd1bWVudHMuCiAgICAKICAgIElmIG5vdCBzdXBwbGllZCB3aXRoIGFuIGV4cGxpY2l0IG9yaWdpbiwgbWFwZmlsZSB3aWxsIGNsZWFyIEFSUkFZIGJlZm9yZQogICAgYXNzaWduaW5nIHRvIGl0LgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgQVJSQVkgaXMgcmVhZG9ubHkgb3IKICAgIG5vdCBhbiBpbmRleGVkIGFycmF5LgBSZWNvcmQgbG9jawBSZW1vdmUgZGlyZWN0b3JpZXMgZnJvbSBzdGFjay4KICAgIAogICAgUmVtb3ZlcyBlbnRyaWVzIGZyb20gdGhlIGRpcmVjdG9yeSBzdGFjay4gIFdpdGggbm8gYXJndW1lbnRzLCByZW1vdmVzCiAgICB0aGUgdG9wIGRpcmVjdG9yeSBmcm9tIHRoZSBzdGFjaywgYW5kIGNoYW5nZXMgdG8gdGhlIG5ldyB0b3AgZGlyZWN0b3J5LgogICAgCiAgICBPcHRpb25zOgogICAgICAtbglTdXBwcmVzc2VzIHRoZSBub3JtYWwgY2hhbmdlIG9mIGRpcmVjdG9yeSB3aGVuIHJlbW92aW5nCiAgICAJZGlyZWN0b3JpZXMgZnJvbSB0aGUgc3RhY2ssIHNvIG9ubHkgdGhlIHN0YWNrIGlzIG1hbmlwdWxhdGVkLgogICAgCiAgICBBcmd1bWVudHM6CiAgICAgICtOCVJlbW92ZXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0CiAgICAJc2hvd24gYnkgYGRpcnMnLCBzdGFydGluZyB3aXRoIHplcm8uICBGb3IgZXhhbXBsZTogYHBvcGQgKzAnCiAgICAJcmVtb3ZlcyB0aGUgZmlyc3QgZGlyZWN0b3J5LCBgcG9wZCArMScgdGhlIHNlY29uZC4KICAgIAogICAgICAtTglSZW1vdmVzIHRoZSBOdGggZW50cnkgY291bnRpbmcgZnJvbSB0aGUgcmlnaHQgb2YgdGhlIGxpc3QKICAgIAlzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCAtMCcKICAgIAlyZW1vdmVzIHRoZSBsYXN0IGRpcmVjdG9yeSwgYHBvcGQgLTEnIHRoZSBuZXh0IHRvIGxhc3QuCiAgICAKICAgIFRoZSBgZGlycycgYnVpbHRpbiBkaXNwbGF5cyB0aGUgZGlyZWN0b3J5IHN0YWNrLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBhcmd1bWVudCBpcyBzdXBwbGllZCBvciB0aGUgZGlyZWN0b3J5CiAgICBjaGFuZ2UgZmFpbHMuAFJlbW92ZSBlYWNoIE5BTUUgZnJvbSB0aGUgbGlzdCBvZiBkZWZpbmVkIGFsaWFzZXMuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1hCXJlbW92ZSBhbGwgYWxpYXMgZGVmaW5pdGlvbnMuCiAgICAKICAgIFJldHVybiBzdWNjZXNzIHVubGVzcyBhIE5BTUUgaXMgbm90IGFuIGV4aXN0aW5nIGFsaWFzLgBSZW1vdmUgam9icyBmcm9tIGN1cnJlbnQgc2hlbGwuCiAgICAKICAgIFJlbW92ZXMgZWFjaCBKT0JTUEVDIGFyZ3VtZW50IGZyb20gdGhlIHRhYmxlIG9mIGFjdGl2ZSBqb2JzLiAgV2l0aG91dAogICAgYW55IEpPQlNQRUNzLCB0aGUgc2hlbGwgdXNlcyBpdHMgbm90aW9uIG9mIHRoZSBjdXJyZW50IGpvYi4KICAgIAogICAgT3B0aW9uczoKICAgICAgLWEJcmVtb3ZlIGFsbCBqb2JzIGlmIEpPQlNQRUMgaXMgbm90IHN1cHBsaWVkCiAgICAgIC1oCW1hcmsgZWFjaCBKT0JTUEVDIHNvIHRoYXQgU0lHSFVQIGlzIG5vdCBzZW50IHRvIHRoZSBqb2IgaWYgdGhlCiAgICAJc2hlbGwgcmVjZWl2ZXMgYSBTSUdIVVAKICAgICAgLXIJcmVtb3ZlIG9ubHkgcnVubmluZyBqb2JzCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBvciBKT0JTUEVDIGlzIGdpdmVuLgBSZW1vdmVzIGVudHJpZXMgZnJvbSB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgV2l0aCBubyBhcmd1bWVudHMsIHJlbW92ZXMKICAgIHRoZSB0b3AgZGlyZWN0b3J5IGZyb20gdGhlIHN0YWNrLCBhbmQgY2hhbmdlcyB0byB0aGUgbmV3IHRvcCBkaXJlY3RvcnkuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1uCVN1cHByZXNzZXMgdGhlIG5vcm1hbCBjaGFuZ2Ugb2YgZGlyZWN0b3J5IHdoZW4gcmVtb3ZpbmcKICAgIAlkaXJlY3RvcmllcyBmcm9tIHRoZSBzdGFjaywgc28gb25seSB0aGUgc3RhY2sgaXMgbWFuaXB1bGF0ZWQuCiAgICAKICAgIEFyZ3VtZW50czoKICAgICAgK04JUmVtb3ZlcyB0aGUgTnRoIGVudHJ5IGNvdW50aW5nIGZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3QKICAgIAlzaG93biBieSBgZGlycycsIHN0YXJ0aW5nIHdpdGggemVyby4gIEZvciBleGFtcGxlOiBgcG9wZCArMCcKICAgIAlyZW1vdmVzIHRoZSBmaXJzdCBkaXJlY3RvcnksIGBwb3BkICsxJyB0aGUgc2Vjb25kLgogICAgCiAgICAgIC1OCVJlbW92ZXMgdGhlIE50aCBlbnRyeSBjb3VudGluZyBmcm9tIHRoZSByaWdodCBvZiB0aGUgbGlzdAogICAgCXNob3duIGJ5IGBkaXJzJywgc3RhcnRpbmcgd2l0aCB6ZXJvLiAgRm9yIGV4YW1wbGU6IGBwb3BkIC0wJwogICAgCXJlbW92ZXMgdGhlIGxhc3QgZGlyZWN0b3J5LCBgcG9wZCAtMScgdGhlIG5leHQgdG8gbGFzdC4KICAgIAogICAgVGhlIGBkaXJzJyBidWlsdGluIGRpc3BsYXlzIHRoZSBkaXJlY3Rvcnkgc3RhY2suAFJlcGxhY2UgdGhlIHNoZWxsIHdpdGggdGhlIGdpdmVuIGNvbW1hbmQuCiAgICAKICAgIEV4ZWN1dGUgQ09NTUFORCwgcmVwbGFjaW5nIHRoaXMgc2hlbGwgd2l0aCB0aGUgc3BlY2lmaWVkIHByb2dyYW0uCiAgICBBUkdVTUVOVFMgYmVjb21lIHRoZSBhcmd1bWVudHMgdG8gQ09NTUFORC4gIElmIENPTU1BTkQgaXMgbm90IHNwZWNpZmllZCwKICAgIGFueSByZWRpcmVjdGlvbnMgdGFrZSBlZmZlY3QgaW4gdGhlIGN1cnJlbnQgc2hlbGwuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1hIG5hbWUJcGFzcyBOQU1FIGFzIHRoZSB6ZXJvdGggYXJndW1lbnQgdG8gQ09NTUFORAogICAgICAtYwkJZXhlY3V0ZSBDT01NQU5EIHdpdGggYW4gZW1wdHkgZW52aXJvbm1lbnQKICAgICAgLWwJCXBsYWNlIGEgZGFzaCBpbiB0aGUgemVyb3RoIGFyZ3VtZW50IHRvIENPTU1BTkQKICAgIAogICAgSWYgdGhlIGNvbW1hbmQgY2Fubm90IGJlIGV4ZWN1dGVkLCBhIG5vbi1pbnRlcmFjdGl2ZSBzaGVsbCBleGl0cywgdW5sZXNzCiAgICB0aGUgc2hlbGwgb3B0aW9uIGBleGVjZmFpbCcgaXMgc2V0LgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgQ09NTUFORCBpcyBub3QgZm91bmQgb3IgYSByZWRpcmVjdGlvbiBlcnJvciBvY2N1cnMuAFJlcG9ydCB0aW1lIGNvbnN1bWVkIGJ5IHBpcGVsaW5lJ3MgZXhlY3V0aW9uLgogICAgCiAgICBFeGVjdXRlIFBJUEVMSU5FIGFuZCBwcmludCBhIHN1bW1hcnkgb2YgdGhlIHJlYWwgdGltZSwgdXNlciBDUFUgdGltZSwKICAgIGFuZCBzeXN0ZW0gQ1BVIHRpbWUgc3BlbnQgZXhlY3V0aW5nIFBJUEVMSU5FIHdoZW4gaXQgdGVybWluYXRlcy4KICAgIAogICAgT3B0aW9uczoKICAgICAgLXAJcHJpbnQgdGhlIHRpbWluZyBzdW1tYXJ5IGluIHRoZSBwb3J0YWJsZSBQb3NpeCBmb3JtYXQKICAgIAogICAgVGhlIHZhbHVlIG9mIHRoZSBUSU1FRk9STUFUIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIG91dHB1dCBmb3JtYXQuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgVGhlIHJldHVybiBzdGF0dXMgaXMgdGhlIHJldHVybiBzdGF0dXMgb2YgUElQRUxJTkUuAFJlc3VtZSBmb3IsIHdoaWxlLCBvciB1bnRpbCBsb29wcy4KICAgIAogICAgUmVzdW1lcyB0aGUgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGVuY2xvc2luZyBGT1IsIFdISUxFIG9yIFVOVElMIGxvb3AuCiAgICBJZiBOIGlzIHNwZWNpZmllZCwgcmVzdW1lcyB0aGUgTnRoIGVuY2xvc2luZyBsb29wLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFRoZSBleGl0IHN0YXR1cyBpcyAwIHVubGVzcyBOIGlzIG5vdCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4AUmVzdW1lIGpvYiBpbiBmb3JlZ3JvdW5kLgogICAgCiAgICBFcXVpdmFsZW50IHRvIHRoZSBKT0JfU1BFQyBhcmd1bWVudCB0byB0aGUgYGZnJyBjb21tYW5kLiAgUmVzdW1lIGEKICAgIHN0b3BwZWQgb3IgYmFja2dyb3VuZCBqb2IuICBKT0JfU1BFQyBjYW4gc3BlY2lmeSBlaXRoZXIgYSBqb2IgbmFtZQogICAgb3IgYSBqb2IgbnVtYmVyLiAgRm9sbG93aW5nIEpPQl9TUEVDIHdpdGggYSBgJicgcGxhY2VzIHRoZSBqb2IgaW4KICAgIHRoZSBiYWNrZ3JvdW5kLCBhcyBpZiB0aGUgam9iIHNwZWNpZmljYXRpb24gaGFkIGJlZW4gc3VwcGxpZWQgYXMgYW4KICAgIGFyZ3VtZW50IHRvIGBiZycuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSByZXN1bWVkIGpvYi4AUmV0dXJuIGEgc3VjY2Vzc2Z1bCByZXN1bHQuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgQWx3YXlzIHN1Y2NlZWRzLgBSZXR1cm4gYW4gdW5zdWNjZXNzZnVsIHJlc3VsdC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBBbHdheXMgZmFpbHMuAFJldHVybiBmcm9tIGEgc2hlbGwgZnVuY3Rpb24uCiAgICAKICAgIENhdXNlcyBhIGZ1bmN0aW9uIG9yIHNvdXJjZWQgc2NyaXB0IHRvIGV4aXQgd2l0aCB0aGUgcmV0dXJuIHZhbHVlCiAgICBzcGVjaWZpZWQgYnkgTi4gIElmIE4gaXMgb21pdHRlZCwgdGhlIHJldHVybiBzdGF0dXMgaXMgdGhhdCBvZiB0aGUKICAgIGxhc3QgY29tbWFuZCBleGVjdXRlZCB3aXRoaW4gdGhlIGZ1bmN0aW9uIG9yIHNjcmlwdC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIE4sIG9yIGZhaWx1cmUgaWYgdGhlIHNoZWxsIGlzIG5vdCBleGVjdXRpbmcgYSBmdW5jdGlvbiBvciBzY3JpcHQuAFJldHVybiB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBzdWJyb3V0aW5lIGNhbGwuCiAgICAKICAgIFdpdGhvdXQgRVhQUiwgcmV0dXJucyAiJGxpbmUgJGZpbGVuYW1lIi4gIFdpdGggRVhQUiwgcmV0dXJucwogICAgIiRsaW5lICRzdWJyb3V0aW5lICRmaWxlbmFtZSI7IHRoaXMgZXh0cmEgaW5mb3JtYXRpb24gY2FuIGJlIHVzZWQgdG8KICAgIHByb3ZpZGUgYSBzdGFjayB0cmFjZS4KICAgIAogICAgVGhlIHZhbHVlIG9mIEVYUFIgaW5kaWNhdGVzIGhvdyBtYW55IGNhbGwgZnJhbWVzIHRvIGdvIGJhY2sgYmVmb3JlIHRoZQogICAgY3VycmVudCBvbmU7IHRoZSB0b3AgZnJhbWUgaXMgZnJhbWUgMC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIDAgdW5sZXNzIHRoZSBzaGVsbCBpcyBub3QgZXhlY3V0aW5nIGEgc2hlbGwgZnVuY3Rpb24gb3IgRVhQUgogICAgaXMgaW52YWxpZC4AUmV0dXJucyB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBzdWJyb3V0aW5lIGNhbGwuCiAgICAKICAgIFdpdGhvdXQgRVhQUiwgcmV0dXJucyAAUnVubmluZwBTZWdtZW50YXRpb24gZmF1bHQAU2VsZWN0IHdvcmRzIGZyb20gYSBsaXN0IGFuZCBleGVjdXRlIGNvbW1hbmRzLgogICAgCiAgICBUaGUgV09SRFMgYXJlIGV4cGFuZGVkLCBnZW5lcmF0aW5nIGEgbGlzdCBvZiB3b3Jkcy4gIFRoZQogICAgc2V0IG9mIGV4cGFuZGVkIHdvcmRzIGlzIHByaW50ZWQgb24gdGhlIHN0YW5kYXJkIGVycm9yLCBlYWNoCiAgICBwcmVjZWRlZCBieSBhIG51bWJlci4gIElmIGBpbiBXT1JEUycgaXMgbm90IHByZXNlbnQsIGBpbiAiJEAiJwogICAgaXMgYXNzdW1lZC4gIFRoZSBQUzMgcHJvbXB0IGlzIHRoZW4gZGlzcGxheWVkIGFuZCBhIGxpbmUgcmVhZAogICAgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQuICBJZiB0aGUgbGluZSBjb25zaXN0cyBvZiB0aGUgbnVtYmVyCiAgICBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgZGlzcGxheWVkIHdvcmRzLCB0aGVuIE5BTUUgaXMgc2V0CiAgICB0byB0aGF0IHdvcmQuICBJZiB0aGUgbGluZSBpcyBlbXB0eSwgV09SRFMgYW5kIHRoZSBwcm9tcHQgYXJlCiAgICByZWRpc3BsYXllZC4gIElmIEVPRiBpcyByZWFkLCB0aGUgY29tbWFuZCBjb21wbGV0ZXMuICBBbnkgb3RoZXIKICAgIHZhbHVlIHJlYWQgY2F1c2VzIE5BTUUgdG8gYmUgc2V0IHRvIG51bGwuICBUaGUgbGluZSByZWFkIGlzIHNhdmVkCiAgICBpbiB0aGUgdmFyaWFibGUgUkVQTFkuICBDT01NQU5EUyBhcmUgZXhlY3V0ZWQgYWZ0ZXIgZWFjaCBzZWxlY3Rpb24KICAgIHVudGlsIGEgYnJlYWsgY29tbWFuZCBpcyBleGVjdXRlZC4KICAgIAogICAgRXhpdCBTdGF0dXM6CiAgICBSZXR1cm5zIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4AU2VuZCBhIHNpZ25hbCB0byBhIGpvYi4KICAgIAogICAgU2VuZCB0aGUgcHJvY2Vzc2VzIGlkZW50aWZpZWQgYnkgUElEIG9yIEpPQlNQRUMgdGhlIHNpZ25hbCBuYW1lZCBieQogICAgU0lHU1BFQyBvciBTSUdOVU0uICBJZiBuZWl0aGVyIFNJR1NQRUMgbm9yIFNJR05VTSBpcyBwcmVzZW50LCB0aGVuCiAgICBTSUdURVJNIGlzIGFzc3VtZWQuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1zIHNpZwlTSUcgaXMgYSBzaWduYWwgbmFtZQogICAgICAtbiBzaWcJU0lHIGlzIGEgc2lnbmFsIG51bWJlcgogICAgICAtbAlsaXN0IHRoZSBzaWduYWwgbmFtZXM7IGlmIGFyZ3VtZW50cyBmb2xsb3cgYC1sJyB0aGV5IGFyZQogICAgCWFzc3VtZWQgdG8gYmUgc2lnbmFsIG51bWJlcnMgZm9yIHdoaWNoIG5hbWVzIHNob3VsZCBiZSBsaXN0ZWQKICAgIAogICAgS2lsbCBpcyBhIHNoZWxsIGJ1aWx0aW4gZm9yIHR3byByZWFzb25zOiBpdCBhbGxvd3Mgam9iIElEcyB0byBiZSB1c2VkCiAgICBpbnN0ZWFkIG9mIHByb2Nlc3MgSURzLCBhbmQgYWxsb3dzIHByb2Nlc3NlcyB0byBiZSBraWxsZWQgaWYgdGhlIGxpbWl0CiAgICBvbiBwcm9jZXNzZXMgdGhhdCB5b3UgY2FuIGNyZWF0ZSBpcyByZWFjaGVkLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgYW4gZXJyb3Igb2NjdXJzLgBTZXQgYW5kIHVuc2V0IHNoZWxsIG9wdGlvbnMuCiAgICAKICAgIENoYW5nZSB0aGUgc2V0dGluZyBvZiBlYWNoIHNoZWxsIG9wdGlvbiBPUFROQU1FLiAgV2l0aG91dCBhbnkgb3B0aW9uCiAgICBhcmd1bWVudHMsIGxpc3QgYWxsIHNoZWxsIG9wdGlvbnMgd2l0aCBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgb3Igbm90IGVhY2gKICAgIGlzIHNldC4KICAgIAogICAgT3B0aW9uczoKICAgICAgLW8JcmVzdHJpY3QgT1BUTkFNRXMgdG8gdGhvc2UgZGVmaW5lZCBmb3IgdXNlIHdpdGggYHNldCAtbycKICAgICAgLXAJcHJpbnQgZWFjaCBzaGVsbCBvcHRpb24gd2l0aCBhbiBpbmRpY2F0aW9uIG9mIGl0cyBzdGF0dXMKICAgICAgLXEJc3VwcHJlc3Mgb3V0cHV0CiAgICAgIC1zCWVuYWJsZSAoc2V0KSBlYWNoIE9QVE5BTUUKICAgICAgLXUJZGlzYWJsZSAodW5zZXQpIGVhY2ggT1BUTkFNRQogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyBpZiBPUFROQU1FIGlzIGVuYWJsZWQ7IGZhaWxzIGlmIGFuIGludmFsaWQgb3B0aW9uIGlzCiAgICBnaXZlbiBvciBPUFROQU1FIGlzIGRpc2FibGVkLgBTZXQgZXhwb3J0IGF0dHJpYnV0ZSBmb3Igc2hlbGwgdmFyaWFibGVzLgogICAgCiAgICBNYXJrcyBlYWNoIE5BTUUgZm9yIGF1dG9tYXRpYyBleHBvcnQgdG8gdGhlIGVudmlyb25tZW50IG9mIHN1YnNlcXVlbnRseQogICAgZXhlY3V0ZWQgY29tbWFuZHMuICBJZiBWQUxVRSBpcyBzdXBwbGllZCwgYXNzaWduIFZBTFVFIGJlZm9yZSBleHBvcnRpbmcuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1mCXJlZmVyIHRvIHNoZWxsIGZ1bmN0aW9ucwogICAgICAtbglyZW1vdmUgdGhlIGV4cG9ydCBwcm9wZXJ0eSBmcm9tIGVhY2ggTkFNRQogICAgICAtcAlkaXNwbGF5IGEgbGlzdCBvZiBhbGwgZXhwb3J0ZWQgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMKICAgIAogICAgQW4gYXJndW1lbnQgb2YgYC0tJyBkaXNhYmxlcyBmdXJ0aGVyIG9wdGlvbiBwcm9jZXNzaW5nLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgZ2l2ZW4gb3IgTkFNRSBpcyBpbnZhbGlkLgBTZXQgdmFyaWFibGUgdmFsdWVzIGFuZCBhdHRyaWJ1dGVzLgogICAgCiAgICBPYnNvbGV0ZS4gIFNlZSBgaGVscCBkZWNsYXJlJy4AU2hlbGwgY29tbWFuZHMgbWF0Y2hpbmcga2V5d29yZCBgAFNoZWxsIGNvbW1hbmRzIG1hdGNoaW5nIGtleXdvcmRzIGAAU2hlbGwgb3B0aW9uczoKAFNoaWZ0IHBvc2l0aW9uYWwgcGFyYW1ldGVycy4KICAgIAogICAgUmVuYW1lIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgJE4rMSwkTisyIC4uLiB0byAkMSwkMiAuLi4gIElmIE4gaXMKICAgIG5vdCBnaXZlbiwgaXQgaXMgYXNzdW1lZCB0byBiZSAxLgogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgTiBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gJCMuAFNpZ25hbCAlZABTcGVjaWZ5IGhvdyBhcmd1bWVudHMgYXJlIHRvIGJlIGNvbXBsZXRlZCBieSBSZWFkbGluZS4KICAgIAogICAgRm9yIGVhY2ggTkFNRSwgc3BlY2lmeSBob3cgYXJndW1lbnRzIGFyZSB0byBiZSBjb21wbGV0ZWQuICBJZiBubyBvcHRpb25zCiAgICBhcmUgc3VwcGxpZWQsIGV4aXN0aW5nIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbnMgYXJlIHByaW50ZWQgaW4gYSB3YXkgdGhhdAogICAgYWxsb3dzIHRoZW0gdG8gYmUgcmV1c2VkIGFzIGlucHV0LgogICAgCiAgICBPcHRpb25zOgogICAgICAtcAlwcmludCBleGlzdGluZyBjb21wbGV0aW9uIHNwZWNpZmljYXRpb25zIGluIGEgcmV1c2FibGUgZm9ybWF0CiAgICAgIC1yCXJlbW92ZSBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgZWFjaCBOQU1FLCBvciwgaWYgbm8KICAgIAlOQU1FcyBhcmUgc3VwcGxpZWQsIGFsbCBjb21wbGV0aW9uIHNwZWNpZmljYXRpb25zCiAgICAgIC1ECWFwcGx5IHRoZSBjb21wbGV0aW9ucyBhbmQgYWN0aW9ucyBhcyB0aGUgZGVmYXVsdCBmb3IgY29tbWFuZHMKICAgIAl3aXRob3V0IGFueSBzcGVjaWZpYyBjb21wbGV0aW9uIGRlZmluZWQKICAgICAgLUUJYXBwbHkgdGhlIGNvbXBsZXRpb25zIGFuZCBhY3Rpb25zIHRvICJlbXB0eSIgY29tbWFuZHMgLS0KICAgIAljb21wbGV0aW9uIGF0dGVtcHRlZCBvbiBhIGJsYW5rIGxpbmUKICAgIAogICAgV2hlbiBjb21wbGV0aW9uIGlzIGF0dGVtcHRlZCwgdGhlIGFjdGlvbnMgYXJlIGFwcGxpZWQgaW4gdGhlIG9yZGVyIHRoZQogICAgdXBwZXJjYXNlLWxldHRlciBvcHRpb25zIGFyZSBsaXN0ZWQgYWJvdmUuICBUaGUgLUQgb3B0aW9uIHRha2VzCiAgICBwcmVjZWRlbmNlIG92ZXIgLUUuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhbiBpbnZhbGlkIG9wdGlvbiBpcyBzdXBwbGllZCBvciBhbiBlcnJvciBvY2N1cnMuAFN0b3BwZWQAU3RvcHBlZCAoc2lnbmFsKQBTdG9wcGVkICh0dHkgaW5wdXQpAFN0b3BwZWQgKHR0eSBvdXRwdXQpAFN0b3BwZWQoJXMpAFN1c3BlbmQgc2hlbGwgZXhlY3V0aW9uLgogICAgCiAgICBTdXNwZW5kIHRoZSBleGVjdXRpb24gb2YgdGhpcyBzaGVsbCB1bnRpbCBpdCByZWNlaXZlcyBhIFNJR0NPTlQgc2lnbmFsLgogICAgVW5sZXNzIGZvcmNlZCwgbG9naW4gc2hlbGxzIGNhbm5vdCBiZSBzdXNwZW5kZWQuCiAgICAKICAgIE9wdGlvbnM6CiAgICAgIC1mCWZvcmNlIHRoZSBzdXNwZW5kLCBldmVuIGlmIHRoZSBzaGVsbCBpcyBhIGxvZ2luIHNoZWxsCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBqb2IgY29udHJvbCBpcyBub3QgZW5hYmxlZCBvciBhbiBlcnJvciBvY2N1cnMuAFRJTUVGT1JNQVQ6IGAlYyc6IGludmFsaWQgZm9ybWF0IGNoYXJhY3RlcgBUZXJtaW5hdGVkAFRoZSBtYWlsIGluICVzIGhhcyBiZWVuIHJlYWQKAFRoZXJlIGFyZSBydW5uaW5nIGpvYnMuCgBUaGVyZSBhcmUgc3RvcHBlZCBqb2JzLgoAVGhlc2Ugc2hlbGwgY29tbWFuZHMgYXJlIGRlZmluZWQgaW50ZXJuYWxseS4gIFR5cGUgYGhlbHAnIHRvIHNlZSB0aGlzIGxpc3QuClR5cGUgYGhlbHAgbmFtZScgdG8gZmluZCBvdXQgbW9yZSBhYm91dCB0aGUgZnVuY3Rpb24gYG5hbWUnLgpVc2UgYGluZm8gYmFzaCcgdG8gZmluZCBvdXQgbW9yZSBhYm91dCB0aGUgc2hlbGwgaW4gZ2VuZXJhbC4KVXNlIGBtYW4gLWsnIG9yIGBpbmZvJyB0byBmaW5kIG91dCBtb3JlIGFib3V0IGNvbW1hbmRzIG5vdCBpbiB0aGlzIGxpc3QuCgpBIHN0YXIgKCopIG5leHQgdG8gYSBuYW1lIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgaXMgZGlzYWJsZWQuCgoAVHJhcCBzaWduYWxzIGFuZCBvdGhlciBldmVudHMuCiAgICAKICAgIERlZmluZXMgYW5kIGFjdGl2YXRlcyBoYW5kbGVycyB0byBiZSBydW4gd2hlbiB0aGUgc2hlbGwgcmVjZWl2ZXMgc2lnbmFscwogICAgb3Igb3RoZXIgY29uZGl0aW9ucy4KICAgIAogICAgQVJHIGlzIGEgY29tbWFuZCB0byBiZSByZWFkIGFuZCBleGVjdXRlZCB3aGVuIHRoZSBzaGVsbCByZWNlaXZlcyB0aGUKICAgIHNpZ25hbChzKSBTSUdOQUxfU1BFQy4gIElmIEFSRyBpcyBhYnNlbnQgKGFuZCBhIHNpbmdsZSBTSUdOQUxfU1BFQwogICAgaXMgc3VwcGxpZWQpIG9yIGAtJywgZWFjaCBzcGVjaWZpZWQgc2lnbmFsIGlzIHJlc2V0IHRvIGl0cyBvcmlnaW5hbAogICAgdmFsdWUuICBJZiBBUkcgaXMgdGhlIG51bGwgc3RyaW5nIGVhY2ggU0lHTkFMX1NQRUMgaXMgaWdub3JlZCBieSB0aGUKICAgIHNoZWxsIGFuZCBieSB0aGUgY29tbWFuZHMgaXQgaW52b2tlcy4KICAgIAogICAgSWYgYSBTSUdOQUxfU1BFQyBpcyBFWElUICgwKSBBUkcgaXMgZXhlY3V0ZWQgb24gZXhpdCBmcm9tIHRoZSBzaGVsbC4gIElmCiAgICBhIFNJR05BTF9TUEVDIGlzIERFQlVHLCBBUkcgaXMgZXhlY3V0ZWQgYmVmb3JlIGV2ZXJ5IHNpbXBsZSBjb21tYW5kLiAgSWYKICAgIGEgU0lHTkFMX1NQRUMgaXMgUkVUVVJOLCBBUkcgaXMgZXhlY3V0ZWQgZWFjaCB0aW1lIGEgc2hlbGwgZnVuY3Rpb24gb3IgYQogICAgc2NyaXB0IHJ1biBieSB0aGUgLiBvciBzb3VyY2UgYnVpbHRpbnMgZmluaXNoZXMgZXhlY3V0aW5nLiAgQSBTSUdOQUxfU1BFQwogICAgb2YgRVJSIG1lYW5zIHRvIGV4ZWN1dGUgQVJHIGVhY2ggdGltZSBhIGNvbW1hbmQncyBmYWlsdXJlIHdvdWxkIGNhdXNlIHRoZQogICAgc2hlbGwgdG8gZXhpdCB3aGVuIHRoZSAtZSBvcHRpb24gaXMgZW5hYmxlZC4KICAgIAogICAgSWYgbm8gYXJndW1lbnRzIGFyZSBzdXBwbGllZCwgdHJhcCBwcmludHMgdGhlIGxpc3Qgb2YgY29tbWFuZHMgYXNzb2NpYXRlZAogICAgd2l0aCBlYWNoIHNpZ25hbC4KICAgIAogICAgT3B0aW9uczoKICAgICAgLWwJcHJpbnQgYSBsaXN0IG9mIHNpZ25hbCBuYW1lcyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBudW1iZXJzCiAgICAgIC1wCWRpc3BsYXkgdGhlIHRyYXAgY29tbWFuZHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggU0lHTkFMX1NQRUMKICAgIAogICAgRWFjaCBTSUdOQUxfU1BFQyBpcyBlaXRoZXIgYSBzaWduYWwgbmFtZSBpbiA8c2lnbmFsLmg+IG9yIGEgc2lnbmFsIG51bWJlci4KICAgIFNpZ25hbCBuYW1lcyBhcmUgY2FzZSBpbnNlbnNpdGl2ZSBhbmQgdGhlIFNJRyBwcmVmaXggaXMgb3B0aW9uYWwuICBBCiAgICBzaWduYWwgbWF5IGJlIHNlbnQgdG8gdGhlIHNoZWxsIHdpdGggImtpbGwgLXNpZ25hbCAkJCIuCiAgICAKICAgIEV4aXQgU3RhdHVzOgogICAgUmV0dXJucyBzdWNjZXNzIHVubGVzcyBhIFNJR1NQRUMgaXMgaW52YWxpZCBvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyBnaXZlbi4AVHlwZSBgJXMgLWMgImhlbHAgc2V0IicgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc2hlbGwgb3B0aW9ucy4KAFR5cGUgYCVzIC1jIGhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNoZWxsIGJ1aWx0aW4gY29tbWFuZHMuCgBVbmtub3duIFNpZ25hbCAjAFVua25vd24gU2lnbmFsICMlZABVbmtub3duIGVycm9yAFVua25vd24gc3RhdHVzAFVyZ2VudCBJTyBjb25kaXRpb24AVXNhZ2U6CSVzIFtHTlUgbG9uZyBvcHRpb25dIFtvcHRpb25dIC4uLgoJJXMgW0dOVSBsb25nIG9wdGlvbl0gW29wdGlvbl0gc2NyaXB0LWZpbGUgLi4uCgBVc2UgIiVzIiB0byBsZWF2ZSB0aGUgc2hlbGwuCgBVc2UgdGhlIGBiYXNoYnVnJyBjb21tYW5kIHRvIHJlcG9ydCBidWdzLgoAVXNlciBzaWduYWwgMQBVc2VyIHNpZ25hbCAyAFdpbmRvdyBjaGFuZ2VkAFdyaXRlIGFyZ3VtZW50cyB0byB0aGUgc3RhbmRhcmQgb3V0cHV0LgogICAgCiAgICBEaXNwbGF5IHRoZSBBUkdzIG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQgZm9sbG93ZWQgYnkgYSBuZXdsaW5lLgogICAgCiAgICBPcHRpb25zOgogICAgICAtbglkbyBub3QgYXBwZW5kIGEgbmV3bGluZQogICAgCiAgICBFeGl0IFN0YXR1czoKICAgIFJldHVybnMgc3VjY2VzcyB1bmxlc3MgYSB3cml0ZSBlcnJvciBvY2N1cnMuAFlvdSBoYXZlIG1haWwgaW4gJF8AWW91IGhhdmUgbmV3IG1haWwgaW4gJF8AWyBhcmcuLi4gXQBbWyBleHByZXNzaW9uIF1dAGAlYyc6IGJhZCBjb21tYW5kAGAlYyc6IGludmFsaWQgZm9ybWF0IGNoYXJhY3RlcgBgJWMnOiBpbnZhbGlkIHN5bWJvbGljIG1vZGUgY2hhcmFjdGVyAGAlYyc6IGludmFsaWQgc3ltYm9saWMgbW9kZSBvcGVyYXRvcgBgJWMnOiBpbnZhbGlkIHRpbWUgZm9ybWF0IHNwZWNpZmljYXRpb24AYCVzJzogY2Fubm90IHVuYmluZABgJXMnOiBpbnZhbGlkIGFsaWFzIG5hbWUAYCVzJzogaW52YWxpZCBrZXltYXAgbmFtZQBgJXMnOiBtaXNzaW5nIGZvcm1hdCBjaGFyYWN0ZXIAYCVzJzogbm90IGEgcGlkIG9yIHZhbGlkIGpvYiBzcGVjAGAlcyc6IG5vdCBhIHZhbGlkIGlkZW50aWZpZXIAYCVzJzogdW5rbm93biBmdW5jdGlvbiBuYW1lAGApJyBleHBlY3RlZABgKScgZXhwZWN0ZWQsIGZvdW5kICVzAGA6JyBleHBlY3RlZCBmb3IgY29uZGl0aW9uYWwgZXhwcmVzc2lvbgBhZGRfcHJvY2VzczogcGlkICU1bGQgKCVzKSBtYXJrZWQgYXMgc3RpbGwgYWxpdmUAYWRkX3Byb2Nlc3M6IHByb2Nlc3MgJTVsZCAoJXMpIGluIHRoZV9waXBlbGluZQBhbGlhcyBbLXBdIFtuYW1lWz12YWx1ZV0gLi4uIF0AYWxsX2xvY2FsX3ZhcmlhYmxlczogbm8gZnVuY3Rpb24gY29udGV4dCBhdCBjdXJyZW50IHNjb3BlAGFyZ3VtZW50AGFyZ3VtZW50IGV4cGVjdGVkAGFycmF5IHZhcmlhYmxlIHN1cHBvcnQgcmVxdWlyZWQAYXR0ZW1wdGVkIGFzc2lnbm1lbnQgdG8gbm9uLXZhcmlhYmxlAGJhZCBhcnJheSBzdWJzY3JpcHQAYmFkIGNvbW1hbmQgdHlwZQBiYWQgY29ubmVjdG9yAGJhZCBqdW1wAGJhZCBzdWJzdGl0dXRpb246IG5vIGNsb3NpbmcgImAiIGluICVzAGJhZCBzdWJzdGl0dXRpb246IG5vIGNsb3NpbmcgYCVzJyBpbiAlcwBiYXNoX2V4ZWN1dGVfdW5peF9jb21tYW5kOiBjYW5ub3QgZmluZCBrZXltYXAgZm9yIGNvbW1hbmQAYmcgW2pvYl9zcGVjIC4uLl0AYnJlYWsgW25dAGJ1ZzogYmFkIGV4cGFzc2lnbiB0b2tlbgBidWlsdGluIFtzaGVsbC1idWlsdGluIFthcmcgLi4uXV0AY2FsbGVyIFtleHByXQBjYW4gb25seSBgcmV0dXJuJyBmcm9tIGEgZnVuY3Rpb24gb3Igc291cmNlZCBzY3JpcHQAY2FuIG9ubHkgYmUgdXNlZCBpbiBhIGZ1bmN0aW9uAGNhbm5vdCBhbGxvY2F0ZSBuZXcgZmlsZSBkZXNjcmlwdG9yIGZvciBiYXNoIGlucHV0IGZyb20gZmQgJWQAY2Fubm90IGNyZWF0ZSB0ZW1wIGZpbGUgZm9yIGhlcmUtZG9jdW1lbnQ6ICVzAGNhbm5vdCBkdXBsaWNhdGUgZmQgJWQgdG8gZmQgJWQAY2Fubm90IGR1cGxpY2F0ZSBuYW1lZCBwaXBlICVzIGFzIGZkICVkAGNhbm5vdCBmaW5kICVzIGluIHNoYXJlZCBvYmplY3QgJXM6ICVzAGNhbm5vdCBtYWtlIGNoaWxkIGZvciBjb21tYW5kIHN1YnN0aXR1dGlvbgBjYW5ub3QgbWFrZSBjaGlsZCBmb3IgcHJvY2VzcyBzdWJzdGl0dXRpb24AY2Fubm90IG1ha2UgcGlwZSBmb3IgY29tbWFuZCBzdWJzdGl0dXRpb24AY2Fubm90IG1ha2UgcGlwZSBmb3IgcHJvY2VzcyBzdWJzdGl0dXRpb24AY2Fubm90IG9wZW4gbmFtZWQgcGlwZSAlcyBmb3IgcmVhZGluZwBjYW5ub3Qgb3BlbiBuYW1lZCBwaXBlICVzIGZvciB3cml0aW5nAGNhbm5vdCBvcGVuIHNoYXJlZCBvYmplY3QgJXM6ICVzAGNhbm5vdCByZWRpcmVjdCBzdGFuZGFyZCBpbnB1dCBmcm9tIC9kZXYvbnVsbDogJXMAY2Fubm90IHJlc2V0IG5vZGVsYXkgbW9kZSBmb3IgZmQgJWQAY2Fubm90IHNldCBhbmQgdW5zZXQgc2hlbGwgb3B0aW9ucyBzaW11bHRhbmVvdXNseQBjYW5ub3Qgc2V0IHRlcm1pbmFsIHByb2Nlc3MgZ3JvdXAgKCVkKQBjYW5ub3Qgc2ltdWx0YW5lb3VzbHkgdW5zZXQgYSBmdW5jdGlvbiBhbmQgYSB2YXJpYWJsZQBjYW5ub3Qgc3VzcGVuZABjYW5ub3Qgc3VzcGVuZCBhIGxvZ2luIHNoZWxsAGNhbm5vdCB1c2UgYC1mJyB0byBtYWtlIGZ1bmN0aW9ucwBjYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgb2YgLWFucncAY2FzZSBXT1JEIGluIFtQQVRURVJOIFt8IFBBVFRFUk5dLi4uKSBDT01NQU5EUyA7O10uLi4gZXNhYwBjaGlsZCBzZXRwZ2lkICglbGQgdG8gJWxkKQBjb21tYW5kIFstcFZ2XSBjb21tYW5kIFthcmcgLi4uXQBjb21tYW5kX3N1YnN0aXR1dGU6IGNhbm5vdCBkdXBsaWNhdGUgcGlwZSBhcyBmZCAxAGNvbXBnZW4gWy1hYmNkZWZnamtzdXZdIFstbyBvcHRpb25dICBbLUEgYWN0aW9uXSBbLUcgZ2xvYnBhdF0gWy1XIHdvcmRsaXN0XSAgWy1GIGZ1bmN0aW9uXSBbLUMgY29tbWFuZF0gWy1YIGZpbHRlcnBhdF0gWy1QIHByZWZpeF0gWy1TIHN1ZmZpeF0gW3dvcmRdAGNvbXBsZXRlIFstYWJjZGVmZ2prc3V2XSBbLXByXSBbLURFXSBbLW8gb3B0aW9uXSBbLUEgYWN0aW9uXSBbLUcgZ2xvYnBhdF0gWy1XIHdvcmRsaXN0XSAgWy1GIGZ1bmN0aW9uXSBbLUMgY29tbWFuZF0gWy1YIGZpbHRlcnBhdF0gWy1QIHByZWZpeF0gWy1TIHN1ZmZpeF0gW25hbWUgLi4uXQBjb21wbGV0aW9uOiBmdW5jdGlvbiBgJXMnIG5vdCBmb3VuZABjb21wb3B0IFstb3wrbyBvcHRpb25dIFstREVdIFtuYW1lIC4uLl0AY29uZGl0aW9uYWwgYmluYXJ5IG9wZXJhdG9yIGV4cGVjdGVkAGNvbnRpbnVlIFtuXQBjb3Byb2MgW05BTUVdIGNvbW1hbmQgW3JlZGlyZWN0aW9uc10AY291bGQgbm90IGZpbmQgL3RtcCwgcGxlYXNlIGNyZWF0ZSEAY3ByaW50ZjogYCVjJzogaW52YWxpZCBmb3JtYXQgY2hhcmFjdGVyAGN1cnJlbnQAZGVsZXRpbmcgc3RvcHBlZCBqb2IgJWQgd2l0aCBwcm9jZXNzIGdyb3VwICVsZABkZXNjcmliZV9waWQ6ICVsZDogbm8gc3VjaCBwaWQAZGlyZWN0b3J5IHN0YWNrIGVtcHR5AGRpcmVjdG9yeSBzdGFjayBpbmRleABkaXJzIFstY2xwdl0gWytOXSBbLU5dAGRpc293biBbLWhdIFstYXJdIFtqb2JzcGVjIC4uLl0AZGl2aXNpb24gYnkgMABkeW5hbWljIGxvYWRpbmcgbm90IGF2YWlsYWJsZQBlY2hvIFstbl0gW2FyZyAuLi5dAGVjaG8gWy1uZUVdIFthcmcgLi4uXQBlbXB0eSBhcnJheSB2YXJpYWJsZSBuYW1lAGVuYWJsZSBbLWFdIFstZG5wc10gWy1mIGZpbGVuYW1lXSBbbmFtZSAuLi5dAGVycm9yIGdldHRpbmcgdGVybWluYWwgYXR0cmlidXRlczogJXMAZXJyb3IgaW1wb3J0aW5nIGZ1bmN0aW9uIGRlZmluaXRpb24gZm9yIGAlcycAZXJyb3Igc2V0dGluZyB0ZXJtaW5hbCBhdHRyaWJ1dGVzOiAlcwBldmFsIFthcmcgLi4uXQBleGVjIFstY2xdIFstYSBuYW1lXSBbY29tbWFuZCBbYXJndW1lbnRzIC4uLl1dIFtyZWRpcmVjdGlvbiAuLi5dAGV4aXQgW25dAGV4cGVjdGVkIGApJwBleHBvbmVudCBsZXNzIHRoYW4gMABleHBvcnQgWy1mbl0gW25hbWVbPXZhbHVlXSAuLi5dIG9yIGV4cG9ydCAtcABleHByZXNzaW9uIGV4cGVjdGVkAGV4cHJlc3Npb24gcmVjdXJzaW9uIGxldmVsIGV4Y2VlZGVkAGZhbHNlAGZjIFstZSBlbmFtZV0gWy1sbnJdIFtmaXJzdF0gW2xhc3RdIG9yIGZjIC1zIFtwYXQ9cmVwXSBbY29tbWFuZF0AZmcgW2pvYl9zcGVjXQBmaWxlIGRlc2NyaXB0b3Igb3V0IG9mIHJhbmdlAGZpbGVuYW1lIGFyZ3VtZW50IHJlcXVpcmVkAGZvciAoKCBleHAxOyBleHAyOyBleHAzICkpOyBkbyBDT01NQU5EUzsgZG9uZQBmb3IgTkFNRSBbaW4gV09SRFMgLi4uIF0gOyBkbyBDT01NQU5EUzsgZG9uZQBmb3JrZWQgcGlkICVkIGFwcGVhcnMgaW4gcnVubmluZyBqb2IgJWQAZnJlZTogY2FsbGVkIHdpdGggYWxyZWFkeSBmcmVlZCBibG9jayBhcmd1bWVudABmcmVlOiBjYWxsZWQgd2l0aCB1bmFsbG9jYXRlZCBibG9jayBhcmd1bWVudABmcmVlOiBzdGFydCBhbmQgZW5kIGNodW5rIHNpemVzIGRpZmZlcgBmcmVlOiB1bmRlcmZsb3cgZGV0ZWN0ZWQ7IG1oX25ieXRlcyBvdXQgb2YgcmFuZ2UAZnVuY3Rpb24gbmFtZSB7IENPTU1BTkRTIDsgfSBvciBuYW1lICgpIHsgQ09NTUFORFMgOyB9AGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgc2hlbGwgd2lsbCBmb3JjZSBldmFsdWF0aW9uIGFzIGFuIGFyaXRobWV0aWMgc3Vic3RpdHV0aW9uAGdldGN3ZDogY2Fubm90IGFjY2VzcyBwYXJlbnQgZGlyZWN0b3JpZXMAZ2V0b3B0cyBvcHRzdHJpbmcgbmFtZSBbYXJnXQBoYXNoIFstbHJdIFstcCBwYXRobmFtZV0gWy1kdF0gW25hbWUgLi4uXQBoYXNoaW5nIGRpc2FibGVkAGhlbHAgWy1kbXNdIFtwYXR0ZXJuIC4uLl0AaGVyZS1kb2N1bWVudCBhdCBsaW5lICVkIGRlbGltaXRlZCBieSBlbmQtb2YtZmlsZSAod2FudGVkIGAlcycpAGhpc3RvcnkgWy1jXSBbLWQgb2Zmc2V0XSBbbl0gb3IgaGlzdG9yeSAtYW5ydyBbZmlsZW5hbWVdIG9yIGhpc3RvcnkgLXBzIGFyZyBbYXJnLi4uXQBoaXN0b3J5IHBvc2l0aW9uAGhpc3Rvcnkgc3BlY2lmaWNhdGlvbgBoaXRzCWNvbW1hbmQKAGlkZW50aWZpZXIgZXhwZWN0ZWQgYWZ0ZXIgcHJlLWluY3JlbWVudCBvciBwcmUtZGVjcmVtZW50AGlmIENPTU1BTkRTOyB0aGVuIENPTU1BTkRTOyBbIGVsaWYgQ09NTUFORFM7IHRoZW4gQ09NTUFORFM7IF0uLi4gWyBlbHNlIENPTU1BTkRTOyBdIGZpAGluaXRpYWxpemVfam9iX2NvbnRyb2w6IGdldHBncnAgZmFpbGVkAGluaXRpYWxpemVfam9iX2NvbnRyb2w6IGxpbmUgZGlzY2lwbGluZQBpbml0aWFsaXplX2pvYl9jb250cm9sOiBzZXRwZ2lkAGludmFsaWQgYXJpdGhtZXRpYyBiYXNlAGludmFsaWQgYmFzZQBpbnZhbGlkIGNoYXJhY3RlciAlZCBpbiBleHBvcnRzdHIgZm9yICVzAGludmFsaWQgaGV4IG51bWJlcgBpbnZhbGlkIG51bWJlcgBpbnZhbGlkIG9jdGFsIG51bWJlcgBpbnZhbGlkIHNpZ25hbCBudW1iZXIAam9iICVkIHN0YXJ0ZWQgd2l0aG91dCBqb2IgY29udHJvbABqb2Jfc3BlYyBbJl0Aam9icyBbLWxucHJzXSBbam9ic3BlYyAuLi5dIG9yIGpvYnMgLXggY29tbWFuZCBbYXJnc10Aa2lsbCBbLXMgc2lnc3BlYyB8IC1uIHNpZ251bSB8IC1zaWdzcGVjXSBwaWQgfCBqb2JzcGVjIC4uLiBvciBraWxsIC1sIFtzaWdzcGVjXQBsYXN0IGNvbW1hbmQ6ICVzCgBsZXQgYXJnIFthcmcgLi4uXQBsaW1pdABsaW5lICVkOiAAbGluZSBlZGl0aW5nIG5vdCBlbmFibGVkAGxvY2FsIFtvcHRpb25dIG5hbWVbPXZhbHVlXSAuLi4AbG9nb3V0CgBsb2dvdXQgW25dAGxvb3AgY291bnQAbWFrZV9oZXJlX2RvY3VtZW50OiBiYWQgaW5zdHJ1Y3Rpb24gdHlwZSAlZABtYWtlX2xvY2FsX3ZhcmlhYmxlOiBubyBmdW5jdGlvbiBjb250ZXh0IGF0IGN1cnJlbnQgc2NvcGUAbWFrZV9yZWRpcmVjdGlvbjogcmVkaXJlY3Rpb24gaW5zdHJ1Y3Rpb24gYCVkJyBvdXQgb2YgcmFuZ2UAbWFsbG9jOiBibG9jayBvbiBmcmVlIGxpc3QgY2xvYmJlcmVkAG1hbGxvYzogZmFpbGVkIGFzc2VydGlvbjogJXMKAG1hcGZpbGUgWy1uIGNvdW50XSBbLU8gb3JpZ2luXSBbLXMgY291bnRdIFstdF0gWy11IGZkXSBbLUMgY2FsbGJhY2tdIFstYyBxdWFudHVtXSBbYXJyYXldAG1pZ3JhdGUgcHJvY2VzcyB0byBhbm90aGVyIENQVQBtaXNzaW5nIGApJwBtaXNzaW5nIGBdJwBtaXNzaW5nIGhleCBkaWdpdCBmb3IgXHgAbWlzc2luZyB1bmljb2RlIGRpZ2l0IGZvciBcJWMAbmV0d29yayBvcGVyYXRpb25zIG5vdCBzdXBwb3J0ZWQAbm8gYD0nIGluIGV4cG9ydHN0ciBmb3IgJXMAbm8gY2xvc2luZyBgJWMnIGluICVzAG5vIGNvbW1hbmQgZm91bmQAbm8gaGVscCB0b3BpY3MgbWF0Y2ggYCVzJy4gIFRyeSBgaGVscCBoZWxwJyBvciBgbWFuIC1rICVzJyBvciBgaW5mbyAlcycuAG5vIGpvYiBjb250cm9sAG5vIGpvYiBjb250cm9sIGluIHRoaXMgc2hlbGwAbm8gbWF0Y2g6ICVzAG5vIG90aGVyIGRpcmVjdG9yeQBubyBvdGhlciBvcHRpb25zIGFsbG93ZWQgd2l0aCBgLXgnAG5vdCBjdXJyZW50bHkgZXhlY3V0aW5nIGNvbXBsZXRpb24gZnVuY3Rpb24Abm90IGxvZ2luIHNoZWxsOiB1c2UgYGV4aXQnAG9jdGFsIG51bWJlcgBvbmx5IG1lYW5pbmdmdWwgaW4gYSBgZm9yJywgYHdoaWxlJywgb3IgYHVudGlsJyBsb29wAHBpcGUgZXJyb3IAcG9wX3Njb3BlOiBoZWFkIG9mIHNoZWxsX3ZhcmlhYmxlcyBub3QgYSB0ZW1wb3JhcnkgZW52aXJvbm1lbnQgc2NvcGUAcG9wX3Zhcl9jb250ZXh0OiBoZWFkIG9mIHNoZWxsX3ZhcmlhYmxlcyBub3QgYSBmdW5jdGlvbiBjb250ZXh0AHBvcF92YXJfY29udGV4dDogbm8gZ2xvYmFsX3ZhcmlhYmxlcyBjb250ZXh0AHBvcGQgWy1uXSBbK04gfCAtTl0AcG93ZXIgZmFpbHVyZSBpbW1pbmVudABwcmludF9jb21tYW5kOiBiYWQgY29ubmVjdG9yIGAlZCcAcHJpbnRmIFstdiB2YXJdIGZvcm1hdCBbYXJndW1lbnRzXQBwcm9nY29tcF9pbnNlcnQ6ICVzOiBOVUxMIENPTVBTUEVDAHByb2dyYW1taW5nIGVycm9yAHB1c2hkIFstbl0gWytOIHwgLU4gfCBkaXJdAHB3ZCBbLUxQXQByZWFkIFstZXJzXSBbLWEgYXJyYXldIFstZCBkZWxpbV0gWy1pIHRleHRdIFstbiBuY2hhcnNdIFstTiBuY2hhcnNdIFstcCBwcm9tcHRdIFstdCB0aW1lb3V0XSBbLXUgZmRdIFtuYW1lIC4uLl0AcmVhZCBlcnJvcjogJWQ6ICVzAHJlYWRhcnJheSBbLW4gY291bnRdIFstTyBvcmlnaW5dIFstcyBjb3VudF0gWy10XSBbLXUgZmRdIFstQyBjYWxsYmFja10gWy1jIHF1YW50dW1dIFthcnJheV0AcmVhZG9ubHkgWy1hQWZdIFtuYW1lWz12YWx1ZV0gLi4uXSBvciByZWFkb25seSAtcAByZWFsbG9jOiBjYWxsZWQgd2l0aCB1bmFsbG9jYXRlZCBibG9jayBhcmd1bWVudAByZWFsbG9jOiBzdGFydCBhbmQgZW5kIGNodW5rIHNpemVzIGRpZmZlcgByZWFsbG9jOiB1bmRlcmZsb3cgZGV0ZWN0ZWQ7IG1oX25ieXRlcyBvdXQgb2YgcmFuZ2UAcmVjdXJzaW9uIHN0YWNrIHVuZGVyZmxvdwByZWRpcmVjdGlvbiBlcnJvcjogY2Fubm90IGR1cGxpY2F0ZSBmZAByZWdpc3Rlcl9hbGxvYzogJXAgYWxyZWFkeSBpbiB0YWJsZSBhcyBhbGxvY2F0ZWQ/CgByZWdpc3Rlcl9hbGxvYzogYWxsb2MgdGFibGUgaXMgZnVsbCB3aXRoIEZJTkRfQUxMT0M/CgByZWdpc3Rlcl9mcmVlOiAlcCBhbHJlYWR5IGluIHRhYmxlIGFzIGZyZWU/CgByZXN0cmljdGVkAHJldHVybiBbbl0AcnVuX3BlbmRpbmdfdHJhcHM6IGJhZCB2YWx1ZSBpbiB0cmFwX2xpc3RbJWRdOiAlcABydW5fcGVuZGluZ190cmFwczogc2lnbmFsIGhhbmRsZXIgaXMgU0lHX0RGTCwgcmVzZW5kaW5nICVkICglcykgdG8gbXlzZWxmAHNhdmVfYmFzaF9pbnB1dDogYnVmZmVyIGFscmVhZHkgZXhpc3RzIGZvciBuZXcgZmQgJWQAc2VsZWN0IE5BTUUgW2luIFdPUkRTIC4uLiA7XSBkbyBDT01NQU5EUzsgZG9uZQBzZXQgWy1hYmVmaGttbnB0dXZ4QkNIUF0gWy1vIG9wdGlvbi1uYW1lXSBbLS1dIFthcmcgLi4uXQBzZXRsb2NhbGU6ICVzOiBjYW5ub3QgY2hhbmdlIGxvY2FsZSAoJXMpAHNldGxvY2FsZTogJXM6IGNhbm5vdCBjaGFuZ2UgbG9jYWxlICglcyk6ICVzAHNldGxvY2FsZTogTENfQUxMOiBjYW5ub3QgY2hhbmdlIGxvY2FsZSAoJXMpAHNldGxvY2FsZTogTENfQUxMOiBjYW5ub3QgY2hhbmdlIGxvY2FsZSAoJXMpOiAlcwBzaGVsbCBsZXZlbCAoJWQpIHRvbyBoaWdoLCByZXNldHRpbmcgdG8gMQBzaGlmdCBbbl0Ac2hpZnQgY291bnQAc2hvcHQgWy1wcXN1XSBbLW9dIFtvcHRuYW1lIC4uLl0Ac2lncHJvY21hc2s6ICVkOiBpbnZhbGlkIG9wZXJhdGlvbgBzb3VyY2UgZmlsZW5hbWUgW2FyZ3VtZW50c10Ac3RhcnRfcGlwZWxpbmU6IHBncnAgcGlwZQBzdXNwZW5kIFstZl0Ac3ludGF4IGVycm9yAHN5bnRheCBlcnJvciBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uAHN5bnRheCBlcnJvciBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uOiB1bmV4cGVjdGVkIHRva2VuIGAlcycAc3ludGF4IGVycm9yIGluIGV4cHJlc3Npb24Ac3ludGF4IGVycm9yIG5lYXIgYCVzJwBzeW50YXggZXJyb3IgbmVhciB1bmV4cGVjdGVkIHRva2VuIGAlcycAc3ludGF4IGVycm9yOiBgKCglcykpJwBzeW50YXggZXJyb3I6IGA7JyB1bmV4cGVjdGVkAHN5bnRheCBlcnJvcjogYXJpdGhtZXRpYyBleHByZXNzaW9uIHJlcXVpcmVkAHN5bnRheCBlcnJvcjogaW52YWxpZCBhcml0aG1ldGljIG9wZXJhdG9yAHN5bnRheCBlcnJvcjogb3BlcmFuZCBleHBlY3RlZABzeW50YXggZXJyb3I6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUAc3lzdGVtIGNyYXNoIGltbWluZW50AHRlc3QgW2V4cHJdAHRpbWUgWy1wXSBwaXBlbGluZQB0aW1lcwB0b28gbWFueSBhcmd1bWVudHMAdHJhcCBbLWxwXSBbW2FyZ10gc2lnbmFsX3NwZWMgLi4uXQB0cmFwX2hhbmRsZXI6IGJhZCBzaWduYWwgJWQAdHJ1ZQB0eXBlIFstYWZwdFBdIG5hbWUgW25hbWUgLi4uXQB0eXBlc2V0IFstYUFmRmdpbHJ0dXhdIFstcF0gbmFtZVs9dmFsdWVdIC4uLgB1bWFzayBbLXBdIFstU10gW21vZGVdAHVuYWxpYXMgWy1hXSBuYW1lIFtuYW1lIC4uLl0AdW5leHBlY3RlZCBFT0Ygd2hpbGUgbG9va2luZyBmb3IgYF1dJwB1bmV4cGVjdGVkIEVPRiB3aGlsZSBsb29raW5nIGZvciBtYXRjaGluZyBgJWMnAHVuZXhwZWN0ZWQgRU9GIHdoaWxlIGxvb2tpbmcgZm9yIG1hdGNoaW5nIGApJwB1bmV4cGVjdGVkIGFyZ3VtZW50IGAlcycgdG8gY29uZGl0aW9uYWwgYmluYXJ5IG9wZXJhdG9yAHVuZXhwZWN0ZWQgYXJndW1lbnQgYCVzJyB0byBjb25kaXRpb25hbCB1bmFyeSBvcGVyYXRvcgB1bmV4cGVjdGVkIGFyZ3VtZW50IHRvIGNvbmRpdGlvbmFsIGJpbmFyeSBvcGVyYXRvcgB1bmV4cGVjdGVkIGFyZ3VtZW50IHRvIGNvbmRpdGlvbmFsIHVuYXJ5IG9wZXJhdG9yAHVuZXhwZWN0ZWQgdG9rZW4gJWQgaW4gY29uZGl0aW9uYWwgY29tbWFuZAB1bmV4cGVjdGVkIHRva2VuIGAlYycgaW4gY29uZGl0aW9uYWwgY29tbWFuZAB1bmV4cGVjdGVkIHRva2VuIGAlcycgaW4gY29uZGl0aW9uYWwgY29tbWFuZAB1bmV4cGVjdGVkIHRva2VuIGAlcycsIGNvbmRpdGlvbmFsIGJpbmFyeSBvcGVyYXRvciBleHBlY3RlZAB1bmV4cGVjdGVkIHRva2VuIGAlcycsIGV4cGVjdGVkIGApJwB1bmtub3duAHVua25vd24gY29tbWFuZCBlcnJvcgB1bnRpbCBDT01NQU5EUzsgZG8gQ09NTUFORFM7IGRvbmUAdmFsdWUgdG9vIGdyZWF0IGZvciBiYXNlAHZhcmlhYmxlcyAtIE5hbWVzIGFuZCBtZWFuaW5ncyBvZiBzb21lIHNoZWxsIHZhcmlhYmxlcwB3YWl0OiBwaWQgJWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgc2hlbGwAd2FpdF9mb3I6IE5vIHJlY29yZCBvZiBwcm9jZXNzICVsZAB3YWl0X2Zvcl9qb2I6IGpvYiAlZCBpcyBzdG9wcGVkAHdhaXRjaGxkOiB0dXJuaW5nIG9uIFdOT0hBTkcgdG8gYXZvaWQgaW5kZWZpbml0ZSBibG9jawB3YXJuaW5nOiAAd2FybmluZzogJXM6ICVzAHdhcm5pbmc6IC1DIG9wdGlvbiBtYXkgbm90IHdvcmsgYXMgeW91IGV4cGVjdAB3YXJuaW5nOiAtRiBvcHRpb24gbWF5IG5vdCB3b3JrIGFzIHlvdSBleHBlY3QAd2hpbGUgQ09NTUFORFM7IGRvIENPTU1BTkRTOyBkb25lAHdyaXRlIGVycm9yOiAlcwB4dHJhY2UgZmQgKCVkKSAhPSBmaWxlbm8geHRyYWNlIGZwICglZCkAeHRyYWNlX3NldDogJWQ6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yAHh0cmFjZV9zZXQ6IE5VTEwgZmlsZSBwb2ludGVyAHsgQ09NTUFORFMgOyB9AFByb2plY3QtSWQtVmVyc2lvbjogYmFzaCA0LjIKUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IApQT1QtQ3JlYXRpb24tRGF0ZTogMjAxNC0wMi0xMSAxMToxOS0wNTAwClBPLVJldmlzaW9uLURhdGU6IDIwMTItMDUtMjkgMTY6MTcrMDEwMApMYXN0LVRyYW5zbGF0b3I6IEtsZW1lbiBLb8WhaXIgPGtsZW1lbi5rb3NpckBnbXguY29tPgpMYW5ndWFnZS1UZWFtOiBTbG92ZW5pYW4gPHRyYW5zbGF0aW9uLXRlYW0tc2xAbGlzdHMuc291cmNlZm9yZ2UubmV0PgpMYW5ndWFnZTogc2wKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKUGx1cmFsLUZvcm1zOiBucGx1cmFscz00OyBwbHVyYWw9KG4lMTAwPT0xID8gMSA6IG4lMTAwPT0yID8gMiA6IG4lMTAwPT0zIHx8IG4lMTAwPT00ID8gMyA6IDApOwoAB3BvdGVrbGEgamUgxI1hc292bmEgb21laml0ZXYgbWVkIMSNYWthbmplbSBuYSB2bm9zOiBzYW1vZGVqbmEgb2RqYXZhCgAJLSVzIGFsaSBtb8W+bm9zdCAtbwoADQptYWxsb2M6ICVzOiVkOiB0cmRpdGV2IGplIGJpbGEgc2xhYm8gaXpwZWxqYW5hDQoAICAod2Q6ICVzKQAgKGl6cGlzIGplZHJhKQAgdnJzdGljYSAAJCVzOiBuaSBtb2dvxI1lIGRvZGVsaXRpIG5hIHRhayBuYcSNaW4AJWMlYzogbmV2ZWxqYXZuYSBtb8W+bm9zdAAlZDogbmV2ZWxqYXZlbiBvcGlzbmlrIGRhdG90ZWtlOiAlcwAlcyBzZSBsYWhrbyBwb2tsacSNZSBzIHBvbW/EjWpvIAAlcyBpbWEgcHJhemVuIGV4cG9ydHN0cgAlcyBqZSAlcwoAJXMgamUgZnVua2NpamEKACVzIGplIHZncmFqZW5hIGx1cGluYQoAJXMgamUga2xqdcSNbmEgYmVzZWRhIGx1cGluZQoAJXMgamUgZHJ1Z28gaW1lIHphIGAlcycKACVzIGplIHJhenByxaFlbm8gKCVzKQoAJXMgbmkgdmV6YW4gbmEgbm9iZW5vIHRpcGtvLgoAJXMgaXp2ZW4gZG9zZWdhACVzJXMlczogJXMgKMW+ZXRvbiBuYXBha2UgamUgIiVzIikAJXM6ICVzACVzOiAlcyBpenZlbiBkb3NlZ2EAJXM6ICVzOiBzbGFiIHRvbG1hxI0AJXM6ICVzOiBuaSBtb2dvxI1lIG9kcHJldGkga290IERBVE9URUtPACVzOiAlczogbmV2ZWxqYXZuYSB2cmVkbm9zdCB6YSBvcGlzbmlrIHNsZWRlbmphIGRhdG90ZWsAJXM6ICVzOiB0cmViYSBqZSB1cG9yYWJpdGkgcG9kcGlzIHByaSBkb2RlbGpldmFuanUgcG92ZXphbmVnYSBwb2xqYQAlczogJXM6JWQ6IG5pIG1vZ2/EjWUgZG9kZWxpdGkgJWx1IGJhanRvdgAlczogJXM6JWQ6IG5pIG1vZ2/EjWUgZG9kZWxpdGkgJWx1IGJhanRvdiAoJWx1IGJhanRvdiBkb2RlbGplbmloKQAlczogZHZvdW1ubyBkb2xvxI1pbG8gcG9zbGEAJXM6IGR2b3VtbmEgcHJldXNtZXJpdGV2ACVzOiBhcmd1bWVudGkgbW9yYWpvIGJpdGkgZG9sb8SNaWxhIG9wcmF2aWxhIGFsaSBwb3NsYQAlczogc2xhYm8gZG9sb8SNaWxvIG9tcmXFvm5lIHBvdGkAJXM6IHNsYWJhIHphbWVuamF2YQAlczogcHJpxI1ha3VqZSBzZSBiaW5hcm5pIG9wZXJhdG9yACVzOiBuaSBtb2dvxI1lIGRvZGVsaXRpICVsdSBiYWp0b3YAJXM6IG5pIG1vZ2/EjWUgZG9kZWxpdGkgJWx1IGJhanRvdiAoJWx1IGJhanRvdiBqZSBkb2RlbGplbmloKQAlczogbmkgbW9nb8SNZSBkb2RlbGl0aSBmZCBzcHJlbWVubGppdmtpACVzOiBuaSBtb2dvxI1lIGRvZGVsaXRpIHNlem5hbWEgxI1sYW51IHBvbGphACVzOiBuaSBtb2dvxI1lIGRvZGVsaXRpIHYgbmUtxaF0ZXZpbMSNbm8ga2F6YWxvACVzOiBuaSBtb2dvxI1lIHByZXR2b3JpdGkgcG92ZXphbmVnYSBwb2xqYSB2IHphYmVsZcW+ZW5vIHBvbGplACVzOiBuaSBtb2dvxI1lIHByZXR2b3JpdGkgemFiZWxlxb5lbmVnYSBwb2xqYSB2IHBvdmV6YW5vIHBvbGplACVzOiBuaSBtb2dvxI1lIHVzdHZhcml0aTogJXMAJXM6IG5pIG1vZ2/EjWUgaXpicmlzYXRpOiAlcwAlczogbmEgdGEgbmHEjWluIG5pIG1vZ2/EjWUgdW5pxI1pdGkgc3ByZW1lbmxqaXZrIHBvbGphACVzOiBuaSBtb2dvxI1lIGl6dmVzdGkgYmluYXJuZSBkYXRvdGVrZQAlczogbmkgbW9nb8SNZSBpenZlc3RpOiAlcwAlczogbmkgbW9nb8SNZSBkb2JpdGkgb21laml0dmU6ICVzACVzOiBuaSBtb2dvxI1lIHNwcmVtZW5pdGkgb21laml0dmU6ICVzACVzOiBuaSBtb2dvxI1lIG9kcHJldGkgemHEjWFzbmUgZGF0b3Rla2U6ICVzACVzOiBuaSBtb2dvxI1lIG9kcHJldGk6ICVzACVzOiBuaSBtb2dvxI1lIHByZXBpc2F0aSBvYnN0b2plxI1lIGRhdG90ZWtlACVzOiBuaSBtb2dvxI1lIGJyYXRpOiAlcwAlczogbmkgbW9nb8SNZSBwb25hc3Rhdml0aQAlczogbmkgbW9nb8SNZSBwb25hc3Rhdml0aTogc2FtbyB6YSBicmFuamUgJXMAJXM6IHVrYXphIG5pIG1vZ2/EjWUgbmFqdGkAJXM6IG5hcGFrYSBtZWQgcHJpZG9iaXZhbmplbSB0cmVudXRuZSBtYXBlOiAlczogJXMKACVzOiBuYXBha2EgaXpyYXphCgAlczogZGF0b3Rla2EgamUgcHJldmVsaWthACVzOiBkYXRvdGVrZSBuaSBtb2dvxI1lIG5hanRpACVzOiBwcnZpIHpuYWsgYnJleiBwcmVzbGVka2EgbmkgYCInACVzOiByYXpwcsWhaXR2ZW5hIHJhenByZWRlbG5pY2EgamUgcHJhem5hCgAlczogcmF6xaFpcml0ZXYgemdvZG92aW5lIGplIHNwb2RsZXRlbGEAJXM6IGdvc3RpdGVsaiBqZSBuZXpuYW4AJXM6IG5ldmVsamF2bmEgbW/Fvm5vc3QgLS0gJWMKACVzOiBpbmxpYiBqZSBzcG9kbGV0ZWwAJXM6IHByacSNYWtvdmFuIGplIGl6cmF6IGNlbGVnYSDFoXRldmlsYQAlczogbmV2ZWxqYXZubyBpbWUgZGVqYW5qYQAlczogbmV2ZWxqYXZlbiBpenZvciBwb2xqYQAlczogbmV2ZWxqYXZlbiBrbGp1xI0gcG92ZXphbmVnYSBwb2xqYQAlczogbmV2ZWxqYXZlbiBkZWwgcG92cmF0bmVnYSBrbGljYQAlczogbmV2ZWxqYXZubyBkb2xvxI1pbG8gb3Bpc25pa2EgZGF0b3Rla2UAJXM6IG5ldmVsamF2ZW4gYXJndW1lbnQgb21laml0dmUAJXM6IG5ldmVsamF2bm8gxaF0ZXRqZSB2cnN0aWMAJXM6IG5ldmVsamF2bmEgbW/Fvm5vc3QAJXM6IG5ldmVsamF2bm8gaW1lIG1vxb5ub3N0aQAlczogbmV2ZWxqYXZuYSBzdG9yaXRldgAlczogbmV2ZWxqYXZubyBpbWUgbW/Fvm5vc3RpIGx1cGluZQAlczogbmV2ZWxqYXZubyBkb2xvxI1pbG8gc2lnbmFsYQAlczogbmV2ZWxqYXZubyBkb2xvxI1pbG8gxI1hc292bmUgb21laml0dmUAJXM6IGplIG1hcGEAJXM6IHBvc2VsICVkIHNlIMW+ZSBpenZhamEgdiBvemFkanUAJXM6IHBvc2VsIGplIHVuacSNZW4AJXM6IHZyc3RpY2EgJWQ6IAAlczogbWFuamthIGxvxI1pbG5payBkdm9wacSNamEAJXM6IG5pIGRvbG/EjWlsYSBkb3BvbG5qZXZhbmphACVzOiBuaSBuYWR6b3JhIHBvc2xhACVzOiBuaSB0YWvFoW5lZ2EgcG9zbGEAJXM6IG5pIGZ1bmtjaWphACVzOiBuaSBvYmnEjWFqbmEgZGF0b3Rla2EAJXM6IG5pIHZncmFqZW5hIGx1cGluYQAlczogbmkgc3ByZW1lbmxqaXZrYSBwb2xqYQAlczogbmkgemFiZWxlxb5lbm8gcG9samUAJXM6IG5pIGRpbmFtacSNbm8gbmFsb8W+ZW5vACVzOiBuaSBtb2dvxI1lIG5hanRpACVzOiB6YWh0ZXZhbiBqZSDFoXRldm5pIGFyZ3VtZW50ACVzOiBtb8W+bm9zdCB6YWh0ZXZhIGFyZ3VtZW50ACVzOiBtb8W+bm9zdCB6YWh0ZXZhIGFyZ3VtZW50IC0tICVjCgAlczogcGFyYW1ldGVyIGplIHByYXplbiBhbGkgcGEgbmkgZG9sb8SNZW4AJXM6IGZ1bmtjaWphIHNhbW8gemEgYnJhbmplACVzOiBzcHJlbWVubGppdmthIGxlIHphIGJyYW5qZQAlczogb21lamVubwAlczogb21laml0ZXY6IG5pIG1vZ2/EjWUgcHJldXNtZXJpdGkgaXpob2RhACVzOiBvbWVqZW5vOiBuaSBtb2dvxI1lIGRvbG/EjWl0aSBgLycgdiBpbWVuaWggdWthemEAJXM6IGl6cmF6IHBvZG5pemEgPCAwACVzOiBwcmnEjWFrdWplIHNlIGVub3Nub3ZlbiBvcGVyYXRvcgAlczogbmVkb2xvxI1lbmEgc3ByZW1lbmxqaXZrYQAlczogdXBvcmFiYTogACgoIGl6cmF6ICkpAChpenBpcyBqZWRyYSkgACh3ZCB6ZGFqOiAlcykKAC4gaW1lX2RhdG90ZWtlIFthcmd1bWVudGldAC9kZXYvKHRjcHx1ZHApL2hvc3QvcG9ydCBuaSBwb2RwcnQgYnJleiBvbXJlxb5qYQAvdG1wIG1vcmEgYml0aSB2ZWxqYXZubyBpbWUgbWFwZQA6ADxuaSB0cmVudXRuZSBtYXBlPgB1a2F6IEFCT1JUAFByZWtpbmphbmplIC4uLgBEb2RhIG1hcGUgc2tsYWR1LgogICAgCiAgICBEb2RhIG1hcG8gbmEgdnJoIHNrbGFkYSBtYXAgYWxpIHBhIHphdnJ0aSBza2xhZCwgZGEgc3ByZW1lbmkKICAgIG5vdiB2cmggc2tsYWRhIHYgdHJlbnV0bm8gZGVsb3ZubyBtYXBvLgogICAgxIxlIGplIGJyZXogYXJndW1lbnRvdiwgaXptZW5qYSBkdmUgdnJobmppIG1hcGkuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLW4JUHJlcHJlxI1pIG9iacSNYWpubyBzcHJlbWVtYm8gbWFwZSBwcmkgZG9kYWphbmp1IG1hcCBza2xhZHUsCiAgICAJdGFrbyBkYSBzZSBvYmRlbGEgbGUgc2tsYWQuCiAgICAKICAgIEFyZ3VtZW50aToKICAgICAgK04JWmF2cnRpIHNrbGFkLCB0YWtvIGRhIGplIE4tdGEgbWFwYSAoxaF0ZXRqZSB6IGxldmUgc3RyYW5pCiAgICAJc2V6bmFtYSwgcHJpa2F6YW5vIHogYGRpcnMnLCB6YcSNZW7FoWkgeiBuacSNKSBuYSB2cmh1LgogICAgCiAgICAgIC1OCVphdnJ0aSBza2xhZCwgdGFrbyBkYSBqZSBOLXRhIG1hcGEgKMWhdGV0amUgeiBkZXNuZSBzdHJhbmkKICAgIAlzZXpuYW1hLCBwcmlrYXphbm8geiBgZGlycycsIHphxI1lbsWhaSB6IG5pxI0pIG5hIHZyaHUuCiAgICAKICAgICAgZGlyCURvZGEgRElSIHNrbGFkdSBtYXBlIG5hIHZyaHUsIGthciBqbyBzcHJlbWVuaSB2IG5vdm8KICAgIAl0cmVudXRubyBkZWxvdm5vIG1hcG8uCiAgICAKICAgIFZncmFqZW5hIGx1cGluYSBgZGlycycgcHJpa2HFvmUgc2tsYWQgbWFwLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIHByZWRsb8W+ZW4gbmV2ZWxqYXZlbiBhcmd1bWVudCBhbGkgxI1lCiAgICBzcHJlbWVtYmEgbWFwZSBzcG9kbGV0aS4ARG9kYSBtYXBvIG5hIHZyaCBza2xhZGEgbWFwZSBhbGkgemF2cnRpCiAgICBza2xhZCwga2FyIHNwcmVtZW5pIG5vdiB2cmggc2tsYWRhIHYgdHJlbnV0bm8gZGVsb3ZubwogICAgbWFwby4gIMSMZSBqZSBicmV6IGFyZ3VtZW50b3YsIHNlIGl6bWVuamF0YSBuYWp2acWhamkgbWFwaS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtbglQcmVwcmXEjXVqZSBvYmnEjWFqbm8gc3ByZW1lbWJvIG1hcGUgcHJpIGRvZGFqYW5qdQogICAgCW1hcCBuYSBza2xhZCwgdGFrbyBzZSBvYmRlbHVqZSBsZSBza2xhZC4KICAgIAogICAgQXJndW1lbnRpOgogICAgICArTglaYXZydGkgc2tsYWQgdGFrbywgZGEgamUgTi10YSBtYXBhICjFoXRldGplCiAgICAJeiBsZXZlIHN0cmFuaSBzZXpuYW1hLCBwcmlrYXphbm8geiBgZGlycycsIHphxI1lbsWhaSB6CiAgICAJbmnEjSkgbmEgdnJodS4KICAgIAogICAgICAtTglaYXZydGkgc2tsYWQgdGFrbywgZGEgamUgTi10YSBtYXBhICjFoXRldGplCiAgICAJeiBkZXNuZSBzdHJhbmkgc2V6bmFtYSwgcHJpa2F6YW5vIHogYGRpcnMnLCB6YcSNZW7FoWkgegogICAgCW5pxI0pIG5hIHZyaHUuCiAgICAKICAgICAgZGlyCURvZGEgRElSIHNrbGFkdSBtYXBlIG5hIHZyaHUsIGthciBqbyBzcHJlbWVuaSB2CiAgICAJbm92byB0cmVudXRubyBkZWxvdm5vIG1hcG8uCiAgICAKICAgIFVrYXogbHVwaW5lIGBkaXJzJyBwcmlrYcW+ZSBza2xhZCBtYXAuAEJ1ZGlsa2EgKHByb2ZpbCkAQnVkaWxrYSAobmF2aWRlem5hKQBCdWRpbGthAEFyaXRtZXRpxI1uYSB6YW5rYSBmb3IuCiAgICAKICAgIEVuYWtvdnJlZG5hIGplIAogICAgCSgoIElaUkFaMSApKQogICAgCXdoaWxlICgoIElaUkFaMiApKTsgZG8KICAgIAkJVUtBWkkKICAgIAkJKCggSVpSQVozICkpCiAgICAJZG9uZQogICAgSVpSQVoxLCBJWlJBWjIsIGluIElaUkFaMyBzbyBhcml0bWV0acSNbmkgaXpyYXppLiDEjGUgamUga2F0ZXJpIGl6cmF6IGl6cHXFocSNZW4sCiAgICBzZSBvYm5hxaFhLCBrb3QgZGEgc28gZW5ha2kgMS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgc3RhbmplIHphZG5qZWdhIGl6dnLFoWVuZWdhIHVrYXphLgBCUFQgdHJhY2UvdHJhcABTbGFiIHNpc3RlbXNraSBrbGljAExhxb5lbiBzaWduYWwAUHJla2luamVuYSBjZXYATmFwYWthIHZvZGlsYQBvbWVqaXRldiBDUEUAUG9kcmVqZW5vIG9wcmF2aWxvIGplIHVuacSNZW5vIGFsaSB6YXVzdGF2bGplbm8AUG9nb3N0YSBpbWVuYSBzcHJlbWVubGppdmsgbHVwaW5lIGluIHVwb3JhYmEuCiAgICAKICAgIEJBU0hfVkVSU0lPTglQb2RhdGtpIG8gcmF6bGnEjWljaSBCYXNoLgogICAgQ0RQQVRICVogZHZvcGnEjWplbSBsb8SNZW4gc2V6bmFtIG1hcCB6YSBpc2thbmplIG1hcCwKICAgIAkJZGFuaWgga290IGFyZ3VtZW50aSB1a2F6dSBgY2QnLgogICAgR0xPQklHTk9SRQlaIGR2b3BpxI1qZW0gbG/EjWVuIHNlem5hbSB2em9yY2V2IHogb3Bpc29tIGltZW4gZGF0b3RlaywKICAgIAkJa2kgc2UgamloIG5lIHVwb8WhdGV2YSBwcmkgcmF6xaFpcml0dmkgaW1lbmEgcG90aS4KICAgIEhJU1RGSUxFCUltZSBkYXRvdGVrZSwga2plciBqZSBzaHJhbmplbmEgdmHFoWEgemdvZG92aW5hIHVrYXpvdi4KICAgIEhJU1RGSUxFU0laRQlOYWp2ZcSNamUgxaF0ZXZpbG8gdnJzdGljLCBraSBqaWggdGEgZGF0b3Rla2EgbGFoa28gdnNlYnVqZS4KICAgIEhJU1RTSVpFCU5hanZlxI1qZSDFoXRldmlsbyB2cnN0aWMgemdvZG92aW5lLCBkbyBrYXRlcmloIGl6dmFqYWpvxI1hCiAgICAJCWx1cGluYSBsYWhrbyBkb3N0b3BhLgogICAgSE9NRQlDZWxvdG5vIGltZSBwb3RpIGRvIHZhxaFlIHByaWphdm5lIG1hcGUuCiAgICBIT1NUTkFNRQlJbWUgdHJlbnV0bmVnYSBnb3N0aXRlbGphLgogICAgSE9TVFRZUEUJVnJzdGEgQ1BFLCBuYSBrYXRlcmVtIHNlIHRhIHJhemxpxI1pY2EgQmFzaCBpenZhamEuCiAgICBJR05PUkVFT0YJTmFkem9ydWplIGRlbG92YW5qZSBsdXBpbmUgb2IgcHJlamVtdSB6bmFrYSB6YSBrb25lYwogICAgCQlkYXRvdGVrZSBrb3QgZWRpbmkgdm5vcy4gxIxlIGplIG5hc3RhdmxqZW4sIGplIHZyZWRub3N0IMWhdGV2aWxvCiAgICAJCXpuYWtvdiB6YSBrb25lYyBkYXRvdGVrZSwga2kgamloIGplIG1vZ2/EjWUgdmlkZXRpIG5hZW5rcmF0CiAgICAJCXYgcHJhem5pIHZyc3RpY2ksIHByZWRlbiBzZSBsdXBpbmEga29uxI1hIChwcml2emV0byAxMCkuCiAgICAJCUtvIGplIHBvbmFzdGF2bGplbiwgem5hayB6YSBrb25lYyBkYXRvdGVrZSBvem5hxI11amUga29uZWMgdm5vc2EuCiAgICBNQUNIVFlQRQlOaXosIGtpIG9wacWhZSB0cmVudXRuaSBzaXN0ZW0sIG5hIGthdGVyZW0gc2UgaXp2YWphIEJhc2guCiAgICBNQUlMQ0hFQ0sJS2FrbyBwb2dvc3RvLCB2IHNla3VuZGFoLCBCYXNoIHByZXZlcmkgemEgbm92byBwb8WhdG8uCiAgICBNQUlMUEFUSAlaIGR2b3BpxI1qZW0gbG/EjWVuIHNlem5hbSBpbWVuIGRhdG90ZWssIHphIGthdGVyZSBCYXNoCiAgICAJCXByZXZlcmkgemEgbm92byBwb8WhdG8uCiAgICBPU1RZUEUJUmF6bGnEjWljYSBzaXN0ZW1hIFVuaXgsIG5hIGthdGVyZW0gc2UgdGEgcmF6bGnEjWljYSBCYXNoIGl6dmFqYS4KICAgIFBBVEgJWiBkdm9wacSNamVtIGxvxI1lbiBzZXpuYW0gaXNrYW5paCBtYXAgcHJpIGlza2FuanUgdWthem92LgogICAgUFJPTVBUX0NPTU1BTkQJVWtheiwga2kgc2UgYm8gaXp2csWhaWwgcHJlZCBpenBpc29tIHZzYWtlZ2EKICAgIAkJZ2xhdm5lZ2EgcG96aXZhLgogICAgUFMxCQlQcnZvdG5pIG5peiBwb3ppdmEuCiAgICBQUzIJCURydWdvdG5pIG5peiBwb3ppdmEuCiAgICBQV0QJCVBvbG5vIGltZSBwb3RpIHRyZW51dG5lIG1hcGUuCiAgICBTSEVMTE9QVFMJWiBkdm9wacSNamVtIGxvxI1lbiBzZXpuYW0gb21vZ2/EjWVuaWggbW/Fvm5vc3RpIGx1cGluZS4KICAgIFRFUk0JSW1lIHRyZW51dG5lIHZyc3RlIHRlcm1pbmFsYS4KICAgIFRJTUVGT1JNQVQJT2JsaWthIGl6cGlzYSB6YSDEjWFzb3ZubyBzdGF0aXN0aWtvLCBraSBqZSBwcmlrYXphbmEKICAgIAkJcyBwcmlkcsW+YW5pbSBpbWVub20gYHRpbWUnLgogICAgYXV0b19yZXN1bWUJTmUtcHJhem5vIHBvbWVuaSwgZGEgamUgYmVzZWRhIHVrYXphLCBraSBzZSBuZW9kdmlzbm8KICAgIAkJcG9qYXZsamEgbmEgxI1ydGksIGlza2FuYSBwcnZhIG5hIHNlem5hbXUgdHJlbnV0bm8gemF1c3RhdmxqZW5paAogICAgCQlwb3Nsb3YuIMSMZSBqZSBuYWpkZW5hIHRhbSwgc2UgdGEgcG9zZWwgcG9zdGF2aSB2IG9zcHJlZGplLgogICAgCQlWcmVkbm9zdCBgZXhhY3QnIHBvbWVuaSwgZGEgc2UgbW9yYSBiZXNlZGEgdWthemEgbmF0YW7EjW5vCiAgICAJCXVqZW1hdGkgeiB1a2F6b20gbmEgc2V6bmFtdSBrb27EjWFuaWggcG9zbG92LgogICAgCQlWcmVkbm9zdCBgc3Vic3RyaW5nJyBwb21lbmksIGRhIHNlIGJlc2VkYSB1a2F6YSBtb3JhIHVqZW1hdGkKICAgIAkJcyBwb2RuaXpvbSBwb3NsYS4gVnNha2EgZHJ1Z2EgdnJlZG5vc3QgcG9tZW5pLAogICAgCQlkYSBtb3JhIHVrYXogYml0aSBwcmVkcG9uYSBrb27EjWFuZWdhIHBvc2xhLgogICAgaGlzdGNoYXJzCVpuYWtpLCBraSBuYWR6b3J1amVqbyByYXrFoWlyaXRldiB6Z29kb3ZpbmUgaW4gaGl0cm8KICAgIAkJemFtZW5qYXZvLiBQcnZpIHpuYWsgamUgem5hayB6YW1lbmphdmUgCiAgICAJCXpnb2RvdmluZSwgb2JpxI1ham5vIGAhJy4gRHJ1Z2kgem5hayBqZSB6bmFrIAogICAgCQlgaGl0cmUgemFtZW5qYXZlJywgb2JpxI1ham5vIGBeJy4KICAgIAkJVHJldGppIHpuYWsgamUgem5hayBgb3BvbWJhIHpnb2RvdmluZScsIG9iacSNYWpubyBgIycuCiAgICBISVNUSUdOT1JFCVogZHZvcGnEjWplbSBsb8SNZW4gc2V6bmFtIHZ6b3JjZXYsIGtpIHNvIHVwb3JhYmxqZW5pIAogICAgCQl6YSBvZGxvxI1hbmplLCBrYXRlcmkgdWthemkgbmFqIHNlIHNocmFuaWpvIG5hIHNlem5hbSB6Z29kb3ZpbmUuCgBOYWRhbGp1agBVc3R2YXJpIHNvb3ByYXZpbG8sIGltZW5vdmFubyBJTUUuCiAgICAKICAgIEl6dnLFoWkgVUtBWiBuZXVza2xhamVubywgcyBzdGFuZGFyZG5pbSBpemhvZG9tIGluIHZub3NvbSB1a2F6YSwga2kgc3RhIAogICAgcG92ZXphbmEgcHJla28gY2V2aSB6IG9waXNuaWtpIGRhdG90ZWssIGtpIHNvIGRvZGVsamVuaSBrYXphbG9tIDAgaW4gMSAKICAgIHNwcmVtZW5saml2a2UgcG9samEgSU1FIHYgaXp2csWhaWxuaSBsdXBpbmkuCiAgICBQcml2emV0byBJTUUgamUgIkNPUFJPQyIuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHN0YW5qZSBrb27EjWFuamEgVUtBWkEuAERvbG/EjWkgYWxpIHByaWthxb5lIHZ6ZGV2a2UuCiAgICAKICAgIMSMZSBqZSBgYWxpYXMnIGJyZXogYXJndW1lbnRvdiwgaXpwacWhZSBzZXpuYW0gdnpkZXZrb3YgdiBvYmxpa2kgemEKICAgIHZlxI1rcmF0bm8gdXBvcmFibyBgYWxpYXMgSU1FPVZSRUROT1NUJyBuYSBzdGFuZGFyZG5lbSBpenBpc3UuCiAgICAKICAgIFYgbmFzcHJvdG5lbSBwcmltZXJ1IGplIHphIHZzYWtvIElNRSBkb2xvxI1lbiB2emRldmVrLCDEjWlnYXIKICAgIFZSRUROT1NUIGplIHBvZGFuYS4KICAgIFZtZXNuaSBwcmVzbGVkbmkgem5hayB2IFZSRUROT1NUSSBwb3Z6cm/EjWksIGRhIG5hc2xlZG5qbwogICAgYmVzZWRvIHByZXZlcmkgemEgemFtZW5qYXZvIHZ6ZGV2a2EsIGtvIGplIHRhIHJhesWhaXJqZW4uCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLXAJSXpwacWhaSAgdnNlIGRvbG/EjWVuZSB2emRldmtlIHYgb2JsaWtpIHphIHZlxI1rcmF0bm8gdXBvcmFibwogICAgCiAgICBTdGF0dXMga29uxI1hbmphOgogICAgdnpkZXZlayB2cm5lIHByYXZpbG5vLCAgcmF6ZW4gxI1lIGplIHByZWRsb8W+ZW5vIElNRSwgemEga2F0ZXJvIG5pCiAgICBiaWwgZG9sb8SNZW4gbm9iZW4gdnpkZXZlay4ARG9sb8SNaSBmdW5rY2lqbyBsdXBpbmUuCiAgICAKICAgIFVzdHZhcmkgZnVua2Npam8gbHVwaW5lLCBpbWVub3Zhbm8gSU1FLiBLYWRhciBqZSBwb2tsaWNhbmEga290IHByZXByb3N0IHVrYXosCiAgICBJTUUgemHFvmVuZSBVS0FaRSB2IHZzZWJpbmkga2xpY2/EjWUgbHVwaW5lLiBLYWRhciBzZSBrbGnEjWUgSU1FLCBzbyBhcmd1bWVudGkKICAgIHBvc3JlZG92YW5pIHYgZnVua2Npam8ga290ICQxLi4uJG4gaW4gaW1lIGZ1bmtjaWplIGplIHYgJEZVTkNOQU1FLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIElNRSBzYW1vIHphIGJyYW5qZS4AUHJpa2HFvmUgc2tsYWQgbWFwLgogICAgCiAgICBQcmlrYcW+ZSBzZXpuYW0gdHJlbnV0bm8gcG9tbmplbmloIG1hcC4gTWFwZSBuYWpkZWpvIAogICAgc3Zvam8gcG90IG5hIHNlem5hbSB6IHVrYXpvbSBgcHVzaGQnOyBuYXZ6Z29yIHBvIHNlem5hbXUKICAgIHNlIGxhaGtvIHZybmV0ZSB6IHVrYXpvbSBgcG9wZCcuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLWMJcG/EjWlzdGkgc2tsYWQgbWFwIHogYnJpc2FuamVtIHZzZWggcHJlZG1ldG92CiAgICAgIC1sCW5lIGl6cGnFoWkgc29yb2RuaWggbWFwIHMgcHJlZHBvbm8gYH4nICB2IG1vam8gZG9tYcSNbyBtYXBvCiAgICAgIC1wCXByaWthxb5pIHNrbGFkIG1hcCB6IGVuaW0gdm5vc29tIHYgdnJzdGljaQogICAgICAtdglpenBpxaFpIHNrbGFkIG1hcGUgeiBlbmltIHZub3NvbSB2IHZyc3RpY2kgeiBkb2xvxI1lbmltCiAgICAJcG9sb8W+YWplbSB2IHNrbGFkdQogICAgCiAgICBBcmd1bWVudGk6CiAgICAgICtOCVByaWthxb5lIE4tdGkgdm5vcyBzIMWhdGV0amVtIHogbGV2ZSBzdHJhbmkgc2V6bmFtYSwgcHJpa2F6YW4KICAgIAlzIHBvbW/EjWpvIG1hcCwga28ga2xpxI1lbW8gYnJleiBtb8W+bm9zdGksIHphxI1lbsWhaSB6IG5pxI0uCiAgICAKICAgICAgLU4JUHJpa2HFvmUgTi10aSB2bm9zIHMgxaF0ZXRqZW0geiBkZXNuZSBzdHJhbmkgc2V6bmFtYSwgcHJpa2F6YW4KICAgIAlzIHBvbW/EjWpvIG1hcCwga28ga2xpxI1lbW8gYnJleiBtb8W+bm9zdGksIHphxI1lbsWhaSB6IG5pxI0uCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHVzcGXFoW5vLCByYXplbiDEjWUgamUgZGFuYSBuZXZlbGphdm5hIG1vxb5ub3N0IGFsaSDEjWUgcHJpZGUgZG8gbmFwYWtlLgBQcmlrYcW+ZSBwb2Ryb2Jub3N0aSBvIHVrYXppaCB2Z3JhamVuZSBsdXBpbmUuCiAgICAKICAgIFByaWthxb5lIGtyYXRrZSBwb3Z6ZXRrZSB1a2F6b3YgdmdyYWplbmUgbHVwaW5lLiDEjGUgamUgVlpPUkVDCiAgICBkb2xvxI1lbiwgZGEgcG9kcm9ibm8gcG9tb8SNIHphIHZzZSB1a2F6ZSwga2kgc2UgdWplbWFqbyB6IFZaT1JDRU0sCiAgICB2IG5hc3Byb3RuZW0gcHJpbWVydSBwcmlrYcW+ZSBzZXpuYW0gdGVtIHBvbW/EjWkuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLWQJaXpwacWhaSBrcmF0ZWsgb3BpcyB6YSB2c2FrbyB0ZW1vCiAgICAgIC1tCXByaWthxb5pIHVwb3JhYm8gdiBvYmxpa2kgcHNldmRvLXByaXJvxI1uacWha2Ugc3RyYW5pCiAgICAgIC1zCXByaWthxb5pIHNhbW8ga3JhdGVrIHBvdnpldGVrIHVwb3JhYmUgemEgdnNha28gdGVtbywga2kgc2UKICAgIAl1amVtYSB6IFZaT1JDRU0KICAgIAogICAgQXJndW1lbnRJOgogICAgICBWWk9SRUMJVnpvcmVjLCBraSBuYXZhamEgdGVtbyBwb21vxI1pCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHVzcGXFoW5vLCByYXplbiDEjWUgVlpPUkVDIG5pIG5hamRlbiBhbGkgcGEgamUgZGFuYSBuZXZlbGphdm5hCiAgICBtb8W+bm9zdC4AUHJpa2HFvmUgcG9kcm9ibm9zdGkgbyB2cnN0aSB1a2F6YS4KICAgIAogICAgWmEgdnNha28gSU1FIG5ha2HFvmUsIGtha28gYmkgYmlsbyB0b2xtYcSNZW5vLCDEjWUgYmkgYmlsbyB1cG9yYWJsamVubwogICAgdiBpbWVudSB1a2F6YS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtYQlwcmlrYcW+aSB2c2EgbWVzdGEsIGtpIHZzZWJ1amVqbyBpenZlZGxqaXZvIGRhdG90ZWtvIHogaW1lbm9tCiAgICAJSU1FOwogICAgCXZrbGp1xI11amUgdnpkZXZrZSwgdmdyYWplbmUgbHVwaW5lIGluIGZ1bmtjaWplLCBhbXBhayBzYW1vLAogICAgCcSNZSBtb8W+bm9zdCBgLXAnIE5JIHVwb3JhYmxqZW5hLgogICAgICAtZgl6YXRyaSBpc2thbmplIGZ1bmtjaWogbHVwaW5lCiAgICAgIC1QCXByaXNpbGkgaXNrYW5qZSBQT1RJIHphIHZzYWtvIElNRSwgdHVkaSDEjWUgamUgdnpkZXZlaywKICAgIAl2Z3JhamVuYSBsdXBpbmEgYWxpIGZ1bmtjaWphLCBpbiB2cm5pIGltZSBkYXRvdGVrZSBkaXNrYSwga2kgYmkKICAgIAliaWwgaXp2csWhZW4uCiAgICAgIC1wCXZybmUgaW1lIGRhdG90ZWtlIGRpc2thLCBraSBiaSBiaWxhIGl6dnLFoWVuYSBhbGkgbmnEjSwKICAgIAnEjWUgYHR5cGUgLXQgTkFNRScgbmUgYmkgdnJuaWwgZGF0b3Rla2UgYGZpbGUnLgogICAgICAtdAlpenBpxaFpIGVubyBiZXNlZG8sIGthdGVyYSBqZSBlbmEgaXptZWQgYHZ6ZGV2a292JywgCiAgICAJYGtsanXEjW5paF9iZXNlZCcsIGBmdW5rY2lqJywgYHZncmFqZW5paF9sdXBpbicsIGBkYXRvdGVrJyBhbGkgYCcsIAogICAgCcSNZSBqZSBJTUUgdnpkZXZlaywgcmV6ZXJ2aXJhbmEgYmVzZWRhLCBmdW5rY2lqYSBsdXBpbmUsIHZncmFqZW5hIAogICAgCWx1cGluYSwgZGF0b3Rla2EgZGlza2EgYWxpIG5pIG5hamRlbm8sIHYgdGVtIHphcG9yZWRqdQogICAgCiAgICBBcmd1bWVudGk6CiAgICAgIElNRQlJbWUgdWthemEsIGtpIGJvIHRvbG1hxI1lbm8uCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHVzcGXFoW5vLCDEjWUgc28gdnNhIElNRU5BIG5hamRlbmE7IHZybmUgbmV1c3BlxaFubywgxI1lIGthdGVybwogICAgbmkgbmFqZGVuby4AUHJpa2HFvmUgYWxpIGl6dmVkZSB1a2F6ZSBzIHNlem5hbWEgemdvZG92aW5lLgogICAgCiAgICBmYyBzZSB1cG9yYWJsamEgemEgc2V6bmFtIGFsaSB1cmVqYW5qZSBpbiBwb25vdm5vIGl6dmFqYW5qZSB1a2F6b3YKICAgIHMgc2V6bmFtYSB6Z29kb3ZpbmUuIFBSVkkgaW4gWkFETkpJIHN0YSBsYWhrbyDFoXRldmlsaSwga2kgZG9sb8SNYXRhIG9ic2VnCiAgICBvei4gUFJWSSBqZSBsYWhrbyBuaXosIGthciBwb21lbmksIGRhIHNlIG5lZGF2bmkgdWtheiB6YcSNbmUgcyB0ZW0gbml6b20uCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLWUgSU1FX1VSRUpFVkFMTklLQQlpemJlcmUgdXJlamV2YWxuaWsgemEgdXBvcmFiby4gUHJpdnpldCBqZQogICAgCQlGQ0VESVQsIG5hdG8gRURJVE9SLCBuYXRvIHZpCiAgICAgIC1sIAlwcmlrYcW+ZSB2cnN0aWNlIG5hbWVzdG8gdXJlamFuamEKICAgICAgLW4JemFuZW1hcmkgxaF0ZXZpbGtlIHZyc3RpYyBtZWQgbmF2ZWRibwogICAgICAtcglvYnJuaSB2cnN0bmkgcmVkIHZyc3RpYyAobmFqbm92ZWrFoWUgc28gbmF2ZWRlbmUgcHJ2ZSkKICAgIAogICAgWiBvYmxpa28gYGZjIC1zIFt2em9yZWM9emFtZW5qYXZhXSBbdWthel0nIHNlIFVLQVogcG9ub3ZubyBpenZlZGUgCiAgICBwbyB0ZW0sIGtvIHNlIG9wcmF2aSBuYWRvbWXFocSNYW5qZSBPTEQ9TkVXLgogICAgCiAgICBMYWhrbyBzZSB1cG9yYWJpIHVwb3JhYmVuIHZ6ZGV2ZWsgcj0nZmMgLXMnIHRha28sIGRhIHNlIHogdm5vc29tIAogICAgYHIgY2MnIHphxb5lbmUgemFkbmppIHVrYXosIGtpIHNlIHphxI1uZSB6IGBjYycgaW4gdm5vc29tIGByJyBzZSBwb25vdm5vIAogICAgaXp2ZWRlIHphZG5qaSB1a2F6LgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubyBhbGkgc3RhbmplIGl6dmVkZW5lZ2EgdWthemE7IG5lLW5pxI1lbG5vLCDEjWUgcHJpZGUgZG8gbmFwYWtlLgBQcmlrYcW+ZSBhbGkgb2JkZWxhIHNlem5hbSB6Z29kb3ZpbmUuCiAgICAKICAgIFByaWthxb5lIHNlem5hbSB6Z29kb3ZpbmUgcyDFoXRldmlsa2FtaSB2cnN0aWMsIHZzYWsgc3ByZW1lbmplbiB2bm9zCiAgICBvem5hxI1pIHMgcHJlZHBvbm8gYConLiBBcmd1bWVudCBOIG5hdmVkZSBzYW1vIE4gemFkbmppaCB2bm9zb3YuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLWMJcG9icmnFoWkgc2V6bmFtIHpnb2RvdmluZSB6IGJyaXNhbmplbSB2c2VoIHZub3NvdgogICAgICAtZCBvZG1pawlwb2JyacWhaSB2bm9zIHpnb2RvdmluZSBwcmkgb2RtaWt1IE9ETUlLLgogICAgCiAgICAgIC1hCXByaXBuaSB2cnN0aWNlIHpnb2RvdmluZSBpeiB0ZSBzZWplIHYgZGF0b3Rla28gemdvZG92aW5lCiAgICAgIC1uCXByZWJlcmkgdnNlIHZyc3RpY2UgemdvZG92aW5lLCBraSDFoWUgbmlzbyBwcmVicmFuZSBpeiBkYXRvdGVrZQogICAgCXpnb2RvdmluZQogICAgICAtcglwcmViZXJpIGRhdG90ZWtvIHpnb2RvdmluZSBpbiBwcmlwbmkgdnNlYmlubyBzZXpuYW1hCiAgICAJemdvZG92aW5lCiAgICAgIC13CXBpxaFpIHRyZW51dG5vIHpnb2RvdmlubyB2IGRhdG90ZWtvIHpnb2RvdmluZQogICAgCWluIGpvIHByaXBuaSBuYSBzZXpuYW0gemdvZG92aW5lCiAgICAKICAgICAgLXAJb3ByYXZpIHJhesWhaXJpdGV2IHpnb2RvdmluZSBuYSB2c2FrIEFSRyBpbiBwcmlrYcW+aSByZXp1bHRhdAogICAgCWJyZXogc2hyYW5pdHZlIG5hIHNlem5hbSB6Z29kb3ZpbmUKICAgICAgLXMJcHJpcG5pIEFSR1VNRU5URSBuYSBzZXpuYW0gemdvZG92aW5lIGtvdCBlZGluaSB2bm9zCiAgICAKICAgIMSMZSBqZSBJTUVfREFUT1RFS0UgcG9kYW4sIHNlIHVwb3JhYmkga290IGRhdG90ZWthIHpnb2RvdmluZS4KICAgIFYgbmFzcHJvdG5lbSBwcmltZXJ1LCDEjWUgJEhJU1RGSUxFIGltYSB2cmVkbm9zdCwga2kgc2UgdXBvcmFiaSwKICAgIHBhIH4vLmJhc2hfaGlzdG9yeS4KICAgIAogICAgxIxlIGplIHNwcmVtZW5saml2a2EgJEhJU1RUSU1FRk9STUFUIGRvbG/EjWVuYSBpbiBuaSBwcmF6bmEsIHNlCiAgICBuamVuYSB2cmVkbm9zdCB1cG9yYWJpIGtvdCBuaXogb2JsaWtlIHphIHN0cmZ0aW1lKDMpIHphIHByaWtheiDEjWFzb3ZuaWgKICAgIMW+aWdvdiwga2kgc28gcG92ZXphbmkgeiB2c2FraW0gdm5vc29tIHByaWthemFuZSB6Z29kb3ZpbmUuCiAgICBWIG5hc3Byb3RuZW0gcHJpbWVydSDEjWFzb3ZuaSDFvmlnaSBuaXNvIHByaWthemFuaS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBqZSBwb2RhbmEgbmV2ZWxqYXZuYSBtb8W+bm9zdCBhbGkgxI1lIHByaWRlCiAgICBkbyBuYXBha2UuAFByaWthxb5pIGFsaSBuYXN0YXZpIG1hc2tvIG5hxI1pbmEgZGF0b3Rla2UuCiAgICAKICAgIE5hc3RhdmkgdXBvcmFibmnFoWtvIG1hc2tvIHVzdHZhcmphbmphIGRhdG90ZWtlIHYgTkHEjElOLiDEjGUgamUKICAgIE5BxIxJTiBpenB1xaHEjWVuLCBwcmlrYcW+ZSB0cmVudXRubyB2cmVkbm9zdCBtYXNrZS4KICAgIAogICAgxIxlIHNlIE5BxIxJTiB6YcSNbmUgeiDFoXRldmtvLCBzZSB0b2xtYcSNaSBrb3Qgb3NtacWha28gxaF0ZXZpbG87CiAgICBzaWNlciBqZSBuaXogc2ltYm9sbmVnYSBuYcSNaW5hIGtvdCBqZSBzcHJlamV0IHMgc3RyYW5pIGNobW9kKDEpLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1wCcSNZSBqZSBOQcSMSU4gaXpwdcWhxI1lbiwgaXpwacWhaSB2IG9ibGlraSwga2kgc2UgbGFoa28gdXBvcmFiaSBrb3Qgdm5vcwogICAgICAtUwluYXJlZGkgc2ltYm9sbmkgaXpwaXM7IHNpY2VyIHNlIGl6cGnFoWUgb3NtacWha28gxaF0ZXZpbG8KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBqZSBOQcSMSU4gbmV2ZWxqYXZlbiBhbGkgxI1lIGplIGRhbmEgbmV2ZWxqYXZuYQogICAgbW/Fvm5vc3QuAFByaWthxb5lIG1vxb5uZSBkb3BvbG5pdHZlLCBvZHZpc25lIG9kIG1vxb5ub3N0aS4KICAgIAogICAgTmFtZW5qZW4gamUgemEgdXBvcmFibyB6bm90cmFqIGZ1bmtjaWplIGx1cGluZSB6YSB1c3R2YXJqYW5qZSBtb8W+bmloCiAgICBkb3BvbG5pdGV2LiDEjGUgamUgaXpiaXJuaSBhcmd1bWVudCBCRVNFREUgcHJlZGxvxb5lbiwgc2UgdXN0dmFyaWpvCiAgICB1amVtYW5qYSBwcm90aSBCRVNFREkuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHVzcGXFoW5vLCByYXplbiDEjWUgamUgcHJlZGxvxb5lbmEgbmV2ZWxqYXZuYSBtb8W+bm9zdCBhbGkgxI1lIHByaWRlCiAgICBkbyBuYXBha2UuAFByaWthxb5lIMSNYXNlIG9wcmF2aWxhLgogICAgCiAgICBQcmlrYcW+ZSB6YnJhbmUgxI1hc2UgdXBvcmFibmlrYSBpbiBzaXN0ZW1hIHphIGx1cGlubyBpbiB2c2EgbmplbmEKICAgIHBvZHJlamVuYSBvcHJhdmlsYS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZlZG5vIHVzcGXFoW5vLgBQcmlrYcW+ZSBzZXpuYW0gdHJlbnV0bm8gcG9tbmplbmloIG1hcC4gIE1hcGUKICAgIHNvIHByaWthemFuZSBuYSBzZXpuYW11IHogdWthem9tIGBwdXNoZCc7IG5hIHZyaAogICAgc2V6bmFtYSBzZSBsYWhrbyB2cm5ldGUgeiB1a2F6b20gYHBvcGQnLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1jCWl6YnJpxaFpIHNrbGFkIG1hcGUgeiBicmlzYW5qZW0gdnNlaCBlbGVtZW50b3YKICAgICAgLWwJbmUgaXpwacWhaSBzb3JvZG5paCBtYXAgcyBwcmVkcG9ubyBgficgIHYgbW9qbyBkb21hxI1vIG1hcG8KICAgICAgLXAJaXpwacWhaSBza2xhZCBtYXBlIHogZW5pbSB2bm9zb20gdiB2cnN0aWNpCiAgICAgIC12CWl6cGnFoWkgc2tsYWQgbWFwZSB6IGVuaW0gdm5vc29tIHYgdnJzdGljaSB6IGRvbG/EjWVuaW0KICAgIAlwb2xvxb5hamVtIHYgc2tsYWR1CiAgICAKICAgIEFyZ3VtZW50aToKICAgICAgK04JUHJpa2HFvmUgTnRpIHZub3MgcyDFoXRldGplbSB6IGxldmUgc3RyYW5pIHNlem5hbWEsIHByaWthemFuIHMKICAgIAlwb21vxI1qbyBtYXAsIGtvIGtsacSNZW1vIGJyZXogbW/Fvm5vc3RpLCB6YcSNZW7FoWkgeiBuacSNLgogICAgCiAgICAgIC1OCVByaWthxb5lIE50aSB2bm9zIHMgxaF0ZXRqZW0geiBkZXNuZSBzdHJhbmkgc2V6bmFtYSwgcHJpa2F6YW4gcwoJcG9tb8SNam8gbWFwLCBrbyBrbGnEjWVtbyBicmV6IG1vxb5ub3N0aSwgemHEjWVuxaFpIHogbmnEjS4AS29uxI1hbm8AS29uxI1hbm8oJWQpAHVrYXogRU1UAE9tb2dvxI1pIGluIG9uZW1vZ2/EjWkgdmdyYWplbmUgbHVwaW5lLgogICAgCiAgICBPbW9nb8SNaSBpbiBvbmVtb2dvxI1pIHVrYXplIHZncmFqZW5lIGx1cGluZS4gIE9uZW1vZ2/EjWVuamUgZG92b2xpCiAgICBpenZlZGJvIHVrYXphIGRpc2thLCBraSBpbWEgZW5ha28gaW1lIGtvdCB2Z3JhamVuYSBsdXBpbmEsIGJyZXoKICAgIHVwb3JhYmUgcG9sbmVnYSBpbWVuYSBwb3RpLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1hCXByaWthxb5pIHNlem5hbSB2Z3JhamVuaWggbHVwaW4sIGtpIGthxb5lLCBrYXRlcmEgamUgb21vZ2/EjWVuYQogICAgICAtbglvbmVtb2dvxI1pIHZzYWtvIElNRSBhbGkgcGEgcHJpa2HFvmkgc2V6bmFtIG9uZW1vZ2/EjWVuaWgKICAgIAl2Z3JhamVuaWggbHVwaW4KICAgICAgLXAJcHJpa2HFvmkgc2V6bmFtIHZncmFqZW5paCBsdXBpbiB2IG9ibGlraSB6YSB2ZcSNa3JhdG5vIHVwb3JhYm8KICAgICAgLXMJcHJpa2HFvmkgc2FtbyBpbWVuYSBwb3NlYm5paCB2Z3JhamVuaWggbHVwaW4gYHNwZWNpYWwnCiAgICAJcG8gUE9TSVggc3RhbmRhcmR1CiAgICAKICAgIE1vxb5ub3N0aSwga2kgbmFkem9ydWplam8gZGluYW1pxI1ubyBuYWxhZ2FuamU6CiAgICAgIC1mCW5hbG/FvmkgSU1FIGl6IHByZWRtZXRhIElNRV9EQVRPVEVLRSB2IHNvdXBvcmFiaQogICAgICAtZAlvZHN0cmFuaSB2Z3JhamVubyBsdXBpbm8sIG5hbG/FvmVubyB6IC1mCiAgICAKICAgIEJyZXogcG9kYW5paCBtb8W+bm9zdGkgamUgdnNha28gSU1FIG9tb2dvxI1lbm8uCiAgICAKICAgIFphIHVwb3JhYm8gcHJlaXprdXNhICd0ZXN0JywgbmFqZGVuZWdhIHYgJFBBVEgsIGluIG5lIHJhemxpxI1pY2UKICAgIHZncmFqZW5lIGx1cGluZSwgdnBpxaFpdGUgYGVuYWJsZSAtbiB0ZXN0Jy4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBJTUUgbmkgdmdyYWplbmEgbHVwaW5hIGFsaSDEjWUgcHJpZGUgZG8gbmFwYWtlLgBPdnJlZG5vdGkgYXJpdG1ldGnEjW5pIGl6cmF6LgogICAgCiAgICBJWlJBWiBqZSBvdnJlZG5vdGVuIHYgc2tsYWR1IHMgcHJhdmlsaSB6YSBhcml0bWV0acSNbm8gb3ZyZWRub3RlbmplLgogICAgSmUgZW5ha292cmVkZW4gdWthenUgImxldCBJWlJBWiIuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIDEsIMSNZSBqZSBJWlJBWiBlbmFrb3ZyZWRlbjsgc2ljZXIgdnJuZSAwLgBPdnJlZG5vdGkgYXJpdG1ldGnEjW5lIGl6cmF6ZS4KICAgIAogICAgT3ZyZWRub3RpIHZzYWsgQVJHIGtvdCBhcml0bWV0acSNbmkgaXpyYXouIFZyZWRub3RlbmplIHNlIG9wcmF2aQogICAgdiBjZWxpaCDFoXRldmlsaWggeiBuZXNwcmVtZW5qZW5vIMWhaXJpbm8gYnJleiBwcmV2ZXJqYW5qYSB6YSBwcmVrb3JhxI1pdGV2LAogICAgxI1lcHJhdiBqZSBkZWxqZW5qZSB6IDAgdWpldG8gaW4gb3puYcSNZW5vIGtvdCBuYXBha2EuIFNlem5hbSBvcGVyYXRvcmpldiwKICAgIGtpIHNsZWRpLCBqZSB6ZHJ1xb5lbiB2IHN0b3BuamUgb3BlcmF0b3JqZXYgZW5ha2loIHByZWRub3N0aS4gU3RvcG5qZSBzbwogICAgcmF6dnLFocSNZW5lIHBvIHBhZGFqb8SNaSBwcmVkbm9zdGkuCiAgICAKICAgIAlpZCsrLCBpZC0tCW5ha25hZG5vIHZlxI1hbmplIHNwcmVtZW5saml2a2UsIG5ha25hZG5vIG1hbmrFoWFuamUKICAgIAkrK2lkLCAtLWlkCXByZWRob2RubyB2ZcSNYW5qZSBzcHJlbWVubGppdmtlLCBwcmVkaG9kbm8gbWFuasWhYW5qZQogICAgCS0sICsJCWVub3Nsb3ZlbiBtaW51cywgcGx1cwogICAgCSEsIH4JCWxvZ2nEjW5hIGluIGJpdG5hIG5lZ2FjaWphCiAgICAJKioJCXBvdGVuY2lyYW5qZQogICAgCSosIC8sICUJCW1ub8W+ZW5qZSwgZGVsamVuamUsIG9zdGFuZWsKICAgIAkrLCAtCQlzZcWhdGV2YW5qZSwgb2TFoXRldmFuamUKICAgIAk8PCwgPj4JCWxldmkgaW4gZGVzbmkgYml0bmkgcHJlbWlraQogICAgCTw9LCA+PSwgPCwgPglwcmltZXJqYXZhCiAgICAJPT0sICE9CQllbmFrb3N0LCBuZWVuYWtvc3QKICAgIAkmCQliaXRuaSBBTkQKICAgIAleCQliaXRuaSBYT1IKICAgIAl8CQliaXRuaSBPUgogICAgCSYmCQlsb2dpxI1uaSBBTkQKICAgIAl8fAkJbG9nacSNbmkgT1IKICAgIAlpenJheiA/IGl6cmF6IDogaXpyYXoKICAgIAkJCXBvZ29qbmkgb3BlcmF0b3IKICAgIAk9LCAqPSwgLz0sICU9LAogICAgCSs9LCAtPSwgPDw9LCA+Pj0sCiAgICAJJj0sIF49LCB8PQlkb2RlbGpldmFuamUgICAKICAgIAogICAgU3ByZW1lbmxqaXZrZSBsdXBpbmUgc28gZG92b2xqZW5lIGtvdCBvcGVyYW5kaS4gSW1lIHNwcmVtZW5saml2a2UKICAgIHNlIHphbWVuamEgeiBuamVubyB2cmVkbm9zdGpvIChwcmlzaWxqZW5hIG5hIGNlbG8gxaF0ZXZpbG8gegogICAgbmVzcHJlbWVubGppdm8gxaFpcmlubykgem5vdHJhaiBpenJhemEuIFphIHVwb3JhYm8gc3ByZW1lbmxqaXZrZSB2IG5pCiAgICB0cmViYSB2a2xvcGxpdGkgYXRyaWJ1dGEgY2VsZWdhIMWhdGV2aWxhLgogICAgCiAgICBPcGVyYXRvcmppIHNvIG92cmVkbm90ZW5pIHYgcHJlZG5vc3RuZW0gdnJzdG5lbSByZWR1LiBQb2RpenJhemkKICAgIHYgb2tsZXBhamloIHNvIG92cmVkbm90ZW5pIHBydmkgaW4gbGFoa28gcHJlcGnFoWVqbyBwcmVkbm9zdG5hIAogICAgcHJhdmlsYSwgb21lbmplbmEgemdvcmFqLgogICAgCiAgICBTdGFuamUga29uxI1hbmphCiAgICDEjGUgemFkbmppIEFSRyBvdnJlZG5vdGkgbmEgMCwgbGV0IHZybmUgMTsgc2ljZXIgbGV0IHZybmUgMC4AT3ZyZWRub3RpIHBvZ29qbmkgaXpyYXouCiAgICAKICAgIFRvIGplIHNvcG9tZW5rYSB6YSB2Z3JhamVubyBsdXBpbm8gInRlc3QiLCB0b2RhIHphZG5qaSBhcmd1bWVudAogICAgbW9yYSBiaXRpIGRvYmVzZWRuaSBgXScgemEgdWplbWFuamUgeiB1a2xlcGFqZW0gYFsnLgBJenZlZGUgcHJlcHJvc3QgdWtheiBhbGkgcHJpa2HFvmUgcG9kcm9ibm9zdGkgbyB1a2F6aWguCiAgICAKICAgIFphxb5lbmUgVUtBWiB6IEFSR1VNRU5USSBpbiB6YXZpcmEgaXNrYW5qZSBmdW5rY2lqZSBsdXBpbmUgYWxpIHByaWthxb5lCiAgICBwb2Ryb2Jub3N0aSBvIGRvbG/EjWVuaWggVUtBWklILiAgTGFoa28gc2UgdXBvcmFiaSB6YSBrbGljIHVrYXpvdgogICAgbmEgZGlza3UsIGthZGFyIG9ic3RhamEgZnVua2NpamEgeiBlbmFraW0gaW1lbm9tLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1wCXVwb3JhYmkgcHJpdnpldG8gdnJlZG5vc3QgemEgUE9ULCBraSBibyB6YWdvdG92byBuYcWhbGEgdnNlCiAgICAJc3RhbmRhcmRuZSBwcmlwb21vxI1rZQogICAgICAtdglwcmlrYcW+aSBvcGlzIFVLQVpBLCBwb2RvYm5vIGtvdCB2Z3JhamVuYSBsdXBpbmEgYHR5cGUnCiAgICAgIC1WCXByaWthxb5pIGJvbGogcG9kcm9ibmkgaXpwaXMgdnNha2VnYSBVS0FaQQogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSBzdGFuamUga29uxI1hbmphIFVLQVpBIGFsaSBuZXVzcGXFoW5vLCDEjWUgVUtBWkEgbmkgbW9nb8SNZSBuYWp0aS4AWmHFvmVuZSBhcmd1bWVudGUga290IHVrYXplIGx1cGluZS4KICAgIAogICAgWmRydcW+aSBBUkdVTUVOVEEgdiBlbiBuaXosIHVwb3JhYmkgcmV6dWx0YXQga290IHZub3MgdiBsdXBpbm8KICAgIGluIHphxb5lbmkga29uxI1uZSB1a2F6ZS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgc3RhbmplIGtvbsSNYW5qYSBhbGkgdXNwZcWhbm8sIMSNZSBqZSB1a2F6IHByYXplbi4ASXp2YWphIHVrYXplLCBkb2tsZXIgamUgcHJlaXprdXMgbmV1c3BlxaFlbi4KICAgIAogICAgUmF6xaFpcmphIGluIGl6dmFqYSBVS0FaRSB0YWtvIGRvbGdvLCBkb2tsZXIgaW1hIHphZG5qaSB1a2F6IHYgVUtBWklICiAgICBgdW50aWwnIHN0YW5qZSBrb27EjWFuamEsIGtpIG5pIG5pxI0uCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHN0YW5qZSB6YWRuamVnYSBpenZyxaFlbmVnYSB1a2F6YS4ASXp2YWphIHVrYXplLCBkb2tsZXIgamUgcHJlaXprdXMgdXNwZcWhZW4uCiAgICAKICAgIFJhesWhaXJqYSBpbiBpenZhamEgVUtBWkUgdGFrbyBkb2xnbywgZG9rbGVyIGltYSB6YWRuamkgdWtheiB2IFVLQVpJSAogICAgYHdoaWxlJyBzdGFuamUga29uxI1hbmphLCBraSBqZSBuacSNLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSBzdGFuamUgemFkbmplZ2EgaXp2csWhZW5lZ2EgdWthemEuAEl6dmFqYSB1a2F6ZSwga2kgdGVtZWxqaWpvIG5hIHBvZ29qaWguCiAgICAKICAgIEl6dmVkZSBzZSBzZXpuYW0gYGlmIFVLQVpJJy4gxIxlIGplIG5qZWdvdm8gc3RhbmplIG5pxI0sIHNlIGl6dmVkZSBzZXpuYW0KICAgIGB0aGVuIFVLQVpJJy4gViBuYXNwcm90bmVtIHByaW1lcnUgc2UgaXp2ZWRlIHZzYWsgc2V6bmFtIGBlbGlmIFVLQVpJJyAKICAgIGluIMSNZSBqZSBuamVnb3ZvIHN0YW5qZSBuacSNLCBzZSBpenZlZGUgdXN0cmV6ZW4gc2V6bmFtIGB0aGVuIFVLQVpJJyAKICAgIGluIHVrYXogaWYgc2UgemFrbGp1xI1pLiBWIG5hc3Byb3RuZW0gcHJpbWVydSBzZSBpenZlZGUgc2V6bmFtIAogICAgYGVsc2UgVUtBWkknLCDEjWUgamUgcHJpc290ZW4uIFN0YW5qZSBrb27EjWFuamEgY2Vsb3RuZWdhIGl6Z3JhamVuamEgCiAgICBqZSBzdGFuamUga29uxI1hbmphIHphZG5qZWdhIGl6dnLFoWVuZWdhIHVrYXphIGFsaSBuacSNLCDEjWUgbm9iZW4gcG9nb2ogbmkgCiAgICBkYWwgcHJhdi4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgc3RhbmplIHphZG5qZWdhIGl6dnLFoWVuZWdhIHVrYXphLgBJenZyxaFpIHVrYXplIG5hIHBvZGxhZ2kgdWplbWFuamEgdnpvcmNldi4KICAgIAogICAgSXpiaXJubyBpenZyxaFpIFVLQVpFLCBraSB0ZW1lbGppam8gbmEgVlpPUkNVIEJFU0VETkVHQSB1amVtYW5qYS4KICAgIGB8JyBzZSB1cG9yYWJsamEgemEgbG/EjWV2YW5qZSB2ZcSNaWggdnpvcmNldi4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgc3RhbmplIHphZG5qZWdhIGl6dnLFoWVuZWdhIHVrYXphLgBJenZlZGUgdWthemUgemEgdnNha2VnYSDEjWxhbmEgbmEgc2V6bmFtdS4KICAgIAogICAgWmFua2EgYGZvcicgIGl6dmVkZSB6YXBvcmVkamUgdWthem92IHphIHZzYWtlZ2EgxI1sYW5hIG5hIHNlem5hbXUKICAgIHByZWRtZXRvdi4gxIxlIGBpbiBCRVNFREUgLi4uOycgbmlzbyBwcmlzb3RuYSwgc2UgcHJlZHZpZGV2YSBgaW4gIiRAIicuCiAgICBaYSB2c2FrIGVsZW1lbnQgdiBCRVNFREFIIGplIElNRSBuYXN0YXZsamVubyB0ZW11IHByZWRtZXR1IGluCiAgICBVS0FaSSBzbyBpenZyxaFlbmkuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHN0YW5qZSB6YWRuamVnYSBpenZyxaFlbmVnYSB1a2F6YS4ASXp2ZWRlIHVrYXplIGl6IGRhdG90ZWtlIHYgdHJlbnV0bmkgbHVwaW5pLgogICAgCiAgICBQcmViZXJlIGluIGl6dmVkZSB1a2F6ZSBpeiBEQVRPVEVLRSB2IHRyZW51dG5pIGx1cGluaS4gVm5vc2kgdiAkUEFUSAogICAgc28gdXBvcmFibGplbmkgemEgaXNrYW5qZSBtYXBlLCBraSB2c2VidWplIElNRV9EQVRPVEVLRS4gCiAgICDEjGUgc28ga2FrxaFuaSBBUkdVTUVOVEkgcHJlZGxvxb5lbmksIHBvc3RhbmVqbyBwb2xvxb5ham5pIHBhcmFtZXRyaSwKICAgIGthZGFyIHNlIGl6dmVkZSBJTUVfREFUT1RFS0UuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHN0YW5qZSB6YWRuamVnYSBpenZyxaFlbmVnYSB1a2F6YSB2IElNRU5VX0RBVE9URUtFOyB2cm5lCiAgICBuZXVzcGXFoW5vLCDEjWUgSU1FTkFfREFUT1RFS0UgbmkgbW9nb8SNZSBicmF0aS4ASXp2csWhaSBwb2dvam5pIHVrYXouCiAgICAKICAgIFZybmUgc3RhbmplIDAgYWxpIDEsIG9kdmlzbm8gb2QgdnJlZG5vdGVuamEgcG9nb2puZWdhIGl6cmF6YSBJWlJBWi4KICAgIGV4cHJlc3Npb24gRVhQUkVTU0lPTi4gSXpyYXppIHNvIHNlc3RhdmxqZW5pIGl6IGlzdGloIG9zbm92LCBraSBzbyB1cG9yYWJsamFqbwogICAgcyBzdHJhbmkgdmdyYWplbmUgbHVwaW5lIGB0ZXN0JyBpbiBzZSBsYWhrbyBzcGFqYWpvIHMgcG9tb8SNam8gbmFzbGVkbmppaAogICAgb3BlcmF0b3JqZXY6CiAgICAKICAgICAgKCBJWlJBWiApCVZybmUgdnJlZG5vc3QgSVpSQVpBCiAgICAgICEgSVpSQVoJCVByYXYsIMSNZSBqZSBJWlJBWiBuYXBhazsgc2ljZXIgdnJuZSBuYXBhawogICAgICBJWlJBWjEgJiYgSVpSQVoyCVByYXYsIMSNZSBzdGEgSVpSQVoxIGluIElaUkFaMiBwcmF2OyBzaWNlciB2cm5lIG5hcGFrCiAgICAgIElaUkFaMSB8fCBJWlJBWjIJVFByYXYsIMSNZSBqZSBJWlJBWjEgYWxpIElaUkFaMiBwcmF2OyBzaWNlciB2cm5lIG5hcGFrCiAgICAKICAgIEthZGFyIHNlIHVwb3JhYml0YSBvcGVyYXRvcmphIGA9PScgaW4gYCE9Jywgc2Ugbml6IGRlc25vIG9kIG9wZXJhdG9yamEgCiAgICB1cG9yYWJpIGtvdCB2em9yZWMgaW4gaXp2csWhaSBzZSB1amVtYW5qZSB2em9yY2V2LiBLYWRhciBzZSB1cG9yYWJpIAogICAgb3BlcmF0b3IgYD1+Jywgc2Ugbml6IGRlc25vIG9kIG9wZXJhdG9yamEgdWplbWEga290IGxvZ2nEjW5pIGl6cmF6LgogICAgCiAgICBPcGVyYXRvcmphICYmIGluIHx8IG5lIHZyZWRub3RpdGEgSVpSQVoyLCDEjWUgSVpSQVoxIHphZG/FocSNYSB6YSBkb2xvxI1pdGV2IAogICAgdnJlZG5vc3RpIGl6cmF6YS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIDAgYWxpIDEsIG9kdmlzbm8gb2QgdnJlZG5vc3RpIElaUkFaQS4ASXp2ZWRlIHZncmFqZW5vIGx1cGluby4KICAgIAogICAgSXp2ZWRlIFZHUkFKRU5PX0xVUElOTyB6IGFyZ3VtZW50aSBBUkcgYnJleiBvcHJhdmxqYW5qYSBpc2thbmphCiAgICB1a2F6YS4gVG8gamUgdXBvcmFibm8sIGtvIMW+ZWxpdGUgcG9ub3ZubyBpenZlc3RpIHZncmFqZW5vIGx1cGlubwogICAga290IGZ1bmtjaWpvIGx1cGluZSwgdmVuZGFyIGJpIHJhZGkgaXp2ZWRsaSB2Z3JhamVubyBsdXBpbm8gem5vdHJhaiBmdW5rY2lqZS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgc3RhbmplIGtvbsSNYW5qYSBWR1JBSkVORV9MVVBJTkUgYWxpIG5hcGFrLCDEjWUgVkdSQUpFTkFfTFVQSU5BCiAgICBuaSB2Z3JhamVuYSBsdXBpbmEgLi4AS29uxI1haiAlZABLb27EjWEgcHJpamF2bm8gbHVwaW5vLgogICAgCiAgICBLb27EjWEgcHJpamF2bm8gbHVwaW5vIHMgc3RhbmplbSBrb27EjWFuamEgTi4gVnJuZSBuYXBha28sIMSNZSBzZQogICAgbmUgaXp2ZWRlIHYgcHJpamF2bmkgbHVwaW5pLgBLb27EjWEgemFua28gZm9yLCB3aGlsZSBhbGkgdW50aWwuCiAgICAKICAgIEtvbsSNYWogemFua28gRk9SLCBXSElMRSBhbGkgVU5USUwuICDEjGUgamUgTiBwb2RhbiwgcHJla2luaSBOIG9iZGFuaWgKICAgIHphbmsuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBTdGFuamUga29uxI1hbmphIGplIDAsIHJhemVuIMSNZSBOIG5pIHZlxI1qaSBrb3QgYWxpIGVuYWsgMS4AS29uxI1hIGx1cGluby4KICAgIAogICAgS29uxI1hIGx1cGlubyBzIHN0YW5qZW0gTi4gxIxlIGplIE4gaXpwdcWhxI1lbiwgc2UgdXBvcmFiaSBzdGFuamUKICAgIGtvbsSNYW5qYSB6YWRuamVnYSBpenZyxaFlbmVnYSB1a2F6YS4Ab21laml0ZXYgZGF0b3Rla2UASXpqZW1hIHMgcGxhdmFqb8SNbyB2ZWppY28AR05VIGJhc2gsIHJhemxpxI1pY2EgJXMgKCVzKQoAR05VIGJhc2gsIHJhemxpxI1pY2EgJXMtKCVzKQoARG9sZ2UgbW/Fvm5vc3RpIEdOVToKAFpkcnXFvmkgdWthemUga290IGVub3RvLgogICAgCiAgICBaYcW+ZW5lIG5hYm9yIHVrYXpvdiB2IHNrdXBpbmkuIFRvIGplIGVkZW4gb2QgbmHEjWlub3YgemEgCiAgICBwcmV1c21lcml0ZXYgY2Vsb3RuZWdhIG5hYm9yYSB1a2F6b3YuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHN0YW5qZSB6YWRuamVnYSBpenZyxaFlbmVnYSB1a2F6YS4Adm5vcyBwb2RhdGtvdiBIRlQgamUgbmEgxI1ha2FuanUAbmHEjWluIG5hZHpvcmEgSEZUIGplIG9kb2JyZW4AbmHEjWluIG5hZHpvcmEgSEZUIGplIHVtYWtuamVuAHphcG9yZWRqZSB6dm9rYSBIRlQgamUga29uxI1hbm8ASE9NRSBuaSBuYXN0YXZsamVuAE9kbG/FvmkATmkgaW1lbmEhAEkvTyBqZSBwcmlwcmF2bGplbgBOZXZlbGphdmVuIHVrYXoAemFodGV2YSBwbyBwb2RhdGtpaABQcmVraW5pAFVuacSNZW4ARG92b2xqZW5qZSBHUEx2Mys6IEdOVSBHUEwgcmF6bGnEjWljYSAzIGFsaSBwb3puZWrFoWUgPGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPgoAU3ByZW1lbmkgYWxpIHByaWthxb5lIG1vxb5ub3N0aSBkb3BvbG5qZXZhbmphLgogICAgCiAgICBTcHJlbWVuaSBtb8W+bm9zdGkgZG9wb2xuamV2YW5qYSB6YSB2c2FrbyBJTUUgb3ouIHRyZW51dG5vIGl6dmVkZW5vIAogICAgZG9wb2xuaXRldiwgxI1lIElNRU5BIG5pc28gcHJlZGxvxb5lbmEuIMSMZSBuaSBkYW5paCBNT8W9Tk9TVEksCiAgICBwcmlrYcW+ZSBtb8W+bm9zdGkgZG9wb2xuamV2YW5qYSB6YSB2c2FrbyBJTUUgYWxpIHRyZW51dG5vIGRvbG/EjWl0ZXYKICAgIGRvcG9sbmpldmFuamEuCiAgICAKICAgIE1vxb5ub3N0aToKICAgIAktbyBtb8W+bm9zdAlOYXN0YXZpIG1vxb5ub3N0IGRvcG9sbml0dmUgTU/FvU5PU1QgemEgdnNha28gSU1FCiAgICAJLUQJCVNwcmVtZW5pIG1vxb5ub3N0aSB6YSAicHJpdnpldG8iIGRvcG9sbml0ZXYgdWthemEKICAgIAktRQkJU3ByZW1lbmkgbW/Fvm5vc3RpIHphICJwcmF6bm8iIGRvcG9sbml0ZXYgdWthemEKICAgIAogICAgVXBvcmFiYSBgK28nIG5hbWVzdG8gYC1vJyBpemtsb3BpIG5hdmVkZW5vIG1vxb5ub3N0LgogICAgCiAgICBBcmd1bWVudGk6CiAgICAKICAgIFZzYWtvIElNRSBzZSBuYW5hxaFhIG5hIHVrYXosIHphIGthdGVyZWdhIG1vcmEgxb5lIHByZWRob2RubyBiaXRpCiAgICBkb2xvxI1lbm8gZG9sb8SNaWxvIGRvcG9sbmpldmFuamEgeiB1cG9yYWJvIHZncmFqZW5lIGx1cGluZSBgY29tcGxldGUnLgogICAgxIxlIG5pIHByZWRsb8W+ZW5paCBJTUVOLCBtb3JhIGNvbXBvcHQgYml0aSBrbGljYW4gcyBzdHJhbmkgZnVua2NpamUsIAogICAga2kgdHJlbnV0bm8gdXN0dmFyamEgZG9wb2xuamV2YW5qYSBpbiBtb8W+bm9zdGkgemEgdGVnYSB0cmVudXRubyAKICAgIGl6dmFqYWpvxI1lZ2EgdXN0dmFyamFsbmlrYSBkb3BvbG5qZXZhbmogc2UgYm9kbyBzcHJlbWVuaWxlLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIHByZWRsb8W+ZW5hIG5ldmVsamF2bmEgbW/Fvm5vc3QgYWxpIHBhIElNRQogICAgbmltYSBkb2xvxI1lbmVnYSBkb2xvxI1pbGEgZG9wb2xuamV2YW5qYS4AUHJlbWFrbmUgcG9zZWwgdiBvc3ByZWRqZS4KICAgIAogICAgUHJlbWFrbmUgcG9zZWwsIGRvbG/EjWVuIHMgc3RyYW5pIERPTE/EjElMQV9QT1NMQSwgdiBvc3ByZWRqZSwKICAgIGthciBnYSBzcHJlbWVuaSB2IHRyZW51dG5pIHBvc2VsLiDEjGUgRE9MT8SMSUxPX1BPU0xBIG5pIHByaXNvdG5vLAogICAgc2UgdXBvcmFiaSBvem5hxI1iYSBsdXBpbmUgdHJlbnV0bmVnYSBwb3NsYS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFN0YW5qZSB1a2F6YSwgcG9zdGF2bGplbmVnYSB2IG9zcHJlZGplLCBhbGkgbmV1c3BlxaFubywgxI1lIHNlCiAgICBwb2phdmkgbmFwYWthLgBQcmVtYWtuZSBwb3NsZSB2IG96YWRqZS4KICAgIAogICAgUG9zdGF2aSBwb3NsZSwgZG9sb8SNZW5lIHMgc3RyYW5pIEpPQl9TUEVDLCB2IG96YWRqZSwga290IMSNZSBiaSBzZQogICAgemHEjWVsaSB6IGAmJy4gxIxlIEpPQl9TUEVDIG5pIHByaXNvdGVuLCBzZSB1cG9yYWJpIG96bmHEjWJhIGx1cGluZQogICAgdHJlbnV0bmVnYSBwb3NsYS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBuYWR6b3IgcG9zbGEgbmkgb21vZ2/EjWVuIGFsaSDEjWUgcHJpZGUKICAgIGRvIG5hcGFrZS4AUHJhemVuIHVrYXouCiAgICAKICAgIEJyZXogdcSNaW5rYTsgdWtheiBuZSBuYXJlZGkgbmnEjWVzYXIuCiAgICAKICAgICBTdGFuamUga29uxI1hbmphOgogICAgIFZlZG5vIHVzcGXFoW5vLgBPTERQV0QgbmkgbmFzdGF2bGplbgBSYXrEjWxlbmkgYXJndW1lbnRlIG1vxb5ub3N0aS4KICAgIAogICAgR2V0b3B0cyBqZSB1cG9yYWJsamVuIHMgc3RyYW5pIHBvc3RvcGtvdiBsdXBpbmUgemEgcmF6xI1sZW5pdGV2CiAgICBwb2xvxb5ham5paCBwYXJhbWV0cm92ICBrb3QgbW/Fvm5vc3RpLgogICAgCiAgICBOSVpfTU/FvU5PU1RJIHZzZWJ1amUgxI1ya2UgbW/Fvm5vc3RpIHphIHByZXBvem5hdm87IMSNZSBkdm9wacSNanUKICAgIHNsZWRpIMSNcmthLCBzZSB6YSBtb8W+bm9zdCBwcmnEjWFrdWplIGRvZGVsamVuIGFyZ3VtZW50LCBraSBtb3JhCiAgICBiaXRpIGxvxI1lbiBzIHByZXNsZWRuaW0gem5ha29tLgogICAgCiAgICBWc2FracSNLCBrbyBqZSBrbGljYW4sIGJvIGdldG9wdHMgcG9zdGF2aWwgbmFzbGVkbmpvIG1vxb5ub3N0IHYKICAgIHNwcmVtZW5saml2a28gbHVwaW5lICRuYW1lLCBuYXN0YXZpbCBpbWUsIMSNZSDFoWUgbmUgb2JzdGFqYSwgaW4KICAgIGthemFsbyBuYXNsZWRuamVnYSBhcmd1bWVudGEgYm8gb2JkZWxhbm8gdiBzcHJlbWVubGppdmtvCiAgICBsdXBpbmUgT1BUSU5ELiBPUFRJTkQgamUgbmFzdGF2bGplbiBuYSAxIHZzYWtpxI0sIGtvIGplIGx1cGluYSBhbGkKICAgIHNrcmlwdGEgbHVwaW5lIHBva2xpY2FuYS4gS28gbW/Fvm5vc3QgemFodGV2YSBhcmd1bWVudCwgZ2EKICAgIGdldG9wdHMgcHJlbWFrbmUgdiBzcHJlbWVubGppdmtvIGx1cGluZSBPUFRBUkcuIAogICAgCiAgICBnZXRvcHRzIHBvcm/EjWEgbmFwYWtlIG5hIGVkZW4gaXptZWQgZHZlaCBuYcSNaW5vdi4gxIxlIGplIHBydmkKICAgIHpuYWsgT1BUU1RSSU5HIGR2b3BpxI1qZSwgZ2V0b3B0cyB1cG9yYWJpIHRpaG8gcG9yb8SNYW5qZSBuYXBhay4KICAgIFYgdGVtIG5hxI1pbnUgbmkgaXpwaXNhbmloIHNwb3JvxI1pbCBvIG5hcGFrYWguIMSMZSBqZSB2aWRlbmEgbmV2ZWxqYXZuYQogICAgbW/Fvm5vc3QsIGdldG9wdHMgcG9zdGF2aSBuYWpkZW4gem5hayBtb8W+bm9zdGkgdiBPUFRBUkcuICDEjGUKICAgIHphaHRldmFuIGFyZ3VtZW50IG5pIG5hamRlbiwgZ2V0b3B0cyBwb3N0YXZpICc6JyB2IElNRSBpbiBkb2RlbGkKICAgIE9QVEFSRyBuYWRlbmVtdSB6bmFrdSBtb8W+bm9zdGkuIMSMZSBnZXRvcHRzIG5pIHYgdGloZW0gbmHEjWludQogICAgaW4gIGplIHZpZGVuYW5ldmVsamF2bmEgbW/Fvm5vc3QsIGdldG9wdHMgcG9zdGF2aSAnPycgdiBJTUUgaW4KICAgIHBvbmFzdGF2aSBPUFRBUkcuIMSMZSB6YWh0ZXZhbiBhcmd1bWVudCBuaSBuYWpkZW4sIGplICc/JwogICAgcG9zdGF2bGplbiB2IElNRSwgT1BUQVJHIGplIHBvbmFzdGF2bGplbiBpbiBwcmlrYXphbm8gamUKICAgIGRpYWdub3N0acSNbm8gc3Bvcm/EjWlsby4KICAgIAogICAgxIxlIGltYSBzcHJlbWVubGppdmthIGx1cGluZSBPUFRFUlIgdnJlZG5vc3QgMCwgZ2V0b3B0cwogICAgb25lbW9nb8SNaSBwcmlrYXogc3Bvcm/EjWlsIG8gbmFwYWthaCwgdHVkaSDEjWUgcHJ2aSB6bmFrIE9QVFNUUklORwogICAgbmkgZHZvcGnEjWplLiBPUFRFUlIgaW1hIHByaXZ6ZXRvIHZyZWRub3N0IDEuCiAgICAKICAgIEdldG9wdHMgb2JpxI1ham5vIHJhesSNbGVuaSBwb2xvxb5ham5lIHBhcmFtZXRyZSAoJDAgLSAkOSksIHRvZGEgxI1lIGplCiAgICBkYW5paCB2ZcSNIGFyZ3VtZW50b3YsIHNlIGppaCByYXrEjWxlbmkuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHVzcGXFoW5vLCDEjWUgamUgbW/Fvm5vc3QgbmFqZGVuYTsgbmV1c3BlxaFubywgxI1lIHByaWRlCiAgICBkbyBrb25jYSBtb8W+bm9zdGkgYWxpIGRvIG5hcGFrZS4ASXpwacWhZSBpbWUgdHJlbnV0bmUgZGVsb3ZuZSBtYXBlLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1MCXByaWthxb5lIHZyZWRub3N0ICRQV0QsIMSNZSBpbWVudWplIHRyZW51dG5vIGRlbG92bm8KICAgIAltYXBvCiAgICAgIC1QCXByaWthxb5lIGZpemnEjW5vIG1hcG8gYnJleiB2c2FrcsWhbmloIHNpbWJvbG5paCBwb3ZlemF2CiAgICAKICAgIFByaXZ6ZXRvIHNlIGBwd2QiIG9ibmHFoWEsIGtvdCDEjWUgYmkgbW/Fvm5vc3QgYC1MICcgYmlsYSBkb2xvxI1lbmEuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIDAsIHJhemVuIMSNZSBqZSBkYW5hIG5ldmVsamF2bmEgbW/Fvm5vc3QgYWxpIHBhIHRyZW51dG5lIG1hcGUKICAgIG5pIG1vZ2/EjWUgcHJlYnJhdGkuAEtvbsSNYWoAUHJlYmVyZSB2cnN0aWNlIGl6IGRhdG90ZWtlIHYgc3ByZW1lbmxqaXZrbyBwb2xqYS4KICAgIAogICAgSmUgc29wb21lbmthIHphIGBtYXBmaWxlJy4AUHJlYmVyZSB2cnN0aWNlIHMgc3RhbmRhcmRuZWdhIHZub3NhICB2IHNwcmVtZW5saml2a28gemFiZWxlxb5lbmVnYSBwb2xqYS4KICAgIAogICAgUHJlYmVyZSB2cnN0aWNlIGl6IHN0YW5kYXJkbmVnYSB2bm9zYSB2IHNwcmVtZW5saml2a28gemFiZWxlxb5lbmVnYSBwb2xqYSAKICAgIFBPTEpFIGFsaSBpeiBvcGlzbmlrYSBkYXRvdGVrIEZELCDEjWUgamUgcHJlZGxvxb5lbmEgbW/Fvm5vc3QgLXUuCiAgICBTcHJlbWVubGppdmthIE1BUEZJTEUgamUgcHJpdnpldG8gUE9MSkUuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLW4gxaF0ZXZlYwlLb3BpcmFqIG5hanZlxI0gdnJzdGljIMWgVEVWQ0EuIMSMZSBqZSDFoFRFVkVDIDAsIHNlIGtvcGlyYWpvCiAgICAJdnNlIHZyc3RpY2UuCiAgICAgIC1PIGl6dm9yCVphxI1uaSBkb2RlbGpldmF0aSBQT0xKVSBwcmkga2F6YWx1IElaVk9SLiBQcml2emV0byBrYXphbG8gamUgMC4KICAgICAgLXMgxaF0ZXZlYyAJWmF2cnppIHBydmUgcHJlYnJhbmUgdnJzdGljZSDFoFRFVkNBLgogICAgICAtdAkJSXogdnNha2UgcHJlYnJhbmUgdnJzdGljZSBvZHN0cmFuaSB2bWVzbm8gbm92byB2cnN0aWNvLgogICAgICAtdSBmZAkJQmVyaSB2cnN0aWNlIGl6IG9waXNuaWthIGRhdG90ZWsgRkQgbmFtZXN0byBzdGFuZGFyZG5lZ2EKICAgIAl2bm9zYS4KICAgICAgLUMgcG92cmF0bmlfa2xpYwlPdnJlZG5vdGkgUE9WUkFUTklfS0xJQyB2c2FracSNLCBrbyBzbyBwcmVicmFuZQogICAgCXZyc3RpY2UgREVMT1YuCiAgICAgIC1jIGRlbAlOYXZlZGkgxaF0ZXZpbG8gdnJzdGljLCBwcmVicmFuaWggbWVkIHZzYWtpbSBrbGljZW0KICAgIAlQT1ZSQVRORUdBX0tMSUNBLgogICAgCiAgICBBcmd1bWVudGk6CiAgICAgIFBPTEpFCQlJbWUgc3ByZW1lbmxqaXZrZSBwb2xqYSB6YSB1cG9yYWJvIHphIHBvZGF0a2UgZGF0b3RlawogICAgCiAgICDEjGUgamUgLUMgcHJlZGxvxb5lbiBicmV6IC1jLCBqZSBwcml2emV0IGRlbCA1MDAwLiBLbyBqZSBQT1ZSQVROSV9LTElDCiAgICBvdnJlZG5vdGVuLCBqZSBwcmVkbG/FvmVubyBrYXphbG8gbmFzbGVkbmplZ2EgcHJlZG1ldGEgcG9samEsIGtpIGJvCiAgICBkb2RlbGplbiBpbiB2cnN0aWNhLCBraSBibyBkb2RlbGplbmEgdGVtdSBwcmVkbWV0dSBrb3QgZG9kYXRuaQogICAgYXJndW1lbnRpLgogICAgCiAgICDEjGUgbmkgcHJlZGxvxb5lbm8geiBpenJlY25pbSBpenZvcm9tLCBibyBtYXBmaWxlIHBvxI1pc3RpbCBQT0xKRSwgcHJlZGVuCiAgICBqaSBibyBkb2RlbGplbi4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBqZSBkYW5hIG5ldmVsamF2bmEgbW/Fvm5vc3Qgb3ouIGplIFBPTEpFIHNhbW8KICAgIHphIGJyYW5qZSBhbGkgcGEgbmkgemFiZWxlxb5lbm8gcG9samUuAFpha2xlcCB6YXBpc2EAT2RzdHJhbmkgbWFwZSBza2xhZGEuCiAgICAKICAgIE9kc3RyYW5pIHZub3NlIHNrbGFkYSBtYXAuIMSMZSBqZSBicmV6IGFyZ3VtZW50b3YsIAogICAgb2RzdHJhbmkgdnJobmpvIG1hcG8gc2tsYWRhIGluIHNwcmVtZW5pIHYgbm92byB2cmhuam8gbWFwby4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtbglQcmVwcmXEjWkgb2JpxI1ham5vIHNwcmVtZW1ibyBtYXBlIHByaSBvZHN0cmFuamV2YW5qdSBtYXAKICAgIAlza2xhZGEsIHRha28gZGEgc2Ugb2JkZWxhIGxlIHNrbGFkLgogICAgCiAgICBBcmd1bWVudGk6CiAgICAgICtOCU9kc3RyYW5pIE4tdGkgdm5vcyBzIMWhdGV0amVtIHogbGV2ZSBzdHJhbmkgc2V6bmFtYSwKICAgIAlwcmlrYXphbmVnYSB6IGBkaXJzJywgemHEjWVuxaFpIHogbmnEjS4gTmEgcHJpbWVyOgogICAgCWBwb3BkICswJyBvZHN0cmFuaSBwcnZvIG1hcG8sIGBwb3BkICsxJyBvZHN0cmFuaSBkcnVnby4KICAgIAogICAgICAtTglPZHN0cmFuaSBOLXRpIHZub3MgcyDFoXRldGplbSB6IGRlc25lIHN0cmFuaSBzZXpuYW1hLAogICAgCXByaWthemFuZWdhIHogYGRpcnMnLCB6YcSNZW7FoWkgeiBuacSNLiBOYSBwcmltZXI6CiAgICAJYHBvcGQgKzAnIG9kc3RyYW5pIHphZG5qbyBtYXBvLCBgcG9wZCArMScgb2RzdHJhbmkgcHJlZHphZG5qby4KICAgIAogICAgVmdyYWplbmEgbHVwaW5hIGBkaXJzJyBwcmlrYcW+ZSBza2xhZCBtYXAuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHVzcGXFoW5vLCByYXplbiDEjWUgamUgcHJlZGxvxb5lbiBuZXZlbGphdmVuIGFyZ3VtZW50IGFsaSDEjWUKICAgIHNwcmVtZW1iYSBtYXBlIHNwb2RsZXRpLgBPZHN0cmFuaSB2c2FrbyBJTUUgcyBzZXpuYW1hIGRvbG/EjWVuaWggdnpkZXZrb3YuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLWEJb2RzdHJhbmkgdnNhIGRvbG/EjWlsYSB2emRldmtvdi4KICAgIAogICAgVnJuZSBwcmF2aWxubywgcmF6ZW4gxI1lIElNRSBuaSBvYnN0b2plxI0gdnpkZXZlay4AT2RzdHJhbmkgcG9zbGUgaXogdHJlbnV0bmUgbHVwaW5lLgogICAgCiAgICBPZHN0cmFuaSB2c2FrIGFyZ3VtZW50IERPTE/EjElMQV9QT1NMQSBzIHNlem5hbWEgZGVqYXZuaWggcG9zbG92LgogICAgQnJleiBkYW5paCBET0xPxIxJTF9QT1NMQSBsdXBpbmEgdXBvcmFiaSBzdm9qbyBvem5hxI1ibyB0cmVudXRuZWdhCiAgICBwb3NsYS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtYQlvZHN0cmFuaSB2c2UgcG9zbGUsIMSNZSBET0xPxIxJTE9fUE9TTEEgbmkgbmF2ZWRlbm8KICAgICAgLWgJb3puYcSNaSB2c2FrbyBET0xPxIxJTE9fUE9TTEEsIHRha28gZGEgc2UgU0lHSFVQIG5lIHBvxaFsamUKICAgIAlwb3NsdSwgxI1lIGx1cGluYSBwcmVqbWUgU0lHSFVQIAogICAgICAtcglvZHN0cmFuaSBzYW1vIHBvc2xlLCBraSBzZSBpenZhamFqbwogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIGRhbmEgbmV2ZWxqYXZuYSBtb8W+bm9zdCBhbGkgxI1lIGplIGRhbm8KICAgIERPTE/EjElMT19QT1NMQS4AT2RzdHJhbmkgdm5vc2UgaXogc2tsYWRhIG1hcC4gIMSMZSBqZSBicmV6IGFyZ3VtZW50b3YsIG9kc3RyYW5pCiAgICBuYWp2acWham8gbWFwbyBpeiBza2xhZGEgaW4gc3ByZW1lbmkgdiBub3ZvIG1hcG8gbmEgdnJodS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtbglQcmVwcmXEjXVqZSBvYmnEjWFqbm8gc3ByZW1lbWJvIG1hcGUgcHJpIGRvZGFqYW5qdQogICAgCW1hcCBpeiBza2xhZGEsIHRha28gc2Ugb2JkZWx1amUgbGUgc2tsYWQuCiAgICAKICAgIEFyZ3VtZW50aToKICAgICAgK04JT2RzdHJhbmkgTi10aSB2bm9zIHMgxaF0ZXRqZW0geiBsZXZlIHN0cmFuaSBzZXpuYW1hLAogICAgCXByaWthemFubyB6IGBkaXJzJywgemHEjWVuxaFpIHogbmnEjS4gIE5hIHByaW1lcjogYHBvcGQgKzAnCiAgICAJb2RzdHJhbmkgcHJ2byBtYXBvLCBgcG9wZCArMScgb2RzdHJhbmkgZHJ1Z28uCiAgICAKICAgICAgLU4JT2RzdHJhbmkgTi10aSB2bm9zIHMgxaF0ZXRqZW0geiBkZXNuZSBzdHJhbmkgc2V6bmFtYSwKICAgIAlwcmlrYXphbm8geiBgZGlycycsIHphxI1lbsWhaSB6IG5pxI0uICBOYSBwcmltZXI6IGBwb3BkICswJwogICAgCW9kc3RyYW5pIHphZG5qbyBtYXBvLCBgcG9wZCAtMScgb2RzdHJhbmkgcHJlZHphZG5qby4KICAgIAogICAgVWtheiBsdXBpbmUgYGRpcnMnIHByaWthxb5lIHNrbGFkIG1hcC4AWmFtZW5qYSBsdXBpbm8geiBkYW5pbSB1a2F6b20uCiAgICAKICAgIEl6dmVkZSBVS0FaLCBraSB6YW1lbmphIHRvIGx1cGlubyB6IGRvbG/EjWVuaW0gcHJvZ3JhbW9tLgogICAgQVJHVU1FTlRJIHBvc3RhbmVqbyBhcmd1bWVudGkgVUtBWlUuIMSMZSBVS0FaIG5pIGRvbG/EjWVuLAogICAgc2UgdnNha2EgcHJldXNtZXJpdGV2IHV2ZWxqYXZpIHYgdHJlbnV0bmkgbHVwaW5pLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1hIGltZQlwb3NyZWR1aiBJTUUga290IG5pxI1uaSBhcmd1bWVudCBVS0FaVQogICAgICAtYwkJaXp2ZWRpIFVLQVogcyBwcmF6bmltIG9rb2xqZW0KICAgICAgLWwJCXBvc3RhdmkgcG9tacWhbGphaiB2IG5pxI1uaSBhcmd1bWVudCBVS0FaVQogICAgCiAgICDEjGUgdWthemEgbmkgYmlsbyBtb2dvxI1lIGl6dmVzdGksIHNlIG5lLXZ6YWplbW5hIGx1cGluYSBrb27EjWEsIHJhemVuCiAgICDEjWUgamUgbmFzdGF2bGplbmEgbW/Fvm5vc3QgbHVwaW5lIGBleGVjZmFpbCcgLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIFVLQVogbmkgbmFqZGVuIGFsaSBwcmlkZSBkbyBuYXBha2UgcHJldXNtZXJpdHZlLgBQb3JvxI1hIHBvcmFibGplbiDEjWFzIHMgc3RyYW5pIGl6dmVkYmUgY2V2b3ZvZGEuCiAgICAKICAgIEl6dmVkZSBDRVZPVk9EIGluIHByaWthxb5lIHBvdnpldGVrIGRlamFuc2tlZ2EgxI1hc2EsIMSNYXMgCiAgICB1cG9yYWJuacWha2UgQ1BFIGluIMSNYXMgc2lzdGVtc2tlIENQRSwgcG9yYWJsamVuIHphIGl6dmFqYW5qZSBDRVZPVk9EQSwKICAgIGtvIHNlIGtvbsSNYS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtcAlwcmlrYcW+aSDEjWFzb3ZuaSBwb3Z6ZXRlayB2IHByZW5vc25pIG9ibGlraSBQT1NJWAogICAgCiAgICBWcmVkbm9zdCBzcHJlbWVubGppdmtlIFRJTUVGT1JNQVQgc2UgdXBvcmFiaSBrb3Qgb2JsaWthIGl6cGlzYS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFN0YW5qZSBrb27EjWFuamEgamUgc3RhbmplIGtvbsSNYW5qYSBDRVZPVk9EQS4ATmFkYWxqdWplIHphbmtvIGZvciwgd2hpbGUgYWxpIHVudGlsLgogICAgCiAgICBOYWRhbGp1amUgbmFzbGVkbmpvIHBvbm92aXRldiBvYmRhbmUgemFua2UgRk9SLCBXSElMRSBhbGkgVU5USUwuCiAgICDEjGUgamUgTiBwb2RhbiwgbmFkYWxqdWplIE4tdG8gb2JkYW5vIHphbmtvLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgU3RhbmplIGtvbsSNYW5qYSBqZSAwLCByYXplbiDEjWUgTiBuaSB2ZcSNamkga290IGFsaSBlbmFrIDEuAE9ibm92aSBwb3NlbCB2IG9zcHJlZGp1LgogICAgCiAgICBKZSBlbmFrb3ZyZWRlbiBhcmd1bWVudHUgRE9MT8SMSUxPX1BPU0xBIHYgdWthenUgYGZnJy4gT2Jub3ZpIHBvc2VsLAogICAga2kgamUgdXN0YXZsamVuIGFsaSB2IG96YWRqdS4gRE9MT8SMSUxPX1BPU0xBIGxhaGtvIGRvbG/EjWkgYm9kaXNpIGltZQogICAgcG9zbGEgYm9kaXNpIMWhdGV2aWxrbyBwb3NsYS4gRE9MT8SMSUxVX1BPU0xBIHNsZWRpIGAmJywga2kgcG9zdGF2aSBwb3NlbAogICAgdiBvemFkamUsIGtvdCDEjWUgYmkgZG9sb8SNaWxvIHBvc2xhIGJpbG8gZG9iYXZsamVubyBrb3QgYXJndW1lbnQgdWthenUgYGJnJy4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgc3RhbmplIG9ibm92bGplbmVnYSBwb3NsYS4AVnJuZSB1c3BlxaFlbiByZXp1bHRhdC4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZlZG5vIHVzcGXFoW5vLgBWcm5lIG5ldXNwZcWhZW4gcmV6dWx0YXQuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWZWRubyBuZXVzcGXFoW5vLgBWcm5lIGl6IGZ1bmtjaWplIGx1cGluZS4KICAgIAogICAgUG92enJvxI1pLCBkYSBmdW5rY2lqYSBhbGkgc2tyaXB0YSBpenZvcm5lIGtvZGUga29uxI1hIHogdnJlZG5vc3RqbwogICAgdnJuaXR2ZSwgZG9sb8SNZW5lIHogTi4gxIxlIGplIE4gaXpwdcWhxI1lbiwgc2UgdXBvcmFiaSBzdGFuamUgdnJuaXR2ZQogICAgemFkbmplZ2EgaXp2csWhZW5lZ2EgdWthemEgem5vdHJhaiBmdW5rY2lqZSBhbGkgc2tyaXB0YS4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYQogICAgVnJuZSBOIGFsaSBuZXVzcGXFoW5vLCDEjWUgbHVwaW5hIG5lIGl6dmVkZSBmdW5rY2lqZSBhbGkgc2tyaXB0YS4AVnJuZSB2c2ViaW5vIHRyZW51dG5lZ2Ega2xpY2EgcG9kcHJvZ3JhbWEuCiAgICAKICAgIEJyZXogSVpSQVpBIHZybmUgIiRsaW5lICRmaWxlbmFtZSIuICBaIElaUkFaT00gdnJuZQogICAgIiRsaW5lICRzdWJyb3V0aW5lICRmaWxlbmFtZSI7IHRhIGRvZGF0ZW4gcG9kYXRlayBzZSBsYWhrbyB1cG9yYWJpCiAgICB6YSB6YWdvdG92aXRldiBzbGVkZW5qYSBza2xhZGEuCiAgICAKICAgIFZyZWRub3N0IElaUkFaQSBuYWthenVqZSwga29saWtvIG9rdmlyamV2IGtsaWNldiBtb3JhIG5hemFqCiAgICBwcmVkIHRyZW51dG5lZ2E7IHpnb3Juamkgb2t2aXIgamUgb2t2aXIgMC4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgMCwgcmF6ZW4gxI1lIGx1cGluYSBuZSBpenZyxaF1amUgZnVua2NpamUgbHVwaW5lIGFsaSBwYSBJWlJBWgogICAgbmkgdmVsamF2ZW4uAFZybmUgdnNlYmlubyB0cmVudXRuZWdhIGtsaWNhIHBvZHByb2dyYW1hLgogICAgCiAgICBCcmV6IEVYUFIgdnJuZSAAU2UgaXp2YWphAE5hcGFrYSBzZWdtZW50YWNpamUASXpiZXJlIGJlc2VkZSBzIHNlem5hbWEgaW4gaXp2ZWRlIHVrYXplLgogICAgCiAgICBCRVNFREUgc28gcmF6xaFpcmplbmUsIGthciB1c3R2YXJpIHNlem5hbSBiZXNlZC4gTmFib3IgcmF6xaFpcmplbmloCiAgICBiZXNlZCBzZSBpenBpxaFlIG5hIHN0YW5kYXJkbm8gbmFwYWtvLCB2c2FrYSBzIHN2b2pvIMWhdGV2aWxrby4KICAgIMSMZSBgaW4gQkVTRURFIC4uLjsnIG5pc28gcHJpc290bmUsIHNlIHByZWR2aWRldmEKICAgIGBpbiAiJEAiJy4gUG90ZW0gamUgcHJpa2F6YW4gcG96aXYgUFMzIGluIHZyc3RpY2EgcHJlYnJhbmEKICAgIHMgc3RhbmRhcmRuZWdhIHZub3NhLiDEjGUgamUgdnJzdGljYSBzZXN0YXZsamVuYSBpeiDFoXRldmlsa2UsIGtpIHVzdHJlemEKICAgIGVuaSBvZCBwcmlrYXphbmloIGJlc2VkLCBwb3RlbSBqZSBJTUUgbmFzdGF2bGplbm8gdGVqIGJlc2VkaS4KICAgIMSMZSBqZSB2cnN0aWNhIHByYXpuYSwgc28gQkVTRURFIHYgcG96aXZ1IHByaWthemFuZSAKICAgIHBvbm92bm8uIMSMZSBzZSBwcmViZXJlIGtvbmVjIGRhdG90ZWtlLCBzZSB1a2F6IHpha2xqdcSNaS4gVnNha2EgZHJ1Z2EgCiAgICBwcmVicmFuYSB2cmVkbm9zdCBwb3Z6cm/EjWksIGRhIHNlIElNRSBuYXN0YXZpIG5hIHByYXpubyB2cmVkbm9zdC4KICAgIFByZWJyYW5hIHZyc3RpY2EgamUgc2hyYW5qZW5hIHYgc3ByZW1lbmxqaXZraSBPREdPVk9SLiBVS0FaSSBzbyBpenZyxaFlbmkgCiAgICBwbyB2c2FrZW0gaXpib3J1LCBkb2tsZXIgc2UgbmUgaXp2ZWRlIHVrYXogYnJlYWsuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamE6CiAgICBWcm5lIHN0YW5qZSB6YWRuamVnYSBpenZyxaFlbmVnYSB1a2F6YS4AUG/FoWxqZSBzaWduYWwgcG9zbHUuCiAgICAKICAgIFBvxaFsamUgb3ByYXZpbGEsIGRvbG/EjWVuYSBzIHN0cmFuaSBJRC1qYSBvcHJhdmlsYSBhbGkgdXBvcmFiaQogICAgRE9MT8SMSUxPX1BPU0xBIHphIHNpZ25hbCwga2kgamUgaW1lbm92YW4gcyBzdHJhbmkgU0lHU1BFQyBhbGkgU0lHTlVNLgogICAgxIxlIFNJR1NQRUMgaW4gU0lHTlVNIG5pc3RhIHByaXNvdG5hLCBzZSBwcmVkdmlkZXZhIFNJR1RFUk0uCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLXMgc2lnCVNJRyBqZSBpbWUgc2lnbmFsYQogICAgICAtbiBzaWcJU0lHIGplIMWhdGV2aWxrYSBzaWduYWxhCiAgICAgIC1sCW5hdmVkaSBpbWVuYSBzaWduYWxvdjsgxI1lIGAtbCcgc2xlZGlqbyBhcmd1bWVudGksIHNlIHByZWR2aWRldmEsCiAgICAJZGEgc28gxaF0ZXZpbGtlIHNpZ25hbG92LCB6YSBrYXRlcmUgYmkgbW9yYWxhIGJpdGkgbmF2ZWRlbmEgaW1lbmEKICAgIAogICAgS2lsbCBqZSB2Z3JhamVuYSBsdXBpbmEgemFyYWRpIGR2ZWggcmF6bG9nb3Y6IG9tb2dvxI1hIElELWplbSBwb3Nsb3YsCiAgICBkYSBzZSBqaWggdXBvcmFiaSBuYW1lc3RvIElELWpldiBvcHJhdmlsIGluIG9tb2dvxI1hIHVuacSNZW5qZSBvcHJhdmlsLAogICAgxI1lIHNlIHByZWtvcmHEjWkgbWVqYSB1c3R2YXJqZW5paCBvcHJhdmlsLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIGRhbmEgbmV2ZWxqYXZuYSBtb8W+bm9zdCBhbGkgxI1lIHByaWRlIGRvCiAgICBuYXBha2UuAE5hc3RhdmkgaW4gcG9uYXN0YXZpIG1vxb5ub3N0aSBsdXBpbmUuCiAgICAKICAgIFNwcmVtZW5pIG5hc3Rhdml0ZXYgdnNha2UgbW/Fvm5vc3RpIGx1cGluZSBJTUVfTU/FvU5PU1RJLgogICAgxIxlIG5pIG5hdmVkZW5paCBhcmd1bWVudG92IG1vxb5ub3N0aSwgbmF2ZWRlIHZzZSBtb8W+bm9zdGkKICAgIGx1cGluZSB6IG96bmHEjWJvLCDEjWUgc28gdnNpIG5hc3RhdmxqZW5pIGFsaSBuZS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtbwlvbWVqaSBJTUVOQV9NT8W9Tk9TVEkgdGVtLCBraSBzbyBkb2xvxI1lbmkgemEgdXBvcmFibyBzIGBzZXQgLW8nCiAgICAgIC1wCXByaWthxb5pIHZzYWtvIG1vxb5ub3N0IGx1cGluZSB6IG5hdmVkYm8gc3RhbmphCiAgICAgIC1xCXByZXByZcSNaSBpemhvZAogICAgICAtcwlvbW9nb8SNaSAobmFzdGF2aSkgdnNha28gSU1FX01Pxb1OT1NUSQogICAgICAtdQlvbmVtb2dvxI1pIChwb25hc3RhdmkpIHZzYWtvIElNRV9NT8W9Tk9TVEkKICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIMSNZSBqZSBJTUVfTU/FvU5PU1RJIG9tb2dvxI1lbm87IG5ldXNwZcWhbm8sIMSNZSBqZQogICAgZGFuYSBuZXZlbGphdm5hIG1vxb5ub3N0IGFsaSDEjWUgamUgSU1FX01Pxb1OT1NUSSBvbmVtb2dvxI1lbm8uAE5hc3RhdmkgYXRyaWJ1dCBpenZvemEgemEgc3ByZW1lbmxqaXZrZSBsdXBpbmUuCiAgICAKICAgIE96bmHEjWkgdnNha28gSU1FIHphIHNhbW9kZWpuaSBpenZveiB2IG9rb2xqZSBuYWtuYWRubyBpenZlZGVuaWgKICAgIHVrYXpvdi4gxIxlIGplIFZSRUROT1NUIHZuZXNlbmEsIGRvZGVsaSBWUkVETk9TVCBwcmVkIGl6dm96b20uCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLWYJbmFuYcWhYWogc2UgbmEgZnVua2NpamUgbHVwaW5lCiAgICAgIC1uCW9kc3RyYW5pIGxhc3Rub3N0IGl6dm96YSBpeiB2c2FrZWdhIElNRU5BCiAgICAgIC1wCXByaWthxb5pIHNlem5hbSB2c2VoIGl6dm/FvmVuaWggc3ByZW1lbmxqaXZrIGluIGZ1bmtjaWoKICAgIAogICAgQXJndW1lbnQgb2QgYC0tJyBvbmVtb2dvxI1pIG5hZGFsam5qbyBvYmRlbGF2byBtb8W+bm9zdGkuCiAgICAKICAgIFN0YW5qZSBrb27EjWFuamEKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBqZSBkYW5hIG5ldmVsamF2bmEgbW/Fvm5vc3QgYWxpIMSNZSBqZQogICAgbmV2ZWxqYXZubyBJTUUuAE5hc3RhdmkgdnJlZG5vc3RpIHNwcmVtZW5saml2ayBpbiBhdHJpYnV0b3YuCiAgICAKICAgIFphc3RhcmVsby4gT2dsZWp0ZSBzaSBgaGVscCBkZWNsYXJlJy4AS2xqdcSNbmloIGJlc2VkLCBraSBzZSB1amVtYWpvIHogdWthemkgbHVwaW5lIGAAS2xqdcSNbmEgYmVzZWRhLCBraSBzZSB1amVtYSB6IHVrYXppIGx1cGluZSBgAEtsanXEjW5pIGJlc2VkaSwga2kgc2UgdWplbWF0YSB6IHVrYXppIGx1cGluZSBgAEtsanXEjW5lIGJlc2VkZSwga2kgc2UgdWplbWFqbyB6IHVrYXppIGx1cGluZSBgAE1vxb5ub3N0aSBsdXBpbmU6CgBQcmVtYWtuZSBwb2xvxb5ham5lIHBhcmFtZXRyZS4KICAgIAogICAgUHJlaW1lbnVqZSBwb2xvxb5ham5lIHBhcmFtZXRyZSAkTisxLCAkTisyIC4uLiB2ICQxLCQyIC4uLgogICAgxIxlIE4gbmkgZGFuLCBzZSBwcmVkdmlkZXZhLCBkYSBqZSAxLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIE4gbmVnYXRpdmVuIGFsaSB2ZcSNamkga290ICQjLgBTaWduYWwgJWQATmF2ZWRlLCBrYWtvIGJvZG8gYXJndW1lbnRpIGRvcG9sbmplbmkgcyBwb21vxI1qbyBSZWFkbGluZS4KICAgIAogICAgWmEgdnNha28gSU1FIG5hdmVkaSwga2FrbyBib2RvIGFyZ3VtZW50aSBkb3BvbG5qZW5pLiDEjGUgbmkgcHJlZGxvxb5lbmloCiAgICBtb8W+bm9zdGksIHNvIG9ic3RvamXEjWUgZG9sb8SNaXR2ZSBkb3BvbG5qZXZhbmphIHByaWthemFuZSBuYSBuYcSNaW4sIGtpIGppbQogICAgb21vZ2/EjWEsIGRhIHNlIHBvbm92bm8gdXBvcmFiaWpvIGtvdCB2bm9zLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1wCXByaWthxb5pIG9ic3RvamXEjWUgZG9sb8SNaXR2ZSBkb3BvbG5qZXZhbmphIHYgb2JsaWtpIHphIHZlxI1rcmF0bm8KICAgIAl1cG9yYWJvCiAgICAgIC1yCW9kc3RyYW5pIGRvbG/EjWl0ZXYgZG9wb2xuamV2YW5qYSB6YSB2c2FrbyBJTUUgYWxpIMSNZSBJTUVOQQogICAgCW5pc28gcHJlZGxvxb5lbmEsIHZzZSBkb2xvxI1pdHZlIGRvcG9sbmpldmFuamEKICAgICAgLUQJdXZlbGphdmkgZG9wb2xuamV2YW5qYSBpbiBkZWphbmphIGtvdCBwcml2emV0YSB6YSB1a2F6ZSBicmV6CiAgICAJZG9sb8SNZW5paCBkb3BvbG5qZXZhbmoKICAgICAgLUUJdXZlbGphdmkgZG9wb2xuamV2YW5qYSBpbiBkZWphbmphIHYgInByYXpuaWgiIHVrYXppaCAtLSAKICAgIAlwb3NrdXMgZG9wb2xuamV2YW5qYSB2IHByYXpuaSB2cnN0aWNpCiAgICAKICAgIEtvIHNlIHBvc2t1xaFhIGRvcG9sbmpldmFuamUsIHNlIGRlamFuamEgdXZlbGphdmlqbyB2IHRha8WhbmVtCiAgICB2cnN0bmVtIHJlZHUsIGtvdCB6IHZlbGlraW1pIMSNcmthbWkgemdvcmFqIG5hdmVkZW5lIG1vxb5ub3N0aS4KICAgIE1vxb5ub3N0IC1EIGltYSBwcmVkbm9zdCBwcmVkIC1FLgogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIGplIHByZWRsb8W+ZW5hIG5ldmVsamF2bmEgbW/Fvm5vc3QgYWxpIMSNZSBwcmlkZQogICAgZG8gbmFwYWtlLgBaYXVzdGF2bGplbm8AVXN0YXZsamVuIChzaWduYWwpAFVzdGF2bGplbiAodmhvZCBUVFkpAFVzdGF2bGplbiAoaXpob2QgVFRZKQBaYXVzdGF2bGplbm8oJXMpAERhIGl6dmVkYm8gbHVwaW5lIHYgcHJpcHJhdmxqZW5vc3QuCiAgICAKICAgIERhIGl6dmVkYm8gdGUgbHVwaW5lIHYgcHJpcHJhdmxqZW5vc3QsIGRva2xlciBuZSBwcmVqbWUgc2lnbmFsYQogICAgU0lHQ09OVC4gTHVwaW5lIHByaWphdmUgbmkgbW9nb8SNZSBkYXRpIHYgcHJpcHJhdmxqZW5vc3QsIHJhemVuIMSNZSBzZQogICAgam8gcHJpc2lsaS4KICAgIAogICAgTW/Fvm5vc3RpOgogICAgICAtZglwcmlzaWxpIHN0YW5qZSBwcmlwcmF2bGplbm9zdGksIHR1ZGkgxI1lIGplIGx1cGluYSBsdXBpbmEgcHJpamF2ZQogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIG5hZHpvciBwb3NsYSBuaSBvbW9nb8SNZW4gYWxpIMSNZSBwcmlkZSBkbwogICAgbmFwYWtlLgBUSU1FRk9STUFUOiBgJWMnOiBuZXZlbGphdmVuIHpuYWsgb2JsaWtlAFpha2xqdcSNZW4AUG/FoXRhIHYgJXMgamUgYmlsYSBwcmVicmFuYQoAT2JzdGFqYWpvIHBvc2xpLCBraSBzZSBpenZhamFqby4KAE9ic3RhamFqbyB1c3RhdmxqZW5pIHBvc2xpLgoAVGkgdWthemkgbHVwaW5lIHNvIGRvbG/EjWVuaSB6bm90cmFqIGx1cGluZS4gVnBpxaFpdGUgYGhlbHAnIHphIHByaWtheiB0ZWdhIHNlem5hbWEuClZwacWhaXRlIGBoZWxwIGltZScsIMSNZSDFvmVsaXRlIGl6dmVkZXRpIHZlxI0gbyBgaW1lbnUnIGZ1bmtjaWplLgpVcG9yYWJpdGUgYGluZm8gYmFzaCcsIMSNZSDFvmVsaXRlIGl6dmVkZXRpIHZlxI0gbyBsdXBpbmkgbmEgc3Bsb8Whbm8uClVwb3JhYml0ZSBgbWFuIC1rJyBhbGkgYGluZm8nLCDEjWUgxb5lbGl0ZSBpenZlZGV0aSB2ZcSNIG8gdWthemloLCBraSBuaXNvIG5hIHRlbSBzZXpuYW11LgoKWnZlemRpY2EgKCopIHBvbGVnIGltZW5hIHBvbWVuaSwgZGEgamUgdWtheiBvbmVtb2dvxI1lbi4KCgBTaWduYWxpIHRyYXAgaW4gb3N0YWxpIGRvZ29ka2kuCiAgICAKICAgIERvbG/EjWkgaW4gb21vZ2/EjWkgcm/EjW5paywgZGEgc2UgamloIHphxb5lbmUsIGthZGFyIGx1cGluYSBzcHJlam1lIHNpZ25hbGUKICAgIGFsaSBvc3RhbGUgcG9nb2plLgogICAgCiAgICBBUkcgamUgdWtheiwga2kgc2UgZ2EgcHJlYmVyZSBpbiBpenZyxaFpLCBrYWRhciBsdXBpbmEgc3ByZWptZSBzaWduYWwoZSkKICAgIFNJR05BTF9TUEVDLiDEjGUgamUgQVJHIG9kc290ZW4gKGluIHByZWRsb8W+ZW4gZW4gU0lHTkFMX1NQRUMpCiAgICBhbGkgYC0nLCBqZSB2c2FrIGRvbG/EjWVuIHNpZ25hbCBwb25hc3RhdmxqZW4gbmEgc3Zvam8gcHJ2b3RubyB2cmVkbm9zdC4KICAgIMSMZSBqZSBBUkcgcHJhemVuIG5peiwgamUgdnNhayBTSUdOQUxfU1BFQyBwcmV6cnQgcyBzdHJhbmkgbHVwaW5lCiAgICBpbiB1a2F6b3YsIGtpIGppaCBwb2tsacSNZS4KICAgIAogICAgxIxlIGplIFNJR05BTF9TUEVDIEVYSVQgKDApLCBzZSBBUkcgaXp2csWhaSBvYiBpemhvZHUgaXogbHVwaW5lLiDEjGUgamUKICAgIFNJR05BTF9TUEVDIERFQlVHLCBqZSBBUkcgaXp2csWhZW4gcHJlZCB2c2FraW0gdWthem9tLiDEjGUgamUKICAgIFNJR05BTF9TUEVDIFJFVFVSTiwgc2UgQVJHIGl6dnLFoWkgdnNha2nEjSwga28gZnVua2NpamEgbHVwaW5lIGFsaSBza3JpcHQsCiAgICB6YWduYW4gcyBzdHJhbmkgLiBhbGkgdmdyYWplbmloIHZpcm92LCBrb27EjWEgeiBpenZhamFuamVtLiBTSUdOQUxfU1BFQwogICAgb2QgRVJSIHBvbWVuaSwgZGEgc2UgQVJHIGl6dmVkZSB2c2FracSNLCBrbyBiaSBuYXBha2EgdWthemEgcG92enJvxI1pbGEsIGRhCiAgICBiaSBzZSBsdXBpbmEga29uxI1hbGEsIGthZGFyIGplIG9tb2dvxI1lbmEgbW/Fvm5vc3QgLWUuCiAgICAKICAgIMSMZSBuaSBwcmVkbG/FvmVuaWggYXJndW1lbnRvdiwgdHJhcCBwcmlrYcW+ZSBzZXpuYW0gdWthem92LCBwb3ZlemFuaWggegogICAgdnNha2ltIHNpZ25hbG9tLgogICAgCiAgICBNb8W+bm9zdGk6CiAgICAgIC1sCVByaWthxb5pIHNlem5hbSBpbWVuIHNpZ25hbG92IGluIG5qaWhvdmUgdXN0cmV6bmUgxaF0ZXZpbGtlCiAgICAgIC1wCXByaWthxb5pIHVrYXplIHRyYXAsIHBvdmV6YW5lIHogdnNha2ltIFNJR05BTF9TUEVDCiAgICAKICAgIFZzYWsgU0lHTkFMX1NQRUMgamUgYm9kaXNpIGltZSBzaWduYWxhIHYgPHNpZ25hbC5oPiBib2Rpc2kgxaF0ZXZpbGthIHNpZ25hbGEuCiAgICBJbWVuYSBzaWduYWxvdiBsb8SNdWplam8gdmVsaWtvc3QgxI1yayBpbiBwcmVkcG9uYSBTSUcgamUgaXpiaXJuYS4KICAgIFNpZ25hbCBqZSBsYWhrbyBwb3NsYW4gdiBsdXBpbm8gcyAia2lsbCAtc2lnbmFsICQkIi4KICAgIAogICAgU3RhbmplIGtvbsSNYW5qYToKICAgIFZybmUgdXNwZcWhbm8sIHJhemVuIMSNZSBqZSBTSUdTUEVDIG5ldmVsamF2ZW4gYWxpIGplIGRhbmEgbmV2ZWxqYXZuYSBtb8W+bm9zdC4AVnBpxaFpdGUgYCVzIC1jICJoZWxwIHNldCInIHphIHZlxI0gcG9kcm9ibm9zdGkgbyBtb8W+bm9zdGloIGx1cGluZS4KAFZwacWhaXRlIGAlcyAtYyBoZWxwJyB6YSB2ZcSNIHBvZHJvYm5vc3RpIG8gbW/Fvm5vc3RpaCB1a2F6b3YgbHVwaW5lLgoATmV6bmFuIHNpZ25hbCAjAE5lem5hbiBzaWduYWwgIyVkAE5lem5hbmEgbmFwYWthAE5lem5hbm8gc3RhbmplAE51amVuIHBvZ29qIElPAFVwb3JhYmE6CSVzIFtkb2xnYSBtb8W+bm9zdCBHTlVdIFttb8W+bm9zdF0gLi4uCgklcyBbZG9sZ2EgbW/Fvm5vc3QgR05VXSBbbW/Fvm5vc3RdIHNrcmlwdG5pIGRva3VtZW50IC4uLgoAVXBvcmFiaXRlICIlcyIsIMSNZSDFvmVsaXRlIHphcHVzdGl0aSBsdXBpbm8uCgBVcG9yYWJpdGUgdWtheiBgYmFzaGJ1ZycgemEgcG9yb8SNYW5qZSBocm/FocSNZXYuCgBTaWduYWwgdXBvcmFibmlrYSAxAFNpZ25hbCB1cG9yYWJuaWthIDIAT2tubyBzZSBqZSBzcHJlbWVuaWxvAFBpxaFlIGFyZ3VtZW50ZSBuYSBzdGFuZGFyZG5pIGl6aG9kLgogICAgCiAgICBQcmlrYcW+ZSBBUkdVTUVOVEUgbmEgc3RhbmRhcmRuaSBpemhvZCwgdGVtdSBzbGVkaSBub3ZhIHZyc3RpY2EuCiAgICAKICAgIE1vxb5ub3N0aToKICAgICAgLW4JbmUgcHJpcG5pIG5vdmUgdnJzdGljZQogICAgCiAgICBTdGFuamUga29uxI1hbmphOgogICAgVnJuZSB1c3BlxaFubywgcmF6ZW4gxI1lIHByaWRlIGRvIG5hcGFrZSBwcmkgcGlzYW5qdS4ASW1hdGUgcG/FoXRvIHYgJF8ASW1hdGUgbm92byBwb8WhdG8gdiAkXwBbIGFyZy4uLiBdAFtbIGl6cmF6IF1dAGAlYyc6IHNsYWIgdWthegBgJWMnOiBuZXZlbGphdmVuIHpuYWsgb2JsaWtlAGAlYyc6IG5ldmVsamF2ZW4gem5hayBzaW1ib2xuZWdhIG5hxI1pbmEAYCVjJzogbmV2ZWxqYXZlbiBvcGVyYXRvciBzaW1ib2xuZWdhIG5hxI1pbmEAYCVjJzogbmV2ZWxqYXZubyBkb2xvxI1pbG8gdnJzdGUgxI1hc2EAYCVzJzogbmkgbW9nb8SNZSBvZHZlemF0aQBgJXMnOiBuZXZlbGphdmVuIHZ6ZGV2ZWsAYCVzJzogbmV2ZWxqYXZubyBpbWUgdGlwa292bmUgcmF6dnJzdGl0dmUAYCVzJzogbWFuamthIHpuYWsgb2JsaWtlAGAlcyc6IG5pIGRvbG/EjWlsbyBvcHJhdmlsYSBhbGkgbmV2ZWxqYXZubyBkb2xvxI1pbG8gcG9zbGEAYCVzJzogbmV2ZWxqYXZubyBkb2xvxI1pbG8AYCVzJzogbmV6bmFubyBpbWUgZnVua2NpamUAcHJpxI1ha292YW4gamUgYCknAHByacSNYWtvdmFuIGplIGApJywgbmFqZGVuIGplICVzAGA6JyBwcmnEjWFrb3Zhbm8gemEgcG9nb2puaSBpenJhegBhZGRfcHJvY2VzczogaWQgb3ByYXZpbGEgJTVsZCAoJXMpIGplIG96bmHEjWVuIGtvdCDFoWUgxb5pdgBhZGRfcHJvY2Vzczogb3ByYXZpbG8gJTVsZCAoJXMpIHYgdGhlX3BpcGVsaW5lAGFsaWFzIFstcF0gW2ltZVs9dnJlZG5vc3RdIC4uLiBdAGFsbF9sb2NhbF92YXJpYWJsZXM6IHYgdHJlbnV0bmVtIGRvc2VndSBuaSB2c2ViaW5lIGZ1bmtjaWplAGFyZ3VtZW50AHByacSNYWtvdmFuIGplIGFyZ3VtZW50AHBvdHJlYm5hIHBvZHBvcmEgc3ByZW1lbmxqaXZrZSBwb2xqYQBwb3NrdXMgZG9kZWxpdHZlIG5lLXNwcmVtZW5saml2a2kAc2xhYiBwb2RwaXMgcG9samEAc2xhYmEgdnJzdGEgdWthemEAc2xhYiBwb3Zlem92YWxuaWsAc2xhYiBza29rAHNsYWJhIHphbWVuamF2YTogbmkgemFrbGp1xI1rYSAiYCIgdiAlcwBzbGFiYSB6YW1lbmphdmE6IG5pIHpha2xqdcSNa2EgYCVzJyB2ICVzAGJhc2hfZXhlY3V0ZV91bml4X2NvbW1hbmQ6IG5pIG1vZ2/EjWUgbmFqdGkgdGlwa292bmUgcmF6dnJzdGl0dmUgemEgdWthegBiZyBbZG9sb8SNaWxvX3Bvc2xhIC4uLl0AYnJlYWsgW25dAGhyb8WhxI06IHNsYWIgxb5ldG9uIGV4cGFzc2lnbgBidWlsdGluIFt2Z3JhamVuYV9sdXBpbmEgW2FyZyAuLi5dXQBjYWxsZXIgW2l6cmF6XQBgcmV0dXJuJyBsYWhrbyB2cm5lIHNhbW8gaXogZnVua2NpamUgYWxpIHNrcmlwdGUgeiBpenZvcm5vIGtvZG8Ac2UgbGFoa28gdXBvcmFiaSBzYW1vIHYgZnVua2NpamkAbmkgbW9nb8SNZSBkb2RlbGl0aSBvcGlzbmlrYSBub3ZpaCBtYXAgemEgdm5vcyBiYXNoIGl6IGZkICVkAG5pIG1vZ2/EjWUgdXN0dmFyaXRpIHphxI1hc25lIGRhdG90ZWtlIHphIGhlcmUtZG9jdW1lbnQ6ICVzAG5pIG1vZ2/EjWUgcG9kdmFqYXRpIGZkICVkIHYgZmQgJWQAbmkgbW9nb8SNZSBwb2R2YWphdGkgaW1lbm92YW5lIGNldmkgJXMga290IGZkICVkAG5pIG1vZ2/EjWUgbmFqdGkgJXMgdiBwcmVkbWV0dSB2IHNvdXBvcmFiaSAlczogJXMAbmkgbW9nb8SNZSB1c3R2YXJpdGkgcG9kcmVqZW5lZ2Egb3ByYXZpbGEgemEgemFtZW5qYXZvIHVrYXphAG5pIG1vZ2/EjWUgdXN0dmFyaXRpIHBvZHJlamVuZWdhIG9wcmF2aWxhIHphIHphbWVuamF2byBvcHJhdmlsYQBuaSBtb2dvxI1lIHVzdHZhcml0aSBjZXZpIHphIHphbWVuamF2byB1a2F6YQBuaSBtb2dvxI1lIHVzdHZhcml0aSBwaXBlIHphIHphbWVuamF2byBvcHJhdmlsYQBuaSBtb2dvxI1lIG9kcHJldGkgaW1lbm92YW5lIGNldmkgJXMgemEgYnJhbmplAG5pIG1vZ2/EjWUgb2RwcmV0aSBpbWVub3ZhbmUgY2V2aSAlcyB6YSBwaXNhbmplAG5pIG1vZ2/EjWUgb2RwcmV0aSBwcmVkbWV0YSB2IHNvdXBvcmFiaSAlczogJXMAbmkgbW9nb8SNZSBwcmV1c21lcml0aSBvYmnEjWFqbmVnYSB2bm9zYSBpeiAvZGV2L251bGw6ICVzAG5pIG1vZ2/EjWUgcG9uYXN0YXZpdGkgbmHEjWluYSBicmV6IHpha2Fzbml0dmUgemEgZmQgJWQAbmkgbW9nb8SNZSBuYXN0YXZpdGkgaW4gcG9uYXN0YXZpdGkgbW/Fvm5vc3RpIGx1cGluZSBoa3JhdGkAbmkgbW9nb8SNZSBuYXN0YXZpdGkgc2t1cGluZSBvcHJhdmlsIHRlcm1pbmFsYSAoJWQpAG5pIG1vZ2/EjWUgcG9uYXN0YXZpdGkgZnVua2NpamUgaW4gc3ByZW1lbmxqaXZrZSBoa3JhdGkAbmkgbW9nb8SNZSBkYXRpIHYgcHJpcHJhdmxqZW5vc3QAcHJpamF2bmUgbHVwaW5lIG5pIG1vZ2/EjWUgZGF0aSB2IHByaXByYXZsamVub3N0AG5pIG1vZ2/EjWUgdXBvcmFiaXRpIGAtZicgemEgdXN0dmFyamFuamUgZnVua2NpagBuaSBtb2dvxI1lIHVwb3JhYml0aSB2ZcSNIGtvdCBlbm8gb2QgLWFucncAY2FzZSBJTUUgaW4gW1ZaT1JFQyBbfCBWWk9SRUNdLi4uKSBVS0FaSSA7O10uLi4gZXNhYwBwb2RyZWplbm8gb3ByYXZpbG8gc2V0cGdpZCAoJWxkIHYgJWxkKQB1a2F6IFstcFZ2XSB1a2F6IFthcmcgLi4uXQBjb21tYW5kX3N1YnN0aXR1dGU6IG5pIG1vZ2/EjWUgcG9kdmFqYXRpIGNldmkga290IGZkIDEAY29tcGdlbiBbLWFiY2RlZmdqa3N1dl0gWy1vIG1vxb5ub3N0XSAgWy1BIGRlamFuamVdIFstRyBrcmFqZXZuaV92em9yZWNdIFstVyBzZXpuYW1fYmVzZWRdICBbLUYgZnVua2NpamFdIFstQyB1a2F6XSBbLVggZmlsdHJpcm5pX3Z6b3JlY10gWy1QIHByZWRwb25hXSBbLVMgcHJpcG9uYV0gW2Jlc2VkYV0AY29tcGxldGUgWy1hYmNkZWZnamtzdXZdIFstcHJdIFstREVdIFstbyBtb8W+bm9zdF0gWy1BIGRlamFuamVdIFstRyBrcmFqZXZuaV92em9yZWNdIFstVyBzZXpuYW1fYmVzZWRdICBbLUYgZnVua2NpamFdIFstQyB1a2F6XSBbLVggZmlsdHJpcm5pX3Z6b3JlY10gWy1QIHByZWRwb25hXSBbLVMgcHJpcG9uYV0gW2ltZSAuLi5dAGtvbsSNYW5vOiBmdW5rY2lqZSBgJXMnIG5pIG1vZ2/EjWUgbmFqdGkAY29tcG9wdCBbLW98K28gbW/Fvm5vc3RdIFstREVdIFtpbWUgLi4uXQBwcmnEjWFrb3ZhbiBqZSBiaW5hcm5pIHBvZ29qbmkgb3BlcmF0b3IAY29udGludWUgW25dAGNvcHJvYyBbSU1FXSB1a2F6IFtwcmV1c21lcml0dmVdAG5pIG1vZ2/EjWUgbmFqdGkgL3RtcCwgdXN0dmFyaXRlIGdhIQBjcHJpbnRmOiBgJWMnOiBuZXZlbGphdmVuIHpuYWsgb2JsaWtlAHRyZW51dG5vAGJyaXNhbmplIHVzdGF2bGplbmVnYSBwb3NsYSAlZCBzIHNrdXBpbm8gb3ByYXZpbGEgJWxkAGRlc2NyaWJlX3BpZDogJWxkOiBuaSB0YWvFoW5lZ2EgZG9sb8SNaWxhIG9wcmF2aWxhAHNrbGFkIG1hcGUgamUgcHJhemVuAGthemFsbyBza2xhZGEgbWFwZQBkaXJzIFstY2xwdl0gWytOXSBbLU5dAGRpc293biBbLWhdIFstYXJdIFtkb2xvxI1pbG9fcG9zbGEgLi4uXQBkZWxpdGV2IHogMABkaW5hbWnEjW5vIG5hbGFnYW5qZSBuaSBuYSB2b2xqbwBlY2hvIFstbl0gW2FyZyAuLi5dAGVjaG8gWy1uZUVdIFthcmcgLi4uXQBwcmF6bm8gaW1lIHNwcmVtZW5saml2a2UgcG9samEAZW5hYmxlIFstYV0gWy1kbnBzXSBbLWYgaW1lX2RhdG90ZWtlXSBbaW1lIC4uLl0AbmFwYWthIG1lZCBwcmlkb2JpdmFuamVtIGF0cmlidXRvdiB0ZXJtaW5hbGE6ICVzAG5hcGFrYSBtZWQgdXZvem9tIGRvbG/EjWlsYSBmdW5rY2lqZSBgJXMnAG5hcGFrYSBtZWQgbmFzdGF2bGphbmplbSBhdHJpYnV0b3YgdGVybWluYWxhOiAlcwBldmFsIFthcmcgLi4uXQBleGVjIFstY2xdIFstYSBpbWVdIFt1a2F6IFthcmd1bWVudGkgLi4uXV0gW3ByZXVzbWVyaXRldiAuLi5dAGV4aXQgW25dAHByacSNYWtvdmFuIGApJwBla3Nwb25lbnQgamUgbWFuasWhaSBrb3QgMABleHBvcnQgWy1mbl0gW2ltZVs9dnJlZG5vc3RdIC4uLl0gYWxpIGV4cG9ydCAtcABpenJheiBqZSBiaWwgcHJpxI1ha292YW4Ac3RvcG5qYSByZWt1cnppdm5vc3RpIGl6cmF6YSBwcmVzZcW+ZW5hAG5hcGFrAGZjIFstZSBpbWVfdXJlamV2YWxuaWthXSBbLWxucl0gW3BydmldIFt6YWRuamldIGFsaSBmYyAtcyBbdnpvcmVjPXphbWVuamF2YV0gW3VrYXpdAGZnIFtkb2xvxI1pbG9fcG9zbGFdAG9waXNuaWsgZGF0b3Rla2UgamUgaXp2ZW4gZG9zZWdhAHphaHRldmFuIGplIGFyZ3VtZW50IGltZW5hIGRhdG90ZWtlAGZvciAoKCBpenJhejE7IGl6cmF6MjsgaXpyYXozICkpOyBkbyBVS0FaSTsgZG9uZQBmb3IgSU1FIFtpbiBJTUVOQSAuLi4gXSA7IGRvIFVLQVpJOyBkb25lAHJhenZlamVuIGlkIG9wcmF2aWxhICVkIHNlIHBvamF2aSB2IGl6dmFqYWpvxI1lbSBzZSBwb3NsdSAlZABmcmVlOiBwb2tsaWNhbiB6IMW+ZSBzcHJvxaHEjWVuaW0gYXJndW1lbnRvbSBibG9rYQBmcmVlOiBrbGljIHogbmVkb2RlbGplbmltIGFyZ3VtZW50b20gYmxva2EAZnJlZTogdmVsaWtvc3RpIHphxI1ldG5paCBpbiBrb27EjW5paCBwb2RhdGtvdm5paCBrb3NvdiAiY2h1bmsiIHNlIHJhemxpa3VqZWpvAGZyZWU6IHphem5hbmEgcHJla29yYcSNaXRldiBzcG9kbmplIG1lamU7IG1oX25ieXRlcyBqZSBpenZlbiBkb3NlZ2EAZnVuY3Rpb24gaW1lIHsgVUtBWkkgOyB9IGFsaSBpbWUgKCkgeyBVS0FaSSA7IH0AcHJpaG9kbmplIHJhemxpxI1pY2UgbHVwaW5lIGJvZG8gcHJpc2lsaWxlIG9jZW5pdGV2IGtvdCBhcml0bWV0acSNbm8gemFtZW5qYXZvAGdldGN3ZDogbmkgbW9nb8SNZSBkb3N0b3BhdGkgZG8gbmFkcmVqZW5paCBtYXAAZ2V0b3B0cyBuaXpfbW/Fvm5vc3RpIGltZVthcmddAGhhc2ggWy1scl0gWy1wIGltZV9wb3RpXSBbLWR0XSBbaW1lIC4uLl0AcmF6cHLFoWl0ZXYgamUgb25lbW9nb8SNZW5hAGhlbHAgWy1kbXNdIFt2em9yZWMgLi4uXQBoZXJlLWRvY3VtZW50IHYgdnJzdGljaSAlZCByYXptZWplbiB6IGVuZC1vZi1maWxlICjFvmVsZW5vIGAlcycpAGhpc3RvcnkgWy1jXSBbLWQgb2RtaWtdIFtuXSBhbGkgaGlzdG9yeSAtYW5ydyBbaW1lX2RhdG90ZWtlXSBhbGkgaGlzdG9yeSAtcHMgYXJnIFthcmcuLi5dAHBvbG/FvmFqIHpnb2RvdmluZQBkb2xvxI1pbG8gemdvZG92aW5lAHphZGV0a2kJdWthegoAcG8gcHJlZGhvZG5lbSB2ZcSNYW5qdSBhbGkgbWFuasWhYW5qdSBqZSBwcmnEjWFrb3Zhbm8gZG9sb8SNaWxvAGlmIFVLQVpJOyB0aGVuIFVLQVpJOyBbIGVsaWYgVUtBWkk7IHRoZW4gVUtBWkk7IF0uLi4gWyBlbHNlIFVLQVpJOyBdIGZpAGluaXRpYWxpemVfam9iX2NvbnRyb2w6IGdldHBncnAgamUgc3BvZGxldGVsAGluaXRpYWxpemVfam9iX2NvbnRyb2w6IHZyc3RpxI1uYSBkaXNjaXBsaW5hAGluaXRpYWxpemVfam9iX2NvbnRyb2w6IHNldHBnaWQAbmV2ZWxqYXZuYSBhcml0bWV0acSNbmEgemJpcmthAG5ldmVsamF2bmEgemJpcmthAG5ldmVsamF2ZW4gem5hayAlZCB2IGV4cG9ydHN0ciB6YSAlcwBuZXZlbGphdm5vIMWhZXN0bmFqc3RpxaFrbyDFoXRldmlsbwBuZXZlbGphdm5vIMWhdGV2aWxvAG5ldmVsamF2bm8gb3NtacWha28gxaF0ZXZpbG8AbmV2ZWxqYXZuYSDFoXRldmthIHNpZ25hbGEAcG9zZWwgJWQgc2UgamUgcHJpxI1lbCBicmV6IG5hZHpvcmEAZG9sb8SNaWxvX3Bvc2xhIFsmXQBqb2JzIFstbG5wcnNdIFtkb2xvxI1pbG9fcG9zbGEgLi4uXSBhbGkgam9icyAteCB1a2F6IFthcmd1bWVudGldAGtpbGwgWy1zIGRvbG/EjWlsb19zaWduYWxhIHwgLW4gxaF0X3NpZ25hbGEgfCAtZG9sb8SNaWxvX3NpZ25hbGFdIHBpZCB8IGRvbG/EjWlsb19wb3NsYSAuLi4gYWxpIGtpbGwgLWwgW2RvbG/EjWlsb19zaWduYWxhXQB6YWRuamkgdWthejogJXMKAGxldCBhcmcgW2FyZyAuLi5dAG9tZWppdGV2AHZyc3RpY2EgJWQ6IAB1cmVqYW5qZSB2cnN0aWMgbmkgb21vZ2/EjWVubwBsb2NhbCBbbW/Fvm5vc3RdIGltZVs9dnJlZG5vc3RdIC4uLgBvZGphdmEKAGxvZ291dCBbbl0AxaF0ZXZlYyB6YW5rZQBtYWtlX2hlcmVfZG9jdW1lbnQ6IHNsYWJhIHZyc3RhIG5hdm9kaWxhICVkAG1ha2VfbG9jYWxfdmFyaWFibGU6IHYgdHJlbnV0bmVtIGRvc2VndSBuaSB2c2ViaW5lIGZ1bmtjaWplAG1ha2VfcmVkaXJlY3Rpb246IG5hdm9kaWxvIHByZXVzbWVyaXR2ZSBgJWQnIGplIGl6dmVuIGRvc2VnYQBtYWxsb2M6IHZzZWJpbmEgYmxva2EgbmEgcHJvc3RlbSBzZXpuYW11IGplIGJpbGEgcHJlcGlzYW5hAG1hbGxvYzogc3BvZGxldGVsYSB0cmRpdGV2OiAlcwoAbWFwZmlsZSBbLW4gxaF0ZXZlY10gWy1PIGl6dm9yXSBbLXMgxaF0ZXZlY10gWy10XSBbLXUgZmRdIFstQyBwb3ZyYXRuaV9rbGljXSBbLWMgZGVsXSBbcG9samVdAHByZXNlbGkgb3ByYXZpbG8gbmEgZHJ1ZyBDUEUAbWFuamthIGApJwBtYW5qa2EgYF0nAG1hbmprYSDFoWVzdG5hanN0acWha2EgxaF0ZXZrYSB6YSBceABtYW5qa2EgxaF0ZXZrYSBzIHBvZHBvcm8gdW5pY29kZSB6YSBcJWMAb21yZcW+bm8gb3ByYXZpbG8gbmkgcG9kcHJ0bwBuaSBgPScgdiBleHBvcnRzdHIgemEgJXMAYnJleiB6YWtsanXEjWthIGAlYycgdiAlcwBuYWpkZW5lZ2Egbmkgbm9iZW5lZ2EgdWthemEAbm9iZW5hIHRlbWEgcG9tb8SNaSBzZSBuZSB1amVtYSBzIGAlcycuICBQb3NrdXNpdGUgYGhlbHAgaGVscCcgYWxpIGBtYW4gLWsgJXMnIGFsaSBgaW5mbyAlcycuAG5pIG5hZHpvcmEgcG9zbGEAYnJleiBuYWR6b3JhIHBvc2xhIHYgdGVqIGx1cGluaQBuaSB1amVtYW5qYTogJXMAbmkgZHJ1Z2UgbWFwZQBkcnVnZSBtb8W+bm9zdGkgbmlzbyBkb3ZvbGplbmUgeiBgLXgnAHRyZW51dG5vIHNlIG5lIGl6dmFqYSBmdW5rY2lqYSBkb3BvbG5qZXZhbmphAG5pIHByaWphdm5hIGx1cGluYTogdXBvcmFiaXRlIGBleGl0JwBvc21pxaFrbyDFoXRldmlsbwBzbWlzZWxubyBzYW1vIHYgYGZvcicsIGB3aGlsZScsIGFsaSBgdW50aWwnIHphbmtpAG5hcGFrYSBjZXZpAHBvcF9zY29wZTogZ2xhdmEgc2hlbGxfdmFyaWFibGVzIG5pIHRyZW51dGVuIG9ic2VnIG9rb2xqYQBwb3BfdmFyX2NvbnRleHQ6IGdsYXZhIHNoZWxsX3ZhcmlhYmxlcyBuaSB2c2ViaW5hIGZ1bmtjaWplAHBvcF92YXJfY29udGV4dDogbmkgdnNlYmluZSBnbG9iYWxfdmFyaWFibGVzAHBvcGQgWy1uXSBbK04gfCAtTl0AaXpwYWQgZWxla3RyacSNbmVnYSB0b2thIGplIG5laXpiZcW+ZW4AcHJpbnRfY29tbWFuZDogc2xhYiBwb3Zlem92YWxuaWsgYCVkJwBwcmludGYgWy12IHNwcmVtZW5saml2a2FdIG9ibGlrYSBbYXJndW1lbnRpXQBwcm9nY29tcF9pbnNlcnQ6ICVzOiBOVUxMIENPTVBTUEVDAG5hcGFrYSBwcm9ncmFtaXJhbmphAHB1c2hkIFstbl0gWytOIHwgLU4gfCBtYXBhXQBwd2QgWy1MUF0AcmVhZCBbLWVyc10gWy1hIHBvbGplXSBbLWQgcmF6bWVqaWxuaWtdIFstaSBiZXNlZGlsb10gWy1uIG4tem5ha292XSBbLU4gbi16bmFrb3ZdIFstcCBwb3ppdl0gWy10IMSNYXNvdm5hX29tZWppdGV2XSBbLXUgZmRdIFtpbWUgLi4uXQBuYXBha2EgbWVkIGJyYW5qZW06ICVkOiAlcwByZWFkYXJyYXkgWy1uIMWhdGV2ZWNdIFstTyBpenZvcl0gWy1zIMWhdGV2ZWNdIFstdF0gWy11IGZkXSBbLUMgcG92cmF0bmlfa2xpY10gWy1jIGRlbF0gW3BvbGplXQByZWFkb25seSBbLWFBZl0gW2ltZVs9dnJlZG5vc3RdIC4uLl0gYWxpIHJlYWRvbmx5IC1wAHJlYWxsb2M6IGtsaWMgeiBuZWRvZGVsamVuaW0gYXJndW1lbnRvbSBibG9rYQByZWFsbG9jOiB2ZWxpa29zdGkgemHEjWV0bmloIGluIGtvbsSNbmloIHBvZGF0a292bmloIGtvc292ICJjaHVuayIgc2UgcmF6bGlrdWplam8AcmVhbGxvYzogemF6bmFuYSBwcmVrb3JhxI1pdGV2IHNwb2RuamUgbWVqZTsgbWhfbmJ5dGVzIGplIGl6dmVuIGRvc2VnYQBwcmVrb3JhxI1pdGV2IHNwb2RuamUgbWVqZSBza2xhZGEgcmVrdXJ6aXZub3N0aQBuYXBha2EgcHJldXNtZXJpdHZlOiBuaSBtb2dvxI1lIHBvZHZhamF0aSBmZAByZWdpc3Rlcl9hbGxvYzogamUgJXAgxb5lIHYgcmF6cHJlZGVsbmljaSBrb3QgZG9kZWxqZW4/CgByZWdpc3Rlcl9hbGxvYzogamUgZG9kZWxpdHZlbmEgcmF6cHJlZGVsbmljYSBwb2xuYSB6IEZJTkRfQUxMT0M/CgByZWdpc3Rlcl9mcmVlOiBqZSAlcCDFvmUgdiByYXpwcmVkZWxuaWNpIGtvdCBwcm9zdD8KAG9tZWplbm8AcmV0dXJuIFtuXQBydW5fcGVuZGluZ190cmFwczogc2xhYmEgdnJlZG5vc3QgdiB0cmFwX2xpc3RbJWRdOiAlcABydW5fcGVuZGluZ190cmFwczogcm/EjW5payBzaWduYWxhIGplIFNJR19ERkwsIHBvbm92bm8gcG/FoWlsamFuamUgJWQgKCVzKSBzZWJpAHNhdmVfYmFzaF9pbnB1dDogbWVkcG9tbmlsbmlrIMW+ZSBvYnN0YWphIHphIG5vdiBmZCAlZABzZWxlY3QgSU1FIFtpbiBJTUVOQSAuLi4gO10gZG8gVUtBWkk7IGRvbmUAc2V0IFstYWJlZmhrbW5wdHV2eEJDSFBdIFstbyBpbWVfbW/Fvm5vc3RpXSBbLS1dIFthcmcgLi4uXQBzZXRsb2NhbGU6ICVzOiBuaSBtb2dvxI1lIHNwcmVtZW5pdGkgamV6aWtvdm5lIG96bmFrZSAoJXMpAHNldGxvY2FsZTogJXM6IG5pIG1vZ2/EjWUgc3ByZW1lbml0aSBqZXppa292bmUgb3puYWtlICglcyk6ICVzAHNldGxvY2FsZTogTENfQUxMOiBuaSBtb2dvxI1lIHNwcmVtZW5pdGkgamV6aWtvdm5lIG96bmFrZSAoJXMpAHNldGxvY2FsZTogTENfQUxMOiBuaSBtb2dvxI1lIHNwcmVtZW5pdGkgamV6aWtvdm5lIG96bmFrZSAoJXMpOiAlcwByYXZlbiBsdXBpbmUgKCVkKSBqZSBwcmV2aXNva2EsIHBvbmFzdGF2bGphbmplIG5hIDEAc2hpZnQgW25dAMWhdGV0amUgcHJlbWlrYQBzaG9wdCBbLXBxc3VdIFstb10gW2ltZV9tb8W+bm9zdGkgLi4uXQBzaWdwcm9jbWFzazogJWQ6IG5ldmVsamF2bm8gb3ByYXZpbG8Ac291cmNlIGltZV9kYXRvdGVrZSBbYXJndW1lbnRpXQBzdGFydF9waXBlbGluZTogY2V2IHBncnAAc3VzcGVuZCBbLWZdAHNrbGFkZW5qc2thIG5hcGFrYQBza2xhZGVuanNrYSBuYXBha2EgdiBwb2dvam5lbSBpenJhenUAc2tsYWRlbmpza2EgbmFwYWthIHYgcG9nb2puZW0gaXpyYXp1OiBuZXByacSNYWtvdmFuIMW+ZXRvbiBgJXMnAHNrbGFkZW5qc2thIG5hcGFrYSB2IGl6cmF6dQBza2xhZGVuanNrYSBuYXBha2EgYmxpenUgYCVzJwBza2xhZGVuanNrYSBuYXBha2EgYmxpenUgbmVwcmnEjWFrb3ZhbmVnYSDFvmV0b25hIGAlcycAc2tsYWRlbmpza2EgbmFwYWthOiBgKCglcykpJwBza2xhZGVuanNrYSBuYXBha2E6IGA7JyBuZXByacSNYWtvdmFubwBza2xhZGVuanNrYSBuYXBha2E6IHBvdHJlYmVuIGplIGFyaXRtZXRpxI1uaSBpenJhegBza2xhZGVuanNrYSBuYXBha2E6IG5ldmVsamF2ZW4gYXJpdG1ldGnEjW5pIG9wZXJhbmQAc2tsYWRlbmpza2EgbmFwYWthOiBwcmnEjWFrb3ZhbiBvcGVyYW5kAHNrbGFkZW5qc2thIG5hcGFrYTogbmVwcmnEjWFrb3ZhbiBrb25lYyBkYXRvdGVrZQBzZXN1dGplIHNpc3RlbWEgamUgbmVpemJlxb5ubwB0ZXN0IFtpenJhel0AdGltZSBbLXBdIGNldm92b2QAa3JhdABwcmV2ZcSNIGFyZ3VtZW50b3YAdHJhcCBbLWxwXSBbW2FyZ10gZG9sb8SNaWxvX3NpZ25hbGEgLi4uXQB0cmFwX2hhbmRsZXI6IHNsYWIgc2lnbmFsICVkAHByYXYAdHlwZSBbLWFmcHRQXSBpbWUgW2ltZSAuLi5dAHR5cGVzZXQgWy1hQWZGZ2lscnR1eF0gWy1wXSBpbWVbPXZyZWRub3N0XSAuLi4AdW1hc2sgWy1wXSBbLVNdIFtuYcSNaW5dAHVuYWxpYXMgWy1hXSBpbWUgW2ltZSAuLi5dAG5lcHJpxI1ha292YW4ga29uZWMgZGF0b3Rla2UgbWVkIGlza2FuamVtIHVqZW1hbmphIHogYF1dJwBuZXByacSNYWtvdmFuIGtvbmVjIGRhdG90ZWtlIG1lZCBpc2thbmplbSB1amVtYW5qYSB6IGAlYycAbmVwcmnEjWFrb3ZhbiBrb25lYyBkYXRvdGVrZSBtZWQgaXNrYW5qZW0gdWplbWFuamEgeiBgKScAbmVwcmnEjWFrb3ZhbiBhcmd1bWVudCBgJXMnIGRvIHBvZ29qbmVnYSBiaW5hcm5lZ2Egb3BlcmF0b3JqYQBuZXByacSNYWtvdmFuIGFyZ3VtZW50IGAlcycgZG8gcG9nb2puZWdhIGVub3Nsb3ZuZWdhIG9wZXJhdG9yamEAbmVwcmnEjWFrb3ZhbiBhcmd1bWVudCBkbyBwb2dvam5lZ2EgYmluYXJuZWdhIG9wZXJhdG9yamEAbmVwcmnEjWFrb3ZhbiBhcmd1bWVudCBkbyBwb2dvam5lZ2EgZW5vc2xvdm5lZ2Egb3BlcmF0b3JqYQBuZXByacSNYWtvdmFuIMW+ZXRvbiAlZCB2IHBvZ29qbmVtIHVrYXp1AG5lcHJpxI1ha292YW4gxb5ldG9uIGAlYycgdiBwb2dvam5lbSB1a2F6dQBuZXByacSNYWtvdmFuIMW+ZXRvbiBgJXMnIHYgcG9nb2puZW0gdWthenUAbmVwcmnEjWFrb3ZhbiDFvmV0b24gYCVzJywgcHJpxI1ha292YW4gamUgYmluYXJuaSBwb2dvam5pIG9wZXJhdG9yAG5lcHJpxI1ha292YW4gxb5ldG9uIGAlcycsIHByacSNYWtvdmFuIGplIGJpbCBgKScAbmV6bmFubwBuZXpuYW5hIG5hcGFrYSB1a2F6YQB1bnRpbCBVS0FaSTsgZG8gVUtBWkk7IGRvbmUAdnJlZG5vc3QgamUgcHJldmVsaWthIHphIHpiaXJrbwBzcHJlbWVubGppdmtlIC0gSW1lbmEgaW4gcG9tZW5pIG5la2F0ZXJpaCBzcHJlbWVubGppdmsgbHVwaW5lAHdhaXQ6IG9wcmF2aWxvIHogaWQgJWxkIG5pIHBvZHJlamVubyBvcHJhdmlsbyB0ZSBsdXBpbmUAd2FpdF9mb3I6IG5pIHphcGlzb3YgbyBvcHJhdmlsdSAlbGQAd2FpdF9mb3Jfam9iOiBwb3NlbCAlZCBqZSB6YXVzdGF2bGplbgB3YWl0Y2hsZDogdmtsb3AgV05PSEFORyB6YSBwcmVwcmXEjWl0ZXYgbmVkb2xvxI1lbm9zdGkgYmxva2EAb3Bvem9yaWxvOiAAb3Bvem9yaWxvOiAlczogJXMAT3Bvem9yaWxvOiBtb8W+bm9zdCAtQyBtb3JkYSBuZSBibyBkZWxvdmFsYSBwbyBwcmnEjWFrb3ZhbmppaABPcG96b3JpbG86IG1vxb5ub3N0IC1GIG1vcmRhIG5lIGJvIGRlbG92YWxhIHBvIHByacSNYWtvdmFuamloAHdoaWxlIFVLQVpJOyBkbyBVS0FaSTsgZG9uZQBuYXBha2EgbWVkIHBpc2FuamVtOiAlcwB4dHJhY2UgZmQgKCVkKSAhPSBmaWxlbm8geHRyYWNlIGZwICglZCkAeHRyYWNlX3NldDogJWQ6IG5ldmVsamF2ZW4gb3Bpc25payBkYXRvdGVrZQB4dHJhY2Vfc2V0OiBwcmF6ZW4ga2F6YWxlYyBkYXRvdGVrZSBOVUxMAHsgVUtBWkkgOyB9AA==