3hIElQAAAAArAAAAHAAAAHQBAAA7AAAAzAIAAAAAAAC4AwAAQgAAALkDAAAhAgAA/AMAAPABAAAeBgAAOQAAAA8IAABNAAAASQgAABsAAACXCAAALAAAALMIAAAdAAAA4AgAACwAAAD+CAAALAAAACsJAAAnAAAAWAkAAC0AAACACQAAIAAAAK4JAAAoAAAAzwkAACgAAAD4CQAAHwAAACEKAAAfAAAAQQoAAAwAAABhCgAA9wAAAG4KAABlAAAAZgsAADoAAADMCwAAGQEAAAcMAADeAQAAIQ0AAJIBAAAADwAAFAAAAJMQAAAQAAAAqBAAACoAAAC5EAAAMQAAAOQQAAAmAAAAFhEAAA4AAAA9EQAAFAAAAEwRAAAiAAAAYREAADkAAACEEQAASQAAAL4RAACdAAAACBIAAA8AAACmEgAAGAAAALYSAAAQAAAAzxIAABEAAADgEgAADgAAAPISAAASAAAAARMAAAsAAAAUEwAAggEAACATAABCAAAAoxQAACECAADmFAAA8AEAAAgXAAA5AAAA+RgAAE0AAAAzGQAAHwAAAIEZAAAwAAAAoRkAACEAAADSGQAAMAAAAPQZAAAwAAAAJRoAACsAAABWGgAAMQAAAIIaAAAkAAAAtBoAACwAAADZGgAALAAAAAYbAAAjAAAAMxsAACMAAABXGwAADAAAAHsbAAD3AAAAiBsAAGUAAACAHAAAOgAAAOYcAAAZAQAAIR0AAOIBAAA7HgAAkgEAAB4gAAAUAAAAsSEAABAAAADGIQAAKgAAANchAAAxAAAAAiIAACoAAAA0IgAADgAAAF8iAAAUAAAAbiIAACIAAACDIgAAOQAAAKYiAABJAAAA4CIAAJ0AAAAqIwAADwAAAMgjAAAcAAAA2CMAABAAAAD1IwAAEQAAAAYkAAAOAAAAGCQAABIAAAAnJAAACwAAADokAAABAAAAGgAAAAMAAAAjAAAAJAAAAAAAAAAAAAAACQAAACgAAAALAAAAGQAAABAAAAAAAAAAGwAAAAYAAAAHAAAAFAAAAA0AAAAIAAAAAAAAACAAAAAPAAAAAAAAACkAAAAMAAAAIQAAAAAAAAAEAAAAAAAAAA4AAAAXAAAAJwAAABYAAAAAAAAAAAAAABMAAAAqAAAACgAAAAAAAAAiAAAAEgAAACYAAAAAAAAAAAAAACUAAAAAAAAAHQAAABgAAAAAAAAAHAAAAAIAAAAVAAAAHwAAABEAAAAeAAAAAAAAAAAAAAArAAAABQAAAAAgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAoAICAtZCwgLS1kb21haW49VEVYVERPTUFJTiAgIHJldHJpZXZlIHRyYW5zbGF0ZWQgbWVzc2FnZSBmcm9tIFRFWFRET01BSU4KICAtZSAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZSBleHBhbnNpb24gb2Ygc29tZSBlc2NhcGUgc2VxdWVuY2VzCiAgLUUgICAgICAgICAgICAgICAgICAgICAgICAoaWdub3JlZCBmb3IgY29tcGF0aWJpbGl0eSkKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0CiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKICBbVEVYVERPTUFJTl0gICAgICAgICAgICAgIHJldHJpZXZlIHRyYW5zbGF0ZWQgbWVzc2FnZSBmcm9tIFRFWFRET01BSU4KICBNU0dJRCBNU0dJRC1QTFVSQUwgICAgICAgIHRyYW5zbGF0ZSBNU0dJRCAoc2luZ3VsYXIpIC8gTVNHSUQtUExVUkFMIChwbHVyYWwpCiAgQ09VTlQgICAgICAgICAgICAgICAgICAgICBjaG9vc2Ugc2luZ3VsYXIvcGx1cmFsIGZvcm0gYmFzZWQgb24gdGhpcyB2YWx1ZQoAICAtZCwgLS1kb21haW49VEVYVERPTUFJTiAgIHJldHJpZXZlIHRyYW5zbGF0ZWQgbWVzc2FnZXMgZnJvbSBURVhURE9NQUlOCiAgLWUgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUgZXhwYW5zaW9uIG9mIHNvbWUgZXNjYXBlIHNlcXVlbmNlcwogIC1FICAgICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQgZm9yIGNvbXBhdGliaWxpdHkpCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAogIC1uICAgICAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3MgdHJhaWxpbmcgbmV3bGluZQogIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CiAgW1RFWFRET01BSU5dIE1TR0lEICAgICAgICByZXRyaWV2ZSB0cmFuc2xhdGVkIG1lc3NhZ2UgY29ycmVzcG9uZGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gTVNHSUQgZnJvbSBURVhURE9NQUlOCgAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAoAICAtdiwgLS12YXJpYWJsZXMgICAgICAgICAgICAgb3V0cHV0IHRoZSB2YXJpYWJsZXMgb2NjdXJyaW5nIGluIFNIRUxMLUZPUk1BVAoAJXM6IGludmFsaWQgb3B0aW9uIC0tICclYycKACVzOiBvcHRpb24gJyVjJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnQKACVzOiBvcHRpb24gJyVzJyBpcyBhbWJpZ3VvdXMKACVzOiBvcHRpb24gJyVzJyBpcyBhbWJpZ3VvdXM7IHBvc3NpYmlsaXRpZXM6ACVzOiBvcHRpb24gJy0tJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnQKACVzOiBvcHRpb24gJy0tJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50CgAlczogb3B0aW9uICctVyAlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudAoAJXM6IG9wdGlvbiAnLVcgJXMnIGlzIGFtYmlndW91cwoAJXM6IG9wdGlvbiAnLVcgJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50CgAlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICclYycKACVzOiB1bnJlY29nbml6ZWQgb3B0aW9uICclYyVzJwoAJXM6IHVucmVjb2duaXplZCBvcHRpb24gJy0tJXMnCgBCcnVubyBIYWlibGUAQ29weXJpZ2h0IChDKSAlcyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KTGljZW5zZSBHUEx2Mys6IEdOVSBHUEwgdmVyc2lvbiAzIG9yIGxhdGVyIDxodHRwOi8vZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbD4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJlIGZyZWUgdG8gY2hhbmdlIGFuZCByZWRpc3RyaWJ1dGUgaXQuClRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuCgBEaXNwbGF5IG5hdGl2ZSBsYW5ndWFnZSB0cmFuc2xhdGlvbiBvZiBhIHRleHR1YWwgbWVzc2FnZSB3aG9zZSBncmFtbWF0aWNhbApmb3JtIGRlcGVuZHMgb24gYSBudW1iZXIuCgBEaXNwbGF5IG5hdGl2ZSBsYW5ndWFnZSB0cmFuc2xhdGlvbiBvZiBhIHRleHR1YWwgbWVzc2FnZS4KAElmIHRoZSBURVhURE9NQUlOIHBhcmFtZXRlciBpcyBub3QgZ2l2ZW4sIHRoZSBkb21haW4gaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZQplbnZpcm9ubWVudCB2YXJpYWJsZSBURVhURE9NQUlOLiAgSWYgdGhlIG1lc3NhZ2UgY2F0YWxvZyBpcyBub3QgZm91bmQgaW4gdGhlCnJlZ3VsYXIgZGlyZWN0b3J5LCBhbm90aGVyIGxvY2F0aW9uIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgZW52aXJvbm1lbnQKdmFyaWFibGUgVEVYVERPTUFJTkRJUi4KU3RhbmRhcmQgc2VhcmNoIGRpcmVjdG9yeTogJXMKAElmIHRoZSBURVhURE9NQUlOIHBhcmFtZXRlciBpcyBub3QgZ2l2ZW4sIHRoZSBkb21haW4gaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZQplbnZpcm9ubWVudCB2YXJpYWJsZSBURVhURE9NQUlOLiAgSWYgdGhlIG1lc3NhZ2UgY2F0YWxvZyBpcyBub3QgZm91bmQgaW4gdGhlCnJlZ3VsYXIgZGlyZWN0b3J5LCBhbm90aGVyIGxvY2F0aW9uIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgZW52aXJvbm1lbnQKdmFyaWFibGUgVEVYVERPTUFJTkRJUi4KV2hlbiB1c2VkIHdpdGggdGhlIC1zIG9wdGlvbiB0aGUgcHJvZ3JhbSBiZWhhdmVzIGxpa2UgdGhlICdlY2hvJyBjb21tYW5kLgpCdXQgaXQgZG9lcyBub3Qgc2ltcGx5IGNvcHkgaXRzIGFyZ3VtZW50cyB0byBzdGRvdXQuICBJbnN0ZWFkIHRob3NlIG1lc3NhZ2VzCmZvdW5kIGluIHRoZSBzZWxlY3RlZCBjYXRhbG9nIGFyZSB0cmFuc2xhdGVkLgpTdGFuZGFyZCBzZWFyY2ggZGlyZWN0b3J5OiAlcwoASW4gbm9ybWFsIG9wZXJhdGlvbiBtb2RlLCBzdGFuZGFyZCBpbnB1dCBpcyBjb3BpZWQgdG8gc3RhbmRhcmQgb3V0cHV0LAp3aXRoIHJlZmVyZW5jZXMgdG8gZW52aXJvbm1lbnQgdmFyaWFibGVzIG9mIHRoZSBmb3JtICRWQVJJQUJMRSBvciAke1ZBUklBQkxFfQpiZWluZyByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcy4gIElmIGEgU0hFTEwtRk9STUFUIGlzIGdpdmVuLApvbmx5IHRob3NlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSByZWZlcmVuY2VkIGluIFNIRUxMLUZPUk1BVCBhcmUKc3Vic3RpdHV0ZWQ7IG90aGVyd2lzZSBhbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHJlZmVyZW5jZXMgb2NjdXJyaW5nIGluCnN0YW5kYXJkIGlucHV0IGFyZSBzdWJzdGl0dXRlZC4KAEluZm9ybWF0aXZlIG91dHB1dDoKAE9wZXJhdGlvbiBtb2RlOgoAUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1nbnUtZ2V0dGV4dEBnbnUub3JnPi4KAFN1YnN0aXR1dGVzIHRoZSB2YWx1ZXMgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoAVHJ5ICclcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLgoAVWxyaWNoIERyZXBwZXIAVW5rbm93biBzeXN0ZW0gZXJyb3IAVXNhZ2U6ICVzIFtPUFRJT05dIFtTSEVMTC1GT1JNQVRdCgBVc2FnZTogJXMgW09QVElPTl0gW1RFWFRET01BSU5dIE1TR0lEIE1TR0lELVBMVVJBTCBDT1VOVAoAVXNhZ2U6ICVzIFtPUFRJT05dIFtbVEVYVERPTUFJTl0gTVNHSURdCm9yOiAgICAlcyBbT1BUSU9OXSAtcyBbTVNHSURdLi4uCgBXaGVuIC0tdmFyaWFibGVzIGlzIHVzZWQsIHN0YW5kYXJkIGlucHV0IGlzIGlnbm9yZWQsIGFuZCB0aGUgb3V0cHV0IGNvbnNpc3RzCm9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBpbiBTSEVMTC1GT1JNQVQsIG9uZSBwZXIgbGluZS4KAFdyaXR0ZW4gYnkgJXMuCgBlcnJvciB3aGlsZSByZWFkaW5nICIlcyIAbWVtb3J5IGV4aGF1c3RlZABtaXNzaW5nIGFyZ3VtZW50cwBzdGFuZGFyZCBpbnB1dAB0b28gbWFueSBhcmd1bWVudHMAd3JpdGUgZXJyb3IAUHJvamVjdC1JZC1WZXJzaW9uOiBHTlUgZ2V0dGV4dC1ydW50aW1lIDAuMTkuNwpSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVnLWdudS1nZXR0ZXh0QGdudS5vcmcKUE9ULUNyZWF0aW9uLURhdGU6IDIwMTUtMTItMjggMDg6MjYrMDkwMApQTy1SZXZpc2lvbi1EYXRlOiAyMDE1LTEyLTI4IDA4OjI2KzA5MDAKTGFzdC1UcmFuc2xhdG9yOiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZApMYW5ndWFnZS1UZWFtOiBub25lCkxhbmd1YWdlOiBlbkBxdW90Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpOwoAICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKACAgLWQsIC0tZG9tYWluPVRFWFRET01BSU4gICByZXRyaWV2ZSB0cmFuc2xhdGVkIG1lc3NhZ2UgZnJvbSBURVhURE9NQUlOCiAgLWUgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUgZXhwYW5zaW9uIG9mIHNvbWUgZXNjYXBlIHNlcXVlbmNlcwogIC1FICAgICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQgZm9yIGNvbXBhdGliaWxpdHkpCiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAogIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CiAgW1RFWFRET01BSU5dICAgICAgICAgICAgICByZXRyaWV2ZSB0cmFuc2xhdGVkIG1lc3NhZ2UgZnJvbSBURVhURE9NQUlOCiAgTVNHSUQgTVNHSUQtUExVUkFMICAgICAgICB0cmFuc2xhdGUgTVNHSUQgKHNpbmd1bGFyKSAvIE1TR0lELVBMVVJBTCAocGx1cmFsKQogIENPVU5UICAgICAgICAgICAgICAgICAgICAgY2hvb3NlIHNpbmd1bGFyL3BsdXJhbCBmb3JtIGJhc2VkIG9uIHRoaXMgdmFsdWUKACAgLWQsIC0tZG9tYWluPVRFWFRET01BSU4gICByZXRyaWV2ZSB0cmFuc2xhdGVkIG1lc3NhZ2VzIGZyb20gVEVYVERPTUFJTgogIC1lICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlIGV4cGFuc2lvbiBvZiBzb21lIGVzY2FwZSBzZXF1ZW5jZXMKICAtRSAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmVkIGZvciBjb21wYXRpYmlsaXR5KQogIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKICAtbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzIHRyYWlsaW5nIG5ld2xpbmUKICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAogIFtURVhURE9NQUlOXSBNU0dJRCAgICAgICAgcmV0cmlldmUgdHJhbnNsYXRlZCBtZXNzYWdlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIE1TR0lEIGZyb20gVEVYVERPTUFJTgoAICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKACAgLXYsIC0tdmFyaWFibGVzICAgICAgICAgICAgIG91dHB1dCB0aGUgdmFyaWFibGVzIG9jY3VycmluZyBpbiBTSEVMTC1GT1JNQVQKACVzOiBpbnZhbGlkIG9wdGlvbiAtLSDigJglY+KAmQoAJXM6IG9wdGlvbiDigJglYyVz4oCZIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnQKACVzOiBvcHRpb24g4oCYJXPigJkgaXMgYW1iaWd1b3VzCgAlczogb3B0aW9uIOKAmCVz4oCZIGlzIGFtYmlndW91czsgcG9zc2liaWxpdGllczoAJXM6IG9wdGlvbiDigJgtLSVz4oCZIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnQKACVzOiBvcHRpb24g4oCYLS0lc+KAmSByZXF1aXJlcyBhbiBhcmd1bWVudAoAJXM6IG9wdGlvbiDigJgtVyAlc+KAmSBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50CgAlczogb3B0aW9uIOKAmC1XICVz4oCZIGlzIGFtYmlndW91cwoAJXM6IG9wdGlvbiDigJgtVyAlc+KAmSByZXF1aXJlcyBhbiBhcmd1bWVudAoAJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSDigJglY+KAmQoAJXM6IHVucmVjb2duaXplZCBvcHRpb24g4oCYJWMlc+KAmQoAJXM6IHVucmVjb2duaXplZCBvcHRpb24g4oCYLS0lc+KAmQoAQnJ1bm8gSGFpYmxlAENvcHlyaWdodCAoQykgJXMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkxpY2Vuc2UgR1BMdjMrOiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlciA8aHR0cDovL2dudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWw+ClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGFyZSBmcmVlIHRvIGNoYW5nZSBhbmQgcmVkaXN0cmlidXRlIGl0LgpUaGVyZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3LgoARGlzcGxheSBuYXRpdmUgbGFuZ3VhZ2UgdHJhbnNsYXRpb24gb2YgYSB0ZXh0dWFsIG1lc3NhZ2Ugd2hvc2UgZ3JhbW1hdGljYWwKZm9ybSBkZXBlbmRzIG9uIGEgbnVtYmVyLgoARGlzcGxheSBuYXRpdmUgbGFuZ3VhZ2UgdHJhbnNsYXRpb24gb2YgYSB0ZXh0dWFsIG1lc3NhZ2UuCgBJZiB0aGUgVEVYVERPTUFJTiBwYXJhbWV0ZXIgaXMgbm90IGdpdmVuLCB0aGUgZG9tYWluIGlzIGRldGVybWluZWQgZnJvbSB0aGUKZW52aXJvbm1lbnQgdmFyaWFibGUgVEVYVERPTUFJTi4gIElmIHRoZSBtZXNzYWdlIGNhdGFsb2cgaXMgbm90IGZvdW5kIGluIHRoZQpyZWd1bGFyIGRpcmVjdG9yeSwgYW5vdGhlciBsb2NhdGlvbiBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlIGVudmlyb25tZW50CnZhcmlhYmxlIFRFWFRET01BSU5ESVIuClN0YW5kYXJkIHNlYXJjaCBkaXJlY3Rvcnk6ICVzCgBJZiB0aGUgVEVYVERPTUFJTiBwYXJhbWV0ZXIgaXMgbm90IGdpdmVuLCB0aGUgZG9tYWluIGlzIGRldGVybWluZWQgZnJvbSB0aGUKZW52aXJvbm1lbnQgdmFyaWFibGUgVEVYVERPTUFJTi4gIElmIHRoZSBtZXNzYWdlIGNhdGFsb2cgaXMgbm90IGZvdW5kIGluIHRoZQpyZWd1bGFyIGRpcmVjdG9yeSwgYW5vdGhlciBsb2NhdGlvbiBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlIGVudmlyb25tZW50CnZhcmlhYmxlIFRFWFRET01BSU5ESVIuCldoZW4gdXNlZCB3aXRoIHRoZSAtcyBvcHRpb24gdGhlIHByb2dyYW0gYmVoYXZlcyBsaWtlIHRoZSDigJhlY2hv4oCZIGNvbW1hbmQuCkJ1dCBpdCBkb2VzIG5vdCBzaW1wbHkgY29weSBpdHMgYXJndW1lbnRzIHRvIHN0ZG91dC4gIEluc3RlYWQgdGhvc2UgbWVzc2FnZXMKZm91bmQgaW4gdGhlIHNlbGVjdGVkIGNhdGFsb2cgYXJlIHRyYW5zbGF0ZWQuClN0YW5kYXJkIHNlYXJjaCBkaXJlY3Rvcnk6ICVzCgBJbiBub3JtYWwgb3BlcmF0aW9uIG1vZGUsIHN0YW5kYXJkIGlucHV0IGlzIGNvcGllZCB0byBzdGFuZGFyZCBvdXRwdXQsCndpdGggcmVmZXJlbmNlcyB0byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb2YgdGhlIGZvcm0gJFZBUklBQkxFIG9yICR7VkFSSUFCTEV9CmJlaW5nIHJlcGxhY2VkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzLiAgSWYgYSBTSEVMTC1GT1JNQVQgaXMgZ2l2ZW4sCm9ubHkgdGhvc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIHJlZmVyZW5jZWQgaW4gU0hFTEwtRk9STUFUIGFyZQpzdWJzdGl0dXRlZDsgb3RoZXJ3aXNlIGFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcmVmZXJlbmNlcyBvY2N1cnJpbmcgaW4Kc3RhbmRhcmQgaW5wdXQgYXJlIHN1YnN0aXR1dGVkLgoASW5mb3JtYXRpdmUgb3V0cHV0OgoAT3BlcmF0aW9uIG1vZGU6CgBSZXBvcnQgYnVncyB0byA8YnVnLWdudS1nZXR0ZXh0QGdudS5vcmc+LgoAU3Vic3RpdHV0ZXMgdGhlIHZhbHVlcyBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgBUcnkg4oCYJXMgLS1oZWxw4oCZIGZvciBtb3JlIGluZm9ybWF0aW9uLgoAVWxyaWNoIERyZXBwZXIAVW5rbm93biBzeXN0ZW0gZXJyb3IAVXNhZ2U6ICVzIFtPUFRJT05dIFtTSEVMTC1GT1JNQVRdCgBVc2FnZTogJXMgW09QVElPTl0gW1RFWFRET01BSU5dIE1TR0lEIE1TR0lELVBMVVJBTCBDT1VOVAoAVXNhZ2U6ICVzIFtPUFRJT05dIFtbVEVYVERPTUFJTl0gTVNHSURdCm9yOiAgICAlcyBbT1BUSU9OXSAtcyBbTVNHSURdLi4uCgBXaGVuIC0tdmFyaWFibGVzIGlzIHVzZWQsIHN0YW5kYXJkIGlucHV0IGlzIGlnbm9yZWQsIGFuZCB0aGUgb3V0cHV0IGNvbnNpc3RzCm9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBpbiBTSEVMTC1GT1JNQVQsIG9uZSBwZXIgbGluZS4KAFdyaXR0ZW4gYnkgJXMuCgBlcnJvciB3aGlsZSByZWFkaW5nIOKAnCVz4oCdAG1lbW9yeSBleGhhdXN0ZWQAbWlzc2luZyBhcmd1bWVudHMAc3RhbmRhcmQgaW5wdXQAdG9vIG1hbnkgYXJndW1lbnRzAHdyaXRlIGVycm9yAA==