Codercat Studio | Cookbook

This cookbook contains a collection of useful HoudiniFX node setups. All examples are stored using the new Houdini recipe API and can be copied from this website directly into Houdini using our simple shelf tools. We also periodically make a backup of the recipes here.

Copy a snippet of interest from this page, then use Paste on the "Cookbook" shelf to paste it in.

If you would like to share a recipe, click the Create button and paste in the output of the "Copy" shelf tool. Note that you must be logged in to do so. If you have any questions or comments, feel free to reach out at codercatclub@gmail.com.

Get new recipes updates over RSS feed.

⚠️ Changelog

11.20.2025 - We updated the copy shelf tool to include the Houdini version, which is also visible on the recipes listing. Please update your shelf tools using the Python one-liner from the Recommended Install section.

📦 Recommended Install

To install Cookbook shelf tools copy this code to Houdini Python Shell and press Enter. You will see Cookbook shelf apper on the top panel.

To open Python Shell press Alt-Shift-P or go to main menu Window > Python Shell.

📂 Alternative Manual Install
⬇️ Download shelf tool file and place it to your Houdini toolbar folder:
  • Windows:
  • macOS:
  • Linux:

Replace USERNAME and X.Y with your account name and Houdini version.

Restart Houdini.

? About this project

Motivation and Goals

We created this Houdini Cookbook because:

  • We needed a way to quickly share and store small Houdini node setups. Previously, we attempted to create HDA libraries, but it was too cumbersome for our small team.
  • We believe there is a better way to share Houdini examples than by sharing entire Houdini files.
  • We enjoy sharing our small setups with the Houdini community.
  • We strongly believe in the idea of "Own Your Data," therefore we do not hold any published recipes hostage. All recipes are backed up once a day to a public Git repository here. Even if this service goes down, anyone can still download the full collection and use it directly with the Cookbook shelf tool or by using the two Python functions described below.
  • We also embrace the idea of decentralization, and we are considering open sourcing the Cookbook web service so that anyone can run it locally with their own collection or as their own public webpage. Let us know if this is something that interests you.

How Does It Work

In Houdini 20.5, SideFX introduced a new Recipe system that allows users to save collections of nodes into human-readable structured text files (JSON). Within this, they added a new collection of Python utilities (hou.data) that allows for creating and loading recipes programmatically.

In particular, the Cookbook shelf tools use hou.data.selectedItemsAsData(...) for copying nodes and hou.createItemsFromData(...) for pasting.

For this web service, we use the Go programming language and store all submitted recipes in plain text JSON files.

