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.

Vellum Guide Geometry
Setup for a vellum simulation that follows a guiding geometry. This is useful when you want to blend a geometry into its final form, while taking into account self or external collisions.
Nov 25, 2025 | 20.5.584 | vellum Cooked By: snay
ewogICAgIlRBUkdFVCI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJwZWFrNCIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibnVsbCIKICAgIH0sCiAgICAiX19jb29rYm9va01ldGEiOiB7CiAgICAgICAgImNvbnRleHQiOiAic29wIiwKICAgICAgICAidmVyc2lvbiI6ICIyMC41LjU4NCIKICAgIH0sCiAgICAiY29weTQiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3dlZXAxNSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgIm5jeSI6IDQsCiAgICAgICAgICAgICJ0IjogWwogICAgICAgICAgICAgICAgMC4yMjgsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMAogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDIuMQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiY29weXhmb3JtIgogICAgfSwKICAgICJsaW5lMSI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJwb2ludHMiOiAyMgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA0LjEKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImxpbmUiCiAgICB9LAogICAgInBlYWs0IjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNvcHk0IiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZGlzdCI6IHsKICAgICAgICAgICAgICAgICJleHRyYXBvbGF0aW9uX2FmdGVyIjogImV4dGVuZCIsCiAgICAgICAgICAgICAgICAiZXh0cmFwb2xhdGlvbl9iZWZvcmUiOiAiZXh0ZW5kIiwKICAgICAgICAgICAgICAgICJrZXlmcmFtZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNjZWwiOiAwLjU2OTQ0NDQ0NDQ0NDQ0NDQsCiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImJlemllcigpIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgImluYWNjZWwiOiAwLjMzMzMzMzMzMzMzMzMzMzMsCiAgICAgICAgICAgICAgICAgICAgICAgICJzbG9wZSI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VsIjogMC4zMzMzMzMzMzMzMzMzMzMzLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJiZXppZXIoKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcmFtZSI6IDQyLAogICAgICAgICAgICAgICAgICAgICAgICAiaW5hY2NlbCI6IDAuNTY5NDQ0NDQ0NDQ0NDQ0NCwKICAgICAgICAgICAgICAgICAgICAgICAgInNsb3BlIjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4xCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDEuMQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAicGVhayIKICAgIH0sCiAgICAic3dlZXAxNSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJsaW5lMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImFwcGx5c2NhbGUiOiB0cnVlLAogICAgICAgICAgICAiY29scyI6IDEzLAogICAgICAgICAgICAic2NhbGVyYW1wIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibW9ub3RvbmVjdWJpYyIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4zNjY2NjY2NzQ2MTM5NTI2NAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogIm1vbm90b25lY3ViaWMiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjUsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogIm1vbm90b25lY3ViaWMiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuMjAwMDAwMDAyOTgwMjMyMjQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInN1cmZhY2VzaGFwZSI6ICJ0dWJlIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAzLjEKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInN3ZWVwOjoyLjAiCiAgICB9LAogICAgInZlbGx1bWNsb3RoMiI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJUQVJHRVQiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJiZW5kc3RpZmZuZXNzZXhwIjogIjAiLAogICAgICAgICAgICAiY29uc3RyYWludHR5cGUiOiAiY2xvdGgiLAogICAgICAgICAgICAiZG9iZW5kZ3JwIjogdHJ1ZSwKICAgICAgICAgICAgImRvY29tcHJlc3MiOiB0cnVlLAogICAgICAgICAgICAiZG9tYXNzIjogImNhbGN2YXJ5aW5nIiwKICAgICAgICAgICAgImRvc3RyZXRjaGdycCI6IHRydWUsCiAgICAgICAgICAgICJkb3RoaWNrbmVzcyI6ICJjYWxjdW5pZm9ybSIsCiAgICAgICAgICAgICJwaW5ncm91cCI6ICJwaW4iCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIC0xLjA5CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJ2ZWxsdW1jb25zdHJhaW50cyIKICAgIH0sCiAgICAidmVsbHVtY29uc3RyYWludHMyIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInZlbGx1bWNsb3RoMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInZlbGx1bWNsb3RoMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDEsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInZlbGx1bWNsb3RoMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAyCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImNvbnN0cmFpbnR0eXBlIjogImF0dGFjaCIsCiAgICAgICAgICAgICJzdHJldGNoc3RpZmZuZXNzZXhwIjogIi0xIiwKICAgICAgICAgICAgInRhcmdldGdyb3VwIjogIioiLAogICAgICAgICAgICAidGFyZ2V0Z3JvdXB0eXBlIjogInBvaW50cyIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgLTIuMDkKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInZlbGx1bWNvbnN0cmFpbnRzIgogICAgfSwKICAgICJ2ZWxsdW1zb2x2ZXIyIjogewogICAgICAgICJlZGl0YWJsZXMiOiB7CiAgICAgICAgICAgICJkb3BuZXQxL2ZvcmNlcyI6IHsKICAgICAgICAgICAgICAgICJjaGlsZHJlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiRk9SQ0UiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAidmVsbHVtcmVzdGJsZW5kMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMjkKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3VibmV0b3V0cHV0IgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIlNPVVJDRSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3BsYXkiOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXRwdXRpZHgiOiAxCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjI5CiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN1Ym5ldG91dHB1dCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJfX3N0aWNreW5vdGUxIjogewogICAgICAgICAgICAgICAgICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45NywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNTIKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgNS45LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41NgogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAic2l6ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDIKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgInRleHQiOiAiV2lyZSBQT1AgRm9yY2VzIGludG8gRk9SQ0UgdG8gYXBwbHkgcGVyLXBvaW50IGZvcmNlcy5cblxuV2lyZSBWZWxsdW0gQ29uc3RyYWludCBQcm9wZXJ0aWVzIGFuZCBWZWxsdW0gUmVzdCBCbGVuZCB0byB1cGRhdGUgY29uc3RyYWludHMgZHluYW1pY2FsbHkuXG5cbldpcmUgVmVsbHVtIENvbnN0cmFpbnRzIHRvIGJ1aWxkIG5ldyBjb25zdHJhaW50cy5cblxuV2lyZSBWZWxsdW0gU291cmNlIERPUHMgdG8gU09VUkNFIHRvIGFkZCBuZXcgdmVsbHVtIGdlb21ldHJ5LiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0X2NvbG9yIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIlN0aWNreU5vdGUiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmVsbHVtcmVzdGJsZW5kMSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmdyb3VwIjogImJlbmQgc3RyZXRjaCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzdHNvcCI6ICIuLi8uLi8uLi8uLi9UQVJHRVQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc3Rzb3VyY2UiOiAic29wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cGRhdGVtb2RlIjogInBlcnN1YnN0ZXAiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc0CiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInZlbGx1bXJlc3RibGVuZCIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInR5cGUiOiAic3VibmV0IgogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZSwKICAgICAgICAgICAgImhpZ2hsaWdodCI6IHRydWUsCiAgICAgICAgICAgICJyZW5kZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJ2ZWxsdW1jb25zdHJhaW50czIiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJ2ZWxsdW1jb25zdHJhaW50czIiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAxLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJ2ZWxsdW1jb25zdHJhaW50czIiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAyLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMgogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJncmF2aXR5IjogWwogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgLTMuMDkKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInZlbGx1bXNvbHZlciIKICAgIH0KfQ==
Gradient Flow
Compute flow direction vector and propogate it along mesh. This is done without simulation by using ForEach.
Nov 05, 2025 | 20.5.584 | vex Cooked By: kif
ewogICAgIl9fY29va2Jvb2tNZXRhIjogewogICAgICAgICJjb250ZXh0IjogInNvcCIsCiAgICAgICAgInZlcnNpb24iOiAiMjAuNS41ODQiCiAgICB9LAogICAgImF0dHJpYnByb21vdGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInBvbHlmcmFtZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJpbmNsYXNzIjogInZlcnRleCIsCiAgICAgICAgICAgICJpbm5hbWUiOiAidGFuZ2VudCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlicHJvbW90ZSIKICAgIH0sCiAgICAiY29tcHV0ZV9ncmFkaWVudCI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJmb3JlYWNoX2JlZ2luMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNuaXBwZXQiOiAiaW50IG5laWJvdXJzW10gPSBpW11AbmVpYm91cnM7XG5cbmZsb2F0IGFjY3VtID0gMDtcbmZsb2F0IGluZmVjdCA9IDA7XG5cbmZvcmVhY2ggKGludCBwbnQ7IG5laWJvdXJzKSB7XG4gICAgaW5mZWN0ID0gcG9pbnQoMCwgXCJpbmZlY3RcIiwgcG50KTtcbiAgICBpZiAoaW5mZWN0IFx1MDAzZSAwKSB7XG4gICAgICAgIGFjY3VtICs9IDAuMTtcbiAgICB9XG59XG5cbkBpbmZlY3QgKz0gYWNjdW0gLyBsZW4obmVpYm91cnMpO1xuIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA0LjIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgImZvcmVhY2hfYmVnaW4xIjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMC45LAogICAgICAgICAgICAwLjUsCiAgICAgICAgICAgIDAKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJwcmVjb21wdXRlX25laWJvdXJzIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYmxvY2twYXRoIjogIi4uL3Byb3BvZ2F0aW9uX3Byb2dyZXNzIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjAxLAogICAgICAgICAgICA1LjI4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJibG9ja19iZWdpbiIKICAgIH0sCiAgICAiZ3JvdXAxIjogewogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImhpZ2hsaWdodCI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInN1YmRpdmlkZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJiYXNlZ3JvdXAiOiAiMjk1MyA1OTUzIDU5NzAgMTUyIDI5NzUgNTk2OCA0MTgzIDQyNDAgODY0NSA4NjQ4IDg0ODEgNDI0NCA0MjQzIDg2NjggODY0NiA4NjU2IDU5NjkgNDI1MSA4NjU0IDQyNDgtNDI0OSA4NjU1IDg2NTggODQ4NCAxODA0IDE3OTkgNDI0NyAxODAzIDEyMiA1OTgzIDg2NzEgODY3NiAxODI2IDQyNTYgODY3NSAxNzk4IDYwMjIgMTIxIDg2NTcgODY3MiA4NzE3IDE3ODcgNDI3MSA0MjczIDE3NzAgMTc4OCA4NjcwIDQyNzUgODcyMyA4NzI4IDg2NjkgODcyMiAxNzg5IDg3MjEgNDI3NiA4NzI2IDE4MyAxNzcxIDg3MTYgMTgxMCA4NjU5IDg2NDciLAogICAgICAgICAgICAiZ3JvdXBuYW1lIjogInN0YXJ0IiwKICAgICAgICAgICAgImdyb3VwdHlwZSI6ICJwb2ludCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgOC40OAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZ3JvdXBjcmVhdGUiCiAgICB9LAogICAgImluaXRfaW5mZWN0X2F0dHIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiZ3JvdXAxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZ3JvdXAiOiAic3RhcnQiLAogICAgICAgICAgICAic25pcHBldCI6ICJAaW5mZWN0ID0gMTsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDcuNDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgIm9yaWVudF9mcm9tX2dyYWRpZW50IjogewogICAgICAgICJjaGlsZHJlbiI6IHsKICAgICAgICAgICAgImJpbmQxIjogewogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJleHBvcnRjb250ZXh0IjogImN2ZXgiLAogICAgICAgICAgICAgICAgICAgICJwYXJtbmFtZSI6ICJ0YW5nZW50IiwKICAgICAgICAgICAgICAgICAgICAicGFybXR5cGUiOiAidmVjdG9yIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAzLjc4LAogICAgICAgICAgICAgICAgICAgIDMuNjcKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2l6ZSI6IFsKICAgICAgICAgICAgICAgICAgICAxLjc3LAogICAgICAgICAgICAgICAgICAgIDAuODMKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJiaW5kIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiYmluZDIiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAibWF0eHRvcXVhdDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJxdWF0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogImlucHV0IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImV4cG9ydGNvbnRleHQiOiAiY3ZleCIsCiAgICAgICAgICAgICAgICAgICAgImV4cG9ydHBhcm0iOiAyLAogICAgICAgICAgICAgICAgICAgICJvdmVycmlkZXR5cGUiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICJwYXJtbmFtZSI6ICJvcmllbnQiLAogICAgICAgICAgICAgICAgICAgICJwYXJtdHlwZSI6ICJmbG9hdDQiLAogICAgICAgICAgICAgICAgICAgICJ1c2Vhc3Bhcm1kZWZpbmVyIjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAxNy45MywKICAgICAgICAgICAgICAgICAgICAzLjc5CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAwLjgzCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiYmluZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImNyb3NzMSI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJnZW9tZXRyeXZvcGdsb2JhbDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJOIiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogInZlYzEiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImJpbmQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAidGFuZ2VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJ2ZWMyIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgNi43OCwKICAgICAgICAgICAgICAgICAgICAyLjU2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAwLjgzCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiY3Jvc3MiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJjcm9zczIiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiYmluZDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJ0YW5nZW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogInZlYzEiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImNyb3NzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogImNyb3NzcHJvZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJ2ZWMyIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgOS40LAogICAgICAgICAgICAgICAgICAgIDAuODQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2l6ZSI6IFsKICAgICAgICAgICAgICAgICAgICAxLjc3LAogICAgICAgICAgICAgICAgICAgIDAuODMKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJjcm9zcyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImdlb21ldHJ5dm9wZ2xvYmFsMSI6IHsKICAgICAgICAgICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMS45MSwKICAgICAgICAgICAgICAgICAgICAxLjk4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAzLjgzCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiZ2VvbWV0cnl2b3BnbG9iYWw6OjIuMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImdlb21ldHJ5dm9wb3V0cHV0MSI6IHsKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAxOS42NSwKICAgICAgICAgICAgICAgICAgICAxLjM2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAxLjI4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiZ2VvbWV0cnl2b3BvdXRwdXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJtYXR4dG9xdWF0MSI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJ2ZWN0b21hdHgxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAibWF0eCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJtYXR4IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMTQuMSwKICAgICAgICAgICAgICAgICAgICA0LjA2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAwLjY4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAibWF0eHRvcXVhdCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInZlY3RvbWF0eDEiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiY3Jvc3MxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAiY3Jvc3Nwcm9kIiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogInZ2YWwxIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJjcm9zczIiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJjcm9zc3Byb2QiLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAidnZhbDIiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImJpbmQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAidGFuZ2VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJ2dmFsMyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDExLjY1LAogICAgICAgICAgICAgICAgICAgIDQuNAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJzaXplIjogWwogICAgICAgICAgICAgICAgICAgIDEuNzcsCiAgICAgICAgICAgICAgICAgICAgMC45OAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogInZlY3RvbWF0eCIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICJyZW5kZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJhdHRyaWJwcm9tb3RlMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtdGVtcGxhdGVzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaW5zZXJ0X2FmdGVyIjogInN0ZHN3aXRjaGVyXzEiLAogICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIkNkIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdF92YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkNkIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm51bV9jb21wb25lbnRzIjogMywKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiRnJhbWUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiRnJhbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiTiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJOIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm51bV9jb21wb25lbnRzIjogMywKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiT3BJbnB1dDEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiRmlyc3QgSW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJPcElucHV0MiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJTZWNvbmQgSW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJPcElucHV0MyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJUaGlyZCBJbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIk9wSW5wdXQ0IjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkZvdXJ0aCBJbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIlAiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiUCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJudW1fY29tcG9uZW50cyI6IDMsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIlRpbWUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiVGltZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtYXhfdmFsdWUiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJUaW1lSW5jIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlRpbWUgSW5jIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm1heF92YWx1ZSI6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFnZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJBZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiZm9yY2UiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiRm9yY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAibnVtX2NvbXBvbmVudHMiOiAzLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHRfdmFsdWUiOiAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJJZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJsaWZlIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkxpZmUiLAogICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAibnVtcHJpbSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJOdW1iZXIgb2YgUHJpbXMiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAibnVtcHQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTnVtYmVyIG9mIFBvaW50cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJudW12dHgiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTnVtYmVyIG9mIFZlcnRpY2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm1lbnVfdHlwZSI6ICJub3JtYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInByaW1udW0iOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiUHJpbWl0aXZlIE51bWJlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJwdG51bSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJQb2ludCBOdW1iZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXYiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiVVYiLAogICAgICAgICAgICAgICAgICAgICAgICAibnVtX2NvbXBvbmVudHMiOiAzLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ2IjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlZlbG9jaXR5IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm51bV9jb21wb25lbnRzIjogMywKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidnR4bnVtIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlZlcnRleCBOdW1iZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgIC0xLjE4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJ2b3AiCiAgICB9LAogICAgInBvaW50d3JhbmdsZTIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicHJvcG9nYXRpb25fcHJvZ3Jlc3MiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJzbmlwcGV0IjogInZAZ3JhZCA9IHNldChAaW5mZWN0LCAwLCAwKTsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDIuMDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgInBvbHlmcmFtZTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicG9pbnR3cmFuZ2xlMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgIk5vbiI6IGZhbHNlLAogICAgICAgICAgICAiYXR0cmlibmFtZSI6ICJncmFkIiwKICAgICAgICAgICAgInN0eWxlIjogImF0dHJpYiIsCiAgICAgICAgICAgICJ0YW5nZW50dSI6ICJ0YW5nZW50IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAxCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJwb2x5ZnJhbWUiCiAgICB9LAogICAgInByZWNvbXB1dGVfbmVpYm91cnMiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiaW5pdF9pbmZlY3RfYXR0ciIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNuaXBwZXQiOiAiaW50IG5laWJvdXJzW10gPSBuZWlnaGJvdXJzKDAsIEBwdG51bSk7XG5pW11AbmVpYm91cnMgPSBuZWlib3VyczsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDYuMzYKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgInByb3BvZ2F0aW9uX3Byb2dyZXNzIjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMC45LAogICAgICAgICAgICAwLjUsCiAgICAgICAgICAgIDAKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJjb21wdXRlX2dyYWRpZW50IiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYmxvY2twYXRoIjogIi4uL2ZvcmVhY2hfYmVnaW4xIiwKICAgICAgICAgICAgIml0ZXJhdGlvbnMiOiB7CiAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICIkRiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIml0ZXJtZXRob2QiOiAiY291bnQiLAogICAgICAgICAgICAidGVtcGxhdGVwYXRoIjogIi4uL2ZvcmVhY2hfYmVnaW4xIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjAxLAogICAgICAgICAgICAzLjEyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJibG9ja19lbmQiCiAgICB9LAogICAgInN1YmRpdmlkZTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAidGVzdGdlb21ldHJ5X3BpZ2hlYWQxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjA3LAogICAgICAgICAgICA5LjQ4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJzdWJkaXZpZGUiCiAgICB9LAogICAgInRlc3RnZW9tZXRyeV9waWdoZWFkMSI6IHsKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgIDEwLjQ4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJ0ZXN0Z2VvbWV0cnlfcGlnaGVhZCIKICAgIH0KfQ==
Simple Petal
A few nodes to create a basic petal shape, with common masks, deformation, and UVs. This should provide a good base layer of detail to feed into a vellum simulation.
Nov 05, 2025 | 20.5.584 | geometry Cooked By: snay
ewogICAgIl9fY29va2Jvb2tNZXRhIjogewogICAgICAgICJjb250ZXh0IjogInNvcCIsCiAgICAgICAgInZlcnNpb24iOiAiMjAuNS41ODQiCiAgICB9LAogICAgImFzc2lnbl9lZGdlX3ZhbCI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJib3VuZGFyeV9lZGdlX2dyb3VwIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZ3JvdXAiOiAiZWRnZSIsCiAgICAgICAgICAgICJzbmlwcGV0IjogImZAZWRnZSA9IDEuMDsgICIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAiYXV0b3V2MSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJncmlkMyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgNy4wNAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibGFiczo6YXV0b3V2IgogICAgfSwKICAgICJibHVyX2VkZ2UiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicmVtZXNoMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImF0dHJpYnV0ZXMiOiAiZWRnZSIsCiAgICAgICAgICAgICJpdGVyYXRpb25zIjogOQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAtMy4xMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmliYmx1ciIKICAgIH0sCiAgICAiYm91bmRhcnlfZWRnZV9ncm91cCI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJoaWdobGlnaHQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJlZGdlX3Ntb290aDEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJncm91cGJhc2UiOiBmYWxzZSwKICAgICAgICAgICAgImdyb3VwZWRnZXMiOiB0cnVlLAogICAgICAgICAgICAiZ3JvdXBuYW1lIjogImVkZ2UiLAogICAgICAgICAgICAiZ3JvdXB0eXBlIjogInBvaW50IiwKICAgICAgICAgICAgInVuc2hhcmVkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAxLjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJncm91cGNyZWF0ZSIKICAgIH0sCiAgICAiY2VudGVyX25vaXNlIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImVkZ2Vfbm9pc2UiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhbXBsaXR1ZGV2IjogMC4wNywKICAgICAgICAgICAgImF0dHJpYnMiOiAiUCIsCiAgICAgICAgICAgICJibGVuZGF0dHJpYiI6ICJoZWlnaHROb2lzZU1hc2siLAogICAgICAgICAgICAiYmxlbmRtb2RlIjogImF0dHJpYiIsCiAgICAgICAgICAgICJjb21wb25lbnRzY29wZSI6IDEwNiwKICAgICAgICAgICAgImRvYmxlbmQiOiB0cnVlLAogICAgICAgICAgICAiZWxlbWVudHNjYWxlIjogWwogICAgICAgICAgICAgICAgMC4yLAogICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgIDEKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImVsZW1lbnRzaXplIjogMC45LAogICAgICAgICAgICAiZWxlbWVudHNpemV0eXBlIjogMSwKICAgICAgICAgICAgImxvY2F0aW9uYXR0cmliIjogIlAyIiwKICAgICAgICAgICAgIm5vaXNlcmFuZ2UiOiAiemNlbnRlcmVkIiwKICAgICAgICAgICAgIm9jdCI6IDAuNzcsCiAgICAgICAgICAgICJvZmZzZXQiOiAyMi44CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIC01LjEyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJub2lzZTo6Mi4wIgogICAgfSwKICAgICJjcmVhdGVfbm9pc2VfbWFza3MiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiYXNzaWduX2VkZ2VfdmFsIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibm9pc2VfYnlfZWRnZSI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAibm9pc2VfYnlfaGVpZ2h0IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzbmlwcGV0IjogImZAaGVpZ2h0Tm9pc2VNYXNrID0gY2hyYW1wKFwibm9pc2VfYnlfaGVpZ2h0XCIsIC12QFAueik7XG5mQGVkZ2VOb2lzZU1hc2sgPSBmQGVkZ2UgKiBjaHJhbXAoXCJub2lzZV9ieV9lZGdlXCIsIC12QFAueik7XG5cbnZAUDIgPSBub3JtYWxpemUodkBQKTsiCiAgICAgICAgfSwKICAgICAgICAicGFybXRlbXBsYXRlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImluc2VydF9hZnRlciI6ICJ2ZXhfdGhyZWFkam9ic2l6ZSIsCiAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyX2dlbmVyYXRlZHBhcm1zX3NuaXBwZXQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJHZW5lcmF0ZWQgQ2hhbm5lbCBQYXJhbWV0ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9pc2VfYnlfZWRnZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTm9pc2UgQnkgRWRnZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hvd19jb250cm9scyI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAicmFtcF9mbG9hdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9pc2VfYnlfaGVpZ2h0IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJOb2lzZSBCeSBIZWlnaHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3dfY29udHJvbHMiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInJhbXBfZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3VwX3R5cGUiOiAic2ltcGxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWRlZng6Omxvb2siOiAiYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZvbGRlcl9zaW1wbGUiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIC0xLjA4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJ3cmFuZ2xlIgogICAgfSwKICAgICJlZGdlX2ZvbGRpbmciOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic21vb3RoMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNuaXBwZXQiOiAidmVjdG9yIGRpciA9IG5vcm1hbGl6ZSh2QFApO1xuXG52QFAgLT0gZkBlZGdlTm9pc2VNYXNrICogMC4xKmRpciAqICgxLjAgKyBjdXJsbm9pc2UoNC4wKnZAUCkpO1xudkBQLnkgKz0gMC4wMypmQGVkZ2VOb2lzZU1hc2s7IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAtNy4xNgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAiZWRnZV9ub2lzZSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJibHVyX2VkZ2UiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhbXBsaXR1ZGV2IjogMC4wNSwKICAgICAgICAgICAgImF0dHJpYnMiOiAiUCIsCiAgICAgICAgICAgICJibGVuZGF0dHJpYiI6ICJlZGdlTm9pc2VNYXNrIiwKICAgICAgICAgICAgImJsZW5kbW9kZSI6ICJhdHRyaWIiLAogICAgICAgICAgICAiY29tcG9uZW50c2NvcGUiOiAxMDYsCiAgICAgICAgICAgICJkb2JsZW5kIjogdHJ1ZSwKICAgICAgICAgICAgImVsZW1lbnRzaXplIjogMC4xMiwKICAgICAgICAgICAgIm5vaXNlcmFuZ2UiOiAiemNlbnRlcmVkIiwKICAgICAgICAgICAgIm9jdCI6IDAKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgLTQuMTIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYm5vaXNlOjoyLjAiCiAgICB9LAogICAgImVkZ2Vfc21vb3RoMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJzdWJkaXZpZGUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiaW5jbHVkZXVuc2hhcmVkIjogdHJ1ZSwKICAgICAgICAgICAgInNtb290aHN0cmVuZ3RoIjogOAogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAyLjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJsYWJzOjplZGdlX3Ntb290aDo6MS4wIiwKICAgICAgICAidXNlcl9kYXRhIjogewogICAgICAgICAgICAid2lyZXN0eWxlIjogInJvdW5kZWQiCiAgICAgICAgfQogICAgfSwKICAgICJlZGl0MSI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJoaWdobGlnaHQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJhdXRvdXYxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZ3JvdXAiOiAiMyA4IiwKICAgICAgICAgICAgImdyb3VwdHlwZSI6ICJwb2ludHMiLAogICAgICAgICAgICAibGVhZGlzbGFuZGhpbnQiOiAiOCIsCiAgICAgICAgICAgICJwIjogWwogICAgICAgICAgICAgICAgMi45ODAyMzIyMzg3Njk1MzEyZS04LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIC0wLjIwMTY4NDU5NDE1NDM1NzkKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInQiOiBbCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAuMDU2NzM3ODk5NzgwMjczNDQKICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA2LjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJlZGl0IgogICAgfSwKICAgICJlZGl0MiI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJoaWdobGlnaHQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJwb2x5c3BsaXQxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZ3JvdXAiOiAiMTAtMTEgMTMiLAogICAgICAgICAgICAiZ3JvdXB0eXBlIjogInBvaW50cyIsCiAgICAgICAgICAgICJsZWFkaXNsYW5kaGludCI6ICIxMyIsCiAgICAgICAgICAgICJwIjogWwogICAgICAgICAgICAgICAgMi45ODAyMzIyMzg3Njk1MzEyZS04LAogICAgICAgICAgICAgICAgLTAuMDU4MzI1NzM3NzE0NzY3NDU2LAogICAgICAgICAgICAgICAgLTAuMzU0NDA4MzIzNzY0ODAxCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0IjogWwogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIC0wLjA3OTI5ODA5MDE4OTY5NTM2LAogICAgICAgICAgICAgICAgMAogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDQuMDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImVkaXQiCiAgICB9LAogICAgImdyaWQzIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImNvbHMiOiA1LAogICAgICAgICAgICAiciI6IFsKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAtOTAsCiAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyb3dzIjogMiwKICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAwLjc5MzAxNTE2NzExNzExODgsCiAgICAgICAgICAgICAgICAwLjQwNjcxODg1MDEzNTgwMzIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInQiOiBbCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIC0wLjM5OTkzODM3NDc1Nzc2NjcKICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA4LjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJncmlkIgogICAgfSwKICAgICJwb2x5c3BsaXQxIjogewogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImhpZ2hsaWdodCI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImVkaXQxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibnVtbG9vcHMiOiAxLAogICAgICAgICAgICAicGF0aHR5cGUiOiAicXVhZGN1dCIsCiAgICAgICAgICAgICJzcGxpdGxvYyI6ICIxZTE6MC41MDg0ODQiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDUuMDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInBvbHlzcGxpdDo6Mi4wIgogICAgfSwKICAgICJyZW1lc2gxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNyZWF0ZV9ub2lzZV9tYXNrcyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInRhcmdldHNpemUiOiAwLjAyCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIC0yLjEyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJyZW1lc2g6OjIuMCIKICAgIH0sCiAgICAic21vb3RoMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJjZW50ZXJfbm9pc2UiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIC02LjEyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJzbW9vdGg6OjIuMCIKICAgIH0sCiAgICAic3ViZGl2aWRlMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJlZGl0MiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgIml0ZXJhdGlvbnMiOiAyCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDMuMDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInN1YmRpdmlkZSIKICAgIH0KfQ==