Hair Guides
Create curves within guiding geometry volume.
Nov 04, 2025 | 20.5.584 | geometry Cooked By: kif
ewogICAgIl9fY29va2Jvb2tNZXRhIjogewogICAgICAgICJjb250ZXh0IjogInNvcCIsCiAgICAgICAgInZlcnNpb24iOiAiMjAuNS41ODQiCiAgICB9LAogICAgImN1cnZlMSI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhY3RpdmVwb2ludHMiOiAiMiIsCiAgICAgICAgICAgICJlbmFibGViZXppZXJvcHMiOiBmYWxzZSwKICAgICAgICAgICAgIm1vZGUiOiAwLAogICAgICAgICAgICAib3B0eXBlIjogInRyYW5zZm9ybSIsCiAgICAgICAgICAgICJvdXRwdXR0eXBlIjogIm51cmJzIiwKICAgICAgICAgICAgInBhcm1wb2ludHMiOiB7CiAgICAgICAgICAgICAgICAiZ2VvbWV0cnkiOiAiZUA7X01WcH1UITN1YjktV3AtdDliN15tR0NJQmt8MnJANyhINyskY0ckc0tuMHRqZWZiN15qNVdxMms2RilJVEthQnBkRGJZcExJWmdlSUM1ZTYjKzN3Qzk0YlkqeUJaKl57VENJa0B4RCtMYTRhJXBYOGJaS15GVntkaENiUzRFNjA0b0xyWFx1MDAzZU1rM0NJKSplMk1CMHliOThRRFpEbDQwRCttS35iIzVqSUQrdlQtVlJVNkMyYGRUe0dCN2VWRWlvfUlGZlx1MDAzY0BCSCMjKm5JeUVwUjNNXHUwMDI2ZitWUkNlN2I5NSNQRCt+aWBYPVd4MkQtOFx1MDAyNjlaKVM5TlZSQl9BNEohXjFOTjtzeVhcdTAwM2VNc0NHQjdTUkU7VHFiQ0pya1AyNFpoQFplKCpOND9yMFAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBELWFRM2JhWmxRVnNcdTAwMjYoN1V2cVZCWkREZUdDSi1tYFx1MDAyNkgqNEdBUnNkYEFhSE1LWmdlMUZiYVpsUVZzXHUwMDI2KDdiMlx1MDAzY3JjYSU1JDRFRmZXSVdOXHUwMDNldElFRmZ9a2IjNyMxWipwI0JhXHUwMDI2bHAwWD8xZmZBWj1sM1pnZ1IzWmc2akRaZ2VhbFoqWCpaYUFobllWe2RNRFdwWj81YiNpdVBiMVdjWGFCeTtPY3g3XHUwMDI2NmJZWDYxV29+cUhFRmcxbFdee0NOVlF6Q35aKnB4Y0FZcFpNWipYKlRFRmZAZlZReXReWkVQJGNaKl9FVmIjISFqYUFobllYa2woLVktTW1VYUJwKWdBYVpZWFZSVTZJQVlvXHUwMDI2NFg/QTZCYSVwV1dBYUg0UloqKzJSYllYTzVFRmZXWmJaPXMxZFRDe0hFRmUlVUFhaVlSWioqdkliYU5+cVhrbCgtWS1NbVRhQnApZ0FhWllZWmUoTGBhXHUwMDI2QmRFYUNDRGxBWSpUQ2I5OGNIWFx1MDAzZU4wTGEkI3ZfWG1uKzZFRmc0cFZRekQ1VlJVNklBWmMhTldwWiRCV3BycTdXR29cdTAwM2NhV29LXHUwMDNjPVpnZ1UwZFRDe0hWe0M3OFdoQHxZWD9BYVBiYUcqQ2I4S09CV2hAfFFWUXlxXHUwMDNlV3BGWlpaKndkbGFCTnwyV3A4cTZYRGxGTFZ7fmJEV3BIbjRaZ2dgakFaVEgzV05jK3tiYU5+cWI3TnNfV2hAfGJaKVM5S2EkI1x1MDAzY0JXXlp6QmEkI2dGQVkqVEdaZT9cdTAwM2NDYmFNKElBUnIoaEYoN0FiWig/Qz1BWXBXTGElcDA5YlkqaW8zM2cjfVpERFdcdTAwM2NlSmM/TmJaXHUwMDNlQlBZO1J8SUNKfGRKNShzY19YXHUwMDNlTjNLV285TjRUUHFVXHUwMDNlWFx1MDAzZU1kYFZgWHpENkY/RkdVMG97XzNTbzN+YSVwMDliWSppVTZrOTc1NHtcdTAwMjZkM1pnZ1JFYmFIODhiIyFIT0NLWCMtVFBxZD9iN09DQ1doTkZZN1kxOzNWciokK0NLb0ZoMWF4X0RXaE5MYTgzJTU0WkRuJDRWXHUwMDNjczZaOFUkYChaRGw0SkQ7b2hcdTAwMjZDTDFkcDJYQW42WFx1MDAzZVY/R0NMRFZ2N1x1MDAzYyhvZEQ7KS1OYmFIOEtYQ0BzaDl0Q3pgWTt8UU85eEVST2FCcGREYlM1OHRlTys1Q0FPdiUxZFN4YWM1ZCRrQjJYbDA5YSQjcFx1MDAzZUNMdFx1MDAzZSMyeGYze1ducFlIR0ExR2BCTTQrPVc/Xit+YmFOXHUwMDI2blRQN2U4MFZXfFVCblcxM2ElRXZgSFpcdTAwMjYkQURcdTAwM2N1WVlWUWg2fWIwI0d+OFVYK1IwMDAwMDAwM1BrQzBpeVM1ZCRWNkNMJHspMnlrSSVXcGluSVdoTiNQMDBiKjE1bzIjfGI5NztEYlp9djNXb0IkKVhMQlllVFI7IzIwUlI5MVRgTVJIYSQkRkhWUHxEelZSVF84Q19vdGwwMDAwMDAwMDAwMDAwMDBVMHEjVVRQN0FKN2JYfWM5VlF3cERHWHNfYlpLXkZhQnBkRGJhTlx1MDAyNnRDTERXeFUwV3N+NWRrSjREPUd6UFpnZXY7Q01xaXsyWGwwQ1hcdTAwM2VNbjhDTSNQakVDRG5vRUdzUG1HYlN4N0VcdTAwMjYod25FLU5ucUdBMXV3Q0tGcEdBUTFzM0F0b3ZcdTAwMjZDSzNQeUNNWkE/MkxKIzZ8TnNDMHt7UjMwMDA5NjEwMElDMjAwUkkzMDl7XHUwMDNlT1RVI2E7Q0tvMGNDSylDZ0Q9LVJTVnt+YkRXcEh3N1o2K2AjOUQ2MWhkbk9ucjlWUSt0RiVAb2FaZWVuMWJaQmo1YlpLS1x1MDAzZVhcdTAwM2VOMzdYSnY5R0ZAMWVxVFA3ZTgwVld8UERrZFhhQ0xqPzNDTHRcdTAwM2VfMSEtXHUwMDNje0haXHUwMDI2JE9DTTdAPTBSUjkxMDAwMDAwOV9efVRQN2U4MFZXfFBEa2RmcDAwYnJ7VFI7IzIwUlI5MVRfenwlNjlFN0swMDNRR1UwWWl3N0E2LWE3JHpNaThZP3BmVlBzQCpiYU5cdTAwMjYlQ0xEV3hVMFdzfjVka0o0Q01xVD9UUHJsS0Vpbz1JSCE/WG1IWm45ZEYqUCthR2MrfFVFaWYpSEdjcV9nRipoX2hHQnErVkk1MFVmRUhFeEdBVDJPMUdcdTAwMjZEOWVHXHUwMDI2M3xYSTUjcGtIWihPa0VIRXhMSVdzbWxGKSVuWUdcdTAwMjZMfFlGKmhfVUZmSzQ0RmZLRFBII1Jwakg4bkllR0I3a1pGKX1QTEU7VHFjSVdST1pGZnVWWElXe3ZrR0F1QUlGZCM4NUYqUCRhSCF3SWtGZj1rWUhad0loRUc7bERGZ1owYUZnUCtZRyVfP2VJNTsqakYpVDFIRmQheTBEXHUwMDNlVy1JRTtLYmNGZ0dcdTAwM2NiR2NoKGVII3NzbEdBdUFJR1x1MDAyNlZMa0ZnWStlR2RWUmZGKmk2bEhZX2tNRmQheTFUX3pKLUNMaj8zQ0x0eVx1MDAyNkNNRlU5MVNUano2OXhiUDAwMDMxMDA5NjB8TnNDMHxOc0MwfE5zQzB8Tm1XR1UwWWl3N0E2LWE3JHpBZThZP3l0VlFfR0FaK0s7SFdPUUx9WEp1fTViMCMoXHUwMDNlOUQ2MWhkbk9ucjlWUStvRkAxZXFUUDdlODBWV3xQRGtkWGFDTGo/M0NMdHk9Q003QD0wUlI5MTAwMDAwMDlfXn1UUDdlODBWV3xQRGtkZnAwMGJye1RSOyMyMFJSOTFUX3p8JTY5RTdLMDAzUUdVMFlpdzdBNi1hNyR6QWU4WT8jblZSZHdHVnI2PTFXcFhBckNMRFZ2N1x1MDAzYyhvZENMSmFvQ05YX3xVMFdzfjVka0o0Q01xVClUUDdlODBWV3xQR0ExUUo2YWZHTDAwMDAwMDAzUGtDMGl5UzVka0o0Q01xVC01XHUwMDI2IzR5Q3RFLWUwUmFGMjA5X18xS29iRH4wMDAxOFUwcXZTQ0tlX2FDS3g2aUNLQFheMlZyJHxaKlgqVENPOVNcdTAwM2Vkd3BHN0NMaj8zQ0x0eVx1MDAyNkNNI1FBQ0tGcEdBUTFzM0F0b3ZcdTAwMjZDSzNQeUNNUjEhNUNIKUkwMDNQa0Nfb2JkfE5zQzBVMHEjVVRQN0FKN2JYfWM4NzNNbElUS0BWWmdYXlVWUUZyMmJhRyo3WEp+WH5aWURWXHUwMDNjOUQ2MWhkbk9ucjlWUStvRkAxZXFUUDdlODBWV3xQRGtkWGFDTGo/M0NMdHk9Q003QD0wUlI5MTAwMDAwMDlfXn1UUDdlODBWV3xQRGtkZnAwMGJye1RSOyMyMFJSOTFUX3p8JTY5RTdLMDAzUUdVMFlpdzdBNi1hNyR6QWU4WT87dFZ7ZE1EV3BaPzViI2l1UGIwI19fOUQ2MWhkbk9ucjlWUStvRkAxZXFUUDdlODBWV3xQRGtkWGFDTGo/M0NMdHk9Q003QD0wUmFGMjAwMDAwMDlfXn1UUDdlODBWV3xQRGtkZnAwMGJye1RSOyMyMFJSOTFUX3p8JTY5RTdLMDAzUUdVMFlpdzdBNi1hNyR6TWk4WT9cdTAwM2VxVntkWTlXcFokSWIwI3xgOUQ5OVRUUDdlODBWV3xQRGtkdmlUX3pKLUNMaj8zQ0x0eVx1MDAyNkNNRlU5MVNUaDJLbzlgfDAwMDE4Q01aQT8wc3NJMXw2Tl5PVFUjYTtDS28wY0NLKUNnRD9BSG1WUXlxXHUwMDNlV3BGVFhaKndMKkNMRFd4VTBXc341ZCRWNkNMJFx1MDAyNnlUUDdlODBWV3xQQnFrKzU4VVgrUjAwMDAwMDAzUGtDMGl5UzVkJFY2Q0wkXHUwMDI2IzVcdTAwMjYjNHlDdEUtZTBSYUYyMDlfXzFLcDZ1NzBEISokMDAwMDAwMDAxOFUwcXZTQ0tlX2FDS3g2ZUNLQFh9M3VzfChXTmMre0ZcdTAwM2VyNWxDT3N3YGR3cEc3Q0xqPzVDTHR5d0NMXHUwMDNlIVdBUTFzM0F0b2R5QnxzVmgwMDAwMDAwMDAwVF96PTRDTGo/NUNMdHl3Q01GVTkxU1RoMktvOWB8MDAwMThDTVpBfDB7e1IzMDAwMDAwMDAwMDA5e1x1MDAzZU9UVSNhO0NLbzBjQ0spQ2dEP1NUb1ZReXFcdTAwM2VXcEZaWloqd0wtQ0xEV3hVMFdzfjVkJFY2Q0wkXHUwMDI2eVRQN2U4MFZXfFBCcWsrNThVWCtSMDAwMDAwMDNQa0MwaXlTNWQkVjZDTCRcdTAwMjYjNVx1MDAyNiM0eUN0RS1lMFJhRjIwOV9fMUtwNnU3MER3T0wwMDAwMDAwMDE4VTBxdlNDS2VfYUNLeDZlQ0tAWTAzMjAkJVdOYyt7YmFOXHUwMDI2QENMRFZ2N1x1MDAzYyhvZENMSmFvQ05YX3xVMFdzfjVkJFY2Q01xVClUUDdlODBWV3xQR0ExUUo2YW9NTHxOc0MwfE5tVmtDMGl5UzVkJFY2Q01xVC01XHUwMDI2IzR5Q3RFLWUwUmFGMjA5X18xS29iTjF8TnNDMHxOc0MwfE5zQThVMHF2U0NLZV9hQ0t4NmVDS0BZMTN+NnEzV3BaJEJXcHJxN1dGfGwrOUQ2MWhkbk9ucjlWUStvRkAxZXFUUDdlODBWV3xQRGtkWGFDTGo/M0NMdHk9Q003QD0wUlI5MTAwMDAwMDlfXn1UUDdlODBWV3xQRGtkZnAwMGJye1RSOyMyMFJSOTFUX3p8JTY5RTdLMDAzUUdVMFlpdzdBNi1hNyR6QWU4WUA4IVpEREN7YllXPzNhQnBkRGJTNlAyOUQ2MWhkbk9ucjlWUStvRkAxZXFUUDdlODBWV3xQRGtkWGFDTGo/M0NMdHk9Q003QD0wUlI5MTAwMDAwMDlfXn1UUDdlODBWV3xQRGtkZnAwMGJye1RSOyMyMFJSOTFUX3p8JTY5RTdLMDAzUUdVMFlpdzdBNi1hNyR6TWk4WUBCdVoqWCpaYUFoViFDTERXeFUwV3N+NWRrSjRDTXFUP1RQczVnVlFfRnxaZSh6OFhcdTAwM2VOMlRMbn1sSGJhRypDYjdwVUhaNi11ckNLRnBHQVExczNBdG92XHUwMDI2Q0szUHlDTVpBPzFeQHM2MDAwMDAwMDk2MTAwOTYxMDA5NjEwMDk2MTA5e1x1MDAzZU9UVSNhO0NLbzBjQ0spQ2dEQDZyd2ElNSQ0Q1BnTTNkbk9vckNLeDZpQ0xTZytlU0tZOUNMaj8zQ0x0eVx1MDAyNkNMXHUwMDNlIVdBUTFzM0F0b3s9QnxzRGIxT05hNDAwMDAwVF96PTRDTGo/M0NMdHlcdTAwMjZDTUZVOTFTVGgyS285YHwwMDAxOENNWkE/MFIjWDUwOXtcdTAwM2VPVFUjYTtDS28wY0NMSmFrREBGPSRiIyFvYmJhWillV2hPPUA5RDk5VFRQN2U4MFZXfFBEa2R2aURATyV4YiNoe0pDUCFUKzZJXHUwMDI2KUE1ZGtKNENNcVQtNVx1MDAyNiM0eUN0RS1lMFJhRjIwOV9fMUtvYkR+MDAwMThVMHF2U0NLZV9hQ0t4NmVDS0BZOTN2Zys2WiorMlJiWVhPNUNQKmU2ZHdwRzdDTGo/NUNMdHl3Q0xcdTAwM2UhV0FRMXMzQXRvZHlCfHNWaDAwMDAwMDAwMDBUX3o9NENMaj81Q0x0eXdDTUZVOTFTVGgyS285YHwwMDAxOENNWkF8MHt7UjMwMDAwMDAwMDAwMDl7XHUwMDNlT1RVI2E7Q0tvMGNDSylDZ0RAaEo7WD9BYVBiYUcqQ2I4S09CV2hPfWA5RDk5VFRQN2U4MTEyRlJBfEBrU0NMaj8zQ0x0eXlDTTdAYDBSUjkxMDAwMDAwOV9efVRQN2U4MTEyRlJBfEBzaDAwYnJ8S3A3R00wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMnshbiF9MjBxO0hsMDAwMHNzRk9kZWxmdTBLMDAwMHhsO3BuRGBXSFV7MDAwMmcjSFQqYXtTYGp8MDAwMThVMHF2U0NLZV9hQ0t4NmVDS0BZQjJ5a3ArWmU/ejVZJGklMzlEOTlUVFA3ZTgxMTJGUkF8QGtTQ0xqPzNDTHR5eUNNN0BgMFJSOTEwMDAwMDA5X159VFA3ZTgxMTJGUkF8QHNoMDBicntUUjsjMjBSUjkxVF96fCU4M09cdTAwM2NTMDAwMDBmSWsyTDAwM1FHVTBZaXc3QTYtYTckekFlOFlAYylhQk58MldwOHE2WENfTX45RDk5VFRQN2U4MTEyRlJBfEBrU0NMaj8zQ0x0eXlDTTdAYDBSUjkxMDAwMDAwOV9efVRQN2U4MTEyRlJBfEBzaDAwYnJ7VFI7IzIwUlI5MVRfenwlODNPXHUwMDNjUzAwMDAwMDAwMDAwMDNRR1UwWWl3N0E2LWE3JHpBZThZQGZcdTAwMjZhXHUwMDI2TDVEYllcdTAwMjYoP0NMRFd4VTBXc341ZCRWNkNMJFx1MDAyNnlUUDdlODBWV3xQQnFrKzU4VVgrUjAwMDAwMDAzUGtDMGl5UzVkJFY2Q0wkXHUwMDI2IzVcdTAwMjYjNHlDdEUtZTBSYUYyMDlfXzFLcDZ1NzAwMDAwMDAwMDAwMDAxOFUwcXZTQ0tlX2FDS3g2aUNLQFlFNHN2Z0daZShMYGFcdTAwMjZCZEVhQ0NEZk8ocVx1MDAzY0JlTys1N0FRMXMzQXRvdlx1MDAyNkRfZFBBNklcdTAwMjYpQTVka0o0Q01xVC01XHUwMDI2IzR5Q3RFLWUwUmFGMjA5X18xS29iR358TnNBOFUwcXZTQ0tlX2FDS3g2ZUNLQFlGNXByKkpaZShMYGFcdTAwMjZCZEVhJCNnP2Ijbz84Q0xEV3hVMFdzfjVka0o0Q0wkXHUwMDI2eVRQN2U4MFZXfFBCcWsrNThVWCtSMDAwMDAwMDNQa0MwaXlTNWRrSjRDTCRcdTAwMjYjNVx1MDAyNiM0eUN0RS1lMFJhRjIwOV9fMUtwNm81MDAwMThVMHF2U0NLZV9hQ0t4NmVDS0BZRzEjQEZ6WS1KYC1DTERXeFUwV3N+NWQkVjZDTCRcdTAwMjZ5VFA3ZTgwVld8UEJxays1OFVYK1IwMDAwMEBJUEg5QzBpeVM1ZCRWNkNMJFx1MDAyNiM1XHUwMDI2IzR5Q3RFLWUwUmFGMjA5X18xS3A2dTcwRHdPTDBEd09MMER3UFRVMHF2U0NLZV9hQ0t4NmVDS0BZSDVfNHJ8WkRucUJWcjY9MVdwWk98Wip5ZlBQJG5GRUNLITdyNyR6TWk5d3NxO2VPKzU3QVExczNBdG92XHUwMDI2QlVcdTAwM2VnUTVka0o0Q05kQF5Lb2tLMDAwMDAwMDAwMThDTTg9WUFRMXMzQXRvdlx1MDAyNkNLM1B5Q01SMSE1Q0gpSTAwM1BrQ19vYmQwUlI5MVUwcSNVVFA3QUo3Ylh9YzlWUXdwUTMtUXhaKk8jSGFDQ0RmUTY/T0ZlTys1N0FRMXMzQXRvdlx1MDAyNkRfYmo0MFYqYV5UX3pKLUNMaj8zQ0x0eVx1MDAyNkNNRlU5MVNUaDJLbzlgfDAwMDE4Q01aQT8wUlI5MTA5e1x1MDAzZU9UVSNhO0NLbzBjQ0spQ2dEXm0/flopUzlLYSQjXHUwMDNjQldeWnpCQ1F+TEhkbk9vckNLeDZpQ0xTZytlU0tZOUNMaj8zQ0x0eVx1MDAyNkNMXHUwMDNlIVdBUTFzM0F0b3s9QnxzRGIwMDAwMDAwMDAwVF96PTRDTGo/M0NMdHlcdTAwMjZDTUZVOTFTVGgyS285YHwwMDAxOENNWkE/MFJSOTEwOXtcdTAwM2VPVFUjYTtDS28wY0NLKUNnRF53NzNaKVM5S2EkI1x1MDAzY0JXXlp6QmEkI2c5UjM7cEllTys1N0FRMXMzQXRvWHdCVVx1MDAzZWdRNWRrSjRDTHxeJEtwRnU2MDAwMDAwTl83ZUNNOD1ZQVExczNBdG9Yd0NLM1B5Q01SMSE1Q0gpSTAwM1BrQ19vdGowMDAwI1UwcSNVVFA3QUo3Ylh9Yzg3M01sUlM5JSpWUXpENVZSVTZDUlZFeUplTys1N0FRMXk1QXRvWHdCVVx1MDAzZWdRNWRrSjRDTHxeJEtwRnU2MDAwMDAwMDAxOENNOD1ZQVExeTVBdG9Yd0NLM1B5Q01aQXw1XHUwMDI2IUBJMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBHSzFwSn02KEx5I04zSjBIbTYzelJyJFx1MDAzZXkjTjNKMEhtN2t5QDBZX3kjTjNKME5uck1KcGltSnk4citIMDl7XHUwMDNlT1RgTmApWEtaZ2BWUWdWXmJhSDg4YiMhSE9DUlNUcFRQN0FKN2JYfWM5VlF3cFJ8YS1yYVx1MDAyNjJMN0NSWmpMZG47SERWcip8XHUwMDNlSVx1MDAyNipZI1hcdTAwM2VNbjhXcHBOM2RuT253U3A7SGxaKV8lNkNMUz87ZU8rNTdBUTJ4WEF0b3ZcdTAwMjZEX2JqQzVOfmpGZDJuU1FFan1QbVAqaG5eTUo4RytUTzQ2eWJaS15GYUJwZERiYU5tckp8SUN1UjdxQXZQKXx1dFI4dUJmRF9qc15XTXB1M2IwOTR+QVZFWSNQKmhWVVRxfDd8VlBrWUBjNGNzS1hcdTAwM2VBfWFKfElDdVI3cUF2UCpPPXZDUzVDRDlcdTAwMjZLVDFaZ2dSM1pnNmpEWmdlMG1KfEltXHUwMDI2TmxzS2pObHM4dE5sc0tJVU1wV0ZWUV9HQVorSztIV09RTH1YSnV9NWIwOTR+QVZFLTJRY3FZI1BERTVlUERlI2ZSOHVCakRffElKYiMhb2JiYVopZVdnc20rQVd2MFBQKnFlXlN4YGtMVUBLdGBaKnBYMWF2XHUwMDI2YH1BV3U/Nk1OJWVWRGBGO2NaKl57RFZ7ZFk5V3BaKzFXTkNHQ0FUMlx1MDAyNjFRY3FQKkxfXHUwMDNjJGZQRE41dUt9MVBhUXpsfDdWLXttP2FcdTAwMjZCZEVhQ0NEWkVqfVBhUGZ8YHJRY3pTPUNTeG1QN0lTVEhaKip2SWJhTm1ySnxJXHUwMDI2flBmdGB4UCpoVlVXR2lKN1ZSZHdHYUNDRFpFan1QWVJhOCRcdTAwM2NSOHVCcERgcF5hWipee0RWe2RZOVdwWiRJYjA5NH5BV34wTlBERGRiUWNndXVQKmhWVVctRGhaVntkTUFiYUcqN1pnWF5VVlFGVipiWSpUSkVqfVBhUGZrLSpRYjlcdTAwM2VoUVx1MDAyNmR0eE5rXHUwMDNlUmpNTlRHWERgKl5QWmdnZEdhQlhGRFhtNGE3RWp9UGdQRVx1MDAzY3V3UCkkV3ROS1pzMlhlKChSVntkTURXcFo/NWIjaXVQYjA5NH5BVldgMVJ6KkBcdTAwMjZMc2UyJU1OPWtlRHszQmRaKVM5S2EkI1x1MDAzY0JXXlp6QkFUMlx1MDAyNjFRJV49elI4bTFzUSR8bHhPKHRxOVliMH1UV157Q05WUXpDfloqcHlOVlBxZ0pKfEkoMU1wUlQlS343VWZQZnxAJUt9MDVORHtLfllhJCNcdTAwM2NCWSstYXxBVDJcdTAwMjYxUjhtMXNRJXBmck1KOC0zWjRoI0FiWVhPNUFUMlx1MDAyNjFRY3FNdFI3RUNqRHtjO1JWX3xHJUFUMlx1MDAyNjFRJHM7YU1KOEA1WnlcdTAwM2MxS2M1aWZhYSQjXHUwMDNjQlkrLWF8QVQyXHUwMDI2MVApU3gjUjhcdTAwMjYkeVBFJC1sUjdFQ2xEe3ZaY1g/QWFQYVx1MDAyNkw1RGJZXHUwMDI2bmRKfEl2QFIhXHUwMDNldz9QZ0Zydk1KOH03YVRhSntaZShtX2FDQ0RaRWp9UGZLfjYrV01ObXt6Q1VHbHI4ZmFsfFdOYyt7Rm1Qe2tBVDJcdTAwMjYxTklfMFNPaHJcdTAwMjZJUCl9MVBhd35IaFhrbCgtWS1NbVVhQnApVUVqfVBmS342K1dNTmx6TlBnNXB5RHw4eFlWUXlxXHUwMDNlV3BGWlpaKnczbUp8SVh6UEREXHUwMDI2YVAlPVx1MDAzY1lRem1wUGJyeGBKVlF5dF9hJXBFRUVqfVBuT2hIYVhQZnwlb0NVcS16Nm1WPXxaZT96NVkjPVFAQVclI31QRE1ebE9lU19LY05rJUhiWj1zMWRUQ3tIQVQyXHUwMDI2MUt+K1x1MDAzZXdMUGM2aE1OJWVyRHxqZSNXb0tcdTAwM2M9WmdnVTBkVEN7SFZ7Qzc4V2dzbStBWDd6ME8rYCpyTFBjNmhNTlx1MDAyNmdkUGc2eEVjd0h0RlRQN2U4QTB7Q3REa2RmcDAwYnJ7VFI7IzIwUlI5MVRfenwlNkNWSG8wMDAzMTAwMDYyMDAwOTMwMDBDNDAwMEY1MDAwSTYwMDBMNzAwME84MDAwUjkwMDBVQTAwMFhCMDAwYUMwMDBkRDAwMGdFMDAwakYwMDBtRzAwMHBIMDAwc0kwMDB2SjAwMHlLMDAwI0wwMDBcdTAwMjZNMDAwKk4wMDA7TzAwMFx1MDAzZVAwMDBeUTAwMHtSMDAwflMwMDEyVDAwMTVVMDAzUUdVMHEhKGM/eGlIWFx1MDAzZURuQVg/QTZFQ1Y1KzNDazFKNFdNejA7Q2t8XHUwMDNjRGJZKjh7YSVGQ0dhJXA5QWR3bk1qYjk4Y1BaZjlqfmJhSDhCYjk7UiE1b3ZDOFdvS25fWWhgKDVaZ2dwS1dwaklkQ2xHVVZhJXBhN1loYCg1WmdnXktXcGpJZFRfKzdgWmUoUzZhQnAqSWJaS3ZINmxNU2IwMDAwMDA5XiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInBpdm90dHJhbnNsYXRlIjogWwogICAgICAgICAgICAgICAgMC40MzkwMDE0MTExOTk1Njk3LAogICAgICAgICAgICAgICAgMC41ODMzMTUwMTQ4MzkxNzI0LAogICAgICAgICAgICAgICAgMAogICAgICAgICAgICBdLAogICAgICAgICAgICAic2F2ZWRzdGFzaGdlbyI6IHsKICAgICAgICAgICAgICAgICJnZW9tZXRyeSI6ICJlQDtfTVZwfVQhM3ViOS1XcC10OWI3Xm1HQ0lCa3wyckA3KEg3KyRjRyRzS24wdGplZmI3Xmo1V3EyazZGKUlUS2FCcGREYllwTElaZ2VJQzVkfHYqM3dDOTRiWSp5QloqXntUQ0lrQCREK0xhNGElcFg4YlpLXkZWe2RoQ2JTNEU2MFZAVXNYXHUwMDNlTWszQ0kpKmUyTUIweWI5OFFEWkRsNDBEK21LfmIjNWpJRCt2VC1WUlU2QzJgZFR7R0I3ZVZFaW99SUZmXHUwMDNjQEJIIyMqbkl5RXBSM01cdTAwMjZmK1ZSQ2U3Yjk1I1BEK35pYFg9V3gyRC04XHUwMDI2OVopUzlOVlJCX0E0SiFeMU5OO3N5WFx1MDAzZU1zQ0dCN1NSRTtUcWJDSnJrUDI0WmhAWmUoKk40P3IwUG9tWXYhO21ocW1KXHUwMDI2X342QjIqUFcwMDAwMDAwMDAwRC1hUUlhJXBYMloqXntUVXZxVkJaRERlR0NKLWtXQVJyKGhBUnIoaEFSc1h5UEV9R3VReUBjaWFcdTAwMjZ+MTNELWpXNGJhWmxRVnNcdTAwMjYoN1V2cVZCWkREZUdDSmBxe0FScihoQVRjMHRaKXQ5SEFZcFdMYSVwMDliWSppbzJ+WXxrQVJyKGhGKDdBYlooP0M9QVlwV0xhJXAwOWJZKmlvMzE0NHdaKl57RFduXlAtYVx1MDAyNkJkRWFDQ0RERC1zUTdhXHUwMDI2TDhUVXZxVkJaRERlR0NLNHdoQVJyKGhBVGMwdFopdDlIQVpLIUtiI1FZITI/XHUwMDNjfGNWUmR3R1V2UEFEM1ZrYVIyeX0wN1opfFU4Y190SEVELTtORFopdDlIYSVFO0Y2azk3NTJXZjYoWD03emBDS1dcdTAwMjZ1MXBvajYwMElDNTAwYVBDVGBMdn1WUlVxSVhcdTAwM2N+SkJXcGdHTFRQcWgyYUJwZERiWVhPS2ElcDA5YlkqaVU3aDc5ZkQ7TmNIVntkUn1DS3hMajI1QHleWS13WEE4N21xRGJhYC1QQ0tAWG4yWDF3M1dwWmdfQ0wxZHAxYTR0JVdoTlhlOVJXfSM5VjtGT1oqWCpKWipGclk5KHlKbGRuT3R5OXxtKURhJXBhN0NMYiN4MSRKUlx1MDAzY2IhOD9YRFx1MDAzY0s3TlopdDlIQ0x3KVx1MDAyNlUwVys2MWFvUDZXaE5wSzExbHAzYjk4VFZWUHxDfkJQJTJiV15pKDRWUWUhcENMfTgqMnhNaHVWUmRZRGIwI0hRQ0wkMzVDTD0yKjJ4ZjN7V25wWUtHJHRsMUNrQSQ1WTt8UkdDTVE0fDBSUjkxMDAwMDAwOV9fMFRQN2tBMTEyTFRCcjdOZ2FBOVhcdTAwM2NiN157SUNNWGdCMVM9XkVhJCRGSFZQfER6VlJUXzhETEAkeW9tWXYhaG9sQyowMDAwMGF2YyFBdFBjdTUwMDAwMCVmI1M1QjIqUFcwMDAwMCFcdTAwM2VNYU9KXHUwMDI2X342MDAwMDA7bWhxbShDTmlLMDAwMDBVMHEjV0Q9SDlZWTtSXHUwMDI2PVkrLWJDYSVwMDliWSppVURxQ0F5Q0t4NmVDS0BJbUNMQWooNT9eMChaKl57RFduXlAtYVx1MDAyNkJkRWFDQ0RmRFx1MDAzY1x1MDAyNlIkZU8rNTdBYHQ7NUJQJVFnWFx1MDAzZU4yZ0dBMWw1RWVDVVNhJXBhN2IwI2ZZVF96UFx1MDAzY0NMJDM1Q0xcdTAwM2M7K0NNWGdCMVNcdTAwM2U4UFZ7ZE1BYllYNkVhQTlYXHUwMDNjV143PytiMCNpWktvOWB8MDAwMThDTWlHQDBzc0kxfDZOXk9VMG98TDNVRzMxWkUxOUFjNGMhV0ZJIXQlQ0tAWCsyfkpmfkxQSz9PYzRhMG9VMFcrTDI2a21+YlkqeFpGK2RVcDAwMDMxMHNzUjUxT097QzI0aWUqYjdmXHUwMDNlRUdCN0pNMSE3QHlYXHUwMDNlJXFzVFA3TVNHekNzb1FiSlFFRyVHYSlaKnBYMWF3YXRxMVNcdTAwM2VXV1dvfjM/WmdnZEdhQnBtM2JaS3ZIQ04/b0VIdzl+TVoqKzRlSCRXTiowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdgVzAwMDAwMDA4aG0wMDAwMDAwOGhtMDAwMDAwMDhobTAwMDAwMDA4aG1VMHEjV0RcdTAwM2V3XnFaKXQ5SFhMNF9LYUMwVVx1MDAyNlRVJVF1OTRrMnJVdGVLJGJaPWo5YmFOXHUwMDI2LVUwVytVMzNGdl5Xbiore1oqQz8hVFByXHUwMDI2V2IjOEJSV015KD9XRnxYWEQ/OVx1MDAzZWVJM18kbTVke0RNMDAwMThVMHEjV0NrMUo0V016MDtDa3xcdTAwM2NEYlkqOHthJUZDR2ElcDlBZHduTWpiOThjUFpmOWp+YmFIOEJiOTtSITVvdkM4V29Lbl9ZaGAoNVpnZ3BLV3BqSWRDbEdVVmElcGE3WWhgKDVaZ2deS1dwaklkVF8rN2BaZShTNmFCcCpJYlpLdkg2bE1TYjAwMDAwMDleIgogICAgICAgICAgICB9LAogICAgICAgICAgICAic3Rhc2hnZW8iOiB7CiAgICAgICAgICAgICAgICAiZ2VvbWV0cnkiOiAiZUA7X01WcH1UITN1YjktV3AtdDliN15tR0NJQmt8MnJANyhINyskY0ckc0tuMHRqZWZiN15qNVdxMms2RilJVEthQnBkRGJZcExJWmdlSUM1ZGJSJDN3Qzk0YlkqeUJaKl57VENJa0B4RCtMYTRhJXBYOGJaS15GVntkaENiUzRFNjA0b0xyWFx1MDAzZU1rM0NJKSplMk1CMHliOThRRFpEbDQwRCttS35iIzVqSUQrdlQtVlJVNkMyYGRUe0dCN2VWRWlvfUlGZlx1MDAzY0BCSCMjKm5JeUVwUjNNXHUwMDI2ZitWUkNlN2I5NSNQRCt+aWBYPVd4MkQtOFx1MDAyNjlaKVM5TlZSQl9BNEohXjFOTjtzeVhcdTAwM2VNc0NHQjdTUkU7VHFiQ0pya1AyNFpoQFplKCpOND9yMFB8TnNBZnxOc0J+fE5zQWZ8TnNCfnxOc0FmfE5zQn5ELWFRM2JhWmxRVnNcdTAwMjYoN1V2cVZCWkREZUdDSi1rWkFScihoQVRjMHRaKXQ5SEFZcFdMYSVwMDliWSppbzJ+WX1zRC1qNUVaKlhzSFopYlRYNW5DJH4yeWt5e1pnZ15HVytvQ19ELSNFNFplKGQ9V3BnR0lLb1M2NVRgTHB7VlJVcUlYXHUwMDNjfkpCV3BnR0pUUHFiMGFCcGREYllYT0thJXAwOWJZKmlVNlx1MDAzY2I/ZEQ7NVFGVntkUn1DS2Y5ZjI1QHleWS13WEE3Yl9TOWJhYC1QQ0t4TGoyWDF3M1dwWmdfQ0spUmwxYTR0JVdoTlJjOHYjJXo4IUg/S1oqWCpKWipGclk5RDYxaGRuT253OVJfb0JhJXBhN0NMSnB0MSRKUlx1MDAzY2IhOD9WRFx1MDAzYzFgTFopdDlIQ0xldSRVMFcrNDFhb1A2V2hOakkxMWxqMWI5OFRWVlB8Q35BdUEjWFdeaSg0VlFlIXBDTCR7JTJ4TWh1VlJkWURiMCNCT0NMaj8zQ0x0XHUwMDNlJTJ4ZjN7V25wWUtHJHRlfkI/ZmszWTt8UkdDTTdAYDBSUjkxMDAwMDAwOV9efVRQN2U4MTEyRlJBfWJ+Y2FBOVhcdTAwM2NiN157SUNNRlU5MVM9O0NhJCRGSFZQfER6VlJUXzhDcU5raFUwcSNXVGBNUkdhQl52RlhcdTAwM2VANkpXcGdHZFRVe3B3WFx1MDAzZU1kP2N2fms5WFx1MDAzZU4zN1hKdjlfWmdnXktXcGpJZENrPUNTYSVwYTdXb35xR1g9UVZKZUoyclZaZ2dkNVdwWm19ZDFZXHUwMDNlTlhcdTAwM2V3KEFkd25NbWI5OGNQWmY5I3tkMVlcdTAwM2VOYSVwOUFkd3BGZTRRWHlcdTAwM2NXcTVGSmI3XiNHWipDTjMwMDAwMDAwMDE4IgogICAgICAgICAgICB9LAogICAgICAgICAgICAic3Rhc2hpZCI6ICI7IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjA0LAogICAgICAgICAgICAwLjk3CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJjdXJ2ZTo6Mi4wIgogICAgfSwKICAgICJoYWlyX2d1aWRlczEiOiB7CiAgICAgICAgImNoaWxkcmVuIjogewogICAgICAgICAgICAiMSI6IHsKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICA0Ljc3LAogICAgICAgICAgICAgICAgICAgIDcuMjQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJTdWJuZXRJbmRpcmVjdElucHV0IgogICAgICAgICAgICB9LAogICAgICAgICAgICAiT1VUIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogInN3aXRjaDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDIuMDYsCiAgICAgICAgICAgICAgICAgICAgLTEzLjQyCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAibnVsbCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIl9fZG90MSI6IHsKICAgICAgICAgICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgICAgICAgICAwLjcsCiAgICAgICAgICAgICAgICAgICAgMC43LAogICAgICAgICAgICAgICAgICAgIDAuNwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJhdHRyaWJ0cmFuc2ZlcmJ5dXYxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICA1LjQ5LAogICAgICAgICAgICAgICAgICAgIC04CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiTmV0d29ya0RvdCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImFkZDEiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiZm9yZWFjaF9lbmQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAiYWRkIjogImF0dHJpYnV0ZSIsCiAgICAgICAgICAgICAgICAgICAgImF0dHJuYW1lIjogImlkIiwKICAgICAgICAgICAgICAgICAgICAic3dpdGNoZXIiOiAxCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDAuMTgsCiAgICAgICAgICAgICAgICAgICAgLTEwLjk1CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiYWRkIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiYWRkMiI6IHsKICAgICAgICAgICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiZGVsZXRlMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImFkZCI6ICJza2lwIiwKICAgICAgICAgICAgICAgICAgICAiaW5jIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaChcIi4uL2NpcmNsZTIvZGl2c1wiKSIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJzd2l0Y2hlciI6IDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMi4zMiwKICAgICAgICAgICAgICAgICAgICAtOC45MwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImFkZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImF0dHJpYmNvcHkxIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImNpcmNsZTIiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiZnVzZTEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDEKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJhdHRyaWJuYW1lIjogInV2IiwKICAgICAgICAgICAgICAgICAgICAiZGVzdGdyb3VwdHlwZSI6ICJ2ZXJ0aWNlcyIsCiAgICAgICAgICAgICAgICAgICAgInNyY2dyb3VwdHlwZSI6ICJ2ZXJ0aWNlcyIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgLTEuNTcsCiAgICAgICAgICAgICAgICAgICAgMS44OAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImF0dHJpYmNvcHkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhdHRyaWJ0cmFuc2ZlcmJ5dXYxIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogInV2X3NsYW50X3R3aXN0X2VmZmVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJmb3JlYWNoX2JlZ2luMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgInBvaW50YXR0cmlicyI6ICJQIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAyLjA2LAogICAgICAgICAgICAgICAgICAgIC01LjE5CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiYXR0cmlidHJhbnNmZXJieXV2IgogICAgICAgICAgICB9LAogICAgICAgICAgICAiY2lyY2xlMSI6IHsKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAiYXJjIjogIm9wZW5hcmMiLAogICAgICAgICAgICAgICAgICAgICJkaXZzIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaChcIi4uL2NpcmNsZTIvZGl2c1wiKSIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInBvbHkiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgNi4xMQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImNpcmNsZSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImNpcmNsZTIiOiB7CiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRpdnMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vcHJvZl9kaXZcIikiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJwb2x5IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAtMy4wMywKICAgICAgICAgICAgICAgICAgICAzLjc0CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiY2lyY2xlIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiY29ubmVjdGl2aXR5MSI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAiY29ubmVjdHR5cGUiOiAicHJpbSIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgNC4xNiwKICAgICAgICAgICAgICAgICAgICAtMS43MQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImNvbm5lY3Rpdml0eSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImNvcHkxIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogInV2dGV4dHVyZTIiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJuY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vbnVtX3NlZ1wiKSIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ0IjogWwogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICIxL2NoKFwibmN5XCIpIgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAtMS41NywKICAgICAgICAgICAgICAgICAgICAtMC4zNAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImNvcHl4Zm9ybSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlbGV0ZTEiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiYXR0cmlidHJhbnNmZXJieXV2MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImtlZXBwb2ludHMiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICJwYXR0ZXJuIjogIioiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDIuMzIsCiAgICAgICAgICAgICAgICAgICAgLTguMDUKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJkZWxldGUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJmb3JlYWNoX2JlZ2luMSI6IHsKICAgICAgICAgICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgICAgICAgICAwLjc1LAogICAgICAgICAgICAgICAgICAgIDAuNCwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAgICAgICAgICJjb2xvcmRlZmF1bHQiOiBmYWxzZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJhdHRyaWJ0cmFuc2ZlcmJ5dXYxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAiYmxvY2twYXRoIjogIi4uL2ZvcmVhY2hfZW5kMSIsCiAgICAgICAgICAgICAgICAgICAgIm1ldGhvZCI6ICJwaWVjZSIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMC4xOSwKICAgICAgICAgICAgICAgICAgICAtNi43MgogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImJsb2NrX2JlZ2luIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiZm9yZWFjaF9iZWdpbjIiOiB7CiAgICAgICAgICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgICAgICAgICAgMC43NSwKICAgICAgICAgICAgICAgICAgICAwLjQsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAiY29sb3JkZWZhdWx0IjogZmFsc2UKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiY29ubmVjdGl2aXR5MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImJsb2NrcGF0aCI6ICIuLi9mb3JlYWNoX2VuZDIiLAogICAgICAgICAgICAgICAgICAgICJtZXRob2QiOiAicGllY2UiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDQuMTYsCiAgICAgICAgICAgICAgICAgICAgLTMuMzgKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJibG9ja19iZWdpbiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImZvcmVhY2hfZW5kMSI6IHsKICAgICAgICAgICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgICAgICAgICAwLjc1LAogICAgICAgICAgICAgICAgICAgIDAuNCwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAgICAgICAgICJjb2xvcmRlZmF1bHQiOiBmYWxzZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJzY2F0dGVyMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImJsb2NrcGF0aCI6ICIuLi9mb3JlYWNoX2JlZ2luMSIsCiAgICAgICAgICAgICAgICAgICAgImNsYXNzIjogInByaW1pdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgIml0ZXJtZXRob2QiOiAicGllY2VzIiwKICAgICAgICAgICAgICAgICAgICAibWV0aG9kIjogIm1lcmdlIiwKICAgICAgICAgICAgICAgICAgICAic2luZ2xlcGFzcyI6IDgsCiAgICAgICAgICAgICAgICAgICAgInRlbXBsYXRlcGF0aCI6ICIuLi9mb3JlYWNoX2JlZ2luMSIsCiAgICAgICAgICAgICAgICAgICAgInVzZWF0dHJpYiI6IGZhbHNlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDAuMTksCiAgICAgICAgICAgICAgICAgICAgLTkuMzQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJibG9ja19lbmQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJmb3JlYWNoX2VuZDIiOiB7CiAgICAgICAgICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgICAgICAgICAgMC43NSwKICAgICAgICAgICAgICAgICAgICAwLjQsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAiY29sb3JkZWZhdWx0IjogZmFsc2UKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiT1VUIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAiYXR0cmliIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaHMoXCIuLi9jb25uZWN0aXZpdHkxL2F0dHJpYm5hbWVcIikiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYmxvY2twYXRoIjogIi4uL2ZvcmVhY2hfYmVnaW4yIiwKICAgICAgICAgICAgICAgICAgICAiY2xhc3MiOiAicHJpbWl0aXZlIiwKICAgICAgICAgICAgICAgICAgICAiaXRlcm1ldGhvZCI6ICJwaWVjZXMiLAogICAgICAgICAgICAgICAgICAgICJtZXRob2QiOiAibWVyZ2UiLAogICAgICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZXBhdGgiOiAiLi4vZm9yZWFjaF9iZWdpbjIiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDIuMDYsCiAgICAgICAgICAgICAgICAgICAgLTE1LjI5CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiYmxvY2tfZW5kIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiZnVzZTEiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAidXZ0ZXh0dXJlMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgInRvbDNkIjogMC4wMQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDMuOTEKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJmdXNlOjoyLjAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJvdXRwdXQwIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImZvcmVhY2hfZW5kMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIm91dHB1dGlkeCI6IDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMS44OSwKICAgICAgICAgICAgICAgICAgICAtMTgKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJvdXRwdXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzY2F0dGVyMSI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJmb3JlYWNoX2JlZ2luMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbnNpdHlzY2FsZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAiY2goXCIuLi9jdXJ2ZV9kZW5zXCIpIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImVtZXJnZW5jeWxpbWl0IjogMzQ3MjIsCiAgICAgICAgICAgICAgICAgICAgImdlbmVyYXRlYnkiOiAidGV4dHVyZXNwYWNlIiwKICAgICAgICAgICAgICAgICAgICAibnB0cyI6IDc2LAogICAgICAgICAgICAgICAgICAgICJyZWxheGl0ZXJhdGlvbnMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vcmVsYXhpdGVyYXRpb25zXCIpIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZW91dHB1dGlkYXR0cmliIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAidXZhdHRyaWIiOiAidXZ3IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAwLjE4LAogICAgICAgICAgICAgICAgICAgIC04LjA1CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAic2NhdHRlcjo6Mi4wIgogICAgICAgICAgICB9LAogICAgICAgICAgICAic2V0X3V2X3kiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiY29weTEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJjbGFzcyI6ICJ2ZXJ0ZXgiLAogICAgICAgICAgICAgICAgICAgICJzbmlwcGV0IjogInZAdXYueSA9IHZAUC56OyIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgLTEuNTcsCiAgICAgICAgICAgICAgICAgICAgLTEuNgogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzd2l0Y2gxIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImFkZDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiYWRkMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJfX2RvdDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJpbnB1dCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAiY2goXCIuLi9tb2RlXCIpIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMi4wNiwKICAgICAgICAgICAgICAgICAgICAtMTIuMjYKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJzd2l0Y2giCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ1dl9zbGFudF90d2lzdF9lZmZlY3QiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAic2V0X3V2X3kiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJiaW5kaW5ncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGFybV9saW5rcyI6IHt9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiY2xhc3MiOiAidmVydGV4IiwKICAgICAgICAgICAgICAgICAgICAiZ3JvdXBiaW5kaW5ncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIm11bHRpcGFybV9saW5rcyI6IHt9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAicnNsYW50IjogewogICAgICAgICAgICAgICAgICAgICAgICAicG9pbnRzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vdHdpc3QxaW50ZXJwXCIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAiY2goXCIuLi90d2lzdDFwb3NcIikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vdHdpc3QxdmFsdWVcIikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaChcIi4uL3R3aXN0MmludGVycFwiKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vdHdpc3QycG9zXCIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJjaChcIi4uL3R3aXN0MnZhbHVlXCIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiAiY2goXCIuLi90d2lzdFwiKSIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInNuaXBwZXQiOiAiZmxvYXQgc2xhbnQgPSBjaHJhbXAoXCJyc2xhbnRcIiwgdkB1di55KTtcblxudkB1di54ICs9IHNsYW50O1xudkB1di54ID0gdkB1di54JTE7IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImluc2VydF9hZnRlciI6ICJ2ZXhfdGhyZWFkam9ic2l6ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGRlcl9nZW5lcmF0ZWRwYXJtc19zbmlwcGV0IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJHZW5lcmF0ZWQgQ2hhbm5lbCBQYXJhbWV0ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJzbGFudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJSc2xhbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93X2NvbnRyb2xzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInJhbXBfZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cF90eXBlIjogInNpbXBsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWRlZng6Omxvb2siOiAiYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmb2xkZXJfc2ltcGxlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAtMS41NywKICAgICAgICAgICAgICAgICAgICAtMi43NAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ1dnRleHR1cmUxIjogewogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImNpcmNsZTEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN1bmlmb3JtIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDQuOTQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJ0ZXh0dXJlIgogICAgICAgICAgICB9LAogICAgICAgICAgICAidXZ0ZXh0dXJlMiI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJhdHRyaWJjb3B5MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImF4aXMiOiAieiIsCiAgICAgICAgICAgICAgICAgICAgInV2YXR0cmliIjogInV2dyIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgLTEuNTcsCiAgICAgICAgICAgICAgICAgICAgMC43NgogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogInRleHR1cmUiCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImRpc3BsYXkiOiB0cnVlLAogICAgICAgICAgICAicmVuZGVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3dlZXAxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAidHdpc3QiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuNQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMDksCiAgICAgICAgICAgIC0yLjI2CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJjYzo6aGFpcl9ndWlkZXM6OjEuMCIKICAgIH0sCiAgICAicmVzYW1wbGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImN1cnZlMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAicmVzYW1wbGUiCiAgICB9LAogICAgInN3ZWVwMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJyZXNhbXBsZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhcHBseXNjYWxlIjogdHJ1ZSwKICAgICAgICAgICAgImNhcGRpdnMiOiAxLAogICAgICAgICAgICAiY2Fwc2NhbGUiOiAwLAogICAgICAgICAgICAiY29scyI6IDMyLAogICAgICAgICAgICAiY29tcHV0ZXV2cyI6IHRydWUsCiAgICAgICAgICAgICJub3JtYWxpemV2IjogdHJ1ZSwKICAgICAgICAgICAgInJhZGl1cyI6IDAuMzM0LAogICAgICAgICAgICAic2NhbGVyYW1wIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAiYnNwbGluZSIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJzcGxpbmUiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjE4MDA2OTkyMzQwMDg3ODksCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJzcGxpbmUiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuMjU4NjIwNjc5Mzc4NTA5NQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic3VyZmFjZXNoYXBlIjogInR1YmUiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMDUsCiAgICAgICAgICAgIC0xLjE1CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJzd2VlcDo6Mi4wIgogICAgfQp9