diff --git a/CHANGELOG.md b/CHANGELOG.md index 34004fd..5862b0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,29 @@ +# dbt_linkedin_source v0.10.0 +[PR #69](https://github.com/fivetran/dbt_linkedin_source/pull/69) includes the following updates: + +## Breaking Changes +- The `click_uri_type` field has been added to the `stg_linkedin_ads__creative_history` model. This field allows users to differentiate which click uri type (`text_ad` or `spotlight`) is being used to populate the results of the `click_uri` field. + - Please be aware this field only supports `text_ad` or `spotlight` click uri types. If you are interested in this package supporting more click uri ad types, please let us know in this [Feature Request](https://github.com/fivetran/dbt_linkedin_source/issues/70). + +## Bug Fixes +- The `click_uri` field has been adjusted to populate the results following a coalesce on the `text_ad_landing_page`, `spotlight_landing_page`, or `click_uri` fields. + - This change is in response to a [LinkedIn Ads API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/contentapi-migration-guide?view=li-lms-2024-05#adcreativesv2-api-creatives-api) and [Fivetran LinkedIn Ads connector update](https://fivetran.com/docs/connectors/applications/linkedin-ads/changelog#january2024) which moved `click_uri` data to either the `text_ad_landing_page` or `spotlight_landing_page` fields depending on the creative type. +- Updated the `is_latest_version` window function in the following models to exclude the `source_relation` field from the partition statement when `linkedin_ads_union_schemas` or `linkedin_ads_union_databases` variables are empty in the following models: + - `stg_linkedin_ads__account_history` + - `stg_linkedin_ads__campaign_group_history` + - `stg_linkedin_ads__campaign_history` + - `stg_linkedin_ads__creative_history` +- In addition to the above, the `is_latest_version` window function within the `stg_linkedin_ads__creative_history` model has been moved to the final cte to avoid possible constant expression errors within Redshift destinations. + +## Under the Hood +- Updates to the `linkedin_creative_history_data` seed file to include the following new fields to ensure accurate data validation tests: + - `text_ad_landing_page` + - `spotlight_landing_page` + +## Documentation Updates +- Added `click_uri_type` field documentation. +- The `click_uri` field documentation has been updated to reflect the updated state of the field. + # dbt_linkedin_source v0.9.0 [PR #67](https://github.com/fivetran/dbt_linkedin_source/pull/67) includes the following updates: diff --git a/README.md b/README.md index 8d455e0..071923b 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ If you are **not** using the [Linkedin transformation package](https://github.c # packages.yml packages: - package: fivetran/linkedin_source - version: [">=0.9.0", "<0.10.0"] + version: [">=0.10.0", "<0.11.0"] ``` ### Step 3: Define database and schema variables diff --git a/dbt_project.yml b/dbt_project.yml index 48faef3..78506f8 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,5 +1,5 @@ name: 'linkedin_source' -version: '0.9.0' +version: '0.10.0' config-version: 2 require-dbt-version: [">=1.3.0", "<2.0.0"] models: diff --git a/docs/catalog.json b/docs/catalog.json index b7f4c79..0d123d9 100644 --- a/docs/catalog.json +++ b/docs/catalog.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.7.17", "generated_at": "2024-07-18T20:05:08.551106Z", "invocation_id": "2a69ab7c-befa-4b06-89b7-0cc5e741d25e", "env": {}}, "nodes": {"seed.linkedin_source_integration_tests.linkedin_account_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_account_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "version_tag": {"type": "integer", "index": 6, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_account_history_data"}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_campaign_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "integer", "index": 1, "name": "campaign_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 4, "name": "ad_unit_clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 5, "name": "approximate_unique_impressions", "comment": null}, "card_clicks": {"type": "integer", "index": 6, "name": "card_clicks", "comment": null}, "card_impressions": {"type": "integer", "index": 7, "name": "card_impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "comment_likes": {"type": "integer", "index": 9, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 10, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 11, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 12, "name": "conversion_value_in_local_currency", "comment": null}, "cost_in_local_currency": {"type": "double precision", "index": 13, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "double precision", "index": 14, "name": "cost_in_usd", "comment": null}, "external_website_conversions": {"type": "integer", "index": 15, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 16, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 17, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 18, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 19, "name": "full_screen_plays", "comment": null}, "impressions": {"type": "integer", "index": 20, "name": "impressions", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 21, "name": "landing_page_clicks", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data"}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_creative_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"creative_id": {"type": "integer", "index": 1, "name": "creative_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "card_clicks": {"type": "integer", "index": 4, "name": "card_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 5, "name": "ad_unit_clicks", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 6, "name": "landing_page_clicks", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 8, "name": "approximate_unique_impressions", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "card_impressions": {"type": "integer", "index": 10, "name": "card_impressions", "comment": null}, "cost_in_local_currency": {"type": "integer", "index": 11, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "integer", "index": 12, "name": "cost_in_usd", "comment": null}, "comment_likes": {"type": "integer", "index": 13, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 14, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 15, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 16, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 17, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 18, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 19, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 20, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 21, "name": "full_screen_plays", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data"}, "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_group_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 4, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data"}, "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "campaign_group_id": {"type": "integer", "index": 4, "name": "campaign_group_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 5, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 6, "name": "name", "comment": null}, "version_tag": {"type": "integer", "index": 7, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_history_data"}, "seed.linkedin_source_integration_tests.linkedin_creative_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_creative_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "intended_status": {"type": "character varying", "index": 3, "name": "intended_status", "comment": null}, "click_uri": {"type": "character varying", "index": 4, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 5, "name": "last_modified_at", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 6, "name": "created_time", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_creative_history_data"}, "model.linkedin_source.stg_linkedin_ads__account_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "account_id": {"type": "integer", "index": 2, "name": "account_id", "comment": null}, "account_name": {"type": "text", "index": 3, "name": "account_name", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "version_tag": {"type": "numeric", "index": 5, "name": "version_tag", "comment": null}, "status": {"type": "text", "index": 6, "name": "status", "comment": null}, "type": {"type": "text", "index": 7, "name": "type", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 8, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 10, "name": "is_latest_version", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history"}, "model.linkedin_source.stg_linkedin_ads__account_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "version_tag": {"type": "integer", "index": 6, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history_tmp"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "date_day": {"type": "timestamp without time zone", "index": 2, "name": "date_day", "comment": null}, "campaign_id": {"type": "integer", "index": 3, "name": "campaign_id", "comment": null}, "clicks": {"type": "integer", "index": 4, "name": "clicks", "comment": null}, "impressions": {"type": "integer", "index": 5, "name": "impressions", "comment": null}, "cost": {"type": "double precision", "index": 6, "name": "cost", "comment": null}, "conversion_value_in_local_currency": {"type": "double precision", "index": 7, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 8, "name": "external_website_conversions", "comment": null}, "one_click_leads": {"type": "integer", "index": 9, "name": "one_click_leads", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "integer", "index": 1, "name": "campaign_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 4, "name": "ad_unit_clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 5, "name": "approximate_unique_impressions", "comment": null}, "card_clicks": {"type": "integer", "index": 6, "name": "card_clicks", "comment": null}, "card_impressions": {"type": "integer", "index": 7, "name": "card_impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "comment_likes": {"type": "integer", "index": 9, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 10, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 11, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 12, "name": "conversion_value_in_local_currency", "comment": null}, "cost_in_local_currency": {"type": "double precision", "index": 13, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "double precision", "index": 14, "name": "cost_in_usd", "comment": null}, "external_website_conversions": {"type": "integer", "index": 15, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 16, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 17, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 18, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 19, "name": "full_screen_plays", "comment": null}, "impressions": {"type": "integer", "index": 20, "name": "impressions", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 21, "name": "landing_page_clicks", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "date_day": {"type": "timestamp without time zone", "index": 2, "name": "date_day", "comment": null}, "creative_id": {"type": "integer", "index": 3, "name": "creative_id", "comment": null}, "clicks": {"type": "integer", "index": 4, "name": "clicks", "comment": null}, "impressions": {"type": "integer", "index": 5, "name": "impressions", "comment": null}, "cost": {"type": "integer", "index": 6, "name": "cost", "comment": null}, "conversion_value_in_local_currency": {"type": "double precision", "index": 7, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 8, "name": "external_website_conversions", "comment": null}, "one_click_leads": {"type": "integer", "index": 9, "name": "one_click_leads", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"creative_id": {"type": "integer", "index": 1, "name": "creative_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "card_clicks": {"type": "integer", "index": 4, "name": "card_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 5, "name": "ad_unit_clicks", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 6, "name": "landing_page_clicks", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 8, "name": "approximate_unique_impressions", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "card_impressions": {"type": "integer", "index": 10, "name": "card_impressions", "comment": null}, "cost_in_local_currency": {"type": "integer", "index": 11, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "integer", "index": 12, "name": "cost_in_usd", "comment": null}, "comment_likes": {"type": "integer", "index": 13, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 14, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 15, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 16, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 17, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 18, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 19, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 20, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 21, "name": "full_screen_plays", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "campaign_group_id": {"type": "integer", "index": 2, "name": "campaign_group_id", "comment": null}, "campaign_group_name": {"type": "text", "index": 3, "name": "campaign_group_name", "comment": null}, "account_id": {"type": "integer", "index": 4, "name": "account_id", "comment": null}, "status": {"type": "text", "index": 5, "name": "status", "comment": null}, "is_backfilled": {"type": "boolean", "index": 6, "name": "is_backfilled", "comment": null}, "run_schedule_start_at": {"type": "timestamp without time zone", "index": 7, "name": "run_schedule_start_at", "comment": null}, "run_schedule_end_at": {"type": "timestamp without time zone", "index": 8, "name": "run_schedule_end_at", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 9, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 10, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 11, "name": "is_latest_version", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history"}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 4, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"}, "model.linkedin_source.stg_linkedin_ads__campaign_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "text", "index": 3, "name": "campaign_name", "comment": null}, "version_tag": {"type": "numeric", "index": 4, "name": "version_tag", "comment": null}, "campaign_group_id": {"type": "integer", "index": 5, "name": "campaign_group_id", "comment": null}, "account_id": {"type": "integer", "index": 6, "name": "account_id", "comment": null}, "status": {"type": "text", "index": 7, "name": "status", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "cost_type": {"type": "text", "index": 9, "name": "cost_type", "comment": null}, "creative_selection": {"type": "text", "index": 10, "name": "creative_selection", "comment": null}, "daily_budget_amount": {"type": "double precision", "index": 11, "name": "daily_budget_amount", "comment": null}, "daily_budget_currency_code": {"type": "text", "index": 12, "name": "daily_budget_currency_code", "comment": null}, "unit_cost_amount": {"type": "double precision", "index": 13, "name": "unit_cost_amount", "comment": null}, "unit_cost_currency_code": {"type": "text", "index": 14, "name": "unit_cost_currency_code", "comment": null}, "format": {"type": "text", "index": 15, "name": "format", "comment": null}, "locale_country": {"type": "text", "index": 16, "name": "locale_country", "comment": null}, "locale_language": {"type": "text", "index": 17, "name": "locale_language", "comment": null}, "objective_type": {"type": "text", "index": 18, "name": "objective_type", "comment": null}, "optimization_target_type": {"type": "text", "index": 19, "name": "optimization_target_type", "comment": null}, "is_audience_expansion_enabled": {"type": "boolean", "index": 20, "name": "is_audience_expansion_enabled", "comment": null}, "is_offsite_delivery_enabled": {"type": "boolean", "index": 21, "name": "is_offsite_delivery_enabled", "comment": null}, "run_schedule_start_at": {"type": "timestamp without time zone", "index": 22, "name": "run_schedule_start_at", "comment": null}, "run_schedule_end_at": {"type": "timestamp without time zone", "index": 23, "name": "run_schedule_end_at", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 24, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 25, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 26, "name": "is_latest_version", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history"}, "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "campaign_group_id": {"type": "integer", "index": 4, "name": "campaign_group_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 5, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 6, "name": "name", "comment": null}, "version_tag": {"type": "integer", "index": 7, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"}, "model.linkedin_source.stg_linkedin_ads__creative_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "creative_id": {"type": "integer", "index": 2, "name": "creative_id", "comment": null}, "campaign_id": {"type": "integer", "index": 3, "name": "campaign_id", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "click_uri": {"type": "character varying", "index": 5, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 6, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 7, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 8, "name": "is_latest_version", "comment": null}, "base_url": {"type": "text", "index": 9, "name": "base_url", "comment": null}, "url_host": {"type": "text", "index": 10, "name": "url_host", "comment": null}, "url_path": {"type": "text", "index": 11, "name": "url_path", "comment": null}, "utm_source": {"type": "text", "index": 12, "name": "utm_source", "comment": null}, "utm_medium": {"type": "text", "index": 13, "name": "utm_medium", "comment": null}, "utm_campaign": {"type": "text", "index": 14, "name": "utm_campaign", "comment": null}, "utm_content": {"type": "text", "index": 15, "name": "utm_content", "comment": null}, "utm_term": {"type": "text", "index": 16, "name": "utm_term", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history"}, "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "intended_status": {"type": "character varying", "index": 3, "name": "intended_status", "comment": null}, "click_uri": {"type": "character varying", "index": 4, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 5, "name": "last_modified_at", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 6, "name": "created_time", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history_tmp"}}, "sources": {"source.linkedin_source.linkedin_ads.account_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_account_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "version_tag": {"type": "integer", "index": 6, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.account_history"}, "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_campaign_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "integer", "index": 1, "name": "campaign_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 4, "name": "ad_unit_clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 5, "name": "approximate_unique_impressions", "comment": null}, "card_clicks": {"type": "integer", "index": 6, "name": "card_clicks", "comment": null}, "card_impressions": {"type": "integer", "index": 7, "name": "card_impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "comment_likes": {"type": "integer", "index": 9, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 10, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 11, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 12, "name": "conversion_value_in_local_currency", "comment": null}, "cost_in_local_currency": {"type": "double precision", "index": 13, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "double precision", "index": 14, "name": "cost_in_usd", "comment": null}, "external_website_conversions": {"type": "integer", "index": 15, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 16, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 17, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 18, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 19, "name": "full_screen_plays", "comment": null}, "impressions": {"type": "integer", "index": 20, "name": "impressions", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 21, "name": "landing_page_clicks", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign"}, "source.linkedin_source.linkedin_ads.ad_analytics_by_creative": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_creative_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"creative_id": {"type": "integer", "index": 1, "name": "creative_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "card_clicks": {"type": "integer", "index": 4, "name": "card_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 5, "name": "ad_unit_clicks", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 6, "name": "landing_page_clicks", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 8, "name": "approximate_unique_impressions", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "card_impressions": {"type": "integer", "index": 10, "name": "card_impressions", "comment": null}, "cost_in_local_currency": {"type": "integer", "index": 11, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "integer", "index": 12, "name": "cost_in_usd", "comment": null}, "comment_likes": {"type": "integer", "index": 13, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 14, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 15, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 16, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 17, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 18, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 19, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 20, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 21, "name": "full_screen_plays", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_creative"}, "source.linkedin_source.linkedin_ads.campaign_group_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_group_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 4, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.campaign_group_history"}, "source.linkedin_source.linkedin_ads.campaign_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "campaign_group_id": {"type": "integer", "index": 4, "name": "campaign_group_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 5, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 6, "name": "name", "comment": null}, "version_tag": {"type": "integer", "index": 7, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.campaign_history"}, "source.linkedin_source.linkedin_ads.creative_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_creative_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "intended_status": {"type": "character varying", "index": 3, "name": "intended_status", "comment": null}, "click_uri": {"type": "character varying", "index": 4, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 5, "name": "last_modified_at", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 6, "name": "created_time", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.creative_history"}}, "errors": null} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.8.6", "generated_at": "2024-12-03T22:23:29.924178Z", "invocation_id": "242f85b6-1924-4c87-8860-40aa076d32ef", "env": {}}, "nodes": {"seed.linkedin_source_integration_tests.linkedin_account_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_account_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "version_tag": {"type": "integer", "index": 6, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_account_history_data"}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_campaign_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "integer", "index": 1, "name": "campaign_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 4, "name": "ad_unit_clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 5, "name": "approximate_unique_impressions", "comment": null}, "card_clicks": {"type": "integer", "index": 6, "name": "card_clicks", "comment": null}, "card_impressions": {"type": "integer", "index": 7, "name": "card_impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "comment_likes": {"type": "integer", "index": 9, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 10, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 11, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 12, "name": "conversion_value_in_local_currency", "comment": null}, "cost_in_local_currency": {"type": "double precision", "index": 13, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "double precision", "index": 14, "name": "cost_in_usd", "comment": null}, "external_website_conversions": {"type": "integer", "index": 15, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 16, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 17, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 18, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 19, "name": "full_screen_plays", "comment": null}, "impressions": {"type": "integer", "index": 20, "name": "impressions", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 21, "name": "landing_page_clicks", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data"}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_creative_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"creative_id": {"type": "integer", "index": 1, "name": "creative_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "card_clicks": {"type": "integer", "index": 4, "name": "card_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 5, "name": "ad_unit_clicks", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 6, "name": "landing_page_clicks", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 8, "name": "approximate_unique_impressions", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "card_impressions": {"type": "integer", "index": 10, "name": "card_impressions", "comment": null}, "cost_in_local_currency": {"type": "integer", "index": 11, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "integer", "index": 12, "name": "cost_in_usd", "comment": null}, "comment_likes": {"type": "integer", "index": 13, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 14, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 15, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 16, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 17, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 18, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 19, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 20, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 21, "name": "full_screen_plays", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data"}, "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_group_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 4, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data"}, "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "campaign_group_id": {"type": "integer", "index": 4, "name": "campaign_group_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 5, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 6, "name": "name", "comment": null}, "version_tag": {"type": "integer", "index": 7, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_history_data"}, "seed.linkedin_source_integration_tests.linkedin_creative_history_data": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_creative_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "intended_status": {"type": "character varying", "index": 3, "name": "intended_status", "comment": null}, "click_uri": {"type": "character varying", "index": 4, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 5, "name": "last_modified_at", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 6, "name": "created_time", "comment": null}, "text_ad_landing_page": {"type": "text", "index": 7, "name": "text_ad_landing_page", "comment": null}, "spotlight_landing_page": {"type": "text", "index": 8, "name": "spotlight_landing_page", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.linkedin_source_integration_tests.linkedin_creative_history_data"}, "model.linkedin_source.stg_linkedin_ads__account_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "account_id": {"type": "integer", "index": 2, "name": "account_id", "comment": null}, "account_name": {"type": "text", "index": 3, "name": "account_name", "comment": null}, "currency": {"type": "text", "index": 4, "name": "currency", "comment": null}, "version_tag": {"type": "numeric", "index": 5, "name": "version_tag", "comment": null}, "status": {"type": "text", "index": 6, "name": "status", "comment": null}, "type": {"type": "text", "index": 7, "name": "type", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 8, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 9, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 10, "name": "is_latest_version", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history"}, "model.linkedin_source.stg_linkedin_ads__account_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "version_tag": {"type": "integer", "index": 6, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history_tmp"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "date_day": {"type": "timestamp without time zone", "index": 2, "name": "date_day", "comment": null}, "campaign_id": {"type": "integer", "index": 3, "name": "campaign_id", "comment": null}, "clicks": {"type": "integer", "index": 4, "name": "clicks", "comment": null}, "impressions": {"type": "integer", "index": 5, "name": "impressions", "comment": null}, "cost": {"type": "double precision", "index": 6, "name": "cost", "comment": null}, "conversion_value_in_local_currency": {"type": "double precision", "index": 7, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "bigint", "index": 8, "name": "external_website_conversions", "comment": null}, "one_click_leads": {"type": "bigint", "index": 9, "name": "one_click_leads", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "integer", "index": 1, "name": "campaign_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 4, "name": "ad_unit_clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 5, "name": "approximate_unique_impressions", "comment": null}, "card_clicks": {"type": "integer", "index": 6, "name": "card_clicks", "comment": null}, "card_impressions": {"type": "integer", "index": 7, "name": "card_impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "comment_likes": {"type": "integer", "index": 9, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 10, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 11, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 12, "name": "conversion_value_in_local_currency", "comment": null}, "cost_in_local_currency": {"type": "double precision", "index": 13, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "double precision", "index": 14, "name": "cost_in_usd", "comment": null}, "external_website_conversions": {"type": "integer", "index": 15, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 16, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 17, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 18, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 19, "name": "full_screen_plays", "comment": null}, "impressions": {"type": "integer", "index": 20, "name": "impressions", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 21, "name": "landing_page_clicks", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "date_day": {"type": "timestamp without time zone", "index": 2, "name": "date_day", "comment": null}, "creative_id": {"type": "integer", "index": 3, "name": "creative_id", "comment": null}, "clicks": {"type": "integer", "index": 4, "name": "clicks", "comment": null}, "impressions": {"type": "integer", "index": 5, "name": "impressions", "comment": null}, "cost": {"type": "integer", "index": 6, "name": "cost", "comment": null}, "conversion_value_in_local_currency": {"type": "double precision", "index": 7, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "bigint", "index": 8, "name": "external_website_conversions", "comment": null}, "one_click_leads": {"type": "bigint", "index": 9, "name": "one_click_leads", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"creative_id": {"type": "integer", "index": 1, "name": "creative_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "card_clicks": {"type": "integer", "index": 4, "name": "card_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 5, "name": "ad_unit_clicks", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 6, "name": "landing_page_clicks", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 8, "name": "approximate_unique_impressions", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "card_impressions": {"type": "integer", "index": 10, "name": "card_impressions", "comment": null}, "cost_in_local_currency": {"type": "integer", "index": 11, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "integer", "index": 12, "name": "cost_in_usd", "comment": null}, "comment_likes": {"type": "integer", "index": 13, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 14, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 15, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 16, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 17, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 18, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 19, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 20, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 21, "name": "full_screen_plays", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "campaign_group_id": {"type": "integer", "index": 2, "name": "campaign_group_id", "comment": null}, "campaign_group_name": {"type": "text", "index": 3, "name": "campaign_group_name", "comment": null}, "account_id": {"type": "integer", "index": 4, "name": "account_id", "comment": null}, "status": {"type": "text", "index": 5, "name": "status", "comment": null}, "is_backfilled": {"type": "boolean", "index": 6, "name": "is_backfilled", "comment": null}, "run_schedule_start_at": {"type": "timestamp without time zone", "index": 7, "name": "run_schedule_start_at", "comment": null}, "run_schedule_end_at": {"type": "timestamp without time zone", "index": 8, "name": "run_schedule_end_at", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 9, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 10, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 11, "name": "is_latest_version", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history"}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 4, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"}, "model.linkedin_source.stg_linkedin_ads__campaign_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "campaign_name": {"type": "text", "index": 3, "name": "campaign_name", "comment": null}, "version_tag": {"type": "numeric", "index": 4, "name": "version_tag", "comment": null}, "campaign_group_id": {"type": "integer", "index": 5, "name": "campaign_group_id", "comment": null}, "account_id": {"type": "integer", "index": 6, "name": "account_id", "comment": null}, "status": {"type": "text", "index": 7, "name": "status", "comment": null}, "type": {"type": "text", "index": 8, "name": "type", "comment": null}, "cost_type": {"type": "text", "index": 9, "name": "cost_type", "comment": null}, "creative_selection": {"type": "text", "index": 10, "name": "creative_selection", "comment": null}, "daily_budget_amount": {"type": "double precision", "index": 11, "name": "daily_budget_amount", "comment": null}, "daily_budget_currency_code": {"type": "text", "index": 12, "name": "daily_budget_currency_code", "comment": null}, "unit_cost_amount": {"type": "double precision", "index": 13, "name": "unit_cost_amount", "comment": null}, "unit_cost_currency_code": {"type": "text", "index": 14, "name": "unit_cost_currency_code", "comment": null}, "format": {"type": "text", "index": 15, "name": "format", "comment": null}, "locale_country": {"type": "text", "index": 16, "name": "locale_country", "comment": null}, "locale_language": {"type": "text", "index": 17, "name": "locale_language", "comment": null}, "objective_type": {"type": "text", "index": 18, "name": "objective_type", "comment": null}, "optimization_target_type": {"type": "text", "index": 19, "name": "optimization_target_type", "comment": null}, "is_audience_expansion_enabled": {"type": "boolean", "index": 20, "name": "is_audience_expansion_enabled", "comment": null}, "is_offsite_delivery_enabled": {"type": "boolean", "index": 21, "name": "is_offsite_delivery_enabled", "comment": null}, "run_schedule_start_at": {"type": "timestamp without time zone", "index": 22, "name": "run_schedule_start_at", "comment": null}, "run_schedule_end_at": {"type": "timestamp without time zone", "index": 23, "name": "run_schedule_end_at", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 24, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 25, "name": "created_at", "comment": null}, "is_latest_version": {"type": "boolean", "index": 26, "name": "is_latest_version", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history"}, "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "campaign_group_id": {"type": "integer", "index": 4, "name": "campaign_group_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 5, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 6, "name": "name", "comment": null}, "version_tag": {"type": "integer", "index": 7, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"}, "model.linkedin_source.stg_linkedin_ads__creative_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"source_relation": {"type": "text", "index": 1, "name": "source_relation", "comment": null}, "creative_id": {"type": "integer", "index": 2, "name": "creative_id", "comment": null}, "campaign_id": {"type": "integer", "index": 3, "name": "campaign_id", "comment": null}, "status": {"type": "text", "index": 4, "name": "status", "comment": null}, "click_uri": {"type": "text", "index": 5, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 6, "name": "last_modified_at", "comment": null}, "created_at": {"type": "timestamp without time zone", "index": 7, "name": "created_at", "comment": null}, "click_uri_type": {"type": "text", "index": 8, "name": "click_uri_type", "comment": null}, "is_latest_version": {"type": "boolean", "index": 9, "name": "is_latest_version", "comment": null}, "base_url": {"type": "text", "index": 10, "name": "base_url", "comment": null}, "url_host": {"type": "text", "index": 11, "name": "url_host", "comment": null}, "url_path": {"type": "text", "index": 12, "name": "url_path", "comment": null}, "utm_source": {"type": "text", "index": 13, "name": "utm_source", "comment": null}, "utm_medium": {"type": "text", "index": 14, "name": "utm_medium", "comment": null}, "utm_campaign": {"type": "text", "index": 15, "name": "utm_campaign", "comment": null}, "utm_content": {"type": "text", "index": 16, "name": "utm_content", "comment": null}, "utm_term": {"type": "text", "index": 17, "name": "utm_term", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history"}, "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": {"metadata": {"type": "VIEW", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "intended_status": {"type": "character varying", "index": 3, "name": "intended_status", "comment": null}, "click_uri": {"type": "character varying", "index": 4, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 5, "name": "last_modified_at", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 6, "name": "created_time", "comment": null}, "text_ad_landing_page": {"type": "text", "index": 7, "name": "text_ad_landing_page", "comment": null}, "spotlight_landing_page": {"type": "text", "index": 8, "name": "spotlight_landing_page", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history_tmp"}}, "sources": {"source.linkedin_source.linkedin_ads.account_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_account_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 3, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 4, "name": "name", "comment": null}, "currency": {"type": "text", "index": 5, "name": "currency", "comment": null}, "version_tag": {"type": "integer", "index": 6, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.account_history"}, "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_campaign_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"campaign_id": {"type": "integer", "index": 1, "name": "campaign_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 4, "name": "ad_unit_clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 5, "name": "approximate_unique_impressions", "comment": null}, "card_clicks": {"type": "integer", "index": 6, "name": "card_clicks", "comment": null}, "card_impressions": {"type": "integer", "index": 7, "name": "card_impressions", "comment": null}, "clicks": {"type": "integer", "index": 8, "name": "clicks", "comment": null}, "comment_likes": {"type": "integer", "index": 9, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 10, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 11, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 12, "name": "conversion_value_in_local_currency", "comment": null}, "cost_in_local_currency": {"type": "double precision", "index": 13, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "double precision", "index": 14, "name": "cost_in_usd", "comment": null}, "external_website_conversions": {"type": "integer", "index": 15, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 16, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 17, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 18, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 19, "name": "full_screen_plays", "comment": null}, "impressions": {"type": "integer", "index": 20, "name": "impressions", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 21, "name": "landing_page_clicks", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign"}, "source.linkedin_source.linkedin_ads.ad_analytics_by_creative": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_creative_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"creative_id": {"type": "integer", "index": 1, "name": "creative_id", "comment": null}, "day": {"type": "timestamp without time zone", "index": 2, "name": "day", "comment": null}, "action_clicks": {"type": "integer", "index": 3, "name": "action_clicks", "comment": null}, "card_clicks": {"type": "integer", "index": 4, "name": "card_clicks", "comment": null}, "ad_unit_clicks": {"type": "integer", "index": 5, "name": "ad_unit_clicks", "comment": null}, "landing_page_clicks": {"type": "integer", "index": 6, "name": "landing_page_clicks", "comment": null}, "clicks": {"type": "integer", "index": 7, "name": "clicks", "comment": null}, "approximate_unique_impressions": {"type": "integer", "index": 8, "name": "approximate_unique_impressions", "comment": null}, "impressions": {"type": "integer", "index": 9, "name": "impressions", "comment": null}, "card_impressions": {"type": "integer", "index": 10, "name": "card_impressions", "comment": null}, "cost_in_local_currency": {"type": "integer", "index": 11, "name": "cost_in_local_currency", "comment": null}, "cost_in_usd": {"type": "integer", "index": 12, "name": "cost_in_usd", "comment": null}, "comment_likes": {"type": "integer", "index": 13, "name": "comment_likes", "comment": null}, "comments": {"type": "integer", "index": 14, "name": "comments", "comment": null}, "company_page_clicks": {"type": "integer", "index": 15, "name": "company_page_clicks", "comment": null}, "conversion_value_in_local_currency": {"type": "integer", "index": 16, "name": "conversion_value_in_local_currency", "comment": null}, "external_website_conversions": {"type": "integer", "index": 17, "name": "external_website_conversions", "comment": null}, "external_website_post_click_conversions": {"type": "integer", "index": 18, "name": "external_website_post_click_conversions", "comment": null}, "external_website_post_view_conversions": {"type": "integer", "index": 19, "name": "external_website_post_view_conversions", "comment": null}, "follows": {"type": "integer", "index": 20, "name": "follows", "comment": null}, "full_screen_plays": {"type": "integer", "index": 21, "name": "full_screen_plays", "comment": null}, "lead_generation_mail_contact_info_shares": {"type": "integer", "index": 22, "name": "lead_generation_mail_contact_info_shares", "comment": null}, "lead_generation_mail_interested_clicks": {"type": "integer", "index": 23, "name": "lead_generation_mail_interested_clicks", "comment": null}, "likes": {"type": "integer", "index": 24, "name": "likes", "comment": null}, "one_click_lead_form_opens": {"type": "integer", "index": 25, "name": "one_click_lead_form_opens", "comment": null}, "one_click_leads": {"type": "integer", "index": 26, "name": "one_click_leads", "comment": null}, "opens": {"type": "integer", "index": 27, "name": "opens", "comment": null}, "other_engagements": {"type": "integer", "index": 28, "name": "other_engagements", "comment": null}, "shares": {"type": "integer", "index": 29, "name": "shares", "comment": null}, "text_url_clicks": {"type": "integer", "index": 30, "name": "text_url_clicks", "comment": null}, "total_engagements": {"type": "integer", "index": 31, "name": "total_engagements", "comment": null}, "video_completions": {"type": "integer", "index": 32, "name": "video_completions", "comment": null}, "video_first_quartile_completions": {"type": "integer", "index": 33, "name": "video_first_quartile_completions", "comment": null}, "video_midpoint_completions": {"type": "integer", "index": 34, "name": "video_midpoint_completions", "comment": null}, "video_starts": {"type": "integer", "index": 35, "name": "video_starts", "comment": null}, "video_third_quartile_completions": {"type": "integer", "index": 36, "name": "video_third_quartile_completions", "comment": null}, "video_views": {"type": "integer", "index": 37, "name": "video_views", "comment": null}, "viral_card_clicks": {"type": "integer", "index": 38, "name": "viral_card_clicks", "comment": null}, "viral_card_impressions": {"type": "integer", "index": 39, "name": "viral_card_impressions", "comment": null}, "viral_clicks": {"type": "integer", "index": 40, "name": "viral_clicks", "comment": null}, "viral_comment_likes": {"type": "integer", "index": 41, "name": "viral_comment_likes", "comment": null}, "viral_comments": {"type": "integer", "index": 42, "name": "viral_comments", "comment": null}, "viral_company_page_clicks": {"type": "integer", "index": 43, "name": "viral_company_page_clicks", "comment": null}, "viral_external_website_conversions": {"type": "integer", "index": 44, "name": "viral_external_website_conversions", "comment": null}, "viral_external_website_post_click_conversions": {"type": "integer", "index": 45, "name": "viral_external_website_post_click_conversions", "comment": null}, "viral_external_website_post_view_conversions": {"type": "integer", "index": 46, "name": "viral_external_website_post_view_conversions", "comment": null}, "viral_follows": {"type": "integer", "index": 47, "name": "viral_follows", "comment": null}, "viral_full_screen_plays": {"type": "integer", "index": 48, "name": "viral_full_screen_plays", "comment": null}, "viral_impressions": {"type": "integer", "index": 49, "name": "viral_impressions", "comment": null}, "viral_landing_page_clicks": {"type": "integer", "index": 50, "name": "viral_landing_page_clicks", "comment": null}, "viral_likes": {"type": "integer", "index": 51, "name": "viral_likes", "comment": null}, "viral_one_click_lead_form_opens": {"type": "integer", "index": 52, "name": "viral_one_click_lead_form_opens", "comment": null}, "viral_one_click_leads": {"type": "integer", "index": 53, "name": "viral_one_click_leads", "comment": null}, "viral_other_engagements": {"type": "integer", "index": 54, "name": "viral_other_engagements", "comment": null}, "viral_shares": {"type": "integer", "index": 55, "name": "viral_shares", "comment": null}, "viral_total_engagements": {"type": "integer", "index": 56, "name": "viral_total_engagements", "comment": null}, "viral_video_completions": {"type": "integer", "index": 57, "name": "viral_video_completions", "comment": null}, "viral_video_first_quartile_completions": {"type": "integer", "index": 58, "name": "viral_video_first_quartile_completions", "comment": null}, "viral_video_midpoint_completions": {"type": "integer", "index": 59, "name": "viral_video_midpoint_completions", "comment": null}, "viral_video_starts": {"type": "integer", "index": 60, "name": "viral_video_starts", "comment": null}, "viral_video_third_quartile_completions": {"type": "integer", "index": 61, "name": "viral_video_third_quartile_completions", "comment": null}, "viral_video_views": {"type": "integer", "index": 62, "name": "viral_video_views", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_creative"}, "source.linkedin_source.linkedin_ads.campaign_group_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_group_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 4, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.campaign_group_history"}, "source.linkedin_source.linkedin_ads.campaign_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "last_modified_time": {"type": "timestamp without time zone", "index": 2, "name": "last_modified_time", "comment": null}, "account_id": {"type": "integer", "index": 3, "name": "account_id", "comment": null}, "campaign_group_id": {"type": "integer", "index": 4, "name": "campaign_group_id", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 5, "name": "created_time", "comment": null}, "name": {"type": "text", "index": 6, "name": "name", "comment": null}, "version_tag": {"type": "integer", "index": 7, "name": "version_tag", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.campaign_history"}, "source.linkedin_source.linkedin_ads.creative_history": {"metadata": {"type": "BASE TABLE", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_creative_history_data", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"id": {"type": "integer", "index": 1, "name": "id", "comment": null}, "campaign_id": {"type": "integer", "index": 2, "name": "campaign_id", "comment": null}, "intended_status": {"type": "character varying", "index": 3, "name": "intended_status", "comment": null}, "click_uri": {"type": "character varying", "index": 4, "name": "click_uri", "comment": null}, "last_modified_at": {"type": "timestamp without time zone", "index": 5, "name": "last_modified_at", "comment": null}, "created_time": {"type": "timestamp without time zone", "index": 6, "name": "created_time", "comment": null}, "text_ad_landing_page": {"type": "text", "index": 7, "name": "text_ad_landing_page", "comment": null}, "spotlight_landing_page": {"type": "text", "index": 8, "name": "spotlight_landing_page", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.linkedin_source.linkedin_ads.creative_history"}}, "errors": null} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index fe9141e..c580ce9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ -<!doctype html><html dir="ltr" lang="en-US" ng-app="dbt" class="no-flash video supports no-touchevents formvalidation webgl no-cssgridlegacy cssgrid cssfilters objectfit object-fit click landscape videoautoplay loaded"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,initial-scale=1"/><title>dbt Docs</title><meta name="description" content="dbt Docs"/><link rel="canonical" href="/overview/"/><link rel="shortcut icon" href="${require('./assets/favicons/favicon.ico')}"/><meta name="msapplication-TileColor" content="#2b5797"><meta name="theme-color" content="#ffffff"><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta property="og:site_name" content="dbt Docs"/><meta property="og:title" content="dbt Docs"/><meta property="og:description" content="documentation for dbt"/><meta name="twitter:title" content="dbt Docs"/><meta name="twitter:description" content="documentation for dbt"/></head><body><div style="display:none"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>icons</title><g id="icn"><rect width="16" height="16" fill="none"/></g><g id="icn-menu"><path d="M14.5,8a.5.5,0,0,1-.5.5H2a.5.5,0,0,1,0-1H14A.5.5,0,0,1,14.5,8ZM2,3H14a.5.5,0,0,0,0-1H2A.5.5,0,0,0,2,3ZM14,13H2a.5.5,0,0,0,0,1H14a.5.5,0,0,0,0-1Z" transform="translate(0 0)"/></g><g id="icn-dbt"><path d="M12.6,9.265l0,0L10.9,6.325a3.31,3.31,0,0,0-.529-.7h0a3.264,3.264,0,0,0-3.184-.867,4.022,4.022,0,0,1,4.194.938,3.977,3.977,0,0,1,.635.833l.38.657a2.488,2.488,0,0,1,.2-.465l2.226-3.851a1.2,1.2,0,0,0-.2-1.5,1.2,1.2,0,0,0-1.5-.2h0L9.27,3.4a2.539,2.539,0,0,1-2.54,0L2.877,1.178A1.253,1.253,0,0,0,2.247,1a1.247,1.247,0,0,0-.871.375,1.2,1.2,0,0,0-.2,1.5L3.4,6.726a2.542,2.542,0,0,1,0,2.539l-2.226,3.85a1.2,1.2,0,0,0,.2,1.5,1.2,1.2,0,0,0,1.5.2L6.73,12.588a2.455,2.455,0,0,1,.465-.2l-.657-.379a3.857,3.857,0,0,1-1.462-1.467,4.118,4.118,0,0,1-.288-3.368,3.453,3.453,0,0,0,.33,2.507A3.141,3.141,0,0,0,6.329,10.89l2.94,1.7h0l3.853,2.224a1.243,1.243,0,0,0,1.7-1.7Zm.814-7.353a.478.478,0,1,1,0,.676A.48.48,0,0,1,13.41,1.912ZM2.59,2.588a.478.478,0,1,1,0-.676A.479.479,0,0,1,2.59,2.588Zm0,11.49a.478.478,0,1,1,0-.676A.479.479,0,0,1,2.59,14.078Zm6.827-5.9a1.022,1.022,0,1,0-1.231,1.23,1.433,1.433,0,1,1,1.231-1.23Zm4.67,5.9a.478.478,0,1,1,0-.676A.479.479,0,0,1,14.087,14.078Z" transform="translate(0 0)"/></g><g id="icn-doc-on"><path d="M13.707,4.707,10.293,1.293A1,1,0,0,0,9.586,1H3A1,1,0,0,0,2,2V14a1,1,0,0,0,1,1H13a1,1,0,0,0,1-1V5.414A1,1,0,0,0,13.707,4.707ZM5,4H9V5H5Zm6,8H5V11h6Zm0-2H5V9h6Zm0-2H5V7h6Z" transform="translate(0 0)"/></g><g id="icn-doc"><path d="M9.586,2h0L13,5.414V14H3V2H9.586m0-1H3A1,1,0,0,0,2,2V14a1,1,0,0,0,1,1H13a1,1,0,0,0,1-1V5.414a1,1,0,0,0-.293-.707L10.293,1.293A1,1,0,0,0,9.586,1Z" transform="translate(0 0)"/><rect x="5" y="11" width="6" height="1" fill="#fff"/><polygon points="11 11 5 11 5 12 11 12 11 11 11 11"/><rect x="5" y="9" width="6" height="1" fill="#fff"/><polygon points="11 9 5 9 5 10 11 10 11 9 11 9"/><rect x="5" y="7" width="6" height="1" fill="#fff"/><polygon points="11 7 5 7 5 8 11 8 11 7 11 7"/><rect x="5" y="4" width="4" height="1" fill="#fff"/><polygon points="9 4 5 4 5 5 9 5 9 4 9 4"/></g><g id="icn-down"><path d="M8,10.5a.5.5,0,0,1-.354-.146l-3-3a.5.5,0,0,1,.708-.708L8,9.293l2.646-2.647a.5.5,0,0,1,.708.708l-3,3A.5.5,0,0,1,8,10.5Z" transform="translate(0 0)"/></g><g id="icn-up"><path d="M11,9.5a.5.5,0,0,1-.354-.146L8,6.707,5.354,9.354a.5.5,0,0,1-.708-.708l3-3a.5.5,0,0,1,.708,0l3,3A.5.5,0,0,1,11,9.5Z" transform="translate(0 0)"/></g><g id="icn-left"><path d="M9.5,5a.5.5,0,0,1-.146.354L6.707,8l2.647,2.646a.5.5,0,0,1-.708.708l-3-3a.5.5,0,0,1,0-.708l3-3A.5.5,0,0,1,9.5,5Z" transform="translate(0 0)"/></g><g id="icn-right"><path d="M10.5,8a.5.5,0,0,1-.146.354l-3,3a.5.5,0,0,1-.708-.708L9.293,8,6.646,5.354a.5.5,0,0,1,.708-.708l3,3A.5.5,0,0,1,10.5,8Z" transform="translate(0 0)"/></g><g id="icn-dir"><path d="M14,4H8.414a1,1,0,0,1-.707-.293L6.293,2.293A1,1,0,0,0,5.586,2H2A1,1,0,0,0,1,3V13a1,1,0,0,0,1,1H14a1,1,0,0,0,1-1V5A1,1,0,0,0,14,4ZM2,3H5.586l1,1H2ZM14,13H2V5H14Z" transform="translate(0 0)"/></g><g id="icn-tree"><path d="M14,5V2H11V3H4V2H1V5H4V4H7V14h4v1h3V12H11v1H8V9h3v1h3V7H11V8H8V4h3V5ZM3,4H2V3H3Zm9,9h1v1H12Zm0-5h1V9H12Zm0-5h1V4H12Z" transform="translate(0 0)"/></g><g id="icn-tree-on"><path d="M14,5V2H11V3H4V2H1V5H4V4H7V14h4v1h3V12H11v1H8V9h3v1h3V7H11V8H8V4h3V5Z" transform="translate(0 0)"/></g><g id="icn-dir-on"><path d="M14.878,7H14V5a1,1,0,0,0-1-1H7.414a1,1,0,0,1-.707-.293L5.293,2.293A1,1,0,0,0,4.586,2H1A1,1,0,0,0,0,3V13a1,1,0,0,0,1,1H13.271a1,1,0,0,0,.952-.694l1.607-5A1,1,0,0,0,14.878,7ZM4.586,3,6,4.414A1.986,1.986,0,0,0,7.414,5H13V7H2.979a1,1,0,0,0-.952.694L1,10.889V3Z" transform="translate(0 0)"/></g><g id="icn-db-on"><path d="M8,1C7,1,2,1.121,2,3.5v9C2,14.879,7,15,8,15s6-.121,6-2.5v-9C14,1.121,9,1,8,1Zm5,10.482c0,.828-2.239,1.5-5,1.5s-5-.672-5-1.5V11c1.511.915,4.281.982,5,.982s3.489-.067,5-.982ZM13,8.5c0,.828-2.239,1.5-5,1.5S3,9.328,3,8.5V8.018C4.511,8.933,7.281,9,8,9s3.489-.067,5-.982Zm0-3C13,6.328,10.761,7,8,7S3,6.328,3,5.5V5.018C4.511,5.933,7.281,6,8,6s3.489-.067,5-.982Z" transform="translate(0 0)"/></g><g id="icn-db"><path d="M8,1C7,1,2,1.121,2,3.5v9C2,14.879,7,15,8,15s6-.121,6-2.5v-9C14,1.121,9,1,8,1ZM3,8.018C4.511,8.933,7.281,9,8,9s3.489-.067,5-.982V9.5c0,.828-2.239,1.5-5,1.5s-5-.672-5-1.5ZM8,8C5.239,8,3,7.328,3,6.5V5.018C4.511,5.933,7.281,6,8,6s3.489-.067,5-.982V6.5C13,7.328,10.761,8,8,8ZM8,2c2.761,0,5,.672,5,1.5S10.761,5,8,5,3,4.328,3,3.5,5.239,2,8,2ZM8,14c-2.761,0-5-.672-5-1.5V11.018C4.511,11.933,7.281,12,8,12s3.489-.067,5-.982V12.5C13,13.328,10.761,14,8,14Z" transform="translate(0 0)"/></g><g id="icn-close"><path d="M12.354,11.646a.5.5,0,0,1-.708.708L8,8.707,4.354,12.354a.5.5,0,0,1-.708-.708L7.293,8,3.646,4.354a.5.5,0,0,1,.708-.708L8,7.293l3.646-3.647a.5.5,0,0,1,.708.708L8.707,8Z" transform="translate(0 0)"/></g><g id="icn-search"><path d="M6.5,1A5.5,5.5,0,1,0,12,6.5,5.5,5.5,0,0,0,6.5,1Zm0,10A4.5,4.5,0,1,1,11,6.5,4.505,4.505,0,0,1,6.5,11Zm8.854,4.354a.5.5,0,0,1-.708,0l-3-3a.5.5,0,0,1,.708-.708l3,3A.5.5,0,0,1,15.354,15.354Z" transform="translate(0 0)"/></g><g id="icn-more"><path d="M8,6a2,2,0,1,0,2,2A2,2,0,0,0,8,6ZM8,9A1,1,0,1,1,9,8,1,1,0,0,1,8,9ZM2,6A2,2,0,1,0,4,8,2,2,0,0,0,2,6ZM2,9A1,1,0,1,1,3,8,1,1,0,0,1,2,9ZM14,6a2,2,0,1,0,2,2A2,2,0,0,0,14,6Zm0,3a1,1,0,1,1,1-1A1,1,0,0,1,14,9Z" transform="translate(0 0)"/></g><g id="icn-flow"><path d="M4,3V2H1V5H4V4H7v9a1,1,0,0,0,1,1h5V13H8V9h5V8H8V4h5V3H4ZM3,4H2V3H3Z" transform="translate(0 0)"/><polygon points="13 1.5 13 5.5 15 3.5 13 1.5"/><polygon points="13 6.5 13 10.5 15 8.5 13 6.5"/><polygon points="13 11.5 13 15.5 15 13.5 13 11.5"/></g><g id="icn-expand"><path d="M6,2.5a.5.5,0,0,1-.5.5H3V5.5a.5.5,0,0,1-1,0v-3A.5.5,0,0,1,2.5,2h3A.5.5,0,0,1,6,2.5ZM13.5,2h-3a.5.5,0,0,0,0,1H13V5.5a.5.5,0,0,0,1,0v-3A.5.5,0,0,0,13.5,2Zm0,8a.5.5,0,0,0-.5.5V13H10.5a.5.5,0,0,0,0,1h3a.5.5,0,0,0,.5-.5v-3A.5.5,0,0,0,13.5,10Zm-8,3H3V10.5a.5.5,0,0,0-1,0v3a.5.5,0,0,0,.5.5h3a.5.5,0,0,0,0-1Z" transform="translate(0 0)"/></g><g id="icn-contract"><path d="M6,2.5v3a.5.5,0,0,1-.5.5h-3a.5.5,0,0,1,0-1H5V2.5a.5.5,0,0,1,1,0ZM10.5,6h3a.5.5,0,0,0,0-1H11V2.5a.5.5,0,0,0-1,0v3A.5.5,0,0,0,10.5,6Zm3,4h-3a.5.5,0,0,0-.5.5v3a.5.5,0,0,0,1,0V11h2.5a.5.5,0,0,0,0-1Zm-8,0h-3a.5.5,0,0,0,0,1H5v2.5a.5.5,0,0,0,1,0v-3A.5.5,0,0,0,5.5,10Z" transform="translate(0 0)"/></g><g id="icn-filter"><path d="M14.5,4.5A.5.5,0,0,1,14,5H2A.5.5,0,0,1,2,4H14A.5.5,0,0,1,14.5,4.5ZM12,8H4A.5.5,0,0,0,4,9h8a.5.5,0,0,0,0-1Zm-2,4H6a.5.5,0,0,0,0,1h4a.5.5,0,0,0,0-1Z" transform="translate(0 0)"/></g></svg></div><div ui-view></div><script>!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=207)}([function(e,t,n){"use strict";(function(e){n.d(t,"M",(function(){return s})),n.d(t,"x",(function(){return c})),n.d(t,"Q",(function(){return u})),n.d(t,"w",(function(){return d})),n.d(t,"r",(function(){return p})),n.d(t,"q",(function(){return f})),n.d(t,"y",(function(){return h})),n.d(t,"E",(function(){return g})),n.d(t,"n",(function(){return m})),n.d(t,"A",(function(){return v})),n.d(t,"z",(function(){return b})),n.d(t,"b",(function(){return y})),n.d(t,"L",(function(){return x})),n.d(t,"d",(function(){return w})),n.d(t,"K",(function(){return k})),n.d(t,"c",(function(){return A})),n.d(t,"p",(function(){return E})),n.d(t,"o",(function(){return S})),n.d(t,"D",(function(){return $})),n.d(t,"f",(function(){return C})),n.d(t,"H",(function(){return _})),n.d(t,"F",(function(){return O})),n.d(t,"I",(function(){return T})),n.d(t,"s",(function(){return j})),n.d(t,"t",(function(){return P})),n.d(t,"C",(function(){return D})),n.d(t,"B",(function(){return R})),n.d(t,"U",(function(){return I})),n.d(t,"e",(function(){return N})),n.d(t,"g",(function(){return M})),n.d(t,"T",(function(){return z})),n.d(t,"v",(function(){return L})),n.d(t,"J",(function(){return B})),n.d(t,"R",(function(){return F})),n.d(t,"S",(function(){return q})),n.d(t,"u",(function(){return V})),n.d(t,"l",(function(){return U})),n.d(t,"k",(function(){return H})),n.d(t,"j",(function(){return G})),n.d(t,"G",(function(){return W})),n.d(t,"i",(function(){return Y})),n.d(t,"h",(function(){return X})),n.d(t,"P",(function(){return Z})),n.d(t,"m",(function(){return Q})),n.d(t,"a",(function(){return J})),n.d(t,"N",(function(){return ee})),n.d(t,"O",(function(){return te}));var r=n(1),i=n(3),o=n(6),a=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)r[i]=o[a];return r},s="object"==typeof self&&self.self===self&&self||"object"==typeof e&&e.global===e&&e||void 0,l=s.angular||{},c=l.fromJson||JSON.parse.bind(JSON),u=l.toJson||JSON.stringify.bind(JSON),d=l.forEach||function(e,t,n){if(Object(r.a)(e))return e.forEach(t,n);Object.keys(e).forEach((function(n){return t(e[n],n)}))},p=Object.assign||J,f=l.equals||K;function h(e){return e}function g(){}function m(e,t,n,r,i){void 0===i&&(i=!1);var o=function(t){return e()[t].bind(n())};return(r=r||Object.keys(e())).reduce((function(e,n){var r;return e[n]=i?(r=n,function(){return t[r]=o(r),t[r].apply(null,arguments)}):o(n),e}),t)}var v=function(e,t){return p(Object.create(e),t)},b=Object(i.e)(y);function y(e,t){return-1!==e.indexOf(t)}var x=Object(i.e)(w);function w(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),e}var k=Object(i.e)(A);function A(e,t){return e.push(t),t}var E=function(e){return e.slice().forEach((function(t){"function"==typeof t&&t(),x(e,t)}))};function S(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=p.apply(void 0,a([{}],t.reverse()));return p(r,_(e||{},Object.keys(r)))}var $=function(e,t){return p(e,t)};function C(e,t){var n=[];for(var r in e.path){if(e.path[r]!==t.path[r])break;n.push(e.path[r])}return n}function _(e,t){var n={};for(var r in e)-1!==t.indexOf(r)&&(n[r]=e[r]);return n}function O(e,t){return Object.keys(e).filter(Object(i.i)(b(t))).reduce((function(t,n){return t[n]=e[n],t}),{})}function T(e,t){return R(e,Object(i.n)(t))}function j(e,t){var n=Object(r.a)(e),i=n?[]:{},o=n?function(e){return i.push(e)}:function(e,t){return i[t]=e};return d(e,(function(e,n){t(e,n)&&o(e,n)})),i}function P(e,t){var n;return d(e,(function(e,r){n||t(e,r)&&(n=e)})),n}var D=R;function R(e,t,n){return n=n||(Object(r.a)(e)?[]:{}),d(e,(function(e,r){return n[r]=t(e,r)})),n}var I=function(e){return Object.keys(e).map((function(t){return e[t]}))},N=function(e,t){return e&&t},M=function(e,t){return e||t},z=function(e,t){return e.concat(t)},L=function(e,t){return Object(r.a)(t)?e.concat(t.reduce(L,[])):B(e,t)};function B(e,t){return e.push(t),e}var F=function(e,t){return b(e,t)?e:B(e,t)},q=function(e){return e.reduce(z,[])},V=function(e){return e.reduce(L,[])},U=G,H=G;function G(e,t){return void 0===t&&(t="assert failure"),function(n){var i=e(n);if(!i)throw new Error(Object(r.d)(t)?t(n):t);return i}}var W=function(e){return Object.keys(e).map((function(t){return[t,e[t]]}))};function Y(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(0===e.length)return[];for(var n=e.reduce((function(e,t){return Math.min(t.length,e)}),9007199254740991),r=[],i=function(t){switch(e.length){case 1:r.push([e[0][t]]);break;case 2:r.push([e[0][t],e[1][t]]);break;case 3:r.push([e[0][t],e[1][t],e[2][t]]);break;case 4:r.push([e[0][t],e[1][t],e[2][t],e[3][t]]);break;default:r.push(e.map((function(e){return e[t]})))}},o=0;o<n;o++)i(o);return r}function X(e,t){var n,i;if(Object(r.a)(t)&&(n=t[0],i=t[1]),!Object(r.l)(n))throw new Error("invalid parameters to applyPairs");return e[n]=i,e}function Z(e){return e.length&&e[e.length-1]||void 0}function Q(e,t){return t&&Object.keys(t).forEach((function(e){return delete t[e]})),t||(t={}),p(t,e)}function J(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n)for(var r=Object.keys(n),i=0;i<r.length;i++)e[r[i]]=n[r[i]]}return e}function K(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n=typeof e;if(n!==typeof t||"object"!==n)return!1;var o,a,s=[e,t];if(Object(i.a)(r.a)(s))return a=t,(o=e).length===a.length&&Y(o,a).reduce((function(e,t){return e&&K(t[0],t[1])}),!0);if(Object(i.a)(r.b)(s))return e.getTime()===t.getTime();if(Object(i.a)(r.k)(s))return e.toString()===t.toString();if(Object(i.a)(r.d)(s))return!0;if([r.d,r.a,r.b,r.k].map(i.c).reduce((function(e,t){return e||!!t(s)}),!1))return!1;var l={};for(var c in e){if(!K(e[c],t[c]))return!1;l[c]=!0}for(var c in t)if(!l[c])return!1;return!0}var ee=function(e){return e.catch((function(e){return 0}))&&e},te=function(e){return ee(o.b.$q.reject(e))}}).call(this,n(35))},function(e,t,n){"use strict";n.d(t,"m",(function(){return a})),n.d(t,"c",(function(){return s})),n.d(t,"f",(function(){return l})),n.d(t,"g",(function(){return c})),n.d(t,"d",(function(){return u})),n.d(t,"h",(function(){return d})),n.d(t,"l",(function(){return p})),n.d(t,"i",(function(){return f})),n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return g})),n.d(t,"k",(function(){return m})),n.d(t,"e",(function(){return v})),n.d(t,"j",(function(){return b}));var r=n(3),i=Object.prototype.toString,o=function(e){return function(t){return typeof t===e}},a=o("undefined"),s=Object(r.i)(a),l=function(e){return null===e},c=Object(r.j)(l,a),u=o("function"),d=o("number"),p=o("string"),f=function(e){return null!==e&&"object"==typeof e},h=Array.isArray,g=function(e){return"[object Date]"===i.call(e)},m=function(e){return"[object RegExp]"===i.call(e)};function v(e){if(h(e)&&e.length){var t=e.slice(0,-1),n=e.slice(-1);return!(t.filter(Object(r.i)(p)).length||n.filter(Object(r.i)(u)).length)}return u(e)}var b=Object(r.b)(f,Object(r.m)(Object(r.n)("then"),u))},function(e,t,n){"use strict";n.r(t);var r=n(4);n.d(t,"root",(function(){return r.Bb})),n.d(t,"fromJson",(function(){return r.J})),n.d(t,"toJson",(function(){return r.Mb})),n.d(t,"forEach",(function(){return r.I})),n.d(t,"extend",(function(){return r.C})),n.d(t,"equals",(function(){return r.B})),n.d(t,"identity",(function(){return r.M})),n.d(t,"noop",(function(){return r.lb})),n.d(t,"createProxyFunctions",(function(){return r.w})),n.d(t,"inherit",(function(){return r.O})),n.d(t,"inArray",(function(){return r.N})),n.d(t,"_inArray",(function(){return r.f})),n.d(t,"removeFrom",(function(){return r.Ab})),n.d(t,"_removeFrom",(function(){return r.h})),n.d(t,"pushTo",(function(){return r.zb})),n.d(t,"_pushTo",(function(){return r.g})),n.d(t,"deregAll",(function(){return r.z})),n.d(t,"defaults",(function(){return r.y})),n.d(t,"mergeR",(function(){return r.kb})),n.d(t,"ancestors",(function(){return r.k})),n.d(t,"pick",(function(){return r.tb})),n.d(t,"omit",(function(){return r.nb})),n.d(t,"pluck",(function(){return r.vb})),n.d(t,"filter",(function(){return r.D})),n.d(t,"find",(function(){return r.E})),n.d(t,"mapObj",(function(){return r.ib})),n.d(t,"map",(function(){return r.hb})),n.d(t,"values",(function(){return r.Tb})),n.d(t,"allTrueR",(function(){return r.j})),n.d(t,"anyTrueR",(function(){return r.n})),n.d(t,"unnestR",(function(){return r.Rb})),n.d(t,"flattenR",(function(){return r.G})),n.d(t,"pushR",(function(){return r.yb})),n.d(t,"uniqR",(function(){return r.Pb})),n.d(t,"unnest",(function(){return r.Qb})),n.d(t,"flatten",(function(){return r.F})),n.d(t,"assertPredicate",(function(){return r.s})),n.d(t,"assertMap",(function(){return r.r})),n.d(t,"assertFn",(function(){return r.q})),n.d(t,"pairs",(function(){return r.qb})),n.d(t,"arrayTuples",(function(){return r.p})),n.d(t,"applyPairs",(function(){return r.o})),n.d(t,"tail",(function(){return r.Lb})),n.d(t,"copy",(function(){return r.v})),n.d(t,"_extend",(function(){return r.e})),n.d(t,"silenceUncaughtInPromise",(function(){return r.Db})),n.d(t,"silentRejection",(function(){return r.Eb})),n.d(t,"makeStub",(function(){return r.gb})),n.d(t,"services",(function(){return r.Cb})),n.d(t,"Glob",(function(){return r.b})),n.d(t,"curry",(function(){return r.x})),n.d(t,"compose",(function(){return r.u})),n.d(t,"pipe",(function(){return r.ub})),n.d(t,"prop",(function(){return r.wb})),n.d(t,"propEq",(function(){return r.xb})),n.d(t,"parse",(function(){return r.rb})),n.d(t,"not",(function(){return r.mb})),n.d(t,"and",(function(){return r.l})),n.d(t,"or",(function(){return r.ob})),n.d(t,"all",(function(){return r.i})),n.d(t,"any",(function(){return r.m})),n.d(t,"is",(function(){return r.Q})),n.d(t,"eq",(function(){return r.A})),n.d(t,"val",(function(){return r.Sb})),n.d(t,"invoke",(function(){return r.P})),n.d(t,"pattern",(function(){return r.sb})),n.d(t,"isUndefined",(function(){return r.db})),n.d(t,"isDefined",(function(){return r.T})),n.d(t,"isNull",(function(){return r.W})),n.d(t,"isNullOrUndefined",(function(){return r.X})),n.d(t,"isFunction",(function(){return r.U})),n.d(t,"isNumber",(function(){return r.Y})),n.d(t,"isString",(function(){return r.cb})),n.d(t,"isObject",(function(){return r.Z})),n.d(t,"isArray",(function(){return r.R})),n.d(t,"isDate",(function(){return r.S})),n.d(t,"isRegExp",(function(){return r.bb})),n.d(t,"isInjectable",(function(){return r.V})),n.d(t,"isPromise",(function(){return r.ab})),n.d(t,"Queue",(function(){return r.c})),n.d(t,"maxLength",(function(){return r.jb})),n.d(t,"padString",(function(){return r.pb})),n.d(t,"kebobString",(function(){return r.fb})),n.d(t,"functionToString",(function(){return r.K})),n.d(t,"fnToString",(function(){return r.H})),n.d(t,"stringify",(function(){return r.Jb})),n.d(t,"beforeAfterSubstr",(function(){return r.t})),n.d(t,"hostRegex",(function(){return r.L})),n.d(t,"stripLastPathElement",(function(){return r.Kb})),n.d(t,"splitHash",(function(){return r.Gb})),n.d(t,"splitQuery",(function(){return r.Ib})),n.d(t,"splitEqual",(function(){return r.Fb})),n.d(t,"trimHashVal",(function(){return r.Ob})),n.d(t,"splitOnDelim",(function(){return r.Hb})),n.d(t,"joinNeighborsR",(function(){return r.eb})),n.d(t,"Category",(function(){return r.a})),n.d(t,"Trace",(function(){return r.d})),n.d(t,"trace",(function(){return r.Nb}));var i=n(26);for(var o in i)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return i[e]}))}(o);var a=n(136);n.d(t,"PathNode",(function(){return a.a})),n.d(t,"PathUtils",(function(){return a.b}));var s=n(38);n.d(t,"resolvePolicies",(function(){return s.e})),n.d(t,"defaultResolvePolicy",(function(){return s.d})),n.d(t,"Resolvable",(function(){return s.b})),n.d(t,"NATIVE_INJECTOR_TOKEN",(function(){return s.a})),n.d(t,"ResolveContext",(function(){return s.c}));var l=n(43);for(var o in l)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return l[e]}))}(o);var c=n(138);n.d(t,"TransitionHookPhase",(function(){return c.h})),n.d(t,"TransitionHookScope",(function(){return c.i})),n.d(t,"HookBuilder",(function(){return c.a})),n.d(t,"matchState",(function(){return c.m})),n.d(t,"RegisteredHook",(function(){return c.b})),n.d(t,"makeEvent",(function(){return c.l})),n.d(t,"RejectType",(function(){return c.c})),n.d(t,"Rejection",(function(){return c.d})),n.d(t,"Transition",(function(){return c.e})),n.d(t,"TransitionHook",(function(){return c.g})),n.d(t,"TransitionEventType",(function(){return c.f})),n.d(t,"defaultTransOpts",(function(){return c.k})),n.d(t,"TransitionService",(function(){return c.j}));var u=n(139);for(var o in u)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext","TransitionHookPhase","TransitionHookScope","HookBuilder","matchState","RegisteredHook","makeEvent","RejectType","Rejection","Transition","TransitionHook","TransitionEventType","defaultTransOpts","TransitionService"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return u[e]}))}(o);var d=n(141);for(var o in d)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext","TransitionHookPhase","TransitionHookScope","HookBuilder","matchState","RegisteredHook","makeEvent","RejectType","Rejection","Transition","TransitionHook","TransitionEventType","defaultTransOpts","TransitionService"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return d[e]}))}(o);var p=n(103);n.d(t,"UIRouterGlobals",(function(){return p.a}));var f=n(99);n.d(t,"UIRouter",(function(){return f.a}));var h=n(143);for(var o in h)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext","TransitionHookPhase","TransitionHookScope","HookBuilder","matchState","RegisteredHook","makeEvent","RejectType","Rejection","Transition","TransitionHook","TransitionEventType","defaultTransOpts","TransitionService","UIRouterGlobals","UIRouter"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return h[e]}))}(o);var g=n(147);n.d(t,"UIRouterPluginBase",(function(){return g.a}))},function(e,t,n){"use strict";n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return o})),n.d(t,"m",(function(){return a})),n.d(t,"n",(function(){return s})),n.d(t,"o",(function(){return l})),n.d(t,"k",(function(){return c})),n.d(t,"i",(function(){return u})),n.d(t,"b",(function(){return d})),n.d(t,"j",(function(){return p})),n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return h})),n.d(t,"h",(function(){return g})),n.d(t,"f",(function(){return m})),n.d(t,"p",(function(){return v})),n.d(t,"g",(function(){return b})),n.d(t,"l",(function(){return y}));var r=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)r[i]=o[a];return r};function i(e){return function t(){if(arguments.length>=e.length)return e.apply(this,arguments);var n=Array.prototype.slice.call(arguments);return t.bind.apply(t,r([this],n))}}function o(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function a(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.apply(null,[].slice.call(arguments).reverse())}var s=function(e){return function(t){return t&&t[e]}},l=i((function(e,t,n){return n&&n[e]===t})),c=function(e){return a.apply(null,e.split(".").map(s))},u=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return!e.apply(null,t)}};function d(e,t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.apply(null,n)&&t.apply(null,n)}}function p(e,t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.apply(null,n)||t.apply(null,n)}}var f=function(e){return function(t){return t.reduce((function(t,n){return t&&!!e(n)}),!0)}},h=function(e){return function(t){return t.reduce((function(t,n){return t||!!e(n)}),!1)}},g=function(e){return function(t){return null!=t&&t.constructor===e||t instanceof e}},m=function(e){return function(t){return e===t}},v=function(e){return function(){return e}};function b(e,t){return function(n){return n[e].apply(n,t)}}function y(e){return function(t){for(var n=0;n<e.length;n++)if(e[n][0](t))return e[n][1](t)}}},function(e,t,n){"use strict";var r=n(0);n.d(t,"e",(function(){return r.a})),n.d(t,"f",(function(){return r.b})),n.d(t,"g",(function(){return r.c})),n.d(t,"h",(function(){return r.d})),n.d(t,"j",(function(){return r.e})),n.d(t,"k",(function(){return r.f})),n.d(t,"n",(function(){return r.g})),n.d(t,"o",(function(){return r.h})),n.d(t,"p",(function(){return r.i})),n.d(t,"q",(function(){return r.j})),n.d(t,"r",(function(){return r.k})),n.d(t,"s",(function(){return r.l})),n.d(t,"v",(function(){return r.m})),n.d(t,"w",(function(){return r.n})),n.d(t,"y",(function(){return r.o})),n.d(t,"z",(function(){return r.p})),n.d(t,"B",(function(){return r.q})),n.d(t,"C",(function(){return r.r})),n.d(t,"D",(function(){return r.s})),n.d(t,"E",(function(){return r.t})),n.d(t,"F",(function(){return r.u})),n.d(t,"G",(function(){return r.v})),n.d(t,"I",(function(){return r.w})),n.d(t,"J",(function(){return r.x})),n.d(t,"M",(function(){return r.y})),n.d(t,"N",(function(){return r.z})),n.d(t,"O",(function(){return r.A})),n.d(t,"hb",(function(){return r.B})),n.d(t,"ib",(function(){return r.C})),n.d(t,"kb",(function(){return r.D})),n.d(t,"lb",(function(){return r.E})),n.d(t,"nb",(function(){return r.F})),n.d(t,"qb",(function(){return r.G})),n.d(t,"tb",(function(){return r.H})),n.d(t,"vb",(function(){return r.I})),n.d(t,"yb",(function(){return r.J})),n.d(t,"zb",(function(){return r.K})),n.d(t,"Ab",(function(){return r.L})),n.d(t,"Bb",(function(){return r.M})),n.d(t,"Db",(function(){return r.N})),n.d(t,"Eb",(function(){return r.O})),n.d(t,"Lb",(function(){return r.P})),n.d(t,"Mb",(function(){return r.Q})),n.d(t,"Pb",(function(){return r.R})),n.d(t,"Qb",(function(){return r.S})),n.d(t,"Rb",(function(){return r.T})),n.d(t,"Tb",(function(){return r.U}));var i=n(6);n.d(t,"gb",(function(){return i.a})),n.d(t,"Cb",(function(){return i.b}));var o=n(62);n.d(t,"b",(function(){return o.a}));var a=n(3);n.d(t,"i",(function(){return a.a})),n.d(t,"l",(function(){return a.b})),n.d(t,"m",(function(){return a.c})),n.d(t,"u",(function(){return a.d})),n.d(t,"x",(function(){return a.e})),n.d(t,"A",(function(){return a.f})),n.d(t,"P",(function(){return a.g})),n.d(t,"Q",(function(){return a.h})),n.d(t,"mb",(function(){return a.i})),n.d(t,"ob",(function(){return a.j})),n.d(t,"rb",(function(){return a.k})),n.d(t,"sb",(function(){return a.l})),n.d(t,"ub",(function(){return a.m})),n.d(t,"wb",(function(){return a.n})),n.d(t,"xb",(function(){return a.o})),n.d(t,"Sb",(function(){return a.p}));var s=n(1);n.d(t,"R",(function(){return s.a})),n.d(t,"S",(function(){return s.b})),n.d(t,"T",(function(){return s.c})),n.d(t,"U",(function(){return s.d})),n.d(t,"V",(function(){return s.e})),n.d(t,"W",(function(){return s.f})),n.d(t,"X",(function(){return s.g})),n.d(t,"Y",(function(){return s.h})),n.d(t,"Z",(function(){return s.i})),n.d(t,"ab",(function(){return s.j})),n.d(t,"bb",(function(){return s.k})),n.d(t,"cb",(function(){return s.l})),n.d(t,"db",(function(){return s.m}));var l=n(50);n.d(t,"c",(function(){return l.a}));var c=n(7);n.d(t,"t",(function(){return c.a})),n.d(t,"H",(function(){return c.b})),n.d(t,"K",(function(){return c.c})),n.d(t,"L",(function(){return c.d})),n.d(t,"eb",(function(){return c.e})),n.d(t,"fb",(function(){return c.f})),n.d(t,"jb",(function(){return c.g})),n.d(t,"pb",(function(){return c.h})),n.d(t,"Fb",(function(){return c.i})),n.d(t,"Gb",(function(){return c.j})),n.d(t,"Hb",(function(){return c.k})),n.d(t,"Ib",(function(){return c.l})),n.d(t,"Jb",(function(){return c.m})),n.d(t,"Kb",(function(){return c.n})),n.d(t,"Ob",(function(){return c.o}));var u=n(10);n.d(t,"a",(function(){return u.a})),n.d(t,"d",(function(){return u.b})),n.d(t,"Nb",(function(){return u.c}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return r})),n.d(t,"p",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return s})),n.d(t,"o",(function(){return l})),n.d(t,"q",(function(){return c})),n.d(t,"t",(function(){return u})),n.d(t,"i",(function(){return d})),n.d(t,"r",(function(){return p})),n.d(t,"s",(function(){return f})),n.d(t,"k",(function(){return h})),n.d(t,"m",(function(){return g})),n.d(t,"j",(function(){return m})),n.d(t,"l",(function(){return v})),n.d(t,"g",(function(){return b})),n.d(t,"f",(function(){return y})),n.d(t,"h",(function(){return x})),n.d(t,"n",(function(){return w})),n.d(t,"b",(function(){return k}));var r="1.13.4",i="object"==typeof self&&self.self===self&&self||"object"==typeof e&&e.global===e&&e||Function("return this")()||{},o=Array.prototype,a=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,l=o.push,c=o.slice,u=a.toString,d=a.hasOwnProperty,p="undefined"!=typeof ArrayBuffer,f="undefined"!=typeof DataView,h=Array.isArray,g=Object.keys,m=Object.create,v=p&&ArrayBuffer.isView,b=isNaN,y=isFinite,x=!{toString:null}.propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k=Math.pow(2,53)-1}).call(this,n(35))},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i}));var r=function(e,t){return t.reduce((function(t,n){return t[n]=(r=e+"."+n+"()",function(){throw new Error("No implementation for "+r+". The framework specific code did not implement this method.")}),t;var r}),{})},i={$q:void 0,$injector:void 0}},function(e,t,n){"use strict";n.d(t,"g",(function(){return s})),n.d(t,"h",(function(){return l})),n.d(t,"f",(function(){return c})),n.d(t,"c",(function(){return u})),n.d(t,"b",(function(){return d})),n.d(t,"m",(function(){return h})),n.d(t,"a",(function(){return g})),n.d(t,"d",(function(){return m})),n.d(t,"n",(function(){return v})),n.d(t,"j",(function(){return b})),n.d(t,"l",(function(){return y})),n.d(t,"i",(function(){return x})),n.d(t,"o",(function(){return w})),n.d(t,"k",(function(){return k})),n.d(t,"e",(function(){return A}));var r=n(1),i=n(8),o=n(0),a=n(3);function s(e,t){return t.length<=e?t:t.substr(0,e-3)+"..."}function l(e,t){for(;t.length<e;)t+=" ";return t}function c(e){return e.replace(/^([A-Z])/,(function(e){return e.toLowerCase()})).replace(/([A-Z])/g,(function(e){return"-"+e.toLowerCase()}))}function u(e){var t=d(e),n=t.match(/^(function [^ ]+\([^)]*\))/),r=n?n[1]:t,i=e.name||"";return i&&r.match(/function \(/)?"function "+i+r.substr(9):r}function d(e){var t=Object(r.a)(e)?e.slice(-1)[0]:e;return t&&t.toString()||"undefined"}var p=i.b.isRejectionPromise,f=Object(a.l)([[r.m,Object(a.p)("undefined")],[r.f,Object(a.p)("null")],[r.j,Object(a.p)("[Promise]")],[p,function(e){return e._transitionRejection.toString()}],[function(e){return Object(r.i)(e)&&!Object(r.a)(e)&&e.constructor!==Object&&Object(r.d)(e.toString)},function(e){return e.toString()}],[r.e,u],[Object(a.p)(!0),o.y]]);function h(e){var t=[];function n(e){if(Object(r.i)(e)){if(-1!==t.indexOf(e))return"[circular ref]";t.push(e)}return f(e)}return Object(r.m)(e)?n(e):JSON.stringify(e,(function(e,t){return n(t)})).replace(/\\"/g,'"')}var g=function(e){return function(t){if(!t)return["",""];var n=t.indexOf(e);return-1===n?[t,""]:[t.substr(0,n),t.substr(n+1)]}},m=new RegExp("^(?:[a-z]+:)?//[^/]+/"),v=function(e){return e.replace(/\/[^/]*$/,"")},b=g("#"),y=g("?"),x=g("="),w=function(e){return e?e.replace(/^#/,""):""};function k(e){var t=new RegExp("("+e+")","g");return function(e){return e.split(t).filter(o.y)}}function A(e,t){return Object(r.l)(Object(o.P)(e))&&Object(r.l)(t)?e.slice(0,-1).concat(Object(o.P)(e)+t):Object(o.J)(e,t)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return l}));var r,i=n(0),o=n(7),a=n(3);!function(e){e[e.SUPERSEDED=2]="SUPERSEDED",e[e.ABORTED=3]="ABORTED",e[e.INVALID=4]="INVALID",e[e.IGNORED=5]="IGNORED",e[e.ERROR=6]="ERROR"}(r||(r={}));var s=0,l=function(){function e(e,t,n){this.$id=s++,this.type=e,this.message=t,this.detail=n}return e.isRejectionPromise=function(t){return t&&"function"==typeof t.then&&Object(a.h)(e)(t._transitionRejection)},e.superseded=function(t,n){var i=new e(r.SUPERSEDED,"The transition has been superseded by a different transition",t);return n&&n.redirected&&(i.redirected=!0),i},e.redirected=function(t){return e.superseded(t,{redirected:!0})},e.invalid=function(t){return new e(r.INVALID,"This transition is invalid",t)},e.ignored=function(t){return new e(r.IGNORED,"The transition was ignored",t)},e.aborted=function(t){return new e(r.ABORTED,"The transition has been aborted",t)},e.errored=function(t){return new e(r.ERROR,"The transition errored",t)},e.normalize=function(t){return Object(a.h)(e)(t)?t:e.errored(t)},e.prototype.toString=function(){var e,t=(e=this.detail)&&e.toString!==Object.prototype.toString?e.toString():Object(o.m)(e);return"Transition Rejection($id: "+this.$id+" type: "+this.type+", message: "+this.message+", detail: "+t+")"},e.prototype.toPromise=function(){return Object(i.r)(Object(i.O)(this),{_transitionRejection:this})},e}()},function(e,t,n){n(208),e.exports=angular},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return f})),n.d(t,"c",(function(){return h}));var r=n(3),i=n(1),o=n(7),a=n(19);function s(e){if(!e)return"ui-view (defunct)";var t=e.creationContext?e.creationContext.name||"(root)":"(none)";return"[ui-view#"+e.id+" "+e.$type+":"+e.fqn+" ("+e.name+"@"+t+")]"}var l;function c(e){return Object(i.h)(e)?l[e]:l[l[e]]}!function(e){e[e.RESOLVE=0]="RESOLVE",e[e.TRANSITION=1]="TRANSITION",e[e.HOOK=2]="HOOK",e[e.UIVIEW=3]="UIVIEW",e[e.VIEWCONFIG=4]="VIEWCONFIG"}(l||(l={}));var u=Object(r.k)("$id"),d=Object(r.k)("router.$id"),p=function(e){return"Transition #"+u(e)+"-"+d(e)},f=function(){function e(){this._enabled={},this.approximateDigests=0}return e.prototype._set=function(e,t){var n=this;t.length||(t=Object.keys(l).map((function(e){return parseInt(e,10)})).filter((function(e){return!isNaN(e)})).map((function(e){return l[e]}))),t.map(c).forEach((function(t){return n._enabled[t]=e}))},e.prototype.enable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._set(!0,e)},e.prototype.disable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._set(!1,e)},e.prototype.enabled=function(e){return!!this._enabled[c(e)]},e.prototype.traceTransitionStart=function(e){this.enabled(l.TRANSITION)&&a.a.log(p(e)+": Started -> "+Object(o.m)(e))},e.prototype.traceTransitionIgnored=function(e){this.enabled(l.TRANSITION)&&a.a.log(p(e)+": Ignored <> "+Object(o.m)(e))},e.prototype.traceHookInvocation=function(e,t,n){if(this.enabled(l.HOOK)){var i=Object(r.k)("traceData.hookType")(n)||"internal",s=Object(r.k)("traceData.context.state.name")(n)||Object(r.k)("traceData.context")(n)||"unknown",c=Object(o.c)(e.registeredHook.callback);a.a.log(p(t)+": Hook -> "+i+" context: "+s+", "+Object(o.g)(200,c))}},e.prototype.traceHookResult=function(e,t,n){this.enabled(l.HOOK)&&a.a.log(p(t)+": <- Hook returned: "+Object(o.g)(200,Object(o.m)(e)))},e.prototype.traceResolvePath=function(e,t,n){this.enabled(l.RESOLVE)&&a.a.log(p(n)+": Resolving "+e+" ("+t+")")},e.prototype.traceResolvableResolved=function(e,t){this.enabled(l.RESOLVE)&&a.a.log(p(t)+": <- Resolved "+e+" to: "+Object(o.g)(200,Object(o.m)(e.data)))},e.prototype.traceError=function(e,t){this.enabled(l.TRANSITION)&&a.a.log(p(t)+": <- Rejected "+Object(o.m)(t)+", reason: "+e)},e.prototype.traceSuccess=function(e,t){this.enabled(l.TRANSITION)&&a.a.log(p(t)+": <- Success "+Object(o.m)(t)+", final state: "+e.name)},e.prototype.traceUIViewEvent=function(e,t,n){void 0===n&&(n=""),this.enabled(l.UIVIEW)&&a.a.log("ui-view: "+Object(o.h)(30,e)+" "+s(t)+n)},e.prototype.traceUIViewConfigUpdated=function(e,t){this.enabled(l.UIVIEW)&&this.traceUIViewEvent("Updating",e," with ViewConfig from context='"+t+"'")},e.prototype.traceUIViewFill=function(e,t){this.enabled(l.UIVIEW)&&this.traceUIViewEvent("Fill",e," with: "+Object(o.g)(200,t))},e.prototype.traceViewSync=function(e){if(this.enabled(l.VIEWCONFIG)){var t="uiview component fqn",n=e.map((function(e){var n,r=e.uiView,i=e.viewConfig,o=r&&r.fqn,a=i&&i.viewDecl.$context.name+": ("+i.viewDecl.$name+")";return(n={})[t]=o,n["view config state (view name)"]=a,n})).sort((function(e,n){return(e[t]||"").localeCompare(n[t]||"")}));a.a.table(n)}},e.prototype.traceViewServiceEvent=function(e,t){this.enabled(l.VIEWCONFIG)&&a.a.log("VIEWCONFIG: "+e+" "+function(e){var t=e.viewDecl,n=t.$context.name||"(root)";return"[View#"+e.$id+" from '"+n+"' state]: target ui-view: '"+t.$uiViewName+"@"+t.$uiViewContextAnchor+"'"}(t))},e.prototype.traceViewServiceUIViewEvent=function(e,t){this.enabled(l.VIEWCONFIG)&&a.a.log("VIEWCONFIG: "+e+" "+s(t))},e}(),h=new f},function(e,t,n){var r;try{r={cloneDeep:n(360),constant:n(126),defaults:n(361),each:n(167),filter:n(170),find:n(362),flatten:n(197),forEach:n(168),forIn:n(369),has:n(181),isUndefined:n(182),last:n(370),map:n(183),mapValues:n(371),max:n(372),merge:n(374),min:n(380),minBy:n(381),now:n(382),pick:n(383),range:n(388),reduce:n(185),sortBy:n(391),uniqueId:n(396),values:n(190),zipObject:n(397)}}catch(e){}r||(r=window._),e.exports=r},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(9),i=angular,o=r&&r.module?r:i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";var r,i;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i})),function(e){e[e.CREATE=0]="CREATE",e[e.BEFORE=1]="BEFORE",e[e.RUN=2]="RUN",e[e.SUCCESS=3]="SUCCESS",e[e.ERROR=4]="ERROR"}(r||(r={})),function(e){e[e.TRANSITION=0]="TRANSITION",e[e.STATE=1]="STATE"}(i||(i={}))},function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return c}));var r=n(0),i=n(6),o=n(10),a=n(7),s=n(1),l={when:"LAZY",async:"WAIT"},c=function(){function e(t,n,o,a,l){if(this.resolved=!1,this.promise=void 0,t instanceof e)Object(r.r)(this,t);else if(Object(s.d)(n)){if(Object(s.g)(t))throw new Error("new Resolvable(): token argument is required");if(!Object(s.d)(n))throw new Error("new Resolvable(): resolveFn argument must be a function");this.token=t,this.policy=a,this.resolveFn=n,this.deps=o||[],this.data=l,this.resolved=void 0!==l,this.promise=this.resolved?i.b.$q.when(this.data):void 0}else if(Object(s.i)(t)&&t.token&&(t.hasOwnProperty("resolveFn")||t.hasOwnProperty("data"))){var c=t;return new e(c.token,c.resolveFn,c.deps,c.policy,c.data)}}return e.prototype.getPolicy=function(e){var t=this.policy||{},n=e&&e.resolvePolicy||{};return{when:t.when||n.when||l.when,async:t.async||n.async||l.async}},e.prototype.resolve=function(e,t){var n=this,a=i.b.$q,l=e.findNode(this),c=l&&l.state,u=this.getPolicy(c).async,d=Object(s.d)(u)?u:r.y;return this.promise=a.when().then((function(){return a.all(e.getDependencies(n).map((function(n){return n.get(e,t)})))})).then((function(e){return n.resolveFn.apply(null,e)})).then(d).then((function(e){return n.data=e,n.resolved=!0,n.resolveFn=null,o.c.traceResolvableResolved(n,t),n.data}))},e.prototype.get=function(e,t){return this.promise||this.resolve(e,t)},e.prototype.toString=function(){return"Resolvable(token: "+Object(a.m)(this.token)+", requires: ["+this.deps.map(a.m)+"])"},e.prototype.clone=function(){return new e(this)},e.fromData=function(t,n){return new e(t,(function(){return n}),null,null,n)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return d}));var r,i=n(0),o=n(3),a=n(1),s=n(6),l=n(51),c=Object.prototype.hasOwnProperty;function u(e,t,n){var o=!1===n.reloadOnSearch&&t===r.SEARCH||void 0,s=Object(i.t)([n.dynamic,o],a.c),l=Object(a.c)(s)?{dynamic:s}:{},u=function(e){function t(){return e.value}e=function(e){return 0===["value","type","squash","array","dynamic"].filter(c.bind(e||{})).length}(e)?{value:e}:e,t.__cacheable=!0;var n=Object(a.e)(e.value)?e.value:t;return Object(i.r)(e,{$$fn:n})}(n&&n.params&&n.params[e]);return Object(i.r)(l,u)}!function(e){e[e.PATH=0]="PATH",e[e.SEARCH=1]="SEARCH",e[e.CONFIG=2]="CONFIG"}(r||(r={}));var d=function(){function e(e,t,n,s,c){var d=u(e,n,c);t=function(e,t,n,i,o){if(e.type&&t&&"string"!==t.name)throw new Error("Param '"+i+"' has two type configurations.");if(e.type&&t&&"string"===t.name&&o.type(e.type))return o.type(e.type);if(t)return t;if(!e.type){var a=n===r.CONFIG?"any":n===r.PATH?"path":n===r.SEARCH?"query":"string";return o.type(a)}return e.type instanceof l.a?e.type:o.type(e.type)}(d,t,n,e,s.paramTypes);var p,f,h=(p={array:n===r.SEARCH&&"auto"},f=e.match(/\[\]$/)?{array:!0}:{},Object(i.r)(p,f,d).array);t=h?t.$asArray(h,n===r.SEARCH):t;var g=void 0!==d.value||n===r.SEARCH,m=Object(a.c)(d.dynamic)?!!d.dynamic:!!t.dynamic,v=Object(a.c)(d.raw)?!!d.raw:!!t.raw,b=function(e,t,n){var r=e.squash;if(!t||!1===r)return!1;if(!Object(a.c)(r)||null==r)return n;if(!0===r||Object(a.l)(r))return r;throw new Error("Invalid squash policy: '"+r+"'. Valid policies: false, true, or arbitrary string")}(d,g,s.defaultSquashPolicy()),y=function(e,t,n,r){var s=[{from:"",to:n||t?void 0:""},{from:null,to:n||t?void 0:""}],l=Object(a.a)(e.replace)?e.replace:[];Object(a.l)(r)&&l.push({from:r,to:void 0});var c=Object(i.B)(l,Object(o.n)("from"));return Object(i.s)(s,(function(e){return-1===c.indexOf(e.from)})).concat(l)}(d,h,g,b),x=Object(a.c)(d.inherit)?!!d.inherit:!!t.inherit;Object(i.r)(this,{id:e,type:t,location:n,isOptional:g,dynamic:m,raw:v,squash:b,replace:y,inherit:x,array:h,config:d})}return e.values=function(e,t){void 0===t&&(t={});for(var n={},r=0,i=e;r<i.length;r++){var o=i[r];n[o.id]=o.value(t[o.id])}return n},e.changed=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e.filter((function(e){return!e.type.equals(t[e.id],n[e.id])}))},e.equals=function(t,n,r){return void 0===n&&(n={}),void 0===r&&(r={}),0===e.changed(t,n,r).length},e.validates=function(e,t){return void 0===t&&(t={}),e.map((function(e){return e.validates(t[e.id])})).reduce(i.e,!0)},e.prototype.isDefaultValue=function(e){return this.isOptional&&this.type.equals(this.value(),e)},e.prototype.value=function(e){var t=this;return e=function(e){for(var n=0,r=t.replace;n<r.length;n++){var i=r[n];if(i.from===e)return i.to}return e}(e),Object(a.m)(e)?function(){if(t._defaultValueCache)return t._defaultValueCache.defaultValue;if(!s.b.$injector)throw new Error("Injectable functions cannot be called at configuration time");var e=s.b.$injector.invoke(t.config.$$fn);if(null!=e&&!t.type.is(e))throw new Error("Default value ("+e+") for parameter '"+t.id+"' is not an instance of ParamType ("+t.type.name+")");return t.config.$$fn.__cacheable&&(t._defaultValueCache={defaultValue:e}),e}():this.type.$normalize(e)},e.prototype.isSearch=function(){return this.location===r.SEARCH},e.prototype.validates=function(e){if((Object(a.m)(e)||null===e)&&this.isOptional)return!0;var t=this.type.$normalize(e);if(!this.type.is(t))return!1;var n=this.type.encode(t);return!(Object(a.l)(n)&&!this.type.pattern.exec(n))},e.prototype.toString=function(){return"{Param:"+this.id+" "+this.type+" squash: '"+this.squash+"' optional: "+this.isOptional+"}"},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(14),i=n(0),o=n(7),a=n(1),s=n(3),l=n(10),c=n(6),u=n(8),d=n(24),p={current:i.E,transition:null,traceData:{},bind:null},f=function(){function e(e,t,n,o){var a=this;this.transition=e,this.stateContext=t,this.registeredHook=n,this.options=o,this.isSuperseded=function(){return a.type.hookPhase===r.a.RUN&&!a.options.transition.isActive()},this.options=Object(i.o)(o,p),this.type=n.eventType}return e.chain=function(e,t){return e.reduce((function(e,t){return e.then((function(){return t.invokeHook()}))}),t||c.b.$q.when())},e.invokeHooks=function(t,n){for(var r=0;r<t.length;r++){var i=t[r].invokeHook();if(Object(a.j)(i)){var o=t.slice(r+1);return e.chain(o,i).then(n)}}return n()},e.runAllHooks=function(e){e.forEach((function(e){return e.invokeHook()}))},e.prototype.logError=function(e){this.transition.router.stateService.defaultErrorHandler()(e)},e.prototype.invokeHook=function(){var e=this,t=this.registeredHook;if(!t._deregistered){var n=this.getNotCurrentRejection();if(n)return n;var r=this.options;l.c.traceHookInvocation(this,this.transition,r);var i=function(n){return t.eventType.getErrorHandler(e)(n)},o=function(n){return t.eventType.getResultHandler(e)(n)};try{var s=t.callback.call(r.bind,e.transition,e.stateContext);return!this.type.synchronous&&Object(a.j)(s)?s.catch((function(e){return u.b.normalize(e).toPromise()})).then(o,i):o(s)}catch(e){return i(u.b.normalize(e))}finally{t.invokeLimit&&++t.invokeCount>=t.invokeLimit&&t.deregister()}}},e.prototype.handleHookResult=function(e){var t=this,n=this.getNotCurrentRejection();return n||(Object(a.j)(e)?e.then((function(e){return t.handleHookResult(e)})):(l.c.traceHookResult(e,this.transition,this.options),!1===e?u.b.aborted("Hook aborted transition").toPromise():Object(s.h)(d.a)(e)?u.b.redirected(e).toPromise():void 0))},e.prototype.getNotCurrentRejection=function(){var e=this.transition.router;return e._disposed?u.b.aborted("UIRouter instance #"+e.$id+" has been stopped (disposed)").toPromise():this.transition._aborted?u.b.aborted().toPromise():this.isSuperseded()?u.b.superseded(this.options.current()).toPromise():void 0},e.prototype.toString=function(){var e=this.options,t=this.registeredHook,n=Object(s.k)("traceData.hookType")(e)||"internal",r=Object(s.k)("traceData.context.state.name")(e)||Object(s.k)("traceData.context")(e)||"unknown",i=Object(o.b)(t.callback);return n+" context: "+r+", "+Object(o.g)(200,i)},e.HANDLE_RESULT=function(e){return function(t){return e.handleHookResult(t)}},e.LOG_REJECTED_RESULT=function(e){return function(t){Object(a.j)(t)&&t.catch((function(t){return e.logError(u.b.normalize(t))}))}},e.LOG_ERROR=function(e){return function(t){return e.logError(t)}},e.REJECT_ERROR=function(e){return function(e){return Object(i.O)(e)}},e.THROW_ERROR=function(e){return function(e){throw e}},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(3),o=n(24),a=n(52),s=function(){function e(){}return e.makeTargetState=function(e,t){var n=Object(r.P)(t).state;return new o.a(e,n,t.map(Object(i.n)("paramValues")).reduce(r.D,{}),{})},e.buildPath=function(e){var t=e.params();return e.$state().path.map((function(e){return new a.a(e).applyRawParams(t)}))},e.buildToPath=function(t,n){var r=e.buildPath(n);return n.options().inherit?e.inheritParams(t,r,Object.keys(n.params())):r},e.applyViewConfigs=function(t,n,i){n.filter((function(e){return Object(r.z)(i,e.state)})).forEach((function(i){var o=Object(r.U)(i.state.views||{}),a=e.subPath(n,(function(e){return e===i})),s=o.map((function(e){return t.createViewConfig(a,e)}));i.views=s.reduce(r.T,[])}))},e.inheritParams=function(e,t,n){void 0===n&&(n=[]);var o=e.map((function(e){return e.paramSchema})).reduce(r.T,[]).filter((function(e){return!e.inherit})).map(Object(i.n)("id"));return t.map((function(t){var s=Object(r.r)({},t&&t.paramValues),l=Object(r.H)(s,n);s=Object(r.F)(s,n);var c,u,d,p=Object(r.F)((c=e,u=t.state,d=Object(r.t)(c,Object(i.o)("state",u)),Object(r.r)({},d&&d.paramValues)||{}),o),f=Object(r.r)(s,p,l);return new a.a(t.state).applyRawParams(f)}))},e.treeChanges=function(t,n,r){for(var i,o,a,s,l,c,u=Math.min(t.length,n.length),d=0;d<u&&t[d].state!==r&&(i=t[d],o=n[d],i.equals(o,e.nonDynamicParams));)d++;s=(a=t).slice(0,d),l=a.slice(d);var p=s.map((function(e,t){var r=e.clone();return r.paramValues=n[t].paramValues,r}));return c=n.slice(d),{from:a,to:p.concat(c),retained:s,retainedWithToParams:p,exiting:l,entering:c}},e.matching=function(e,t,n){var i=!1;return Object(r.i)(e,t).reduce((function(e,t){var r=t[0],o=t[1];return(i=i||!r.equals(o,n))?e:e.concat(r)}),[])},e.equals=function(t,n,r){return t.length===n.length&&e.matching(t,n,r).length===t.length},e.subPath=function(e,t){var n=Object(r.t)(e,t),i=e.indexOf(n);return-1===i?void 0:e.slice(0,i+1)},e.nonDynamicParams=function(e){return e.state.parameters({inherit:!1}).filter((function(e){return!e.dynamic}))},e.paramValues=function(e){return e.reduce((function(e,t){return Object(r.r)(e,t.paramValues)}),{})},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0),i={log:r.E,error:r.E,table:r.E};var o="undefined"!=typeof document&&document.documentMode&&9===document.documentMode?window&&window.console?function(e){var t=function(t){return Function.prototype.bind.call(t,e)};return{log:t(e.log),error:t(e.log),table:t(e.log)}}(window.console):i:console.table&&console.error?console:function(e){var t=e.log.bind(e);return{log:t,error:e.error?e.error.bind(e):t,table:e.table?e.table.bind(e):t}}(console)},function(e,t,n){"use strict";var r=n(11),i=n(28).Graph;function o(e,t,n,i){var o;do{o=r.uniqueId(i)}while(e.hasNode(o));return n.dummy=t,e.setNode(o,n),o}function a(e){return r.max(r.map(e.nodes(),(function(t){var n=e.node(t).rank;if(!r.isUndefined(n))return n})))}e.exports={addDummyNode:o,simplify:function(e){var t=(new i).setGraph(e.graph());return r.forEach(e.nodes(),(function(n){t.setNode(n,e.node(n))})),r.forEach(e.edges(),(function(n){var r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),t},asNonCompoundGraph:function(e){var t=new i({multigraph:e.isMultigraph()}).setGraph(e.graph());return r.forEach(e.nodes(),(function(n){e.children(n).length||t.setNode(n,e.node(n))})),r.forEach(e.edges(),(function(n){t.setEdge(n,e.edge(n))})),t},successorWeights:function(e){var t=r.map(e.nodes(),(function(t){var n={};return r.forEach(e.outEdges(t),(function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight})),n}));return r.zipObject(e.nodes(),t)},predecessorWeights:function(e){var t=r.map(e.nodes(),(function(t){var n={};return r.forEach(e.inEdges(t),(function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight})),n}));return r.zipObject(e.nodes(),t)},intersectRect:function(e,t){var n,r,i=e.x,o=e.y,a=t.x-i,s=t.y-o,l=e.width/2,c=e.height/2;if(!a&&!s)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(s)*l>Math.abs(a)*c?(s<0&&(c=-c),n=c*a/s,r=c):(a<0&&(l=-l),n=l,r=l*s/a);return{x:i+n,y:o+r}},buildLayerMatrix:function(e){var t=r.map(r.range(a(e)+1),(function(){return[]}));return r.forEach(e.nodes(),(function(n){var i=e.node(n),o=i.rank;r.isUndefined(o)||(t[o][i.order]=n)})),t},normalizeRanks:function(e){var t=r.min(r.map(e.nodes(),(function(t){return e.node(t).rank})));r.forEach(e.nodes(),(function(n){var i=e.node(n);r.has(i,"rank")&&(i.rank-=t)}))},removeEmptyRanks:function(e){var t=r.min(r.map(e.nodes(),(function(t){return e.node(t).rank}))),n=[];r.forEach(e.nodes(),(function(r){var i=e.node(r).rank-t;n[i]||(n[i]=[]),n[i].push(r)}));var i=0,o=e.graph().nodeRankFactor;r.forEach(n,(function(t,n){r.isUndefined(t)&&n%o!=0?--i:i&&r.forEach(t,(function(t){e.node(t).rank+=i}))}))},addBorderNode:function(e,t,n,r){var i={width:0,height:0};arguments.length>=4&&(i.rank=n,i.order=r);return o(e,"border",i,t)},maxRank:a,partition:function(e,t){var n={lhs:[],rhs:[]};return r.forEach(e,(function(e){t(e)?n.lhs.push(e):n.rhs.push(e)})),n},time:function(e,t){var n=r.now();try{return t()}finally{console.log(e+" time: "+(r.now()-n)+"ms")}},notime:function(e,t){return t()}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return kn})),n.d(t,"VERSION",(function(){return i.e})),n.d(t,"restArguments",(function(){return o})),n.d(t,"isObject",(function(){return a})),n.d(t,"isNull",(function(){return s})),n.d(t,"isUndefined",(function(){return l})),n.d(t,"isBoolean",(function(){return c})),n.d(t,"isElement",(function(){return u})),n.d(t,"isString",(function(){return p})),n.d(t,"isNumber",(function(){return f})),n.d(t,"isDate",(function(){return h})),n.d(t,"isRegExp",(function(){return g})),n.d(t,"isError",(function(){return m})),n.d(t,"isSymbol",(function(){return v})),n.d(t,"isArrayBuffer",(function(){return b})),n.d(t,"isDataView",(function(){return $})),n.d(t,"isArray",(function(){return C})),n.d(t,"isFunction",(function(){return w})),n.d(t,"isArguments",(function(){return T})),n.d(t,"isFinite",(function(){return j})),n.d(t,"isNaN",(function(){return P})),n.d(t,"isTypedArray",(function(){return L})),n.d(t,"isEmpty",(function(){return V})),n.d(t,"isMatch",(function(){return U})),n.d(t,"isEqual",(function(){return Y})),n.d(t,"isMap",(function(){return re})),n.d(t,"isWeakMap",(function(){return ie})),n.d(t,"isSet",(function(){return oe})),n.d(t,"isWeakSet",(function(){return ae})),n.d(t,"keys",(function(){return q})),n.d(t,"allKeys",(function(){return X})),n.d(t,"values",(function(){return se})),n.d(t,"pairs",(function(){return le})),n.d(t,"invert",(function(){return ce})),n.d(t,"functions",(function(){return ue})),n.d(t,"methods",(function(){return ue})),n.d(t,"extend",(function(){return pe})),n.d(t,"extendOwn",(function(){return fe})),n.d(t,"assign",(function(){return fe})),n.d(t,"defaults",(function(){return he})),n.d(t,"create",(function(){return me})),n.d(t,"clone",(function(){return ve})),n.d(t,"tap",(function(){return be})),n.d(t,"get",(function(){return ke})),n.d(t,"has",(function(){return Ae})),n.d(t,"mapObject",(function(){return je})),n.d(t,"identity",(function(){return Ee})),n.d(t,"constant",(function(){return D})),n.d(t,"noop",(function(){return Pe})),n.d(t,"toPath",(function(){return ye})),n.d(t,"property",(function(){return $e})),n.d(t,"propertyOf",(function(){return De})),n.d(t,"matcher",(function(){return Se})),n.d(t,"matches",(function(){return Se})),n.d(t,"times",(function(){return Re})),n.d(t,"random",(function(){return Ie})),n.d(t,"now",(function(){return Ne})),n.d(t,"escape",(function(){return Le})),n.d(t,"unescape",(function(){return Be})),n.d(t,"templateSettings",(function(){return Fe})),n.d(t,"template",(function(){return We})),n.d(t,"result",(function(){return Ye})),n.d(t,"uniqueId",(function(){return Ze})),n.d(t,"chain",(function(){return Qe})),n.d(t,"iteratee",(function(){return Oe})),n.d(t,"partial",(function(){return et})),n.d(t,"bind",(function(){return tt})),n.d(t,"bindAll",(function(){return it})),n.d(t,"memoize",(function(){return ot})),n.d(t,"delay",(function(){return at})),n.d(t,"defer",(function(){return st})),n.d(t,"throttle",(function(){return lt})),n.d(t,"debounce",(function(){return ct})),n.d(t,"wrap",(function(){return ut})),n.d(t,"negate",(function(){return dt})),n.d(t,"compose",(function(){return pt})),n.d(t,"after",(function(){return ft})),n.d(t,"before",(function(){return ht})),n.d(t,"once",(function(){return gt})),n.d(t,"findKey",(function(){return mt})),n.d(t,"findIndex",(function(){return bt})),n.d(t,"findLastIndex",(function(){return yt})),n.d(t,"sortedIndex",(function(){return xt})),n.d(t,"indexOf",(function(){return kt})),n.d(t,"lastIndexOf",(function(){return At})),n.d(t,"find",(function(){return Et})),n.d(t,"detect",(function(){return Et})),n.d(t,"findWhere",(function(){return St})),n.d(t,"each",(function(){return $t})),n.d(t,"forEach",(function(){return $t})),n.d(t,"map",(function(){return Ct})),n.d(t,"collect",(function(){return Ct})),n.d(t,"reduce",(function(){return Ot})),n.d(t,"foldl",(function(){return Ot})),n.d(t,"inject",(function(){return Ot})),n.d(t,"reduceRight",(function(){return Tt})),n.d(t,"foldr",(function(){return Tt})),n.d(t,"filter",(function(){return jt})),n.d(t,"select",(function(){return jt})),n.d(t,"reject",(function(){return Pt})),n.d(t,"every",(function(){return Dt})),n.d(t,"all",(function(){return Dt})),n.d(t,"some",(function(){return Rt})),n.d(t,"any",(function(){return Rt})),n.d(t,"contains",(function(){return It})),n.d(t,"includes",(function(){return It})),n.d(t,"include",(function(){return It})),n.d(t,"invoke",(function(){return Nt})),n.d(t,"pluck",(function(){return Mt})),n.d(t,"where",(function(){return zt})),n.d(t,"max",(function(){return Lt})),n.d(t,"min",(function(){return Bt})),n.d(t,"shuffle",(function(){return Ut})),n.d(t,"sample",(function(){return Vt})),n.d(t,"sortBy",(function(){return Ht})),n.d(t,"groupBy",(function(){return Wt})),n.d(t,"indexBy",(function(){return Yt})),n.d(t,"countBy",(function(){return Xt})),n.d(t,"partition",(function(){return Zt})),n.d(t,"toArray",(function(){return qt})),n.d(t,"size",(function(){return Qt})),n.d(t,"pick",(function(){return Kt})),n.d(t,"omit",(function(){return en})),n.d(t,"first",(function(){return nn})),n.d(t,"head",(function(){return nn})),n.d(t,"take",(function(){return nn})),n.d(t,"initial",(function(){return tn})),n.d(t,"last",(function(){return on})),n.d(t,"rest",(function(){return rn})),n.d(t,"tail",(function(){return rn})),n.d(t,"drop",(function(){return rn})),n.d(t,"compact",(function(){return an})),n.d(t,"flatten",(function(){return sn})),n.d(t,"without",(function(){return cn})),n.d(t,"uniq",(function(){return un})),n.d(t,"unique",(function(){return un})),n.d(t,"union",(function(){return dn})),n.d(t,"intersection",(function(){return pn})),n.d(t,"difference",(function(){return ln})),n.d(t,"unzip",(function(){return fn})),n.d(t,"transpose",(function(){return fn})),n.d(t,"zip",(function(){return hn})),n.d(t,"object",(function(){return gn})),n.d(t,"range",(function(){return mn})),n.d(t,"chunk",(function(){return vn})),n.d(t,"mixin",(function(){return yn}));var r={};n.r(r),n.d(r,"VERSION",(function(){return i.e})),n.d(r,"restArguments",(function(){return o})),n.d(r,"isObject",(function(){return a})),n.d(r,"isNull",(function(){return s})),n.d(r,"isUndefined",(function(){return l})),n.d(r,"isBoolean",(function(){return c})),n.d(r,"isElement",(function(){return u})),n.d(r,"isString",(function(){return p})),n.d(r,"isNumber",(function(){return f})),n.d(r,"isDate",(function(){return h})),n.d(r,"isRegExp",(function(){return g})),n.d(r,"isError",(function(){return m})),n.d(r,"isSymbol",(function(){return v})),n.d(r,"isArrayBuffer",(function(){return b})),n.d(r,"isDataView",(function(){return $})),n.d(r,"isArray",(function(){return C})),n.d(r,"isFunction",(function(){return w})),n.d(r,"isArguments",(function(){return T})),n.d(r,"isFinite",(function(){return j})),n.d(r,"isNaN",(function(){return P})),n.d(r,"isTypedArray",(function(){return L})),n.d(r,"isEmpty",(function(){return V})),n.d(r,"isMatch",(function(){return U})),n.d(r,"isEqual",(function(){return Y})),n.d(r,"isMap",(function(){return re})),n.d(r,"isWeakMap",(function(){return ie})),n.d(r,"isSet",(function(){return oe})),n.d(r,"isWeakSet",(function(){return ae})),n.d(r,"keys",(function(){return q})),n.d(r,"allKeys",(function(){return X})),n.d(r,"values",(function(){return se})),n.d(r,"pairs",(function(){return le})),n.d(r,"invert",(function(){return ce})),n.d(r,"functions",(function(){return ue})),n.d(r,"methods",(function(){return ue})),n.d(r,"extend",(function(){return pe})),n.d(r,"extendOwn",(function(){return fe})),n.d(r,"assign",(function(){return fe})),n.d(r,"defaults",(function(){return he})),n.d(r,"create",(function(){return me})),n.d(r,"clone",(function(){return ve})),n.d(r,"tap",(function(){return be})),n.d(r,"get",(function(){return ke})),n.d(r,"has",(function(){return Ae})),n.d(r,"mapObject",(function(){return je})),n.d(r,"identity",(function(){return Ee})),n.d(r,"constant",(function(){return D})),n.d(r,"noop",(function(){return Pe})),n.d(r,"toPath",(function(){return ye})),n.d(r,"property",(function(){return $e})),n.d(r,"propertyOf",(function(){return De})),n.d(r,"matcher",(function(){return Se})),n.d(r,"matches",(function(){return Se})),n.d(r,"times",(function(){return Re})),n.d(r,"random",(function(){return Ie})),n.d(r,"now",(function(){return Ne})),n.d(r,"escape",(function(){return Le})),n.d(r,"unescape",(function(){return Be})),n.d(r,"templateSettings",(function(){return Fe})),n.d(r,"template",(function(){return We})),n.d(r,"result",(function(){return Ye})),n.d(r,"uniqueId",(function(){return Ze})),n.d(r,"chain",(function(){return Qe})),n.d(r,"iteratee",(function(){return Oe})),n.d(r,"partial",(function(){return et})),n.d(r,"bind",(function(){return tt})),n.d(r,"bindAll",(function(){return it})),n.d(r,"memoize",(function(){return ot})),n.d(r,"delay",(function(){return at})),n.d(r,"defer",(function(){return st})),n.d(r,"throttle",(function(){return lt})),n.d(r,"debounce",(function(){return ct})),n.d(r,"wrap",(function(){return ut})),n.d(r,"negate",(function(){return dt})),n.d(r,"compose",(function(){return pt})),n.d(r,"after",(function(){return ft})),n.d(r,"before",(function(){return ht})),n.d(r,"once",(function(){return gt})),n.d(r,"findKey",(function(){return mt})),n.d(r,"findIndex",(function(){return bt})),n.d(r,"findLastIndex",(function(){return yt})),n.d(r,"sortedIndex",(function(){return xt})),n.d(r,"indexOf",(function(){return kt})),n.d(r,"lastIndexOf",(function(){return At})),n.d(r,"find",(function(){return Et})),n.d(r,"detect",(function(){return Et})),n.d(r,"findWhere",(function(){return St})),n.d(r,"each",(function(){return $t})),n.d(r,"forEach",(function(){return $t})),n.d(r,"map",(function(){return Ct})),n.d(r,"collect",(function(){return Ct})),n.d(r,"reduce",(function(){return Ot})),n.d(r,"foldl",(function(){return Ot})),n.d(r,"inject",(function(){return Ot})),n.d(r,"reduceRight",(function(){return Tt})),n.d(r,"foldr",(function(){return Tt})),n.d(r,"filter",(function(){return jt})),n.d(r,"select",(function(){return jt})),n.d(r,"reject",(function(){return Pt})),n.d(r,"every",(function(){return Dt})),n.d(r,"all",(function(){return Dt})),n.d(r,"some",(function(){return Rt})),n.d(r,"any",(function(){return Rt})),n.d(r,"contains",(function(){return It})),n.d(r,"includes",(function(){return It})),n.d(r,"include",(function(){return It})),n.d(r,"invoke",(function(){return Nt})),n.d(r,"pluck",(function(){return Mt})),n.d(r,"where",(function(){return zt})),n.d(r,"max",(function(){return Lt})),n.d(r,"min",(function(){return Bt})),n.d(r,"shuffle",(function(){return Ut})),n.d(r,"sample",(function(){return Vt})),n.d(r,"sortBy",(function(){return Ht})),n.d(r,"groupBy",(function(){return Wt})),n.d(r,"indexBy",(function(){return Yt})),n.d(r,"countBy",(function(){return Xt})),n.d(r,"partition",(function(){return Zt})),n.d(r,"toArray",(function(){return qt})),n.d(r,"size",(function(){return Qt})),n.d(r,"pick",(function(){return Kt})),n.d(r,"omit",(function(){return en})),n.d(r,"first",(function(){return nn})),n.d(r,"head",(function(){return nn})),n.d(r,"take",(function(){return nn})),n.d(r,"initial",(function(){return tn})),n.d(r,"last",(function(){return on})),n.d(r,"rest",(function(){return rn})),n.d(r,"tail",(function(){return rn})),n.d(r,"drop",(function(){return rn})),n.d(r,"compact",(function(){return an})),n.d(r,"flatten",(function(){return sn})),n.d(r,"without",(function(){return cn})),n.d(r,"uniq",(function(){return un})),n.d(r,"unique",(function(){return un})),n.d(r,"union",(function(){return dn})),n.d(r,"intersection",(function(){return pn})),n.d(r,"difference",(function(){return ln})),n.d(r,"unzip",(function(){return fn})),n.d(r,"transpose",(function(){return fn})),n.d(r,"zip",(function(){return hn})),n.d(r,"object",(function(){return gn})),n.d(r,"range",(function(){return mn})),n.d(r,"chunk",(function(){return vn})),n.d(r,"mixin",(function(){return yn})),n.d(r,"default",(function(){return xn}));var i=n(5);function o(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;i<n;i++)r[i]=arguments[i+t];switch(t){case 0:return e.call(this,r);case 1:return e.call(this,arguments[0],r);case 2:return e.call(this,arguments[0],arguments[1],r)}var o=Array(t+1);for(i=0;i<t;i++)o[i]=arguments[i];return o[t]=r,e.apply(this,o)}}function a(e){var t=typeof e;return"function"===t||"object"===t&&!!e}function s(e){return null===e}function l(e){return void 0===e}function c(e){return!0===e||!1===e||"[object Boolean]"===i.t.call(e)}function u(e){return!(!e||1!==e.nodeType)}function d(e){var t="[object "+e+"]";return function(e){return i.t.call(e)===t}}var p=d("String"),f=d("Number"),h=d("Date"),g=d("RegExp"),m=d("Error"),v=d("Symbol"),b=d("ArrayBuffer"),y=d("Function"),x=i.p.document&&i.p.document.childNodes;"object"!=typeof Int8Array&&"function"!=typeof x&&(y=function(e){return"function"==typeof e||!1});var w=y,k=d("Object"),A=i.s&&k(new DataView(new ArrayBuffer(8))),E="undefined"!=typeof Map&&k(new Map),S=d("DataView");var $=A?function(e){return null!=e&&w(e.getInt8)&&b(e.buffer)}:S,C=i.k||d("Array");function _(e,t){return null!=e&&i.i.call(e,t)}var O=d("Arguments");!function(){O(arguments)||(O=function(e){return _(e,"callee")})}();var T=O;function j(e){return!v(e)&&Object(i.f)(e)&&!isNaN(parseFloat(e))}function P(e){return f(e)&&Object(i.g)(e)}function D(e){return function(){return e}}function R(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=i.b}}function I(e){return function(t){return null==t?void 0:t[e]}}var N=I("byteLength"),M=R(N),z=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var L=i.r?function(e){return i.l?Object(i.l)(e)&&!$(e):M(e)&&z.test(i.t.call(e))}:D(!1),B=I("length");function F(e,t){t=function(e){for(var t={},n=e.length,r=0;r<n;++r)t[e[r]]=!0;return{contains:function(e){return!0===t[e]},push:function(n){return t[n]=!0,e.push(n)}}}(t);var n=i.n.length,r=e.constructor,o=w(r)&&r.prototype||i.c,a="constructor";for(_(e,a)&&!t.contains(a)&&t.push(a);n--;)(a=i.n[n])in e&&e[a]!==o[a]&&!t.contains(a)&&t.push(a)}function q(e){if(!a(e))return[];if(i.m)return Object(i.m)(e);var t=[];for(var n in e)_(e,n)&&t.push(n);return i.h&&F(e,t),t}function V(e){if(null==e)return!0;var t=B(e);return"number"==typeof t&&(C(e)||p(e)||T(e))?0===t:0===B(q(e))}function U(e,t){var n=q(t),r=n.length;if(null==e)return!r;for(var i=Object(e),o=0;o<r;o++){var a=n[o];if(t[a]!==i[a]||!(a in i))return!1}return!0}function H(e){return e instanceof H?e:this instanceof H?void(this._wrapped=e):new H(e)}function G(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,N(e))}H.VERSION=i.e,H.prototype.value=function(){return this._wrapped},H.prototype.valueOf=H.prototype.toJSON=H.prototype.value,H.prototype.toString=function(){return String(this._wrapped)};function W(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var o=typeof e;return("function"===o||"object"===o||"object"==typeof t)&&function e(t,n,r,o){t instanceof H&&(t=t._wrapped);n instanceof H&&(n=n._wrapped);var a=i.t.call(t);if(a!==i.t.call(n))return!1;if(A&&"[object Object]"==a&&$(t)){if(!$(n))return!1;a="[object DataView]"}switch(a){case"[object RegExp]":case"[object String]":return""+t==""+n;case"[object Number]":return+t!=+t?+n!=+n:0==+t?1/+t==1/n:+t==+n;case"[object Date]":case"[object Boolean]":return+t==+n;case"[object Symbol]":return i.d.valueOf.call(t)===i.d.valueOf.call(n);case"[object ArrayBuffer]":case"[object DataView]":return e(G(t),G(n),r,o)}var s="[object Array]"===a;if(!s&&L(t)){if(N(t)!==N(n))return!1;if(t.buffer===n.buffer&&t.byteOffset===n.byteOffset)return!0;s=!0}if(!s){if("object"!=typeof t||"object"!=typeof n)return!1;var l=t.constructor,c=n.constructor;if(l!==c&&!(w(l)&&l instanceof l&&w(c)&&c instanceof c)&&"constructor"in t&&"constructor"in n)return!1}o=o||[];var u=(r=r||[]).length;for(;u--;)if(r[u]===t)return o[u]===n;if(r.push(t),o.push(n),s){if((u=t.length)!==n.length)return!1;for(;u--;)if(!W(t[u],n[u],r,o))return!1}else{var d,p=q(t);if(u=p.length,q(n).length!==u)return!1;for(;u--;)if(d=p[u],!_(n,d)||!W(t[d],n[d],r,o))return!1}return r.pop(),o.pop(),!0}(e,t,n,r)}function Y(e,t){return W(e,t)}function X(e){if(!a(e))return[];var t=[];for(var n in e)t.push(n);return i.h&&F(e,t),t}function Z(e){var t=B(e);return function(n){if(null==n)return!1;var r=X(n);if(B(r))return!1;for(var i=0;i<t;i++)if(!w(n[e[i]]))return!1;return e!==te||!w(n[Q])}}var Q="forEach",J=["clear","delete"],K=["get","has","set"],ee=J.concat(Q,K),te=J.concat(K),ne=["add"].concat(J,Q,"has"),re=E?Z(ee):d("Map"),ie=E?Z(te):d("WeakMap"),oe=E?Z(ne):d("Set"),ae=d("WeakSet");function se(e){for(var t=q(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=e[t[i]];return r}function le(e){for(var t=q(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=[t[i],e[t[i]]];return r}function ce(e){for(var t={},n=q(e),r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t}function ue(e){var t=[];for(var n in e)w(e[n])&&t.push(n);return t.sort()}function de(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;i<r;i++)for(var o=arguments[i],a=e(o),s=a.length,l=0;l<s;l++){var c=a[l];t&&void 0!==n[c]||(n[c]=o[c])}return n}}var pe=de(X),fe=de(q),he=de(X,!0);function ge(e){if(!a(e))return{};if(i.j)return Object(i.j)(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}function me(e,t){var n=ge(e);return t&&fe(n,t),n}function ve(e){return a(e)?C(e)?e.slice():pe({},e):e}function be(e,t){return t(e),e}function ye(e){return C(e)?e:[e]}function xe(e){return H.toPath(e)}function we(e,t){for(var n=t.length,r=0;r<n;r++){if(null==e)return;e=e[t[r]]}return n?e:void 0}function ke(e,t,n){var r=we(e,xe(t));return l(r)?n:r}function Ae(e,t){for(var n=(t=xe(t)).length,r=0;r<n;r++){var i=t[r];if(!_(e,i))return!1;e=e[i]}return!!n}function Ee(e){return e}function Se(e){return e=fe({},e),function(t){return U(t,e)}}function $e(e){return e=xe(e),function(t){return we(t,e)}}function Ce(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}}function _e(e,t,n){return null==e?Ee:w(e)?Ce(e,t,n):a(e)&&!C(e)?Se(e):$e(e)}function Oe(e,t){return _e(e,t,1/0)}function Te(e,t,n){return H.iteratee!==Oe?H.iteratee(e,t):_e(e,t,n)}function je(e,t,n){t=Te(t,n);for(var r=q(e),i=r.length,o={},a=0;a<i;a++){var s=r[a];o[s]=t(e[s],s,e)}return o}function Pe(){}function De(e){return null==e?Pe:function(t){return ke(e,t)}}function Re(e,t,n){var r=Array(Math.max(0,e));t=Ce(t,n,1);for(var i=0;i<e;i++)r[i]=t(i);return r}function Ie(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}H.toPath=ye,H.iteratee=Oe;var Ne=Date.now||function(){return(new Date).getTime()};function Me(e){var t=function(t){return e[t]},n="(?:"+q(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(i,t):e}}var ze={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Le=Me(ze),Be=Me(ce(ze)),Fe=H.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},qe=/(.)^/,Ve={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Ue=/\\|'|\r|\n|\u2028|\u2029/g;function He(e){return"\\"+Ve[e]}var Ge=/^\s*(\w|\$)+\s*$/;function We(e,t,n){!t&&n&&(t=n),t=he({},t,H.templateSettings);var r=RegExp([(t.escape||qe).source,(t.interpolate||qe).source,(t.evaluate||qe).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(r,(function(t,n,r,a,s){return o+=e.slice(i,s).replace(Ue,He),i=s+t.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),t})),o+="';\n";var a,s=t.variable;if(s){if(!Ge.test(s))throw new Error("variable is not a bare identifier: "+s)}else o="with(obj||{}){\n"+o+"}\n",s="obj";o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{a=new Function(s,"_",o)}catch(e){throw e.source=o,e}var l=function(e){return a.call(this,e,H)};return l.source="function("+s+"){\n"+o+"}",l}function Ye(e,t,n){var r=(t=xe(t)).length;if(!r)return w(n)?n.call(e):n;for(var i=0;i<r;i++){var o=null==e?void 0:e[t[i]];void 0===o&&(o=n,i=r),e=w(o)?o.call(e):o}return e}var Xe=0;function Ze(e){var t=++Xe+"";return e?e+t:t}function Qe(e){var t=H(e);return t._chain=!0,t}function Je(e,t,n,r,i){if(!(r instanceof t))return e.apply(n,i);var o=ge(e.prototype),s=e.apply(o,i);return a(s)?s:o}var Ke=o((function(e,t){var n=Ke.placeholder,r=function(){for(var i=0,o=t.length,a=Array(o),s=0;s<o;s++)a[s]=t[s]===n?arguments[i++]:t[s];for(;i<arguments.length;)a.push(arguments[i++]);return Je(e,r,this,this,a)};return r}));Ke.placeholder=H;var et=Ke,tt=o((function(e,t,n){if(!w(e))throw new TypeError("Bind must be called on a function");var r=o((function(i){return Je(e,r,t,this,n.concat(i))}));return r})),nt=R(B);function rt(e,t,n,r){if(r=r||[],t||0===t){if(t<=0)return r.concat(e)}else t=1/0;for(var i=r.length,o=0,a=B(e);o<a;o++){var s=e[o];if(nt(s)&&(C(s)||T(s)))if(t>1)rt(s,t-1,n,r),i=r.length;else for(var l=0,c=s.length;l<c;)r[i++]=s[l++];else n||(r[i++]=s)}return r}var it=o((function(e,t){var n=(t=rt(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=tt(e[r],e)}return e}));function ot(e,t){var n=function(r){var i=n.cache,o=""+(t?t.apply(this,arguments):r);return _(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return n.cache={},n}var at=o((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),st=et(at,H,1);function lt(e,t,n){var r,i,o,a,s=0;n||(n={});var l=function(){s=!1===n.leading?0:Ne(),r=null,a=e.apply(i,o),r||(i=o=null)},c=function(){var c=Ne();s||!1!==n.leading||(s=c);var u=t-(c-s);return i=this,o=arguments,u<=0||u>t?(r&&(clearTimeout(r),r=null),s=c,a=e.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),a};return c.cancel=function(){clearTimeout(r),s=0,r=i=o=null},c}function ct(e,t,n){var r,i,a,s,l,c=function(){var o=Ne()-i;t>o?r=setTimeout(c,t-o):(r=null,n||(s=e.apply(l,a)),r||(a=l=null))},u=o((function(o){return l=this,a=o,i=Ne(),r||(r=setTimeout(c,t),n&&(s=e.apply(l,a))),s}));return u.cancel=function(){clearTimeout(r),r=a=l=null},u}function ut(e,t){return et(t,e)}function dt(e){return function(){return!e.apply(this,arguments)}}function pt(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function ft(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function ht(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var gt=et(ht,2);function mt(e,t,n){t=Te(t,n);for(var r,i=q(e),o=0,a=i.length;o<a;o++)if(t(e[r=i[o]],r,e))return r}function vt(e){return function(t,n,r){n=Te(n,r);for(var i=B(t),o=e>0?0:i-1;o>=0&&o<i;o+=e)if(n(t[o],o,t))return o;return-1}}var bt=vt(1),yt=vt(-1);function xt(e,t,n,r){for(var i=(n=Te(n,r,1))(t),o=0,a=B(e);o<a;){var s=Math.floor((o+a)/2);n(e[s])<i?o=s+1:a=s}return o}function wt(e,t,n){return function(r,o,a){var s=0,l=B(r);if("number"==typeof a)e>0?s=a>=0?a:Math.max(a+l,s):l=a>=0?Math.min(a+1,l):a+l+1;else if(n&&a&&l)return r[a=n(r,o)]===o?a:-1;if(o!=o)return(a=t(i.q.call(r,s,l),P))>=0?a+s:-1;for(a=e>0?s:l-1;a>=0&&a<l;a+=e)if(r[a]===o)return a;return-1}}var kt=wt(1,bt,xt),At=wt(-1,yt);function Et(e,t,n){var r=(nt(e)?bt:mt)(e,t,n);if(void 0!==r&&-1!==r)return e[r]}function St(e,t){return Et(e,Se(t))}function $t(e,t,n){var r,i;if(t=Ce(t,n),nt(e))for(r=0,i=e.length;r<i;r++)t(e[r],r,e);else{var o=q(e);for(r=0,i=o.length;r<i;r++)t(e[o[r]],o[r],e)}return e}function Ct(e,t,n){t=Te(t,n);for(var r=!nt(e)&&q(e),i=(r||e).length,o=Array(i),a=0;a<i;a++){var s=r?r[a]:a;o[a]=t(e[s],s,e)}return o}function _t(e){var t=function(t,n,r,i){var o=!nt(t)&&q(t),a=(o||t).length,s=e>0?0:a-1;for(i||(r=t[o?o[s]:s],s+=e);s>=0&&s<a;s+=e){var l=o?o[s]:s;r=n(r,t[l],l,t)}return r};return function(e,n,r,i){var o=arguments.length>=3;return t(e,Ce(n,i,4),r,o)}}var Ot=_t(1),Tt=_t(-1);function jt(e,t,n){var r=[];return t=Te(t,n),$t(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}function Pt(e,t,n){return jt(e,dt(Te(t)),n)}function Dt(e,t,n){t=Te(t,n);for(var r=!nt(e)&&q(e),i=(r||e).length,o=0;o<i;o++){var a=r?r[o]:o;if(!t(e[a],a,e))return!1}return!0}function Rt(e,t,n){t=Te(t,n);for(var r=!nt(e)&&q(e),i=(r||e).length,o=0;o<i;o++){var a=r?r[o]:o;if(t(e[a],a,e))return!0}return!1}function It(e,t,n,r){return nt(e)||(e=se(e)),("number"!=typeof n||r)&&(n=0),kt(e,t,n)>=0}var Nt=o((function(e,t,n){var r,i;return w(t)?i=t:(t=xe(t),r=t.slice(0,-1),t=t[t.length-1]),Ct(e,(function(e){var o=i;if(!o){if(r&&r.length&&(e=we(e,r)),null==e)return;o=e[t]}return null==o?o:o.apply(e,n)}))}));function Mt(e,t){return Ct(e,$e(t))}function zt(e,t){return jt(e,Se(t))}function Lt(e,t,n){var r,i,o=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=nt(e)?e:se(e)).length;s<l;s++)null!=(r=e[s])&&r>o&&(o=r);else t=Te(t,n),$t(e,(function(e,n,r){((i=t(e,n,r))>a||i===-1/0&&o===-1/0)&&(o=e,a=i)}));return o}function Bt(e,t,n){var r,i,o=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=nt(e)?e:se(e)).length;s<l;s++)null!=(r=e[s])&&r<o&&(o=r);else t=Te(t,n),$t(e,(function(e,n,r){((i=t(e,n,r))<a||i===1/0&&o===1/0)&&(o=e,a=i)}));return o}var Ft=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qt(e){return e?C(e)?i.q.call(e):p(e)?e.match(Ft):nt(e)?Ct(e,Ee):se(e):[]}function Vt(e,t,n){if(null==t||n)return nt(e)||(e=se(e)),e[Ie(e.length-1)];var r=qt(e),i=B(r);t=Math.max(Math.min(t,i),0);for(var o=i-1,a=0;a<t;a++){var s=Ie(a,o),l=r[a];r[a]=r[s],r[s]=l}return r.slice(0,t)}function Ut(e){return Vt(e,1/0)}function Ht(e,t,n){var r=0;return t=Te(t,n),Mt(Ct(e,(function(e,n,i){return{value:e,index:r++,criteria:t(e,n,i)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(n<r||void 0===r)return-1}return e.index-t.index})),"value")}function Gt(e,t){return function(n,r,i){var o=t?[[],[]]:{};return r=Te(r,i),$t(n,(function(t,i){var a=r(t,i,n);e(o,t,a)})),o}}var Wt=Gt((function(e,t,n){_(e,n)?e[n].push(t):e[n]=[t]})),Yt=Gt((function(e,t,n){e[n]=t})),Xt=Gt((function(e,t,n){_(e,n)?e[n]++:e[n]=1})),Zt=Gt((function(e,t,n){e[n?0:1].push(t)}),!0);function Qt(e){return null==e?0:nt(e)?e.length:q(e).length}function Jt(e,t,n){return t in n}var Kt=o((function(e,t){var n={},r=t[0];if(null==e)return n;w(r)?(t.length>1&&(r=Ce(r,t[1])),t=X(e)):(r=Jt,t=rt(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i<o;i++){var a=t[i],s=e[a];r(s,a,e)&&(n[a]=s)}return n})),en=o((function(e,t){var n,r=t[0];return w(r)?(r=dt(r),t.length>1&&(n=t[1])):(t=Ct(rt(t,!1,!1),String),r=function(e,n){return!It(t,n)}),Kt(e,r,n)}));function tn(e,t,n){return i.q.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function nn(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:tn(e,e.length-t)}function rn(e,t,n){return i.q.call(e,null==t||n?1:t)}function on(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:rn(e,Math.max(0,e.length-t))}function an(e){return jt(e,Boolean)}function sn(e,t){return rt(e,t,!1)}var ln=o((function(e,t){return t=rt(t,!0,!0),jt(e,(function(e){return!It(t,e)}))})),cn=o((function(e,t){return ln(e,t)}));function un(e,t,n,r){c(t)||(r=n,n=t,t=!1),null!=n&&(n=Te(n,r));for(var i=[],o=[],a=0,s=B(e);a<s;a++){var l=e[a],u=n?n(l,a,e):l;t&&!n?(a&&o===u||i.push(l),o=u):n?It(o,u)||(o.push(u),i.push(l)):It(i,l)||i.push(l)}return i}var dn=o((function(e){return un(rt(e,!0,!0))}));function pn(e){for(var t=[],n=arguments.length,r=0,i=B(e);r<i;r++){var o=e[r];if(!It(t,o)){var a;for(a=1;a<n&&It(arguments[a],o);a++);a===n&&t.push(o)}}return t}function fn(e){for(var t=e&&Lt(e,B).length||0,n=Array(t),r=0;r<t;r++)n[r]=Mt(e,r);return n}var hn=o(fn);function gn(e,t){for(var n={},r=0,i=B(e);r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n}function mn(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var r=Math.max(Math.ceil((t-e)/n),0),i=Array(r),o=0;o<r;o++,e+=n)i[o]=e;return i}function vn(e,t){if(null==t||t<1)return[];for(var n=[],r=0,o=e.length;r<o;)n.push(i.q.call(e,r,r+=t));return n}function bn(e,t){return e._chain?H(t).chain():t}function yn(e){return $t(ue(e),(function(t){var n=H[t]=e[t];H.prototype[t]=function(){var e=[this._wrapped];return i.o.apply(e,arguments),bn(this,n.apply(H,e))}})),H}$t(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=i.a[e];H.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),bn(this,n)}})),$t(["concat","join","slice"],(function(e){var t=i.a[e];H.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),bn(this,e)}}));var xn=H,wn=yn(r);wn._=wn;var kn=wn},function(e,t,n){var r;try{r={clone:n(248),constant:n(126),each:n(167),filter:n(170),has:n(181),isArray:n(13),isEmpty:n(324),isFunction:n(64),isUndefined:n(182),keys:n(41),map:n(183),reduce:n(185),size:n(327),transform:n(333),union:n(334),values:n(190)}}catch(e){}r||(r=window._),e.exports=r},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(1),i=n(7),o=n(4),a=function(){function e(e,t,n,r){this._stateRegistry=e,this._identifier=t,this._identifier=t,this._params=Object(o.C)({},n||{}),this._options=Object(o.C)({},r||{}),this._definition=e.matcher.find(t,this._options.relative)}return e.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},e.prototype.identifier=function(){return this._identifier},e.prototype.params=function(){return this._params},e.prototype.$state=function(){return this._definition},e.prototype.state=function(){return this._definition&&this._definition.self},e.prototype.options=function(){return this._options},e.prototype.exists=function(){return!(!this._definition||!this._definition.self)},e.prototype.valid=function(){return!this.error()},e.prototype.error=function(){var e=this.options().relative;if(!this._definition&&e){var t=e.name?e.name:e;return"Could not resolve '"+this.name()+"' from state '"+t+"'"}return this._definition?this._definition.self?void 0:"State '"+this.name()+"' has an invalid definition":"No such state '"+this.name()+"'"},e.prototype.toString=function(){return"'"+this.name()+"'"+Object(i.m)(this.params())},e.prototype.withState=function(t){return new e(this._stateRegistry,t,this._params,this._options)},e.prototype.withParams=function(t,n){void 0===n&&(n=!1);var r=n?t:Object(o.C)({},this._params,t);return new e(this._stateRegistry,this._identifier,r,this._options)},e.prototype.withOptions=function(t,n){void 0===n&&(n=!1);var r=n?t:Object(o.C)({},this._options,t);return new e(this._stateRegistry,this._identifier,this._params,r)},e.isDef=function(e){return e&&e.state&&(Object(r.l)(e.state)||Object(r.i)(e.state)&&Object(r.l)(e.state.name))},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return g})),n.d(t,"b",(function(){return m}));var r=n(0),i=n(3),o=n(10),a=n(6),s=n(69),l=n(15),c=n(18),u=n(7),d=n(4),p=s.a.when,f=[p.EAGER,p.LAZY],h=[p.EAGER],g="Native Injector",m=function(){function e(e){this._path=e}return e.prototype.getTokens=function(){return this._path.reduce((function(e,t){return e.concat(t.resolvables.map((function(e){return e.token})))}),[]).reduce(r.R,[])},e.prototype.getResolvable=function(e){var t=this._path.map((function(e){return e.resolvables})).reduce(r.T,[]).filter((function(t){return t.token===e}));return Object(r.P)(t)},e.prototype.getPolicy=function(e){var t=this.findNode(e);return e.getPolicy(t.state)},e.prototype.subContext=function(t){return new e(c.a.subPath(this._path,(function(e){return e.state===t})))},e.prototype.addResolvables=function(e,t){var n=Object(r.t)(this._path,Object(i.o)("state",t)),o=e.map((function(e){return e.token}));n.resolvables=n.resolvables.filter((function(e){return-1===o.indexOf(e.token)})).concat(e)},e.prototype.resolvePath=function(e,t){var n=this;void 0===e&&(e="LAZY");var l=(Object(r.z)(f,e)?e:"LAZY")===s.a.when.EAGER?h:f;o.c.traceResolvePath(this._path,e,t);var c=function(e,t){return function(i){return Object(r.z)(e,n.getPolicy(i)[t])}},u=this._path.reduce((function(e,r){var o=r.resolvables.filter(c(l,"when")),a=o.filter(c(["NOWAIT"],"async")),s=o.filter(Object(i.i)(c(["NOWAIT"],"async"))),u=n.subContext(r.state),d=function(e){return e.get(u,t).then((function(t){return{token:e.token,value:t}}))};return a.forEach(d),e.concat(s.map(d))}),[]);return a.b.$q.all(u)},e.prototype.injector=function(){return this._injector||(this._injector=new v(this))},e.prototype.findNode=function(e){return Object(r.t)(this._path,(function(t){return Object(r.z)(t.resolvables,e)}))},e.prototype.getDependencies=function(e){var t=this,n=this.findNode(e),i=(c.a.subPath(this._path,(function(e){return e===n}))||this._path).reduce((function(e,t){return e.concat(t.resolvables)}),[]).filter((function(t){return t!==e}));return e.deps.map((function(e){var n=i.filter((function(t){return t.token===e}));if(n.length)return Object(r.P)(n);var o=t.injector().getNative(e);if(Object(d.db)(o))throw new Error("Could not find Dependency Injection token: "+Object(u.m)(e));return new l.a(e,(function(){return o}),[],o)}))},e}(),v=function(){function e(e){this.context=e,this.native=this.get(g)||a.b.$injector}return e.prototype.get=function(e){var t=this.context.getResolvable(e);if(t){if("NOWAIT"===this.context.getPolicy(t).async)return t.get(this.context);if(!t.resolved)throw new Error("Resolvable async .get() not complete:"+Object(u.m)(t.token));return t.data}return this.getNative(e)},e.prototype.getAsync=function(e){var t=this.context.getResolvable(e);return t?t.get(this.context):a.b.$q.when(this.native.get(e))},e.prototype.getNative=function(e){return this.native&&this.native.get(e)},e}()},function(e,t,n){"use strict";n.r(t);var r=n(134);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(16);n.d(t,"DefType",(function(){return o.a})),n.d(t,"Param",(function(){return o.b}));var a=n(135);n.d(t,"ParamTypes",(function(){return a.a}));var s=n(92);n.d(t,"StateParams",(function(){return s.a}));var l=n(51);n.d(t,"ParamType",(function(){return l.a}))},function(e,t,n){"use strict";n.d(t,"c",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"e",(function(){return a})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l}));var r=n(4),i=function(e,t){var n=t[0],i=t[1];return e.hasOwnProperty(n)?Object(r.R)(e[n])?e[n].push(i):e[n]=[e[n],i]:e[n]=i,e},o=function(e){return e.split("&").filter(r.M).map(r.Fb).reduce(i,{})};function a(e){var t=function(e){return e||""},n=Object(r.Gb)(e).map(t),i=n[0],o=n[1],a=Object(r.Ib)(i).map(t);return{path:a[0],search:a[1],hash:o,url:e}}var s=function(e){var t=e.path(),n=e.search(),i=e.hash(),o=Object.keys(n).map((function(e){var t=n[e];return(Object(r.R)(t)?t:[t]).map((function(t){return e+"="+t}))})).reduce(r.Rb,[]).join("&");return t+(o?"?"+o:"")+(i?"#"+i:"")};function l(e,t,n,r){return function(i){var o=i.locationService=new n(i),a=i.locationConfig=new r(i,t);return{name:e,service:o,configuration:a,dispose:function(e){e.dispose(o),e.dispose(a)}}}}},function(e,t,n){var r;try{r=n(148)}catch(e){}r||(r=window.graphlib),e.exports=r},function(e,t,n){var r=n(150),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},function(e,t,n){"use strict";n.r(t),n.d(t,"getReferences",(function(){return i})),n.d(t,"getParents",(function(){return o})),n.d(t,"getMacroReferences",(function(){return a})),n.d(t,"getMacroParents",(function(){return s}));const r=n(21);function i(e,t){let n=r.filter(e.nodes,(function(e){return!!(e.depends_on&&e.depends_on.nodes&&e.depends_on.nodes.length&&r.contains(e.depends_on.nodes,t.unique_id))}));return r.groupBy(n,"resource_type")}function o(e,t){let n=r.filter(e.nodes,(function(e){return!!(t.depends_on&&t.depends_on.nodes&&t.depends_on.nodes.length&&r.contains(t.depends_on.nodes,e.unique_id))})),i=r.filter(e.macros,(function(e){return!!(t.depends_on&&t.depends_on.macros&&t.depends_on.macros.length&&r.contains(t.depends_on.macros,e.unique_id))}));return r.groupBy(n.concat(i),"resource_type")}function a(e,t){let n=r.filter(e.nodes,(function(e){return!!(e.depends_on&&e.depends_on.macros&&e.depends_on.macros.length&&r.contains(e.depends_on.macros,t.unique_id))})),i=r.filter(e.macros,(function(e){return!!(e.depends_on&&e.depends_on.macros&&e.depends_on.macros.length&&r.contains(e.depends_on.macros,t.unique_id))}));return r.groupBy(n.concat(i),"resource_type")}function s(e,t){let n=r.filter(e.macros,(function(e){return!!(t.depends_on&&t.depends_on.macros&&t.depends_on.macros.length&&r.contains(t.depends_on.macros,e.unique_id))}));return r.groupBy(n,"resource_type")}},function(e,t,n){var r=n(447);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var r=n(0),i=n(3),o=n(1),a=n(16),s=n(7),l=n(4);function c(e,t){var n=["",""],r=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return r;switch(t.squash){case!1:n=["(",")"+(t.isOptional?"?":"")];break;case!0:r=r.replace(/\/$/,""),n=["(?:/(",")|/)?"];break;default:n=["("+t.squash+"|",")?"]}return r+n[0]+t.type.pattern.source+n[1]}var u=Object(s.k)("/"),d={state:{params:{}},strict:!0,caseInsensitive:!0,decodeParams:!0},p=function(){function e(t,n,o,a){var s=this;this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.config=a=Object(l.y)(a,d),this.pattern=t;for(var u,p,f,h=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,g=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,m=[],v=0,b=function(n){if(!e.nameValidator.test(n))throw new Error("Invalid parameter name '"+n+"' in pattern '"+t+"'");if(Object(r.t)(s._params,Object(i.o)("id",n)))throw new Error("Duplicate parameter name '"+n+"' in pattern '"+t+"'")},y=function(e,i){var o,a=e[2]||e[3],l=i?e[4]:e[4]||("*"===e[1]?"[\\s\\S]*":null);return{id:a,regexp:l,segment:t.substring(v,e.index),type:l?n.type(l)||(o=l,Object(r.A)(n.type(i?"query":"path"),{pattern:new RegExp(o,s.config.caseInsensitive?"i":void 0)})):null}};(u=h.exec(t))&&!((p=y(u,!1)).segment.indexOf("?")>=0);)b(p.id),this._params.push(o.fromPath(p.id,p.type,a.state)),this._segments.push(p.segment),m.push([p.segment,Object(r.P)(this._params)]),v=h.lastIndex;var x=(f=t.substring(v)).indexOf("?");if(x>=0){var w=f.substring(x);if(f=f.substring(0,x),w.length>0)for(v=0;u=g.exec(w);)b((p=y(u,!0)).id),this._params.push(o.fromSearch(p.id,p.type,a.state)),v=h.lastIndex}this._segments.push(f),this._compiled=m.map((function(e){return c.apply(null,e)})).concat(c(f))}return e.encodeDashes=function(e){return encodeURIComponent(e).replace(/-/g,(function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()}))},e.pathSegmentsAndParams=function(e){var t=e._segments,n=e._params.filter((function(e){return e.location===a.a.PATH}));return Object(r.i)(t,n.concat(void 0)).reduce(r.T,[]).filter((function(e){return""!==e&&Object(o.c)(e)}))},e.queryParams=function(e){return e._params.filter((function(e){return e.location===a.a.SEARCH}))},e.compare=function(t,n){var i=function(t){return t._cache.weights=t._cache.weights||function(t){return t._cache.segments=t._cache.segments||t._cache.path.map(e.pathSegmentsAndParams).reduce(r.T,[]).reduce(s.e,[]).map((function(e){return Object(o.l)(e)?u(e):e})).reduce(r.T,[])}(t).map((function(e){return"/"===e?1:Object(o.l)(e)?2:e instanceof a.b?3:void 0}))},l=i(t),c=i(n);!function(e,t,n){for(var r=Math.max(e.length,t.length);e.length<r;)e.push(n);for(;t.length<r;)t.push(n)}(l,c,0);var d,p,f=Object(r.i)(l,c);for(p=0;p<f.length;p++)if(0!==(d=f[p][0]-f[p][1]))return d;return 0},e.prototype.append=function(e){return this._children.push(e),e._cache={path:this._cache.path.concat(e),parent:this,pattern:null},e},e.prototype.isRoot=function(){return this._cache.path[0]===this},e.prototype.toString=function(){return this.pattern},e.prototype._getDecodedParamValue=function(e,t){return Object(o.c)(e)&&(this.config.decodeParams&&!t.type.raw&&(e=Object(o.a)(e)?e.map((function(e){return decodeURIComponent(e)})):decodeURIComponent(e)),e=t.type.decode(e)),t.value(e)},e.prototype.exec=function(e,t,n,o){var a=this;void 0===t&&(t={}),void 0===o&&(o={});var s,l,c,u=(s=this._cache,l="pattern",c=function(){return new RegExp(["^",Object(r.S)(a._cache.path.map(Object(i.n)("_compiled"))).join(""),!1===a.config.strict?"/?":"","$"].join(""),a.config.caseInsensitive?"i":void 0)},s[l]=s[l]||c()).exec(e);if(!u)return null;var d,p,f,h=this.parameters(),g=h.filter((function(e){return!e.isSearch()})),m=h.filter((function(e){return e.isSearch()})),v=this._cache.path.map((function(e){return e._segments.length-1})).reduce((function(e,t){return e+t})),b={};if(v!==u.length-1)throw new Error("Unbalanced capture group in route '"+this.pattern+"'");for(var y=0;y<v;y++){for(var x=g[y],w=u[y+1],k=0;k<x.replace.length;k++)x.replace[k].from===w&&(w=x.replace[k].to);w&&!0===x.array&&(d=void 0,p=void 0,f=void 0,p=(d=function(e){return e.split("").reverse().join("")})(w).split(/-(?!\\)/),f=Object(r.B)(p,d),w=Object(r.B)(f,(function(e){return e.replace(/\\-/g,"-")})).reverse()),b[x.id]=this._getDecodedParamValue(w,x)}return m.forEach((function(e){for(var n=t[e.id],r=0;r<e.replace.length;r++)e.replace[r].from===n&&(n=e.replace[r].to);b[e.id]=a._getDecodedParamValue(n,e)})),n&&(b["#"]=n),b},e.prototype.parameters=function(e){return void 0===e&&(e={}),!1===e.inherit?this._params:Object(r.S)(this._cache.path.map((function(e){return e._params})))},e.prototype.parameter=function(e,t){var n=this;void 0===t&&(t={});var r=this._cache.parent;return function(){for(var t=0,r=n._params;t<r.length;t++){var i=r[t];if(i.id===e)return i}}()||!1!==t.inherit&&r&&r.parameter(e,t)||null},e.prototype.validates=function(e){return e=e||{},this.parameters().filter((function(t){return e.hasOwnProperty(t.id)})).map((function(t){return n=t,r=e[t.id],!n||n.validates(r);var n,r})).reduce(r.e,!0)},e.prototype.format=function(t){void 0===t&&(t={});var n=this._cache.path,i=n.map(e.pathSegmentsAndParams).reduce(r.T,[]).map((function(e){return Object(o.l)(e)?e:s(e)})),a=n.map(e.queryParams).reduce(r.T,[]).map(s);if(i.concat(a).filter((function(e){return!1===e.isValid})).length)return null;function s(e){var n=e.value(t[e.id]),r=e.validates(n),i=e.isDefaultValue(n),o=!!i&&e.squash,a=e.type.encode(n);return{param:e,value:n,isValid:r,isDefaultValue:i,squash:o,encoded:a}}var l=i.reduce((function(t,n){if(Object(o.l)(n))return t+n;var i=n.squash,a=n.encoded,s=n.param;return!0===i?t.match(/\/$/)?t.slice(0,-1):t:Object(o.l)(i)?t+i:!1!==i||null==a?t:Object(o.a)(a)?t+Object(r.B)(a,e.encodeDashes).join("-"):s.raw?t+a:t+encodeURIComponent(a)}),""),c=a.map((function(e){var t=e.param,n=e.squash,i=e.encoded,a=e.isDefaultValue;if(!(null==i||a&&!1!==n)&&(Object(o.a)(i)||(i=[i]),0!==i.length))return t.raw||(i=Object(r.B)(i,encodeURIComponent)),i.map((function(e){return t.id+"="+e}))})).filter(r.y).reduce(r.T,[]).join("&");return l+(c?"?"+c:"")+(t["#"]?"#"+t["#"]:"")},e.nameValidator=/^\w+([-.]+\w+)*(?:\[\])?$/,e}()},function(e,t,n){var r; +<!doctype html><html dir="ltr" lang="en-US" ng-app="dbt" class="no-flash video supports no-touchevents formvalidation webgl no-cssgridlegacy cssgrid cssfilters objectfit object-fit click landscape videoautoplay loaded"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,initial-scale=1"/><title>dbt Docs</title><meta name="description" content="dbt Docs"/><link rel="canonical" href="/overview/"/><link rel="shortcut icon" href="${require('./assets/favicons/favicon.ico')}"/><meta name="msapplication-TileColor" content="#2b5797"><meta name="theme-color" content="#ffffff"><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta property="og:site_name" content="dbt Docs"/><meta property="og:title" content="dbt Docs"/><meta property="og:description" content="documentation for dbt"/><meta name="twitter:title" content="dbt Docs"/><meta name="twitter:description" content="documentation for dbt"/></head><body><div style="display:none"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>icons</title><g id="icn"><rect width="16" height="16" fill="none"/></g><g id="icn-menu"><path d="M14.5,8a.5.5,0,0,1-.5.5H2a.5.5,0,0,1,0-1H14A.5.5,0,0,1,14.5,8ZM2,3H14a.5.5,0,0,0,0-1H2A.5.5,0,0,0,2,3ZM14,13H2a.5.5,0,0,0,0,1H14a.5.5,0,0,0,0-1Z" transform="translate(0 0)"/></g><g id="icn-dbt"><path d="M12.6,9.265l0,0L10.9,6.325a3.31,3.31,0,0,0-.529-.7h0a3.264,3.264,0,0,0-3.184-.867,4.022,4.022,0,0,1,4.194.938,3.977,3.977,0,0,1,.635.833l.38.657a2.488,2.488,0,0,1,.2-.465l2.226-3.851a1.2,1.2,0,0,0-.2-1.5,1.2,1.2,0,0,0-1.5-.2h0L9.27,3.4a2.539,2.539,0,0,1-2.54,0L2.877,1.178A1.253,1.253,0,0,0,2.247,1a1.247,1.247,0,0,0-.871.375,1.2,1.2,0,0,0-.2,1.5L3.4,6.726a2.542,2.542,0,0,1,0,2.539l-2.226,3.85a1.2,1.2,0,0,0,.2,1.5,1.2,1.2,0,0,0,1.5.2L6.73,12.588a2.455,2.455,0,0,1,.465-.2l-.657-.379a3.857,3.857,0,0,1-1.462-1.467,4.118,4.118,0,0,1-.288-3.368,3.453,3.453,0,0,0,.33,2.507A3.141,3.141,0,0,0,6.329,10.89l2.94,1.7h0l3.853,2.224a1.243,1.243,0,0,0,1.7-1.7Zm.814-7.353a.478.478,0,1,1,0,.676A.48.48,0,0,1,13.41,1.912ZM2.59,2.588a.478.478,0,1,1,0-.676A.479.479,0,0,1,2.59,2.588Zm0,11.49a.478.478,0,1,1,0-.676A.479.479,0,0,1,2.59,14.078Zm6.827-5.9a1.022,1.022,0,1,0-1.231,1.23,1.433,1.433,0,1,1,1.231-1.23Zm4.67,5.9a.478.478,0,1,1,0-.676A.479.479,0,0,1,14.087,14.078Z" transform="translate(0 0)"/></g><g id="icn-doc-on"><path d="M13.707,4.707,10.293,1.293A1,1,0,0,0,9.586,1H3A1,1,0,0,0,2,2V14a1,1,0,0,0,1,1H13a1,1,0,0,0,1-1V5.414A1,1,0,0,0,13.707,4.707ZM5,4H9V5H5Zm6,8H5V11h6Zm0-2H5V9h6Zm0-2H5V7h6Z" transform="translate(0 0)"/></g><g id="icn-doc"><path d="M9.586,2h0L13,5.414V14H3V2H9.586m0-1H3A1,1,0,0,0,2,2V14a1,1,0,0,0,1,1H13a1,1,0,0,0,1-1V5.414a1,1,0,0,0-.293-.707L10.293,1.293A1,1,0,0,0,9.586,1Z" transform="translate(0 0)"/><rect x="5" y="11" width="6" height="1" fill="#fff"/><polygon points="11 11 5 11 5 12 11 12 11 11 11 11"/><rect x="5" y="9" width="6" height="1" fill="#fff"/><polygon points="11 9 5 9 5 10 11 10 11 9 11 9"/><rect x="5" y="7" width="6" height="1" fill="#fff"/><polygon points="11 7 5 7 5 8 11 8 11 7 11 7"/><rect x="5" y="4" width="4" height="1" fill="#fff"/><polygon points="9 4 5 4 5 5 9 5 9 4 9 4"/></g><g id="icn-down"><path d="M8,10.5a.5.5,0,0,1-.354-.146l-3-3a.5.5,0,0,1,.708-.708L8,9.293l2.646-2.647a.5.5,0,0,1,.708.708l-3,3A.5.5,0,0,1,8,10.5Z" transform="translate(0 0)"/></g><g id="icn-up"><path d="M11,9.5a.5.5,0,0,1-.354-.146L8,6.707,5.354,9.354a.5.5,0,0,1-.708-.708l3-3a.5.5,0,0,1,.708,0l3,3A.5.5,0,0,1,11,9.5Z" transform="translate(0 0)"/></g><g id="icn-left"><path d="M9.5,5a.5.5,0,0,1-.146.354L6.707,8l2.647,2.646a.5.5,0,0,1-.708.708l-3-3a.5.5,0,0,1,0-.708l3-3A.5.5,0,0,1,9.5,5Z" transform="translate(0 0)"/></g><g id="icn-right"><path d="M10.5,8a.5.5,0,0,1-.146.354l-3,3a.5.5,0,0,1-.708-.708L9.293,8,6.646,5.354a.5.5,0,0,1,.708-.708l3,3A.5.5,0,0,1,10.5,8Z" transform="translate(0 0)"/></g><g id="icn-dir"><path d="M14,4H8.414a1,1,0,0,1-.707-.293L6.293,2.293A1,1,0,0,0,5.586,2H2A1,1,0,0,0,1,3V13a1,1,0,0,0,1,1H14a1,1,0,0,0,1-1V5A1,1,0,0,0,14,4ZM2,3H5.586l1,1H2ZM14,13H2V5H14Z" transform="translate(0 0)"/></g><g id="icn-tree"><path d="M14,5V2H11V3H4V2H1V5H4V4H7V14h4v1h3V12H11v1H8V9h3v1h3V7H11V8H8V4h3V5ZM3,4H2V3H3Zm9,9h1v1H12Zm0-5h1V9H12Zm0-5h1V4H12Z" transform="translate(0 0)"/></g><g id="icn-tree-on"><path d="M14,5V2H11V3H4V2H1V5H4V4H7V14h4v1h3V12H11v1H8V9h3v1h3V7H11V8H8V4h3V5Z" transform="translate(0 0)"/></g><g id="icn-dir-on"><path d="M14.878,7H14V5a1,1,0,0,0-1-1H7.414a1,1,0,0,1-.707-.293L5.293,2.293A1,1,0,0,0,4.586,2H1A1,1,0,0,0,0,3V13a1,1,0,0,0,1,1H13.271a1,1,0,0,0,.952-.694l1.607-5A1,1,0,0,0,14.878,7ZM4.586,3,6,4.414A1.986,1.986,0,0,0,7.414,5H13V7H2.979a1,1,0,0,0-.952.694L1,10.889V3Z" transform="translate(0 0)"/></g><g id="icn-db-on"><path d="M8,1C7,1,2,1.121,2,3.5v9C2,14.879,7,15,8,15s6-.121,6-2.5v-9C14,1.121,9,1,8,1Zm5,10.482c0,.828-2.239,1.5-5,1.5s-5-.672-5-1.5V11c1.511.915,4.281.982,5,.982s3.489-.067,5-.982ZM13,8.5c0,.828-2.239,1.5-5,1.5S3,9.328,3,8.5V8.018C4.511,8.933,7.281,9,8,9s3.489-.067,5-.982Zm0-3C13,6.328,10.761,7,8,7S3,6.328,3,5.5V5.018C4.511,5.933,7.281,6,8,6s3.489-.067,5-.982Z" transform="translate(0 0)"/></g><g id="icn-db"><path d="M8,1C7,1,2,1.121,2,3.5v9C2,14.879,7,15,8,15s6-.121,6-2.5v-9C14,1.121,9,1,8,1ZM3,8.018C4.511,8.933,7.281,9,8,9s3.489-.067,5-.982V9.5c0,.828-2.239,1.5-5,1.5s-5-.672-5-1.5ZM8,8C5.239,8,3,7.328,3,6.5V5.018C4.511,5.933,7.281,6,8,6s3.489-.067,5-.982V6.5C13,7.328,10.761,8,8,8ZM8,2c2.761,0,5,.672,5,1.5S10.761,5,8,5,3,4.328,3,3.5,5.239,2,8,2ZM8,14c-2.761,0-5-.672-5-1.5V11.018C4.511,11.933,7.281,12,8,12s3.489-.067,5-.982V12.5C13,13.328,10.761,14,8,14Z" transform="translate(0 0)"/></g><g id="icn-close"><path d="M12.354,11.646a.5.5,0,0,1-.708.708L8,8.707,4.354,12.354a.5.5,0,0,1-.708-.708L7.293,8,3.646,4.354a.5.5,0,0,1,.708-.708L8,7.293l3.646-3.647a.5.5,0,0,1,.708.708L8.707,8Z" transform="translate(0 0)"/></g><g id="icn-search"><path d="M6.5,1A5.5,5.5,0,1,0,12,6.5,5.5,5.5,0,0,0,6.5,1Zm0,10A4.5,4.5,0,1,1,11,6.5,4.505,4.505,0,0,1,6.5,11Zm8.854,4.354a.5.5,0,0,1-.708,0l-3-3a.5.5,0,0,1,.708-.708l3,3A.5.5,0,0,1,15.354,15.354Z" transform="translate(0 0)"/></g><g id="icn-more"><path d="M8,6a2,2,0,1,0,2,2A2,2,0,0,0,8,6ZM8,9A1,1,0,1,1,9,8,1,1,0,0,1,8,9ZM2,6A2,2,0,1,0,4,8,2,2,0,0,0,2,6ZM2,9A1,1,0,1,1,3,8,1,1,0,0,1,2,9ZM14,6a2,2,0,1,0,2,2A2,2,0,0,0,14,6Zm0,3a1,1,0,1,1,1-1A1,1,0,0,1,14,9Z" transform="translate(0 0)"/></g><g id="icn-flow"><path d="M4,3V2H1V5H4V4H7v9a1,1,0,0,0,1,1h5V13H8V9h5V8H8V4h5V3H4ZM3,4H2V3H3Z" transform="translate(0 0)"/><polygon points="13 1.5 13 5.5 15 3.5 13 1.5"/><polygon points="13 6.5 13 10.5 15 8.5 13 6.5"/><polygon points="13 11.5 13 15.5 15 13.5 13 11.5"/></g><g id="icn-expand"><path d="M6,2.5a.5.5,0,0,1-.5.5H3V5.5a.5.5,0,0,1-1,0v-3A.5.5,0,0,1,2.5,2h3A.5.5,0,0,1,6,2.5ZM13.5,2h-3a.5.5,0,0,0,0,1H13V5.5a.5.5,0,0,0,1,0v-3A.5.5,0,0,0,13.5,2Zm0,8a.5.5,0,0,0-.5.5V13H10.5a.5.5,0,0,0,0,1h3a.5.5,0,0,0,.5-.5v-3A.5.5,0,0,0,13.5,10Zm-8,3H3V10.5a.5.5,0,0,0-1,0v3a.5.5,0,0,0,.5.5h3a.5.5,0,0,0,0-1Z" transform="translate(0 0)"/></g><g id="icn-contract"><path d="M6,2.5v3a.5.5,0,0,1-.5.5h-3a.5.5,0,0,1,0-1H5V2.5a.5.5,0,0,1,1,0ZM10.5,6h3a.5.5,0,0,0,0-1H11V2.5a.5.5,0,0,0-1,0v3A.5.5,0,0,0,10.5,6Zm3,4h-3a.5.5,0,0,0-.5.5v3a.5.5,0,0,0,1,0V11h2.5a.5.5,0,0,0,0-1Zm-8,0h-3a.5.5,0,0,0,0,1H5v2.5a.5.5,0,0,0,1,0v-3A.5.5,0,0,0,5.5,10Z" transform="translate(0 0)"/></g><g id="icn-filter"><path d="M14.5,4.5A.5.5,0,0,1,14,5H2A.5.5,0,0,1,2,4H14A.5.5,0,0,1,14.5,4.5ZM12,8H4A.5.5,0,0,0,4,9h8a.5.5,0,0,0,0-1Zm-2,4H6a.5.5,0,0,0,0,1h4a.5.5,0,0,0,0-1Z" transform="translate(0 0)"/></g></svg></div><div ui-view></div><script>!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=207)}([function(e,t,n){"use strict";(function(e){n.d(t,"M",(function(){return s})),n.d(t,"x",(function(){return c})),n.d(t,"Q",(function(){return u})),n.d(t,"w",(function(){return d})),n.d(t,"r",(function(){return p})),n.d(t,"q",(function(){return f})),n.d(t,"y",(function(){return h})),n.d(t,"E",(function(){return g})),n.d(t,"n",(function(){return m})),n.d(t,"A",(function(){return v})),n.d(t,"z",(function(){return b})),n.d(t,"b",(function(){return y})),n.d(t,"L",(function(){return x})),n.d(t,"d",(function(){return w})),n.d(t,"K",(function(){return k})),n.d(t,"c",(function(){return A})),n.d(t,"p",(function(){return E})),n.d(t,"o",(function(){return S})),n.d(t,"D",(function(){return $})),n.d(t,"f",(function(){return C})),n.d(t,"H",(function(){return _})),n.d(t,"F",(function(){return O})),n.d(t,"I",(function(){return T})),n.d(t,"s",(function(){return j})),n.d(t,"t",(function(){return P})),n.d(t,"C",(function(){return D})),n.d(t,"B",(function(){return R})),n.d(t,"U",(function(){return I})),n.d(t,"e",(function(){return N})),n.d(t,"g",(function(){return M})),n.d(t,"T",(function(){return z})),n.d(t,"v",(function(){return L})),n.d(t,"J",(function(){return B})),n.d(t,"R",(function(){return F})),n.d(t,"S",(function(){return q})),n.d(t,"u",(function(){return V})),n.d(t,"l",(function(){return U})),n.d(t,"k",(function(){return H})),n.d(t,"j",(function(){return G})),n.d(t,"G",(function(){return W})),n.d(t,"i",(function(){return Y})),n.d(t,"h",(function(){return X})),n.d(t,"P",(function(){return Z})),n.d(t,"m",(function(){return Q})),n.d(t,"a",(function(){return J})),n.d(t,"N",(function(){return ee})),n.d(t,"O",(function(){return te}));var r=n(1),i=n(3),o=n(6),a=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)r[i]=o[a];return r},s="object"==typeof self&&self.self===self&&self||"object"==typeof e&&e.global===e&&e||void 0,l=s.angular||{},c=l.fromJson||JSON.parse.bind(JSON),u=l.toJson||JSON.stringify.bind(JSON),d=l.forEach||function(e,t,n){if(Object(r.a)(e))return e.forEach(t,n);Object.keys(e).forEach((function(n){return t(e[n],n)}))},p=Object.assign||J,f=l.equals||K;function h(e){return e}function g(){}function m(e,t,n,r,i){void 0===i&&(i=!1);var o=function(t){return e()[t].bind(n())};return(r=r||Object.keys(e())).reduce((function(e,n){var r;return e[n]=i?(r=n,function(){return t[r]=o(r),t[r].apply(null,arguments)}):o(n),e}),t)}var v=function(e,t){return p(Object.create(e),t)},b=Object(i.e)(y);function y(e,t){return-1!==e.indexOf(t)}var x=Object(i.e)(w);function w(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),e}var k=Object(i.e)(A);function A(e,t){return e.push(t),t}var E=function(e){return e.slice().forEach((function(t){"function"==typeof t&&t(),x(e,t)}))};function S(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=p.apply(void 0,a([{}],t.reverse()));return p(r,_(e||{},Object.keys(r)))}var $=function(e,t){return p(e,t)};function C(e,t){var n=[];for(var r in e.path){if(e.path[r]!==t.path[r])break;n.push(e.path[r])}return n}function _(e,t){var n={};for(var r in e)-1!==t.indexOf(r)&&(n[r]=e[r]);return n}function O(e,t){return Object.keys(e).filter(Object(i.i)(b(t))).reduce((function(t,n){return t[n]=e[n],t}),{})}function T(e,t){return R(e,Object(i.n)(t))}function j(e,t){var n=Object(r.a)(e),i=n?[]:{},o=n?function(e){return i.push(e)}:function(e,t){return i[t]=e};return d(e,(function(e,n){t(e,n)&&o(e,n)})),i}function P(e,t){var n;return d(e,(function(e,r){n||t(e,r)&&(n=e)})),n}var D=R;function R(e,t,n){return n=n||(Object(r.a)(e)?[]:{}),d(e,(function(e,r){return n[r]=t(e,r)})),n}var I=function(e){return Object.keys(e).map((function(t){return e[t]}))},N=function(e,t){return e&&t},M=function(e,t){return e||t},z=function(e,t){return e.concat(t)},L=function(e,t){return Object(r.a)(t)?e.concat(t.reduce(L,[])):B(e,t)};function B(e,t){return e.push(t),e}var F=function(e,t){return b(e,t)?e:B(e,t)},q=function(e){return e.reduce(z,[])},V=function(e){return e.reduce(L,[])},U=G,H=G;function G(e,t){return void 0===t&&(t="assert failure"),function(n){var i=e(n);if(!i)throw new Error(Object(r.d)(t)?t(n):t);return i}}var W=function(e){return Object.keys(e).map((function(t){return[t,e[t]]}))};function Y(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(0===e.length)return[];for(var n=e.reduce((function(e,t){return Math.min(t.length,e)}),9007199254740991),r=[],i=function(t){switch(e.length){case 1:r.push([e[0][t]]);break;case 2:r.push([e[0][t],e[1][t]]);break;case 3:r.push([e[0][t],e[1][t],e[2][t]]);break;case 4:r.push([e[0][t],e[1][t],e[2][t],e[3][t]]);break;default:r.push(e.map((function(e){return e[t]})))}},o=0;o<n;o++)i(o);return r}function X(e,t){var n,i;if(Object(r.a)(t)&&(n=t[0],i=t[1]),!Object(r.l)(n))throw new Error("invalid parameters to applyPairs");return e[n]=i,e}function Z(e){return e.length&&e[e.length-1]||void 0}function Q(e,t){return t&&Object.keys(t).forEach((function(e){return delete t[e]})),t||(t={}),p(t,e)}function J(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n)for(var r=Object.keys(n),i=0;i<r.length;i++)e[r[i]]=n[r[i]]}return e}function K(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n=typeof e;if(n!==typeof t||"object"!==n)return!1;var o,a,s=[e,t];if(Object(i.a)(r.a)(s))return a=t,(o=e).length===a.length&&Y(o,a).reduce((function(e,t){return e&&K(t[0],t[1])}),!0);if(Object(i.a)(r.b)(s))return e.getTime()===t.getTime();if(Object(i.a)(r.k)(s))return e.toString()===t.toString();if(Object(i.a)(r.d)(s))return!0;if([r.d,r.a,r.b,r.k].map(i.c).reduce((function(e,t){return e||!!t(s)}),!1))return!1;var l={};for(var c in e){if(!K(e[c],t[c]))return!1;l[c]=!0}for(var c in t)if(!l[c])return!1;return!0}var ee=function(e){return e.catch((function(e){return 0}))&&e},te=function(e){return ee(o.b.$q.reject(e))}}).call(this,n(35))},function(e,t,n){"use strict";n.d(t,"m",(function(){return a})),n.d(t,"c",(function(){return s})),n.d(t,"f",(function(){return l})),n.d(t,"g",(function(){return c})),n.d(t,"d",(function(){return u})),n.d(t,"h",(function(){return d})),n.d(t,"l",(function(){return p})),n.d(t,"i",(function(){return f})),n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return g})),n.d(t,"k",(function(){return m})),n.d(t,"e",(function(){return v})),n.d(t,"j",(function(){return b}));var r=n(3),i=Object.prototype.toString,o=function(e){return function(t){return typeof t===e}},a=o("undefined"),s=Object(r.i)(a),l=function(e){return null===e},c=Object(r.j)(l,a),u=o("function"),d=o("number"),p=o("string"),f=function(e){return null!==e&&"object"==typeof e},h=Array.isArray,g=function(e){return"[object Date]"===i.call(e)},m=function(e){return"[object RegExp]"===i.call(e)};function v(e){if(h(e)&&e.length){var t=e.slice(0,-1),n=e.slice(-1);return!(t.filter(Object(r.i)(p)).length||n.filter(Object(r.i)(u)).length)}return u(e)}var b=Object(r.b)(f,Object(r.m)(Object(r.n)("then"),u))},function(e,t,n){"use strict";n.r(t);var r=n(4);n.d(t,"root",(function(){return r.Bb})),n.d(t,"fromJson",(function(){return r.J})),n.d(t,"toJson",(function(){return r.Mb})),n.d(t,"forEach",(function(){return r.I})),n.d(t,"extend",(function(){return r.C})),n.d(t,"equals",(function(){return r.B})),n.d(t,"identity",(function(){return r.M})),n.d(t,"noop",(function(){return r.lb})),n.d(t,"createProxyFunctions",(function(){return r.w})),n.d(t,"inherit",(function(){return r.O})),n.d(t,"inArray",(function(){return r.N})),n.d(t,"_inArray",(function(){return r.f})),n.d(t,"removeFrom",(function(){return r.Ab})),n.d(t,"_removeFrom",(function(){return r.h})),n.d(t,"pushTo",(function(){return r.zb})),n.d(t,"_pushTo",(function(){return r.g})),n.d(t,"deregAll",(function(){return r.z})),n.d(t,"defaults",(function(){return r.y})),n.d(t,"mergeR",(function(){return r.kb})),n.d(t,"ancestors",(function(){return r.k})),n.d(t,"pick",(function(){return r.tb})),n.d(t,"omit",(function(){return r.nb})),n.d(t,"pluck",(function(){return r.vb})),n.d(t,"filter",(function(){return r.D})),n.d(t,"find",(function(){return r.E})),n.d(t,"mapObj",(function(){return r.ib})),n.d(t,"map",(function(){return r.hb})),n.d(t,"values",(function(){return r.Tb})),n.d(t,"allTrueR",(function(){return r.j})),n.d(t,"anyTrueR",(function(){return r.n})),n.d(t,"unnestR",(function(){return r.Rb})),n.d(t,"flattenR",(function(){return r.G})),n.d(t,"pushR",(function(){return r.yb})),n.d(t,"uniqR",(function(){return r.Pb})),n.d(t,"unnest",(function(){return r.Qb})),n.d(t,"flatten",(function(){return r.F})),n.d(t,"assertPredicate",(function(){return r.s})),n.d(t,"assertMap",(function(){return r.r})),n.d(t,"assertFn",(function(){return r.q})),n.d(t,"pairs",(function(){return r.qb})),n.d(t,"arrayTuples",(function(){return r.p})),n.d(t,"applyPairs",(function(){return r.o})),n.d(t,"tail",(function(){return r.Lb})),n.d(t,"copy",(function(){return r.v})),n.d(t,"_extend",(function(){return r.e})),n.d(t,"silenceUncaughtInPromise",(function(){return r.Db})),n.d(t,"silentRejection",(function(){return r.Eb})),n.d(t,"makeStub",(function(){return r.gb})),n.d(t,"services",(function(){return r.Cb})),n.d(t,"Glob",(function(){return r.b})),n.d(t,"curry",(function(){return r.x})),n.d(t,"compose",(function(){return r.u})),n.d(t,"pipe",(function(){return r.ub})),n.d(t,"prop",(function(){return r.wb})),n.d(t,"propEq",(function(){return r.xb})),n.d(t,"parse",(function(){return r.rb})),n.d(t,"not",(function(){return r.mb})),n.d(t,"and",(function(){return r.l})),n.d(t,"or",(function(){return r.ob})),n.d(t,"all",(function(){return r.i})),n.d(t,"any",(function(){return r.m})),n.d(t,"is",(function(){return r.Q})),n.d(t,"eq",(function(){return r.A})),n.d(t,"val",(function(){return r.Sb})),n.d(t,"invoke",(function(){return r.P})),n.d(t,"pattern",(function(){return r.sb})),n.d(t,"isUndefined",(function(){return r.db})),n.d(t,"isDefined",(function(){return r.T})),n.d(t,"isNull",(function(){return r.W})),n.d(t,"isNullOrUndefined",(function(){return r.X})),n.d(t,"isFunction",(function(){return r.U})),n.d(t,"isNumber",(function(){return r.Y})),n.d(t,"isString",(function(){return r.cb})),n.d(t,"isObject",(function(){return r.Z})),n.d(t,"isArray",(function(){return r.R})),n.d(t,"isDate",(function(){return r.S})),n.d(t,"isRegExp",(function(){return r.bb})),n.d(t,"isInjectable",(function(){return r.V})),n.d(t,"isPromise",(function(){return r.ab})),n.d(t,"Queue",(function(){return r.c})),n.d(t,"maxLength",(function(){return r.jb})),n.d(t,"padString",(function(){return r.pb})),n.d(t,"kebobString",(function(){return r.fb})),n.d(t,"functionToString",(function(){return r.K})),n.d(t,"fnToString",(function(){return r.H})),n.d(t,"stringify",(function(){return r.Jb})),n.d(t,"beforeAfterSubstr",(function(){return r.t})),n.d(t,"hostRegex",(function(){return r.L})),n.d(t,"stripLastPathElement",(function(){return r.Kb})),n.d(t,"splitHash",(function(){return r.Gb})),n.d(t,"splitQuery",(function(){return r.Ib})),n.d(t,"splitEqual",(function(){return r.Fb})),n.d(t,"trimHashVal",(function(){return r.Ob})),n.d(t,"splitOnDelim",(function(){return r.Hb})),n.d(t,"joinNeighborsR",(function(){return r.eb})),n.d(t,"Category",(function(){return r.a})),n.d(t,"Trace",(function(){return r.d})),n.d(t,"trace",(function(){return r.Nb}));var i=n(28);for(var o in i)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return i[e]}))}(o);var a=n(136);n.d(t,"PathNode",(function(){return a.a})),n.d(t,"PathUtils",(function(){return a.b}));var s=n(38);n.d(t,"resolvePolicies",(function(){return s.e})),n.d(t,"defaultResolvePolicy",(function(){return s.d})),n.d(t,"Resolvable",(function(){return s.b})),n.d(t,"NATIVE_INJECTOR_TOKEN",(function(){return s.a})),n.d(t,"ResolveContext",(function(){return s.c}));var l=n(43);for(var o in l)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return l[e]}))}(o);var c=n(138);n.d(t,"TransitionHookPhase",(function(){return c.h})),n.d(t,"TransitionHookScope",(function(){return c.i})),n.d(t,"HookBuilder",(function(){return c.a})),n.d(t,"matchState",(function(){return c.m})),n.d(t,"RegisteredHook",(function(){return c.b})),n.d(t,"makeEvent",(function(){return c.l})),n.d(t,"RejectType",(function(){return c.c})),n.d(t,"Rejection",(function(){return c.d})),n.d(t,"Transition",(function(){return c.e})),n.d(t,"TransitionHook",(function(){return c.g})),n.d(t,"TransitionEventType",(function(){return c.f})),n.d(t,"defaultTransOpts",(function(){return c.k})),n.d(t,"TransitionService",(function(){return c.j}));var u=n(139);for(var o in u)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext","TransitionHookPhase","TransitionHookScope","HookBuilder","matchState","RegisteredHook","makeEvent","RejectType","Rejection","Transition","TransitionHook","TransitionEventType","defaultTransOpts","TransitionService"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return u[e]}))}(o);var d=n(141);for(var o in d)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext","TransitionHookPhase","TransitionHookScope","HookBuilder","matchState","RegisteredHook","makeEvent","RejectType","Rejection","Transition","TransitionHook","TransitionEventType","defaultTransOpts","TransitionService"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return d[e]}))}(o);var p=n(103);n.d(t,"UIRouterGlobals",(function(){return p.a}));var f=n(99);n.d(t,"UIRouter",(function(){return f.a}));var h=n(143);for(var o in h)["default","root","fromJson","toJson","forEach","extend","equals","identity","noop","createProxyFunctions","inherit","inArray","_inArray","removeFrom","_removeFrom","pushTo","_pushTo","deregAll","defaults","mergeR","ancestors","pick","omit","pluck","filter","find","mapObj","map","values","allTrueR","anyTrueR","unnestR","flattenR","pushR","uniqR","unnest","flatten","assertPredicate","assertMap","assertFn","pairs","arrayTuples","applyPairs","tail","copy","_extend","silenceUncaughtInPromise","silentRejection","makeStub","services","Glob","curry","compose","pipe","prop","propEq","parse","not","and","or","all","any","is","eq","val","invoke","pattern","isUndefined","isDefined","isNull","isNullOrUndefined","isFunction","isNumber","isString","isObject","isArray","isDate","isRegExp","isInjectable","isPromise","Queue","maxLength","padString","kebobString","functionToString","fnToString","stringify","beforeAfterSubstr","hostRegex","stripLastPathElement","splitHash","splitQuery","splitEqual","trimHashVal","splitOnDelim","joinNeighborsR","Category","Trace","trace","PathNode","PathUtils","resolvePolicies","defaultResolvePolicy","Resolvable","NATIVE_INJECTOR_TOKEN","ResolveContext","TransitionHookPhase","TransitionHookScope","HookBuilder","matchState","RegisteredHook","makeEvent","RejectType","Rejection","Transition","TransitionHook","TransitionEventType","defaultTransOpts","TransitionService","UIRouterGlobals","UIRouter"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return h[e]}))}(o);var g=n(147);n.d(t,"UIRouterPluginBase",(function(){return g.a}))},function(e,t,n){"use strict";n.d(t,"e",(function(){return i})),n.d(t,"d",(function(){return o})),n.d(t,"m",(function(){return a})),n.d(t,"n",(function(){return s})),n.d(t,"o",(function(){return l})),n.d(t,"k",(function(){return c})),n.d(t,"i",(function(){return u})),n.d(t,"b",(function(){return d})),n.d(t,"j",(function(){return p})),n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return h})),n.d(t,"h",(function(){return g})),n.d(t,"f",(function(){return m})),n.d(t,"p",(function(){return v})),n.d(t,"g",(function(){return b})),n.d(t,"l",(function(){return y}));var r=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)r[i]=o[a];return r};function i(e){return function t(){if(arguments.length>=e.length)return e.apply(this,arguments);var n=Array.prototype.slice.call(arguments);return t.bind.apply(t,r([this],n))}}function o(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function a(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.apply(null,[].slice.call(arguments).reverse())}var s=function(e){return function(t){return t&&t[e]}},l=i((function(e,t,n){return n&&n[e]===t})),c=function(e){return a.apply(null,e.split(".").map(s))},u=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return!e.apply(null,t)}};function d(e,t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.apply(null,n)&&t.apply(null,n)}}function p(e,t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.apply(null,n)||t.apply(null,n)}}var f=function(e){return function(t){return t.reduce((function(t,n){return t&&!!e(n)}),!0)}},h=function(e){return function(t){return t.reduce((function(t,n){return t||!!e(n)}),!1)}},g=function(e){return function(t){return null!=t&&t.constructor===e||t instanceof e}},m=function(e){return function(t){return e===t}},v=function(e){return function(){return e}};function b(e,t){return function(n){return n[e].apply(n,t)}}function y(e){return function(t){for(var n=0;n<e.length;n++)if(e[n][0](t))return e[n][1](t)}}},function(e,t,n){"use strict";var r=n(0);n.d(t,"e",(function(){return r.a})),n.d(t,"f",(function(){return r.b})),n.d(t,"g",(function(){return r.c})),n.d(t,"h",(function(){return r.d})),n.d(t,"j",(function(){return r.e})),n.d(t,"k",(function(){return r.f})),n.d(t,"n",(function(){return r.g})),n.d(t,"o",(function(){return r.h})),n.d(t,"p",(function(){return r.i})),n.d(t,"q",(function(){return r.j})),n.d(t,"r",(function(){return r.k})),n.d(t,"s",(function(){return r.l})),n.d(t,"v",(function(){return r.m})),n.d(t,"w",(function(){return r.n})),n.d(t,"y",(function(){return r.o})),n.d(t,"z",(function(){return r.p})),n.d(t,"B",(function(){return r.q})),n.d(t,"C",(function(){return r.r})),n.d(t,"D",(function(){return r.s})),n.d(t,"E",(function(){return r.t})),n.d(t,"F",(function(){return r.u})),n.d(t,"G",(function(){return r.v})),n.d(t,"I",(function(){return r.w})),n.d(t,"J",(function(){return r.x})),n.d(t,"M",(function(){return r.y})),n.d(t,"N",(function(){return r.z})),n.d(t,"O",(function(){return r.A})),n.d(t,"hb",(function(){return r.B})),n.d(t,"ib",(function(){return r.C})),n.d(t,"kb",(function(){return r.D})),n.d(t,"lb",(function(){return r.E})),n.d(t,"nb",(function(){return r.F})),n.d(t,"qb",(function(){return r.G})),n.d(t,"tb",(function(){return r.H})),n.d(t,"vb",(function(){return r.I})),n.d(t,"yb",(function(){return r.J})),n.d(t,"zb",(function(){return r.K})),n.d(t,"Ab",(function(){return r.L})),n.d(t,"Bb",(function(){return r.M})),n.d(t,"Db",(function(){return r.N})),n.d(t,"Eb",(function(){return r.O})),n.d(t,"Lb",(function(){return r.P})),n.d(t,"Mb",(function(){return r.Q})),n.d(t,"Pb",(function(){return r.R})),n.d(t,"Qb",(function(){return r.S})),n.d(t,"Rb",(function(){return r.T})),n.d(t,"Tb",(function(){return r.U}));var i=n(6);n.d(t,"gb",(function(){return i.a})),n.d(t,"Cb",(function(){return i.b}));var o=n(62);n.d(t,"b",(function(){return o.a}));var a=n(3);n.d(t,"i",(function(){return a.a})),n.d(t,"l",(function(){return a.b})),n.d(t,"m",(function(){return a.c})),n.d(t,"u",(function(){return a.d})),n.d(t,"x",(function(){return a.e})),n.d(t,"A",(function(){return a.f})),n.d(t,"P",(function(){return a.g})),n.d(t,"Q",(function(){return a.h})),n.d(t,"mb",(function(){return a.i})),n.d(t,"ob",(function(){return a.j})),n.d(t,"rb",(function(){return a.k})),n.d(t,"sb",(function(){return a.l})),n.d(t,"ub",(function(){return a.m})),n.d(t,"wb",(function(){return a.n})),n.d(t,"xb",(function(){return a.o})),n.d(t,"Sb",(function(){return a.p}));var s=n(1);n.d(t,"R",(function(){return s.a})),n.d(t,"S",(function(){return s.b})),n.d(t,"T",(function(){return s.c})),n.d(t,"U",(function(){return s.d})),n.d(t,"V",(function(){return s.e})),n.d(t,"W",(function(){return s.f})),n.d(t,"X",(function(){return s.g})),n.d(t,"Y",(function(){return s.h})),n.d(t,"Z",(function(){return s.i})),n.d(t,"ab",(function(){return s.j})),n.d(t,"bb",(function(){return s.k})),n.d(t,"cb",(function(){return s.l})),n.d(t,"db",(function(){return s.m}));var l=n(50);n.d(t,"c",(function(){return l.a}));var c=n(7);n.d(t,"t",(function(){return c.a})),n.d(t,"H",(function(){return c.b})),n.d(t,"K",(function(){return c.c})),n.d(t,"L",(function(){return c.d})),n.d(t,"eb",(function(){return c.e})),n.d(t,"fb",(function(){return c.f})),n.d(t,"jb",(function(){return c.g})),n.d(t,"pb",(function(){return c.h})),n.d(t,"Fb",(function(){return c.i})),n.d(t,"Gb",(function(){return c.j})),n.d(t,"Hb",(function(){return c.k})),n.d(t,"Ib",(function(){return c.l})),n.d(t,"Jb",(function(){return c.m})),n.d(t,"Kb",(function(){return c.n})),n.d(t,"Ob",(function(){return c.o}));var u=n(10);n.d(t,"a",(function(){return u.a})),n.d(t,"d",(function(){return u.b})),n.d(t,"Nb",(function(){return u.c}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return r})),n.d(t,"p",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return s})),n.d(t,"o",(function(){return l})),n.d(t,"q",(function(){return c})),n.d(t,"t",(function(){return u})),n.d(t,"i",(function(){return d})),n.d(t,"r",(function(){return p})),n.d(t,"s",(function(){return f})),n.d(t,"k",(function(){return h})),n.d(t,"m",(function(){return g})),n.d(t,"j",(function(){return m})),n.d(t,"l",(function(){return v})),n.d(t,"g",(function(){return b})),n.d(t,"f",(function(){return y})),n.d(t,"h",(function(){return x})),n.d(t,"n",(function(){return w})),n.d(t,"b",(function(){return k}));var r="1.13.4",i="object"==typeof self&&self.self===self&&self||"object"==typeof e&&e.global===e&&e||Function("return this")()||{},o=Array.prototype,a=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,l=o.push,c=o.slice,u=a.toString,d=a.hasOwnProperty,p="undefined"!=typeof ArrayBuffer,f="undefined"!=typeof DataView,h=Array.isArray,g=Object.keys,m=Object.create,v=p&&ArrayBuffer.isView,b=isNaN,y=isFinite,x=!{toString:null}.propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k=Math.pow(2,53)-1}).call(this,n(35))},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i}));var r=function(e,t){return t.reduce((function(t,n){return t[n]=(r=e+"."+n+"()",function(){throw new Error("No implementation for "+r+". The framework specific code did not implement this method.")}),t;var r}),{})},i={$q:void 0,$injector:void 0}},function(e,t,n){"use strict";n.d(t,"g",(function(){return s})),n.d(t,"h",(function(){return l})),n.d(t,"f",(function(){return c})),n.d(t,"c",(function(){return u})),n.d(t,"b",(function(){return d})),n.d(t,"m",(function(){return h})),n.d(t,"a",(function(){return g})),n.d(t,"d",(function(){return m})),n.d(t,"n",(function(){return v})),n.d(t,"j",(function(){return b})),n.d(t,"l",(function(){return y})),n.d(t,"i",(function(){return x})),n.d(t,"o",(function(){return w})),n.d(t,"k",(function(){return k})),n.d(t,"e",(function(){return A}));var r=n(1),i=n(9),o=n(0),a=n(3);function s(e,t){return t.length<=e?t:t.substr(0,e-3)+"..."}function l(e,t){for(;t.length<e;)t+=" ";return t}function c(e){return e.replace(/^([A-Z])/,(function(e){return e.toLowerCase()})).replace(/([A-Z])/g,(function(e){return"-"+e.toLowerCase()}))}function u(e){var t=d(e),n=t.match(/^(function [^ ]+\([^)]*\))/),r=n?n[1]:t,i=e.name||"";return i&&r.match(/function \(/)?"function "+i+r.substr(9):r}function d(e){var t=Object(r.a)(e)?e.slice(-1)[0]:e;return t&&t.toString()||"undefined"}var p=i.b.isRejectionPromise,f=Object(a.l)([[r.m,Object(a.p)("undefined")],[r.f,Object(a.p)("null")],[r.j,Object(a.p)("[Promise]")],[p,function(e){return e._transitionRejection.toString()}],[function(e){return Object(r.i)(e)&&!Object(r.a)(e)&&e.constructor!==Object&&Object(r.d)(e.toString)},function(e){return e.toString()}],[r.e,u],[Object(a.p)(!0),o.y]]);function h(e){var t=[];function n(e){if(Object(r.i)(e)){if(-1!==t.indexOf(e))return"[circular ref]";t.push(e)}return f(e)}return Object(r.m)(e)?n(e):JSON.stringify(e,(function(e,t){return n(t)})).replace(/\\"/g,'"')}var g=function(e){return function(t){if(!t)return["",""];var n=t.indexOf(e);return-1===n?[t,""]:[t.substr(0,n),t.substr(n+1)]}},m=new RegExp("^(?:[a-z]+:)?//[^/]+/"),v=function(e){return e.replace(/\/[^/]*$/,"")},b=g("#"),y=g("?"),x=g("="),w=function(e){return e?e.replace(/^#/,""):""};function k(e){var t=new RegExp("("+e+")","g");return function(e){return e.split(t).filter(o.y)}}function A(e,t){return Object(r.l)(Object(o.P)(e))&&Object(r.l)(t)?e.slice(0,-1).concat(Object(o.P)(e)+t):Object(o.J)(e,t)}},function(e,t,n){n(208),e.exports=angular},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return l}));var r,i=n(0),o=n(7),a=n(3);!function(e){e[e.SUPERSEDED=2]="SUPERSEDED",e[e.ABORTED=3]="ABORTED",e[e.INVALID=4]="INVALID",e[e.IGNORED=5]="IGNORED",e[e.ERROR=6]="ERROR"}(r||(r={}));var s=0,l=function(){function e(e,t,n){this.$id=s++,this.type=e,this.message=t,this.detail=n}return e.isRejectionPromise=function(t){return t&&"function"==typeof t.then&&Object(a.h)(e)(t._transitionRejection)},e.superseded=function(t,n){var i=new e(r.SUPERSEDED,"The transition has been superseded by a different transition",t);return n&&n.redirected&&(i.redirected=!0),i},e.redirected=function(t){return e.superseded(t,{redirected:!0})},e.invalid=function(t){return new e(r.INVALID,"This transition is invalid",t)},e.ignored=function(t){return new e(r.IGNORED,"The transition was ignored",t)},e.aborted=function(t){return new e(r.ABORTED,"The transition has been aborted",t)},e.errored=function(t){return new e(r.ERROR,"The transition errored",t)},e.normalize=function(t){return Object(a.h)(e)(t)?t:e.errored(t)},e.prototype.toString=function(){var e,t=(e=this.detail)&&e.toString!==Object.prototype.toString?e.toString():Object(o.m)(e);return"Transition Rejection($id: "+this.$id+" type: "+this.type+", message: "+this.message+", detail: "+t+")"},e.prototype.toPromise=function(){return Object(i.r)(Object(i.O)(this),{_transitionRejection:this})},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return f})),n.d(t,"c",(function(){return h}));var r=n(3),i=n(1),o=n(7),a=n(19);function s(e){if(!e)return"ui-view (defunct)";var t=e.creationContext?e.creationContext.name||"(root)":"(none)";return"[ui-view#"+e.id+" "+e.$type+":"+e.fqn+" ("+e.name+"@"+t+")]"}var l;function c(e){return Object(i.h)(e)?l[e]:l[l[e]]}!function(e){e[e.RESOLVE=0]="RESOLVE",e[e.TRANSITION=1]="TRANSITION",e[e.HOOK=2]="HOOK",e[e.UIVIEW=3]="UIVIEW",e[e.VIEWCONFIG=4]="VIEWCONFIG"}(l||(l={}));var u=Object(r.k)("$id"),d=Object(r.k)("router.$id"),p=function(e){return"Transition #"+u(e)+"-"+d(e)},f=function(){function e(){this._enabled={},this.approximateDigests=0}return e.prototype._set=function(e,t){var n=this;t.length||(t=Object.keys(l).map((function(e){return parseInt(e,10)})).filter((function(e){return!isNaN(e)})).map((function(e){return l[e]}))),t.map(c).forEach((function(t){return n._enabled[t]=e}))},e.prototype.enable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._set(!0,e)},e.prototype.disable=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._set(!1,e)},e.prototype.enabled=function(e){return!!this._enabled[c(e)]},e.prototype.traceTransitionStart=function(e){this.enabled(l.TRANSITION)&&a.a.log(p(e)+": Started -> "+Object(o.m)(e))},e.prototype.traceTransitionIgnored=function(e){this.enabled(l.TRANSITION)&&a.a.log(p(e)+": Ignored <> "+Object(o.m)(e))},e.prototype.traceHookInvocation=function(e,t,n){if(this.enabled(l.HOOK)){var i=Object(r.k)("traceData.hookType")(n)||"internal",s=Object(r.k)("traceData.context.state.name")(n)||Object(r.k)("traceData.context")(n)||"unknown",c=Object(o.c)(e.registeredHook.callback);a.a.log(p(t)+": Hook -> "+i+" context: "+s+", "+Object(o.g)(200,c))}},e.prototype.traceHookResult=function(e,t,n){this.enabled(l.HOOK)&&a.a.log(p(t)+": <- Hook returned: "+Object(o.g)(200,Object(o.m)(e)))},e.prototype.traceResolvePath=function(e,t,n){this.enabled(l.RESOLVE)&&a.a.log(p(n)+": Resolving "+e+" ("+t+")")},e.prototype.traceResolvableResolved=function(e,t){this.enabled(l.RESOLVE)&&a.a.log(p(t)+": <- Resolved "+e+" to: "+Object(o.g)(200,Object(o.m)(e.data)))},e.prototype.traceError=function(e,t){this.enabled(l.TRANSITION)&&a.a.log(p(t)+": <- Rejected "+Object(o.m)(t)+", reason: "+e)},e.prototype.traceSuccess=function(e,t){this.enabled(l.TRANSITION)&&a.a.log(p(t)+": <- Success "+Object(o.m)(t)+", final state: "+e.name)},e.prototype.traceUIViewEvent=function(e,t,n){void 0===n&&(n=""),this.enabled(l.UIVIEW)&&a.a.log("ui-view: "+Object(o.h)(30,e)+" "+s(t)+n)},e.prototype.traceUIViewConfigUpdated=function(e,t){this.enabled(l.UIVIEW)&&this.traceUIViewEvent("Updating",e," with ViewConfig from context='"+t+"'")},e.prototype.traceUIViewFill=function(e,t){this.enabled(l.UIVIEW)&&this.traceUIViewEvent("Fill",e," with: "+Object(o.g)(200,t))},e.prototype.traceViewSync=function(e){if(this.enabled(l.VIEWCONFIG)){var t="uiview component fqn",n=e.map((function(e){var n,r=e.uiView,i=e.viewConfig,o=r&&r.fqn,a=i&&i.viewDecl.$context.name+": ("+i.viewDecl.$name+")";return(n={})[t]=o,n["view config state (view name)"]=a,n})).sort((function(e,n){return(e[t]||"").localeCompare(n[t]||"")}));a.a.table(n)}},e.prototype.traceViewServiceEvent=function(e,t){this.enabled(l.VIEWCONFIG)&&a.a.log("VIEWCONFIG: "+e+" "+function(e){var t=e.viewDecl,n=t.$context.name||"(root)";return"[View#"+e.$id+" from '"+n+"' state]: target ui-view: '"+t.$uiViewName+"@"+t.$uiViewContextAnchor+"'"}(t))},e.prototype.traceViewServiceUIViewEvent=function(e,t){this.enabled(l.VIEWCONFIG)&&a.a.log("VIEWCONFIG: "+e+" "+s(t))},e}(),h=new f},function(e,t,n){var r;try{r={cloneDeep:n(360),constant:n(126),defaults:n(361),each:n(167),filter:n(170),find:n(362),flatten:n(197),forEach:n(168),forIn:n(369),has:n(181),isUndefined:n(182),last:n(370),map:n(183),mapValues:n(371),max:n(372),merge:n(374),min:n(380),minBy:n(381),now:n(382),pick:n(383),range:n(388),reduce:n(185),sortBy:n(391),uniqueId:n(396),values:n(190),zipObject:n(397)}}catch(e){}r||(r=window._),e.exports=r},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(8),i=angular,o=r&&r.module?r:i},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";var r,i;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i})),function(e){e[e.CREATE=0]="CREATE",e[e.BEFORE=1]="BEFORE",e[e.RUN=2]="RUN",e[e.SUCCESS=3]="SUCCESS",e[e.ERROR=4]="ERROR"}(r||(r={})),function(e){e[e.TRANSITION=0]="TRANSITION",e[e.STATE=1]="STATE"}(i||(i={}))},function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return c}));var r=n(0),i=n(6),o=n(10),a=n(7),s=n(1),l={when:"LAZY",async:"WAIT"},c=function(){function e(t,n,o,a,l){if(this.resolved=!1,this.promise=void 0,t instanceof e)Object(r.r)(this,t);else if(Object(s.d)(n)){if(Object(s.g)(t))throw new Error("new Resolvable(): token argument is required");if(!Object(s.d)(n))throw new Error("new Resolvable(): resolveFn argument must be a function");this.token=t,this.policy=a,this.resolveFn=n,this.deps=o||[],this.data=l,this.resolved=void 0!==l,this.promise=this.resolved?i.b.$q.when(this.data):void 0}else if(Object(s.i)(t)&&t.token&&(t.hasOwnProperty("resolveFn")||t.hasOwnProperty("data"))){var c=t;return new e(c.token,c.resolveFn,c.deps,c.policy,c.data)}}return e.prototype.getPolicy=function(e){var t=this.policy||{},n=e&&e.resolvePolicy||{};return{when:t.when||n.when||l.when,async:t.async||n.async||l.async}},e.prototype.resolve=function(e,t){var n=this,a=i.b.$q,l=e.findNode(this),c=l&&l.state,u=this.getPolicy(c).async,d=Object(s.d)(u)?u:r.y;return this.promise=a.when().then((function(){return a.all(e.getDependencies(n).map((function(n){return n.get(e,t)})))})).then((function(e){return n.resolveFn.apply(null,e)})).then(d).then((function(e){return n.data=e,n.resolved=!0,n.resolveFn=null,o.c.traceResolvableResolved(n,t),n.data}))},e.prototype.get=function(e,t){return this.promise||this.resolve(e,t)},e.prototype.toString=function(){return"Resolvable(token: "+Object(a.m)(this.token)+", requires: ["+this.deps.map(a.m)+"])"},e.prototype.clone=function(){return new e(this)},e.fromData=function(t,n){return new e(t,(function(){return n}),null,null,n)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return d}));var r,i=n(0),o=n(3),a=n(1),s=n(6),l=n(51),c=Object.prototype.hasOwnProperty;function u(e,t,n){var o=!1===n.reloadOnSearch&&t===r.SEARCH||void 0,s=Object(i.t)([n.dynamic,o],a.c),l=Object(a.c)(s)?{dynamic:s}:{},u=function(e){function t(){return e.value}e=function(e){return 0===["value","type","squash","array","dynamic"].filter(c.bind(e||{})).length}(e)?{value:e}:e,t.__cacheable=!0;var n=Object(a.e)(e.value)?e.value:t;return Object(i.r)(e,{$$fn:n})}(n&&n.params&&n.params[e]);return Object(i.r)(l,u)}!function(e){e[e.PATH=0]="PATH",e[e.SEARCH=1]="SEARCH",e[e.CONFIG=2]="CONFIG"}(r||(r={}));var d=function(){function e(e,t,n,s,c){var d=u(e,n,c);t=function(e,t,n,i,o){if(e.type&&t&&"string"!==t.name)throw new Error("Param '"+i+"' has two type configurations.");if(e.type&&t&&"string"===t.name&&o.type(e.type))return o.type(e.type);if(t)return t;if(!e.type){var a=n===r.CONFIG?"any":n===r.PATH?"path":n===r.SEARCH?"query":"string";return o.type(a)}return e.type instanceof l.a?e.type:o.type(e.type)}(d,t,n,e,s.paramTypes);var p,f,h=(p={array:n===r.SEARCH&&"auto"},f=e.match(/\[\]$/)?{array:!0}:{},Object(i.r)(p,f,d).array);t=h?t.$asArray(h,n===r.SEARCH):t;var g=void 0!==d.value||n===r.SEARCH,m=Object(a.c)(d.dynamic)?!!d.dynamic:!!t.dynamic,v=Object(a.c)(d.raw)?!!d.raw:!!t.raw,b=function(e,t,n){var r=e.squash;if(!t||!1===r)return!1;if(!Object(a.c)(r)||null==r)return n;if(!0===r||Object(a.l)(r))return r;throw new Error("Invalid squash policy: '"+r+"'. Valid policies: false, true, or arbitrary string")}(d,g,s.defaultSquashPolicy()),y=function(e,t,n,r){var s=[{from:"",to:n||t?void 0:""},{from:null,to:n||t?void 0:""}],l=Object(a.a)(e.replace)?e.replace:[];Object(a.l)(r)&&l.push({from:r,to:void 0});var c=Object(i.B)(l,Object(o.n)("from"));return Object(i.s)(s,(function(e){return-1===c.indexOf(e.from)})).concat(l)}(d,h,g,b),x=Object(a.c)(d.inherit)?!!d.inherit:!!t.inherit;Object(i.r)(this,{id:e,type:t,location:n,isOptional:g,dynamic:m,raw:v,squash:b,replace:y,inherit:x,array:h,config:d})}return e.values=function(e,t){void 0===t&&(t={});for(var n={},r=0,i=e;r<i.length;r++){var o=i[r];n[o.id]=o.value(t[o.id])}return n},e.changed=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e.filter((function(e){return!e.type.equals(t[e.id],n[e.id])}))},e.equals=function(t,n,r){return void 0===n&&(n={}),void 0===r&&(r={}),0===e.changed(t,n,r).length},e.validates=function(e,t){return void 0===t&&(t={}),e.map((function(e){return e.validates(t[e.id])})).reduce(i.e,!0)},e.prototype.isDefaultValue=function(e){return this.isOptional&&this.type.equals(this.value(),e)},e.prototype.value=function(e){var t=this;return e=function(e){for(var n=0,r=t.replace;n<r.length;n++){var i=r[n];if(i.from===e)return i.to}return e}(e),Object(a.m)(e)?function(){if(t._defaultValueCache)return t._defaultValueCache.defaultValue;if(!s.b.$injector)throw new Error("Injectable functions cannot be called at configuration time");var e=s.b.$injector.invoke(t.config.$$fn);if(null!=e&&!t.type.is(e))throw new Error("Default value ("+e+") for parameter '"+t.id+"' is not an instance of ParamType ("+t.type.name+")");return t.config.$$fn.__cacheable&&(t._defaultValueCache={defaultValue:e}),e}():this.type.$normalize(e)},e.prototype.isSearch=function(){return this.location===r.SEARCH},e.prototype.validates=function(e){if((Object(a.m)(e)||null===e)&&this.isOptional)return!0;var t=this.type.$normalize(e);if(!this.type.is(t))return!1;var n=this.type.encode(t);return!(Object(a.l)(n)&&!this.type.pattern.exec(n))},e.prototype.toString=function(){return"{Param:"+this.id+" "+this.type+" squash: '"+this.squash+"' optional: "+this.isOptional+"}"},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(14),i=n(0),o=n(7),a=n(1),s=n(3),l=n(10),c=n(6),u=n(9),d=n(26),p={current:i.E,transition:null,traceData:{},bind:null},f=function(){function e(e,t,n,o){var a=this;this.transition=e,this.stateContext=t,this.registeredHook=n,this.options=o,this.isSuperseded=function(){return a.type.hookPhase===r.a.RUN&&!a.options.transition.isActive()},this.options=Object(i.o)(o,p),this.type=n.eventType}return e.chain=function(e,t){return e.reduce((function(e,t){return e.then((function(){return t.invokeHook()}))}),t||c.b.$q.when())},e.invokeHooks=function(t,n){for(var r=0;r<t.length;r++){var i=t[r].invokeHook();if(Object(a.j)(i)){var o=t.slice(r+1);return e.chain(o,i).then(n)}}return n()},e.runAllHooks=function(e){e.forEach((function(e){return e.invokeHook()}))},e.prototype.logError=function(e){this.transition.router.stateService.defaultErrorHandler()(e)},e.prototype.invokeHook=function(){var e=this,t=this.registeredHook;if(!t._deregistered){var n=this.getNotCurrentRejection();if(n)return n;var r=this.options;l.c.traceHookInvocation(this,this.transition,r);var i=function(n){return t.eventType.getErrorHandler(e)(n)},o=function(n){return t.eventType.getResultHandler(e)(n)};try{var s=t.callback.call(r.bind,e.transition,e.stateContext);return!this.type.synchronous&&Object(a.j)(s)?s.catch((function(e){return u.b.normalize(e).toPromise()})).then(o,i):o(s)}catch(e){return i(u.b.normalize(e))}finally{t.invokeLimit&&++t.invokeCount>=t.invokeLimit&&t.deregister()}}},e.prototype.handleHookResult=function(e){var t=this,n=this.getNotCurrentRejection();return n||(Object(a.j)(e)?e.then((function(e){return t.handleHookResult(e)})):(l.c.traceHookResult(e,this.transition,this.options),!1===e?u.b.aborted("Hook aborted transition").toPromise():Object(s.h)(d.a)(e)?u.b.redirected(e).toPromise():void 0))},e.prototype.getNotCurrentRejection=function(){var e=this.transition.router;return e._disposed?u.b.aborted("UIRouter instance #"+e.$id+" has been stopped (disposed)").toPromise():this.transition._aborted?u.b.aborted().toPromise():this.isSuperseded()?u.b.superseded(this.options.current()).toPromise():void 0},e.prototype.toString=function(){var e=this.options,t=this.registeredHook,n=Object(s.k)("traceData.hookType")(e)||"internal",r=Object(s.k)("traceData.context.state.name")(e)||Object(s.k)("traceData.context")(e)||"unknown",i=Object(o.b)(t.callback);return n+" context: "+r+", "+Object(o.g)(200,i)},e.HANDLE_RESULT=function(e){return function(t){return e.handleHookResult(t)}},e.LOG_REJECTED_RESULT=function(e){return function(t){Object(a.j)(t)&&t.catch((function(t){return e.logError(u.b.normalize(t))}))}},e.LOG_ERROR=function(e){return function(t){return e.logError(t)}},e.REJECT_ERROR=function(e){return function(e){return Object(i.O)(e)}},e.THROW_ERROR=function(e){return function(e){throw e}},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(3),o=n(26),a=n(52),s=function(){function e(){}return e.makeTargetState=function(e,t){var n=Object(r.P)(t).state;return new o.a(e,n,t.map(Object(i.n)("paramValues")).reduce(r.D,{}),{})},e.buildPath=function(e){var t=e.params();return e.$state().path.map((function(e){return new a.a(e).applyRawParams(t)}))},e.buildToPath=function(t,n){var r=e.buildPath(n);return n.options().inherit?e.inheritParams(t,r,Object.keys(n.params())):r},e.applyViewConfigs=function(t,n,i){n.filter((function(e){return Object(r.z)(i,e.state)})).forEach((function(i){var o=Object(r.U)(i.state.views||{}),a=e.subPath(n,(function(e){return e===i})),s=o.map((function(e){return t.createViewConfig(a,e)}));i.views=s.reduce(r.T,[])}))},e.inheritParams=function(e,t,n){void 0===n&&(n=[]);var o=e.map((function(e){return e.paramSchema})).reduce(r.T,[]).filter((function(e){return!e.inherit})).map(Object(i.n)("id"));return t.map((function(t){var s=Object(r.r)({},t&&t.paramValues),l=Object(r.H)(s,n);s=Object(r.F)(s,n);var c,u,d,p=Object(r.F)((c=e,u=t.state,d=Object(r.t)(c,Object(i.o)("state",u)),Object(r.r)({},d&&d.paramValues)||{}),o),f=Object(r.r)(s,p,l);return new a.a(t.state).applyRawParams(f)}))},e.treeChanges=function(t,n,r){for(var i,o,a,s,l,c,u=Math.min(t.length,n.length),d=0;d<u&&t[d].state!==r&&(i=t[d],o=n[d],i.equals(o,e.nonDynamicParams));)d++;s=(a=t).slice(0,d),l=a.slice(d);var p=s.map((function(e,t){var r=e.clone();return r.paramValues=n[t].paramValues,r}));return c=n.slice(d),{from:a,to:p.concat(c),retained:s,retainedWithToParams:p,exiting:l,entering:c}},e.matching=function(e,t,n){var i=!1;return Object(r.i)(e,t).reduce((function(e,t){var r=t[0],o=t[1];return(i=i||!r.equals(o,n))?e:e.concat(r)}),[])},e.equals=function(t,n,r){return t.length===n.length&&e.matching(t,n,r).length===t.length},e.subPath=function(e,t){var n=Object(r.t)(e,t),i=e.indexOf(n);return-1===i?void 0:e.slice(0,i+1)},e.nonDynamicParams=function(e){return e.state.parameters({inherit:!1}).filter((function(e){return!e.dynamic}))},e.paramValues=function(e){return e.reduce((function(e,t){return Object(r.r)(e,t.paramValues)}),{})},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0),i={log:r.E,error:r.E,table:r.E};var o="undefined"!=typeof document&&document.documentMode&&9===document.documentMode?window&&window.console?function(e){var t=function(t){return Function.prototype.bind.call(t,e)};return{log:t(e.log),error:t(e.log),table:t(e.log)}}(window.console):i:console.table&&console.error?console:function(e){var t=e.log.bind(e);return{log:t,error:e.error?e.error.bind(e):t,table:e.table?e.table.bind(e):t}}(console)},function(e,t,n){"use strict";var r=n(11),i=n(30).Graph;function o(e,t,n,i){var o;do{o=r.uniqueId(i)}while(e.hasNode(o));return n.dummy=t,e.setNode(o,n),o}function a(e){return r.max(r.map(e.nodes(),(function(t){var n=e.node(t).rank;if(!r.isUndefined(n))return n})))}e.exports={addDummyNode:o,simplify:function(e){var t=(new i).setGraph(e.graph());return r.forEach(e.nodes(),(function(n){t.setNode(n,e.node(n))})),r.forEach(e.edges(),(function(n){var r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),t},asNonCompoundGraph:function(e){var t=new i({multigraph:e.isMultigraph()}).setGraph(e.graph());return r.forEach(e.nodes(),(function(n){e.children(n).length||t.setNode(n,e.node(n))})),r.forEach(e.edges(),(function(n){t.setEdge(n,e.edge(n))})),t},successorWeights:function(e){var t=r.map(e.nodes(),(function(t){var n={};return r.forEach(e.outEdges(t),(function(t){n[t.w]=(n[t.w]||0)+e.edge(t).weight})),n}));return r.zipObject(e.nodes(),t)},predecessorWeights:function(e){var t=r.map(e.nodes(),(function(t){var n={};return r.forEach(e.inEdges(t),(function(t){n[t.v]=(n[t.v]||0)+e.edge(t).weight})),n}));return r.zipObject(e.nodes(),t)},intersectRect:function(e,t){var n,r,i=e.x,o=e.y,a=t.x-i,s=t.y-o,l=e.width/2,c=e.height/2;if(!a&&!s)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(s)*l>Math.abs(a)*c?(s<0&&(c=-c),n=c*a/s,r=c):(a<0&&(l=-l),n=l,r=l*s/a);return{x:i+n,y:o+r}},buildLayerMatrix:function(e){var t=r.map(r.range(a(e)+1),(function(){return[]}));return r.forEach(e.nodes(),(function(n){var i=e.node(n),o=i.rank;r.isUndefined(o)||(t[o][i.order]=n)})),t},normalizeRanks:function(e){var t=r.min(r.map(e.nodes(),(function(t){return e.node(t).rank})));r.forEach(e.nodes(),(function(n){var i=e.node(n);r.has(i,"rank")&&(i.rank-=t)}))},removeEmptyRanks:function(e){var t=r.min(r.map(e.nodes(),(function(t){return e.node(t).rank}))),n=[];r.forEach(e.nodes(),(function(r){var i=e.node(r).rank-t;n[i]||(n[i]=[]),n[i].push(r)}));var i=0,o=e.graph().nodeRankFactor;r.forEach(n,(function(t,n){r.isUndefined(t)&&n%o!=0?--i:i&&r.forEach(t,(function(t){e.node(t).rank+=i}))}))},addBorderNode:function(e,t,n,r){var i={width:0,height:0};arguments.length>=4&&(i.rank=n,i.order=r);return o(e,"border",i,t)},maxRank:a,partition:function(e,t){var n={lhs:[],rhs:[]};return r.forEach(e,(function(e){t(e)?n.lhs.push(e):n.rhs.push(e)})),n},time:function(e,t){var n=r.now();try{return t()}finally{console.log(e+" time: "+(r.now()-n)+"ms")}},notime:function(e,t){return t()}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return kn})),n.d(t,"VERSION",(function(){return i.e})),n.d(t,"restArguments",(function(){return o})),n.d(t,"isObject",(function(){return a})),n.d(t,"isNull",(function(){return s})),n.d(t,"isUndefined",(function(){return l})),n.d(t,"isBoolean",(function(){return c})),n.d(t,"isElement",(function(){return u})),n.d(t,"isString",(function(){return p})),n.d(t,"isNumber",(function(){return f})),n.d(t,"isDate",(function(){return h})),n.d(t,"isRegExp",(function(){return g})),n.d(t,"isError",(function(){return m})),n.d(t,"isSymbol",(function(){return v})),n.d(t,"isArrayBuffer",(function(){return b})),n.d(t,"isDataView",(function(){return $})),n.d(t,"isArray",(function(){return C})),n.d(t,"isFunction",(function(){return w})),n.d(t,"isArguments",(function(){return T})),n.d(t,"isFinite",(function(){return j})),n.d(t,"isNaN",(function(){return P})),n.d(t,"isTypedArray",(function(){return L})),n.d(t,"isEmpty",(function(){return V})),n.d(t,"isMatch",(function(){return U})),n.d(t,"isEqual",(function(){return Y})),n.d(t,"isMap",(function(){return re})),n.d(t,"isWeakMap",(function(){return ie})),n.d(t,"isSet",(function(){return oe})),n.d(t,"isWeakSet",(function(){return ae})),n.d(t,"keys",(function(){return q})),n.d(t,"allKeys",(function(){return X})),n.d(t,"values",(function(){return se})),n.d(t,"pairs",(function(){return le})),n.d(t,"invert",(function(){return ce})),n.d(t,"functions",(function(){return ue})),n.d(t,"methods",(function(){return ue})),n.d(t,"extend",(function(){return pe})),n.d(t,"extendOwn",(function(){return fe})),n.d(t,"assign",(function(){return fe})),n.d(t,"defaults",(function(){return he})),n.d(t,"create",(function(){return me})),n.d(t,"clone",(function(){return ve})),n.d(t,"tap",(function(){return be})),n.d(t,"get",(function(){return ke})),n.d(t,"has",(function(){return Ae})),n.d(t,"mapObject",(function(){return je})),n.d(t,"identity",(function(){return Ee})),n.d(t,"constant",(function(){return D})),n.d(t,"noop",(function(){return Pe})),n.d(t,"toPath",(function(){return ye})),n.d(t,"property",(function(){return $e})),n.d(t,"propertyOf",(function(){return De})),n.d(t,"matcher",(function(){return Se})),n.d(t,"matches",(function(){return Se})),n.d(t,"times",(function(){return Re})),n.d(t,"random",(function(){return Ie})),n.d(t,"now",(function(){return Ne})),n.d(t,"escape",(function(){return Le})),n.d(t,"unescape",(function(){return Be})),n.d(t,"templateSettings",(function(){return Fe})),n.d(t,"template",(function(){return We})),n.d(t,"result",(function(){return Ye})),n.d(t,"uniqueId",(function(){return Ze})),n.d(t,"chain",(function(){return Qe})),n.d(t,"iteratee",(function(){return Oe})),n.d(t,"partial",(function(){return et})),n.d(t,"bind",(function(){return tt})),n.d(t,"bindAll",(function(){return it})),n.d(t,"memoize",(function(){return ot})),n.d(t,"delay",(function(){return at})),n.d(t,"defer",(function(){return st})),n.d(t,"throttle",(function(){return lt})),n.d(t,"debounce",(function(){return ct})),n.d(t,"wrap",(function(){return ut})),n.d(t,"negate",(function(){return dt})),n.d(t,"compose",(function(){return pt})),n.d(t,"after",(function(){return ft})),n.d(t,"before",(function(){return ht})),n.d(t,"once",(function(){return gt})),n.d(t,"findKey",(function(){return mt})),n.d(t,"findIndex",(function(){return bt})),n.d(t,"findLastIndex",(function(){return yt})),n.d(t,"sortedIndex",(function(){return xt})),n.d(t,"indexOf",(function(){return kt})),n.d(t,"lastIndexOf",(function(){return At})),n.d(t,"find",(function(){return Et})),n.d(t,"detect",(function(){return Et})),n.d(t,"findWhere",(function(){return St})),n.d(t,"each",(function(){return $t})),n.d(t,"forEach",(function(){return $t})),n.d(t,"map",(function(){return Ct})),n.d(t,"collect",(function(){return Ct})),n.d(t,"reduce",(function(){return Ot})),n.d(t,"foldl",(function(){return Ot})),n.d(t,"inject",(function(){return Ot})),n.d(t,"reduceRight",(function(){return Tt})),n.d(t,"foldr",(function(){return Tt})),n.d(t,"filter",(function(){return jt})),n.d(t,"select",(function(){return jt})),n.d(t,"reject",(function(){return Pt})),n.d(t,"every",(function(){return Dt})),n.d(t,"all",(function(){return Dt})),n.d(t,"some",(function(){return Rt})),n.d(t,"any",(function(){return Rt})),n.d(t,"contains",(function(){return It})),n.d(t,"includes",(function(){return It})),n.d(t,"include",(function(){return It})),n.d(t,"invoke",(function(){return Nt})),n.d(t,"pluck",(function(){return Mt})),n.d(t,"where",(function(){return zt})),n.d(t,"max",(function(){return Lt})),n.d(t,"min",(function(){return Bt})),n.d(t,"shuffle",(function(){return Ut})),n.d(t,"sample",(function(){return Vt})),n.d(t,"sortBy",(function(){return Ht})),n.d(t,"groupBy",(function(){return Wt})),n.d(t,"indexBy",(function(){return Yt})),n.d(t,"countBy",(function(){return Xt})),n.d(t,"partition",(function(){return Zt})),n.d(t,"toArray",(function(){return qt})),n.d(t,"size",(function(){return Qt})),n.d(t,"pick",(function(){return Kt})),n.d(t,"omit",(function(){return en})),n.d(t,"first",(function(){return nn})),n.d(t,"head",(function(){return nn})),n.d(t,"take",(function(){return nn})),n.d(t,"initial",(function(){return tn})),n.d(t,"last",(function(){return on})),n.d(t,"rest",(function(){return rn})),n.d(t,"tail",(function(){return rn})),n.d(t,"drop",(function(){return rn})),n.d(t,"compact",(function(){return an})),n.d(t,"flatten",(function(){return sn})),n.d(t,"without",(function(){return cn})),n.d(t,"uniq",(function(){return un})),n.d(t,"unique",(function(){return un})),n.d(t,"union",(function(){return dn})),n.d(t,"intersection",(function(){return pn})),n.d(t,"difference",(function(){return ln})),n.d(t,"unzip",(function(){return fn})),n.d(t,"transpose",(function(){return fn})),n.d(t,"zip",(function(){return hn})),n.d(t,"object",(function(){return gn})),n.d(t,"range",(function(){return mn})),n.d(t,"chunk",(function(){return vn})),n.d(t,"mixin",(function(){return yn}));var r={};n.r(r),n.d(r,"VERSION",(function(){return i.e})),n.d(r,"restArguments",(function(){return o})),n.d(r,"isObject",(function(){return a})),n.d(r,"isNull",(function(){return s})),n.d(r,"isUndefined",(function(){return l})),n.d(r,"isBoolean",(function(){return c})),n.d(r,"isElement",(function(){return u})),n.d(r,"isString",(function(){return p})),n.d(r,"isNumber",(function(){return f})),n.d(r,"isDate",(function(){return h})),n.d(r,"isRegExp",(function(){return g})),n.d(r,"isError",(function(){return m})),n.d(r,"isSymbol",(function(){return v})),n.d(r,"isArrayBuffer",(function(){return b})),n.d(r,"isDataView",(function(){return $})),n.d(r,"isArray",(function(){return C})),n.d(r,"isFunction",(function(){return w})),n.d(r,"isArguments",(function(){return T})),n.d(r,"isFinite",(function(){return j})),n.d(r,"isNaN",(function(){return P})),n.d(r,"isTypedArray",(function(){return L})),n.d(r,"isEmpty",(function(){return V})),n.d(r,"isMatch",(function(){return U})),n.d(r,"isEqual",(function(){return Y})),n.d(r,"isMap",(function(){return re})),n.d(r,"isWeakMap",(function(){return ie})),n.d(r,"isSet",(function(){return oe})),n.d(r,"isWeakSet",(function(){return ae})),n.d(r,"keys",(function(){return q})),n.d(r,"allKeys",(function(){return X})),n.d(r,"values",(function(){return se})),n.d(r,"pairs",(function(){return le})),n.d(r,"invert",(function(){return ce})),n.d(r,"functions",(function(){return ue})),n.d(r,"methods",(function(){return ue})),n.d(r,"extend",(function(){return pe})),n.d(r,"extendOwn",(function(){return fe})),n.d(r,"assign",(function(){return fe})),n.d(r,"defaults",(function(){return he})),n.d(r,"create",(function(){return me})),n.d(r,"clone",(function(){return ve})),n.d(r,"tap",(function(){return be})),n.d(r,"get",(function(){return ke})),n.d(r,"has",(function(){return Ae})),n.d(r,"mapObject",(function(){return je})),n.d(r,"identity",(function(){return Ee})),n.d(r,"constant",(function(){return D})),n.d(r,"noop",(function(){return Pe})),n.d(r,"toPath",(function(){return ye})),n.d(r,"property",(function(){return $e})),n.d(r,"propertyOf",(function(){return De})),n.d(r,"matcher",(function(){return Se})),n.d(r,"matches",(function(){return Se})),n.d(r,"times",(function(){return Re})),n.d(r,"random",(function(){return Ie})),n.d(r,"now",(function(){return Ne})),n.d(r,"escape",(function(){return Le})),n.d(r,"unescape",(function(){return Be})),n.d(r,"templateSettings",(function(){return Fe})),n.d(r,"template",(function(){return We})),n.d(r,"result",(function(){return Ye})),n.d(r,"uniqueId",(function(){return Ze})),n.d(r,"chain",(function(){return Qe})),n.d(r,"iteratee",(function(){return Oe})),n.d(r,"partial",(function(){return et})),n.d(r,"bind",(function(){return tt})),n.d(r,"bindAll",(function(){return it})),n.d(r,"memoize",(function(){return ot})),n.d(r,"delay",(function(){return at})),n.d(r,"defer",(function(){return st})),n.d(r,"throttle",(function(){return lt})),n.d(r,"debounce",(function(){return ct})),n.d(r,"wrap",(function(){return ut})),n.d(r,"negate",(function(){return dt})),n.d(r,"compose",(function(){return pt})),n.d(r,"after",(function(){return ft})),n.d(r,"before",(function(){return ht})),n.d(r,"once",(function(){return gt})),n.d(r,"findKey",(function(){return mt})),n.d(r,"findIndex",(function(){return bt})),n.d(r,"findLastIndex",(function(){return yt})),n.d(r,"sortedIndex",(function(){return xt})),n.d(r,"indexOf",(function(){return kt})),n.d(r,"lastIndexOf",(function(){return At})),n.d(r,"find",(function(){return Et})),n.d(r,"detect",(function(){return Et})),n.d(r,"findWhere",(function(){return St})),n.d(r,"each",(function(){return $t})),n.d(r,"forEach",(function(){return $t})),n.d(r,"map",(function(){return Ct})),n.d(r,"collect",(function(){return Ct})),n.d(r,"reduce",(function(){return Ot})),n.d(r,"foldl",(function(){return Ot})),n.d(r,"inject",(function(){return Ot})),n.d(r,"reduceRight",(function(){return Tt})),n.d(r,"foldr",(function(){return Tt})),n.d(r,"filter",(function(){return jt})),n.d(r,"select",(function(){return jt})),n.d(r,"reject",(function(){return Pt})),n.d(r,"every",(function(){return Dt})),n.d(r,"all",(function(){return Dt})),n.d(r,"some",(function(){return Rt})),n.d(r,"any",(function(){return Rt})),n.d(r,"contains",(function(){return It})),n.d(r,"includes",(function(){return It})),n.d(r,"include",(function(){return It})),n.d(r,"invoke",(function(){return Nt})),n.d(r,"pluck",(function(){return Mt})),n.d(r,"where",(function(){return zt})),n.d(r,"max",(function(){return Lt})),n.d(r,"min",(function(){return Bt})),n.d(r,"shuffle",(function(){return Ut})),n.d(r,"sample",(function(){return Vt})),n.d(r,"sortBy",(function(){return Ht})),n.d(r,"groupBy",(function(){return Wt})),n.d(r,"indexBy",(function(){return Yt})),n.d(r,"countBy",(function(){return Xt})),n.d(r,"partition",(function(){return Zt})),n.d(r,"toArray",(function(){return qt})),n.d(r,"size",(function(){return Qt})),n.d(r,"pick",(function(){return Kt})),n.d(r,"omit",(function(){return en})),n.d(r,"first",(function(){return nn})),n.d(r,"head",(function(){return nn})),n.d(r,"take",(function(){return nn})),n.d(r,"initial",(function(){return tn})),n.d(r,"last",(function(){return on})),n.d(r,"rest",(function(){return rn})),n.d(r,"tail",(function(){return rn})),n.d(r,"drop",(function(){return rn})),n.d(r,"compact",(function(){return an})),n.d(r,"flatten",(function(){return sn})),n.d(r,"without",(function(){return cn})),n.d(r,"uniq",(function(){return un})),n.d(r,"unique",(function(){return un})),n.d(r,"union",(function(){return dn})),n.d(r,"intersection",(function(){return pn})),n.d(r,"difference",(function(){return ln})),n.d(r,"unzip",(function(){return fn})),n.d(r,"transpose",(function(){return fn})),n.d(r,"zip",(function(){return hn})),n.d(r,"object",(function(){return gn})),n.d(r,"range",(function(){return mn})),n.d(r,"chunk",(function(){return vn})),n.d(r,"mixin",(function(){return yn})),n.d(r,"default",(function(){return xn}));var i=n(5);function o(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;i<n;i++)r[i]=arguments[i+t];switch(t){case 0:return e.call(this,r);case 1:return e.call(this,arguments[0],r);case 2:return e.call(this,arguments[0],arguments[1],r)}var o=Array(t+1);for(i=0;i<t;i++)o[i]=arguments[i];return o[t]=r,e.apply(this,o)}}function a(e){var t=typeof e;return"function"===t||"object"===t&&!!e}function s(e){return null===e}function l(e){return void 0===e}function c(e){return!0===e||!1===e||"[object Boolean]"===i.t.call(e)}function u(e){return!(!e||1!==e.nodeType)}function d(e){var t="[object "+e+"]";return function(e){return i.t.call(e)===t}}var p=d("String"),f=d("Number"),h=d("Date"),g=d("RegExp"),m=d("Error"),v=d("Symbol"),b=d("ArrayBuffer"),y=d("Function"),x=i.p.document&&i.p.document.childNodes;"object"!=typeof Int8Array&&"function"!=typeof x&&(y=function(e){return"function"==typeof e||!1});var w=y,k=d("Object"),A=i.s&&k(new DataView(new ArrayBuffer(8))),E="undefined"!=typeof Map&&k(new Map),S=d("DataView");var $=A?function(e){return null!=e&&w(e.getInt8)&&b(e.buffer)}:S,C=i.k||d("Array");function _(e,t){return null!=e&&i.i.call(e,t)}var O=d("Arguments");!function(){O(arguments)||(O=function(e){return _(e,"callee")})}();var T=O;function j(e){return!v(e)&&Object(i.f)(e)&&!isNaN(parseFloat(e))}function P(e){return f(e)&&Object(i.g)(e)}function D(e){return function(){return e}}function R(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=i.b}}function I(e){return function(t){return null==t?void 0:t[e]}}var N=I("byteLength"),M=R(N),z=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var L=i.r?function(e){return i.l?Object(i.l)(e)&&!$(e):M(e)&&z.test(i.t.call(e))}:D(!1),B=I("length");function F(e,t){t=function(e){for(var t={},n=e.length,r=0;r<n;++r)t[e[r]]=!0;return{contains:function(e){return!0===t[e]},push:function(n){return t[n]=!0,e.push(n)}}}(t);var n=i.n.length,r=e.constructor,o=w(r)&&r.prototype||i.c,a="constructor";for(_(e,a)&&!t.contains(a)&&t.push(a);n--;)(a=i.n[n])in e&&e[a]!==o[a]&&!t.contains(a)&&t.push(a)}function q(e){if(!a(e))return[];if(i.m)return Object(i.m)(e);var t=[];for(var n in e)_(e,n)&&t.push(n);return i.h&&F(e,t),t}function V(e){if(null==e)return!0;var t=B(e);return"number"==typeof t&&(C(e)||p(e)||T(e))?0===t:0===B(q(e))}function U(e,t){var n=q(t),r=n.length;if(null==e)return!r;for(var i=Object(e),o=0;o<r;o++){var a=n[o];if(t[a]!==i[a]||!(a in i))return!1}return!0}function H(e){return e instanceof H?e:this instanceof H?void(this._wrapped=e):new H(e)}function G(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,N(e))}H.VERSION=i.e,H.prototype.value=function(){return this._wrapped},H.prototype.valueOf=H.prototype.toJSON=H.prototype.value,H.prototype.toString=function(){return String(this._wrapped)};function W(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var o=typeof e;return("function"===o||"object"===o||"object"==typeof t)&&function e(t,n,r,o){t instanceof H&&(t=t._wrapped);n instanceof H&&(n=n._wrapped);var a=i.t.call(t);if(a!==i.t.call(n))return!1;if(A&&"[object Object]"==a&&$(t)){if(!$(n))return!1;a="[object DataView]"}switch(a){case"[object RegExp]":case"[object String]":return""+t==""+n;case"[object Number]":return+t!=+t?+n!=+n:0==+t?1/+t==1/n:+t==+n;case"[object Date]":case"[object Boolean]":return+t==+n;case"[object Symbol]":return i.d.valueOf.call(t)===i.d.valueOf.call(n);case"[object ArrayBuffer]":case"[object DataView]":return e(G(t),G(n),r,o)}var s="[object Array]"===a;if(!s&&L(t)){if(N(t)!==N(n))return!1;if(t.buffer===n.buffer&&t.byteOffset===n.byteOffset)return!0;s=!0}if(!s){if("object"!=typeof t||"object"!=typeof n)return!1;var l=t.constructor,c=n.constructor;if(l!==c&&!(w(l)&&l instanceof l&&w(c)&&c instanceof c)&&"constructor"in t&&"constructor"in n)return!1}o=o||[];var u=(r=r||[]).length;for(;u--;)if(r[u]===t)return o[u]===n;if(r.push(t),o.push(n),s){if((u=t.length)!==n.length)return!1;for(;u--;)if(!W(t[u],n[u],r,o))return!1}else{var d,p=q(t);if(u=p.length,q(n).length!==u)return!1;for(;u--;)if(d=p[u],!_(n,d)||!W(t[d],n[d],r,o))return!1}return r.pop(),o.pop(),!0}(e,t,n,r)}function Y(e,t){return W(e,t)}function X(e){if(!a(e))return[];var t=[];for(var n in e)t.push(n);return i.h&&F(e,t),t}function Z(e){var t=B(e);return function(n){if(null==n)return!1;var r=X(n);if(B(r))return!1;for(var i=0;i<t;i++)if(!w(n[e[i]]))return!1;return e!==te||!w(n[Q])}}var Q="forEach",J=["clear","delete"],K=["get","has","set"],ee=J.concat(Q,K),te=J.concat(K),ne=["add"].concat(J,Q,"has"),re=E?Z(ee):d("Map"),ie=E?Z(te):d("WeakMap"),oe=E?Z(ne):d("Set"),ae=d("WeakSet");function se(e){for(var t=q(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=e[t[i]];return r}function le(e){for(var t=q(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=[t[i],e[t[i]]];return r}function ce(e){for(var t={},n=q(e),r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t}function ue(e){var t=[];for(var n in e)w(e[n])&&t.push(n);return t.sort()}function de(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;i<r;i++)for(var o=arguments[i],a=e(o),s=a.length,l=0;l<s;l++){var c=a[l];t&&void 0!==n[c]||(n[c]=o[c])}return n}}var pe=de(X),fe=de(q),he=de(X,!0);function ge(e){if(!a(e))return{};if(i.j)return Object(i.j)(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}function me(e,t){var n=ge(e);return t&&fe(n,t),n}function ve(e){return a(e)?C(e)?e.slice():pe({},e):e}function be(e,t){return t(e),e}function ye(e){return C(e)?e:[e]}function xe(e){return H.toPath(e)}function we(e,t){for(var n=t.length,r=0;r<n;r++){if(null==e)return;e=e[t[r]]}return n?e:void 0}function ke(e,t,n){var r=we(e,xe(t));return l(r)?n:r}function Ae(e,t){for(var n=(t=xe(t)).length,r=0;r<n;r++){var i=t[r];if(!_(e,i))return!1;e=e[i]}return!!n}function Ee(e){return e}function Se(e){return e=fe({},e),function(t){return U(t,e)}}function $e(e){return e=xe(e),function(t){return we(t,e)}}function Ce(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}}function _e(e,t,n){return null==e?Ee:w(e)?Ce(e,t,n):a(e)&&!C(e)?Se(e):$e(e)}function Oe(e,t){return _e(e,t,1/0)}function Te(e,t,n){return H.iteratee!==Oe?H.iteratee(e,t):_e(e,t,n)}function je(e,t,n){t=Te(t,n);for(var r=q(e),i=r.length,o={},a=0;a<i;a++){var s=r[a];o[s]=t(e[s],s,e)}return o}function Pe(){}function De(e){return null==e?Pe:function(t){return ke(e,t)}}function Re(e,t,n){var r=Array(Math.max(0,e));t=Ce(t,n,1);for(var i=0;i<e;i++)r[i]=t(i);return r}function Ie(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}H.toPath=ye,H.iteratee=Oe;var Ne=Date.now||function(){return(new Date).getTime()};function Me(e){var t=function(t){return e[t]},n="(?:"+q(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(i,t):e}}var ze={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Le=Me(ze),Be=Me(ce(ze)),Fe=H.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},qe=/(.)^/,Ve={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Ue=/\\|'|\r|\n|\u2028|\u2029/g;function He(e){return"\\"+Ve[e]}var Ge=/^\s*(\w|\$)+\s*$/;function We(e,t,n){!t&&n&&(t=n),t=he({},t,H.templateSettings);var r=RegExp([(t.escape||qe).source,(t.interpolate||qe).source,(t.evaluate||qe).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(r,(function(t,n,r,a,s){return o+=e.slice(i,s).replace(Ue,He),i=s+t.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),t})),o+="';\n";var a,s=t.variable;if(s){if(!Ge.test(s))throw new Error("variable is not a bare identifier: "+s)}else o="with(obj||{}){\n"+o+"}\n",s="obj";o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{a=new Function(s,"_",o)}catch(e){throw e.source=o,e}var l=function(e){return a.call(this,e,H)};return l.source="function("+s+"){\n"+o+"}",l}function Ye(e,t,n){var r=(t=xe(t)).length;if(!r)return w(n)?n.call(e):n;for(var i=0;i<r;i++){var o=null==e?void 0:e[t[i]];void 0===o&&(o=n,i=r),e=w(o)?o.call(e):o}return e}var Xe=0;function Ze(e){var t=++Xe+"";return e?e+t:t}function Qe(e){var t=H(e);return t._chain=!0,t}function Je(e,t,n,r,i){if(!(r instanceof t))return e.apply(n,i);var o=ge(e.prototype),s=e.apply(o,i);return a(s)?s:o}var Ke=o((function(e,t){var n=Ke.placeholder,r=function(){for(var i=0,o=t.length,a=Array(o),s=0;s<o;s++)a[s]=t[s]===n?arguments[i++]:t[s];for(;i<arguments.length;)a.push(arguments[i++]);return Je(e,r,this,this,a)};return r}));Ke.placeholder=H;var et=Ke,tt=o((function(e,t,n){if(!w(e))throw new TypeError("Bind must be called on a function");var r=o((function(i){return Je(e,r,t,this,n.concat(i))}));return r})),nt=R(B);function rt(e,t,n,r){if(r=r||[],t||0===t){if(t<=0)return r.concat(e)}else t=1/0;for(var i=r.length,o=0,a=B(e);o<a;o++){var s=e[o];if(nt(s)&&(C(s)||T(s)))if(t>1)rt(s,t-1,n,r),i=r.length;else for(var l=0,c=s.length;l<c;)r[i++]=s[l++];else n||(r[i++]=s)}return r}var it=o((function(e,t){var n=(t=rt(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=tt(e[r],e)}return e}));function ot(e,t){var n=function(r){var i=n.cache,o=""+(t?t.apply(this,arguments):r);return _(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return n.cache={},n}var at=o((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),st=et(at,H,1);function lt(e,t,n){var r,i,o,a,s=0;n||(n={});var l=function(){s=!1===n.leading?0:Ne(),r=null,a=e.apply(i,o),r||(i=o=null)},c=function(){var c=Ne();s||!1!==n.leading||(s=c);var u=t-(c-s);return i=this,o=arguments,u<=0||u>t?(r&&(clearTimeout(r),r=null),s=c,a=e.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),a};return c.cancel=function(){clearTimeout(r),s=0,r=i=o=null},c}function ct(e,t,n){var r,i,a,s,l,c=function(){var o=Ne()-i;t>o?r=setTimeout(c,t-o):(r=null,n||(s=e.apply(l,a)),r||(a=l=null))},u=o((function(o){return l=this,a=o,i=Ne(),r||(r=setTimeout(c,t),n&&(s=e.apply(l,a))),s}));return u.cancel=function(){clearTimeout(r),r=a=l=null},u}function ut(e,t){return et(t,e)}function dt(e){return function(){return!e.apply(this,arguments)}}function pt(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function ft(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function ht(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var gt=et(ht,2);function mt(e,t,n){t=Te(t,n);for(var r,i=q(e),o=0,a=i.length;o<a;o++)if(t(e[r=i[o]],r,e))return r}function vt(e){return function(t,n,r){n=Te(n,r);for(var i=B(t),o=e>0?0:i-1;o>=0&&o<i;o+=e)if(n(t[o],o,t))return o;return-1}}var bt=vt(1),yt=vt(-1);function xt(e,t,n,r){for(var i=(n=Te(n,r,1))(t),o=0,a=B(e);o<a;){var s=Math.floor((o+a)/2);n(e[s])<i?o=s+1:a=s}return o}function wt(e,t,n){return function(r,o,a){var s=0,l=B(r);if("number"==typeof a)e>0?s=a>=0?a:Math.max(a+l,s):l=a>=0?Math.min(a+1,l):a+l+1;else if(n&&a&&l)return r[a=n(r,o)]===o?a:-1;if(o!=o)return(a=t(i.q.call(r,s,l),P))>=0?a+s:-1;for(a=e>0?s:l-1;a>=0&&a<l;a+=e)if(r[a]===o)return a;return-1}}var kt=wt(1,bt,xt),At=wt(-1,yt);function Et(e,t,n){var r=(nt(e)?bt:mt)(e,t,n);if(void 0!==r&&-1!==r)return e[r]}function St(e,t){return Et(e,Se(t))}function $t(e,t,n){var r,i;if(t=Ce(t,n),nt(e))for(r=0,i=e.length;r<i;r++)t(e[r],r,e);else{var o=q(e);for(r=0,i=o.length;r<i;r++)t(e[o[r]],o[r],e)}return e}function Ct(e,t,n){t=Te(t,n);for(var r=!nt(e)&&q(e),i=(r||e).length,o=Array(i),a=0;a<i;a++){var s=r?r[a]:a;o[a]=t(e[s],s,e)}return o}function _t(e){var t=function(t,n,r,i){var o=!nt(t)&&q(t),a=(o||t).length,s=e>0?0:a-1;for(i||(r=t[o?o[s]:s],s+=e);s>=0&&s<a;s+=e){var l=o?o[s]:s;r=n(r,t[l],l,t)}return r};return function(e,n,r,i){var o=arguments.length>=3;return t(e,Ce(n,i,4),r,o)}}var Ot=_t(1),Tt=_t(-1);function jt(e,t,n){var r=[];return t=Te(t,n),$t(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}function Pt(e,t,n){return jt(e,dt(Te(t)),n)}function Dt(e,t,n){t=Te(t,n);for(var r=!nt(e)&&q(e),i=(r||e).length,o=0;o<i;o++){var a=r?r[o]:o;if(!t(e[a],a,e))return!1}return!0}function Rt(e,t,n){t=Te(t,n);for(var r=!nt(e)&&q(e),i=(r||e).length,o=0;o<i;o++){var a=r?r[o]:o;if(t(e[a],a,e))return!0}return!1}function It(e,t,n,r){return nt(e)||(e=se(e)),("number"!=typeof n||r)&&(n=0),kt(e,t,n)>=0}var Nt=o((function(e,t,n){var r,i;return w(t)?i=t:(t=xe(t),r=t.slice(0,-1),t=t[t.length-1]),Ct(e,(function(e){var o=i;if(!o){if(r&&r.length&&(e=we(e,r)),null==e)return;o=e[t]}return null==o?o:o.apply(e,n)}))}));function Mt(e,t){return Ct(e,$e(t))}function zt(e,t){return jt(e,Se(t))}function Lt(e,t,n){var r,i,o=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=nt(e)?e:se(e)).length;s<l;s++)null!=(r=e[s])&&r>o&&(o=r);else t=Te(t,n),$t(e,(function(e,n,r){((i=t(e,n,r))>a||i===-1/0&&o===-1/0)&&(o=e,a=i)}));return o}function Bt(e,t,n){var r,i,o=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=nt(e)?e:se(e)).length;s<l;s++)null!=(r=e[s])&&r<o&&(o=r);else t=Te(t,n),$t(e,(function(e,n,r){((i=t(e,n,r))<a||i===1/0&&o===1/0)&&(o=e,a=i)}));return o}var Ft=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qt(e){return e?C(e)?i.q.call(e):p(e)?e.match(Ft):nt(e)?Ct(e,Ee):se(e):[]}function Vt(e,t,n){if(null==t||n)return nt(e)||(e=se(e)),e[Ie(e.length-1)];var r=qt(e),i=B(r);t=Math.max(Math.min(t,i),0);for(var o=i-1,a=0;a<t;a++){var s=Ie(a,o),l=r[a];r[a]=r[s],r[s]=l}return r.slice(0,t)}function Ut(e){return Vt(e,1/0)}function Ht(e,t,n){var r=0;return t=Te(t,n),Mt(Ct(e,(function(e,n,i){return{value:e,index:r++,criteria:t(e,n,i)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(n<r||void 0===r)return-1}return e.index-t.index})),"value")}function Gt(e,t){return function(n,r,i){var o=t?[[],[]]:{};return r=Te(r,i),$t(n,(function(t,i){var a=r(t,i,n);e(o,t,a)})),o}}var Wt=Gt((function(e,t,n){_(e,n)?e[n].push(t):e[n]=[t]})),Yt=Gt((function(e,t,n){e[n]=t})),Xt=Gt((function(e,t,n){_(e,n)?e[n]++:e[n]=1})),Zt=Gt((function(e,t,n){e[n?0:1].push(t)}),!0);function Qt(e){return null==e?0:nt(e)?e.length:q(e).length}function Jt(e,t,n){return t in n}var Kt=o((function(e,t){var n={},r=t[0];if(null==e)return n;w(r)?(t.length>1&&(r=Ce(r,t[1])),t=X(e)):(r=Jt,t=rt(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i<o;i++){var a=t[i],s=e[a];r(s,a,e)&&(n[a]=s)}return n})),en=o((function(e,t){var n,r=t[0];return w(r)?(r=dt(r),t.length>1&&(n=t[1])):(t=Ct(rt(t,!1,!1),String),r=function(e,n){return!It(t,n)}),Kt(e,r,n)}));function tn(e,t,n){return i.q.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function nn(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:tn(e,e.length-t)}function rn(e,t,n){return i.q.call(e,null==t||n?1:t)}function on(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:rn(e,Math.max(0,e.length-t))}function an(e){return jt(e,Boolean)}function sn(e,t){return rt(e,t,!1)}var ln=o((function(e,t){return t=rt(t,!0,!0),jt(e,(function(e){return!It(t,e)}))})),cn=o((function(e,t){return ln(e,t)}));function un(e,t,n,r){c(t)||(r=n,n=t,t=!1),null!=n&&(n=Te(n,r));for(var i=[],o=[],a=0,s=B(e);a<s;a++){var l=e[a],u=n?n(l,a,e):l;t&&!n?(a&&o===u||i.push(l),o=u):n?It(o,u)||(o.push(u),i.push(l)):It(i,l)||i.push(l)}return i}var dn=o((function(e){return un(rt(e,!0,!0))}));function pn(e){for(var t=[],n=arguments.length,r=0,i=B(e);r<i;r++){var o=e[r];if(!It(t,o)){var a;for(a=1;a<n&&It(arguments[a],o);a++);a===n&&t.push(o)}}return t}function fn(e){for(var t=e&&Lt(e,B).length||0,n=Array(t),r=0;r<t;r++)n[r]=Mt(e,r);return n}var hn=o(fn);function gn(e,t){for(var n={},r=0,i=B(e);r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n}function mn(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var r=Math.max(Math.ceil((t-e)/n),0),i=Array(r),o=0;o<r;o++,e+=n)i[o]=e;return i}function vn(e,t){if(null==t||t<1)return[];for(var n=[],r=0,o=e.length;r<o;)n.push(i.q.call(e,r,r+=t));return n}function bn(e,t){return e._chain?H(t).chain():t}function yn(e){return $t(ue(e),(function(t){var n=H[t]=e[t];H.prototype[t]=function(){var e=[this._wrapped];return i.o.apply(e,arguments),bn(this,n.apply(H,e))}})),H}$t(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=i.a[e];H.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),bn(this,n)}})),$t(["concat","join","slice"],(function(e){var t=i.a[e];H.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),bn(this,e)}}));var xn=H,wn=yn(r);wn._=wn;var kn=wn},function(e,t,n){var r;try{r={clone:n(248),constant:n(126),each:n(167),filter:n(170),has:n(181),isArray:n(13),isEmpty:n(324),isFunction:n(64),isUndefined:n(182),keys:n(41),map:n(183),reduce:n(185),size:n(327),transform:n(333),union:n(334),values:n(190)}}catch(e){}r||(r=window._),e.exports=r},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";n.r(t),n.d(t,"getReferences",(function(){return i})),n.d(t,"getParents",(function(){return o})),n.d(t,"getMacroReferences",(function(){return a})),n.d(t,"getMacroParents",(function(){return s}));const r=n(21);function i(e,t){let n=r.filter(e.nodes,(function(e){return!!(e.depends_on&&e.depends_on.nodes&&e.depends_on.nodes.length&&r.contains(e.depends_on.nodes,t.unique_id))}));return r.groupBy(n,"resource_type")}function o(e,t){let n=r.filter(e.nodes,(function(e){return!!(t.depends_on&&t.depends_on.nodes&&t.depends_on.nodes.length&&r.contains(t.depends_on.nodes,e.unique_id))})),i=r.filter(e.macros,(function(e){return!!(t.depends_on&&t.depends_on.macros&&t.depends_on.macros.length&&r.contains(t.depends_on.macros,e.unique_id))}));return r.groupBy(n.concat(i),"resource_type")}function a(e,t){let n=r.filter(e.nodes,(function(e){return!!(e.depends_on&&e.depends_on.macros&&e.depends_on.macros.length&&r.contains(e.depends_on.macros,t.unique_id))})),i=r.filter(e.macros,(function(e){return!!(e.depends_on&&e.depends_on.macros&&e.depends_on.macros.length&&r.contains(e.depends_on.macros,t.unique_id))}));return r.groupBy(n.concat(i),"resource_type")}function s(e,t){let n=r.filter(e.macros,(function(e){return!!(t.depends_on&&t.depends_on.macros&&t.depends_on.macros.length&&r.contains(t.depends_on.macros,e.unique_id))}));return r.groupBy(n,"resource_type")}},function(e,t,n){var r=n(447);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(1),i=n(7),o=n(4),a=function(){function e(e,t,n,r){this._stateRegistry=e,this._identifier=t,this._identifier=t,this._params=Object(o.C)({},n||{}),this._options=Object(o.C)({},r||{}),this._definition=e.matcher.find(t,this._options.relative)}return e.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},e.prototype.identifier=function(){return this._identifier},e.prototype.params=function(){return this._params},e.prototype.$state=function(){return this._definition},e.prototype.state=function(){return this._definition&&this._definition.self},e.prototype.options=function(){return this._options},e.prototype.exists=function(){return!(!this._definition||!this._definition.self)},e.prototype.valid=function(){return!this.error()},e.prototype.error=function(){var e=this.options().relative;if(!this._definition&&e){var t=e.name?e.name:e;return"Could not resolve '"+this.name()+"' from state '"+t+"'"}return this._definition?this._definition.self?void 0:"State '"+this.name()+"' has an invalid definition":"No such state '"+this.name()+"'"},e.prototype.toString=function(){return"'"+this.name()+"'"+Object(i.m)(this.params())},e.prototype.withState=function(t){return new e(this._stateRegistry,t,this._params,this._options)},e.prototype.withParams=function(t,n){void 0===n&&(n=!1);var r=n?t:Object(o.C)({},this._params,t);return new e(this._stateRegistry,this._identifier,r,this._options)},e.prototype.withOptions=function(t,n){void 0===n&&(n=!1);var r=n?t:Object(o.C)({},this._options,t);return new e(this._stateRegistry,this._identifier,this._params,r)},e.isDef=function(e){return e&&e.state&&(Object(r.l)(e.state)||Object(r.i)(e.state)&&Object(r.l)(e.state.name))},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return g})),n.d(t,"b",(function(){return m}));var r=n(0),i=n(3),o=n(10),a=n(6),s=n(69),l=n(15),c=n(18),u=n(7),d=n(4),p=s.a.when,f=[p.EAGER,p.LAZY],h=[p.EAGER],g="Native Injector",m=function(){function e(e){this._path=e}return e.prototype.getTokens=function(){return this._path.reduce((function(e,t){return e.concat(t.resolvables.map((function(e){return e.token})))}),[]).reduce(r.R,[])},e.prototype.getResolvable=function(e){var t=this._path.map((function(e){return e.resolvables})).reduce(r.T,[]).filter((function(t){return t.token===e}));return Object(r.P)(t)},e.prototype.getPolicy=function(e){var t=this.findNode(e);return e.getPolicy(t.state)},e.prototype.subContext=function(t){return new e(c.a.subPath(this._path,(function(e){return e.state===t})))},e.prototype.addResolvables=function(e,t){var n=Object(r.t)(this._path,Object(i.o)("state",t)),o=e.map((function(e){return e.token}));n.resolvables=n.resolvables.filter((function(e){return-1===o.indexOf(e.token)})).concat(e)},e.prototype.resolvePath=function(e,t){var n=this;void 0===e&&(e="LAZY");var l=(Object(r.z)(f,e)?e:"LAZY")===s.a.when.EAGER?h:f;o.c.traceResolvePath(this._path,e,t);var c=function(e,t){return function(i){return Object(r.z)(e,n.getPolicy(i)[t])}},u=this._path.reduce((function(e,r){var o=r.resolvables.filter(c(l,"when")),a=o.filter(c(["NOWAIT"],"async")),s=o.filter(Object(i.i)(c(["NOWAIT"],"async"))),u=n.subContext(r.state),d=function(e){return e.get(u,t).then((function(t){return{token:e.token,value:t}}))};return a.forEach(d),e.concat(s.map(d))}),[]);return a.b.$q.all(u)},e.prototype.injector=function(){return this._injector||(this._injector=new v(this))},e.prototype.findNode=function(e){return Object(r.t)(this._path,(function(t){return Object(r.z)(t.resolvables,e)}))},e.prototype.getDependencies=function(e){var t=this,n=this.findNode(e),i=(c.a.subPath(this._path,(function(e){return e===n}))||this._path).reduce((function(e,t){return e.concat(t.resolvables)}),[]).filter((function(t){return t!==e}));return e.deps.map((function(e){var n=i.filter((function(t){return t.token===e}));if(n.length)return Object(r.P)(n);var o=t.injector().getNative(e);if(Object(d.db)(o))throw new Error("Could not find Dependency Injection token: "+Object(u.m)(e));return new l.a(e,(function(){return o}),[],o)}))},e}(),v=function(){function e(e){this.context=e,this.native=this.get(g)||a.b.$injector}return e.prototype.get=function(e){var t=this.context.getResolvable(e);if(t){if("NOWAIT"===this.context.getPolicy(t).async)return t.get(this.context);if(!t.resolved)throw new Error("Resolvable async .get() not complete:"+Object(u.m)(t.token));return t.data}return this.getNative(e)},e.prototype.getAsync=function(e){var t=this.context.getResolvable(e);return t?t.get(this.context):a.b.$q.when(this.native.get(e))},e.prototype.getNative=function(e){return this.native&&this.native.get(e)},e}()},function(e,t,n){"use strict";n.r(t);var r=n(134);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(16);n.d(t,"DefType",(function(){return o.a})),n.d(t,"Param",(function(){return o.b}));var a=n(135);n.d(t,"ParamTypes",(function(){return a.a}));var s=n(92);n.d(t,"StateParams",(function(){return s.a}));var l=n(51);n.d(t,"ParamType",(function(){return l.a}))},function(e,t,n){"use strict";n.d(t,"c",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"e",(function(){return a})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l}));var r=n(4),i=function(e,t){var n=t[0],i=t[1];return e.hasOwnProperty(n)?Object(r.R)(e[n])?e[n].push(i):e[n]=[e[n],i]:e[n]=i,e},o=function(e){return e.split("&").filter(r.M).map(r.Fb).reduce(i,{})};function a(e){var t=function(e){return e||""},n=Object(r.Gb)(e).map(t),i=n[0],o=n[1],a=Object(r.Ib)(i).map(t);return{path:a[0],search:a[1],hash:o,url:e}}var s=function(e){var t=e.path(),n=e.search(),i=e.hash(),o=Object.keys(n).map((function(e){var t=n[e];return(Object(r.R)(t)?t:[t]).map((function(t){return e+"="+t}))})).reduce(r.Rb,[]).join("&");return t+(o?"?"+o:"")+(i?"#"+i:"")};function l(e,t,n,r){return function(i){var o=i.locationService=new n(i),a=i.locationConfig=new r(i,t);return{name:e,service:o,configuration:a,dispose:function(e){e.dispose(o),e.dispose(a)}}}}},function(e,t,n){var r;try{r=n(148)}catch(e){}r||(r=window.graphlib),e.exports=r},function(e,t,n){var r=n(150),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var r=n(0),i=n(3),o=n(1),a=n(16),s=n(7),l=n(4);function c(e,t){var n=["",""],r=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return r;switch(t.squash){case!1:n=["(",")"+(t.isOptional?"?":"")];break;case!0:r=r.replace(/\/$/,""),n=["(?:/(",")|/)?"];break;default:n=["("+t.squash+"|",")?"]}return r+n[0]+t.type.pattern.source+n[1]}var u=Object(s.k)("/"),d={state:{params:{}},strict:!0,caseInsensitive:!0,decodeParams:!0},p=function(){function e(t,n,o,a){var s=this;this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.config=a=Object(l.y)(a,d),this.pattern=t;for(var u,p,f,h=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,g=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,m=[],v=0,b=function(n){if(!e.nameValidator.test(n))throw new Error("Invalid parameter name '"+n+"' in pattern '"+t+"'");if(Object(r.t)(s._params,Object(i.o)("id",n)))throw new Error("Duplicate parameter name '"+n+"' in pattern '"+t+"'")},y=function(e,i){var o,a=e[2]||e[3],l=i?e[4]:e[4]||("*"===e[1]?"[\\s\\S]*":null);return{id:a,regexp:l,segment:t.substring(v,e.index),type:l?n.type(l)||(o=l,Object(r.A)(n.type(i?"query":"path"),{pattern:new RegExp(o,s.config.caseInsensitive?"i":void 0)})):null}};(u=h.exec(t))&&!((p=y(u,!1)).segment.indexOf("?")>=0);)b(p.id),this._params.push(o.fromPath(p.id,p.type,a.state)),this._segments.push(p.segment),m.push([p.segment,Object(r.P)(this._params)]),v=h.lastIndex;var x=(f=t.substring(v)).indexOf("?");if(x>=0){var w=f.substring(x);if(f=f.substring(0,x),w.length>0)for(v=0;u=g.exec(w);)b((p=y(u,!0)).id),this._params.push(o.fromSearch(p.id,p.type,a.state)),v=h.lastIndex}this._segments.push(f),this._compiled=m.map((function(e){return c.apply(null,e)})).concat(c(f))}return e.encodeDashes=function(e){return encodeURIComponent(e).replace(/-/g,(function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()}))},e.pathSegmentsAndParams=function(e){var t=e._segments,n=e._params.filter((function(e){return e.location===a.a.PATH}));return Object(r.i)(t,n.concat(void 0)).reduce(r.T,[]).filter((function(e){return""!==e&&Object(o.c)(e)}))},e.queryParams=function(e){return e._params.filter((function(e){return e.location===a.a.SEARCH}))},e.compare=function(t,n){var i=function(t){return t._cache.weights=t._cache.weights||function(t){return t._cache.segments=t._cache.segments||t._cache.path.map(e.pathSegmentsAndParams).reduce(r.T,[]).reduce(s.e,[]).map((function(e){return Object(o.l)(e)?u(e):e})).reduce(r.T,[])}(t).map((function(e){return"/"===e?1:Object(o.l)(e)?2:e instanceof a.b?3:void 0}))},l=i(t),c=i(n);!function(e,t,n){for(var r=Math.max(e.length,t.length);e.length<r;)e.push(n);for(;t.length<r;)t.push(n)}(l,c,0);var d,p,f=Object(r.i)(l,c);for(p=0;p<f.length;p++)if(0!==(d=f[p][0]-f[p][1]))return d;return 0},e.prototype.append=function(e){return this._children.push(e),e._cache={path:this._cache.path.concat(e),parent:this,pattern:null},e},e.prototype.isRoot=function(){return this._cache.path[0]===this},e.prototype.toString=function(){return this.pattern},e.prototype._getDecodedParamValue=function(e,t){return Object(o.c)(e)&&(this.config.decodeParams&&!t.type.raw&&(e=Object(o.a)(e)?e.map((function(e){return decodeURIComponent(e)})):decodeURIComponent(e)),e=t.type.decode(e)),t.value(e)},e.prototype.exec=function(e,t,n,o){var a=this;void 0===t&&(t={}),void 0===o&&(o={});var s,l,c,u=(s=this._cache,l="pattern",c=function(){return new RegExp(["^",Object(r.S)(a._cache.path.map(Object(i.n)("_compiled"))).join(""),!1===a.config.strict?"/?":"","$"].join(""),a.config.caseInsensitive?"i":void 0)},s[l]=s[l]||c()).exec(e);if(!u)return null;var d,p,f,h=this.parameters(),g=h.filter((function(e){return!e.isSearch()})),m=h.filter((function(e){return e.isSearch()})),v=this._cache.path.map((function(e){return e._segments.length-1})).reduce((function(e,t){return e+t})),b={};if(v!==u.length-1)throw new Error("Unbalanced capture group in route '"+this.pattern+"'");for(var y=0;y<v;y++){for(var x=g[y],w=u[y+1],k=0;k<x.replace.length;k++)x.replace[k].from===w&&(w=x.replace[k].to);w&&!0===x.array&&(d=void 0,p=void 0,f=void 0,p=(d=function(e){return e.split("").reverse().join("")})(w).split(/-(?!\\)/),f=Object(r.B)(p,d),w=Object(r.B)(f,(function(e){return e.replace(/\\-/g,"-")})).reverse()),b[x.id]=this._getDecodedParamValue(w,x)}return m.forEach((function(e){for(var n=t[e.id],r=0;r<e.replace.length;r++)e.replace[r].from===n&&(n=e.replace[r].to);b[e.id]=a._getDecodedParamValue(n,e)})),n&&(b["#"]=n),b},e.prototype.parameters=function(e){return void 0===e&&(e={}),!1===e.inherit?this._params:Object(r.S)(this._cache.path.map((function(e){return e._params})))},e.prototype.parameter=function(e,t){var n=this;void 0===t&&(t={});var r=this._cache.parent;return function(){for(var t=0,r=n._params;t<r.length;t++){var i=r[t];if(i.id===e)return i}}()||!1!==t.inherit&&r&&r.parameter(e,t)||null},e.prototype.validates=function(e){return e=e||{},this.parameters().filter((function(t){return e.hasOwnProperty(t.id)})).map((function(t){return n=t,r=e[t.id],!n||n.validates(r);var n,r})).reduce(r.e,!0)},e.prototype.format=function(t){void 0===t&&(t={});var n=this._cache.path,i=n.map(e.pathSegmentsAndParams).reduce(r.T,[]).map((function(e){return Object(o.l)(e)?e:s(e)})),a=n.map(e.queryParams).reduce(r.T,[]).map(s);if(i.concat(a).filter((function(e){return!1===e.isValid})).length)return null;function s(e){var n=e.value(t[e.id]),r=e.validates(n),i=e.isDefaultValue(n),o=!!i&&e.squash,a=e.type.encode(n);return{param:e,value:n,isValid:r,isDefaultValue:i,squash:o,encoded:a}}var l=i.reduce((function(t,n){if(Object(o.l)(n))return t+n;var i=n.squash,a=n.encoded,s=n.param;return!0===i?t.match(/\/$/)?t.slice(0,-1):t:Object(o.l)(i)?t+i:!1!==i||null==a?t:Object(o.a)(a)?t+Object(r.B)(a,e.encodeDashes).join("-"):s.raw?t+a:t+encodeURIComponent(a)}),""),c=a.map((function(e){var t=e.param,n=e.squash,i=e.encoded,a=e.isDefaultValue;if(!(null==i||a&&!1!==n)&&(Object(o.a)(i)||(i=[i]),0!==i.length))return t.raw||(i=Object(r.B)(i,encodeURIComponent)),i.map((function(e){return t.id+"="+e}))})).filter(r.y).reduce(r.T,[]).join("&");return l+(c?"?"+c:"")+(t["#"]?"#"+t["#"]:"")},e.nameValidator=/^\w+([-.]+\w+)*(?:\[\])?$/,e}()},function(e,t,n){var r; /*! * jQuery JavaScript Library v3.5.1 * https://jquery.com/ @@ -22,7 +22,7 @@ * * Date: 2020-03-14 */ -function(e){var t,n,r,i,o,a,s,l,c,u,d,p,f,h,g,m,v,b,y,x="sizzle"+1*new Date,w=e.document,k=0,A=0,E=le(),S=le(),$=le(),C=le(),_=function(e,t){return e===t&&(d=!0),0},O={}.hasOwnProperty,T=[],j=T.pop,P=T.push,D=T.push,R=T.slice,I=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},N="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",z="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",L="\\["+M+"*("+z+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+z+"))|)"+M+"*\\]",B=":("+z+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+L+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),q=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),V=new RegExp("^"+M+"*,"+M+"*"),U=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),H=new RegExp(M+"|>"),G=new RegExp(B),W=new RegExp("^"+z+"$"),Y={ID:new RegExp("^#("+z+")"),CLASS:new RegExp("^\\.("+z+")"),TAG:new RegExp("^("+z+"|[*])"),ATTR:new RegExp("^"+L),PSEUDO:new RegExp("^"+B),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+N+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},X=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){p()},ae=xe((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{D.apply(T=R.call(w.childNodes),w.childNodes),T[w.childNodes.length].nodeType}catch(e){D={apply:T.length?function(e,t){P.apply(e,R.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,i){var o,s,c,u,d,h,v,b=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(p(t),t=t||f,g)){if(11!==w&&(d=K.exec(e)))if(o=d[1]){if(9===w){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(b&&(c=b.getElementById(o))&&y(t,c)&&c.id===o)return r.push(c),r}else{if(d[2])return D.apply(r,t.getElementsByTagName(e)),r;if((o=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return D.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!C[e+" "]&&(!m||!m.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(v=e,b=t,1===w&&(H.test(e)||U.test(e))){for((b=ee.test(e)&&ve(t.parentNode)||t)===t&&n.scope||((u=t.getAttribute("id"))?u=u.replace(re,ie):t.setAttribute("id",u=x)),s=(h=a(e)).length;s--;)h[s]=(u?"#"+u:":scope")+" "+ye(h[s]);v=h.join(",")}try{return D.apply(r,b.querySelectorAll(v)),r}catch(t){C(e,!0)}finally{u===x&&t.removeAttribute("id")}}}return l(e.replace(q,"$1"),t,r,i)}function le(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function ce(e){return e[x]=!0,e}function ue(e){var t=f.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ae(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function me(e){return ce((function(t){return t=+t,ce((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},o=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!X.test(t||n&&n.nodeName||"HTML")},p=se.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!=f&&9===a.nodeType&&a.documentElement?(h=(f=a).documentElement,g=!o(f),w!=f&&(i=f.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.scope=ue((function(e){return h.appendChild(e).appendChild(f.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ue((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ue((function(e){return e.appendChild(f.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=J.test(f.getElementsByClassName),n.getById=ue((function(e){return h.appendChild(e).id=x,!f.getElementsByName||!f.getElementsByName(x).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],m=[],(n.qsa=J.test(f.querySelectorAll))&&(ue((function(e){var t;h.appendChild(e).innerHTML="<a id='"+x+"'></a><select id='"+x+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+M+"*(?:value|"+N+")"),e.querySelectorAll("[id~="+x+"-]").length||m.push("~="),(t=f.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")})),ue((function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=f.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")}))),(n.matchesSelector=J.test(b=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue((function(e){n.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),v.push("!=",B)})),m=m.length&&new RegExp(m.join("|")),v=v.length&&new RegExp(v.join("|")),t=J.test(h.compareDocumentPosition),y=t||J.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},_=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==f||e.ownerDocument==w&&y(w,e)?-1:t==f||t.ownerDocument==w&&y(w,t)?1:u?I(u,e)-I(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==f?-1:t==f?1:i?-1:o?1:u?I(u,e)-I(u,t):0;if(i===o)return pe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?pe(a[r],s[r]):a[r]==w?-1:s[r]==w?1:0},f):f},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(p(e),n.matchesSelector&&g&&!C[t+" "]&&(!v||!v.test(t))&&(!m||!m.test(t)))try{var r=b.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){C(t,!0)}return se(t,f,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=f&&p(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=f&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&O.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,r=[],i=0,o=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(_),d){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return u=null,e},i=se.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=se.selectors={cacheLength:50,createPseudo:ce,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&G.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=se.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,p,f,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),b=!l&&!s,y=!1;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&b){for(y=(f=(c=(u=(d=(p=m)[x]||(p[x]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]||[])[0]===k&&c[1])&&c[2],p=f&&m.childNodes[f];p=++f&&p&&p[g]||(y=f=0)||h.pop();)if(1===p.nodeType&&++y&&p===t){u[e]=[k,f,y];break}}else if(b&&(y=f=(c=(u=(d=(p=t)[x]||(p[x]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]||[])[0]===k&&c[1]),!1===y)for(;(p=++f&&p&&p[g]||(y=f=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++y||(b&&((u=(d=p[x]||(p[x]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]=[k,y]),p!==t)););return(y-=i)===r||y%r==0&&y/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return i[x]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=I(e,o[a])]=!(n[r]=o[a])})):function(e){return i(e,0,n)}):i}},pseudos:{not:ce((function(e){var t=[],n=[],r=s(e.replace(q,"$1"));return r[x]?ce((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:ce((function(e){return function(t){return se(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:ce((function(e){return W.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:me((function(){return[0]})),last:me((function(e,t){return[t-1]})),eq:me((function(e,t,n){return[n<0?n+t:n]})),even:me((function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e})),odd:me((function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e})),lt:me((function(e,t,n){for(var r=n<0?n+t:n>t?t:n;--r>=0;)e.push(r);return e})),gt:me((function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e}))}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=he(t);function be(){}function ye(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function xe(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=A++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,l){var c,u,d,p=[k,s];if(l){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,l))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(u=(d=t[x]||(t[x]={}))[t.uniqueID]||(d[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((c=u[o])&&c[0]===k&&c[1]===s)return p[2]=c[2];if(u[o]=p,p[2]=e(t,n,l))return!0}return!1}}function we(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function ke(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;s<l;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),c&&t.push(s)));return a}function Ae(e,t,n,r,i,o){return r&&!r[x]&&(r=Ae(r)),i&&!i[x]&&(i=Ae(i,o)),ce((function(o,a,s,l){var c,u,d,p=[],f=[],h=a.length,g=o||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:ke(g,p,e,s,l),v=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,v,s,l),r)for(c=ke(v,f),r(c,[],s,l),u=c.length;u--;)(d=c[u])&&(v[f[u]]=!(m[f[u]]=d));if(o){if(i||e){if(i){for(c=[],u=v.length;u--;)(d=v[u])&&c.push(m[u]=d);i(null,v=[],c,l)}for(u=v.length;u--;)(d=v[u])&&(c=i?I(o,d):p[u])>-1&&(o[c]=!(a[c]=d))}}else v=ke(v===a?v.splice(h,v.length):v),i?i(null,a,v,l):D.apply(a,v)}))}function Ee(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],l=a?1:0,u=xe((function(e){return e===t}),s,!0),d=xe((function(e){return I(t,e)>-1}),s,!0),p=[function(e,n,r){var i=!a&&(r||n!==c)||((t=n).nodeType?u(e,n,r):d(e,n,r));return t=null,i}];l<o;l++)if(n=r.relative[e[l].type])p=[xe(we(p),n)];else{if((n=r.filter[e[l].type].apply(null,e[l].matches))[x]){for(i=++l;i<o&&!r.relative[e[i].type];i++);return Ae(l>1&&we(p),l>1&&ye(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(q,"$1"),n,l<i&&Ee(e.slice(l,i)),i<o&&Ee(e=e.slice(i)),i<o&&ye(e))}p.push(n)}return we(p)}return be.prototype=r.filters=r.pseudos,r.setFilters=new be,a=se.tokenize=function(e,t){var n,i,o,a,s,l,c,u=S[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=r.preFilter;s;){for(a in n&&!(i=V.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),n=!1,(i=U.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(q," ")}),s=s.slice(n.length)),r.filter)!(i=Y[a].exec(s))||c[a]&&!(i=c[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?se.error(e):S(e,l).slice(0)},s=se.compile=function(e,t){var n,i=[],o=[],s=$[e+" "];if(!s){for(t||(t=a(e)),n=t.length;n--;)(s=Ee(t[n]))[x]?i.push(s):o.push(s);(s=$(e,function(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,l,u){var d,h,m,v=0,b="0",y=o&&[],x=[],w=c,A=o||i&&r.find.TAG("*",u),E=k+=null==w?1:Math.random()||.1,S=A.length;for(u&&(c=a==f||a||u);b!==S&&null!=(d=A[b]);b++){if(i&&d){for(h=0,a||d.ownerDocument==f||(p(d),s=!g);m=e[h++];)if(m(d,a||f,s)){l.push(d);break}u&&(k=E)}n&&((d=!m&&d)&&v--,o&&y.push(d))}if(v+=b,n&&b!==v){for(h=0;m=t[h++];)m(y,x,a,s);if(o){if(v>0)for(;b--;)y[b]||x[b]||(x[b]=j.call(l));x=ke(x)}D.apply(l,x),u&&!o&&x.length>0&&v+t.length>1&&se.uniqueSort(l)}return u&&(k=E,c=w),y};return n?ce(o):o}(o,i))).selector=e}return s},l=se.select=function(e,t,n,i){var o,l,c,u,d,p="function"==typeof e&&e,f=!i&&a(e=p.selector||e);if(n=n||[],1===f.length){if((l=f[0]=f[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&g&&r.relative[l[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(o=Y.needsContext.test(e)?0:l.length;o--&&(c=l[o],!r.relative[u=c.type]);)if((d=r.find[u])&&(i=d(c.matches[0].replace(te,ne),ee.test(l[0].type)&&ve(t.parentNode)||t))){if(l.splice(o,1),!(e=i.length&&ye(l)))return D.apply(n,i),n;break}}return(p||s(e,f))(i,t,!g,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},n.sortStable=x.split("").sort(_).join("")===x,n.detectDuplicates=!!d,p(),n.sortDetached=ue((function(e){return 1&e.compareDocumentPosition(f.createElement("fieldset"))})),ue((function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")}))||de("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ue((function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||de("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ue((function(e){return null==e.getAttribute("disabled")}))||de(N,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),se}(n);A.find=S,A.expr=S.selectors,A.expr[":"]=A.expr.pseudos,A.uniqueSort=A.unique=S.uniqueSort,A.text=S.getText,A.isXMLDoc=S.isXML,A.contains=S.contains,A.escapeSelector=S.escape;var $=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&A(e).is(n))break;r.push(e)}return r},C=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},_=A.expr.match.needsContext;function O(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var T=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return v(t)?A.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?A.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?A.grep(e,(function(e){return u.call(t,e)>-1!==n})):A.filter(t,e,n)}A.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?A.find.matchesSelector(r,e)?[r]:[]:A.find.matches(e,A.grep(t,(function(e){return 1===e.nodeType})))},A.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(A(e).filter((function(){for(t=0;t<r;t++)if(A.contains(i[t],this))return!0})));for(n=this.pushStack([]),t=0;t<r;t++)A.find(e,i[t],n);return r>1?A.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&_.test(e)?A(e):e||[],!1).length}});var P,D=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(A.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||P,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:D.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof A?t[0]:t,A.merge(this,A.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),T.test(r[1])&&A.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=y.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(A):A.makeArray(e,this)}).prototype=A.fn,P=A(y);var R=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};function N(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}A.fn.extend({has:function(e){var t=A(e,this),n=t.length;return this.filter((function(){for(var e=0;e<n;e++)if(A.contains(this,t[e]))return!0}))},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&A(e);if(!_.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&A.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?A.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(A(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(A.uniqueSort(A.merge(this.get(),A(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),A.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return $(e,"parentNode")},parentsUntil:function(e,t,n){return $(e,"parentNode",n)},next:function(e){return N(e,"nextSibling")},prev:function(e){return N(e,"previousSibling")},nextAll:function(e){return $(e,"nextSibling")},prevAll:function(e){return $(e,"previousSibling")},nextUntil:function(e,t,n){return $(e,"nextSibling",n)},prevUntil:function(e,t,n){return $(e,"previousSibling",n)},siblings:function(e){return C((e.parentNode||{}).firstChild,e)},children:function(e){return C(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(O(e,"template")&&(e=e.content||e),A.merge([],e.childNodes))}},(function(e,t){A.fn[e]=function(n,r){var i=A.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=A.filter(r,i)),this.length>1&&(I[e]||A.uniqueSort(i),R.test(e)&&i.reverse()),this.pushStack(i)}}));var M=/[^\x20\t\r\n\f]+/g;function z(e){return e}function L(e){throw e}function B(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}A.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return A.each(e.match(M)||[],(function(e,n){t[n]=!0})),t}(e):A.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},c={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){A.each(n,(function(n,r){v(r)?e.unique&&c.has(r)||o.push(r):r&&r.length&&"string"!==k(r)&&t(r)}))}(arguments),n&&!t&&l()),this},remove:function(){return A.each(arguments,(function(e,t){for(var n;(n=A.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?A.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},A.extend({Deferred:function(e){var t=[["notify","progress",A.Callbacks("memory"),A.Callbacks("memory"),2],["resolve","done",A.Callbacks("once memory"),A.Callbacks("once memory"),0,"resolved"],["reject","fail",A.Callbacks("once memory"),A.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return A.Deferred((function(n){A.each(t,(function(t,r){var i=v(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,r,i){var o=0;function a(e,t,r,i){return function(){var s=this,l=arguments,c=function(){var n,c;if(!(e<o)){if((n=r.apply(s,l))===t.promise())throw new TypeError("Thenable self-resolution");c=n&&("object"==typeof n||"function"==typeof n)&&n.then,v(c)?i?c.call(n,a(o,t,z,i),a(o,t,L,i)):(o++,c.call(n,a(o,t,z,i),a(o,t,L,i),a(o,t,z,t.notifyWith))):(r!==z&&(s=void 0,l=[n]),(i||t.resolveWith)(s,l))}},u=i?c:function(){try{c()}catch(n){A.Deferred.exceptionHook&&A.Deferred.exceptionHook(n,u.stackTrace),e+1>=o&&(r!==L&&(s=void 0,l=[n]),t.rejectWith(s,l))}};e?u():(A.Deferred.getStackHook&&(u.stackTrace=A.Deferred.getStackHook()),n.setTimeout(u))}}return A.Deferred((function(n){t[0][3].add(a(0,n,v(i)?i:z,n.notifyWith)),t[1][3].add(a(0,n,v(e)?e:z)),t[2][3].add(a(0,n,v(r)?r:L))})).promise()},promise:function(e){return null!=e?A.extend(e,i):i}},o={};return A.each(t,(function(e,n){var a=n[2],s=n[5];i[n[1]]=a.add,s&&a.add((function(){r=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(n[3].fire),o[n[0]]=function(){return o[n[0]+"With"](this===o?void 0:this,arguments),this},o[n[0]+"With"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=A.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(B(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||v(i[n]&&i[n].then)))return o.then();for(;n--;)B(i[n],a(n),o.reject);return o.promise()}});var F=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;A.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&F.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},A.readyException=function(e){n.setTimeout((function(){throw e}))};var q=A.Deferred();function V(){y.removeEventListener("DOMContentLoaded",V),n.removeEventListener("load",V),A.ready()}A.fn.ready=function(e){return q.then(e).catch((function(e){A.readyException(e)})),this},A.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--A.readyWait:A.isReady)||(A.isReady=!0,!0!==e&&--A.readyWait>0||q.resolveWith(y,[A]))}}),A.ready.then=q.then,"complete"===y.readyState||"loading"!==y.readyState&&!y.documentElement.doScroll?n.setTimeout(A.ready):(y.addEventListener("DOMContentLoaded",V),n.addEventListener("load",V));var U=function(e,t,n,r,i,o,a){var s=0,l=e.length,c=null==n;if("object"===k(n))for(s in i=!0,n)U(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(A(e),n)})),t))for(;s<l;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:c?t.call(e):l?t(e[0],n):o},H=/^-ms-/,G=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function Y(e){return e.replace(H,"ms-").replace(G,W)}var X=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Z(){this.expando=A.expando+Z.uid++}Z.uid=1,Z.prototype={cache:function(e){var t=e[this.expando];return t||(t={},X(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[Y(t)]=n;else for(r in t)i[Y(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][Y(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(Y):(t=Y(t))in r?[t]:t.match(M)||[]).length;for(;n--;)delete r[t[n]]}(void 0===t||A.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!A.isEmptyObject(t)}};var Q=new Z,J=new Z,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=function(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:K.test(e)?JSON.parse(e):e)}(n)}catch(e){}J.set(e,t,n)}else n=void 0;return n}A.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),A.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){for(n=a.length;n--;)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=Y(r.slice(5)),te(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each((function(){J.set(this,e)})):U(this,(function(t){var n;if(o&&void 0===t)return void 0!==(n=J.get(o,e))||void 0!==(n=te(o,e))?n:void 0;this.each((function(){J.set(this,e,t)}))}),null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),A.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,A.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=A.queue(e,t),r=n.length,i=n.shift(),o=A._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){A.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:A.Callbacks("once memory").add((function(){Q.remove(e,[t+"queue",n])}))})}}),A.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?A.queue(this[0],e):void 0===t?this:this.each((function(){var n=A.queue(this,e,t);A._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&A.dequeue(this,e)}))},dequeue:function(e){return this.each((function(){A.dequeue(this,e)}))},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=A.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ne=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,re=new RegExp("^(?:([+-])=|)("+ne+")([a-z%]*)$","i"),ie=["Top","Right","Bottom","Left"],oe=y.documentElement,ae=function(e){return A.contains(e.ownerDocument,e)},se={composed:!0};oe.getRootNode&&(ae=function(e){return A.contains(e.ownerDocument,e)||e.getRootNode(se)===e.ownerDocument});var le=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ae(e)&&"none"===A.css(e,"display")};function ce(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return A.css(e,t,"")},l=s(),c=n&&n[3]||(A.cssNumber[t]?"":"px"),u=e.nodeType&&(A.cssNumber[t]||"px"!==c&&+l)&&re.exec(A.css(e,t));if(u&&u[3]!==c){for(l/=2,c=c||u[3],u=+l||1;a--;)A.style(e,t,u+c),(1-o)*(1-(o=s()/l||.5))<=0&&(a=0),u/=o;u*=2,A.style(e,t,u+c),n=n||[]}return n&&(u=+u||+l||0,i=n[1]?u+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=u,r.end=i)),i}var ue={};function de(e){var t,n=e.ownerDocument,r=e.nodeName,i=ue[r];return i||(t=n.body.appendChild(n.createElement(r)),i=A.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),ue[r]=i,i)}function pe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=Q.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&le(r)&&(i[o]=de(r))):"none"!==n&&(i[o]="none",Q.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}A.fn.extend({show:function(){return pe(this,!0)},hide:function(){return pe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each((function(){le(this)?A(this).show():A(this).hide()}))}});var fe,he,ge=/^(?:checkbox|radio)$/i,me=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,ve=/^$|^module$|\/(?:java|ecma)script/i;fe=y.createDocumentFragment().appendChild(y.createElement("div")),(he=y.createElement("input")).setAttribute("type","radio"),he.setAttribute("checked","checked"),he.setAttribute("name","t"),fe.appendChild(he),m.checkClone=fe.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.innerHTML="<textarea>x</textarea>",m.noCloneChecked=!!fe.cloneNode(!0).lastChild.defaultValue,fe.innerHTML="<option></option>",m.option=!!fe.lastChild;var be={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&O(e,t)?A.merge([e],n):n}function xe(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,m.option||(be.optgroup=be.option=[1,"<select multiple='multiple'>","</select>"]);var we=/<|&#?\w+;/;function ke(e,t,n,r,i){for(var o,a,s,l,c,u,d=t.createDocumentFragment(),p=[],f=0,h=e.length;f<h;f++)if((o=e[f])||0===o)if("object"===k(o))A.merge(p,o.nodeType?[o]:o);else if(we.test(o)){for(a=a||d.appendChild(t.createElement("div")),s=(me.exec(o)||["",""])[1].toLowerCase(),l=be[s]||be._default,a.innerHTML=l[1]+A.htmlPrefilter(o)+l[2],u=l[0];u--;)a=a.lastChild;A.merge(p,a.childNodes),(a=d.firstChild).textContent=""}else p.push(t.createTextNode(o));for(d.textContent="",f=0;o=p[f++];)if(r&&A.inArray(o,r)>-1)i&&i.push(o);else if(c=ae(o),a=ye(d.appendChild(o),"script"),c&&xe(a),n)for(u=0;o=a[u++];)ve.test(o.type||"")&&n.push(o);return d}var Ae=/^key/,Ee=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Se=/^([^.]*)(?:\.(.+)|)/;function $e(){return!0}function Ce(){return!1}function _e(e,t){return e===function(){try{return y.activeElement}catch(e){}}()==("focus"===t)}function Oe(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Oe(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ce;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return A().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=A.guid++)),e.each((function(){A.event.add(this,t,i,r,n)}))}function Te(e,t,n){n?(Q.set(e,t,!1),A.event.add(e,t,{namespace:!1,handler:function(e){var r,i,o=Q.get(this,t);if(1&e.isTrigger&&this[t]){if(o.length)(A.event.special[t]||{}).delegateType&&e.stopPropagation();else if(o=s.call(arguments),Q.set(this,t,o),r=n(this,t),this[t](),o!==(i=Q.get(this,t))||r?Q.set(this,t,!1):i={},o!==i)return e.stopImmediatePropagation(),e.preventDefault(),i.value}else o.length&&(Q.set(this,t,{value:A.event.trigger(A.extend(o[0],A.Event.prototype),o.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,t)&&A.event.add(e,t,$e)}A.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,f,h,g,m=Q.get(e);if(X(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&A.find.matchesSelector(oe,i),n.guid||(n.guid=A.guid++),(l=m.events)||(l=m.events=Object.create(null)),(a=m.handle)||(a=m.handle=function(t){return void 0!==A&&A.event.triggered!==t.type?A.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(M)||[""]).length;c--;)f=g=(s=Se.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),f&&(d=A.event.special[f]||{},f=(i?d.delegateType:d.bindType)||f,d=A.event.special[f]||{},u=A.extend({type:f,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&A.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=l[f])||((p=l[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(f,a)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,u):p.push(u),A.event.global[f]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,f,h,g,m=Q.hasData(e)&&Q.get(e);if(m&&(l=m.events)){for(c=(t=(t||"").match(M)||[""]).length;c--;)if(f=g=(s=Se.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),f){for(d=A.event.special[f]||{},p=l[f=(r?d.delegateType:d.bindType)||f]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)u=p[o],!i&&g!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(p.splice(o,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));a&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,h,m.handle)||A.removeEvent(e,f,m.handle),delete l[f])}else for(f in l)A.event.remove(e,f+t[c],n,r,!0);A.isEmptyObject(l)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=A.event.fix(e),c=(Q.get(this,"events")||Object.create(null))[l.type]||[],u=A.event.special[l.type]||{};for(s[0]=l,t=1;t<arguments.length;t++)s[t]=arguments[t];if(l.delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,l)){for(a=A.event.handlers.call(this,l,c),t=0;(i=a[t++])&&!l.isPropagationStopped();)for(l.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!l.isImmediatePropagationStopped();)l.rnamespace&&!1!==o.namespace&&!l.rnamespace.test(o.namespace)||(l.handleObj=o,l.data=o.data,void 0!==(r=((A.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(l.result=r)&&(l.preventDefault(),l.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,l),l.result}},handlers:function(e,t){var n,r,i,o,a,s=[],l=t.delegateCount,c=e.target;if(l&&c.nodeType&&!("click"===e.type&&e.button>=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],a={},n=0;n<l;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?A(i,this).index(c)>-1:A.find(i,this,null,[c]).length),a[i]&&o.push(r);o.length&&s.push({elem:c,handlers:o})}return c=this,l<t.length&&s.push({elem:c,handlers:t.slice(l)}),s},addProp:function(e,t){Object.defineProperty(A.Event.prototype,e,{enumerable:!0,configurable:!0,get:v(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[A.expando]?e:new A.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return ge.test(t.type)&&t.click&&O(t,"input")&&Te(t,"click",$e),!1},trigger:function(e){var t=this||e;return ge.test(t.type)&&t.click&&O(t,"input")&&Te(t,"click"),!0},_default:function(e){var t=e.target;return ge.test(t.type)&&t.click&&O(t,"input")&&Q.get(t,"click")||O(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},A.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},A.Event=function(e,t){if(!(this instanceof A.Event))return new A.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?$e:Ce,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&A.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[A.expando]=!0},A.Event.prototype={constructor:A.Event,isDefaultPrevented:Ce,isPropagationStopped:Ce,isImmediatePropagationStopped:Ce,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=$e,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=$e,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=$e,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},A.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Ae.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ee.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},A.event.addProp),A.each({focus:"focusin",blur:"focusout"},(function(e,t){A.event.special[e]={setup:function(){return Te(this,e,_e),!1},trigger:function(){return Te(this,e),!0},delegateType:t}})),A.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},(function(e,t){A.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||A.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}})),A.fn.extend({on:function(e,t,n,r){return Oe(this,e,t,n,r)},one:function(e,t,n,r){return Oe(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,A(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ce),this.each((function(){A.event.remove(this,e,n,t)}))}});var je=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,De=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Re(e,t){return O(e,"table")&&O(11!==t.nodeType?t:t.firstChild,"tr")&&A(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Q.hasData(e)&&(s=Q.get(e).events))for(i in Q.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)A.event.add(t,i,s[i][n]);J.hasData(e)&&(o=J.access(e),a=A.extend({},o),J.set(t,a))}}function ze(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ge.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Le(e,t,n,r){t=l(t);var i,o,a,s,c,u,d=0,p=e.length,f=p-1,h=t[0],g=v(h);if(g||p>1&&"string"==typeof h&&!m.checkClone&&Pe.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),Le(o,t,n,r)}));if(p&&(o=(i=ke(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=A.map(ye(i,"script"),Ie)).length;d<p;d++)c=i,d!==f&&(c=A.clone(c,!0,!0),s&&A.merge(a,ye(c,"script"))),n.call(e[d],c,d);if(s)for(u=a[a.length-1].ownerDocument,A.map(a,Ne),d=0;d<s;d++)c=a[d],ve.test(c.type||"")&&!Q.access(c,"globalEval")&&A.contains(u,c)&&(c.src&&"module"!==(c.type||"").toLowerCase()?A._evalUrl&&!c.noModule&&A._evalUrl(c.src,{nonce:c.nonce||c.getAttribute("nonce")},u):w(c.textContent.replace(De,""),c,u))}return e}function Be(e,t,n){for(var r,i=t?A.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||A.cleanData(ye(r)),r.parentNode&&(n&&ae(r)&&xe(ye(r,"script")),r.parentNode.removeChild(r));return e}A.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),l=ae(e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||A.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)ze(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,s);return(a=ye(s,"script")).length>0&&xe(a,!l&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=A.event.special,o=0;void 0!==(n=e[o]);o++)if(X(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?A.event.remove(n,r):A.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),A.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return U(this,(function(e){return void 0===e?A.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Le(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)}))},prepend:function(){return Le(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Le(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Le(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(A.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return A.clone(this,e,t)}))},html:function(e){return U(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!je.test(e)&&!be[(me.exec(e)||["",""])[1].toLowerCase()]){e=A.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(A.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)}),null,e,arguments.length)},replaceWith:function(){var e=[];return Le(this,arguments,(function(t){var n=this.parentNode;A.inArray(this,e)<0&&(A.cleanData(ye(this)),n&&n.replaceChild(t,this))}),e)}}),A.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},(function(e,t){A.fn[e]=function(e){for(var n,r=[],i=A(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),A(i[a])[t](n),c.apply(r,n.get());return this.pushStack(r)}}));var Fe=new RegExp("^("+ne+")(?!px)[a-z%]+$","i"),qe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=n),t.getComputedStyle(e)},Ve=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ue=new RegExp(ie.join("|"),"i");function He(e,t,n){var r,i,o,a,s=e.style;return(n=n||qe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ae(e)||(a=A.style(e,t)),!m.pixelBoxStyles()&&Fe.test(a)&&Ue.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Ge(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){c.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",oe.appendChild(c).appendChild(u);var e=n.getComputedStyle(u);r="1%"!==e.top,l=12===t(e.marginLeft),u.style.right="60%",a=36===t(e.right),i=36===t(e.width),u.style.position="absolute",o=12===t(u.offsetWidth/3),oe.removeChild(c),u=null}}function t(e){return Math.round(parseFloat(e))}var r,i,o,a,s,l,c=y.createElement("div"),u=y.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",m.clearCloneStyle="content-box"===u.style.backgroundClip,A.extend(m,{boxSizingReliable:function(){return e(),i},pixelBoxStyles:function(){return e(),a},pixelPosition:function(){return e(),r},reliableMarginLeft:function(){return e(),l},scrollboxSize:function(){return e(),o},reliableTrDimensions:function(){var e,t,r,i;return null==s&&(e=y.createElement("table"),t=y.createElement("tr"),r=y.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",r.style.height="9px",oe.appendChild(e).appendChild(t).appendChild(r),i=n.getComputedStyle(t),s=parseInt(i.height)>3,oe.removeChild(e)),s}}))}();var We=["Webkit","Moz","ms"],Ye=y.createElement("div").style,Xe={};function Ze(e){var t=A.cssProps[e]||Xe[e];return t||(e in Ye?e:Xe[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=We.length;n--;)if((e=We[n]+t)in Ye)return e}(e)||e)}var Qe=/^(none|table(?!-c[ea]).+)/,Je=/^--/,Ke={position:"absolute",visibility:"hidden",display:"block"},et={letterSpacing:"0",fontWeight:"400"};function tt(e,t,n){var r=re.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function nt(e,t,n,r,i,o){var a="width"===t?1:0,s=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=A.css(e,n+ie[a],!0,i)),r?("content"===n&&(l-=A.css(e,"padding"+ie[a],!0,i)),"margin"!==n&&(l-=A.css(e,"border"+ie[a]+"Width",!0,i))):(l+=A.css(e,"padding"+ie[a],!0,i),"padding"!==n?l+=A.css(e,"border"+ie[a]+"Width",!0,i):s+=A.css(e,"border"+ie[a]+"Width",!0,i));return!r&&o>=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))||0),l}function rt(e,t,n){var r=qe(e),i=(!m.boxSizingReliable()||n)&&"border-box"===A.css(e,"boxSizing",!1,r),o=i,a=He(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Fe.test(a)){if(!n)return a;a="auto"}return(!m.boxSizingReliable()&&i||!m.reliableTrDimensions()&&O(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===A.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===A.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+nt(e,t,n||(i?"border":"content"),o,r,a)+"px"}function it(e,t,n,r,i){return new it.prototype.init(e,t,n,r,i)}A.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=He(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=Y(t),l=Je.test(t),c=e.style;if(l||(t=Ze(s)),a=A.cssHooks[t]||A.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:c[t];"string"===(o=typeof n)&&(i=re.exec(n))&&i[1]&&(n=ce(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||l||(n+=i&&i[3]||(A.cssNumber[s]?"":"px")),m.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=Y(t);return Je.test(t)||(t=Ze(s)),(a=A.cssHooks[t]||A.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=He(e,t,r)),"normal"===i&&t in et&&(i=et[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),A.each(["height","width"],(function(e,t){A.cssHooks[t]={get:function(e,n,r){if(n)return!Qe.test(A.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?rt(e,t,r):Ve(e,Ke,(function(){return rt(e,t,r)}))},set:function(e,n,r){var i,o=qe(e),a=!m.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===A.css(e,"boxSizing",!1,o),l=r?nt(e,t,r,s,o):0;return s&&a&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-nt(e,t,"border",!1,o)-.5)),l&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=A.css(e,t)),tt(0,n,l)}}})),A.cssHooks.marginLeft=Ge(m.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(He(e,"marginLeft"))||e.getBoundingClientRect().left-Ve(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),A.each({margin:"",padding:"",border:"Width"},(function(e,t){A.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(A.cssHooks[e+t].set=tt)})),A.fn.extend({css:function(e,t){return U(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=qe(e),i=t.length;a<i;a++)o[t[a]]=A.css(e,t[a],!1,r);return o}return void 0!==n?A.style(e,t,n):A.css(e,t)}),e,t,arguments.length>1)}}),A.Tween=it,it.prototype={constructor:it,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||A.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(A.cssNumber[n]?"":"px")},cur:function(){var e=it.propHooks[this.prop];return e&&e.get?e.get(this):it.propHooks._default.get(this)},run:function(e){var t,n=it.propHooks[this.prop];return this.options.duration?this.pos=t=A.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):it.propHooks._default.set(this),this}},it.prototype.init.prototype=it.prototype,it.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=A.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){A.fx.step[e.prop]?A.fx.step[e.prop](e):1!==e.elem.nodeType||!A.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:A.style(e.elem,e.prop,e.now+e.unit)}}},it.propHooks.scrollTop=it.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},A.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},A.fx=it.prototype.init,A.fx.step={};var ot,at,st=/^(?:toggle|show|hide)$/,lt=/queueHooks$/;function ct(){at&&(!1===y.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(ct):n.setTimeout(ct,A.fx.interval),A.fx.tick())}function ut(){return n.setTimeout((function(){ot=void 0})),ot=Date.now()}function dt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(e,t,n){var r,i,o=0,a=ft.prefilters.length,s=A.Deferred().always((function(){delete l.elem})),l=function(){if(i)return!1;for(var t=ot||ut(),n=Math.max(0,c.startTime+c.duration-t),r=1-(n/c.duration||0),o=0,a=c.tweens.length;o<a;o++)c.tweens[o].run(r);return s.notifyWith(e,[c,r,n]),r<1&&a?n:(a||s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:A.extend({},t),opts:A.extend(!0,{specialEasing:{},easing:A.easing._default},n),originalProperties:t,originalOptions:n,startTime:ot||ut(),duration:n.duration,tweens:[],createTween:function(t,n){var r=A.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)c.tweens[n].run(1);return t?(s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c,t])):s.rejectWith(e,[c,t]),this}}),u=c.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=Y(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=A.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(u,c.opts.specialEasing);o<a;o++)if(r=ft.prefilters[o].call(c,e,u,c.opts))return v(r.stop)&&(A._queueHooks(c.elem,c.opts.queue).stop=r.stop.bind(r)),r;return A.map(u,pt,c),v(c.opts.start)&&c.opts.start.call(e,c),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always),A.fx.timer(A.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c}A.Animation=A.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ce(n.elem,e,re.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,l,c,u,d="width"in t||"height"in t,p=this,f={},h=e.style,g=e.nodeType&&le(e),m=Q.get(e,"fxshow");for(r in n.queue||(null==(a=A._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always((function(){p.always((function(){a.unqueued--,A.queue(e,"fx").length||a.empty.fire()}))}))),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;g=!0}f[r]=m&&m[r]||A.style(e,r)}if((l=!A.isEmptyObject(t))||!A.isEmptyObject(f))for(r in d&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(c=m&&m.display)&&(c=Q.get(e,"display")),"none"===(u=A.css(e,"display"))&&(c?u=c:(pe([e],!0),c=e.style.display||c,u=A.css(e,"display"),pe([e]))),("inline"===u||"inline-block"===u&&null!=c)&&"none"===A.css(e,"float")&&(l||(p.done((function(){h.display=c})),null==c&&(u=h.display,c="none"===u?"":u)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always((function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}))),l=!1,f)l||(m?"hidden"in m&&(g=m.hidden):m=Q.access(e,"fxshow",{display:c}),o&&(m.hidden=!g),g&&pe([e],!0),p.done((function(){for(r in g||pe([e]),Q.remove(e,"fxshow"),f)A.style(e,r,f[r])}))),l=pt(g?m[r]:0,r,p),r in m||(m[r]=l.start,g&&(l.end=l.start,l.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),A.speed=function(e,t,n){var r=e&&"object"==typeof e?A.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return A.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in A.fx.speeds?r.duration=A.fx.speeds[r.duration]:r.duration=A.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&A.dequeue(this,r.queue)},r},A.fn.extend({fadeTo:function(e,t,n,r){return this.filter(le).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=A.isEmptyObject(e),o=A.speed(t,n,r),a=function(){var t=ft(this,A.extend({},e),o);(i||Q.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&this.queue(e||"fx",[]),this.each((function(){var t=!0,i=null!=e&&e+"queueHooks",o=A.timers,a=Q.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&<.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||A.dequeue(this,e)}))},finish:function(e){return!1!==e&&(e=e||"fx"),this.each((function(){var t,n=Q.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=A.timers,a=r?r.length:0;for(n.finish=!0,A.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish}))}}),A.each(["toggle","show","hide"],(function(e,t){var n=A.fn[t];A.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(dt(t,!0),e,r,i)}})),A.each({slideDown:dt("show"),slideUp:dt("hide"),slideToggle:dt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},(function(e,t){A.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}})),A.timers=[],A.fx.tick=function(){var e,t=0,n=A.timers;for(ot=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||A.fx.stop(),ot=void 0},A.fx.timer=function(e){A.timers.push(e),A.fx.start()},A.fx.interval=13,A.fx.start=function(){at||(at=!0,ct())},A.fx.stop=function(){at=null},A.fx.speeds={slow:600,fast:200,_default:400},A.fn.delay=function(e,t){return e=A.fx&&A.fx.speeds[e]||e,t=t||"fx",this.queue(t,(function(t,r){var i=n.setTimeout(t,e);r.stop=function(){n.clearTimeout(i)}}))},function(){var e=y.createElement("input"),t=y.createElement("select").appendChild(y.createElement("option"));e.type="checkbox",m.checkOn=""!==e.value,m.optSelected=t.selected,(e=y.createElement("input")).value="t",e.type="radio",m.radioValue="t"===e.value}();var ht,gt=A.expr.attrHandle;A.fn.extend({attr:function(e,t){return U(this,A.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each((function(){A.removeAttr(this,e)}))}}),A.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?A.prop(e,t,n):(1===o&&A.isXMLDoc(e)||(i=A.attrHooks[t.toLowerCase()]||(A.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void A.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=A.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&O(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?A.removeAttr(e,n):e.setAttribute(n,n),n}},A.each(A.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=gt[t]||A.find.attr;gt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=gt[a],gt[a]=i,i=null!=n(e,t,r)?a:null,gt[a]=o),i}}));var mt=/^(?:input|select|textarea|button)$/i,vt=/^(?:a|area)$/i;function bt(e){return(e.match(M)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(M)||[]}A.fn.extend({prop:function(e,t){return U(this,A.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[A.propFix[e]||e]}))}}),A.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&A.isXMLDoc(e)||(t=A.propFix[t]||t,i=A.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=A.find.attr(e,"tabindex");return t?parseInt(t,10):mt.test(e.nodeName)||vt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(A.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),A.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){A.propFix[this.toLowerCase()]=this})),A.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,l=0;if(v(e))return this.each((function(t){A(this).addClass(e.call(this,t,yt(this)))}));if((t=xt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+bt(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=bt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,l=0;if(v(e))return this.each((function(t){A(this).removeClass(e.call(this,t,yt(this)))}));if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+bt(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=bt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):v(e)?this.each((function(n){A(this).toggleClass(e.call(this,n,yt(this),t),t)})):this.each((function(){var t,i,o,a;if(r)for(i=0,o=A(this),a=xt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||((t=yt(this))&&Q.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Q.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+bt(yt(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;A.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=v(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,A(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=A.map(i,(function(e){return null==e?"":e+""}))),(t=A.valHooks[this.type]||A.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=A.valHooks[i.type]||A.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(wt,""):null==n?"":n:void 0}}),A.extend({valHooks:{option:{get:function(e){var t=A.find.attr(e,"value");return null!=t?t:bt(A.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r<l;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!O(n.parentNode,"optgroup"))){if(t=A(n).val(),a)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=A.makeArray(t),a=i.length;a--;)((r=i[a]).selected=A.inArray(A.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),A.each(["radio","checkbox"],(function(){A.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=A.inArray(A(e).val(),t)>-1}},m.checkOn||(A.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),m.focusin="onfocusin"in n;var kt=/^(?:focusinfocus|focusoutblur)$/,At=function(e){e.stopPropagation()};A.extend(A.event,{trigger:function(e,t,r,i){var o,a,s,l,c,u,d,p,h=[r||y],g=f.call(e,"type")?e.type:e,m=f.call(e,"namespace")?e.namespace.split("."):[];if(a=p=s=r=r||y,3!==r.nodeType&&8!==r.nodeType&&!kt.test(g+A.event.triggered)&&(g.indexOf(".")>-1&&(m=g.split("."),g=m.shift(),m.sort()),c=g.indexOf(":")<0&&"on"+g,(e=e[A.expando]?e:new A.Event(g,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=m.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:A.makeArray(t,[e]),d=A.event.special[g]||{},i||!d.trigger||!1!==d.trigger.apply(r,t))){if(!i&&!d.noBubble&&!b(r)){for(l=d.delegateType||g,kt.test(l+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(r.ownerDocument||y)&&h.push(s.defaultView||s.parentWindow||n)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?l:d.bindType||g,(u=(Q.get(a,"events")||Object.create(null))[e.type]&&Q.get(a,"handle"))&&u.apply(a,t),(u=c&&a[c])&&u.apply&&X(a)&&(e.result=u.apply(a,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(h.pop(),t)||!X(r)||c&&v(r[g])&&!b(r)&&((s=r[c])&&(r[c]=null),A.event.triggered=g,e.isPropagationStopped()&&p.addEventListener(g,At),r[g](),e.isPropagationStopped()&&p.removeEventListener(g,At),A.event.triggered=void 0,s&&(r[c]=s)),e.result}},simulate:function(e,t,n){var r=A.extend(new A.Event,n,{type:e,isSimulated:!0});A.event.trigger(r,null,t)}}),A.fn.extend({trigger:function(e,t){return this.each((function(){A.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return A.event.trigger(e,t,n,!0)}}),m.focusin||A.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){A.event.simulate(t,e.target,A.event.fix(e))};A.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,t);i||r.addEventListener(e,n,!0),Q.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,t)-1;i?Q.access(r,t,i):(r.removeEventListener(e,n,!0),Q.remove(r,t))}}}));var Et=n.location,St={guid:Date.now()},$t=/\?/;A.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||A.error("Invalid XML: "+e),t};var Ct=/\[\]$/,_t=/\r?\n/g,Ot=/^(?:submit|button|image|reset|file)$/i,Tt=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))A.each(t,(function(t,i){n||Ct.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==k(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}A.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!A.isPlainObject(e))A.each(e,(function(){i(this.name,this.value)}));else for(n in e)jt(n,e[n],t,i);return r.join("&")},A.fn.extend({serialize:function(){return A.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=A.prop(this,"elements");return e?A.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!A(this).is(":disabled")&&Tt.test(this.nodeName)&&!Ot.test(e)&&(this.checked||!ge.test(e))})).map((function(e,t){var n=A(this).val();return null==n?null:Array.isArray(n)?A.map(n,(function(e){return{name:t.name,value:e.replace(_t,"\r\n")}})):{name:t.name,value:n.replace(_t,"\r\n")}})).get()}});var Pt=/%20/g,Dt=/#.*$/,Rt=/([?&])_=[^&]*/,It=/^(.*?):[ \t]*([^\r\n]*)$/gm,Nt=/^(?:GET|HEAD)$/,Mt=/^\/\//,zt={},Lt={},Bt="*/".concat("*"),Ft=y.createElement("a");function qt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(v(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Vt(e,t,n,r){var i={},o=e===Lt;function a(s){var l;return i[s]=!0,A.each(e[s]||[],(function(e,s){var c=s(t,n,r);return"string"!=typeof c||o||i[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),a(c),!1)})),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Ut(e,t){var n,r,i=A.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&A.extend(!0,e,r),e}Ft.href=Et.href,A.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Bt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":A.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ut(Ut(e,A.ajaxSettings),t):Ut(A.ajaxSettings,e)},ajaxPrefilter:qt(zt),ajaxTransport:qt(Lt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,a,s,l,c,u,d,p,f=A.ajaxSetup({},t),h=f.context||f,g=f.context&&(h.nodeType||h.jquery)?A(h):A.event,m=A.Deferred(),v=A.Callbacks("once memory"),b=f.statusCode||{},x={},w={},k="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!a)for(a={};t=It.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,x[e]=t),this},overrideMimeType:function(e){return null==c&&(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||k;return r&&r.abort(t),S(0,t),this}};if(m.promise(E),f.url=((e||f.url||Et.href)+"").replace(Mt,Et.protocol+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(M)||[""],null==f.crossDomain){l=y.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=Ft.protocol+"//"+Ft.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=A.param(f.data,f.traditional)),Vt(zt,f,t,E),c)return E;for(d in(u=A.event&&f.global)&&0==A.active++&&A.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Nt.test(f.type),i=f.url.replace(Dt,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(Pt,"+")):(p=f.url.slice(i.length),f.data&&(f.processData||"string"==typeof f.data)&&(i+=($t.test(i)?"&":"?")+f.data,delete f.data),!1===f.cache&&(i=i.replace(Rt,"$1"),p=($t.test(i)?"&":"?")+"_="+St.guid+++p),f.url=i+p),f.ifModified&&(A.lastModified[i]&&E.setRequestHeader("If-Modified-Since",A.lastModified[i]),A.etag[i]&&E.setRequestHeader("If-None-Match",A.etag[i])),(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&E.setRequestHeader("Content-Type",f.contentType),E.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Bt+"; q=0.01":""):f.accepts["*"]),f.headers)E.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(h,E,f)||c))return E.abort();if(k="abort",v.add(f.complete),E.done(f.success),E.fail(f.error),r=Vt(Lt,f,t,E)){if(E.readyState=1,u&&g.trigger("ajaxSend",[E,f]),c)return E;f.async&&f.timeout>0&&(s=n.setTimeout((function(){E.abort("timeout")}),f.timeout));try{c=!1,r.send(x,S)}catch(e){if(c)throw e;S(-1,e)}}else S(-1,"No Transport");function S(e,t,a,l){var d,p,y,x,w,k=t;c||(c=!0,s&&n.clearTimeout(s),r=void 0,o=l||"",E.readyState=e>0?4:0,d=e>=200&&e<300||304===e,a&&(x=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}(f,E,a)),!d&&A.inArray("script",f.dataTypes)>-1&&(f.converters["text script"]=function(){}),x=function(e,t,n,r){var i,o,a,s,l,c={},u=e.dataTypes.slice();if(u[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=c[l+" "+o]||c["* "+o]))for(i in c)if((s=i.split(" "))[1]===o&&(a=c[l+" "+s[0]]||c["* "+s[0]])){!0===a?a=c[i]:!0!==c[i]&&(o=s[0],u.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(f,x,E,d),d?(f.ifModified&&((w=E.getResponseHeader("Last-Modified"))&&(A.lastModified[i]=w),(w=E.getResponseHeader("etag"))&&(A.etag[i]=w)),204===e||"HEAD"===f.type?k="nocontent":304===e?k="notmodified":(k=x.state,p=x.data,d=!(y=x.error))):(y=k,!e&&k||(k="error",e<0&&(e=0))),E.status=e,E.statusText=(t||k)+"",d?m.resolveWith(h,[p,k,E]):m.rejectWith(h,[E,k,y]),E.statusCode(b),b=void 0,u&&g.trigger(d?"ajaxSuccess":"ajaxError",[E,f,d?p:y]),v.fireWith(h,[E,k]),u&&(g.trigger("ajaxComplete",[E,f]),--A.active||A.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return A.get(e,t,n,"json")},getScript:function(e,t){return A.get(e,void 0,t,"script")}}),A.each(["get","post"],(function(e,t){A[t]=function(e,n,r,i){return v(n)&&(i=i||r,r=n,n=void 0),A.ajax(A.extend({url:e,type:t,dataType:i,data:n,success:r},A.isPlainObject(e)&&e))}})),A.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),A._evalUrl=function(e,t,n){return A.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){A.globalEval(e,t,n)}})},A.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=A(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){A(this).wrapInner(e.call(this,t))})):this.each((function(){var t=A(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){A(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){A(this).replaceWith(this.childNodes)})),this}}),A.expr.pseudos.hidden=function(e){return!A.expr.pseudos.visible(e)},A.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},A.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Ht={0:200,1223:204},Gt=A.ajaxSettings.xhr();m.cors=!!Gt&&"withCredentials"in Gt,m.ajax=Gt=!!Gt,A.ajaxTransport((function(e){var t,r;if(m.cors||Gt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Ht[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),A.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),A.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return A.globalEval(e),e}}}),A.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),A.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=A("<script>").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),y.head.appendChild(t[0])},abort:function(){n&&n()}}}));var Wt,Yt=[],Xt=/(=)\?(?=&|$)|\?\?/;A.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||A.expando+"_"+St.guid++;return this[e]=!0,e}}),A.ajaxPrefilter("json jsonp",(function(e,t,r){var i,o,a,s=!1!==e.jsonp&&(Xt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Xt.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return i=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Xt,"$1"+i):!1!==e.jsonp&&(e.url+=($t.test(e.url)?"&":"?")+e.jsonp+"="+i),e.converters["script json"]=function(){return a||A.error(i+" was not called"),a[0]},e.dataTypes[0]="json",o=n[i],n[i]=function(){a=arguments},r.always((function(){void 0===o?A(n).removeProp(i):n[i]=o,e[i]&&(e.jsonpCallback=t.jsonpCallback,Yt.push(i)),a&&v(o)&&o(a[0]),a=o=void 0})),"script"})),m.createHTMLDocument=((Wt=y.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Wt.childNodes.length),A.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?((r=(t=y.implementation.createHTMLDocument("")).createElement("base")).href=y.location.href,t.head.appendChild(r)):t=y),o=!n&&[],(i=T.exec(e))?[t.createElement(i[1])]:(i=ke([e],t,o),o&&o.length&&A(o).remove(),A.merge([],i.childNodes)));var r,i,o},A.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=bt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&A.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done((function(e){o=arguments,a.html(r?A("<div>").append(A.parseHTML(e)).find(r):e)})).always(n&&function(e,t){a.each((function(){n.apply(this,o||[e.responseText,t,e])}))}),this},A.expr.pseudos.animated=function(e){return A.grep(A.timers,(function(t){return e===t.elem})).length},A.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,c=A.css(e,"position"),u=A(e),d={};"static"===c&&(e.style.position="relative"),s=u.offset(),o=A.css(e,"top"),l=A.css(e,"left"),("absolute"===c||"fixed"===c)&&(o+l).indexOf("auto")>-1?(a=(r=u.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),v(t)&&(t=t.call(e,n,A.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):("number"==typeof d.top&&(d.top+="px"),"number"==typeof d.left&&(d.left+="px"),u.css(d))}},A.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each((function(t){A.offset.setOffset(this,e,t)}));var t,n,r=this[0];return r?r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===A.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===A.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=A(e).offset()).top+=A.css(e,"borderTopWidth",!0),i.left+=A.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-A.css(r,"marginTop",!0),left:t.left-i.left-A.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent;e&&"static"===A.css(e,"position");)e=e.offsetParent;return e||oe}))}}),A.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(e,t){var n="pageYOffset"===t;A.fn[e]=function(r){return U(this,(function(e,r,i){var o;if(b(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i}),e,r,arguments.length)}})),A.each(["top","left"],(function(e,t){A.cssHooks[t]=Ge(m.pixelPosition,(function(e,n){if(n)return n=He(e,t),Fe.test(n)?A(e).position()[t]+"px":n}))})),A.each({Height:"height",Width:"width"},(function(e,t){A.each({padding:"inner"+e,content:t,"":"outer"+e},(function(n,r){A.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return U(this,(function(t,n,i){var o;return b(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?A.css(t,n,s):A.style(t,n,i,s)}),t,a?i:void 0,a)}}))})),A.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],(function(e,t){A.fn[t]=function(e){return this.on(t,e)}})),A.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),A.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),(function(e,t){A.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}));var Zt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;A.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||A.guid++,i},A.holdReady=function(e){e?A.readyWait++:A.ready(!0)},A.isArray=Array.isArray,A.parseJSON=JSON.parse,A.nodeName=O,A.isFunction=v,A.isWindow=b,A.camelCase=Y,A.type=k,A.now=Date.now,A.isNumeric=function(e){var t=A.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},A.trim=function(e){return null==e?"":(e+"").replace(Zt,"")},void 0===(r=function(){return A}.apply(t,[]))||(e.exports=r);var Qt=n.jQuery,Jt=n.$;return A.noConflict=function(e){return n.$===A&&(n.$=Jt),e&&n.jQuery===A&&(n.jQuery=Qt),A},void 0===i&&(n.jQuery=n.$=A),A}))},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(64),i=n(120);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},function(e,t,n){var r=n(304),i=n(314),o=n(49),a=n(13),s=n(321);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?i(e[0],e[1]):r(e):s(e)}},function(e,t,n){"use strict";var r=n(69);n.d(t,"e",(function(){return r.a}));var i=n(15);n.d(t,"b",(function(){return i.a})),n.d(t,"d",(function(){return i.b}));var o=n(25);n.d(t,"a",(function(){return o.a})),n.d(t,"c",(function(){return o.b}))},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var i=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),o=r.sources.map((function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"}));return[n].concat(o).concat([i]).join("\n")}var a;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<e.length;i++){var a=e[i];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},function(e,t,n){var r,i,o={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===i&&(i=r.apply(this,arguments)),i}),s=function(e){return document.querySelector(e)},l=function(e){var t={};return function(e){if("function"==typeof e)return e();if(void 0===t[e]){var n=s.call(this,e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}}(),c=null,u=0,d=[],p=n(216);function f(e,t){for(var n=0;n<e.length;n++){var r=e[n],i=o[r.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](r.parts[a]);for(;a<r.parts.length;a++)i.parts.push(y(r.parts[a],t))}else{var s=[];for(a=0;a<r.parts.length;a++)s.push(y(r.parts[a],t));o[r.id]={id:r.id,refs:1,parts:s}}}}function h(e,t){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],a=t.base?o[0]+t.base:o[0],s={css:o[1],media:o[2],sourceMap:o[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}function g(e,t){var n=l(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=d[d.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),d.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var i=l(e.insertInto+" "+e.insertAt.before);n.insertBefore(t,i)}}function m(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=d.indexOf(e);t>=0&&d.splice(t,1)}function v(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),b(t,e.attrs),g(e,t),t}function b(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function y(e,t){var n,r,i,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var a=u++;n=c||(c=v(t)),r=k.bind(null,n,a,!1),i=k.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",b(t,e.attrs),g(e,t),t}(t),r=E.bind(null,n,t),i=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=A.bind(null,n),i=function(){m(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=h(e,t);return f(n,t),function(e){for(var r=[],i=0;i<n.length;i++){var a=n[i];(s=o[a.id]).refs--,r.push(s)}e&&f(h(e,t),t);for(i=0;i<r.length;i++){var s;if(0===(s=r[i]).refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete o[s.id]}}}};var x,w=(x=[],function(e,t){return x[e]=t,x.filter(Boolean).join("\n")});function k(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,i);else{var o=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function A(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function E(e,t,n){var r=n.css,i=n.sourceMap,o=void 0===t.convertToAbsoluteUrls&&i;(t.convertToAbsoluteUrls||o)&&(r=p(r)),i&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var a=new Blob([r],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}},function(e,t,n){var r=n(153),i=n(122),o=n(36);e.exports=function(e){return o(e)?r(e):i(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),i=n(27),o=function(){function e(e,t){var n=this;this.fireAfterUpdate=t,this._listeners=[],this._listener=function(e){return n._listeners.forEach((function(t){return t(e)}))},this.hash=function(){return Object(i.e)(n._get()).hash},this.path=function(){return Object(i.e)(n._get()).path},this.search=function(){return Object(i.b)(Object(i.e)(n._get()).search)},this._location=r.Bb.location,this._history=r.Bb.history}return e.prototype.url=function(e,t){return void 0===t&&(t=!0),Object(r.T)(e)&&e!==this._get()&&(this._set(null,null,e,t),this.fireAfterUpdate&&this._listeners.forEach((function(t){return t({url:e})}))),Object(i.a)(this)},e.prototype.onChange=function(e){var t=this;return this._listeners.push(e),function(){return Object(r.Ab)(t._listeners,e)}},e.prototype.dispose=function(e){Object(r.z)(this._listeners)},e}()},function(e,t,n){"use strict";n.r(t);var r=n(137);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(93);n.d(t,"resolvablesBuilder",(function(){return o.b})),n.d(t,"StateBuilder",(function(){return o.a}));var a=n(44);n.d(t,"StateObject",(function(){return a.a}));var s=n(94);n.d(t,"StateMatcher",(function(){return s.a}));var l=n(95);n.d(t,"StateQueueManager",(function(){return l.a}));var c=n(96);n.d(t,"StateRegistry",(function(){return c.a}));var u=n(97);n.d(t,"StateService",(function(){return u.a}));var d=n(24);n.d(t,"TargetState",(function(){return d.a}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(3),o=n(62),a=n(1),s=function(){function e(t){return e.create(t||{})}return e.create=function(t){t=e.isStateClass(t)?new t:t;var n=Object(r.A)(Object(r.A)(t,e.prototype));return t.$$state=function(){return n},n.self=t,n.__stateObjectCache={nameGlob:o.a.fromString(n.name)},n},e.prototype.is=function(e){return this===e||this.self===e||this.fqn()===e},e.prototype.fqn=function(){if(!(this.parent&&this.parent instanceof this.constructor))return this.name;var e=this.parent.fqn();return e?e+"."+this.name:this.name},e.prototype.root=function(){return this.parent&&this.parent.root()||this},e.prototype.parameters=function(e){return((e=Object(r.o)(e,{inherit:!0,matchingKeys:null})).inherit&&this.parent&&this.parent.parameters()||[]).concat(Object(r.U)(this.params)).filter((function(t){return!e.matchingKeys||e.matchingKeys.hasOwnProperty(t.id)}))},e.prototype.parameter=function(e,t){return void 0===t&&(t={}),this.url&&this.url.parameter(e,t)||Object(r.t)(Object(r.U)(this.params),Object(i.o)("id",e))||t.inherit&&this.parent&&this.parent.parameter(e)},e.prototype.toString=function(){return this.fqn()},e.isStateClass=function(e){return Object(a.d)(e)&&!0===e.__uiRouterState},e.isStateDeclaration=function(e){return Object(a.d)(e.$$state)},e.isState=function(e){return Object(a.i)(e.__stateObjectCache)},e}()},function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return s}));var r=n(4),i=n(14);function o(e,t,n){var i=Object(r.cb)(t)?[t]:t;return!!(Object(r.U)(i)?i:function(e){for(var t=i,n=0;n<t.length;n++){var o=new r.b(t[n]);if(o&&o.matches(e.name)||!o&&t[n]===e.name)return!0}return!1})(e,n)}var a=function(){function e(e,t,n,r,i,o){void 0===o&&(o={}),this.tranSvc=e,this.eventType=t,this.callback=n,this.matchCriteria=r,this.removeHookFromRegistry=i,this.invokeCount=0,this._deregistered=!1,this.priority=o.priority||0,this.bind=o.bind||null,this.invokeLimit=o.invokeLimit}return e.prototype._matchingNodes=function(e,t,n){if(!0===t)return e;var r=e.filter((function(e){return o(e.state,t,n)}));return r.length?r:null},e.prototype._getDefaultMatchCriteria=function(){return Object(r.ib)(this.tranSvc._pluginapi._getPathTypes(),(function(){return!0}))},e.prototype._getMatchingNodes=function(e,t){var n=this,o=Object(r.C)(this._getDefaultMatchCriteria(),this.matchCriteria);return Object(r.Tb)(this.tranSvc._pluginapi._getPathTypes()).reduce((function(a,s){var l=s.scope===i.b.STATE,c=e[s.name]||[],u=l?c:[Object(r.Lb)(c)];return a[s.name]=n._matchingNodes(u,o[s.name],t),a}),{})},e.prototype.matches=function(e,t){var n=this._getMatchingNodes(e,t);return Object(r.Tb)(n).every(r.M)?n:null},e.prototype.deregister=function(){this.removeHookFromRegistry(this),this._deregistered=!0},e}();function s(e,t,n){var i=(e._registeredHooks=e._registeredHooks||{})[n.name]=[],o=Object(r.Ab)(i);function s(e,r,s){void 0===s&&(s={});var l=new a(t,n,r,e,o,s);return i.push(l),l.deregister.bind(l)}return e[n.name]=s,s}},function(e,t,n){var r=n(259),i=n(264);e.exports=function(e,t){var n=i(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(58),i=n(260),o=n(261),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?i(e):o(e)}},function(e,t,n){var r=n(153),i=n(284),o=n(36);e.exports=function(e){return o(e)?r(e,!0):i(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),i=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=null),this._items=e,this._limit=t,this._evictListeners=[],this.onEvict=Object(r.K)(this._evictListeners)}return e.prototype.enqueue=function(e){var t=this._items;return t.push(e),this._limit&&t.length>this._limit&&this.evict(),e},e.prototype.evict=function(){var e=this._items.shift();return this._evictListeners.forEach((function(t){return t(e)})),e},e.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},e.prototype.clear=function(){var e=this._items;return this._items=[],e},e.prototype.size=function(){return this._items.length},e.prototype.remove=function(e){var t=this._items.indexOf(e);return t>-1&&this._items.splice(t,1)[0]},e.prototype.peekTail=function(){return this._items[this._items.length-1]},e.prototype.peekHead=function(){if(this.size())return this._items[0]},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0),i=n(1),o=function(){function e(e){this.pattern=/.*/,this.inherit=!0,Object(r.r)(this,e)}return e.prototype.is=function(e,t){return!0},e.prototype.encode=function(e,t){return e},e.prototype.decode=function(e,t){return e},e.prototype.equals=function(e,t){return e==t},e.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},e.prototype.toString=function(){return"{ParamType:"+this.name+"}"},e.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},e.prototype.$asArray=function(e,t){if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new a(this,e)},e}();function a(e,t){var n=this;function o(e){return Object(i.a)(e)?e:Object(i.c)(e)?[e]:[]}function a(e,n){return function(a){if(Object(i.a)(a)&&0===a.length)return a;var s=o(a),l=Object(r.B)(s,e);return!0===n?0===Object(r.s)(l,(function(e){return!e})).length:function(e){switch(e.length){case 0:return;case 1:return"auto"===t?e[0]:e;default:return e}}(l)}}function s(e){return function(t,n){var r=o(t),i=o(n);if(r.length!==i.length)return!1;for(var a=0;a<r.length;a++)if(!e(r[a],i[a]))return!1;return!0}}["encode","decode","equals","$normalize"].forEach((function(t){var r=e[t].bind(e),i="equals"===t?s:a;n[t]=i(r)})),Object(r.r)(this,{dynamic:e.dynamic,name:e.name,pattern:e.pattern,inherit:e.inherit,raw:e.raw,is:a(e.is.bind(e),!0),$arrayMode:t})}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),i=n(3),o=n(16),a=function(){function e(t){if(t instanceof e){var n=t;this.state=n.state,this.paramSchema=n.paramSchema.slice(),this.paramValues=Object(r.r)({},n.paramValues),this.resolvables=n.resolvables.slice(),this.views=n.views&&n.views.slice()}else{var i=t;this.state=i,this.paramSchema=i.parameters({inherit:!1}),this.paramValues={},this.resolvables=i.resolvables.map((function(e){return e.clone()}))}}return e.prototype.clone=function(){return new e(this)},e.prototype.applyRawParams=function(e){return this.paramValues=this.paramSchema.reduce((function(t,n){return Object(r.h)(t,[(i=n).id,i.value(e[i.id])]);var i}),{}),this},e.prototype.parameter=function(e){return Object(r.t)(this.paramSchema,Object(i.o)("id",e))},e.prototype.equals=function(e,t){var n=this.diff(e,t);return n&&0===n.length},e.prototype.diff=function(e,t){if(this.state!==e.state)return!1;var n=t?t(this):this.paramSchema;return o.b.changed(n,this.paramValues,e.paramValues)},e.clone=function(e){return e.clone()},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return x}));var r=n(10),i=n(6),o=n(7),a=n(0),s=n(1),l=n(3),c=n(14),u=n(17),d=n(45),p=n(98),f=n(18),h=n(16),g=n(15),m=n(25),v=n(8),b=n(4),y=Object(l.n)("self"),x=function(){function e(e,t,n){var r=this;if(this._deferred=i.b.$q.defer(),this.promise=this._deferred.promise,this._registeredHooks={},this._hookBuilder=new p.a(this),this.isActive=function(){return r.router.globals.transition===r},this.router=n,this._targetState=t,!t.valid())throw new Error(t.error());this._options=Object(a.r)({current:Object(l.p)(this)},t.options()),this.$id=n.transitionService._transitionCount++;var o=f.a.buildToPath(e,t);this._treeChanges=f.a.treeChanges(e,o,this._options.reloadState),this.createTransitionHookRegFns();var s=this._hookBuilder.buildHooksForPhase(c.a.CREATE);u.a.invokeHooks(s,(function(){return null})),this.applyViewConfigs(n)}return e.prototype.onBefore=function(e,t,n){},e.prototype.onStart=function(e,t,n){},e.prototype.onExit=function(e,t,n){},e.prototype.onRetain=function(e,t,n){},e.prototype.onEnter=function(e,t,n){},e.prototype.onFinish=function(e,t,n){},e.prototype.onSuccess=function(e,t,n){},e.prototype.onError=function(e,t,n){},e.prototype.createTransitionHookRegFns=function(){var e=this;this.router.transitionService._pluginapi._getEvents().filter((function(e){return e.hookPhase!==c.a.CREATE})).forEach((function(t){return Object(d.b)(e,e.router.transitionService,t)}))},e.prototype.getHooks=function(e){return this._registeredHooks[e]},e.prototype.applyViewConfigs=function(e){var t=this._treeChanges.entering.map((function(e){return e.state}));f.a.applyViewConfigs(e.transitionService.$view,this._treeChanges.to,t)},e.prototype.$from=function(){return Object(a.P)(this._treeChanges.from).state},e.prototype.$to=function(){return Object(a.P)(this._treeChanges.to).state},e.prototype.from=function(){return this.$from().self},e.prototype.to=function(){return this.$to().self},e.prototype.targetState=function(){return this._targetState},e.prototype.is=function(t){return t instanceof e?this.is({to:t.$to().name,from:t.$from().name}):!(t.to&&!Object(d.c)(this.$to(),t.to,this)||t.from&&!Object(d.c)(this.$from(),t.from,this))},e.prototype.params=function(e){return void 0===e&&(e="to"),Object.freeze(this._treeChanges[e].map(Object(l.n)("paramValues")).reduce(a.D,{}))},e.prototype.paramsChanged=function(){var e=this.params("from"),t=this.params("to"),n=[].concat(this._treeChanges.to).concat(this._treeChanges.from).map((function(e){return e.paramSchema})).reduce(b.G,[]).reduce(b.Pb,[]);return h.b.changed(n,e,t).reduce((function(e,n){return e[n.id]=t[n.id],e}),{})},e.prototype.injector=function(e,t){void 0===t&&(t="to");var n=this._treeChanges[t];return e&&(n=f.a.subPath(n,(function(t){return t.state===e||t.state.name===e}))),new m.b(n).injector()},e.prototype.getResolveTokens=function(e){return void 0===e&&(e="to"),new m.b(this._treeChanges[e]).getTokens()},e.prototype.addResolvable=function(e,t){void 0===t&&(t=""),e=Object(l.h)(g.a)(e)?e:new g.a(e);var n="string"==typeof t?t:t.name,r=this._treeChanges.to,i=Object(a.t)(r,(function(e){return e.state.name===n}));new m.b(r).addResolvables([e],i.state)},e.prototype.redirectedFrom=function(){return this._options.redirectedFrom||null},e.prototype.originalTransition=function(){var e=this.redirectedFrom();return e&&e.originalTransition()||this},e.prototype.options=function(){return this._options},e.prototype.entering=function(){return Object(a.B)(this._treeChanges.entering,Object(l.n)("state")).map(y)},e.prototype.exiting=function(){return Object(a.B)(this._treeChanges.exiting,Object(l.n)("state")).map(y).reverse()},e.prototype.retained=function(){return Object(a.B)(this._treeChanges.retained,Object(l.n)("state")).map(y)},e.prototype.views=function(e,t){void 0===e&&(e="entering");var n=this._treeChanges[e];return(n=t?n.filter(Object(l.o)("state",t)):n).map(Object(l.n)("views")).filter(a.y).reduce(a.T,[])},e.prototype.treeChanges=function(e){return e?this._treeChanges[e]:this._treeChanges},e.prototype.redirect=function(e){for(var t=1,n=this;null!=(n=n.redirectedFrom());)if(++t>20)throw new Error("Too many consecutive Transition redirects (20+)");var r={redirectedFrom:this,source:"redirect"};"url"===this.options().source&&!1!==e.options().location&&(r.location="replace");var i=Object(a.r)({},this.options(),e.options(),r);e=e.withOptions(i,!0);var o,s=this.router.transitionService.create(this._treeChanges.from,e),c=this._treeChanges.entering,u=s._treeChanges.entering;return f.a.matching(u,c,f.a.nonDynamicParams).filter(Object(l.i)((o=e.options().reloadState,function(e){return o&&e.state.includes[o.name]}))).forEach((function(e,t){e.resolvables=c[t].resolvables})),s},e.prototype._changedParams=function(){var e=this._treeChanges;if(!this._options.reload&&(!e.exiting.length&&!e.entering.length&&e.to.length===e.from.length&&!Object(a.i)(e.to,e.from).map((function(e){return e[0].state!==e[1].state})).reduce(a.g,!1))){var t=e.to.map((function(e){return e.paramSchema})),n=[e.to,e.from].map((function(e){return e.map((function(e){return e.paramValues}))})),r=n[0],i=n[1];return Object(a.i)(t,r,i).map((function(e){var t=e[0],n=e[1],r=e[2];return h.b.changed(t,n,r)})).reduce(a.T,[])}},e.prototype.dynamic=function(){var e=this._changedParams();return!!e&&e.map((function(e){return e.dynamic})).reduce(a.g,!1)},e.prototype.ignored=function(){return!!this._ignoredReason()},e.prototype._ignoredReason=function(){var e=this.router.globals.transition,t=this._options.reloadState,n=function(e,n){if(e.length!==n.length)return!1;var r=f.a.matching(e,n);return e.length===r.filter((function(e){return!t||!e.state.includes[t.name]})).length},r=this.treeChanges(),i=e&&e.treeChanges();return i&&n(i.to,r.to)&&n(i.exiting,r.exiting)?"SameAsPending":0===r.exiting.length&&0===r.entering.length&&n(r.from,r.to)?"SameAsCurrent":void 0},e.prototype.run=function(){var e=this,t=u.a.runAllHooks,n=function(t){return e._hookBuilder.buildHooksForPhase(t)},o=n(c.a.BEFORE);return u.a.invokeHooks(o,(function(){var t=e.router.globals;return t.lastStartedTransitionId=e.$id,t.transition=e,t.transitionHistory.enqueue(e),r.c.traceTransitionStart(e),i.b.$q.when(void 0)})).then((function(){var e=n(c.a.RUN);return u.a.invokeHooks(e,(function(){return i.b.$q.when(void 0)}))})).then((function(){r.c.traceSuccess(e.$to(),e),e.success=!0,e._deferred.resolve(e.to()),t(n(c.a.SUCCESS))}),(function(i){r.c.traceError(i,e),e.success=!1,e._deferred.reject(i),e._error=i,t(n(c.a.ERROR))})),this.promise},e.prototype.valid=function(){return!this.error()||void 0!==this.success},e.prototype.abort=function(){Object(s.m)(this.success)&&(this._aborted=!0)},e.prototype.error=function(){var e=this.$to();if(e.self.abstract)return v.b.invalid("Cannot transition to abstract state '"+e.name+"'");var t=e.parameters(),n=this.params(),r=t.filter((function(e){return!e.validates(n[e.id])}));if(r.length){var i=r.map((function(e){return"["+e.id+":"+Object(o.m)(n[e.id])+"]"})).join(", "),a="The following parameter values are not valid for state '"+e.name+"': "+i;return v.b.invalid(a)}return!1===this.success?this._error:void 0},e.prototype.toString=function(){var e=this.from(),t=this.to(),n=function(e){return null!==e["#"]&&void 0!==e["#"]?e:Object(a.F)(e,["#"])};return"Transition#"+this.$id+"( '"+(Object(s.i)(e)?e.name:e)+"'"+Object(o.m)(n(this._treeChanges.from.map(Object(l.n)("paramValues")).reduce(a.D,{})))+" -> "+(this.valid()?"":"(X) ")+"'"+(Object(s.i)(t)?t.name:t)+"'"+Object(o.m)(n(this.params()))+" )"},e.diToken=e,e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return c}));var r=n(32),i=n(1),o=n(0),a=n(3),s=n(44),l=function(){function e(e){this.router=e}return e.prototype.compile=function(e){return this.router.urlMatcherFactory.compile(e)},e.prototype.create=function(e,t){var n=this,o=s.a.isState,l=s.a.isStateDeclaration,u=Object(a.l)([[i.l,function(e){return u(n.compile(e))}],[Object(a.h)(r.a),function(e){return n.fromUrlMatcher(e,t)}],[Object(a.j)(o,l),function(e){return n.fromState(e,n.router)}],[Object(a.h)(RegExp),function(e){return n.fromRegExp(e,t)}],[i.d,function(e){return new c(e,t)}]]),d=u(e);if(!d)throw new Error("invalid 'what' in when()");return d},e.prototype.fromUrlMatcher=function(e,t){var n=t;Object(i.l)(t)&&(t=this.router.urlMatcherFactory.compile(t)),Object(a.h)(r.a)(t)&&(n=function(e){return t.format(e)});var s={urlMatcher:e,matchPriority:function(t){var n=e.parameters().filter((function(e){return e.isOptional}));return n.length?n.filter((function(e){return t[e.id]})).length/n.length:1e-6},type:"URLMATCHER"};return Object(o.r)(new c((function(t){var n=e.exec(t.path,t.search,t.hash);return e.validates(n)&&n}),n),s)},e.prototype.fromState=function(e,t){var n=s.a.isStateDeclaration(e)?e.$$state():e,r={state:n,type:"STATE"};return Object(o.r)(this.fromUrlMatcher(n.url,(function(e){var r=t.stateService,i=t.globals;r.href(n,e)!==r.href(i.current,i.params)&&r.transitionTo(n,e,{inherit:!0,source:"url"})})),r)},e.prototype.fromRegExp=function(e,t){if(e.global||e.sticky)throw new Error("Rule RegExp must not be global or sticky");var n=Object(i.l)(t)?function(e){return t.replace(/\$(\$|\d{1,2})/,(function(t,n){return e["$"===n?0:Number(n)]}))}:t,r={regexp:e,type:"REGEXP"};return Object(o.r)(new c((function(t){return e.exec(t.path)}),n),r)},e.isUrlRule=function(e){return e&&["type","match","handler"].every((function(t){return Object(i.c)(e[t])}))},e}(),c=function(e,t){var n=this;this.match=e,this.type="RAW",this.matchPriority=function(e){return 0-n.$id},this.handler=t||o.y}},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return l}));var r=n(2);function i(){var e=null;return function(t,n){return e=e||r.services.$injector.get("$templateFactory"),[new l(t,n,e)]}}var o=function(e,t){return e.reduce((function(e,n){return e||Object(r.isDefined)(t[n])}),!1)};function a(e){if(!e.parent)return{};var t=["component","bindings","componentProvider"],n=["templateProvider","templateUrl","template","notify","async"].concat(["controller","controllerProvider","controllerAs","resolveAs"]),i=t.concat(n);if(Object(r.isDefined)(e.views)&&o(i,e))throw new Error("State '"+e.name+"' has a 'views' object. It cannot also have \"view properties\" at the state level. Move the following properties into a view (in the 'views' object): "+i.filter((function(t){return Object(r.isDefined)(e[t])})).join(", "));var a={},s=e.views||{$default:Object(r.pick)(e,i)};return Object(r.forEach)(s,(function(i,s){if(s=s||"$default",Object(r.isString)(i)&&(i={component:i}),i=Object(r.extend)({},i),o(t,i)&&o(n,i))throw new Error("Cannot combine: "+t.join("|")+" with: "+n.join("|")+" in stateview: '"+s+"@"+e.name+"'");i.resolveAs=i.resolveAs||"$resolve",i.$type="ng1",i.$context=e,i.$name=s;var l=r.ViewService.normalizeUIViewTarget(i.$context,i.$name);i.$uiViewName=l.uiViewName,i.$uiViewContextAnchor=l.uiViewContextAnchor,a[s]=i})),a}var s=0,l=function(){function e(e,t,n){var r=this;this.path=e,this.viewDecl=t,this.factory=n,this.$id=s++,this.loaded=!1,this.getTemplate=function(e,t){return r.component?r.factory.makeComponentTemplate(e,t,r.component,r.viewDecl.bindings):r.template}}return e.prototype.load=function(){var e=this,t=r.services.$q,n=new r.ResolveContext(this.path),i=this.path.reduce((function(e,t){return Object(r.extend)(e,t.paramValues)}),{}),o={template:t.when(this.factory.fromConfig(this.viewDecl,i,n)),controller:t.when(this.getController(n))};return t.all(o).then((function(t){return r.trace.traceViewServiceEvent("Loaded",e),e.controller=t.controller,Object(r.extend)(e,t.template),e}))},e.prototype.getController=function(e){var t=this.viewDecl.controllerProvider;if(!Object(r.isInjectable)(t))return this.viewDecl.controller;var n=r.services.$injector.annotate(t),i=Object(r.isArray)(t)?Object(r.tail)(t):t;return new r.Resolvable("",i,n).get(e)},e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return z})),n.d(t,"a",(function(){return L}));var r=n(14),i=n(53),o=n(45),a=n(99),s=n(38),l=n(4);function c(e){e.addResolvable(s.b.fromData(a.a,e.router),""),e.addResolvable(s.b.fromData(i.a,e),""),e.addResolvable(s.b.fromData("$transition$",e),""),e.addResolvable(s.b.fromData("$stateParams",e.params()),""),e.entering().forEach((function(t){e.addResolvable(s.b.fromData("$state$",t),t)}))}var u=["$transition$",i.a],d=Object(l.N)(u),p=function(e){var t=Object(l.Tb)(e.treeChanges()).reduce(l.Rb,[]).reduce(l.Pb,[]),n=function(e){return d(e.token)?s.b.fromData(e.token,null):e};t.forEach((function(e){e.resolvables=e.resolvables.map(n)}))},f=n(1),h=n(6),g=n(24),m=function(e){var t=e.to().redirectTo;if(t){var n=e.router.stateService;return Object(f.d)(t)?h.b.$q.when(t(e)).then(r):r(t)}function r(t){if(t)return t instanceof g.a?t:Object(f.l)(t)?n.target(t,e.params(),e.options()):t.state||t.params?n.target(t.state||e.to(),t.params||e.params(),e.options()):void 0}};function v(e){return function(t,n){return(0,n.$$state()[e])(t,n)}}var b=v("onExit"),y=v("onRetain"),x=v("onEnter"),w=n(0),k=n(25),A=n(3),E=function(e){return new k.b(e.treeChanges().to).resolvePath("EAGER",e).then(w.E)},S=function(e,t){return new k.b(e.treeChanges().to).subContext(t.$$state()).resolvePath("LAZY",e).then(w.E)},$=function(e){return new k.b(e.treeChanges().to).resolvePath("LAZY",e).then(w.E)},C=function(e){var t=h.b.$q,n=e.views("entering");if(n.length)return t.all(n.map((function(e){return t.when(e.load())}))).then(w.E)},_=function(e){var t=e.views("entering"),n=e.views("exiting");if(t.length||n.length){var r=e.router.viewService;n.forEach((function(e){return r.deactivateViewConfig(e)})),t.forEach((function(e){return r.activateViewConfig(e)})),r.sync()}},O=function(e){var t=e.router.globals,n=function(){t.transition===e&&(t.transition=null)};e.onSuccess({},(function(){t.successfulTransitions.enqueue(e),t.$current=e.$to(),t.current=t.$current.self,Object(w.m)(e.params(),t.params)}),{priority:1e4}),e.promise.then(n,n)},T=function(e){var t=e.options(),n=e.router.stateService,r=e.router.urlRouter;if("url"!==t.source&&t.location&&n.$current.navigable){var i={replace:"replace"===t.location};r.push(n.$current.navigable.url,n.params,i)}r.update(!0)},j=n(115),P=n(107),D=n(17),R=n(10),I=n(8);function N(e){var t=e._ignoredReason();if(t){R.c.traceTransitionIgnored(e);var n=e.router.globals.transition;return"SameAsCurrent"===t&&n&&n.abort(),I.b.ignored().toPromise()}}function M(e){if(!e.valid())throw new Error(e.error().toString())}var z={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,supercede:!0,custom:{},current:function(){return null},source:"unknown"},L=function(){function e(e){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=e,this.$view=e.viewService,this._deregisterHookFns={},this._pluginapi=Object(w.n)(Object(A.p)(this),{},Object(A.p)(this),["_definePathType","_defineEvent","_getPathTypes","_getEvents","getHooks"]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks(),e.globals.successfulTransitions.onEvict(p)}return e.prototype.onCreate=function(e,t,n){},e.prototype.onBefore=function(e,t,n){},e.prototype.onStart=function(e,t,n){},e.prototype.onExit=function(e,t,n){},e.prototype.onRetain=function(e,t,n){},e.prototype.onEnter=function(e,t,n){},e.prototype.onFinish=function(e,t,n){},e.prototype.onSuccess=function(e,t,n){},e.prototype.onError=function(e,t,n){},e.prototype.dispose=function(e){Object(w.U)(this._registeredHooks).forEach((function(e){return e.forEach((function(t){t._deregistered=!0,Object(w.L)(e,t)}))}))},e.prototype.create=function(e,t){return new i.a(e,t,this._router)},e.prototype._defineCoreEvents=function(){var e=r.a,t=D.a,n=this._criteriaPaths;this._defineEvent("onCreate",e.CREATE,0,n.to,!1,t.LOG_REJECTED_RESULT,t.THROW_ERROR,!0),this._defineEvent("onBefore",e.BEFORE,0,n.to),this._defineEvent("onStart",e.RUN,0,n.to),this._defineEvent("onExit",e.RUN,100,n.exiting,!0),this._defineEvent("onRetain",e.RUN,200,n.retained),this._defineEvent("onEnter",e.RUN,300,n.entering),this._defineEvent("onFinish",e.RUN,400,n.to),this._defineEvent("onSuccess",e.SUCCESS,0,n.to,!1,t.LOG_REJECTED_RESULT,t.LOG_ERROR,!0),this._defineEvent("onError",e.ERROR,0,n.to,!1,t.LOG_REJECTED_RESULT,t.LOG_ERROR,!0)},e.prototype._defineCorePaths=function(){var e=r.b.STATE,t=r.b.TRANSITION;this._definePathType("to",t),this._definePathType("from",t),this._definePathType("exiting",e),this._definePathType("retained",e),this._definePathType("entering",e)},e.prototype._defineEvent=function(e,t,n,r,i,a,s,l){void 0===i&&(i=!1),void 0===a&&(a=D.a.HANDLE_RESULT),void 0===s&&(s=D.a.REJECT_ERROR),void 0===l&&(l=!1);var c=new P.a(e,t,n,r,i,a,s,l);this._eventTypes.push(c),Object(o.b)(this,this,c)},e.prototype._getEvents=function(e){return(Object(f.c)(e)?this._eventTypes.filter((function(t){return t.hookPhase===e})):this._eventTypes.slice()).sort((function(e,t){var n=e.hookPhase-t.hookPhase;return 0===n?e.hookOrder-t.hookOrder:n}))},e.prototype._definePathType=function(e,t){this._criteriaPaths[e]={name:e,scope:t}},e.prototype._getPathTypes=function(){return this._criteriaPaths},e.prototype.getHooks=function(e){return this._registeredHooks[e]},e.prototype._registerCoreTransitionHooks=function(){var e=this._deregisterHookFns;e.addCoreResolves=this.onCreate({},c),e.ignored=function(e){return e.onBefore({},N,{priority:-9999})}(this),e.invalid=function(e){return e.onBefore({},M,{priority:-1e4})}(this),e.redirectTo=function(e){return e.onStart({to:function(e){return!!e.redirectTo}},m)}(this),e.onExit=function(e){return e.onExit({exiting:function(e){return!!e.onExit}},b)}(this),e.onRetain=function(e){return e.onRetain({retained:function(e){return!!e.onRetain}},y)}(this),e.onEnter=function(e){return e.onEnter({entering:function(e){return!!e.onEnter}},x)}(this),e.eagerResolve=function(e){return e.onStart({},E,{priority:1e3})}(this),e.lazyResolve=function(e){return e.onEnter({entering:Object(A.p)(!0)},S,{priority:1e3})}(this),e.resolveAll=function(e){return e.onFinish({},$,{priority:1e3})}(this),e.loadViews=function(e){return e.onFinish({},C)}(this),e.activateViews=function(e){return e.onSuccess({},_)}(this),e.updateGlobals=function(e){return e.onCreate({},O)}(this),e.updateUrl=function(e){return e.onSuccess({},T,{priority:9999})}(this),e.lazyLoad=Object(j.b)(this)},e}()},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(29).Symbol;e.exports=r},function(e,t,n){(function(e){var r=n(29),i=n(280),o=t&&!t.nodeType&&t,a=o&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===o?r.Buffer:void 0,l=(s?s.isBuffer:void 0)||i;e.exports=l}).call(this,n(80)(e))},function(e,t,n){var r=n(289),i=n(117),o=n(290),a=n(162),s=n(291),l=n(47),c=n(151),u=c(r),d=c(i),p=c(o),f=c(a),h=c(s),g=l;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||i&&"[object Map]"!=g(new i)||o&&"[object Promise]"!=g(o.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case u:return"[object DataView]";case d:return"[object Map]";case p:return"[object Promise]";case f:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t,n){var r=n(47),i=n(34);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(e){this.text=e,this.glob=e.split(".");var t=this.text.split(".").map((function(e){return"**"===e?"(?:|(?:\\.[^.]*)*)":"*"===e?"\\.[^.]*":"\\."+e})).join("");this.regexp=new RegExp("^"+t+"$")}return e.is=function(e){return!!/[!,*]+/.exec(e)},e.fromString=function(t){return e.is(t)?new e(t):null},e.prototype.matches=function(e){return this.regexp.test("."+e)},e}()},function(e,t,n){(function(t){var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){var r,o;switch(n=n||{},i.util.type(t)){case"Object":if(o=i.util.objId(t),n[o])return n[o];for(var a in r={},n[o]=r,t)t.hasOwnProperty(a)&&(r[a]=e(t[a],n));return r;case"Array":return o=i.util.objId(t),n[o]?n[o]:(r=[],n[o]=r,t.forEach((function(t,i){r[i]=e(t,n)})),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,"gi"),""),e.classList.add("language-"+n)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r="no-"+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=i.util.clone(i.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){var o=(r=r||i.languages)[e],a={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(a[l]=n[l]);n.hasOwnProperty(s)||(a[s]=o[s])}var c=r[e];return r[e]=a,i.languages.DFS(i.languages,(function(t,n){n===c&&t!=e&&(this[t]=a)})),a},DFS:function e(t,n,r,o){o=o||{};var a=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var l=t[s],c=i.util.type(l);"Object"!==c||o[a(l)]?"Array"!==c||o[a(l)]||(o[a(l)]=!0,e(l,n,s,o)):(o[a(l)]=!0,e(l,n,null,o))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};i.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),i.hooks.run("before-all-elements-highlight",r);for(var o,a=0;o=r.elements[a++];)i.highlightElement(o,!0===t,r.callback)},highlightElement:function(t,n,r){var o=i.util.getLanguage(t),a=i.languages[o];i.util.setLanguage(t,o);var s=t.parentElement;s&&"pre"===s.nodeName.toLowerCase()&&i.util.setLanguage(s,o);var l={element:t,language:o,grammar:a,code:t.textContent};function c(e){l.highlightedCode=e,i.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,i.hooks.run("after-highlight",l),i.hooks.run("complete",l),r&&r.call(l.element)}if(i.hooks.run("before-sanity-check",l),(s=l.element.parentElement)&&"pre"===s.nodeName.toLowerCase()&&!s.hasAttribute("tabindex")&&s.setAttribute("tabindex","0"),!l.code)return i.hooks.run("complete",l),void(r&&r.call(l.element));if(i.hooks.run("before-highlight",l),l.grammar)if(n&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){c(e.data)},u.postMessage(JSON.stringify({language:l.language,code:l.code,immediateClose:!0}))}else c(i.highlight(l.code,l.grammar,l.language));else c(i.util.encode(l.code))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(i.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=i.tokenize(r.code,r.grammar),i.hooks.run("after-tokenize",r),o.stringify(i.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var u=new s;return l(u,u.head,e),function e(t,n,r,s,u,d){for(var p in r)if(r.hasOwnProperty(p)&&r[p]){var f=r[p];f=Array.isArray(f)?f:[f];for(var h=0;h<f.length;++h){if(d&&d.cause==p+","+h)return;var g=f[h],m=g.inside,v=!!g.lookbehind,b=!!g.greedy,y=g.alias;if(b&&!g.pattern.global){var x=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,x+"g")}for(var w=g.pattern||g,k=s.next,A=u;k!==n.tail&&!(d&&A>=d.reach);A+=k.value.length,k=k.next){var E=k.value;if(n.length>t.length)return;if(!(E instanceof o)){var S,$=1;if(b){if(!(S=a(w,A,t,v))||S.index>=t.length)break;var C=S.index,_=S.index+S[0].length,O=A;for(O+=k.value.length;C>=O;)k=k.next,O+=k.value.length;if(O-=k.value.length,A=O,k.value instanceof o)continue;for(var T=k;T!==n.tail&&(O<_||"string"==typeof T.value);T=T.next)$++,O+=T.value.length;$--,E=t.slice(A,O),S.index-=A}else if(!(S=a(w,0,E,v)))continue;C=S.index;var j=S[0],P=E.slice(0,C),D=E.slice(C+j.length),R=A+E.length;d&&R>d.reach&&(d.reach=R);var I=k.prev;P&&(I=l(n,I,P),A+=P.length),c(n,I,$);var N=new o(p,m?i.tokenize(j,m):j,y,j);if(k=l(n,I,N),D&&l(n,k,D),$>1){var M={cause:p+","+h,reach:R};e(t,n,r,k.prev,A,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}(e,u,t,u.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=i.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=i.hooks.all[e];if(n&&n.length)for(var r,o=0;r=n[o++];)r(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var o=i[1].length;i.index+=o,i[0]=i[0].slice(o)}return i}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function c(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}if(e.Prism=i,o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var r="";return t.forEach((function(t){r+=e(t,n)})),r}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},a=t.alias;a&&(Array.isArray(a)?Array.prototype.push.apply(o.classes,a):o.classes.push(a)),i.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},!e.document)return e.addEventListener?(i.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),r=n.language,o=n.code,a=n.immediateClose;e.postMessage(i.highlight(o,i.languages[r],r)),a&&e.close()}),!1),i):i;var u=i.util.currentScript();function d(){i.manual||i.highlightAll()}if(u&&(i.filename=u.src,u.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var p=document.readyState;"loading"===p||"interactive"===p&&u&&u.defer?document.addEventListener("DOMContentLoaded",d):window.requestAnimationFrame?window.requestAnimationFrame(d):window.setTimeout(d,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{}); +function(e){var t,n,r,i,o,a,s,l,c,u,d,p,f,h,g,m,v,b,y,x="sizzle"+1*new Date,w=e.document,k=0,A=0,E=le(),S=le(),$=le(),C=le(),_=function(e,t){return e===t&&(d=!0),0},O={}.hasOwnProperty,T=[],j=T.pop,P=T.push,D=T.push,R=T.slice,I=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},N="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",z="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",L="\\["+M+"*("+z+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+z+"))|)"+M+"*\\]",B=":("+z+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+L+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),q=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),V=new RegExp("^"+M+"*,"+M+"*"),U=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),H=new RegExp(M+"|>"),G=new RegExp(B),W=new RegExp("^"+z+"$"),Y={ID:new RegExp("^#("+z+")"),CLASS:new RegExp("^\\.("+z+")"),TAG:new RegExp("^("+z+"|[*])"),ATTR:new RegExp("^"+L),PSEUDO:new RegExp("^"+B),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+N+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},X=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){p()},ae=xe((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{D.apply(T=R.call(w.childNodes),w.childNodes),T[w.childNodes.length].nodeType}catch(e){D={apply:T.length?function(e,t){P.apply(e,R.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,i){var o,s,c,u,d,h,v,b=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(p(t),t=t||f,g)){if(11!==w&&(d=K.exec(e)))if(o=d[1]){if(9===w){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(b&&(c=b.getElementById(o))&&y(t,c)&&c.id===o)return r.push(c),r}else{if(d[2])return D.apply(r,t.getElementsByTagName(e)),r;if((o=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return D.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!C[e+" "]&&(!m||!m.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(v=e,b=t,1===w&&(H.test(e)||U.test(e))){for((b=ee.test(e)&&ve(t.parentNode)||t)===t&&n.scope||((u=t.getAttribute("id"))?u=u.replace(re,ie):t.setAttribute("id",u=x)),s=(h=a(e)).length;s--;)h[s]=(u?"#"+u:":scope")+" "+ye(h[s]);v=h.join(",")}try{return D.apply(r,b.querySelectorAll(v)),r}catch(t){C(e,!0)}finally{u===x&&t.removeAttribute("id")}}}return l(e.replace(q,"$1"),t,r,i)}function le(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function ce(e){return e[x]=!0,e}function ue(e){var t=f.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ae(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function me(e){return ce((function(t){return t=+t,ce((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},o=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!X.test(t||n&&n.nodeName||"HTML")},p=se.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!=f&&9===a.nodeType&&a.documentElement?(h=(f=a).documentElement,g=!o(f),w!=f&&(i=f.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.scope=ue((function(e){return h.appendChild(e).appendChild(f.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ue((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ue((function(e){return e.appendChild(f.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=J.test(f.getElementsByClassName),n.getById=ue((function(e){return h.appendChild(e).id=x,!f.getElementsByName||!f.getElementsByName(x).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],m=[],(n.qsa=J.test(f.querySelectorAll))&&(ue((function(e){var t;h.appendChild(e).innerHTML="<a id='"+x+"'></a><select id='"+x+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+M+"*(?:value|"+N+")"),e.querySelectorAll("[id~="+x+"-]").length||m.push("~="),(t=f.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")})),ue((function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=f.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")}))),(n.matchesSelector=J.test(b=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue((function(e){n.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),v.push("!=",B)})),m=m.length&&new RegExp(m.join("|")),v=v.length&&new RegExp(v.join("|")),t=J.test(h.compareDocumentPosition),y=t||J.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},_=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==f||e.ownerDocument==w&&y(w,e)?-1:t==f||t.ownerDocument==w&&y(w,t)?1:u?I(u,e)-I(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==f?-1:t==f?1:i?-1:o?1:u?I(u,e)-I(u,t):0;if(i===o)return pe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?pe(a[r],s[r]):a[r]==w?-1:s[r]==w?1:0},f):f},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(p(e),n.matchesSelector&&g&&!C[t+" "]&&(!v||!v.test(t))&&(!m||!m.test(t)))try{var r=b.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){C(t,!0)}return se(t,f,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=f&&p(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=f&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&O.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,r=[],i=0,o=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(_),d){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return u=null,e},i=se.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=se.selectors={cacheLength:50,createPseudo:ce,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&G.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=se.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,p,f,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),b=!l&&!s,y=!1;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&b){for(y=(f=(c=(u=(d=(p=m)[x]||(p[x]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]||[])[0]===k&&c[1])&&c[2],p=f&&m.childNodes[f];p=++f&&p&&p[g]||(y=f=0)||h.pop();)if(1===p.nodeType&&++y&&p===t){u[e]=[k,f,y];break}}else if(b&&(y=f=(c=(u=(d=(p=t)[x]||(p[x]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]||[])[0]===k&&c[1]),!1===y)for(;(p=++f&&p&&p[g]||(y=f=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++y||(b&&((u=(d=p[x]||(p[x]={}))[p.uniqueID]||(d[p.uniqueID]={}))[e]=[k,y]),p!==t)););return(y-=i)===r||y%r==0&&y/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return i[x]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=I(e,o[a])]=!(n[r]=o[a])})):function(e){return i(e,0,n)}):i}},pseudos:{not:ce((function(e){var t=[],n=[],r=s(e.replace(q,"$1"));return r[x]?ce((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:ce((function(e){return function(t){return se(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:ce((function(e){return W.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:me((function(){return[0]})),last:me((function(e,t){return[t-1]})),eq:me((function(e,t,n){return[n<0?n+t:n]})),even:me((function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e})),odd:me((function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e})),lt:me((function(e,t,n){for(var r=n<0?n+t:n>t?t:n;--r>=0;)e.push(r);return e})),gt:me((function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e}))}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=he(t);function be(){}function ye(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function xe(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=A++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,l){var c,u,d,p=[k,s];if(l){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,l))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(u=(d=t[x]||(t[x]={}))[t.uniqueID]||(d[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((c=u[o])&&c[0]===k&&c[1]===s)return p[2]=c[2];if(u[o]=p,p[2]=e(t,n,l))return!0}return!1}}function we(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function ke(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;s<l;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),c&&t.push(s)));return a}function Ae(e,t,n,r,i,o){return r&&!r[x]&&(r=Ae(r)),i&&!i[x]&&(i=Ae(i,o)),ce((function(o,a,s,l){var c,u,d,p=[],f=[],h=a.length,g=o||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:ke(g,p,e,s,l),v=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,v,s,l),r)for(c=ke(v,f),r(c,[],s,l),u=c.length;u--;)(d=c[u])&&(v[f[u]]=!(m[f[u]]=d));if(o){if(i||e){if(i){for(c=[],u=v.length;u--;)(d=v[u])&&c.push(m[u]=d);i(null,v=[],c,l)}for(u=v.length;u--;)(d=v[u])&&(c=i?I(o,d):p[u])>-1&&(o[c]=!(a[c]=d))}}else v=ke(v===a?v.splice(h,v.length):v),i?i(null,a,v,l):D.apply(a,v)}))}function Ee(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],l=a?1:0,u=xe((function(e){return e===t}),s,!0),d=xe((function(e){return I(t,e)>-1}),s,!0),p=[function(e,n,r){var i=!a&&(r||n!==c)||((t=n).nodeType?u(e,n,r):d(e,n,r));return t=null,i}];l<o;l++)if(n=r.relative[e[l].type])p=[xe(we(p),n)];else{if((n=r.filter[e[l].type].apply(null,e[l].matches))[x]){for(i=++l;i<o&&!r.relative[e[i].type];i++);return Ae(l>1&&we(p),l>1&&ye(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(q,"$1"),n,l<i&&Ee(e.slice(l,i)),i<o&&Ee(e=e.slice(i)),i<o&&ye(e))}p.push(n)}return we(p)}return be.prototype=r.filters=r.pseudos,r.setFilters=new be,a=se.tokenize=function(e,t){var n,i,o,a,s,l,c,u=S[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=r.preFilter;s;){for(a in n&&!(i=V.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),n=!1,(i=U.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(q," ")}),s=s.slice(n.length)),r.filter)!(i=Y[a].exec(s))||c[a]&&!(i=c[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?se.error(e):S(e,l).slice(0)},s=se.compile=function(e,t){var n,i=[],o=[],s=$[e+" "];if(!s){for(t||(t=a(e)),n=t.length;n--;)(s=Ee(t[n]))[x]?i.push(s):o.push(s);(s=$(e,function(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,l,u){var d,h,m,v=0,b="0",y=o&&[],x=[],w=c,A=o||i&&r.find.TAG("*",u),E=k+=null==w?1:Math.random()||.1,S=A.length;for(u&&(c=a==f||a||u);b!==S&&null!=(d=A[b]);b++){if(i&&d){for(h=0,a||d.ownerDocument==f||(p(d),s=!g);m=e[h++];)if(m(d,a||f,s)){l.push(d);break}u&&(k=E)}n&&((d=!m&&d)&&v--,o&&y.push(d))}if(v+=b,n&&b!==v){for(h=0;m=t[h++];)m(y,x,a,s);if(o){if(v>0)for(;b--;)y[b]||x[b]||(x[b]=j.call(l));x=ke(x)}D.apply(l,x),u&&!o&&x.length>0&&v+t.length>1&&se.uniqueSort(l)}return u&&(k=E,c=w),y};return n?ce(o):o}(o,i))).selector=e}return s},l=se.select=function(e,t,n,i){var o,l,c,u,d,p="function"==typeof e&&e,f=!i&&a(e=p.selector||e);if(n=n||[],1===f.length){if((l=f[0]=f[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&g&&r.relative[l[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(o=Y.needsContext.test(e)?0:l.length;o--&&(c=l[o],!r.relative[u=c.type]);)if((d=r.find[u])&&(i=d(c.matches[0].replace(te,ne),ee.test(l[0].type)&&ve(t.parentNode)||t))){if(l.splice(o,1),!(e=i.length&&ye(l)))return D.apply(n,i),n;break}}return(p||s(e,f))(i,t,!g,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},n.sortStable=x.split("").sort(_).join("")===x,n.detectDuplicates=!!d,p(),n.sortDetached=ue((function(e){return 1&e.compareDocumentPosition(f.createElement("fieldset"))})),ue((function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")}))||de("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ue((function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||de("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ue((function(e){return null==e.getAttribute("disabled")}))||de(N,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),se}(n);A.find=S,A.expr=S.selectors,A.expr[":"]=A.expr.pseudos,A.uniqueSort=A.unique=S.uniqueSort,A.text=S.getText,A.isXMLDoc=S.isXML,A.contains=S.contains,A.escapeSelector=S.escape;var $=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&A(e).is(n))break;r.push(e)}return r},C=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},_=A.expr.match.needsContext;function O(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var T=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return v(t)?A.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?A.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?A.grep(e,(function(e){return u.call(t,e)>-1!==n})):A.filter(t,e,n)}A.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?A.find.matchesSelector(r,e)?[r]:[]:A.find.matches(e,A.grep(t,(function(e){return 1===e.nodeType})))},A.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(A(e).filter((function(){for(t=0;t<r;t++)if(A.contains(i[t],this))return!0})));for(n=this.pushStack([]),t=0;t<r;t++)A.find(e,i[t],n);return r>1?A.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&_.test(e)?A(e):e||[],!1).length}});var P,D=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(A.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||P,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:D.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof A?t[0]:t,A.merge(this,A.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),T.test(r[1])&&A.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=y.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(A):A.makeArray(e,this)}).prototype=A.fn,P=A(y);var R=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};function N(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}A.fn.extend({has:function(e){var t=A(e,this),n=t.length;return this.filter((function(){for(var e=0;e<n;e++)if(A.contains(this,t[e]))return!0}))},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&A(e);if(!_.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&A.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?A.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(A(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(A.uniqueSort(A.merge(this.get(),A(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),A.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return $(e,"parentNode")},parentsUntil:function(e,t,n){return $(e,"parentNode",n)},next:function(e){return N(e,"nextSibling")},prev:function(e){return N(e,"previousSibling")},nextAll:function(e){return $(e,"nextSibling")},prevAll:function(e){return $(e,"previousSibling")},nextUntil:function(e,t,n){return $(e,"nextSibling",n)},prevUntil:function(e,t,n){return $(e,"previousSibling",n)},siblings:function(e){return C((e.parentNode||{}).firstChild,e)},children:function(e){return C(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(O(e,"template")&&(e=e.content||e),A.merge([],e.childNodes))}},(function(e,t){A.fn[e]=function(n,r){var i=A.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=A.filter(r,i)),this.length>1&&(I[e]||A.uniqueSort(i),R.test(e)&&i.reverse()),this.pushStack(i)}}));var M=/[^\x20\t\r\n\f]+/g;function z(e){return e}function L(e){throw e}function B(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}A.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return A.each(e.match(M)||[],(function(e,n){t[n]=!0})),t}(e):A.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},c={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){A.each(n,(function(n,r){v(r)?e.unique&&c.has(r)||o.push(r):r&&r.length&&"string"!==k(r)&&t(r)}))}(arguments),n&&!t&&l()),this},remove:function(){return A.each(arguments,(function(e,t){for(var n;(n=A.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?A.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},A.extend({Deferred:function(e){var t=[["notify","progress",A.Callbacks("memory"),A.Callbacks("memory"),2],["resolve","done",A.Callbacks("once memory"),A.Callbacks("once memory"),0,"resolved"],["reject","fail",A.Callbacks("once memory"),A.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return A.Deferred((function(n){A.each(t,(function(t,r){var i=v(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,r,i){var o=0;function a(e,t,r,i){return function(){var s=this,l=arguments,c=function(){var n,c;if(!(e<o)){if((n=r.apply(s,l))===t.promise())throw new TypeError("Thenable self-resolution");c=n&&("object"==typeof n||"function"==typeof n)&&n.then,v(c)?i?c.call(n,a(o,t,z,i),a(o,t,L,i)):(o++,c.call(n,a(o,t,z,i),a(o,t,L,i),a(o,t,z,t.notifyWith))):(r!==z&&(s=void 0,l=[n]),(i||t.resolveWith)(s,l))}},u=i?c:function(){try{c()}catch(n){A.Deferred.exceptionHook&&A.Deferred.exceptionHook(n,u.stackTrace),e+1>=o&&(r!==L&&(s=void 0,l=[n]),t.rejectWith(s,l))}};e?u():(A.Deferred.getStackHook&&(u.stackTrace=A.Deferred.getStackHook()),n.setTimeout(u))}}return A.Deferred((function(n){t[0][3].add(a(0,n,v(i)?i:z,n.notifyWith)),t[1][3].add(a(0,n,v(e)?e:z)),t[2][3].add(a(0,n,v(r)?r:L))})).promise()},promise:function(e){return null!=e?A.extend(e,i):i}},o={};return A.each(t,(function(e,n){var a=n[2],s=n[5];i[n[1]]=a.add,s&&a.add((function(){r=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(n[3].fire),o[n[0]]=function(){return o[n[0]+"With"](this===o?void 0:this,arguments),this},o[n[0]+"With"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=A.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(B(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||v(i[n]&&i[n].then)))return o.then();for(;n--;)B(i[n],a(n),o.reject);return o.promise()}});var F=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;A.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&F.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},A.readyException=function(e){n.setTimeout((function(){throw e}))};var q=A.Deferred();function V(){y.removeEventListener("DOMContentLoaded",V),n.removeEventListener("load",V),A.ready()}A.fn.ready=function(e){return q.then(e).catch((function(e){A.readyException(e)})),this},A.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--A.readyWait:A.isReady)||(A.isReady=!0,!0!==e&&--A.readyWait>0||q.resolveWith(y,[A]))}}),A.ready.then=q.then,"complete"===y.readyState||"loading"!==y.readyState&&!y.documentElement.doScroll?n.setTimeout(A.ready):(y.addEventListener("DOMContentLoaded",V),n.addEventListener("load",V));var U=function(e,t,n,r,i,o,a){var s=0,l=e.length,c=null==n;if("object"===k(n))for(s in i=!0,n)U(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(A(e),n)})),t))for(;s<l;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:c?t.call(e):l?t(e[0],n):o},H=/^-ms-/,G=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function Y(e){return e.replace(H,"ms-").replace(G,W)}var X=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Z(){this.expando=A.expando+Z.uid++}Z.uid=1,Z.prototype={cache:function(e){var t=e[this.expando];return t||(t={},X(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[Y(t)]=n;else for(r in t)i[Y(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][Y(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(Y):(t=Y(t))in r?[t]:t.match(M)||[]).length;for(;n--;)delete r[t[n]]}(void 0===t||A.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!A.isEmptyObject(t)}};var Q=new Z,J=new Z,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=function(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:K.test(e)?JSON.parse(e):e)}(n)}catch(e){}J.set(e,t,n)}else n=void 0;return n}A.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),A.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){for(n=a.length;n--;)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=Y(r.slice(5)),te(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each((function(){J.set(this,e)})):U(this,(function(t){var n;if(o&&void 0===t)return void 0!==(n=J.get(o,e))||void 0!==(n=te(o,e))?n:void 0;this.each((function(){J.set(this,e,t)}))}),null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),A.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,A.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=A.queue(e,t),r=n.length,i=n.shift(),o=A._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){A.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:A.Callbacks("once memory").add((function(){Q.remove(e,[t+"queue",n])}))})}}),A.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?A.queue(this[0],e):void 0===t?this:this.each((function(){var n=A.queue(this,e,t);A._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&A.dequeue(this,e)}))},dequeue:function(e){return this.each((function(){A.dequeue(this,e)}))},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=A.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ne=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,re=new RegExp("^(?:([+-])=|)("+ne+")([a-z%]*)$","i"),ie=["Top","Right","Bottom","Left"],oe=y.documentElement,ae=function(e){return A.contains(e.ownerDocument,e)},se={composed:!0};oe.getRootNode&&(ae=function(e){return A.contains(e.ownerDocument,e)||e.getRootNode(se)===e.ownerDocument});var le=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ae(e)&&"none"===A.css(e,"display")};function ce(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return A.css(e,t,"")},l=s(),c=n&&n[3]||(A.cssNumber[t]?"":"px"),u=e.nodeType&&(A.cssNumber[t]||"px"!==c&&+l)&&re.exec(A.css(e,t));if(u&&u[3]!==c){for(l/=2,c=c||u[3],u=+l||1;a--;)A.style(e,t,u+c),(1-o)*(1-(o=s()/l||.5))<=0&&(a=0),u/=o;u*=2,A.style(e,t,u+c),n=n||[]}return n&&(u=+u||+l||0,i=n[1]?u+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=u,r.end=i)),i}var ue={};function de(e){var t,n=e.ownerDocument,r=e.nodeName,i=ue[r];return i||(t=n.body.appendChild(n.createElement(r)),i=A.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),ue[r]=i,i)}function pe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=Q.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&le(r)&&(i[o]=de(r))):"none"!==n&&(i[o]="none",Q.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}A.fn.extend({show:function(){return pe(this,!0)},hide:function(){return pe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each((function(){le(this)?A(this).show():A(this).hide()}))}});var fe,he,ge=/^(?:checkbox|radio)$/i,me=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,ve=/^$|^module$|\/(?:java|ecma)script/i;fe=y.createDocumentFragment().appendChild(y.createElement("div")),(he=y.createElement("input")).setAttribute("type","radio"),he.setAttribute("checked","checked"),he.setAttribute("name","t"),fe.appendChild(he),m.checkClone=fe.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.innerHTML="<textarea>x</textarea>",m.noCloneChecked=!!fe.cloneNode(!0).lastChild.defaultValue,fe.innerHTML="<option></option>",m.option=!!fe.lastChild;var be={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&O(e,t)?A.merge([e],n):n}function xe(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,m.option||(be.optgroup=be.option=[1,"<select multiple='multiple'>","</select>"]);var we=/<|&#?\w+;/;function ke(e,t,n,r,i){for(var o,a,s,l,c,u,d=t.createDocumentFragment(),p=[],f=0,h=e.length;f<h;f++)if((o=e[f])||0===o)if("object"===k(o))A.merge(p,o.nodeType?[o]:o);else if(we.test(o)){for(a=a||d.appendChild(t.createElement("div")),s=(me.exec(o)||["",""])[1].toLowerCase(),l=be[s]||be._default,a.innerHTML=l[1]+A.htmlPrefilter(o)+l[2],u=l[0];u--;)a=a.lastChild;A.merge(p,a.childNodes),(a=d.firstChild).textContent=""}else p.push(t.createTextNode(o));for(d.textContent="",f=0;o=p[f++];)if(r&&A.inArray(o,r)>-1)i&&i.push(o);else if(c=ae(o),a=ye(d.appendChild(o),"script"),c&&xe(a),n)for(u=0;o=a[u++];)ve.test(o.type||"")&&n.push(o);return d}var Ae=/^key/,Ee=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Se=/^([^.]*)(?:\.(.+)|)/;function $e(){return!0}function Ce(){return!1}function _e(e,t){return e===function(){try{return y.activeElement}catch(e){}}()==("focus"===t)}function Oe(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Oe(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ce;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return A().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=A.guid++)),e.each((function(){A.event.add(this,t,i,r,n)}))}function Te(e,t,n){n?(Q.set(e,t,!1),A.event.add(e,t,{namespace:!1,handler:function(e){var r,i,o=Q.get(this,t);if(1&e.isTrigger&&this[t]){if(o.length)(A.event.special[t]||{}).delegateType&&e.stopPropagation();else if(o=s.call(arguments),Q.set(this,t,o),r=n(this,t),this[t](),o!==(i=Q.get(this,t))||r?Q.set(this,t,!1):i={},o!==i)return e.stopImmediatePropagation(),e.preventDefault(),i.value}else o.length&&(Q.set(this,t,{value:A.event.trigger(A.extend(o[0],A.Event.prototype),o.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,t)&&A.event.add(e,t,$e)}A.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,f,h,g,m=Q.get(e);if(X(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&A.find.matchesSelector(oe,i),n.guid||(n.guid=A.guid++),(l=m.events)||(l=m.events=Object.create(null)),(a=m.handle)||(a=m.handle=function(t){return void 0!==A&&A.event.triggered!==t.type?A.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(M)||[""]).length;c--;)f=g=(s=Se.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),f&&(d=A.event.special[f]||{},f=(i?d.delegateType:d.bindType)||f,d=A.event.special[f]||{},u=A.extend({type:f,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&A.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=l[f])||((p=l[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(f,a)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,u):p.push(u),A.event.global[f]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,f,h,g,m=Q.hasData(e)&&Q.get(e);if(m&&(l=m.events)){for(c=(t=(t||"").match(M)||[""]).length;c--;)if(f=g=(s=Se.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),f){for(d=A.event.special[f]||{},p=l[f=(r?d.delegateType:d.bindType)||f]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)u=p[o],!i&&g!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(p.splice(o,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));a&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,h,m.handle)||A.removeEvent(e,f,m.handle),delete l[f])}else for(f in l)A.event.remove(e,f+t[c],n,r,!0);A.isEmptyObject(l)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=A.event.fix(e),c=(Q.get(this,"events")||Object.create(null))[l.type]||[],u=A.event.special[l.type]||{};for(s[0]=l,t=1;t<arguments.length;t++)s[t]=arguments[t];if(l.delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,l)){for(a=A.event.handlers.call(this,l,c),t=0;(i=a[t++])&&!l.isPropagationStopped();)for(l.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!l.isImmediatePropagationStopped();)l.rnamespace&&!1!==o.namespace&&!l.rnamespace.test(o.namespace)||(l.handleObj=o,l.data=o.data,void 0!==(r=((A.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(l.result=r)&&(l.preventDefault(),l.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,l),l.result}},handlers:function(e,t){var n,r,i,o,a,s=[],l=t.delegateCount,c=e.target;if(l&&c.nodeType&&!("click"===e.type&&e.button>=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],a={},n=0;n<l;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?A(i,this).index(c)>-1:A.find(i,this,null,[c]).length),a[i]&&o.push(r);o.length&&s.push({elem:c,handlers:o})}return c=this,l<t.length&&s.push({elem:c,handlers:t.slice(l)}),s},addProp:function(e,t){Object.defineProperty(A.Event.prototype,e,{enumerable:!0,configurable:!0,get:v(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[A.expando]?e:new A.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return ge.test(t.type)&&t.click&&O(t,"input")&&Te(t,"click",$e),!1},trigger:function(e){var t=this||e;return ge.test(t.type)&&t.click&&O(t,"input")&&Te(t,"click"),!0},_default:function(e){var t=e.target;return ge.test(t.type)&&t.click&&O(t,"input")&&Q.get(t,"click")||O(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},A.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},A.Event=function(e,t){if(!(this instanceof A.Event))return new A.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?$e:Ce,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&A.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[A.expando]=!0},A.Event.prototype={constructor:A.Event,isDefaultPrevented:Ce,isPropagationStopped:Ce,isImmediatePropagationStopped:Ce,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=$e,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=$e,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=$e,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},A.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Ae.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ee.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},A.event.addProp),A.each({focus:"focusin",blur:"focusout"},(function(e,t){A.event.special[e]={setup:function(){return Te(this,e,_e),!1},trigger:function(){return Te(this,e),!0},delegateType:t}})),A.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},(function(e,t){A.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||A.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}})),A.fn.extend({on:function(e,t,n,r){return Oe(this,e,t,n,r)},one:function(e,t,n,r){return Oe(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,A(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ce),this.each((function(){A.event.remove(this,e,n,t)}))}});var je=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,De=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Re(e,t){return O(e,"table")&&O(11!==t.nodeType?t:t.firstChild,"tr")&&A(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Q.hasData(e)&&(s=Q.get(e).events))for(i in Q.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)A.event.add(t,i,s[i][n]);J.hasData(e)&&(o=J.access(e),a=A.extend({},o),J.set(t,a))}}function ze(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ge.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Le(e,t,n,r){t=l(t);var i,o,a,s,c,u,d=0,p=e.length,f=p-1,h=t[0],g=v(h);if(g||p>1&&"string"==typeof h&&!m.checkClone&&Pe.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),Le(o,t,n,r)}));if(p&&(o=(i=ke(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=A.map(ye(i,"script"),Ie)).length;d<p;d++)c=i,d!==f&&(c=A.clone(c,!0,!0),s&&A.merge(a,ye(c,"script"))),n.call(e[d],c,d);if(s)for(u=a[a.length-1].ownerDocument,A.map(a,Ne),d=0;d<s;d++)c=a[d],ve.test(c.type||"")&&!Q.access(c,"globalEval")&&A.contains(u,c)&&(c.src&&"module"!==(c.type||"").toLowerCase()?A._evalUrl&&!c.noModule&&A._evalUrl(c.src,{nonce:c.nonce||c.getAttribute("nonce")},u):w(c.textContent.replace(De,""),c,u))}return e}function Be(e,t,n){for(var r,i=t?A.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||A.cleanData(ye(r)),r.parentNode&&(n&&ae(r)&&xe(ye(r,"script")),r.parentNode.removeChild(r));return e}A.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),l=ae(e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||A.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)ze(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,s);return(a=ye(s,"script")).length>0&&xe(a,!l&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=A.event.special,o=0;void 0!==(n=e[o]);o++)if(X(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?A.event.remove(n,r):A.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),A.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return U(this,(function(e){return void 0===e?A.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Le(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)}))},prepend:function(){return Le(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Le(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Le(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(A.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return A.clone(this,e,t)}))},html:function(e){return U(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!je.test(e)&&!be[(me.exec(e)||["",""])[1].toLowerCase()]){e=A.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(A.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)}),null,e,arguments.length)},replaceWith:function(){var e=[];return Le(this,arguments,(function(t){var n=this.parentNode;A.inArray(this,e)<0&&(A.cleanData(ye(this)),n&&n.replaceChild(t,this))}),e)}}),A.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},(function(e,t){A.fn[e]=function(e){for(var n,r=[],i=A(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),A(i[a])[t](n),c.apply(r,n.get());return this.pushStack(r)}}));var Fe=new RegExp("^("+ne+")(?!px)[a-z%]+$","i"),qe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=n),t.getComputedStyle(e)},Ve=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ue=new RegExp(ie.join("|"),"i");function He(e,t,n){var r,i,o,a,s=e.style;return(n=n||qe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ae(e)||(a=A.style(e,t)),!m.pixelBoxStyles()&&Fe.test(a)&&Ue.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Ge(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){c.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",oe.appendChild(c).appendChild(u);var e=n.getComputedStyle(u);r="1%"!==e.top,l=12===t(e.marginLeft),u.style.right="60%",a=36===t(e.right),i=36===t(e.width),u.style.position="absolute",o=12===t(u.offsetWidth/3),oe.removeChild(c),u=null}}function t(e){return Math.round(parseFloat(e))}var r,i,o,a,s,l,c=y.createElement("div"),u=y.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",m.clearCloneStyle="content-box"===u.style.backgroundClip,A.extend(m,{boxSizingReliable:function(){return e(),i},pixelBoxStyles:function(){return e(),a},pixelPosition:function(){return e(),r},reliableMarginLeft:function(){return e(),l},scrollboxSize:function(){return e(),o},reliableTrDimensions:function(){var e,t,r,i;return null==s&&(e=y.createElement("table"),t=y.createElement("tr"),r=y.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",r.style.height="9px",oe.appendChild(e).appendChild(t).appendChild(r),i=n.getComputedStyle(t),s=parseInt(i.height)>3,oe.removeChild(e)),s}}))}();var We=["Webkit","Moz","ms"],Ye=y.createElement("div").style,Xe={};function Ze(e){var t=A.cssProps[e]||Xe[e];return t||(e in Ye?e:Xe[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=We.length;n--;)if((e=We[n]+t)in Ye)return e}(e)||e)}var Qe=/^(none|table(?!-c[ea]).+)/,Je=/^--/,Ke={position:"absolute",visibility:"hidden",display:"block"},et={letterSpacing:"0",fontWeight:"400"};function tt(e,t,n){var r=re.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function nt(e,t,n,r,i,o){var a="width"===t?1:0,s=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=A.css(e,n+ie[a],!0,i)),r?("content"===n&&(l-=A.css(e,"padding"+ie[a],!0,i)),"margin"!==n&&(l-=A.css(e,"border"+ie[a]+"Width",!0,i))):(l+=A.css(e,"padding"+ie[a],!0,i),"padding"!==n?l+=A.css(e,"border"+ie[a]+"Width",!0,i):s+=A.css(e,"border"+ie[a]+"Width",!0,i));return!r&&o>=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))||0),l}function rt(e,t,n){var r=qe(e),i=(!m.boxSizingReliable()||n)&&"border-box"===A.css(e,"boxSizing",!1,r),o=i,a=He(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Fe.test(a)){if(!n)return a;a="auto"}return(!m.boxSizingReliable()&&i||!m.reliableTrDimensions()&&O(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===A.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===A.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+nt(e,t,n||(i?"border":"content"),o,r,a)+"px"}function it(e,t,n,r,i){return new it.prototype.init(e,t,n,r,i)}A.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=He(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=Y(t),l=Je.test(t),c=e.style;if(l||(t=Ze(s)),a=A.cssHooks[t]||A.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:c[t];"string"===(o=typeof n)&&(i=re.exec(n))&&i[1]&&(n=ce(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||l||(n+=i&&i[3]||(A.cssNumber[s]?"":"px")),m.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=Y(t);return Je.test(t)||(t=Ze(s)),(a=A.cssHooks[t]||A.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=He(e,t,r)),"normal"===i&&t in et&&(i=et[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),A.each(["height","width"],(function(e,t){A.cssHooks[t]={get:function(e,n,r){if(n)return!Qe.test(A.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?rt(e,t,r):Ve(e,Ke,(function(){return rt(e,t,r)}))},set:function(e,n,r){var i,o=qe(e),a=!m.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===A.css(e,"boxSizing",!1,o),l=r?nt(e,t,r,s,o):0;return s&&a&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-nt(e,t,"border",!1,o)-.5)),l&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=A.css(e,t)),tt(0,n,l)}}})),A.cssHooks.marginLeft=Ge(m.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(He(e,"marginLeft"))||e.getBoundingClientRect().left-Ve(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),A.each({margin:"",padding:"",border:"Width"},(function(e,t){A.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(A.cssHooks[e+t].set=tt)})),A.fn.extend({css:function(e,t){return U(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=qe(e),i=t.length;a<i;a++)o[t[a]]=A.css(e,t[a],!1,r);return o}return void 0!==n?A.style(e,t,n):A.css(e,t)}),e,t,arguments.length>1)}}),A.Tween=it,it.prototype={constructor:it,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||A.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(A.cssNumber[n]?"":"px")},cur:function(){var e=it.propHooks[this.prop];return e&&e.get?e.get(this):it.propHooks._default.get(this)},run:function(e){var t,n=it.propHooks[this.prop];return this.options.duration?this.pos=t=A.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):it.propHooks._default.set(this),this}},it.prototype.init.prototype=it.prototype,it.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=A.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){A.fx.step[e.prop]?A.fx.step[e.prop](e):1!==e.elem.nodeType||!A.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:A.style(e.elem,e.prop,e.now+e.unit)}}},it.propHooks.scrollTop=it.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},A.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},A.fx=it.prototype.init,A.fx.step={};var ot,at,st=/^(?:toggle|show|hide)$/,lt=/queueHooks$/;function ct(){at&&(!1===y.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(ct):n.setTimeout(ct,A.fx.interval),A.fx.tick())}function ut(){return n.setTimeout((function(){ot=void 0})),ot=Date.now()}function dt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(e,t,n){var r,i,o=0,a=ft.prefilters.length,s=A.Deferred().always((function(){delete l.elem})),l=function(){if(i)return!1;for(var t=ot||ut(),n=Math.max(0,c.startTime+c.duration-t),r=1-(n/c.duration||0),o=0,a=c.tweens.length;o<a;o++)c.tweens[o].run(r);return s.notifyWith(e,[c,r,n]),r<1&&a?n:(a||s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:A.extend({},t),opts:A.extend(!0,{specialEasing:{},easing:A.easing._default},n),originalProperties:t,originalOptions:n,startTime:ot||ut(),duration:n.duration,tweens:[],createTween:function(t,n){var r=A.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)c.tweens[n].run(1);return t?(s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c,t])):s.rejectWith(e,[c,t]),this}}),u=c.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=Y(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=A.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(u,c.opts.specialEasing);o<a;o++)if(r=ft.prefilters[o].call(c,e,u,c.opts))return v(r.stop)&&(A._queueHooks(c.elem,c.opts.queue).stop=r.stop.bind(r)),r;return A.map(u,pt,c),v(c.opts.start)&&c.opts.start.call(e,c),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always),A.fx.timer(A.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c}A.Animation=A.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ce(n.elem,e,re.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,l,c,u,d="width"in t||"height"in t,p=this,f={},h=e.style,g=e.nodeType&&le(e),m=Q.get(e,"fxshow");for(r in n.queue||(null==(a=A._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always((function(){p.always((function(){a.unqueued--,A.queue(e,"fx").length||a.empty.fire()}))}))),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;g=!0}f[r]=m&&m[r]||A.style(e,r)}if((l=!A.isEmptyObject(t))||!A.isEmptyObject(f))for(r in d&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(c=m&&m.display)&&(c=Q.get(e,"display")),"none"===(u=A.css(e,"display"))&&(c?u=c:(pe([e],!0),c=e.style.display||c,u=A.css(e,"display"),pe([e]))),("inline"===u||"inline-block"===u&&null!=c)&&"none"===A.css(e,"float")&&(l||(p.done((function(){h.display=c})),null==c&&(u=h.display,c="none"===u?"":u)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always((function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}))),l=!1,f)l||(m?"hidden"in m&&(g=m.hidden):m=Q.access(e,"fxshow",{display:c}),o&&(m.hidden=!g),g&&pe([e],!0),p.done((function(){for(r in g||pe([e]),Q.remove(e,"fxshow"),f)A.style(e,r,f[r])}))),l=pt(g?m[r]:0,r,p),r in m||(m[r]=l.start,g&&(l.end=l.start,l.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),A.speed=function(e,t,n){var r=e&&"object"==typeof e?A.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return A.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in A.fx.speeds?r.duration=A.fx.speeds[r.duration]:r.duration=A.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&A.dequeue(this,r.queue)},r},A.fn.extend({fadeTo:function(e,t,n,r){return this.filter(le).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=A.isEmptyObject(e),o=A.speed(t,n,r),a=function(){var t=ft(this,A.extend({},e),o);(i||Q.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&this.queue(e||"fx",[]),this.each((function(){var t=!0,i=null!=e&&e+"queueHooks",o=A.timers,a=Q.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&<.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||A.dequeue(this,e)}))},finish:function(e){return!1!==e&&(e=e||"fx"),this.each((function(){var t,n=Q.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=A.timers,a=r?r.length:0;for(n.finish=!0,A.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish}))}}),A.each(["toggle","show","hide"],(function(e,t){var n=A.fn[t];A.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(dt(t,!0),e,r,i)}})),A.each({slideDown:dt("show"),slideUp:dt("hide"),slideToggle:dt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},(function(e,t){A.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}})),A.timers=[],A.fx.tick=function(){var e,t=0,n=A.timers;for(ot=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||A.fx.stop(),ot=void 0},A.fx.timer=function(e){A.timers.push(e),A.fx.start()},A.fx.interval=13,A.fx.start=function(){at||(at=!0,ct())},A.fx.stop=function(){at=null},A.fx.speeds={slow:600,fast:200,_default:400},A.fn.delay=function(e,t){return e=A.fx&&A.fx.speeds[e]||e,t=t||"fx",this.queue(t,(function(t,r){var i=n.setTimeout(t,e);r.stop=function(){n.clearTimeout(i)}}))},function(){var e=y.createElement("input"),t=y.createElement("select").appendChild(y.createElement("option"));e.type="checkbox",m.checkOn=""!==e.value,m.optSelected=t.selected,(e=y.createElement("input")).value="t",e.type="radio",m.radioValue="t"===e.value}();var ht,gt=A.expr.attrHandle;A.fn.extend({attr:function(e,t){return U(this,A.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each((function(){A.removeAttr(this,e)}))}}),A.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?A.prop(e,t,n):(1===o&&A.isXMLDoc(e)||(i=A.attrHooks[t.toLowerCase()]||(A.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void A.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=A.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&O(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?A.removeAttr(e,n):e.setAttribute(n,n),n}},A.each(A.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=gt[t]||A.find.attr;gt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=gt[a],gt[a]=i,i=null!=n(e,t,r)?a:null,gt[a]=o),i}}));var mt=/^(?:input|select|textarea|button)$/i,vt=/^(?:a|area)$/i;function bt(e){return(e.match(M)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(M)||[]}A.fn.extend({prop:function(e,t){return U(this,A.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[A.propFix[e]||e]}))}}),A.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&A.isXMLDoc(e)||(t=A.propFix[t]||t,i=A.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=A.find.attr(e,"tabindex");return t?parseInt(t,10):mt.test(e.nodeName)||vt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(A.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),A.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){A.propFix[this.toLowerCase()]=this})),A.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,l=0;if(v(e))return this.each((function(t){A(this).addClass(e.call(this,t,yt(this)))}));if((t=xt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+bt(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=bt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,l=0;if(v(e))return this.each((function(t){A(this).removeClass(e.call(this,t,yt(this)))}));if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+bt(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=bt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):v(e)?this.each((function(n){A(this).toggleClass(e.call(this,n,yt(this),t),t)})):this.each((function(){var t,i,o,a;if(r)for(i=0,o=A(this),a=xt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||((t=yt(this))&&Q.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Q.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+bt(yt(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;A.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=v(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,A(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=A.map(i,(function(e){return null==e?"":e+""}))),(t=A.valHooks[this.type]||A.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=A.valHooks[i.type]||A.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(wt,""):null==n?"":n:void 0}}),A.extend({valHooks:{option:{get:function(e){var t=A.find.attr(e,"value");return null!=t?t:bt(A.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r<l;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!O(n.parentNode,"optgroup"))){if(t=A(n).val(),a)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=A.makeArray(t),a=i.length;a--;)((r=i[a]).selected=A.inArray(A.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),A.each(["radio","checkbox"],(function(){A.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=A.inArray(A(e).val(),t)>-1}},m.checkOn||(A.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),m.focusin="onfocusin"in n;var kt=/^(?:focusinfocus|focusoutblur)$/,At=function(e){e.stopPropagation()};A.extend(A.event,{trigger:function(e,t,r,i){var o,a,s,l,c,u,d,p,h=[r||y],g=f.call(e,"type")?e.type:e,m=f.call(e,"namespace")?e.namespace.split("."):[];if(a=p=s=r=r||y,3!==r.nodeType&&8!==r.nodeType&&!kt.test(g+A.event.triggered)&&(g.indexOf(".")>-1&&(m=g.split("."),g=m.shift(),m.sort()),c=g.indexOf(":")<0&&"on"+g,(e=e[A.expando]?e:new A.Event(g,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=m.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:A.makeArray(t,[e]),d=A.event.special[g]||{},i||!d.trigger||!1!==d.trigger.apply(r,t))){if(!i&&!d.noBubble&&!b(r)){for(l=d.delegateType||g,kt.test(l+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(r.ownerDocument||y)&&h.push(s.defaultView||s.parentWindow||n)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?l:d.bindType||g,(u=(Q.get(a,"events")||Object.create(null))[e.type]&&Q.get(a,"handle"))&&u.apply(a,t),(u=c&&a[c])&&u.apply&&X(a)&&(e.result=u.apply(a,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(h.pop(),t)||!X(r)||c&&v(r[g])&&!b(r)&&((s=r[c])&&(r[c]=null),A.event.triggered=g,e.isPropagationStopped()&&p.addEventListener(g,At),r[g](),e.isPropagationStopped()&&p.removeEventListener(g,At),A.event.triggered=void 0,s&&(r[c]=s)),e.result}},simulate:function(e,t,n){var r=A.extend(new A.Event,n,{type:e,isSimulated:!0});A.event.trigger(r,null,t)}}),A.fn.extend({trigger:function(e,t){return this.each((function(){A.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return A.event.trigger(e,t,n,!0)}}),m.focusin||A.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){A.event.simulate(t,e.target,A.event.fix(e))};A.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,t);i||r.addEventListener(e,n,!0),Q.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,t)-1;i?Q.access(r,t,i):(r.removeEventListener(e,n,!0),Q.remove(r,t))}}}));var Et=n.location,St={guid:Date.now()},$t=/\?/;A.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||A.error("Invalid XML: "+e),t};var Ct=/\[\]$/,_t=/\r?\n/g,Ot=/^(?:submit|button|image|reset|file)$/i,Tt=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))A.each(t,(function(t,i){n||Ct.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==k(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}A.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!A.isPlainObject(e))A.each(e,(function(){i(this.name,this.value)}));else for(n in e)jt(n,e[n],t,i);return r.join("&")},A.fn.extend({serialize:function(){return A.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=A.prop(this,"elements");return e?A.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!A(this).is(":disabled")&&Tt.test(this.nodeName)&&!Ot.test(e)&&(this.checked||!ge.test(e))})).map((function(e,t){var n=A(this).val();return null==n?null:Array.isArray(n)?A.map(n,(function(e){return{name:t.name,value:e.replace(_t,"\r\n")}})):{name:t.name,value:n.replace(_t,"\r\n")}})).get()}});var Pt=/%20/g,Dt=/#.*$/,Rt=/([?&])_=[^&]*/,It=/^(.*?):[ \t]*([^\r\n]*)$/gm,Nt=/^(?:GET|HEAD)$/,Mt=/^\/\//,zt={},Lt={},Bt="*/".concat("*"),Ft=y.createElement("a");function qt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(v(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Vt(e,t,n,r){var i={},o=e===Lt;function a(s){var l;return i[s]=!0,A.each(e[s]||[],(function(e,s){var c=s(t,n,r);return"string"!=typeof c||o||i[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),a(c),!1)})),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Ut(e,t){var n,r,i=A.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&A.extend(!0,e,r),e}Ft.href=Et.href,A.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Bt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":A.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ut(Ut(e,A.ajaxSettings),t):Ut(A.ajaxSettings,e)},ajaxPrefilter:qt(zt),ajaxTransport:qt(Lt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,a,s,l,c,u,d,p,f=A.ajaxSetup({},t),h=f.context||f,g=f.context&&(h.nodeType||h.jquery)?A(h):A.event,m=A.Deferred(),v=A.Callbacks("once memory"),b=f.statusCode||{},x={},w={},k="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!a)for(a={};t=It.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,x[e]=t),this},overrideMimeType:function(e){return null==c&&(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||k;return r&&r.abort(t),S(0,t),this}};if(m.promise(E),f.url=((e||f.url||Et.href)+"").replace(Mt,Et.protocol+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(M)||[""],null==f.crossDomain){l=y.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=Ft.protocol+"//"+Ft.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=A.param(f.data,f.traditional)),Vt(zt,f,t,E),c)return E;for(d in(u=A.event&&f.global)&&0==A.active++&&A.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Nt.test(f.type),i=f.url.replace(Dt,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(Pt,"+")):(p=f.url.slice(i.length),f.data&&(f.processData||"string"==typeof f.data)&&(i+=($t.test(i)?"&":"?")+f.data,delete f.data),!1===f.cache&&(i=i.replace(Rt,"$1"),p=($t.test(i)?"&":"?")+"_="+St.guid+++p),f.url=i+p),f.ifModified&&(A.lastModified[i]&&E.setRequestHeader("If-Modified-Since",A.lastModified[i]),A.etag[i]&&E.setRequestHeader("If-None-Match",A.etag[i])),(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&E.setRequestHeader("Content-Type",f.contentType),E.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Bt+"; q=0.01":""):f.accepts["*"]),f.headers)E.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(h,E,f)||c))return E.abort();if(k="abort",v.add(f.complete),E.done(f.success),E.fail(f.error),r=Vt(Lt,f,t,E)){if(E.readyState=1,u&&g.trigger("ajaxSend",[E,f]),c)return E;f.async&&f.timeout>0&&(s=n.setTimeout((function(){E.abort("timeout")}),f.timeout));try{c=!1,r.send(x,S)}catch(e){if(c)throw e;S(-1,e)}}else S(-1,"No Transport");function S(e,t,a,l){var d,p,y,x,w,k=t;c||(c=!0,s&&n.clearTimeout(s),r=void 0,o=l||"",E.readyState=e>0?4:0,d=e>=200&&e<300||304===e,a&&(x=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}(f,E,a)),!d&&A.inArray("script",f.dataTypes)>-1&&(f.converters["text script"]=function(){}),x=function(e,t,n,r){var i,o,a,s,l,c={},u=e.dataTypes.slice();if(u[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=c[l+" "+o]||c["* "+o]))for(i in c)if((s=i.split(" "))[1]===o&&(a=c[l+" "+s[0]]||c["* "+s[0]])){!0===a?a=c[i]:!0!==c[i]&&(o=s[0],u.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(f,x,E,d),d?(f.ifModified&&((w=E.getResponseHeader("Last-Modified"))&&(A.lastModified[i]=w),(w=E.getResponseHeader("etag"))&&(A.etag[i]=w)),204===e||"HEAD"===f.type?k="nocontent":304===e?k="notmodified":(k=x.state,p=x.data,d=!(y=x.error))):(y=k,!e&&k||(k="error",e<0&&(e=0))),E.status=e,E.statusText=(t||k)+"",d?m.resolveWith(h,[p,k,E]):m.rejectWith(h,[E,k,y]),E.statusCode(b),b=void 0,u&&g.trigger(d?"ajaxSuccess":"ajaxError",[E,f,d?p:y]),v.fireWith(h,[E,k]),u&&(g.trigger("ajaxComplete",[E,f]),--A.active||A.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return A.get(e,t,n,"json")},getScript:function(e,t){return A.get(e,void 0,t,"script")}}),A.each(["get","post"],(function(e,t){A[t]=function(e,n,r,i){return v(n)&&(i=i||r,r=n,n=void 0),A.ajax(A.extend({url:e,type:t,dataType:i,data:n,success:r},A.isPlainObject(e)&&e))}})),A.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),A._evalUrl=function(e,t,n){return A.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){A.globalEval(e,t,n)}})},A.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=A(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){A(this).wrapInner(e.call(this,t))})):this.each((function(){var t=A(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){A(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){A(this).replaceWith(this.childNodes)})),this}}),A.expr.pseudos.hidden=function(e){return!A.expr.pseudos.visible(e)},A.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},A.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Ht={0:200,1223:204},Gt=A.ajaxSettings.xhr();m.cors=!!Gt&&"withCredentials"in Gt,m.ajax=Gt=!!Gt,A.ajaxTransport((function(e){var t,r;if(m.cors||Gt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Ht[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),A.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),A.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return A.globalEval(e),e}}}),A.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),A.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=A("<script>").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),y.head.appendChild(t[0])},abort:function(){n&&n()}}}));var Wt,Yt=[],Xt=/(=)\?(?=&|$)|\?\?/;A.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||A.expando+"_"+St.guid++;return this[e]=!0,e}}),A.ajaxPrefilter("json jsonp",(function(e,t,r){var i,o,a,s=!1!==e.jsonp&&(Xt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Xt.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return i=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Xt,"$1"+i):!1!==e.jsonp&&(e.url+=($t.test(e.url)?"&":"?")+e.jsonp+"="+i),e.converters["script json"]=function(){return a||A.error(i+" was not called"),a[0]},e.dataTypes[0]="json",o=n[i],n[i]=function(){a=arguments},r.always((function(){void 0===o?A(n).removeProp(i):n[i]=o,e[i]&&(e.jsonpCallback=t.jsonpCallback,Yt.push(i)),a&&v(o)&&o(a[0]),a=o=void 0})),"script"})),m.createHTMLDocument=((Wt=y.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Wt.childNodes.length),A.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?((r=(t=y.implementation.createHTMLDocument("")).createElement("base")).href=y.location.href,t.head.appendChild(r)):t=y),o=!n&&[],(i=T.exec(e))?[t.createElement(i[1])]:(i=ke([e],t,o),o&&o.length&&A(o).remove(),A.merge([],i.childNodes)));var r,i,o},A.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=bt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&A.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done((function(e){o=arguments,a.html(r?A("<div>").append(A.parseHTML(e)).find(r):e)})).always(n&&function(e,t){a.each((function(){n.apply(this,o||[e.responseText,t,e])}))}),this},A.expr.pseudos.animated=function(e){return A.grep(A.timers,(function(t){return e===t.elem})).length},A.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,c=A.css(e,"position"),u=A(e),d={};"static"===c&&(e.style.position="relative"),s=u.offset(),o=A.css(e,"top"),l=A.css(e,"left"),("absolute"===c||"fixed"===c)&&(o+l).indexOf("auto")>-1?(a=(r=u.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),v(t)&&(t=t.call(e,n,A.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):("number"==typeof d.top&&(d.top+="px"),"number"==typeof d.left&&(d.left+="px"),u.css(d))}},A.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each((function(t){A.offset.setOffset(this,e,t)}));var t,n,r=this[0];return r?r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===A.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===A.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=A(e).offset()).top+=A.css(e,"borderTopWidth",!0),i.left+=A.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-A.css(r,"marginTop",!0),left:t.left-i.left-A.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent;e&&"static"===A.css(e,"position");)e=e.offsetParent;return e||oe}))}}),A.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(e,t){var n="pageYOffset"===t;A.fn[e]=function(r){return U(this,(function(e,r,i){var o;if(b(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i}),e,r,arguments.length)}})),A.each(["top","left"],(function(e,t){A.cssHooks[t]=Ge(m.pixelPosition,(function(e,n){if(n)return n=He(e,t),Fe.test(n)?A(e).position()[t]+"px":n}))})),A.each({Height:"height",Width:"width"},(function(e,t){A.each({padding:"inner"+e,content:t,"":"outer"+e},(function(n,r){A.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return U(this,(function(t,n,i){var o;return b(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?A.css(t,n,s):A.style(t,n,i,s)}),t,a?i:void 0,a)}}))})),A.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],(function(e,t){A.fn[t]=function(e){return this.on(t,e)}})),A.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),A.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),(function(e,t){A.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}));var Zt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;A.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||A.guid++,i},A.holdReady=function(e){e?A.readyWait++:A.ready(!0)},A.isArray=Array.isArray,A.parseJSON=JSON.parse,A.nodeName=O,A.isFunction=v,A.isWindow=b,A.camelCase=Y,A.type=k,A.now=Date.now,A.isNumeric=function(e){var t=A.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},A.trim=function(e){return null==e?"":(e+"").replace(Zt,"")},void 0===(r=function(){return A}.apply(t,[]))||(e.exports=r);var Qt=n.jQuery,Jt=n.$;return A.noConflict=function(e){return n.$===A&&(n.$=Jt),e&&n.jQuery===A&&(n.jQuery=Qt),A},void 0===i&&(n.jQuery=n.$=A),A}))},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(64),i=n(120);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},function(e,t,n){var r=n(304),i=n(314),o=n(49),a=n(13),s=n(321);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?i(e[0],e[1]):r(e):s(e)}},function(e,t,n){"use strict";var r=n(69);n.d(t,"e",(function(){return r.a}));var i=n(15);n.d(t,"b",(function(){return i.a})),n.d(t,"d",(function(){return i.b}));var o=n(27);n.d(t,"a",(function(){return o.a})),n.d(t,"c",(function(){return o.b}))},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var i=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),o=r.sources.map((function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"}));return[n].concat(o).concat([i]).join("\n")}var a;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<e.length;i++){var a=e[i];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},function(e,t,n){var r,i,o={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===i&&(i=r.apply(this,arguments)),i}),s=function(e){return document.querySelector(e)},l=function(e){var t={};return function(e){if("function"==typeof e)return e();if(void 0===t[e]){var n=s.call(this,e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}}(),c=null,u=0,d=[],p=n(216);function f(e,t){for(var n=0;n<e.length;n++){var r=e[n],i=o[r.id];if(i){i.refs++;for(var a=0;a<i.parts.length;a++)i.parts[a](r.parts[a]);for(;a<r.parts.length;a++)i.parts.push(y(r.parts[a],t))}else{var s=[];for(a=0;a<r.parts.length;a++)s.push(y(r.parts[a],t));o[r.id]={id:r.id,refs:1,parts:s}}}}function h(e,t){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],a=t.base?o[0]+t.base:o[0],s={css:o[1],media:o[2],sourceMap:o[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}function g(e,t){var n=l(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=d[d.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),d.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var i=l(e.insertInto+" "+e.insertAt.before);n.insertBefore(t,i)}}function m(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=d.indexOf(e);t>=0&&d.splice(t,1)}function v(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),b(t,e.attrs),g(e,t),t}function b(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function y(e,t){var n,r,i,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var a=u++;n=c||(c=v(t)),r=k.bind(null,n,a,!1),i=k.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",b(t,e.attrs),g(e,t),t}(t),r=E.bind(null,n,t),i=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=A.bind(null,n),i=function(){m(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=h(e,t);return f(n,t),function(e){for(var r=[],i=0;i<n.length;i++){var a=n[i];(s=o[a.id]).refs--,r.push(s)}e&&f(h(e,t),t);for(i=0;i<r.length;i++){var s;if(0===(s=r[i]).refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete o[s.id]}}}};var x,w=(x=[],function(e,t){return x[e]=t,x.filter(Boolean).join("\n")});function k(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,i);else{var o=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function A(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function E(e,t,n){var r=n.css,i=n.sourceMap,o=void 0===t.convertToAbsoluteUrls&&i;(t.convertToAbsoluteUrls||o)&&(r=p(r)),i&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var a=new Blob([r],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}},function(e,t,n){var r=n(153),i=n(122),o=n(36);e.exports=function(e){return o(e)?r(e):i(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),i=n(29),o=function(){function e(e,t){var n=this;this.fireAfterUpdate=t,this._listeners=[],this._listener=function(e){return n._listeners.forEach((function(t){return t(e)}))},this.hash=function(){return Object(i.e)(n._get()).hash},this.path=function(){return Object(i.e)(n._get()).path},this.search=function(){return Object(i.b)(Object(i.e)(n._get()).search)},this._location=r.Bb.location,this._history=r.Bb.history}return e.prototype.url=function(e,t){return void 0===t&&(t=!0),Object(r.T)(e)&&e!==this._get()&&(this._set(null,null,e,t),this.fireAfterUpdate&&this._listeners.forEach((function(t){return t({url:e})}))),Object(i.a)(this)},e.prototype.onChange=function(e){var t=this;return this._listeners.push(e),function(){return Object(r.Ab)(t._listeners,e)}},e.prototype.dispose=function(e){Object(r.z)(this._listeners)},e}()},function(e,t,n){"use strict";n.r(t);var r=n(137);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(93);n.d(t,"resolvablesBuilder",(function(){return o.b})),n.d(t,"StateBuilder",(function(){return o.a}));var a=n(44);n.d(t,"StateObject",(function(){return a.a}));var s=n(94);n.d(t,"StateMatcher",(function(){return s.a}));var l=n(95);n.d(t,"StateQueueManager",(function(){return l.a}));var c=n(96);n.d(t,"StateRegistry",(function(){return c.a}));var u=n(97);n.d(t,"StateService",(function(){return u.a}));var d=n(26);n.d(t,"TargetState",(function(){return d.a}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(3),o=n(62),a=n(1),s=function(){function e(t){return e.create(t||{})}return e.create=function(t){t=e.isStateClass(t)?new t:t;var n=Object(r.A)(Object(r.A)(t,e.prototype));return t.$$state=function(){return n},n.self=t,n.__stateObjectCache={nameGlob:o.a.fromString(n.name)},n},e.prototype.is=function(e){return this===e||this.self===e||this.fqn()===e},e.prototype.fqn=function(){if(!(this.parent&&this.parent instanceof this.constructor))return this.name;var e=this.parent.fqn();return e?e+"."+this.name:this.name},e.prototype.root=function(){return this.parent&&this.parent.root()||this},e.prototype.parameters=function(e){return((e=Object(r.o)(e,{inherit:!0,matchingKeys:null})).inherit&&this.parent&&this.parent.parameters()||[]).concat(Object(r.U)(this.params)).filter((function(t){return!e.matchingKeys||e.matchingKeys.hasOwnProperty(t.id)}))},e.prototype.parameter=function(e,t){return void 0===t&&(t={}),this.url&&this.url.parameter(e,t)||Object(r.t)(Object(r.U)(this.params),Object(i.o)("id",e))||t.inherit&&this.parent&&this.parent.parameter(e)},e.prototype.toString=function(){return this.fqn()},e.isStateClass=function(e){return Object(a.d)(e)&&!0===e.__uiRouterState},e.isStateDeclaration=function(e){return Object(a.d)(e.$$state)},e.isState=function(e){return Object(a.i)(e.__stateObjectCache)},e}()},function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return s}));var r=n(4),i=n(14);function o(e,t,n){var i=Object(r.cb)(t)?[t]:t;return!!(Object(r.U)(i)?i:function(e){for(var t=i,n=0;n<t.length;n++){var o=new r.b(t[n]);if(o&&o.matches(e.name)||!o&&t[n]===e.name)return!0}return!1})(e,n)}var a=function(){function e(e,t,n,r,i,o){void 0===o&&(o={}),this.tranSvc=e,this.eventType=t,this.callback=n,this.matchCriteria=r,this.removeHookFromRegistry=i,this.invokeCount=0,this._deregistered=!1,this.priority=o.priority||0,this.bind=o.bind||null,this.invokeLimit=o.invokeLimit}return e.prototype._matchingNodes=function(e,t,n){if(!0===t)return e;var r=e.filter((function(e){return o(e.state,t,n)}));return r.length?r:null},e.prototype._getDefaultMatchCriteria=function(){return Object(r.ib)(this.tranSvc._pluginapi._getPathTypes(),(function(){return!0}))},e.prototype._getMatchingNodes=function(e,t){var n=this,o=Object(r.C)(this._getDefaultMatchCriteria(),this.matchCriteria);return Object(r.Tb)(this.tranSvc._pluginapi._getPathTypes()).reduce((function(a,s){var l=s.scope===i.b.STATE,c=e[s.name]||[],u=l?c:[Object(r.Lb)(c)];return a[s.name]=n._matchingNodes(u,o[s.name],t),a}),{})},e.prototype.matches=function(e,t){var n=this._getMatchingNodes(e,t);return Object(r.Tb)(n).every(r.M)?n:null},e.prototype.deregister=function(){this.removeHookFromRegistry(this),this._deregistered=!0},e}();function s(e,t,n){var i=(e._registeredHooks=e._registeredHooks||{})[n.name]=[],o=Object(r.Ab)(i);function s(e,r,s){void 0===s&&(s={});var l=new a(t,n,r,e,o,s);return i.push(l),l.deregister.bind(l)}return e[n.name]=s,s}},function(e,t,n){var r=n(259),i=n(264);e.exports=function(e,t){var n=i(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(58),i=n(260),o=n(261),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?i(e):o(e)}},function(e,t,n){var r=n(153),i=n(284),o=n(36);e.exports=function(e){return o(e)?r(e,!0):i(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),i=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=null),this._items=e,this._limit=t,this._evictListeners=[],this.onEvict=Object(r.K)(this._evictListeners)}return e.prototype.enqueue=function(e){var t=this._items;return t.push(e),this._limit&&t.length>this._limit&&this.evict(),e},e.prototype.evict=function(){var e=this._items.shift();return this._evictListeners.forEach((function(t){return t(e)})),e},e.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},e.prototype.clear=function(){var e=this._items;return this._items=[],e},e.prototype.size=function(){return this._items.length},e.prototype.remove=function(e){var t=this._items.indexOf(e);return t>-1&&this._items.splice(t,1)[0]},e.prototype.peekTail=function(){return this._items[this._items.length-1]},e.prototype.peekHead=function(){if(this.size())return this._items[0]},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0),i=n(1),o=function(){function e(e){this.pattern=/.*/,this.inherit=!0,Object(r.r)(this,e)}return e.prototype.is=function(e,t){return!0},e.prototype.encode=function(e,t){return e},e.prototype.decode=function(e,t){return e},e.prototype.equals=function(e,t){return e==t},e.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},e.prototype.toString=function(){return"{ParamType:"+this.name+"}"},e.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},e.prototype.$asArray=function(e,t){if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new a(this,e)},e}();function a(e,t){var n=this;function o(e){return Object(i.a)(e)?e:Object(i.c)(e)?[e]:[]}function a(e,n){return function(a){if(Object(i.a)(a)&&0===a.length)return a;var s=o(a),l=Object(r.B)(s,e);return!0===n?0===Object(r.s)(l,(function(e){return!e})).length:function(e){switch(e.length){case 0:return;case 1:return"auto"===t?e[0]:e;default:return e}}(l)}}function s(e){return function(t,n){var r=o(t),i=o(n);if(r.length!==i.length)return!1;for(var a=0;a<r.length;a++)if(!e(r[a],i[a]))return!1;return!0}}["encode","decode","equals","$normalize"].forEach((function(t){var r=e[t].bind(e),i="equals"===t?s:a;n[t]=i(r)})),Object(r.r)(this,{dynamic:e.dynamic,name:e.name,pattern:e.pattern,inherit:e.inherit,raw:e.raw,is:a(e.is.bind(e),!0),$arrayMode:t})}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),i=n(3),o=n(16),a=function(){function e(t){if(t instanceof e){var n=t;this.state=n.state,this.paramSchema=n.paramSchema.slice(),this.paramValues=Object(r.r)({},n.paramValues),this.resolvables=n.resolvables.slice(),this.views=n.views&&n.views.slice()}else{var i=t;this.state=i,this.paramSchema=i.parameters({inherit:!1}),this.paramValues={},this.resolvables=i.resolvables.map((function(e){return e.clone()}))}}return e.prototype.clone=function(){return new e(this)},e.prototype.applyRawParams=function(e){return this.paramValues=this.paramSchema.reduce((function(t,n){return Object(r.h)(t,[(i=n).id,i.value(e[i.id])]);var i}),{}),this},e.prototype.parameter=function(e){return Object(r.t)(this.paramSchema,Object(i.o)("id",e))},e.prototype.equals=function(e,t){var n=this.diff(e,t);return n&&0===n.length},e.prototype.diff=function(e,t){if(this.state!==e.state)return!1;var n=t?t(this):this.paramSchema;return o.b.changed(n,this.paramValues,e.paramValues)},e.clone=function(e){return e.clone()},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return x}));var r=n(10),i=n(6),o=n(7),a=n(0),s=n(1),l=n(3),c=n(14),u=n(17),d=n(45),p=n(98),f=n(18),h=n(16),g=n(15),m=n(27),v=n(9),b=n(4),y=Object(l.n)("self"),x=function(){function e(e,t,n){var r=this;if(this._deferred=i.b.$q.defer(),this.promise=this._deferred.promise,this._registeredHooks={},this._hookBuilder=new p.a(this),this.isActive=function(){return r.router.globals.transition===r},this.router=n,this._targetState=t,!t.valid())throw new Error(t.error());this._options=Object(a.r)({current:Object(l.p)(this)},t.options()),this.$id=n.transitionService._transitionCount++;var o=f.a.buildToPath(e,t);this._treeChanges=f.a.treeChanges(e,o,this._options.reloadState),this.createTransitionHookRegFns();var s=this._hookBuilder.buildHooksForPhase(c.a.CREATE);u.a.invokeHooks(s,(function(){return null})),this.applyViewConfigs(n)}return e.prototype.onBefore=function(e,t,n){},e.prototype.onStart=function(e,t,n){},e.prototype.onExit=function(e,t,n){},e.prototype.onRetain=function(e,t,n){},e.prototype.onEnter=function(e,t,n){},e.prototype.onFinish=function(e,t,n){},e.prototype.onSuccess=function(e,t,n){},e.prototype.onError=function(e,t,n){},e.prototype.createTransitionHookRegFns=function(){var e=this;this.router.transitionService._pluginapi._getEvents().filter((function(e){return e.hookPhase!==c.a.CREATE})).forEach((function(t){return Object(d.b)(e,e.router.transitionService,t)}))},e.prototype.getHooks=function(e){return this._registeredHooks[e]},e.prototype.applyViewConfigs=function(e){var t=this._treeChanges.entering.map((function(e){return e.state}));f.a.applyViewConfigs(e.transitionService.$view,this._treeChanges.to,t)},e.prototype.$from=function(){return Object(a.P)(this._treeChanges.from).state},e.prototype.$to=function(){return Object(a.P)(this._treeChanges.to).state},e.prototype.from=function(){return this.$from().self},e.prototype.to=function(){return this.$to().self},e.prototype.targetState=function(){return this._targetState},e.prototype.is=function(t){return t instanceof e?this.is({to:t.$to().name,from:t.$from().name}):!(t.to&&!Object(d.c)(this.$to(),t.to,this)||t.from&&!Object(d.c)(this.$from(),t.from,this))},e.prototype.params=function(e){return void 0===e&&(e="to"),Object.freeze(this._treeChanges[e].map(Object(l.n)("paramValues")).reduce(a.D,{}))},e.prototype.paramsChanged=function(){var e=this.params("from"),t=this.params("to"),n=[].concat(this._treeChanges.to).concat(this._treeChanges.from).map((function(e){return e.paramSchema})).reduce(b.G,[]).reduce(b.Pb,[]);return h.b.changed(n,e,t).reduce((function(e,n){return e[n.id]=t[n.id],e}),{})},e.prototype.injector=function(e,t){void 0===t&&(t="to");var n=this._treeChanges[t];return e&&(n=f.a.subPath(n,(function(t){return t.state===e||t.state.name===e}))),new m.b(n).injector()},e.prototype.getResolveTokens=function(e){return void 0===e&&(e="to"),new m.b(this._treeChanges[e]).getTokens()},e.prototype.addResolvable=function(e,t){void 0===t&&(t=""),e=Object(l.h)(g.a)(e)?e:new g.a(e);var n="string"==typeof t?t:t.name,r=this._treeChanges.to,i=Object(a.t)(r,(function(e){return e.state.name===n}));new m.b(r).addResolvables([e],i.state)},e.prototype.redirectedFrom=function(){return this._options.redirectedFrom||null},e.prototype.originalTransition=function(){var e=this.redirectedFrom();return e&&e.originalTransition()||this},e.prototype.options=function(){return this._options},e.prototype.entering=function(){return Object(a.B)(this._treeChanges.entering,Object(l.n)("state")).map(y)},e.prototype.exiting=function(){return Object(a.B)(this._treeChanges.exiting,Object(l.n)("state")).map(y).reverse()},e.prototype.retained=function(){return Object(a.B)(this._treeChanges.retained,Object(l.n)("state")).map(y)},e.prototype.views=function(e,t){void 0===e&&(e="entering");var n=this._treeChanges[e];return(n=t?n.filter(Object(l.o)("state",t)):n).map(Object(l.n)("views")).filter(a.y).reduce(a.T,[])},e.prototype.treeChanges=function(e){return e?this._treeChanges[e]:this._treeChanges},e.prototype.redirect=function(e){for(var t=1,n=this;null!=(n=n.redirectedFrom());)if(++t>20)throw new Error("Too many consecutive Transition redirects (20+)");var r={redirectedFrom:this,source:"redirect"};"url"===this.options().source&&!1!==e.options().location&&(r.location="replace");var i=Object(a.r)({},this.options(),e.options(),r);e=e.withOptions(i,!0);var o,s=this.router.transitionService.create(this._treeChanges.from,e),c=this._treeChanges.entering,u=s._treeChanges.entering;return f.a.matching(u,c,f.a.nonDynamicParams).filter(Object(l.i)((o=e.options().reloadState,function(e){return o&&e.state.includes[o.name]}))).forEach((function(e,t){e.resolvables=c[t].resolvables})),s},e.prototype._changedParams=function(){var e=this._treeChanges;if(!this._options.reload&&(!e.exiting.length&&!e.entering.length&&e.to.length===e.from.length&&!Object(a.i)(e.to,e.from).map((function(e){return e[0].state!==e[1].state})).reduce(a.g,!1))){var t=e.to.map((function(e){return e.paramSchema})),n=[e.to,e.from].map((function(e){return e.map((function(e){return e.paramValues}))})),r=n[0],i=n[1];return Object(a.i)(t,r,i).map((function(e){var t=e[0],n=e[1],r=e[2];return h.b.changed(t,n,r)})).reduce(a.T,[])}},e.prototype.dynamic=function(){var e=this._changedParams();return!!e&&e.map((function(e){return e.dynamic})).reduce(a.g,!1)},e.prototype.ignored=function(){return!!this._ignoredReason()},e.prototype._ignoredReason=function(){var e=this.router.globals.transition,t=this._options.reloadState,n=function(e,n){if(e.length!==n.length)return!1;var r=f.a.matching(e,n);return e.length===r.filter((function(e){return!t||!e.state.includes[t.name]})).length},r=this.treeChanges(),i=e&&e.treeChanges();return i&&n(i.to,r.to)&&n(i.exiting,r.exiting)?"SameAsPending":0===r.exiting.length&&0===r.entering.length&&n(r.from,r.to)?"SameAsCurrent":void 0},e.prototype.run=function(){var e=this,t=u.a.runAllHooks,n=function(t){return e._hookBuilder.buildHooksForPhase(t)},o=n(c.a.BEFORE);return u.a.invokeHooks(o,(function(){var t=e.router.globals;return t.lastStartedTransitionId=e.$id,t.transition=e,t.transitionHistory.enqueue(e),r.c.traceTransitionStart(e),i.b.$q.when(void 0)})).then((function(){var e=n(c.a.RUN);return u.a.invokeHooks(e,(function(){return i.b.$q.when(void 0)}))})).then((function(){r.c.traceSuccess(e.$to(),e),e.success=!0,e._deferred.resolve(e.to()),t(n(c.a.SUCCESS))}),(function(i){r.c.traceError(i,e),e.success=!1,e._deferred.reject(i),e._error=i,t(n(c.a.ERROR))})),this.promise},e.prototype.valid=function(){return!this.error()||void 0!==this.success},e.prototype.abort=function(){Object(s.m)(this.success)&&(this._aborted=!0)},e.prototype.error=function(){var e=this.$to();if(e.self.abstract)return v.b.invalid("Cannot transition to abstract state '"+e.name+"'");var t=e.parameters(),n=this.params(),r=t.filter((function(e){return!e.validates(n[e.id])}));if(r.length){var i=r.map((function(e){return"["+e.id+":"+Object(o.m)(n[e.id])+"]"})).join(", "),a="The following parameter values are not valid for state '"+e.name+"': "+i;return v.b.invalid(a)}return!1===this.success?this._error:void 0},e.prototype.toString=function(){var e=this.from(),t=this.to(),n=function(e){return null!==e["#"]&&void 0!==e["#"]?e:Object(a.F)(e,["#"])};return"Transition#"+this.$id+"( '"+(Object(s.i)(e)?e.name:e)+"'"+Object(o.m)(n(this._treeChanges.from.map(Object(l.n)("paramValues")).reduce(a.D,{})))+" -> "+(this.valid()?"":"(X) ")+"'"+(Object(s.i)(t)?t.name:t)+"'"+Object(o.m)(n(this.params()))+" )"},e.diToken=e,e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return c}));var r=n(32),i=n(1),o=n(0),a=n(3),s=n(44),l=function(){function e(e){this.router=e}return e.prototype.compile=function(e){return this.router.urlMatcherFactory.compile(e)},e.prototype.create=function(e,t){var n=this,o=s.a.isState,l=s.a.isStateDeclaration,u=Object(a.l)([[i.l,function(e){return u(n.compile(e))}],[Object(a.h)(r.a),function(e){return n.fromUrlMatcher(e,t)}],[Object(a.j)(o,l),function(e){return n.fromState(e,n.router)}],[Object(a.h)(RegExp),function(e){return n.fromRegExp(e,t)}],[i.d,function(e){return new c(e,t)}]]),d=u(e);if(!d)throw new Error("invalid 'what' in when()");return d},e.prototype.fromUrlMatcher=function(e,t){var n=t;Object(i.l)(t)&&(t=this.router.urlMatcherFactory.compile(t)),Object(a.h)(r.a)(t)&&(n=function(e){return t.format(e)});var s={urlMatcher:e,matchPriority:function(t){var n=e.parameters().filter((function(e){return e.isOptional}));return n.length?n.filter((function(e){return t[e.id]})).length/n.length:1e-6},type:"URLMATCHER"};return Object(o.r)(new c((function(t){var n=e.exec(t.path,t.search,t.hash);return e.validates(n)&&n}),n),s)},e.prototype.fromState=function(e,t){var n=s.a.isStateDeclaration(e)?e.$$state():e,r={state:n,type:"STATE"};return Object(o.r)(this.fromUrlMatcher(n.url,(function(e){var r=t.stateService,i=t.globals;r.href(n,e)!==r.href(i.current,i.params)&&r.transitionTo(n,e,{inherit:!0,source:"url"})})),r)},e.prototype.fromRegExp=function(e,t){if(e.global||e.sticky)throw new Error("Rule RegExp must not be global or sticky");var n=Object(i.l)(t)?function(e){return t.replace(/\$(\$|\d{1,2})/,(function(t,n){return e["$"===n?0:Number(n)]}))}:t,r={regexp:e,type:"REGEXP"};return Object(o.r)(new c((function(t){return e.exec(t.path)}),n),r)},e.isUrlRule=function(e){return e&&["type","match","handler"].every((function(t){return Object(i.c)(e[t])}))},e}(),c=function(e,t){var n=this;this.match=e,this.type="RAW",this.matchPriority=function(e){return 0-n.$id},this.handler=t||o.y}},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return l}));var r=n(2);function i(){var e=null;return function(t,n){return e=e||r.services.$injector.get("$templateFactory"),[new l(t,n,e)]}}var o=function(e,t){return e.reduce((function(e,n){return e||Object(r.isDefined)(t[n])}),!1)};function a(e){if(!e.parent)return{};var t=["component","bindings","componentProvider"],n=["templateProvider","templateUrl","template","notify","async"].concat(["controller","controllerProvider","controllerAs","resolveAs"]),i=t.concat(n);if(Object(r.isDefined)(e.views)&&o(i,e))throw new Error("State '"+e.name+"' has a 'views' object. It cannot also have \"view properties\" at the state level. Move the following properties into a view (in the 'views' object): "+i.filter((function(t){return Object(r.isDefined)(e[t])})).join(", "));var a={},s=e.views||{$default:Object(r.pick)(e,i)};return Object(r.forEach)(s,(function(i,s){if(s=s||"$default",Object(r.isString)(i)&&(i={component:i}),i=Object(r.extend)({},i),o(t,i)&&o(n,i))throw new Error("Cannot combine: "+t.join("|")+" with: "+n.join("|")+" in stateview: '"+s+"@"+e.name+"'");i.resolveAs=i.resolveAs||"$resolve",i.$type="ng1",i.$context=e,i.$name=s;var l=r.ViewService.normalizeUIViewTarget(i.$context,i.$name);i.$uiViewName=l.uiViewName,i.$uiViewContextAnchor=l.uiViewContextAnchor,a[s]=i})),a}var s=0,l=function(){function e(e,t,n){var r=this;this.path=e,this.viewDecl=t,this.factory=n,this.$id=s++,this.loaded=!1,this.getTemplate=function(e,t){return r.component?r.factory.makeComponentTemplate(e,t,r.component,r.viewDecl.bindings):r.template}}return e.prototype.load=function(){var e=this,t=r.services.$q,n=new r.ResolveContext(this.path),i=this.path.reduce((function(e,t){return Object(r.extend)(e,t.paramValues)}),{}),o={template:t.when(this.factory.fromConfig(this.viewDecl,i,n)),controller:t.when(this.getController(n))};return t.all(o).then((function(t){return r.trace.traceViewServiceEvent("Loaded",e),e.controller=t.controller,Object(r.extend)(e,t.template),e}))},e.prototype.getController=function(e){var t=this.viewDecl.controllerProvider;if(!Object(r.isInjectable)(t))return this.viewDecl.controller;var n=r.services.$injector.annotate(t),i=Object(r.isArray)(t)?Object(r.tail)(t):t;return new r.Resolvable("",i,n).get(e)},e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return z})),n.d(t,"a",(function(){return L}));var r=n(14),i=n(53),o=n(45),a=n(99),s=n(38),l=n(4);function c(e){e.addResolvable(s.b.fromData(a.a,e.router),""),e.addResolvable(s.b.fromData(i.a,e),""),e.addResolvable(s.b.fromData("$transition$",e),""),e.addResolvable(s.b.fromData("$stateParams",e.params()),""),e.entering().forEach((function(t){e.addResolvable(s.b.fromData("$state$",t),t)}))}var u=["$transition$",i.a],d=Object(l.N)(u),p=function(e){var t=Object(l.Tb)(e.treeChanges()).reduce(l.Rb,[]).reduce(l.Pb,[]),n=function(e){return d(e.token)?s.b.fromData(e.token,null):e};t.forEach((function(e){e.resolvables=e.resolvables.map(n)}))},f=n(1),h=n(6),g=n(26),m=function(e){var t=e.to().redirectTo;if(t){var n=e.router.stateService;return Object(f.d)(t)?h.b.$q.when(t(e)).then(r):r(t)}function r(t){if(t)return t instanceof g.a?t:Object(f.l)(t)?n.target(t,e.params(),e.options()):t.state||t.params?n.target(t.state||e.to(),t.params||e.params(),e.options()):void 0}};function v(e){return function(t,n){return(0,n.$$state()[e])(t,n)}}var b=v("onExit"),y=v("onRetain"),x=v("onEnter"),w=n(0),k=n(27),A=n(3),E=function(e){return new k.b(e.treeChanges().to).resolvePath("EAGER",e).then(w.E)},S=function(e,t){return new k.b(e.treeChanges().to).subContext(t.$$state()).resolvePath("LAZY",e).then(w.E)},$=function(e){return new k.b(e.treeChanges().to).resolvePath("LAZY",e).then(w.E)},C=function(e){var t=h.b.$q,n=e.views("entering");if(n.length)return t.all(n.map((function(e){return t.when(e.load())}))).then(w.E)},_=function(e){var t=e.views("entering"),n=e.views("exiting");if(t.length||n.length){var r=e.router.viewService;n.forEach((function(e){return r.deactivateViewConfig(e)})),t.forEach((function(e){return r.activateViewConfig(e)})),r.sync()}},O=function(e){var t=e.router.globals,n=function(){t.transition===e&&(t.transition=null)};e.onSuccess({},(function(){t.successfulTransitions.enqueue(e),t.$current=e.$to(),t.current=t.$current.self,Object(w.m)(e.params(),t.params)}),{priority:1e4}),e.promise.then(n,n)},T=function(e){var t=e.options(),n=e.router.stateService,r=e.router.urlRouter;if("url"!==t.source&&t.location&&n.$current.navigable){var i={replace:"replace"===t.location};r.push(n.$current.navigable.url,n.params,i)}r.update(!0)},j=n(115),P=n(107),D=n(17),R=n(10),I=n(9);function N(e){var t=e._ignoredReason();if(t){R.c.traceTransitionIgnored(e);var n=e.router.globals.transition;return"SameAsCurrent"===t&&n&&n.abort(),I.b.ignored().toPromise()}}function M(e){if(!e.valid())throw new Error(e.error().toString())}var z={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,supercede:!0,custom:{},current:function(){return null},source:"unknown"},L=function(){function e(e){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=e,this.$view=e.viewService,this._deregisterHookFns={},this._pluginapi=Object(w.n)(Object(A.p)(this),{},Object(A.p)(this),["_definePathType","_defineEvent","_getPathTypes","_getEvents","getHooks"]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks(),e.globals.successfulTransitions.onEvict(p)}return e.prototype.onCreate=function(e,t,n){},e.prototype.onBefore=function(e,t,n){},e.prototype.onStart=function(e,t,n){},e.prototype.onExit=function(e,t,n){},e.prototype.onRetain=function(e,t,n){},e.prototype.onEnter=function(e,t,n){},e.prototype.onFinish=function(e,t,n){},e.prototype.onSuccess=function(e,t,n){},e.prototype.onError=function(e,t,n){},e.prototype.dispose=function(e){Object(w.U)(this._registeredHooks).forEach((function(e){return e.forEach((function(t){t._deregistered=!0,Object(w.L)(e,t)}))}))},e.prototype.create=function(e,t){return new i.a(e,t,this._router)},e.prototype._defineCoreEvents=function(){var e=r.a,t=D.a,n=this._criteriaPaths;this._defineEvent("onCreate",e.CREATE,0,n.to,!1,t.LOG_REJECTED_RESULT,t.THROW_ERROR,!0),this._defineEvent("onBefore",e.BEFORE,0,n.to),this._defineEvent("onStart",e.RUN,0,n.to),this._defineEvent("onExit",e.RUN,100,n.exiting,!0),this._defineEvent("onRetain",e.RUN,200,n.retained),this._defineEvent("onEnter",e.RUN,300,n.entering),this._defineEvent("onFinish",e.RUN,400,n.to),this._defineEvent("onSuccess",e.SUCCESS,0,n.to,!1,t.LOG_REJECTED_RESULT,t.LOG_ERROR,!0),this._defineEvent("onError",e.ERROR,0,n.to,!1,t.LOG_REJECTED_RESULT,t.LOG_ERROR,!0)},e.prototype._defineCorePaths=function(){var e=r.b.STATE,t=r.b.TRANSITION;this._definePathType("to",t),this._definePathType("from",t),this._definePathType("exiting",e),this._definePathType("retained",e),this._definePathType("entering",e)},e.prototype._defineEvent=function(e,t,n,r,i,a,s,l){void 0===i&&(i=!1),void 0===a&&(a=D.a.HANDLE_RESULT),void 0===s&&(s=D.a.REJECT_ERROR),void 0===l&&(l=!1);var c=new P.a(e,t,n,r,i,a,s,l);this._eventTypes.push(c),Object(o.b)(this,this,c)},e.prototype._getEvents=function(e){return(Object(f.c)(e)?this._eventTypes.filter((function(t){return t.hookPhase===e})):this._eventTypes.slice()).sort((function(e,t){var n=e.hookPhase-t.hookPhase;return 0===n?e.hookOrder-t.hookOrder:n}))},e.prototype._definePathType=function(e,t){this._criteriaPaths[e]={name:e,scope:t}},e.prototype._getPathTypes=function(){return this._criteriaPaths},e.prototype.getHooks=function(e){return this._registeredHooks[e]},e.prototype._registerCoreTransitionHooks=function(){var e=this._deregisterHookFns;e.addCoreResolves=this.onCreate({},c),e.ignored=function(e){return e.onBefore({},N,{priority:-9999})}(this),e.invalid=function(e){return e.onBefore({},M,{priority:-1e4})}(this),e.redirectTo=function(e){return e.onStart({to:function(e){return!!e.redirectTo}},m)}(this),e.onExit=function(e){return e.onExit({exiting:function(e){return!!e.onExit}},b)}(this),e.onRetain=function(e){return e.onRetain({retained:function(e){return!!e.onRetain}},y)}(this),e.onEnter=function(e){return e.onEnter({entering:function(e){return!!e.onEnter}},x)}(this),e.eagerResolve=function(e){return e.onStart({},E,{priority:1e3})}(this),e.lazyResolve=function(e){return e.onEnter({entering:Object(A.p)(!0)},S,{priority:1e3})}(this),e.resolveAll=function(e){return e.onFinish({},$,{priority:1e3})}(this),e.loadViews=function(e){return e.onFinish({},C)}(this),e.activateViews=function(e){return e.onSuccess({},_)}(this),e.updateGlobals=function(e){return e.onCreate({},O)}(this),e.updateUrl=function(e){return e.onSuccess({},T,{priority:9999})}(this),e.lazyLoad=Object(j.b)(this)},e}()},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(31).Symbol;e.exports=r},function(e,t,n){(function(e){var r=n(31),i=n(280),o=t&&!t.nodeType&&t,a=o&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===o?r.Buffer:void 0,l=(s?s.isBuffer:void 0)||i;e.exports=l}).call(this,n(80)(e))},function(e,t,n){var r=n(289),i=n(117),o=n(290),a=n(162),s=n(291),l=n(47),c=n(151),u=c(r),d=c(i),p=c(o),f=c(a),h=c(s),g=l;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||i&&"[object Map]"!=g(new i)||o&&"[object Promise]"!=g(o.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case u:return"[object DataView]";case d:return"[object Map]";case p:return"[object Promise]";case f:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=g},function(e,t,n){var r=n(47),i=n(34);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(e){this.text=e,this.glob=e.split(".");var t=this.text.split(".").map((function(e){return"**"===e?"(?:|(?:\\.[^.]*)*)":"*"===e?"\\.[^.]*":"\\."+e})).join("");this.regexp=new RegExp("^"+t+"$")}return e.is=function(e){return!!/[!,*]+/.exec(e)},e.fromString=function(t){return e.is(t)?new e(t):null},e.prototype.matches=function(e){return this.regexp.test("."+e)},e}()},function(e,t,n){(function(t){var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function e(t,n){var r,o;switch(n=n||{},i.util.type(t)){case"Object":if(o=i.util.objId(t),n[o])return n[o];for(var a in r={},n[o]=r,t)t.hasOwnProperty(a)&&(r[a]=e(t[a],n));return r;case"Array":return o=i.util.objId(t),n[o]?n[o]:(r=[],n[o]=r,t.forEach((function(t,i){r[i]=e(t,n)})),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,"gi"),""),e.classList.add("language-"+n)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r="no-"+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=i.util.clone(i.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){var o=(r=r||i.languages)[e],a={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(a[l]=n[l]);n.hasOwnProperty(s)||(a[s]=o[s])}var c=r[e];return r[e]=a,i.languages.DFS(i.languages,(function(t,n){n===c&&t!=e&&(this[t]=a)})),a},DFS:function e(t,n,r,o){o=o||{};var a=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var l=t[s],c=i.util.type(l);"Object"!==c||o[a(l)]?"Array"!==c||o[a(l)]||(o[a(l)]=!0,e(l,n,s,o)):(o[a(l)]=!0,e(l,n,null,o))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};i.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),i.hooks.run("before-all-elements-highlight",r);for(var o,a=0;o=r.elements[a++];)i.highlightElement(o,!0===t,r.callback)},highlightElement:function(t,n,r){var o=i.util.getLanguage(t),a=i.languages[o];i.util.setLanguage(t,o);var s=t.parentElement;s&&"pre"===s.nodeName.toLowerCase()&&i.util.setLanguage(s,o);var l={element:t,language:o,grammar:a,code:t.textContent};function c(e){l.highlightedCode=e,i.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,i.hooks.run("after-highlight",l),i.hooks.run("complete",l),r&&r.call(l.element)}if(i.hooks.run("before-sanity-check",l),(s=l.element.parentElement)&&"pre"===s.nodeName.toLowerCase()&&!s.hasAttribute("tabindex")&&s.setAttribute("tabindex","0"),!l.code)return i.hooks.run("complete",l),void(r&&r.call(l.element));if(i.hooks.run("before-highlight",l),l.grammar)if(n&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){c(e.data)},u.postMessage(JSON.stringify({language:l.language,code:l.code,immediateClose:!0}))}else c(i.highlight(l.code,l.grammar,l.language));else c(i.util.encode(l.code))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(i.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=i.tokenize(r.code,r.grammar),i.hooks.run("after-tokenize",r),o.stringify(i.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var u=new s;return l(u,u.head,e),function e(t,n,r,s,u,d){for(var p in r)if(r.hasOwnProperty(p)&&r[p]){var f=r[p];f=Array.isArray(f)?f:[f];for(var h=0;h<f.length;++h){if(d&&d.cause==p+","+h)return;var g=f[h],m=g.inside,v=!!g.lookbehind,b=!!g.greedy,y=g.alias;if(b&&!g.pattern.global){var x=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,x+"g")}for(var w=g.pattern||g,k=s.next,A=u;k!==n.tail&&!(d&&A>=d.reach);A+=k.value.length,k=k.next){var E=k.value;if(n.length>t.length)return;if(!(E instanceof o)){var S,$=1;if(b){if(!(S=a(w,A,t,v))||S.index>=t.length)break;var C=S.index,_=S.index+S[0].length,O=A;for(O+=k.value.length;C>=O;)k=k.next,O+=k.value.length;if(O-=k.value.length,A=O,k.value instanceof o)continue;for(var T=k;T!==n.tail&&(O<_||"string"==typeof T.value);T=T.next)$++,O+=T.value.length;$--,E=t.slice(A,O),S.index-=A}else if(!(S=a(w,0,E,v)))continue;C=S.index;var j=S[0],P=E.slice(0,C),D=E.slice(C+j.length),R=A+E.length;d&&R>d.reach&&(d.reach=R);var I=k.prev;P&&(I=l(n,I,P),A+=P.length),c(n,I,$);var N=new o(p,m?i.tokenize(j,m):j,y,j);if(k=l(n,I,N),D&&l(n,k,D),$>1){var M={cause:p+","+h,reach:R};e(t,n,r,k.prev,A,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}(e,u,t,u.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=i.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=i.hooks.all[e];if(n&&n.length)for(var r,o=0;r=n[o++];)r(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var o=i[1].length;i.index+=o,i[0]=i[0].slice(o)}return i}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function c(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}if(e.Prism=i,o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var r="";return t.forEach((function(t){r+=e(t,n)})),r}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},a=t.alias;a&&(Array.isArray(a)?Array.prototype.push.apply(o.classes,a):o.classes.push(a)),i.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},!e.document)return e.addEventListener?(i.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),r=n.language,o=n.code,a=n.immediateClose;e.postMessage(i.highlight(o,i.languages[r],r)),a&&e.close()}),!1),i):i;var u=i.util.currentScript();function d(){i.manual||i.highlightAll()}if(u&&(i.filename=u.src,u.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var p=document.readyState;"loading"===p||"interactive"===p&&u&&u.defer?document.addEventListener("DOMContentLoaded",d):window.requestAnimationFrame?window.requestAnimationFrame(d):window.setTimeout(d,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{}); /** * Prism: Lightweight, robust, elegant syntax highlighting * @@ -30,7 +30,7 @@ * @author Lea Verou <https://lea.verou.me> * @namespace * @public - */e.exports&&(e.exports=n),void 0!==t&&(t.Prism=n),n.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside["internal-subset"].inside=n.languages.markup,n.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i["language-"+t]={pattern:/[\s\S]+/,inside:n.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},n.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(e,t){n.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:n.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend("markup",{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),n.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),n.languages.markup&&(n.languages.markup.tag.addInlined("script","javascript"),n.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),n.languages.js=n.languages.javascript,function(){if(void 0!==n&&"undefined"!=typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},t='pre[data-src]:not([data-src-status="loaded"]):not([data-src-status="loading"])';n.hooks.add("before-highlightall",(function(e){e.selector+=", "+t})),n.hooks.add("before-sanity-check",(function(r){var i=r.element;if(i.matches(t)){r.code="",i.setAttribute("data-src-status","loading");var o=i.appendChild(document.createElement("CODE"));o.textContent="Loading…";var a=i.getAttribute("data-src"),s=r.language;if("none"===s){var l=(/\.(\w+)$/.exec(a)||[,"none"])[1];s=e[l]||l}n.util.setLanguage(o,s),n.util.setLanguage(i,s);var c=n.plugins.autoloader;c&&c.loadLanguages(s),function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.onreadystatechange=function(){var e,i;4==r.readyState&&(r.status<400&&r.responseText?t(r.responseText):r.status>=400?n((e=r.status,i=r.statusText,"✖ Error "+e+" while fetching file: "+i)):n("✖ Error: File does not exist or is empty"))},r.send(null)}(a,(function(e){i.setAttribute("data-src-status","loaded");var t=function(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"");if(t){var n=Number(t[1]),r=t[2],i=t[3];return r?i?[n,Number(i)]:[n,void 0]:[n,n]}}(i.getAttribute("data-range"));if(t){var r=e.split(/\r\n?|\n/g),a=t[0],s=null==t[1]?r.length:t[1];a<0&&(a+=r.length),a=Math.max(0,Math.min(a-1,r.length)),s<0&&(s+=r.length),s=Math.max(0,Math.min(s,r.length)),e=r.slice(a,s).join("\n"),i.hasAttribute("data-start")||i.setAttribute("data-start",String(a+1))}o.textContent=e,n.highlightElement(o)}),(function(e){i.setAttribute("data-src-status","failed"),o.textContent=e}))}})),n.plugins.fileHighlight={highlight:function(e){for(var r,i=(e||document).querySelectorAll(t),o=0;r=i[o++];)n.highlightElement(r)}};var r=!1;n.fileHighlight=function(){r||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),r=!0),n.plugins.fileHighlight.highlight.apply(this,arguments)}}}()}).call(this,n(35))},function(e,t,n){var r=n(47),i=n(23);e.exports=function(e){if(!i(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var r=n(78),i=n(79);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var c=t[s],u=o?o(n[c],e[c],c,n,e):void 0;void 0===u&&(u=e[c]),a?i(n,c,u):r(n,c,u)}return n}},function(e,t,n){var r=n(279),i=n(34),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},function(e,t,n){var r=n(281),i=n(82),o=n(121),a=o&&o.isTypedArray,s=a?i(a):r;e.exports=s},function(e,t,n){var r=n(61);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r={when:{LAZY:"LAZY",EAGER:"EAGER"},async:{WAIT:"WAIT",NOWAIT:"NOWAIT"}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(4),i={when:function(e){return new Promise((function(t,n){return t(e)}))},reject:function(e){return new Promise((function(t,n){n(e)}))},defer:function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e},all:function(e){if(Object(r.R)(e))return Promise.all(e);if(Object(r.Z)(e)){var t=Object.keys(e).map((function(t){return e[t].then((function(e){return{key:t,val:e}}))}));return i.all(t).then((function(e){return e.reduce((function(e,t){return e[t.key]=t.val,e}),{})}))}}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(4),i={},o=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,a=/([^\s,]+)/g,s={get:function(e){return i[e]},has:function(e){return null!=s.get(e)},invoke:function(e,t,n){var o=Object(r.C)({},i,n||{}),a=s.annotate(e),l=Object(r.s)((function(e){return o.hasOwnProperty(e)}),(function(e){return"DI can't find injectable: '"+e+"'"})),c=a.filter(l).map((function(e){return o[e]}));return Object(r.U)(e)?e.apply(t,c):e.slice(-1)[0].apply(t,c)},annotate:function(e){if(!Object(r.V)(e))throw new Error("Not an injectable function: "+e);if(e&&e.$inject)return e.$inject;if(Object(r.R)(e))return e.slice(0,-1);var t=e.toString().replace(o,"");return t.slice(t.indexOf("(")+1,t.indexOf(")")).match(a)||[]}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(1),i=function(){function e(e,t){void 0===t&&(t=!1),this._isHtml5=t,this._baseHref=void 0,this._hashPrefix=""}return e.prototype.port=function(){return location.port?Number(location.port):"https"===this.protocol()?443:80},e.prototype.protocol=function(){return location.protocol.replace(/:/g,"")},e.prototype.host=function(){return location.hostname},e.prototype.html5Mode=function(){return this._isHtml5},e.prototype.hashPrefix=function(e){return Object(r.c)(e)?this._hashPrefix=e:this._hashPrefix},e.prototype.baseHref=function(e){return Object(r.c)(e)&&(this._baseHref=e),Object(r.m)(this._baseHref)&&(this._baseHref=this.getBaseHref()),this._baseHref},e.prototype.getBaseHref=function(){var e=document.getElementsByTagName("base")[0];return e&&e.href?e.href.replace(/^([^/:]*:)?\/\/[^/]*/,""):this._isHtml5?"/":location.pathname||"/"},e.prototype.dispose=function(){},e}()},function(e,t,n){var r=n(74),i=n(254),o=n(255),a=n(256),s=n(257),l=n(258);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=s,c.prototype.set=l,e.exports=c},function(e,t,n){var r=n(249),i=n(250),o=n(251),a=n(252),s=n(253);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},function(e,t,n){var r=n(57);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(46)(Object,"create");e.exports=r},function(e,t,n){var r=n(273);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(79),i=n(57),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&i(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){var r=n(152);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(154)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(127),i=n(302)(r);e.exports=i},function(e,t,n){var r=n(87),i=n(68);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[i(t[n++])];return n&&n==o?e:void 0}},function(e,t,n){var r=n(13),i=n(130),o=n(316),a=n(177);e.exports=function(e,t){return r(e)?e:i(e,t)?[e]:o(a(e))}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}},function(e,t,n){var r=n(49),i=n(186),o=n(187);e.exports=function(e,t){return o(i(e,t,r),e+"")}},function(e,t,n){var r=n(57),i=n(36),o=n(81),a=n(23);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?i(n)&&o(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},function(e,t,n){"use strict";var r=n(11);e.exports={longestPath:function(e){var t={};r.forEach(e.sources(),(function n(i){var o=e.node(i);if(r.has(t,i))return o.rank;t[i]=!0;var a=r.min(r.map(e.outEdges(i),(function(t){return n(t.w)-e.edge(t).minlen})));return a!==Number.POSITIVE_INFINITY&&null!=a||(a=0),o.rank=a}))},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),i=function(){function e(e){void 0===e&&(e={}),Object(r.r)(this,e)}return e.prototype.$inherit=function(e,t,n){var i,o=Object(r.f)(t,n),a={},s=[];for(var l in o)if(o[l]&&o[l].params&&(i=Object.keys(o[l].params)).length)for(var c in i)s.indexOf(i[c])>=0||(s.push(i[c]),a[i[c]]=this[i[c]]);return Object(r.r)({},a,e)},e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return v}));var r=n(0),i=n(1),o=n(7),a=n(3),s=n(15),l=n(6);function c(e){return e.name}function u(e){return e.self.$$state=function(){return e},e.self}function d(e){return e.parent&&e.parent.data&&(e.data=e.self.data=Object(r.A)(e.parent.data,e.data)),e.data}var p=function(e,t){return function(n){var o=n.self;if(o&&o.url&&o.name&&o.name.match(/\.\*\*$/)){var a={};Object(r.m)(o,a),a.url+="{remainder:any}",o=a}var s=n.parent,l=function(e){if(!Object(i.l)(e))return!1;var t="^"===e.charAt(0);return{val:t?e.substring(1):e,root:t}}(o.url),c=l?e.compile(l.val,{state:o}):o.url;if(!c)return null;if(!e.isMatcher(c))throw new Error("Invalid url '"+c+"' in state '"+n+"'");return l&&l.root?c:(s&&s.navigable||t()).url.append(c)}},f=function(e){return function(t){return!e(t)&&t.url?t:t.parent?t.parent.navigable:null}};function h(e){return e.parent?e.parent.path.concat(e):[e]}function g(e){var t=e.parent?Object(r.r)({},e.parent.includes):{};return t[e.name]=!0,t}function m(e){var t,n,c=function(e){return e.provide||e.token},u=Object(a.l)([[Object(a.n)("resolveFn"),function(e){return new s.a(c(e),e.resolveFn,e.deps,e.policy)}],[Object(a.n)("useFactory"),function(e){return new s.a(c(e),e.useFactory,e.deps||e.dependencies,e.policy)}],[Object(a.n)("useClass"),function(e){return new s.a(c(e),(function(){return new e.useClass}),[],e.policy)}],[Object(a.n)("useValue"),function(e){return new s.a(c(e),(function(){return e.useValue}),[],e.policy,e.useValue)}],[Object(a.n)("useExisting"),function(e){return new s.a(c(e),r.y,[e.useExisting],e.policy)}]]),d=Object(a.l)([[Object(a.m)(Object(a.n)("val"),i.l),function(e){return new s.a(e.token,r.y,[e.val],e.policy)}],[Object(a.m)(Object(a.n)("val"),i.a),function(e){return new s.a(e.token,Object(r.P)(e.val),e.val.slice(0,-1),e.policy)}],[Object(a.m)(Object(a.n)("val"),i.d),function(e){return new s.a(e.token,e.val,(t=e.val,n=l.b.$injector,t.$inject||n&&n.annotate(t,n.strictDi)||"deferred"),e.policy);var t,n}]]),p=Object(a.l)([[Object(a.h)(s.a),function(e){return e}],[function(e){return!(!e.token||!e.resolveFn)},u],[function(e){return!(!e.provide&&!e.token||!(e.useValue||e.useFactory||e.useExisting||e.useClass))},u],[function(e){return!!(e&&e.val&&(Object(i.l)(e.val)||Object(i.a)(e.val)||Object(i.d)(e.val)))},d],[Object(a.p)(!0),function(e){throw new Error("Invalid resolve value: "+Object(o.m)(e))}]]),f=e.resolve;return(Object(i.a)(f)?f:(t=f,n=e.resolvePolicy||{},Object.keys(t||{}).map((function(e){return{token:e,val:t[e],deps:void 0,policy:n[e]}})))).map(p)}var v=function(){function e(e,t){this.matcher=e;var n,i=this,o=function(){return e.find("")},s=function(e){return""===e.name};this.builders={name:[c],self:[u],parent:[function(t){return s(t)?null:e.find(i.parentName(t))||o()}],data:[d],url:[p(t,o)],navigable:[f(s)],params:[(n=t.paramFactory,function(e){var t=e.url&&e.url.parameters({inherit:!1})||[],i=Object(r.U)(Object(r.C)(Object(r.F)(e.params||{},t.map(Object(a.n)("id"))),(function(t,r){return n.fromConfig(r,null,e.self)})));return t.concat(i).map((function(e){return[e.id,e]})).reduce(r.h,{})})],views:[],path:[h],includes:[g],resolvables:[m]}}return e.prototype.builder=function(e,t){var n=this.builders,r=n[e]||[];return Object(i.l)(e)&&!Object(i.c)(t)?r.length>1?r:r[0]:Object(i.l)(e)&&Object(i.d)(t)?(n[e]=r,n[e].push(t),function(){return n[e].splice(n[e].indexOf(t,1))&&null}):void 0},e.prototype.build=function(e){var t=this.matcher,n=this.builders,i=this.parentName(e);if(i&&!t.find(i,void 0,!1))return null;for(var o in n)if(n.hasOwnProperty(o)){var a=n[o].reduce((function(e,t){return function(n){return t(n,e)}}),r.E);e[o]=a(e)}return e},e.prototype.parentName=function(e){var t=e.name||"",n=t.split(".");if("**"===n.pop()&&n.pop(),n.length){if(e.parent)throw new Error("States that specify the 'parent:' property should not have a '.' in their name ("+t+")");return n.join(".")}return e.parent?Object(i.l)(e.parent)?e.parent:e.parent.name:""},e.prototype.name=function(e){var t=e.name;if(-1!==t.indexOf(".")||!e.parent)return t;var n=Object(i.l)(e.parent)?e.parent:e.parent.name;return n?n+"."+t:t},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(1),i=n(0),o=n(19),a=function(){function e(e){this._states=e}return e.prototype.isRelative=function(e){return 0===(e=e||"").indexOf(".")||0===e.indexOf("^")},e.prototype.find=function(e,t,n){if(void 0===n&&(n=!0),e||""===e){var a=Object(r.l)(e),s=a?e:e.name;this.isRelative(s)&&(s=this.resolvePath(s,t));var l=this._states[s];if(l&&(a||!(a||l!==e&&l.self!==e)))return l;if(a&&n){var c=Object(i.U)(this._states).filter((function(e){return e.__stateObjectCache.nameGlob&&e.__stateObjectCache.nameGlob.matches(s)}));return c.length>1&&o.a.error("stateMatcher.find: Found multiple matches for "+s+" using glob: ",c.map((function(e){return e.name}))),c[0]}}},e.prototype.resolvePath=function(e,t){if(!t)throw new Error("No reference point given for path '"+e+"'");for(var n=this.find(t),r=e.split("."),i=r.length,o=0,a=n;o<i;o++)if(""!==r[o]||0!==o){if("^"!==r[o])break;if(!a.parent)throw new Error("Path '"+e+"' not valid for state '"+n.name+"'");a=a.parent}else a=n;var s=r.slice(o).join(".");return a.name+(a.name&&s?".":"")+s},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),i=n(44),o=function(){function e(e,t,n,r){this.router=e,this.states=t,this.builder=n,this.listeners=r,this.queue=[]}return e.prototype.dispose=function(){this.queue=[]},e.prototype.register=function(e){var t=this.queue,n=i.a.create(e),o=n.name;if(!Object(r.cb)(o))throw new Error("State must have a valid name");if(this.states.hasOwnProperty(o)||Object(r.N)(t.map(Object(r.wb)("name")),o))throw new Error("State '"+o+"' is already defined");return t.push(n),this.flush(),n},e.prototype.flush=function(){for(var e=this,t=this.queue,n=this.states,r=this.builder,i=[],o=[],a={},s=function(t){return e.states.hasOwnProperty(t)&&e.states[t]},l=function(){i.length&&e.listeners.forEach((function(e){return e("registered",i.map((function(e){return e.self})))}))};t.length>0;){var c=t.shift(),u=c.name,d=r.build(c),p=o.indexOf(c);if(d){var f=s(u);if(f&&f.name===u)throw new Error("State '"+u+"' is already defined");var h=s(u+".**");h&&this.router.stateRegistry.deregister(h),n[u]=c,this.attachRoute(c),p>=0&&o.splice(p,1),i.push(c)}else{var g=a[u];if(a[u]=t.length,p>=0&&g===t.length)return t.push(c),l(),n;p<0&&o.push(c),t.push(c)}}return l(),n},e.prototype.attachRoute=function(e){if(!e.abstract&&e.url){var t=this.router.urlService.rules;t.rule(t.urlRuleFactory.create(e))}},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(94),i=n(93),o=n(95),a=n(0),s=n(3),l=function(){function e(e){this.router=e,this.states={},this.listeners=[],this.matcher=new r.a(this.states),this.builder=new i.a(this.matcher,e.urlMatcherFactory),this.stateQueue=new o.a(e,this.states,this.builder,this.listeners),this._registerRoot()}return e.prototype._registerRoot=function(){(this._root=this.stateQueue.register({name:"",url:"^",views:null,params:{"#":{value:null,type:"hash",dynamic:!0}},abstract:!0})).navigable=null},e.prototype.dispose=function(){var e=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach((function(t){return e.get(t)&&e.deregister(t)}))},e.prototype.onStatesChanged=function(e){return this.listeners.push(e),function(){Object(a.L)(this.listeners)(e)}.bind(this)},e.prototype.root=function(){return this._root},e.prototype.register=function(e){return this.stateQueue.register(e)},e.prototype._deregisterTree=function(e){var t=this,n=this.get().map((function(e){return e.$$state()})),r=function(e){var t=n.filter((function(t){return-1!==e.indexOf(t.parent)}));return 0===t.length?t:t.concat(r(t))},i=r([e]),o=[e].concat(i).reverse();return o.forEach((function(e){var n=t.router.urlService.rules;n.rules().filter(Object(s.o)("state",e)).forEach((function(e){return n.removeRule(e)})),delete t.states[e.name]})),o},e.prototype.deregister=function(e){var t=this.get(e);if(!t)throw new Error("Can't deregister state; not found: "+e);var n=this._deregisterTree(t.$$state());return this.listeners.forEach((function(e){return e("deregistered",n.map((function(e){return e.self})))})),n},e.prototype.get=function(e,t){var n=this;if(0===arguments.length)return Object.keys(this.states).map((function(e){return n.states[e].self}));var r=this.matcher.find(e,t);return r&&r.self||null},e.prototype.decorator=function(e,t){return this.builder.builder(e,t)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v}));var r=n(0),i=n(1),o=n(50),a=n(6),s=n(18),l=n(52),c=n(56),u=n(8),d=n(24),p=n(16),f=n(62),h=n(25),g=n(115),m=n(3),v=function(){function e(t){this.router=t,this.invalidCallbacks=[],this._defaultErrorHandler=function(e){e instanceof Error&&e.stack?(console.error(e),console.error(e.stack)):e instanceof u.b?(console.error(e.toString()),e.detail&&e.detail.stack&&console.error(e.detail.stack)):console.error(e)};var n=Object.keys(e.prototype).filter(Object(m.i)(Object(r.z)(["current","$current","params","transition"])));Object(r.n)(Object(m.p)(e.prototype),this,Object(m.p)(this),n)}return Object.defineProperty(e.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.defaultErrorHandler(r.E),this.invalidCallbacks=[]},e.prototype._handleInvalidTargetState=function(e,t){var n=this,r=s.a.makeTargetState(this.router.stateRegistry,e),i=this.router.globals,l=function(){return i.transitionHistory.peekTail()},c=l(),p=new o.a(this.invalidCallbacks.slice()),f=new h.b(e).injector(),g=function(e){if(e instanceof d.a){var t=e;return(t=n.target(t.identifier(),t.params(),t.options())).valid()?l()!==c?u.b.superseded().toPromise():n.transitionTo(t.identifier(),t.params(),t.options()):u.b.invalid(t.error()).toPromise()}};return function e(){var n=p.dequeue();return void 0===n?u.b.invalid(t.error()).toPromise():a.b.$q.when(n(t,r,f)).then(g).then((function(t){return t||e()}))}()},e.prototype.onInvalid=function(e){return this.invalidCallbacks.push(e),function(){Object(r.L)(this.invalidCallbacks)(e)}.bind(this)},e.prototype.reload=function(e){return this.transitionTo(this.current,this.params,{reload:!Object(i.c)(e)||e,inherit:!1,notify:!1})},e.prototype.go=function(e,t,n){var i={relative:this.$current,inherit:!0},o=Object(r.o)(n,i,c.b);return this.transitionTo(e,t,o)},e.prototype.target=function(e,t,n){if(void 0===n&&(n={}),Object(i.i)(n.reload)&&!n.reload.name)throw new Error("Invalid reload state object");var r=this.router.stateRegistry;if(n.reloadState=!0===n.reload?r.root():r.matcher.find(n.reload,n.relative),n.reload&&!n.reloadState)throw new Error("No such reload state '"+(Object(i.l)(n.reload)?n.reload:n.reload.name)+"'");return new d.a(this.router.stateRegistry,e,t,n)},e.prototype.getCurrentPath=function(){var e=this,t=this.router.globals.successfulTransitions.peekTail();return t?t.treeChanges().to:[new l.a(e.router.stateRegistry.root())]},e.prototype.transitionTo=function(e,t,n){var i=this;void 0===t&&(t={}),void 0===n&&(n={});var o=this.router,s=o.globals;n=Object(r.o)(n,c.b);var l=function(){return s.transition};n=Object(r.r)(n,{current:l});var p=this.target(e,t,n),f=this.getCurrentPath();if(!p.exists())return this._handleInvalidTargetState(f,p);if(!p.valid())return Object(r.O)(p.error());if(!1===n.supercede&&l())return u.b.ignored("Another transition is in progress and supercede has been set to false in TransitionOptions for the transition. So the transition was ignored in favour of the existing one in progress.").toPromise();var h=function(e){return function(t){if(t instanceof u.b){var n=o.globals.lastStartedTransitionId<=e.$id;if(t.type===u.a.IGNORED)return n&&o.urlRouter.update(),a.b.$q.when(s.current);var r=t.detail;if(t.type===u.a.SUPERSEDED&&t.redirected&&r instanceof d.a){var l=e.redirect(r);return l.run().catch(h(l))}if(t.type===u.a.ABORTED)return n&&o.urlRouter.update(),a.b.$q.reject(t)}return i.defaultErrorHandler()(t),a.b.$q.reject(t)}},g=this.router.transitionService.create(f,p),m=g.run().catch(h(g));return Object(r.N)(m),Object(r.r)(m,{transition:g})},e.prototype.is=function(e,t,n){n=Object(r.o)(n,{relative:this.$current});var o=this.router.stateRegistry.matcher.find(e,n.relative);if(Object(i.c)(o)){if(this.$current!==o)return!1;if(!t)return!0;var a=o.parameters({inherit:!0,matchingKeys:t});return p.b.equals(a,p.b.values(a,t),this.params)}},e.prototype.includes=function(e,t,n){n=Object(r.o)(n,{relative:this.$current});var o=Object(i.l)(e)&&f.a.fromString(e);if(o){if(!o.matches(this.$current.name))return!1;e=this.$current.name}var a=this.router.stateRegistry.matcher.find(e,n.relative),s=this.$current.includes;if(Object(i.c)(a)){if(!Object(i.c)(s[a.name]))return!1;if(!t)return!0;var l=a.parameters({inherit:!0,matchingKeys:t});return p.b.equals(l,p.b.values(l,t),this.params)}},e.prototype.href=function(e,t,n){var o={lossy:!0,inherit:!0,absolute:!1,relative:this.$current};n=Object(r.o)(n,o),t=t||{};var a=this.router.stateRegistry.matcher.find(e,n.relative);if(!Object(i.c)(a))return null;n.inherit&&(t=this.params.$inherit(t,this.$current,a));var s=a&&n.lossy?a.navigable:a;return s&&void 0!==s.url&&null!==s.url?this.router.urlRouter.href(s.url,t,{absolute:n.absolute}):null},e.prototype.defaultErrorHandler=function(e){return this._defaultErrorHandler=e||this._defaultErrorHandler},e.prototype.get=function(e,t){var n=this.router.stateRegistry;return 0===arguments.length?n.get():n.get(e,t||this.$current)},e.prototype.lazyLoad=function(e,t){var n=this.get(e);if(!n||!n.lazyLoad)throw new Error("Can not lazy load "+e);var r=this.getCurrentPath(),i=s.a.makeTargetState(this.router.stateRegistry,r);return t=t||this.router.transitionService.create(r,i),Object(g.a)(t,n)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(1),o=n(14),a=n(17),s=function(){function e(e){this.transition=e}return e.prototype.buildHooksForPhase=function(e){var t=this;return this.transition.router.transitionService._pluginapi._getEvents(e).map((function(e){return t.buildHooks(e)})).reduce(r.T,[]).filter(r.y)},e.prototype.buildHooks=function(e){var t=this.transition,n=t.treeChanges(),i=this.getMatchingHooks(e,n,t);if(!i)return[];var s={transition:t,current:t.options().current};return i.map((function(i){return i.matches(n,t)[e.criteriaMatchPath.name].map((function(n){var l=Object(r.r)({bind:i.bind,traceData:{hookType:e.name,context:n}},s),c=e.criteriaMatchPath.scope===o.b.STATE?n.state.self:null,u=new a.a(t,c,i,l);return{hook:i,node:n,transitionHook:u}}))})).reduce(r.T,[]).sort(function(e){void 0===e&&(e=!1);return function(t,n){var r=e?-1:1,i=(t.node.state.path.length-n.node.state.path.length)*r;return 0!==i?i:n.hook.priority-t.hook.priority}}(e.reverseSort)).map((function(e){return e.transitionHook}))},e.prototype.getMatchingHooks=function(e,t,n){var a=e.hookPhase===o.a.CREATE,s=this.transition.router.transitionService;return(a?[s]:[this.transition,s]).map((function(t){return t.getHooks(e.name)})).filter(Object(r.l)(i.a,"broken event named: "+e.name)).reduce(r.T,[]).filter((function(e){return e.matches(t,n)}))},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var r=n(100),i=n(101),o=n(56),a=n(102),s=n(96),l=n(97),c=n(103),u=n(0),d=n(1),p=n(104),f=n(10),h=n(4),g=0,m=Object(h.gb)("LocationServices",["url","path","search","hash","onChange"]),v=Object(h.gb)("LocationConfig",["port","protocol","host","baseHref","html5Mode","hashPrefix"]),b=function(){function e(e,t){void 0===e&&(e=m),void 0===t&&(t=v),this.locationService=e,this.locationConfig=t,this.$id=g++,this._disposed=!1,this._disposables=[],this.trace=f.c,this.viewService=new a.a(this),this.globals=new c.a,this.transitionService=new o.a(this),this.urlMatcherFactory=new r.b(this),this.urlRouter=new i.a(this),this.urlService=new p.a(this),this.stateRegistry=new s.a(this),this.stateService=new l.a(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlService),this.disposable(e),this.disposable(t)}return e.prototype.disposable=function(e){this._disposables.push(e)},e.prototype.dispose=function(e){var t=this;e&&Object(d.d)(e.dispose)?e.dispose(this):(this._disposed=!0,this._disposables.slice().forEach((function(e){try{"function"==typeof e.dispose&&e.dispose(t),Object(u.L)(t._disposables,e)}catch(e){}})))},e.prototype.plugin=function(e,t){void 0===t&&(t={});var n=new e(this,t);if(!n.name)throw new Error("Required property `name` missing on plugin: "+n);return this._disposables.push(n),this._plugins[n.name]=n},e.prototype.getPlugin=function(e){return e?this._plugins[e]:Object(u.U)(this._plugins)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return l}));var r=n(4),i=n(32),o=n(26),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},s=function(){function e(e){this.router=e}return e.prototype.fromConfig=function(e,t,n){return new o.Param(e,t,o.DefType.CONFIG,this.router.urlService.config,n)},e.prototype.fromPath=function(e,t,n){return new o.Param(e,t,o.DefType.PATH,this.router.urlService.config,n)},e.prototype.fromSearch=function(e,t,n){return new o.Param(e,t,o.DefType.SEARCH,this.router.urlService.config,n)},e}(),l=function(){function e(e){var t=this;this.router=e,this.paramFactory=new s(this.router),this.UrlMatcher=i.a,this.Param=o.Param,this.caseInsensitive=function(e){return t.router.urlService.config.caseInsensitive(e)},this.defaultSquashPolicy=function(e){return t.router.urlService.config.defaultSquashPolicy(e)},this.strictMode=function(e){return t.router.urlService.config.strictMode(e)},this.type=function(e,n,r){return t.router.urlService.config.type(e,n,r)||t}}return e.prototype.compile=function(e,t){var n=this.router.urlService.config,o=t&&!t.state&&t.params;t=o?a({state:{params:o}},t):t;var s={strict:n._isStrictMode,caseInsensitive:n._isCaseInsensitive,decodeParams:n._decodeParams};return new i.a(e,n.paramTypes,this.paramFactory,Object(r.C)(s,t))},e.prototype.isMatcher=function(e){if(!Object(r.Z)(e))return!1;var t=!0;return Object(r.I)(i.a.prototype,(function(n,i){Object(r.U)(n)&&(t=t&&Object(r.T)(e[i])&&Object(r.U)(e[i]))})),t},e.prototype.$get=function(){var e=this.router.urlService.config;return e.paramTypes.enqueue=!1,e.paramTypes._flushTypeQueue(),this},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),i=n(54);var o=function(){function e(e){var t=this;this.router=e,this.sync=function(e){return t.router.urlService.sync(e)},this.listen=function(e){return t.router.urlService.listen(e)},this.deferIntercept=function(e){return t.router.urlService.deferIntercept(e)},this.match=function(e){return t.router.urlService.match(e)},this.initial=function(e){return t.router.urlService.rules.initial(e)},this.otherwise=function(e){return t.router.urlService.rules.otherwise(e)},this.removeRule=function(e){return t.router.urlService.rules.removeRule(e)},this.rule=function(e){return t.router.urlService.rules.rule(e)},this.rules=function(){return t.router.urlService.rules.rules()},this.sort=function(e){return t.router.urlService.rules.sort(e)},this.when=function(e,n,r){return t.router.urlService.rules.when(e,n,r)},this.urlRuleFactory=new i.b(e)}return e.prototype.update=function(e){var t=this.router.locationService;e?this.location=t.url():t.url()!==this.location&&t.url(this.location,!0)},e.prototype.push=function(e,t,n){var r=n&&!!n.replace;this.router.urlService.url(e.format(t||{}),r)},e.prototype.href=function(e,t,n){var i=e.format(t);if(null==i)return null;n=n||{absolute:!1};var o=this.router.urlService.config,a=o.html5Mode();if(a||null===i||(i="#"+o.hashPrefix()+i),i=function(e,t,n,i){return"/"===i?e:t?Object(r.Kb)(i)+e:n?i.slice(1)+e:e}(i,a,n.absolute,o.baseHref()),!n.absolute||!i)return i;var s=!a&&i?"/":"",l=o.port(),c=80===l||443===l?"":":"+l;return[o.protocol(),"://",o.host(),c,s,i].join("")},Object.defineProperty(e.prototype,"interceptDeferred",{get:function(){return this.router.urlService.interceptDeferred},enumerable:!1,configurable:!0}),e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(3),o=n(1),a=n(10),s=function(){function e(e){var t=this;this.router=e,this._uiViews=[],this._viewConfigs=[],this._viewConfigFactories={},this._listeners=[],this._pluginapi={_rootViewContext:this._rootViewContext.bind(this),_viewConfigFactory:this._viewConfigFactory.bind(this),_registeredUIView:function(e){return Object(r.t)(t._uiViews,(function(n){return t.router.$id+"."+n.id===e}))},_registeredUIViews:function(){return t._uiViews},_activeViewConfigs:function(){return t._viewConfigs},_onSync:function(e){return t._listeners.push(e),function(){return Object(r.L)(t._listeners,e)}}}}return e.normalizeUIViewTarget=function(e,t){void 0===t&&(t="");var n=t.split("@"),r=n[0]||"$default",i=Object(o.l)(n[1])?n[1]:"^",a=/^(\^(?:\.\^)*)\.(.*$)/.exec(r);a&&(i=a[1],r=a[2]),"!"===r.charAt(0)&&(r=r.substr(1),i="");if(/^(\^(?:\.\^)*)$/.exec(i)){var s=i.split(".").reduce((function(e,t){return e.parent}),e);i=s.name}else"."===i&&(i=e.name);return{uiViewName:r,uiViewContextAnchor:i}},e.prototype._rootViewContext=function(e){return this._rootContext=e||this._rootContext},e.prototype._viewConfigFactory=function(e,t){this._viewConfigFactories[e]=t},e.prototype.createViewConfig=function(e,t){var n=this._viewConfigFactories[t.$type];if(!n)throw new Error("ViewService: No view config factory registered for type "+t.$type);var r=n(e,t);return Object(o.a)(r)?r:[r]},e.prototype.deactivateViewConfig=function(e){a.c.traceViewServiceEvent("<- Removing",e),Object(r.L)(this._viewConfigs,e)},e.prototype.activateViewConfig=function(e){a.c.traceViewServiceEvent("-> Registering",e),this._viewConfigs.push(e)},e.prototype.sync=function(){var t=this,n=this._uiViews.map((function(e){return[e.fqn,e]})).reduce(r.h,{});function o(e){for(var t=e.viewDecl.$context,n=0;++n&&t.parent;)t=t.parent;return n}var s=Object(i.e)((function(e,t,n,r){return t*(e(n)-e(r))})),l=this._uiViews.sort(s((function(e){var t=function(e){return e&&e.parent?t(e.parent)+1:1};return 1e4*e.fqn.split(".").length+t(e.creationContext)}),1)).map((function(r){var i=t._viewConfigs.filter(e.matches(n,r));return i.length>1&&i.sort(s(o,-1)),{uiView:r,viewConfig:i[0]}})),c=l.map((function(e){return e.viewConfig})),u=this._viewConfigs.filter((function(e){return!Object(r.z)(c,e)})).map((function(e){return{uiView:void 0,viewConfig:e}}));l.forEach((function(e){-1!==t._uiViews.indexOf(e.uiView)&&e.uiView.configUpdated(e.viewConfig)}));var d=l.concat(u);this._listeners.forEach((function(e){return e(d)})),a.c.traceViewSync(d)},e.prototype.registerUIView=function(e){a.c.traceViewServiceUIViewEvent("-> Registering",e);var t=this._uiViews;return t.filter((function(t){return t.fqn===e.fqn&&t.$type===e.$type})).length&&a.c.traceViewServiceUIViewEvent("!!!! duplicate uiView named:",e),t.push(e),this.sync(),function(){-1!==t.indexOf(e)?(a.c.traceViewServiceUIViewEvent("<- Deregistering",e),Object(r.L)(t)(e)):a.c.traceViewServiceUIViewEvent("Tried removing non-registered uiView",e)}},e.prototype.available=function(){return this._uiViews.map(Object(i.n)("fqn"))},e.prototype.active=function(){return this._uiViews.filter(Object(i.n)("$config")).map(Object(i.n)("name"))},e.matches=function(e,t){return function(n){if(t.$type!==n.viewDecl.$type)return!1;var i=n.viewDecl,o=i.$uiViewName.split("."),a=t.fqn.split(".");if(!Object(r.q)(o,a.slice(0-o.length)))return!1;var s=1-o.length||void 0,l=a.slice(0,s).join("."),c=e[l].creationContext;return i.$uiViewContextAnchor===(c&&c.name)}},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(92),i=n(50),o=function(){function e(){this.params=new r.a,this.lastStartedTransitionId=-1,this.transitionHistory=new i.a([],1),this.successfulTransitions=new i.a([],1)}return e.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(4),i=n(105),o=n(106),a=n(43),s=function(){function e(e){var t=this;this.router=e,this.interceptDeferred=!1,this.rules=new i.a(this.router),this.config=new o.a(this.router),this.url=function(e,n,r){return t.router.locationService.url(e,n,r)},this.path=function(){return t.router.locationService.path()},this.search=function(){return t.router.locationService.search()},this.hash=function(){return t.router.locationService.hash()},this.onChange=function(e){return t.router.locationService.onChange(e)}}return e.prototype.dispose=function(){this.listen(!1),this.rules.dispose()},e.prototype.parts=function(){return{path:this.path(),search:this.search(),hash:this.hash()}},e.prototype.sync=function(e){if(!e||!e.defaultPrevented){var t=this.router,n=t.urlService,i=t.stateService,o={path:n.path(),search:n.search(),hash:n.hash()},s=this.match(o);Object(r.sb)([[r.cb,function(e){return n.url(e,!0)}],[a.TargetState.isDef,function(e){return i.go(e.state,e.params,e.options)}],[Object(r.Q)(a.TargetState),function(e){return i.go(e.state(),e.params(),e.options())}]])(s&&s.rule.handler(s.match,o,this.router))}},e.prototype.listen=function(e){var t=this;if(!1!==e)return this._stopListeningFn=this._stopListeningFn||this.router.urlService.onChange((function(e){return t.sync(e)}));this._stopListeningFn&&this._stopListeningFn(),delete this._stopListeningFn},e.prototype.deferIntercept=function(e){void 0===e&&(e=!0),this.interceptDeferred=e},e.prototype.match=function(e){var t=this;e=Object(r.C)({path:"",search:{},hash:""},e);for(var n,i,o,a=this.rules.rules(),s=0;s<a.length&&(!n||n.rule._group===a[s]._group);s++){var l=(i=a[s],o=void 0,(o=i.match(e,t.router))&&{match:o,rule:i,weight:i.matchPriority(o)});n=!n||l&&l.weight>n.weight?l:n}return n},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r,i=n(43),o=n(32),a=n(4),s=n(54);function l(e){if(!(Object(a.U)(e)||Object(a.cb)(e)||Object(a.Q)(i.TargetState)(e)||i.TargetState.isDef(e)))throw new Error("'handler' must be a string, function, TargetState, or have a state: 'newtarget' property");return Object(a.U)(e)?e:Object(a.Sb)(e)}r=function(e,t){var n=function(e,t){return(t.priority||0)-(e.priority||0)}(e,t);return 0!==n||0!==(n=function(e,t){var n={STATE:4,URLMATCHER:4,REGEXP:3,RAW:2,OTHER:1};return(n[e.type]||0)-(n[t.type]||0)}(e,t))||0!==(n=function(e,t){return e.urlMatcher&&t.urlMatcher?o.a.compare(e.urlMatcher,t.urlMatcher):0}(e,t))?n:function(e,t){var n={STATE:!0,URLMATCHER:!0};return n[e.type]&&n[t.type]?0:(e.$id||0)-(t.$id||0)}(e,t)};var c=function(){function e(e){this.router=e,this._sortFn=r,this._rules=[],this._id=0,this.urlRuleFactory=new s.b(e)}return e.prototype.dispose=function(e){this._rules=[],delete this._otherwiseFn},e.prototype.initial=function(e){var t=l(e);this.rule(this.urlRuleFactory.create((function(e,t){return 0===t.globals.transitionHistory.size()&&!!/^\/?$/.exec(e.path)}),t))},e.prototype.otherwise=function(e){var t=l(e);this._otherwiseFn=this.urlRuleFactory.create(Object(a.Sb)(!0),t),this._sorted=!1},e.prototype.removeRule=function(e){Object(a.Ab)(this._rules,e)},e.prototype.rule=function(e){var t=this;if(!s.b.isUrlRule(e))throw new Error("invalid rule");return e.$id=this._id++,e.priority=e.priority||0,this._rules.push(e),this._sorted=!1,function(){return t.removeRule(e)}},e.prototype.rules=function(){return this.ensureSorted(),this._rules.concat(this._otherwiseFn?[this._otherwiseFn]:[])},e.prototype.sort=function(e){for(var t=this.stableSort(this._rules,this._sortFn=e||this._sortFn),n=0,r=0;r<t.length;r++)t[r]._group=n,r<t.length-1&&0!==this._sortFn(t[r],t[r+1])&&n++;this._rules=t,this._sorted=!0},e.prototype.ensureSorted=function(){this._sorted||this.sort()},e.prototype.stableSort=function(e,t){var n=e.map((function(e,t){return{elem:e,idx:t}}));return n.sort((function(e,n){var r=t(e.elem,n.elem);return 0===r?e.idx-n.idx:r})),n.map((function(e){return e.elem}))},e.prototype.when=function(e,t,n){var r=this.urlRuleFactory.create(e,t);return Object(a.T)(n&&n.priority)&&(r.priority=n.priority),this.rule(r),r},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(26),i=n(4),o=function(){function e(e){var t=this;this.router=e,this.paramTypes=new r.ParamTypes,this._decodeParams=!0,this._isCaseInsensitive=!1,this._isStrictMode=!0,this._defaultSquashPolicy=!1,this.dispose=function(){return t.paramTypes.dispose()},this.baseHref=function(){return t.router.locationConfig.baseHref()},this.hashPrefix=function(e){return t.router.locationConfig.hashPrefix(e)},this.host=function(){return t.router.locationConfig.host()},this.html5Mode=function(){return t.router.locationConfig.html5Mode()},this.port=function(){return t.router.locationConfig.port()},this.protocol=function(){return t.router.locationConfig.protocol()}}return e.prototype.caseInsensitive=function(e){return this._isCaseInsensitive=Object(i.T)(e)?e:this._isCaseInsensitive},e.prototype.defaultSquashPolicy=function(e){if(Object(i.T)(e)&&!0!==e&&!1!==e&&!Object(i.cb)(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return this._defaultSquashPolicy=Object(i.T)(e)?e:this._defaultSquashPolicy},e.prototype.strictMode=function(e){return this._isStrictMode=Object(i.T)(e)?e:this._isStrictMode},e.prototype.type=function(e,t,n){var r=this.paramTypes.type(e,t,n);return Object(i.T)(t)?this:r},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(17),i=function(e,t,n,i,o,a,s,l){void 0===o&&(o=!1),void 0===a&&(a=r.a.HANDLE_RESULT),void 0===s&&(s=r.a.REJECT_ERROR),void 0===l&&(l=!1),this.name=e,this.hookPhase=t,this.hookOrder=n,this.criteriaMatchPath=i,this.reverseSort=o,this.getResultHandler=a,this.getErrorHandler=s,this.synchronous=l}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r,i=n(4),o=n(42),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e){function t(t){var n=e.call(this,t,!1)||this;return i.Bb.addEventListener("hashchange",n._listener,!1),n}return a(t,e),t.prototype._get=function(){return Object(i.Ob)(this._location.hash)},t.prototype._set=function(e,t,n,r){this._location.hash=n},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),i.Bb.removeEventListener("hashchange",this._listener)},t}(o.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r,i=n(42),o=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=function(e){function t(t){return e.call(this,t,!0)||this}return o(t,e),t.prototype._get=function(){return this._url},t.prototype._set=function(e,t,n,r){this._url=n},t}(i.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r,i=n(42),o=n(4),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e){function t(t){var n=e.call(this,t,!0)||this;return n._config=t.urlService.config,o.Bb.addEventListener("popstate",n._listener,!1),n}return a(t,e),t.prototype._getBasePrefix=function(){return Object(o.Kb)(this._config.baseHref())},t.prototype._get=function(){var e=this._location,t=e.pathname,n=e.hash,r=e.search;r=Object(o.Ib)(r)[1],n=Object(o.Gb)(n)[1];var i=this._getBasePrefix(),a=t===this._config.baseHref(),s=t.substr(0,i.length)===i;return(t=a?"/":s?t.substring(i.length):t)+(r?"?"+r:"")+(n?"#"+n:"")},t.prototype._set=function(e,t,n,r){var i=this._getBasePrefix(),o=n&&"/"!==n[0]?"/":"",a=""===n||"/"===n?this._config.baseHref():i+o+n;r?this._history.replaceState(e,t,a):this._history.pushState(e,t,a)},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),o.Bb.removeEventListener("popstate",this._listener)},t}(i.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(1),i=n(0),o=function(){var e=this;this.dispose=i.E,this._baseHref="",this._port=80,this._protocol="http",this._host="localhost",this._hashPrefix="",this.port=function(){return e._port},this.protocol=function(){return e._protocol},this.host=function(){return e._host},this.baseHref=function(){return e._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(t){return Object(r.c)(t)?e._hashPrefix=t:e._hashPrefix}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(2),i=function(){function e(t,n){this.stateRegistry=t,this.stateService=n,Object(r.createProxyFunctions)(Object(r.val)(e.prototype),this,Object(r.val)(this))}return e.prototype.decorator=function(e,t){return this.stateRegistry.decorator(e,t)||this},e.prototype.state=function(e,t){return Object(r.isObject)(e)?t=e:t.name=e,this.stateRegistry.register(t),this},e.prototype.onInvalid=function(e){return this.stateService.onInvalid(e)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(2),i=function(){function e(e){this.router=e}return e.injectableHandler=function(e,t){return function(n){return r.services.$injector.invoke(t,null,{$match:n,$stateParams:e.globals.params})}},e.prototype.$get=function(){var e=this.router.urlService;return this.router.urlRouter.update(!0),e.interceptDeferred||e.listen(),this.router.urlRouter},e.prototype.rule=function(e){var t=this;if(!Object(r.isFunction)(e))throw new Error("'rule' must be a function");var n=new r.BaseUrlRule((function(){return e(r.services.$injector,t.router.locationService)}),r.identity);return this.router.urlService.rules.rule(n),this},e.prototype.otherwise=function(e){var t=this,n=this.router.urlService.rules;if(Object(r.isString)(e))n.otherwise(e);else{if(!Object(r.isFunction)(e))throw new Error("'rule' must be a string or function");n.otherwise((function(){return e(r.services.$injector,t.router.locationService)}))}return this},e.prototype.when=function(t,n){return(Object(r.isArray)(n)||Object(r.isFunction)(n))&&(n=e.injectableHandler(this.router,n)),this.router.urlService.rules.when(t,n),this},e.prototype.deferIntercept=function(e){this.router.urlService.deferIntercept(e)},e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return k})),n.d(t,"a",(function(){return A}));var r=n(12),i=n(2),o=n(55),a=function(){function e(){var e=this;this._useHttp=r.a.version.minor<3,this.$get=["$http","$templateCache","$injector",function(t,n,r){return e.$templateRequest=r.has&&r.has("$templateRequest")&&r.get("$templateRequest"),e.$http=t,e.$templateCache=n,e}]}return e.prototype.useHttpService=function(e){this._useHttp=e},e.prototype.fromConfig=function(e,t,n){var r=function(e){return i.services.$q.when(e).then((function(e){return{template:e}}))},o=function(e){return i.services.$q.when(e).then((function(e){return{component:e}}))};return Object(i.isDefined)(e.template)?r(this.fromString(e.template,t)):Object(i.isDefined)(e.templateUrl)?r(this.fromUrl(e.templateUrl,t)):Object(i.isDefined)(e.templateProvider)?r(this.fromProvider(e.templateProvider,t,n)):Object(i.isDefined)(e.component)?o(e.component):Object(i.isDefined)(e.componentProvider)?o(this.fromComponentProvider(e.componentProvider,t,n)):r("<ui-view></ui-view>")},e.prototype.fromString=function(e,t){return Object(i.isFunction)(e)?e(t):e},e.prototype.fromUrl=function(e,t){return Object(i.isFunction)(e)&&(e=e(t)),null==e?null:this._useHttp?this.$http.get(e,{cache:this.$templateCache,headers:{Accept:"text/html"}}).then((function(e){return e.data})):this.$templateRequest(e)},e.prototype.fromProvider=function(e,t,n){var r=i.services.$injector.annotate(e),o=Object(i.isArray)(e)?Object(i.tail)(e):e;return new i.Resolvable("",o,r).get(n)},e.prototype.fromComponentProvider=function(e,t,n){var r=i.services.$injector.annotate(e),o=Object(i.isArray)(e)?Object(i.tail)(e):e;return new i.Resolvable("",o,r).get(n)},e.prototype.makeComponentTemplate=function(e,t,n,o){o=o||{};var a=r.a.version.minor>=3?"::":"",l=function(e){var t=Object(i.kebobString)(e);return/^(x|data)-/.exec(t)?"x-"+t:t},c=function(e){var t=i.services.$injector.get(e+"Directive");if(!t||!t.length)throw new Error("Unable to find component named '"+e+"'");return t.map(s).reduce(i.unnestR,[])}(n).map((function(n){var r=n.name,s=n.type,c=l(r);if(e.attr(c)&&!o[r])return c+"='"+e.attr(c)+"'";var u=o[r]||r;if("@"===s)return c+"='{{"+a+"$resolve."+u+"}}'";if("&"===s){var d=t.getResolvable(u),p=d&&d.data,f=p&&i.services.$injector.annotate(p)||[];return c+"='$resolve."+u+(Object(i.isArray)(p)?"["+(p.length-1)+"]":"")+"("+f.join(",")+")'"}return c+"='"+a+"$resolve."+u+"'"})).join(" "),u=l(n);return"<"+u+" "+c+"></"+u+">"},e}();var s=function(e){return Object(i.isObject)(e.bindToController)?l(e.bindToController):l(e.scope)},l=function(e){return Object.keys(e||{}).map((function(t){return[t,/^([=<@&])[?]?(.*)/.exec(e[t])]})).filter((function(e){return Object(i.isDefined)(e)&&Object(i.isArray)(e[1])})).map((function(e){return{name:e[1][2]||e[0],type:e[1][1]}}))},c=n(112),u=function(e){return function(t){var n=t[e],r="onExit"===e?"from":"to";return n?function(e,t){var o=new i.ResolveContext(e.treeChanges(r)).subContext(t.$$state()),a=Object(i.extend)(A(o),{$state$:t,$transition$:e});return i.services.$injector.invoke(n,this,a)}:void 0}},d=function(){function e(e){this._urlListeners=[],this.$locationProvider=e;var t=Object(i.val)(e);Object(i.createProxyFunctions)(t,this,t,["hashPrefix"])}return e.monkeyPatchPathParameterType=function(e){var t=e.urlMatcherFactory.type("path");t.encode=function(e){return null!=e?e.toString().replace(/(~|\/)/g,(function(e){return{"~":"~~","/":"~2F"}[e]})):e},t.decode=function(e){return null!=e?e.toString().replace(/(~~|~2F)/g,(function(e){return{"~~":"~","~2F":"/"}[e]})):e}},e.prototype.dispose=function(){},e.prototype.onChange=function(e){var t=this;return this._urlListeners.push(e),function(){return Object(i.removeFrom)(t._urlListeners)(e)}},e.prototype.html5Mode=function(){var e=this.$locationProvider.html5Mode();return(e=Object(i.isObject)(e)?e.enabled:e)&&this.$sniffer.history},e.prototype.baseHref=function(){return this._baseHref||(this._baseHref=this.$browser.baseHref()||this.$window.location.pathname)},e.prototype.url=function(e,t,n){return void 0===t&&(t=!1),Object(i.isDefined)(e)&&this.$location.url(e),t&&this.$location.replace(),n&&this.$location.state(n),this.$location.url()},e.prototype._runtimeServices=function(e,t,n,r,o){var a=this;this.$location=t,this.$sniffer=n,this.$browser=r,this.$window=o,e.$on("$locationChangeSuccess",(function(e){return a._urlListeners.forEach((function(t){return t(e)}))}));var s=Object(i.val)(t);Object(i.createProxyFunctions)(s,this,s,["replace","path","search","hash"]),Object(i.createProxyFunctions)(s,this,s,["port","protocol","host"])},e}(),p=n(113);r.a.module("ui.router.angular1",[]);var f=r.a.module("ui.router.init",["ng"]),h=r.a.module("ui.router.util",["ui.router.init"]),g=r.a.module("ui.router.router",["ui.router.util"]),m=r.a.module("ui.router.state",["ui.router.router","ui.router.util","ui.router.angular1"]),v=r.a.module("ui.router",["ui.router.init","ui.router.state","ui.router.angular1"]),b=(r.a.module("ui.router.compat",["ui.router"]),null);function y(e){(b=this.router=new i.UIRouter).stateProvider=new c.a(b.stateRegistry,b.stateService),b.stateRegistry.decorator("views",o.c),b.stateRegistry.decorator("onExit",u("onExit")),b.stateRegistry.decorator("onRetain",u("onRetain")),b.stateRegistry.decorator("onEnter",u("onEnter")),b.viewService._pluginapi._viewConfigFactory("ng1",Object(o.b)()),b.urlService.config._decodeParams=!1;var t=b.locationService=b.locationConfig=new d(e);function n(e,n,r,i,o,a,s){return t._runtimeServices(o,e,i,n,r),delete b.router,delete b.$get,b}return d.monkeyPatchPathParameterType(b),b.router=b,b.$get=n,n.$inject=["$location","$browser","$window","$sniffer","$rootScope","$http","$templateCache"],b}y.$inject=["$locationProvider"];var x=function(e){return["$uiRouterProvider",function(t){var n=t.router[e];return n.$get=function(){return n},n}]};function w(e,t,n){if(i.services.$injector=e,i.services.$q=t,!Object.prototype.hasOwnProperty.call(e,"strictDi"))try{e.invoke((function(e){}))}catch(t){e.strictDi=!!/strict mode/.exec(t&&t.toString())}n.stateRegistry.get().map((function(e){return e.$$state().resolvables})).reduce(i.unnestR,[]).filter((function(e){return"deferred"===e.deps})).forEach((function(t){return t.deps=e.annotate(t.resolveFn,e.strictDi)}))}w.$inject=["$injector","$q","$uiRouter"];function k(e){e.$watch((function(){i.trace.approximateDigests++}))}k.$inject=["$rootScope"],f.provider("$uiRouter",y),g.provider("$urlRouter",["$uiRouterProvider",function(e){return e.urlRouterProvider=new p.a(e)}]),h.provider("$urlService",x("urlService")),h.provider("$urlMatcherFactory",["$uiRouterProvider",function(){return b.urlMatcherFactory}]),h.provider("$templateFactory",(function(){return new a})),m.provider("$stateRegistry",x("stateRegistry")),m.provider("$uiRouterGlobals",x("globals")),m.provider("$transitions",x("transitionService")),m.provider("$state",["$uiRouterProvider",function(){return Object(i.extend)(b.stateProvider,{$get:function(){return b.stateService}})}]),m.factory("$stateParams",["$uiRouter",function(e){return e.globals.params}]),v.factory("$view",(function(){return b.viewService})),v.service("$trace",(function(){return i.trace})),v.run(k),h.run(["$urlMatcherFactory",function(e){}]),m.run(["$state",function(e){}]),g.run(["$urlRouter",function(e){}]),f.run(w);var A=function(e){return e.getTokens().filter(i.isString).map((function(t){var n=e.getResolvable(t);return[t,"NOWAIT"===e.getPolicy(n).async?n.promise:n.data]})).reduce(i.applyPairs,{})}},function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a}));var r=n(6),i=function(e){var t=e.router;var n=e.entering().filter((function(e){return!!e.$$state().lazyLoad})).map((function(t){return a(e,t)}));return r.b.$q.all(n).then((function(){if("url"!==e.originalTransition().options().source){var n=e.targetState();return t.stateService.target(n.identifier(),n.params(),n.options())}var r=t.urlService,i=r.match(r.parts()),o=i&&i.rule;if(o&&"STATE"===o.type){var a=o.state,s=i.match;return t.stateService.target(a,s,e.options())}t.urlService.sync()}))},o=function(e){return e.onBefore({entering:function(e){return!!e.lazyLoad}},i)};function a(e,t){var n=t.$$state().lazyLoad,i=n._promise;if(!i){i=n._promise=r.b.$q.when(n(e,t)).then((function(t){t&&Array.isArray(t.states)&&t.states.forEach((function(t){return e.router.stateRegistry.register(t)}));return t})).then((function(e){return delete t.lazyLoad,delete t.$$state().lazyLoad,delete n._promise,e}),(function(e){return delete n._promise,r.b.$q.reject(e)}))}return i}},function(e,t,n){"use strict";var r=n(22);e.exports=i;function i(e){this._isDirected=!r.has(e,"directed")||e.directed,this._isMultigraph=!!r.has(e,"multigraph")&&e.multigraph,this._isCompound=!!r.has(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=r.constant(void 0),this._defaultEdgeLabelFn=r.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function o(e,t){e[t]?e[t]++:e[t]=1}function a(e,t){--e[t]||delete e[t]}function s(e,t,n,i){var o=""+t,a=""+n;if(!e&&o>a){var s=o;o=a,a=s}return o+""+a+""+(r.isUndefined(i)?"\0":i)}function l(e,t,n,r){var i=""+t,o=""+n;if(!e&&i>o){var a=i;i=o,o=a}var s={v:i,w:o};return r&&(s.name=r),s}function c(e,t){return s(e,t.v,t.w,t.name)}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultNodeLabelFn=e,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return r.keys(this._nodes)},i.prototype.sources=function(){var e=this;return r.filter(this.nodes(),(function(t){return r.isEmpty(e._in[t])}))},i.prototype.sinks=function(){var e=this;return r.filter(this.nodes(),(function(t){return r.isEmpty(e._out[t])}))},i.prototype.setNodes=function(e,t){var n=arguments,i=this;return r.each(e,(function(e){n.length>1?i.setNode(e,t):i.setNode(e)})),this},i.prototype.setNode=function(e,t){return r.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(e){return r.has(this._nodes,e)},i.prototype.removeNode=function(e){var t=this;if(r.has(this._nodes,e)){var n=function(e){t.removeEdge(t._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],r.each(this.children(e),(function(e){t.setParent(e)})),delete this._children[e]),r.each(r.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],r.each(r.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},i.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r.isUndefined(t))t="\0";else{for(var n=t+="";!r.isUndefined(n);n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if("\0"!==t)return t}},i.prototype.children=function(e){if(r.isUndefined(e)&&(e="\0"),this._isCompound){var t=this._children[e];if(t)return r.keys(t)}else{if("\0"===e)return this.nodes();if(this.hasNode(e))return[]}},i.prototype.predecessors=function(e){var t=this._preds[e];if(t)return r.keys(t)},i.prototype.successors=function(e){var t=this._sucs[e];if(t)return r.keys(t)},i.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return r.union(t,this.successors(e))},i.prototype.isLeaf=function(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length},i.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;r.each(this._nodes,(function(n,r){e(r)&&t.setNode(r,n)})),r.each(this._edgeObjs,(function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))}));var i={};return this._isCompound&&r.each(t.nodes(),(function(e){t.setParent(e,function e(r){var o=n.parent(r);return void 0===o||t.hasNode(o)?(i[r]=o,o):o in i?i[o]:e(o)}(e))})),t},i.prototype.setDefaultEdgeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultEdgeLabelFn=e,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return r.values(this._edgeObjs)},i.prototype.setPath=function(e,t){var n=this,i=arguments;return r.reduce(e,(function(e,r){return i.length>1?n.setEdge(e,r,t):n.setEdge(e,r),r})),this},i.prototype.setEdge=function(){var e,t,n,i,a=!1,c=arguments[0];"object"==typeof c&&null!==c&&"v"in c?(e=c.v,t=c.w,n=c.name,2===arguments.length&&(i=arguments[1],a=!0)):(e=c,t=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,t=""+t,r.isUndefined(n)||(n=""+n);var u=s(this._isDirected,e,t,n);if(r.has(this._edgeLabels,u))return a&&(this._edgeLabels[u]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[u]=a?i:this._defaultEdgeLabelFn(e,t,n);var d=l(this._isDirected,e,t,n);return e=d.v,t=d.w,Object.freeze(d),this._edgeObjs[u]=d,o(this._preds[t],e),o(this._sucs[e],t),this._in[t][u]=d,this._out[e][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=1===arguments.length?c(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(e,t,n){var i=1===arguments.length?c(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return r.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=1===arguments.length?c(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],a(this._preds[t],e),a(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(e,t){var n=this._in[e];if(n){var i=r.values(n);return t?r.filter(i,(function(e){return e.v===t})):i}},i.prototype.outEdges=function(e,t){var n=this._out[e];if(n){var i=r.values(n);return t?r.filter(i,(function(e){return e.w===t})):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}},function(e,t,n){var r=n(46)(n(29),"Map");e.exports=r},function(e,t,n){var r=n(265),i=n(272),o=n(274),a=n(275),s=n(276);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){(function(e){var r=n(150),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i&&r.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(80)(e))},function(e,t,n){var r=n(83),i=n(282),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t,n){var r=n(157),i=n(158),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return o.call(e,t)})))}:i;e.exports=s},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}},function(e,t,n){var r=n(163);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t,n){var r=n(128),i=n(41);e.exports=function(e,t){return e&&r(e,t,i)}},function(e,t,n){var r=n(301)();e.exports=r},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},function(e,t,n){var r=n(13),i=n(61),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!i(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},function(e,t,n){var r=n(124),i=n(335);e.exports=function e(t,n,o,a,s){var l=-1,c=t.length;for(o||(o=i),s||(s=[]);++l<c;){var u=t[l];n>0&&o(u)?n>1?e(u,n-1,o,a,s):r(s,u):a||(s[s.length]=u)}return s}},function(e,t,n){var r=n(61);e.exports=function(e,t,n){for(var i=-1,o=e.length;++i<o;){var a=e[i],s=t(a);if(null!=s&&(void 0===l?s==s&&!r(s):n(s,l)))var l=s,c=a}return c}},function(e,t){},function(e,t){},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r,i=n(0),o=n(1),a=n(3),s=n(6),l=n(51),c=function(){function e(){this.enqueue=!0,this.typeQueue=[],this.defaultTypes=Object(i.H)(e.prototype,["hash","string","query","path","int","bool","date","json","any"]);this.types=Object(i.A)(Object(i.B)(this.defaultTypes,(function(e,t){return new l.a(Object(i.r)({name:t},e))})),{})}return e.prototype.dispose=function(){this.types={}},e.prototype.type=function(e,t,n){if(!Object(o.c)(t))return this.types[e];if(this.types.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return this.types[e]=new l.a(Object(i.r)({name:e},t)),n&&(this.typeQueue.push({name:e,def:n}),this.enqueue||this._flushTypeQueue()),this},e.prototype._flushTypeQueue=function(){for(;this.typeQueue.length;){var e=this.typeQueue.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");Object(i.r)(this.types[e.name],s.b.$injector.invoke(e.def))}},e}();r=function(e){var t=function(e){return null!=e?e.toString():e},n={encode:t,decode:t,is:Object(a.h)(String),pattern:/.*/,equals:function(e,t){return e==t}};return Object(i.r)({},n,e)},Object(i.r)(c.prototype,{string:r({}),path:r({pattern:/[^/]*/}),query:r({}),hash:r({inherit:!1}),int:r({decode:function(e){return parseInt(e,10)},is:function(e){return!Object(o.g)(e)&&this.decode(e.toString())===e},pattern:/-?\d+/}),bool:r({encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:Object(a.h)(Boolean),pattern:/0|1/}),date:r({encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):void 0},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):void 0},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return["getFullYear","getMonth","getDate"].reduce((function(n,r){return n&&e[r]()===t[r]()}),!0)},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/}),json:r({encode:i.Q,decode:i.x,is:Object(a.h)(Object),equals:i.q,pattern:/[^/]*/}),any:r({encode:i.y,decode:i.y,is:function(){return!0},equals:i.q})})},function(e,t,n){"use strict";var r=n(52);n.d(t,"a",(function(){return r.a}));var i=n(18);n.d(t,"b",(function(){return i.a}))},function(e,t){},function(e,t,n){"use strict";var r=n(14);n.d(t,"h",(function(){return r.a})),n.d(t,"i",(function(){return r.b}));var i=n(98);n.d(t,"a",(function(){return i.a}));var o=n(45);n.d(t,"b",(function(){return o.a})),n.d(t,"l",(function(){return o.b})),n.d(t,"m",(function(){return o.c}));var a=n(8);n.d(t,"c",(function(){return a.a})),n.d(t,"d",(function(){return a.b}));var s=n(53);n.d(t,"e",(function(){return s.a}));var l=n(17);n.d(t,"g",(function(){return l.a}));var c=n(107);n.d(t,"f",(function(){return c.a}));var u=n(56);n.d(t,"j",(function(){return u.a})),n.d(t,"k",(function(){return u.b}))},function(e,t,n){"use strict";n.r(t);var r=n(140);for(var i in r)["default","UrlRules","UrlConfig"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(32);n.d(t,"UrlMatcher",(function(){return o.a}));var a=n(100);n.d(t,"ParamFactory",(function(){return a.a})),n.d(t,"UrlMatcherFactory",(function(){return a.b}));var s=n(101);n.d(t,"UrlRouter",(function(){return s.a}));var l=n(54);n.d(t,"UrlRuleFactory",(function(){return l.b})),n.d(t,"BaseUrlRule",(function(){return l.a}));var c=n(104);n.d(t,"UrlService",(function(){return c.a}));var u=n(105);n.d(t,"UrlRules",(function(){return u.a}));var d=n(106);n.d(t,"UrlConfig",(function(){return d.a}))},function(e,t){},function(e,t,n){"use strict";n.r(t);var r=n(142);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(102);n.d(t,"ViewService",(function(){return o.a}))},function(e,t){},function(e,t,n){"use strict";n.r(t);var r=n(144);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i)},function(e,t,n){"use strict";n.r(t);var r=n(145);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(70);n.d(t,"$q",(function(){return o.a}));var a=n(71);n.d(t,"$injector",(function(){return a.a}));var s=n(42);n.d(t,"BaseLocationServices",(function(){return s.a}));var l=n(108);n.d(t,"HashLocationService",(function(){return l.a}));var c=n(109);n.d(t,"MemoryLocationService",(function(){return c.a}));var u=n(110);n.d(t,"PushStateLocationService",(function(){return u.a}));var d=n(111);n.d(t,"MemoryLocationConfig",(function(){return d.a}));var p=n(72);n.d(t,"BrowserLocationConfig",(function(){return p.a}));var f=n(27);n.d(t,"keyValsToObjectR",(function(){return f.c})),n.d(t,"getParams",(function(){return f.b})),n.d(t,"parseUrl",(function(){return f.e})),n.d(t,"buildUrl",(function(){return f.a})),n.d(t,"locationPluginFactory",(function(){return f.d}));var h=n(146);n.d(t,"servicesPlugin",(function(){return h.d})),n.d(t,"hashLocationPlugin",(function(){return h.a})),n.d(t,"pushStateLocationPlugin",(function(){return h.c})),n.d(t,"memoryLocationPlugin",(function(){return h.b}))},function(e,t){},function(e,t,n){"use strict";n.d(t,"d",(function(){return p})),n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return h})),n.d(t,"b",(function(){return g}));var r=n(72),i=n(108),o=n(27),a=n(110),s=n(109),l=n(111),c=n(71),u=n(70),d=n(6);function p(e){return d.b.$injector=c.a,d.b.$q=u.a,{name:"vanilla.services",$q:u.a,$injector:c.a,dispose:function(){return null}}}var f=Object(o.d)("vanilla.hashBangLocation",!1,i.a,r.a),h=Object(o.d)("vanilla.pushStateLocation",!0,a.a,r.a),g=Object(o.d)("vanilla.memoryLocation",!1,s.a,l.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.prototype.dispose=function(e){},e}()},function(e,t,n){var r=n(247);e.exports={Graph:r.Graph,json:n(349),alg:n(350),version:r.version}},function(e,t,n){var r=n(73),i=n(119),o=n(78),a=n(277),s=n(283),l=n(155),c=n(156),u=n(286),d=n(287),p=n(160),f=n(288),h=n(60),g=n(292),m=n(293),v=n(165),b=n(13),y=n(59),x=n(297),w=n(23),k=n(299),A=n(41),E=n(48),S={};S["[object Arguments]"]=S["[object Array]"]=S["[object ArrayBuffer]"]=S["[object DataView]"]=S["[object Boolean]"]=S["[object Date]"]=S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Map]"]=S["[object Number]"]=S["[object Object]"]=S["[object RegExp]"]=S["[object Set]"]=S["[object String]"]=S["[object Symbol]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S["[object Error]"]=S["[object Function]"]=S["[object WeakMap]"]=!1,e.exports=function e(t,n,$,C,_,O){var T,j=1&n,P=2&n,D=4&n;if($&&(T=_?$(t,C,_,O):$(t)),void 0!==T)return T;if(!w(t))return t;var R=b(t);if(R){if(T=g(t),!j)return c(t,T)}else{var I=h(t),N="[object Function]"==I||"[object GeneratorFunction]"==I;if(y(t))return l(t,j);if("[object Object]"==I||"[object Arguments]"==I||N&&!_){if(T=P||N?{}:v(t),!j)return P?d(t,s(T,t)):u(t,a(T,t))}else{if(!S[I])return _?t:{};T=m(t,I,j)}}O||(O=new r);var M=O.get(t);if(M)return M;O.set(t,T),k(t)?t.forEach((function(r){T.add(e(r,n,$,r,t,O))})):x(t)&&t.forEach((function(r,i){T.set(i,e(r,n,$,i,t,O))}));var z=R?void 0:(D?P?f:p:P?E:A)(t);return i(z||t,(function(r,i){z&&(r=t[i=r]),o(T,i,e(r,n,$,i,t,O))})),T}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(35))},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(46),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},function(e,t,n){var r=n(278),i=n(66),o=n(13),a=n(59),s=n(81),l=n(67),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),u=!n&&i(e),d=!n&&!u&&a(e),p=!n&&!u&&!d&&l(e),f=n||u||d||p,h=f?r(e.length,String):[],g=h.length;for(var m in e)!t&&!c.call(e,m)||f&&("length"==m||d&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,g))||h.push(m);return h}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){(function(e){var r=n(29),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}}).call(this,n(80)(e))},function(e,t){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(124),i=n(84),o=n(123),a=n(158),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=i(e);return t}:a;e.exports=s},function(e,t,n){var r=n(161),i=n(123),o=n(41);e.exports=function(e){return r(e,o,i)}},function(e,t,n){var r=n(124),i=n(13);e.exports=function(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}},function(e,t,n){var r=n(46)(n(29),"Set");e.exports=r},function(e,t,n){var r=n(29).Uint8Array;e.exports=r},function(e,t,n){var r=n(125);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},function(e,t,n){var r=n(166),i=n(84),o=n(83);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(i(e))}},function(e,t,n){var r=n(23),i=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},function(e,t,n){e.exports=n(168)},function(e,t,n){var r=n(119),i=n(85),o=n(169),a=n(13);e.exports=function(e,t){return(a(e)?r:i)(e,o(t))}},function(e,t,n){var r=n(49);e.exports=function(e){return"function"==typeof e?e:r}},function(e,t,n){var r=n(157),i=n(303),o=n(37),a=n(13);e.exports=function(e,t){return(a(e)?r:i)(e,o(t,3))}},function(e,t,n){var r=n(306),i=n(34);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!i(t)&&!i(n)?t!=t&&n!=n:r(t,n,o,a,e,s))}},function(e,t,n){var r=n(173),i=n(309),o=n(174);e.exports=function(e,t,n,a,s,l){var c=1&n,u=e.length,d=t.length;if(u!=d&&!(c&&d>u))return!1;var p=l.get(e),f=l.get(t);if(p&&f)return p==t&&f==e;var h=-1,g=!0,m=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++h<u;){var v=e[h],b=t[h];if(a)var y=c?a(b,v,h,t,e,l):a(v,b,h,e,t,l);if(void 0!==y){if(y)continue;g=!1;break}if(m){if(!i(t,(function(e,t){if(!o(m,t)&&(v===e||s(v,e,n,a,l)))return m.push(t)}))){g=!1;break}}else if(v!==b&&!s(v,b,n,a,l)){g=!1;break}}return l.delete(e),l.delete(t),g}},function(e,t,n){var r=n(118),i=n(307),o=n(308);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=i,a.prototype.has=o,e.exports=a},function(e,t){e.exports=function(e,t){return e.has(t)}},function(e,t,n){var r=n(23);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},function(e,t,n){var r=n(319);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){var r=n(320),i=n(179);e.exports=function(e,t){return null!=e&&i(e,t,r)}},function(e,t,n){var r=n(87),i=n(66),o=n(13),a=n(81),s=n(120),l=n(68);e.exports=function(e,t,n){for(var c=-1,u=(t=r(t,e)).length,d=!1;++c<u;){var p=l(t[c]);if(!(d=null!=e&&n(e,p)))break;e=e[p]}return d||++c!=u?d:!!(u=null==e?0:e.length)&&s(u)&&a(p,u)&&(o(e)||i(e))}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var r=n(323),i=n(179);e.exports=function(e,t){return null!=e&&i(e,t,r)}},function(e,t){e.exports=function(e){return void 0===e}},function(e,t,n){var r=n(88),i=n(37),o=n(184),a=n(13);e.exports=function(e,t){return(a(e)?r:o)(e,i(t,3))}},function(e,t,n){var r=n(85),i=n(36);e.exports=function(e,t){var n=-1,o=i(e)?Array(e.length):[];return r(e,(function(e,r,i){o[++n]=t(e,r,i)})),o}},function(e,t,n){var r=n(325),i=n(85),o=n(37),a=n(326),s=n(13);e.exports=function(e,t,n){var l=s(e)?r:a,c=arguments.length<3;return l(e,o(t,4),n,c,i)}},function(e,t,n){var r=n(336),i=Math.max;e.exports=function(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=i(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=o[a];return c[t]=n(l),r(e,this,c)}}},function(e,t,n){var r=n(337),i=n(338)(r);e.exports=i},function(e,t){e.exports=function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}},function(e,t,n){var r=n(36),i=n(34);e.exports=function(e){return i(e)&&r(e)}},function(e,t,n){var r=n(347),i=n(41);e.exports=function(e){return null==e?[]:r(e,i(e))}},function(e,t,n){var r=n(22),i=n(192);e.exports=function(e,t,n,r){return function(e,t,n,r){var o,a,s={},l=new i,c=function(e){var t=e.v!==o?e.v:e.w,r=s[t],i=n(e),c=a.distance+i;if(i<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+i);c<r.distance&&(r.distance=c,r.predecessor=o,l.decrease(t,c))};e.nodes().forEach((function(e){var n=e===t?0:Number.POSITIVE_INFINITY;s[e]={distance:n},l.add(e,n)}));for(;l.size()>0&&(o=l.removeMin(),(a=s[o]).distance!==Number.POSITIVE_INFINITY);)r(o).forEach(c);return s}(e,String(t),n||o,r||function(t){return e.outEdges(t)})};var o=r.constant(1)},function(e,t,n){var r=n(22);function i(){this._arr=[],this._keyIndices={}}e.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map((function(e){return e.key}))},i.prototype.has=function(e){return r.has(this._keyIndices,e)},i.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},i.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(e,t){var n=this._keyIndices;if(e=String(e),!r.has(n,e)){var i=this._arr,o=i.length;return n[e]=o,i.push({key:e,priority:t}),this._decrease(o),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},i.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[n].priority+" New: "+t);this._arr[n].priority=t,this._decrease(n)},i.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},i.prototype._decrease=function(e){for(var t,n=this._arr,r=n[e].priority;0!==e&&!(n[t=e>>1].priority<r);)this._swap(e,t),e=t},i.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],o=n[t];n[e]=o,n[t]=i,r[o.key]=e,r[i.key]=t}},function(e,t,n){var r=n(22);e.exports=function(e){var t=0,n=[],i={},o=[];return e.nodes().forEach((function(a){r.has(i,a)||function a(s){var l=i[s]={onStack:!0,lowlink:t,index:t++};if(n.push(s),e.successors(s).forEach((function(e){r.has(i,e)?i[e].onStack&&(l.lowlink=Math.min(l.lowlink,i[e].index)):(a(e),l.lowlink=Math.min(l.lowlink,i[e].lowlink))})),l.lowlink===l.index){var c,u=[];do{c=n.pop(),i[c].onStack=!1,u.push(c)}while(s!==c);o.push(u)}}(a)})),o}},function(e,t,n){var r=n(22);function i(e){var t={},n={},i=[];if(r.each(e.sinks(),(function a(s){if(r.has(n,s))throw new o;r.has(t,s)||(n[s]=!0,t[s]=!0,r.each(e.predecessors(s),a),delete n[s],i.push(s))})),r.size(t)!==e.nodeCount())throw new o;return i}function o(){}e.exports=i,i.CycleException=o,o.prototype=new Error},function(e,t,n){var r=n(22);e.exports=function(e,t,n){r.isArray(t)||(t=[t]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),o=[],a={};return r.each(t,(function(t){if(!e.hasNode(t))throw new Error("Graph does not have node: "+t);!function e(t,n,i,o,a,s){r.has(o,n)||(o[n]=!0,i||s.push(n),r.each(a(n),(function(n){e(t,n,i,o,a,s)})),i&&s.push(n))}(e,t,"post"===n,a,i,o)})),o}},function(e,t,n){var r=n(366);e.exports=function(e){return e?(e=r(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},function(e,t,n){var r=n(131);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},function(e,t,n){var r=n(79),i=n(57);e.exports=function(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},function(e,t){e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},function(e,t){e.exports=function(e,t){return e<t}},function(e,t,n){"use strict";var r=n(11),i=n(28).Graph,o=n(91).slack;function a(e,t){return r.forEach(e.nodes(),(function n(i){r.forEach(t.nodeEdges(i),(function(r){var a=r.v,s=i===a?r.w:a;e.hasNode(s)||o(t,r)||(e.setNode(s,{}),e.setEdge(i,s,{}),n(s))}))})),e.nodeCount()}function s(e,t){return r.minBy(t.edges(),(function(n){if(e.hasNode(n.v)!==e.hasNode(n.w))return o(t,n)}))}function l(e,t,n){r.forEach(e.nodes(),(function(e){t.node(e).rank+=n}))}e.exports=function(e){var t,n,r=new i({directed:!1}),c=e.nodes()[0],u=e.nodeCount();r.setNode(c,{});for(;a(r,e)<u;)t=s(r,e),n=r.hasNode(t.v)?o(e,t):-o(e,t),l(r,e,n);return r}},function(e,t,n){(function(e,r){var i; + */e.exports&&(e.exports=n),void 0!==t&&(t.Prism=n),n.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside["internal-subset"].inside=n.languages.markup,n.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i["language-"+t]={pattern:/[\s\S]+/,inside:n.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},n.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(e,t){n.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:n.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend("markup",{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),n.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),n.languages.markup&&(n.languages.markup.tag.addInlined("script","javascript"),n.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),n.languages.js=n.languages.javascript,function(){if(void 0!==n&&"undefined"!=typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},t='pre[data-src]:not([data-src-status="loaded"]):not([data-src-status="loading"])';n.hooks.add("before-highlightall",(function(e){e.selector+=", "+t})),n.hooks.add("before-sanity-check",(function(r){var i=r.element;if(i.matches(t)){r.code="",i.setAttribute("data-src-status","loading");var o=i.appendChild(document.createElement("CODE"));o.textContent="Loading…";var a=i.getAttribute("data-src"),s=r.language;if("none"===s){var l=(/\.(\w+)$/.exec(a)||[,"none"])[1];s=e[l]||l}n.util.setLanguage(o,s),n.util.setLanguage(i,s);var c=n.plugins.autoloader;c&&c.loadLanguages(s),function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.onreadystatechange=function(){var e,i;4==r.readyState&&(r.status<400&&r.responseText?t(r.responseText):r.status>=400?n((e=r.status,i=r.statusText,"✖ Error "+e+" while fetching file: "+i)):n("✖ Error: File does not exist or is empty"))},r.send(null)}(a,(function(e){i.setAttribute("data-src-status","loaded");var t=function(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"");if(t){var n=Number(t[1]),r=t[2],i=t[3];return r?i?[n,Number(i)]:[n,void 0]:[n,n]}}(i.getAttribute("data-range"));if(t){var r=e.split(/\r\n?|\n/g),a=t[0],s=null==t[1]?r.length:t[1];a<0&&(a+=r.length),a=Math.max(0,Math.min(a-1,r.length)),s<0&&(s+=r.length),s=Math.max(0,Math.min(s,r.length)),e=r.slice(a,s).join("\n"),i.hasAttribute("data-start")||i.setAttribute("data-start",String(a+1))}o.textContent=e,n.highlightElement(o)}),(function(e){i.setAttribute("data-src-status","failed"),o.textContent=e}))}})),n.plugins.fileHighlight={highlight:function(e){for(var r,i=(e||document).querySelectorAll(t),o=0;r=i[o++];)n.highlightElement(r)}};var r=!1;n.fileHighlight=function(){r||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),r=!0),n.plugins.fileHighlight.highlight.apply(this,arguments)}}}()}).call(this,n(35))},function(e,t,n){var r=n(47),i=n(23);e.exports=function(e){if(!i(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var r=n(78),i=n(79);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var c=t[s],u=o?o(n[c],e[c],c,n,e):void 0;void 0===u&&(u=e[c]),a?i(n,c,u):r(n,c,u)}return n}},function(e,t,n){var r=n(279),i=n(34),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},function(e,t,n){var r=n(281),i=n(82),o=n(121),a=o&&o.isTypedArray,s=a?i(a):r;e.exports=s},function(e,t,n){var r=n(61);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r={when:{LAZY:"LAZY",EAGER:"EAGER"},async:{WAIT:"WAIT",NOWAIT:"NOWAIT"}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(4),i={when:function(e){return new Promise((function(t,n){return t(e)}))},reject:function(e){return new Promise((function(t,n){n(e)}))},defer:function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e},all:function(e){if(Object(r.R)(e))return Promise.all(e);if(Object(r.Z)(e)){var t=Object.keys(e).map((function(t){return e[t].then((function(e){return{key:t,val:e}}))}));return i.all(t).then((function(e){return e.reduce((function(e,t){return e[t.key]=t.val,e}),{})}))}}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(4),i={},o=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,a=/([^\s,]+)/g,s={get:function(e){return i[e]},has:function(e){return null!=s.get(e)},invoke:function(e,t,n){var o=Object(r.C)({},i,n||{}),a=s.annotate(e),l=Object(r.s)((function(e){return o.hasOwnProperty(e)}),(function(e){return"DI can't find injectable: '"+e+"'"})),c=a.filter(l).map((function(e){return o[e]}));return Object(r.U)(e)?e.apply(t,c):e.slice(-1)[0].apply(t,c)},annotate:function(e){if(!Object(r.V)(e))throw new Error("Not an injectable function: "+e);if(e&&e.$inject)return e.$inject;if(Object(r.R)(e))return e.slice(0,-1);var t=e.toString().replace(o,"");return t.slice(t.indexOf("(")+1,t.indexOf(")")).match(a)||[]}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(1),i=function(){function e(e,t){void 0===t&&(t=!1),this._isHtml5=t,this._baseHref=void 0,this._hashPrefix=""}return e.prototype.port=function(){return location.port?Number(location.port):"https"===this.protocol()?443:80},e.prototype.protocol=function(){return location.protocol.replace(/:/g,"")},e.prototype.host=function(){return location.hostname},e.prototype.html5Mode=function(){return this._isHtml5},e.prototype.hashPrefix=function(e){return Object(r.c)(e)?this._hashPrefix=e:this._hashPrefix},e.prototype.baseHref=function(e){return Object(r.c)(e)&&(this._baseHref=e),Object(r.m)(this._baseHref)&&(this._baseHref=this.getBaseHref()),this._baseHref},e.prototype.getBaseHref=function(){var e=document.getElementsByTagName("base")[0];return e&&e.href?e.href.replace(/^([^/:]*:)?\/\/[^/]*/,""):this._isHtml5?"/":location.pathname||"/"},e.prototype.dispose=function(){},e}()},function(e,t,n){var r=n(74),i=n(254),o=n(255),a=n(256),s=n(257),l=n(258);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=s,c.prototype.set=l,e.exports=c},function(e,t,n){var r=n(249),i=n(250),o=n(251),a=n(252),s=n(253);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},function(e,t,n){var r=n(57);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(46)(Object,"create");e.exports=r},function(e,t,n){var r=n(273);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(79),i=n(57),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&i(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){var r=n(152);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(154)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(127),i=n(302)(r);e.exports=i},function(e,t,n){var r=n(87),i=n(68);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[i(t[n++])];return n&&n==o?e:void 0}},function(e,t,n){var r=n(13),i=n(130),o=n(316),a=n(177);e.exports=function(e,t){return r(e)?e:i(e,t)?[e]:o(a(e))}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}},function(e,t,n){var r=n(49),i=n(186),o=n(187);e.exports=function(e,t){return o(i(e,t,r),e+"")}},function(e,t,n){var r=n(57),i=n(36),o=n(81),a=n(23);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?i(n)&&o(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},function(e,t,n){"use strict";var r=n(11);e.exports={longestPath:function(e){var t={};r.forEach(e.sources(),(function n(i){var o=e.node(i);if(r.has(t,i))return o.rank;t[i]=!0;var a=r.min(r.map(e.outEdges(i),(function(t){return n(t.w)-e.edge(t).minlen})));return a!==Number.POSITIVE_INFINITY&&null!=a||(a=0),o.rank=a}))},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),i=function(){function e(e){void 0===e&&(e={}),Object(r.r)(this,e)}return e.prototype.$inherit=function(e,t,n){var i,o=Object(r.f)(t,n),a={},s=[];for(var l in o)if(o[l]&&o[l].params&&(i=Object.keys(o[l].params)).length)for(var c in i)s.indexOf(i[c])>=0||(s.push(i[c]),a[i[c]]=this[i[c]]);return Object(r.r)({},a,e)},e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return v}));var r=n(0),i=n(1),o=n(7),a=n(3),s=n(15),l=n(6);function c(e){return e.name}function u(e){return e.self.$$state=function(){return e},e.self}function d(e){return e.parent&&e.parent.data&&(e.data=e.self.data=Object(r.A)(e.parent.data,e.data)),e.data}var p=function(e,t){return function(n){var o=n.self;if(o&&o.url&&o.name&&o.name.match(/\.\*\*$/)){var a={};Object(r.m)(o,a),a.url+="{remainder:any}",o=a}var s=n.parent,l=function(e){if(!Object(i.l)(e))return!1;var t="^"===e.charAt(0);return{val:t?e.substring(1):e,root:t}}(o.url),c=l?e.compile(l.val,{state:o}):o.url;if(!c)return null;if(!e.isMatcher(c))throw new Error("Invalid url '"+c+"' in state '"+n+"'");return l&&l.root?c:(s&&s.navigable||t()).url.append(c)}},f=function(e){return function(t){return!e(t)&&t.url?t:t.parent?t.parent.navigable:null}};function h(e){return e.parent?e.parent.path.concat(e):[e]}function g(e){var t=e.parent?Object(r.r)({},e.parent.includes):{};return t[e.name]=!0,t}function m(e){var t,n,c=function(e){return e.provide||e.token},u=Object(a.l)([[Object(a.n)("resolveFn"),function(e){return new s.a(c(e),e.resolveFn,e.deps,e.policy)}],[Object(a.n)("useFactory"),function(e){return new s.a(c(e),e.useFactory,e.deps||e.dependencies,e.policy)}],[Object(a.n)("useClass"),function(e){return new s.a(c(e),(function(){return new e.useClass}),[],e.policy)}],[Object(a.n)("useValue"),function(e){return new s.a(c(e),(function(){return e.useValue}),[],e.policy,e.useValue)}],[Object(a.n)("useExisting"),function(e){return new s.a(c(e),r.y,[e.useExisting],e.policy)}]]),d=Object(a.l)([[Object(a.m)(Object(a.n)("val"),i.l),function(e){return new s.a(e.token,r.y,[e.val],e.policy)}],[Object(a.m)(Object(a.n)("val"),i.a),function(e){return new s.a(e.token,Object(r.P)(e.val),e.val.slice(0,-1),e.policy)}],[Object(a.m)(Object(a.n)("val"),i.d),function(e){return new s.a(e.token,e.val,(t=e.val,n=l.b.$injector,t.$inject||n&&n.annotate(t,n.strictDi)||"deferred"),e.policy);var t,n}]]),p=Object(a.l)([[Object(a.h)(s.a),function(e){return e}],[function(e){return!(!e.token||!e.resolveFn)},u],[function(e){return!(!e.provide&&!e.token||!(e.useValue||e.useFactory||e.useExisting||e.useClass))},u],[function(e){return!!(e&&e.val&&(Object(i.l)(e.val)||Object(i.a)(e.val)||Object(i.d)(e.val)))},d],[Object(a.p)(!0),function(e){throw new Error("Invalid resolve value: "+Object(o.m)(e))}]]),f=e.resolve;return(Object(i.a)(f)?f:(t=f,n=e.resolvePolicy||{},Object.keys(t||{}).map((function(e){return{token:e,val:t[e],deps:void 0,policy:n[e]}})))).map(p)}var v=function(){function e(e,t){this.matcher=e;var n,i=this,o=function(){return e.find("")},s=function(e){return""===e.name};this.builders={name:[c],self:[u],parent:[function(t){return s(t)?null:e.find(i.parentName(t))||o()}],data:[d],url:[p(t,o)],navigable:[f(s)],params:[(n=t.paramFactory,function(e){var t=e.url&&e.url.parameters({inherit:!1})||[],i=Object(r.U)(Object(r.C)(Object(r.F)(e.params||{},t.map(Object(a.n)("id"))),(function(t,r){return n.fromConfig(r,null,e.self)})));return t.concat(i).map((function(e){return[e.id,e]})).reduce(r.h,{})})],views:[],path:[h],includes:[g],resolvables:[m]}}return e.prototype.builder=function(e,t){var n=this.builders,r=n[e]||[];return Object(i.l)(e)&&!Object(i.c)(t)?r.length>1?r:r[0]:Object(i.l)(e)&&Object(i.d)(t)?(n[e]=r,n[e].push(t),function(){return n[e].splice(n[e].indexOf(t,1))&&null}):void 0},e.prototype.build=function(e){var t=this.matcher,n=this.builders,i=this.parentName(e);if(i&&!t.find(i,void 0,!1))return null;for(var o in n)if(n.hasOwnProperty(o)){var a=n[o].reduce((function(e,t){return function(n){return t(n,e)}}),r.E);e[o]=a(e)}return e},e.prototype.parentName=function(e){var t=e.name||"",n=t.split(".");if("**"===n.pop()&&n.pop(),n.length){if(e.parent)throw new Error("States that specify the 'parent:' property should not have a '.' in their name ("+t+")");return n.join(".")}return e.parent?Object(i.l)(e.parent)?e.parent:e.parent.name:""},e.prototype.name=function(e){var t=e.name;if(-1!==t.indexOf(".")||!e.parent)return t;var n=Object(i.l)(e.parent)?e.parent:e.parent.name;return n?n+"."+t:t},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(1),i=n(0),o=n(19),a=function(){function e(e){this._states=e}return e.prototype.isRelative=function(e){return 0===(e=e||"").indexOf(".")||0===e.indexOf("^")},e.prototype.find=function(e,t,n){if(void 0===n&&(n=!0),e||""===e){var a=Object(r.l)(e),s=a?e:e.name;this.isRelative(s)&&(s=this.resolvePath(s,t));var l=this._states[s];if(l&&(a||!(a||l!==e&&l.self!==e)))return l;if(a&&n){var c=Object(i.U)(this._states).filter((function(e){return e.__stateObjectCache.nameGlob&&e.__stateObjectCache.nameGlob.matches(s)}));return c.length>1&&o.a.error("stateMatcher.find: Found multiple matches for "+s+" using glob: ",c.map((function(e){return e.name}))),c[0]}}},e.prototype.resolvePath=function(e,t){if(!t)throw new Error("No reference point given for path '"+e+"'");for(var n=this.find(t),r=e.split("."),i=r.length,o=0,a=n;o<i;o++)if(""!==r[o]||0!==o){if("^"!==r[o])break;if(!a.parent)throw new Error("Path '"+e+"' not valid for state '"+n.name+"'");a=a.parent}else a=n;var s=r.slice(o).join(".");return a.name+(a.name&&s?".":"")+s},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),i=n(44),o=function(){function e(e,t,n,r){this.router=e,this.states=t,this.builder=n,this.listeners=r,this.queue=[]}return e.prototype.dispose=function(){this.queue=[]},e.prototype.register=function(e){var t=this.queue,n=i.a.create(e),o=n.name;if(!Object(r.cb)(o))throw new Error("State must have a valid name");if(this.states.hasOwnProperty(o)||Object(r.N)(t.map(Object(r.wb)("name")),o))throw new Error("State '"+o+"' is already defined");return t.push(n),this.flush(),n},e.prototype.flush=function(){for(var e=this,t=this.queue,n=this.states,r=this.builder,i=[],o=[],a={},s=function(t){return e.states.hasOwnProperty(t)&&e.states[t]},l=function(){i.length&&e.listeners.forEach((function(e){return e("registered",i.map((function(e){return e.self})))}))};t.length>0;){var c=t.shift(),u=c.name,d=r.build(c),p=o.indexOf(c);if(d){var f=s(u);if(f&&f.name===u)throw new Error("State '"+u+"' is already defined");var h=s(u+".**");h&&this.router.stateRegistry.deregister(h),n[u]=c,this.attachRoute(c),p>=0&&o.splice(p,1),i.push(c)}else{var g=a[u];if(a[u]=t.length,p>=0&&g===t.length)return t.push(c),l(),n;p<0&&o.push(c),t.push(c)}}return l(),n},e.prototype.attachRoute=function(e){if(!e.abstract&&e.url){var t=this.router.urlService.rules;t.rule(t.urlRuleFactory.create(e))}},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(94),i=n(93),o=n(95),a=n(0),s=n(3),l=function(){function e(e){this.router=e,this.states={},this.listeners=[],this.matcher=new r.a(this.states),this.builder=new i.a(this.matcher,e.urlMatcherFactory),this.stateQueue=new o.a(e,this.states,this.builder,this.listeners),this._registerRoot()}return e.prototype._registerRoot=function(){(this._root=this.stateQueue.register({name:"",url:"^",views:null,params:{"#":{value:null,type:"hash",dynamic:!0}},abstract:!0})).navigable=null},e.prototype.dispose=function(){var e=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach((function(t){return e.get(t)&&e.deregister(t)}))},e.prototype.onStatesChanged=function(e){return this.listeners.push(e),function(){Object(a.L)(this.listeners)(e)}.bind(this)},e.prototype.root=function(){return this._root},e.prototype.register=function(e){return this.stateQueue.register(e)},e.prototype._deregisterTree=function(e){var t=this,n=this.get().map((function(e){return e.$$state()})),r=function(e){var t=n.filter((function(t){return-1!==e.indexOf(t.parent)}));return 0===t.length?t:t.concat(r(t))},i=r([e]),o=[e].concat(i).reverse();return o.forEach((function(e){var n=t.router.urlService.rules;n.rules().filter(Object(s.o)("state",e)).forEach((function(e){return n.removeRule(e)})),delete t.states[e.name]})),o},e.prototype.deregister=function(e){var t=this.get(e);if(!t)throw new Error("Can't deregister state; not found: "+e);var n=this._deregisterTree(t.$$state());return this.listeners.forEach((function(e){return e("deregistered",n.map((function(e){return e.self})))})),n},e.prototype.get=function(e,t){var n=this;if(0===arguments.length)return Object.keys(this.states).map((function(e){return n.states[e].self}));var r=this.matcher.find(e,t);return r&&r.self||null},e.prototype.decorator=function(e,t){return this.builder.builder(e,t)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return v}));var r=n(0),i=n(1),o=n(50),a=n(6),s=n(18),l=n(52),c=n(56),u=n(9),d=n(26),p=n(16),f=n(62),h=n(27),g=n(115),m=n(3),v=function(){function e(t){this.router=t,this.invalidCallbacks=[],this._defaultErrorHandler=function(e){e instanceof Error&&e.stack?(console.error(e),console.error(e.stack)):e instanceof u.b?(console.error(e.toString()),e.detail&&e.detail.stack&&console.error(e.detail.stack)):console.error(e)};var n=Object.keys(e.prototype).filter(Object(m.i)(Object(r.z)(["current","$current","params","transition"])));Object(r.n)(Object(m.p)(e.prototype),this,Object(m.p)(this),n)}return Object.defineProperty(e.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.defaultErrorHandler(r.E),this.invalidCallbacks=[]},e.prototype._handleInvalidTargetState=function(e,t){var n=this,r=s.a.makeTargetState(this.router.stateRegistry,e),i=this.router.globals,l=function(){return i.transitionHistory.peekTail()},c=l(),p=new o.a(this.invalidCallbacks.slice()),f=new h.b(e).injector(),g=function(e){if(e instanceof d.a){var t=e;return(t=n.target(t.identifier(),t.params(),t.options())).valid()?l()!==c?u.b.superseded().toPromise():n.transitionTo(t.identifier(),t.params(),t.options()):u.b.invalid(t.error()).toPromise()}};return function e(){var n=p.dequeue();return void 0===n?u.b.invalid(t.error()).toPromise():a.b.$q.when(n(t,r,f)).then(g).then((function(t){return t||e()}))}()},e.prototype.onInvalid=function(e){return this.invalidCallbacks.push(e),function(){Object(r.L)(this.invalidCallbacks)(e)}.bind(this)},e.prototype.reload=function(e){return this.transitionTo(this.current,this.params,{reload:!Object(i.c)(e)||e,inherit:!1,notify:!1})},e.prototype.go=function(e,t,n){var i={relative:this.$current,inherit:!0},o=Object(r.o)(n,i,c.b);return this.transitionTo(e,t,o)},e.prototype.target=function(e,t,n){if(void 0===n&&(n={}),Object(i.i)(n.reload)&&!n.reload.name)throw new Error("Invalid reload state object");var r=this.router.stateRegistry;if(n.reloadState=!0===n.reload?r.root():r.matcher.find(n.reload,n.relative),n.reload&&!n.reloadState)throw new Error("No such reload state '"+(Object(i.l)(n.reload)?n.reload:n.reload.name)+"'");return new d.a(this.router.stateRegistry,e,t,n)},e.prototype.getCurrentPath=function(){var e=this,t=this.router.globals.successfulTransitions.peekTail();return t?t.treeChanges().to:[new l.a(e.router.stateRegistry.root())]},e.prototype.transitionTo=function(e,t,n){var i=this;void 0===t&&(t={}),void 0===n&&(n={});var o=this.router,s=o.globals;n=Object(r.o)(n,c.b);var l=function(){return s.transition};n=Object(r.r)(n,{current:l});var p=this.target(e,t,n),f=this.getCurrentPath();if(!p.exists())return this._handleInvalidTargetState(f,p);if(!p.valid())return Object(r.O)(p.error());if(!1===n.supercede&&l())return u.b.ignored("Another transition is in progress and supercede has been set to false in TransitionOptions for the transition. So the transition was ignored in favour of the existing one in progress.").toPromise();var h=function(e){return function(t){if(t instanceof u.b){var n=o.globals.lastStartedTransitionId<=e.$id;if(t.type===u.a.IGNORED)return n&&o.urlRouter.update(),a.b.$q.when(s.current);var r=t.detail;if(t.type===u.a.SUPERSEDED&&t.redirected&&r instanceof d.a){var l=e.redirect(r);return l.run().catch(h(l))}if(t.type===u.a.ABORTED)return n&&o.urlRouter.update(),a.b.$q.reject(t)}return i.defaultErrorHandler()(t),a.b.$q.reject(t)}},g=this.router.transitionService.create(f,p),m=g.run().catch(h(g));return Object(r.N)(m),Object(r.r)(m,{transition:g})},e.prototype.is=function(e,t,n){n=Object(r.o)(n,{relative:this.$current});var o=this.router.stateRegistry.matcher.find(e,n.relative);if(Object(i.c)(o)){if(this.$current!==o)return!1;if(!t)return!0;var a=o.parameters({inherit:!0,matchingKeys:t});return p.b.equals(a,p.b.values(a,t),this.params)}},e.prototype.includes=function(e,t,n){n=Object(r.o)(n,{relative:this.$current});var o=Object(i.l)(e)&&f.a.fromString(e);if(o){if(!o.matches(this.$current.name))return!1;e=this.$current.name}var a=this.router.stateRegistry.matcher.find(e,n.relative),s=this.$current.includes;if(Object(i.c)(a)){if(!Object(i.c)(s[a.name]))return!1;if(!t)return!0;var l=a.parameters({inherit:!0,matchingKeys:t});return p.b.equals(l,p.b.values(l,t),this.params)}},e.prototype.href=function(e,t,n){var o={lossy:!0,inherit:!0,absolute:!1,relative:this.$current};n=Object(r.o)(n,o),t=t||{};var a=this.router.stateRegistry.matcher.find(e,n.relative);if(!Object(i.c)(a))return null;n.inherit&&(t=this.params.$inherit(t,this.$current,a));var s=a&&n.lossy?a.navigable:a;return s&&void 0!==s.url&&null!==s.url?this.router.urlRouter.href(s.url,t,{absolute:n.absolute}):null},e.prototype.defaultErrorHandler=function(e){return this._defaultErrorHandler=e||this._defaultErrorHandler},e.prototype.get=function(e,t){var n=this.router.stateRegistry;return 0===arguments.length?n.get():n.get(e,t||this.$current)},e.prototype.lazyLoad=function(e,t){var n=this.get(e);if(!n||!n.lazyLoad)throw new Error("Can not lazy load "+e);var r=this.getCurrentPath(),i=s.a.makeTargetState(this.router.stateRegistry,r);return t=t||this.router.transitionService.create(r,i),Object(g.a)(t,n)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(1),o=n(14),a=n(17),s=function(){function e(e){this.transition=e}return e.prototype.buildHooksForPhase=function(e){var t=this;return this.transition.router.transitionService._pluginapi._getEvents(e).map((function(e){return t.buildHooks(e)})).reduce(r.T,[]).filter(r.y)},e.prototype.buildHooks=function(e){var t=this.transition,n=t.treeChanges(),i=this.getMatchingHooks(e,n,t);if(!i)return[];var s={transition:t,current:t.options().current};return i.map((function(i){return i.matches(n,t)[e.criteriaMatchPath.name].map((function(n){var l=Object(r.r)({bind:i.bind,traceData:{hookType:e.name,context:n}},s),c=e.criteriaMatchPath.scope===o.b.STATE?n.state.self:null,u=new a.a(t,c,i,l);return{hook:i,node:n,transitionHook:u}}))})).reduce(r.T,[]).sort(function(e){void 0===e&&(e=!1);return function(t,n){var r=e?-1:1,i=(t.node.state.path.length-n.node.state.path.length)*r;return 0!==i?i:n.hook.priority-t.hook.priority}}(e.reverseSort)).map((function(e){return e.transitionHook}))},e.prototype.getMatchingHooks=function(e,t,n){var a=e.hookPhase===o.a.CREATE,s=this.transition.router.transitionService;return(a?[s]:[this.transition,s]).map((function(t){return t.getHooks(e.name)})).filter(Object(r.l)(i.a,"broken event named: "+e.name)).reduce(r.T,[]).filter((function(e){return e.matches(t,n)}))},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var r=n(100),i=n(101),o=n(56),a=n(102),s=n(96),l=n(97),c=n(103),u=n(0),d=n(1),p=n(104),f=n(10),h=n(4),g=0,m=Object(h.gb)("LocationServices",["url","path","search","hash","onChange"]),v=Object(h.gb)("LocationConfig",["port","protocol","host","baseHref","html5Mode","hashPrefix"]),b=function(){function e(e,t){void 0===e&&(e=m),void 0===t&&(t=v),this.locationService=e,this.locationConfig=t,this.$id=g++,this._disposed=!1,this._disposables=[],this.trace=f.c,this.viewService=new a.a(this),this.globals=new c.a,this.transitionService=new o.a(this),this.urlMatcherFactory=new r.b(this),this.urlRouter=new i.a(this),this.urlService=new p.a(this),this.stateRegistry=new s.a(this),this.stateService=new l.a(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlService),this.disposable(e),this.disposable(t)}return e.prototype.disposable=function(e){this._disposables.push(e)},e.prototype.dispose=function(e){var t=this;e&&Object(d.d)(e.dispose)?e.dispose(this):(this._disposed=!0,this._disposables.slice().forEach((function(e){try{"function"==typeof e.dispose&&e.dispose(t),Object(u.L)(t._disposables,e)}catch(e){}})))},e.prototype.plugin=function(e,t){void 0===t&&(t={});var n=new e(this,t);if(!n.name)throw new Error("Required property `name` missing on plugin: "+n);return this._disposables.push(n),this._plugins[n.name]=n},e.prototype.getPlugin=function(e){return e?this._plugins[e]:Object(u.U)(this._plugins)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return l}));var r=n(4),i=n(32),o=n(28),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},s=function(){function e(e){this.router=e}return e.prototype.fromConfig=function(e,t,n){return new o.Param(e,t,o.DefType.CONFIG,this.router.urlService.config,n)},e.prototype.fromPath=function(e,t,n){return new o.Param(e,t,o.DefType.PATH,this.router.urlService.config,n)},e.prototype.fromSearch=function(e,t,n){return new o.Param(e,t,o.DefType.SEARCH,this.router.urlService.config,n)},e}(),l=function(){function e(e){var t=this;this.router=e,this.paramFactory=new s(this.router),this.UrlMatcher=i.a,this.Param=o.Param,this.caseInsensitive=function(e){return t.router.urlService.config.caseInsensitive(e)},this.defaultSquashPolicy=function(e){return t.router.urlService.config.defaultSquashPolicy(e)},this.strictMode=function(e){return t.router.urlService.config.strictMode(e)},this.type=function(e,n,r){return t.router.urlService.config.type(e,n,r)||t}}return e.prototype.compile=function(e,t){var n=this.router.urlService.config,o=t&&!t.state&&t.params;t=o?a({state:{params:o}},t):t;var s={strict:n._isStrictMode,caseInsensitive:n._isCaseInsensitive,decodeParams:n._decodeParams};return new i.a(e,n.paramTypes,this.paramFactory,Object(r.C)(s,t))},e.prototype.isMatcher=function(e){if(!Object(r.Z)(e))return!1;var t=!0;return Object(r.I)(i.a.prototype,(function(n,i){Object(r.U)(n)&&(t=t&&Object(r.T)(e[i])&&Object(r.U)(e[i]))})),t},e.prototype.$get=function(){var e=this.router.urlService.config;return e.paramTypes.enqueue=!1,e.paramTypes._flushTypeQueue(),this},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),i=n(54);var o=function(){function e(e){var t=this;this.router=e,this.sync=function(e){return t.router.urlService.sync(e)},this.listen=function(e){return t.router.urlService.listen(e)},this.deferIntercept=function(e){return t.router.urlService.deferIntercept(e)},this.match=function(e){return t.router.urlService.match(e)},this.initial=function(e){return t.router.urlService.rules.initial(e)},this.otherwise=function(e){return t.router.urlService.rules.otherwise(e)},this.removeRule=function(e){return t.router.urlService.rules.removeRule(e)},this.rule=function(e){return t.router.urlService.rules.rule(e)},this.rules=function(){return t.router.urlService.rules.rules()},this.sort=function(e){return t.router.urlService.rules.sort(e)},this.when=function(e,n,r){return t.router.urlService.rules.when(e,n,r)},this.urlRuleFactory=new i.b(e)}return e.prototype.update=function(e){var t=this.router.locationService;e?this.location=t.url():t.url()!==this.location&&t.url(this.location,!0)},e.prototype.push=function(e,t,n){var r=n&&!!n.replace;this.router.urlService.url(e.format(t||{}),r)},e.prototype.href=function(e,t,n){var i=e.format(t);if(null==i)return null;n=n||{absolute:!1};var o=this.router.urlService.config,a=o.html5Mode();if(a||null===i||(i="#"+o.hashPrefix()+i),i=function(e,t,n,i){return"/"===i?e:t?Object(r.Kb)(i)+e:n?i.slice(1)+e:e}(i,a,n.absolute,o.baseHref()),!n.absolute||!i)return i;var s=!a&&i?"/":"",l=o.port(),c=80===l||443===l?"":":"+l;return[o.protocol(),"://",o.host(),c,s,i].join("")},Object.defineProperty(e.prototype,"interceptDeferred",{get:function(){return this.router.urlService.interceptDeferred},enumerable:!1,configurable:!0}),e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),i=n(3),o=n(1),a=n(10),s=function(){function e(e){var t=this;this.router=e,this._uiViews=[],this._viewConfigs=[],this._viewConfigFactories={},this._listeners=[],this._pluginapi={_rootViewContext:this._rootViewContext.bind(this),_viewConfigFactory:this._viewConfigFactory.bind(this),_registeredUIView:function(e){return Object(r.t)(t._uiViews,(function(n){return t.router.$id+"."+n.id===e}))},_registeredUIViews:function(){return t._uiViews},_activeViewConfigs:function(){return t._viewConfigs},_onSync:function(e){return t._listeners.push(e),function(){return Object(r.L)(t._listeners,e)}}}}return e.normalizeUIViewTarget=function(e,t){void 0===t&&(t="");var n=t.split("@"),r=n[0]||"$default",i=Object(o.l)(n[1])?n[1]:"^",a=/^(\^(?:\.\^)*)\.(.*$)/.exec(r);a&&(i=a[1],r=a[2]),"!"===r.charAt(0)&&(r=r.substr(1),i="");if(/^(\^(?:\.\^)*)$/.exec(i)){var s=i.split(".").reduce((function(e,t){return e.parent}),e);i=s.name}else"."===i&&(i=e.name);return{uiViewName:r,uiViewContextAnchor:i}},e.prototype._rootViewContext=function(e){return this._rootContext=e||this._rootContext},e.prototype._viewConfigFactory=function(e,t){this._viewConfigFactories[e]=t},e.prototype.createViewConfig=function(e,t){var n=this._viewConfigFactories[t.$type];if(!n)throw new Error("ViewService: No view config factory registered for type "+t.$type);var r=n(e,t);return Object(o.a)(r)?r:[r]},e.prototype.deactivateViewConfig=function(e){a.c.traceViewServiceEvent("<- Removing",e),Object(r.L)(this._viewConfigs,e)},e.prototype.activateViewConfig=function(e){a.c.traceViewServiceEvent("-> Registering",e),this._viewConfigs.push(e)},e.prototype.sync=function(){var t=this,n=this._uiViews.map((function(e){return[e.fqn,e]})).reduce(r.h,{});function o(e){for(var t=e.viewDecl.$context,n=0;++n&&t.parent;)t=t.parent;return n}var s=Object(i.e)((function(e,t,n,r){return t*(e(n)-e(r))})),l=this._uiViews.sort(s((function(e){var t=function(e){return e&&e.parent?t(e.parent)+1:1};return 1e4*e.fqn.split(".").length+t(e.creationContext)}),1)).map((function(r){var i=t._viewConfigs.filter(e.matches(n,r));return i.length>1&&i.sort(s(o,-1)),{uiView:r,viewConfig:i[0]}})),c=l.map((function(e){return e.viewConfig})),u=this._viewConfigs.filter((function(e){return!Object(r.z)(c,e)})).map((function(e){return{uiView:void 0,viewConfig:e}}));l.forEach((function(e){-1!==t._uiViews.indexOf(e.uiView)&&e.uiView.configUpdated(e.viewConfig)}));var d=l.concat(u);this._listeners.forEach((function(e){return e(d)})),a.c.traceViewSync(d)},e.prototype.registerUIView=function(e){a.c.traceViewServiceUIViewEvent("-> Registering",e);var t=this._uiViews;return t.filter((function(t){return t.fqn===e.fqn&&t.$type===e.$type})).length&&a.c.traceViewServiceUIViewEvent("!!!! duplicate uiView named:",e),t.push(e),this.sync(),function(){-1!==t.indexOf(e)?(a.c.traceViewServiceUIViewEvent("<- Deregistering",e),Object(r.L)(t)(e)):a.c.traceViewServiceUIViewEvent("Tried removing non-registered uiView",e)}},e.prototype.available=function(){return this._uiViews.map(Object(i.n)("fqn"))},e.prototype.active=function(){return this._uiViews.filter(Object(i.n)("$config")).map(Object(i.n)("name"))},e.matches=function(e,t){return function(n){if(t.$type!==n.viewDecl.$type)return!1;var i=n.viewDecl,o=i.$uiViewName.split("."),a=t.fqn.split(".");if(!Object(r.q)(o,a.slice(0-o.length)))return!1;var s=1-o.length||void 0,l=a.slice(0,s).join("."),c=e[l].creationContext;return i.$uiViewContextAnchor===(c&&c.name)}},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(92),i=n(50),o=function(){function e(){this.params=new r.a,this.lastStartedTransitionId=-1,this.transitionHistory=new i.a([],1),this.successfulTransitions=new i.a([],1)}return e.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(4),i=n(105),o=n(106),a=n(43),s=function(){function e(e){var t=this;this.router=e,this.interceptDeferred=!1,this.rules=new i.a(this.router),this.config=new o.a(this.router),this.url=function(e,n,r){return t.router.locationService.url(e,n,r)},this.path=function(){return t.router.locationService.path()},this.search=function(){return t.router.locationService.search()},this.hash=function(){return t.router.locationService.hash()},this.onChange=function(e){return t.router.locationService.onChange(e)}}return e.prototype.dispose=function(){this.listen(!1),this.rules.dispose()},e.prototype.parts=function(){return{path:this.path(),search:this.search(),hash:this.hash()}},e.prototype.sync=function(e){if(!e||!e.defaultPrevented){var t=this.router,n=t.urlService,i=t.stateService,o={path:n.path(),search:n.search(),hash:n.hash()},s=this.match(o);Object(r.sb)([[r.cb,function(e){return n.url(e,!0)}],[a.TargetState.isDef,function(e){return i.go(e.state,e.params,e.options)}],[Object(r.Q)(a.TargetState),function(e){return i.go(e.state(),e.params(),e.options())}]])(s&&s.rule.handler(s.match,o,this.router))}},e.prototype.listen=function(e){var t=this;if(!1!==e)return this._stopListeningFn=this._stopListeningFn||this.router.urlService.onChange((function(e){return t.sync(e)}));this._stopListeningFn&&this._stopListeningFn(),delete this._stopListeningFn},e.prototype.deferIntercept=function(e){void 0===e&&(e=!0),this.interceptDeferred=e},e.prototype.match=function(e){var t=this;e=Object(r.C)({path:"",search:{},hash:""},e);for(var n,i,o,a=this.rules.rules(),s=0;s<a.length&&(!n||n.rule._group===a[s]._group);s++){var l=(i=a[s],o=void 0,(o=i.match(e,t.router))&&{match:o,rule:i,weight:i.matchPriority(o)});n=!n||l&&l.weight>n.weight?l:n}return n},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r,i=n(43),o=n(32),a=n(4),s=n(54);function l(e){if(!(Object(a.U)(e)||Object(a.cb)(e)||Object(a.Q)(i.TargetState)(e)||i.TargetState.isDef(e)))throw new Error("'handler' must be a string, function, TargetState, or have a state: 'newtarget' property");return Object(a.U)(e)?e:Object(a.Sb)(e)}r=function(e,t){var n=function(e,t){return(t.priority||0)-(e.priority||0)}(e,t);return 0!==n||0!==(n=function(e,t){var n={STATE:4,URLMATCHER:4,REGEXP:3,RAW:2,OTHER:1};return(n[e.type]||0)-(n[t.type]||0)}(e,t))||0!==(n=function(e,t){return e.urlMatcher&&t.urlMatcher?o.a.compare(e.urlMatcher,t.urlMatcher):0}(e,t))?n:function(e,t){var n={STATE:!0,URLMATCHER:!0};return n[e.type]&&n[t.type]?0:(e.$id||0)-(t.$id||0)}(e,t)};var c=function(){function e(e){this.router=e,this._sortFn=r,this._rules=[],this._id=0,this.urlRuleFactory=new s.b(e)}return e.prototype.dispose=function(e){this._rules=[],delete this._otherwiseFn},e.prototype.initial=function(e){var t=l(e);this.rule(this.urlRuleFactory.create((function(e,t){return 0===t.globals.transitionHistory.size()&&!!/^\/?$/.exec(e.path)}),t))},e.prototype.otherwise=function(e){var t=l(e);this._otherwiseFn=this.urlRuleFactory.create(Object(a.Sb)(!0),t),this._sorted=!1},e.prototype.removeRule=function(e){Object(a.Ab)(this._rules,e)},e.prototype.rule=function(e){var t=this;if(!s.b.isUrlRule(e))throw new Error("invalid rule");return e.$id=this._id++,e.priority=e.priority||0,this._rules.push(e),this._sorted=!1,function(){return t.removeRule(e)}},e.prototype.rules=function(){return this.ensureSorted(),this._rules.concat(this._otherwiseFn?[this._otherwiseFn]:[])},e.prototype.sort=function(e){for(var t=this.stableSort(this._rules,this._sortFn=e||this._sortFn),n=0,r=0;r<t.length;r++)t[r]._group=n,r<t.length-1&&0!==this._sortFn(t[r],t[r+1])&&n++;this._rules=t,this._sorted=!0},e.prototype.ensureSorted=function(){this._sorted||this.sort()},e.prototype.stableSort=function(e,t){var n=e.map((function(e,t){return{elem:e,idx:t}}));return n.sort((function(e,n){var r=t(e.elem,n.elem);return 0===r?e.idx-n.idx:r})),n.map((function(e){return e.elem}))},e.prototype.when=function(e,t,n){var r=this.urlRuleFactory.create(e,t);return Object(a.T)(n&&n.priority)&&(r.priority=n.priority),this.rule(r),r},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(28),i=n(4),o=function(){function e(e){var t=this;this.router=e,this.paramTypes=new r.ParamTypes,this._decodeParams=!0,this._isCaseInsensitive=!1,this._isStrictMode=!0,this._defaultSquashPolicy=!1,this.dispose=function(){return t.paramTypes.dispose()},this.baseHref=function(){return t.router.locationConfig.baseHref()},this.hashPrefix=function(e){return t.router.locationConfig.hashPrefix(e)},this.host=function(){return t.router.locationConfig.host()},this.html5Mode=function(){return t.router.locationConfig.html5Mode()},this.port=function(){return t.router.locationConfig.port()},this.protocol=function(){return t.router.locationConfig.protocol()}}return e.prototype.caseInsensitive=function(e){return this._isCaseInsensitive=Object(i.T)(e)?e:this._isCaseInsensitive},e.prototype.defaultSquashPolicy=function(e){if(Object(i.T)(e)&&!0!==e&&!1!==e&&!Object(i.cb)(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return this._defaultSquashPolicy=Object(i.T)(e)?e:this._defaultSquashPolicy},e.prototype.strictMode=function(e){return this._isStrictMode=Object(i.T)(e)?e:this._isStrictMode},e.prototype.type=function(e,t,n){var r=this.paramTypes.type(e,t,n);return Object(i.T)(t)?this:r},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(17),i=function(e,t,n,i,o,a,s,l){void 0===o&&(o=!1),void 0===a&&(a=r.a.HANDLE_RESULT),void 0===s&&(s=r.a.REJECT_ERROR),void 0===l&&(l=!1),this.name=e,this.hookPhase=t,this.hookOrder=n,this.criteriaMatchPath=i,this.reverseSort=o,this.getResultHandler=a,this.getErrorHandler=s,this.synchronous=l}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r,i=n(4),o=n(42),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e){function t(t){var n=e.call(this,t,!1)||this;return i.Bb.addEventListener("hashchange",n._listener,!1),n}return a(t,e),t.prototype._get=function(){return Object(i.Ob)(this._location.hash)},t.prototype._set=function(e,t,n,r){this._location.hash=n},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),i.Bb.removeEventListener("hashchange",this._listener)},t}(o.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r,i=n(42),o=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=function(e){function t(t){return e.call(this,t,!0)||this}return o(t,e),t.prototype._get=function(){return this._url},t.prototype._set=function(e,t,n,r){this._url=n},t}(i.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r,i=n(42),o=n(4),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e){function t(t){var n=e.call(this,t,!0)||this;return n._config=t.urlService.config,o.Bb.addEventListener("popstate",n._listener,!1),n}return a(t,e),t.prototype._getBasePrefix=function(){return Object(o.Kb)(this._config.baseHref())},t.prototype._get=function(){var e=this._location,t=e.pathname,n=e.hash,r=e.search;r=Object(o.Ib)(r)[1],n=Object(o.Gb)(n)[1];var i=this._getBasePrefix(),a=t===this._config.baseHref(),s=t.substr(0,i.length)===i;return(t=a?"/":s?t.substring(i.length):t)+(r?"?"+r:"")+(n?"#"+n:"")},t.prototype._set=function(e,t,n,r){var i=this._getBasePrefix(),o=n&&"/"!==n[0]?"/":"",a=""===n||"/"===n?this._config.baseHref():i+o+n;r?this._history.replaceState(e,t,a):this._history.pushState(e,t,a)},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),o.Bb.removeEventListener("popstate",this._listener)},t}(i.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(1),i=n(0),o=function(){var e=this;this.dispose=i.E,this._baseHref="",this._port=80,this._protocol="http",this._host="localhost",this._hashPrefix="",this.port=function(){return e._port},this.protocol=function(){return e._protocol},this.host=function(){return e._host},this.baseHref=function(){return e._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(t){return Object(r.c)(t)?e._hashPrefix=t:e._hashPrefix}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(2),i=function(){function e(t,n){this.stateRegistry=t,this.stateService=n,Object(r.createProxyFunctions)(Object(r.val)(e.prototype),this,Object(r.val)(this))}return e.prototype.decorator=function(e,t){return this.stateRegistry.decorator(e,t)||this},e.prototype.state=function(e,t){return Object(r.isObject)(e)?t=e:t.name=e,this.stateRegistry.register(t),this},e.prototype.onInvalid=function(e){return this.stateService.onInvalid(e)},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(2),i=function(){function e(e){this.router=e}return e.injectableHandler=function(e,t){return function(n){return r.services.$injector.invoke(t,null,{$match:n,$stateParams:e.globals.params})}},e.prototype.$get=function(){var e=this.router.urlService;return this.router.urlRouter.update(!0),e.interceptDeferred||e.listen(),this.router.urlRouter},e.prototype.rule=function(e){var t=this;if(!Object(r.isFunction)(e))throw new Error("'rule' must be a function");var n=new r.BaseUrlRule((function(){return e(r.services.$injector,t.router.locationService)}),r.identity);return this.router.urlService.rules.rule(n),this},e.prototype.otherwise=function(e){var t=this,n=this.router.urlService.rules;if(Object(r.isString)(e))n.otherwise(e);else{if(!Object(r.isFunction)(e))throw new Error("'rule' must be a string or function");n.otherwise((function(){return e(r.services.$injector,t.router.locationService)}))}return this},e.prototype.when=function(t,n){return(Object(r.isArray)(n)||Object(r.isFunction)(n))&&(n=e.injectableHandler(this.router,n)),this.router.urlService.rules.when(t,n),this},e.prototype.deferIntercept=function(e){this.router.urlService.deferIntercept(e)},e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return k})),n.d(t,"a",(function(){return A}));var r=n(12),i=n(2),o=n(55),a=function(){function e(){var e=this;this._useHttp=r.a.version.minor<3,this.$get=["$http","$templateCache","$injector",function(t,n,r){return e.$templateRequest=r.has&&r.has("$templateRequest")&&r.get("$templateRequest"),e.$http=t,e.$templateCache=n,e}]}return e.prototype.useHttpService=function(e){this._useHttp=e},e.prototype.fromConfig=function(e,t,n){var r=function(e){return i.services.$q.when(e).then((function(e){return{template:e}}))},o=function(e){return i.services.$q.when(e).then((function(e){return{component:e}}))};return Object(i.isDefined)(e.template)?r(this.fromString(e.template,t)):Object(i.isDefined)(e.templateUrl)?r(this.fromUrl(e.templateUrl,t)):Object(i.isDefined)(e.templateProvider)?r(this.fromProvider(e.templateProvider,t,n)):Object(i.isDefined)(e.component)?o(e.component):Object(i.isDefined)(e.componentProvider)?o(this.fromComponentProvider(e.componentProvider,t,n)):r("<ui-view></ui-view>")},e.prototype.fromString=function(e,t){return Object(i.isFunction)(e)?e(t):e},e.prototype.fromUrl=function(e,t){return Object(i.isFunction)(e)&&(e=e(t)),null==e?null:this._useHttp?this.$http.get(e,{cache:this.$templateCache,headers:{Accept:"text/html"}}).then((function(e){return e.data})):this.$templateRequest(e)},e.prototype.fromProvider=function(e,t,n){var r=i.services.$injector.annotate(e),o=Object(i.isArray)(e)?Object(i.tail)(e):e;return new i.Resolvable("",o,r).get(n)},e.prototype.fromComponentProvider=function(e,t,n){var r=i.services.$injector.annotate(e),o=Object(i.isArray)(e)?Object(i.tail)(e):e;return new i.Resolvable("",o,r).get(n)},e.prototype.makeComponentTemplate=function(e,t,n,o){o=o||{};var a=r.a.version.minor>=3?"::":"",l=function(e){var t=Object(i.kebobString)(e);return/^(x|data)-/.exec(t)?"x-"+t:t},c=function(e){var t=i.services.$injector.get(e+"Directive");if(!t||!t.length)throw new Error("Unable to find component named '"+e+"'");return t.map(s).reduce(i.unnestR,[])}(n).map((function(n){var r=n.name,s=n.type,c=l(r);if(e.attr(c)&&!o[r])return c+"='"+e.attr(c)+"'";var u=o[r]||r;if("@"===s)return c+"='{{"+a+"$resolve."+u+"}}'";if("&"===s){var d=t.getResolvable(u),p=d&&d.data,f=p&&i.services.$injector.annotate(p)||[];return c+"='$resolve."+u+(Object(i.isArray)(p)?"["+(p.length-1)+"]":"")+"("+f.join(",")+")'"}return c+"='"+a+"$resolve."+u+"'"})).join(" "),u=l(n);return"<"+u+" "+c+"></"+u+">"},e}();var s=function(e){return Object(i.isObject)(e.bindToController)?l(e.bindToController):l(e.scope)},l=function(e){return Object.keys(e||{}).map((function(t){return[t,/^([=<@&])[?]?(.*)/.exec(e[t])]})).filter((function(e){return Object(i.isDefined)(e)&&Object(i.isArray)(e[1])})).map((function(e){return{name:e[1][2]||e[0],type:e[1][1]}}))},c=n(112),u=function(e){return function(t){var n=t[e],r="onExit"===e?"from":"to";return n?function(e,t){var o=new i.ResolveContext(e.treeChanges(r)).subContext(t.$$state()),a=Object(i.extend)(A(o),{$state$:t,$transition$:e});return i.services.$injector.invoke(n,this,a)}:void 0}},d=function(){function e(e){this._urlListeners=[],this.$locationProvider=e;var t=Object(i.val)(e);Object(i.createProxyFunctions)(t,this,t,["hashPrefix"])}return e.monkeyPatchPathParameterType=function(e){var t=e.urlMatcherFactory.type("path");t.encode=function(e){return null!=e?e.toString().replace(/(~|\/)/g,(function(e){return{"~":"~~","/":"~2F"}[e]})):e},t.decode=function(e){return null!=e?e.toString().replace(/(~~|~2F)/g,(function(e){return{"~~":"~","~2F":"/"}[e]})):e}},e.prototype.dispose=function(){},e.prototype.onChange=function(e){var t=this;return this._urlListeners.push(e),function(){return Object(i.removeFrom)(t._urlListeners)(e)}},e.prototype.html5Mode=function(){var e=this.$locationProvider.html5Mode();return(e=Object(i.isObject)(e)?e.enabled:e)&&this.$sniffer.history},e.prototype.baseHref=function(){return this._baseHref||(this._baseHref=this.$browser.baseHref()||this.$window.location.pathname)},e.prototype.url=function(e,t,n){return void 0===t&&(t=!1),Object(i.isDefined)(e)&&this.$location.url(e),t&&this.$location.replace(),n&&this.$location.state(n),this.$location.url()},e.prototype._runtimeServices=function(e,t,n,r,o){var a=this;this.$location=t,this.$sniffer=n,this.$browser=r,this.$window=o,e.$on("$locationChangeSuccess",(function(e){return a._urlListeners.forEach((function(t){return t(e)}))}));var s=Object(i.val)(t);Object(i.createProxyFunctions)(s,this,s,["replace","path","search","hash"]),Object(i.createProxyFunctions)(s,this,s,["port","protocol","host"])},e}(),p=n(113);r.a.module("ui.router.angular1",[]);var f=r.a.module("ui.router.init",["ng"]),h=r.a.module("ui.router.util",["ui.router.init"]),g=r.a.module("ui.router.router",["ui.router.util"]),m=r.a.module("ui.router.state",["ui.router.router","ui.router.util","ui.router.angular1"]),v=r.a.module("ui.router",["ui.router.init","ui.router.state","ui.router.angular1"]),b=(r.a.module("ui.router.compat",["ui.router"]),null);function y(e){(b=this.router=new i.UIRouter).stateProvider=new c.a(b.stateRegistry,b.stateService),b.stateRegistry.decorator("views",o.c),b.stateRegistry.decorator("onExit",u("onExit")),b.stateRegistry.decorator("onRetain",u("onRetain")),b.stateRegistry.decorator("onEnter",u("onEnter")),b.viewService._pluginapi._viewConfigFactory("ng1",Object(o.b)()),b.urlService.config._decodeParams=!1;var t=b.locationService=b.locationConfig=new d(e);function n(e,n,r,i,o,a,s){return t._runtimeServices(o,e,i,n,r),delete b.router,delete b.$get,b}return d.monkeyPatchPathParameterType(b),b.router=b,b.$get=n,n.$inject=["$location","$browser","$window","$sniffer","$rootScope","$http","$templateCache"],b}y.$inject=["$locationProvider"];var x=function(e){return["$uiRouterProvider",function(t){var n=t.router[e];return n.$get=function(){return n},n}]};function w(e,t,n){if(i.services.$injector=e,i.services.$q=t,!Object.prototype.hasOwnProperty.call(e,"strictDi"))try{e.invoke((function(e){}))}catch(t){e.strictDi=!!/strict mode/.exec(t&&t.toString())}n.stateRegistry.get().map((function(e){return e.$$state().resolvables})).reduce(i.unnestR,[]).filter((function(e){return"deferred"===e.deps})).forEach((function(t){return t.deps=e.annotate(t.resolveFn,e.strictDi)}))}w.$inject=["$injector","$q","$uiRouter"];function k(e){e.$watch((function(){i.trace.approximateDigests++}))}k.$inject=["$rootScope"],f.provider("$uiRouter",y),g.provider("$urlRouter",["$uiRouterProvider",function(e){return e.urlRouterProvider=new p.a(e)}]),h.provider("$urlService",x("urlService")),h.provider("$urlMatcherFactory",["$uiRouterProvider",function(){return b.urlMatcherFactory}]),h.provider("$templateFactory",(function(){return new a})),m.provider("$stateRegistry",x("stateRegistry")),m.provider("$uiRouterGlobals",x("globals")),m.provider("$transitions",x("transitionService")),m.provider("$state",["$uiRouterProvider",function(){return Object(i.extend)(b.stateProvider,{$get:function(){return b.stateService}})}]),m.factory("$stateParams",["$uiRouter",function(e){return e.globals.params}]),v.factory("$view",(function(){return b.viewService})),v.service("$trace",(function(){return i.trace})),v.run(k),h.run(["$urlMatcherFactory",function(e){}]),m.run(["$state",function(e){}]),g.run(["$urlRouter",function(e){}]),f.run(w);var A=function(e){return e.getTokens().filter(i.isString).map((function(t){var n=e.getResolvable(t);return[t,"NOWAIT"===e.getPolicy(n).async?n.promise:n.data]})).reduce(i.applyPairs,{})}},function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a}));var r=n(6),i=function(e){var t=e.router;var n=e.entering().filter((function(e){return!!e.$$state().lazyLoad})).map((function(t){return a(e,t)}));return r.b.$q.all(n).then((function(){if("url"!==e.originalTransition().options().source){var n=e.targetState();return t.stateService.target(n.identifier(),n.params(),n.options())}var r=t.urlService,i=r.match(r.parts()),o=i&&i.rule;if(o&&"STATE"===o.type){var a=o.state,s=i.match;return t.stateService.target(a,s,e.options())}t.urlService.sync()}))},o=function(e){return e.onBefore({entering:function(e){return!!e.lazyLoad}},i)};function a(e,t){var n=t.$$state().lazyLoad,i=n._promise;if(!i){i=n._promise=r.b.$q.when(n(e,t)).then((function(t){t&&Array.isArray(t.states)&&t.states.forEach((function(t){return e.router.stateRegistry.register(t)}));return t})).then((function(e){return delete t.lazyLoad,delete t.$$state().lazyLoad,delete n._promise,e}),(function(e){return delete n._promise,r.b.$q.reject(e)}))}return i}},function(e,t,n){"use strict";var r=n(22);e.exports=i;function i(e){this._isDirected=!r.has(e,"directed")||e.directed,this._isMultigraph=!!r.has(e,"multigraph")&&e.multigraph,this._isCompound=!!r.has(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=r.constant(void 0),this._defaultEdgeLabelFn=r.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function o(e,t){e[t]?e[t]++:e[t]=1}function a(e,t){--e[t]||delete e[t]}function s(e,t,n,i){var o=""+t,a=""+n;if(!e&&o>a){var s=o;o=a,a=s}return o+""+a+""+(r.isUndefined(i)?"\0":i)}function l(e,t,n,r){var i=""+t,o=""+n;if(!e&&i>o){var a=i;i=o,o=a}var s={v:i,w:o};return r&&(s.name=r),s}function c(e,t){return s(e,t.v,t.w,t.name)}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultNodeLabelFn=e,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return r.keys(this._nodes)},i.prototype.sources=function(){var e=this;return r.filter(this.nodes(),(function(t){return r.isEmpty(e._in[t])}))},i.prototype.sinks=function(){var e=this;return r.filter(this.nodes(),(function(t){return r.isEmpty(e._out[t])}))},i.prototype.setNodes=function(e,t){var n=arguments,i=this;return r.each(e,(function(e){n.length>1?i.setNode(e,t):i.setNode(e)})),this},i.prototype.setNode=function(e,t){return r.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(e){return r.has(this._nodes,e)},i.prototype.removeNode=function(e){var t=this;if(r.has(this._nodes,e)){var n=function(e){t.removeEdge(t._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],r.each(this.children(e),(function(e){t.setParent(e)})),delete this._children[e]),r.each(r.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],r.each(r.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},i.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r.isUndefined(t))t="\0";else{for(var n=t+="";!r.isUndefined(n);n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if("\0"!==t)return t}},i.prototype.children=function(e){if(r.isUndefined(e)&&(e="\0"),this._isCompound){var t=this._children[e];if(t)return r.keys(t)}else{if("\0"===e)return this.nodes();if(this.hasNode(e))return[]}},i.prototype.predecessors=function(e){var t=this._preds[e];if(t)return r.keys(t)},i.prototype.successors=function(e){var t=this._sucs[e];if(t)return r.keys(t)},i.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return r.union(t,this.successors(e))},i.prototype.isLeaf=function(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length},i.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;r.each(this._nodes,(function(n,r){e(r)&&t.setNode(r,n)})),r.each(this._edgeObjs,(function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))}));var i={};return this._isCompound&&r.each(t.nodes(),(function(e){t.setParent(e,function e(r){var o=n.parent(r);return void 0===o||t.hasNode(o)?(i[r]=o,o):o in i?i[o]:e(o)}(e))})),t},i.prototype.setDefaultEdgeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultEdgeLabelFn=e,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return r.values(this._edgeObjs)},i.prototype.setPath=function(e,t){var n=this,i=arguments;return r.reduce(e,(function(e,r){return i.length>1?n.setEdge(e,r,t):n.setEdge(e,r),r})),this},i.prototype.setEdge=function(){var e,t,n,i,a=!1,c=arguments[0];"object"==typeof c&&null!==c&&"v"in c?(e=c.v,t=c.w,n=c.name,2===arguments.length&&(i=arguments[1],a=!0)):(e=c,t=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,t=""+t,r.isUndefined(n)||(n=""+n);var u=s(this._isDirected,e,t,n);if(r.has(this._edgeLabels,u))return a&&(this._edgeLabels[u]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[u]=a?i:this._defaultEdgeLabelFn(e,t,n);var d=l(this._isDirected,e,t,n);return e=d.v,t=d.w,Object.freeze(d),this._edgeObjs[u]=d,o(this._preds[t],e),o(this._sucs[e],t),this._in[t][u]=d,this._out[e][u]=d,this._edgeCount++,this},i.prototype.edge=function(e,t,n){var r=1===arguments.length?c(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(e,t,n){var i=1===arguments.length?c(this._isDirected,arguments[0]):s(this._isDirected,e,t,n);return r.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,n){var r=1===arguments.length?c(this._isDirected,arguments[0]):s(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],a(this._preds[t],e),a(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},i.prototype.inEdges=function(e,t){var n=this._in[e];if(n){var i=r.values(n);return t?r.filter(i,(function(e){return e.v===t})):i}},i.prototype.outEdges=function(e,t){var n=this._out[e];if(n){var i=r.values(n);return t?r.filter(i,(function(e){return e.w===t})):i}},i.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}},function(e,t,n){var r=n(46)(n(31),"Map");e.exports=r},function(e,t,n){var r=n(265),i=n(272),o=n(274),a=n(275),s=n(276);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){(function(e){var r=n(150),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i&&r.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(80)(e))},function(e,t,n){var r=n(83),i=n(282),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t,n){var r=n(157),i=n(158),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return o.call(e,t)})))}:i;e.exports=s},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}},function(e,t,n){var r=n(163);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t,n){var r=n(128),i=n(41);e.exports=function(e,t){return e&&r(e,t,i)}},function(e,t,n){var r=n(301)();e.exports=r},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},function(e,t,n){var r=n(13),i=n(61),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!i(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},function(e,t,n){var r=n(124),i=n(335);e.exports=function e(t,n,o,a,s){var l=-1,c=t.length;for(o||(o=i),s||(s=[]);++l<c;){var u=t[l];n>0&&o(u)?n>1?e(u,n-1,o,a,s):r(s,u):a||(s[s.length]=u)}return s}},function(e,t,n){var r=n(61);e.exports=function(e,t,n){for(var i=-1,o=e.length;++i<o;){var a=e[i],s=t(a);if(null!=s&&(void 0===l?s==s&&!r(s):n(s,l)))var l=s,c=a}return c}},function(e,t){},function(e,t){},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r,i=n(0),o=n(1),a=n(3),s=n(6),l=n(51),c=function(){function e(){this.enqueue=!0,this.typeQueue=[],this.defaultTypes=Object(i.H)(e.prototype,["hash","string","query","path","int","bool","date","json","any"]);this.types=Object(i.A)(Object(i.B)(this.defaultTypes,(function(e,t){return new l.a(Object(i.r)({name:t},e))})),{})}return e.prototype.dispose=function(){this.types={}},e.prototype.type=function(e,t,n){if(!Object(o.c)(t))return this.types[e];if(this.types.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return this.types[e]=new l.a(Object(i.r)({name:e},t)),n&&(this.typeQueue.push({name:e,def:n}),this.enqueue||this._flushTypeQueue()),this},e.prototype._flushTypeQueue=function(){for(;this.typeQueue.length;){var e=this.typeQueue.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");Object(i.r)(this.types[e.name],s.b.$injector.invoke(e.def))}},e}();r=function(e){var t=function(e){return null!=e?e.toString():e},n={encode:t,decode:t,is:Object(a.h)(String),pattern:/.*/,equals:function(e,t){return e==t}};return Object(i.r)({},n,e)},Object(i.r)(c.prototype,{string:r({}),path:r({pattern:/[^/]*/}),query:r({}),hash:r({inherit:!1}),int:r({decode:function(e){return parseInt(e,10)},is:function(e){return!Object(o.g)(e)&&this.decode(e.toString())===e},pattern:/-?\d+/}),bool:r({encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:Object(a.h)(Boolean),pattern:/0|1/}),date:r({encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):void 0},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):void 0},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return["getFullYear","getMonth","getDate"].reduce((function(n,r){return n&&e[r]()===t[r]()}),!0)},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/}),json:r({encode:i.Q,decode:i.x,is:Object(a.h)(Object),equals:i.q,pattern:/[^/]*/}),any:r({encode:i.y,decode:i.y,is:function(){return!0},equals:i.q})})},function(e,t,n){"use strict";var r=n(52);n.d(t,"a",(function(){return r.a}));var i=n(18);n.d(t,"b",(function(){return i.a}))},function(e,t){},function(e,t,n){"use strict";var r=n(14);n.d(t,"h",(function(){return r.a})),n.d(t,"i",(function(){return r.b}));var i=n(98);n.d(t,"a",(function(){return i.a}));var o=n(45);n.d(t,"b",(function(){return o.a})),n.d(t,"l",(function(){return o.b})),n.d(t,"m",(function(){return o.c}));var a=n(9);n.d(t,"c",(function(){return a.a})),n.d(t,"d",(function(){return a.b}));var s=n(53);n.d(t,"e",(function(){return s.a}));var l=n(17);n.d(t,"g",(function(){return l.a}));var c=n(107);n.d(t,"f",(function(){return c.a}));var u=n(56);n.d(t,"j",(function(){return u.a})),n.d(t,"k",(function(){return u.b}))},function(e,t,n){"use strict";n.r(t);var r=n(140);for(var i in r)["default","UrlRules","UrlConfig"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(32);n.d(t,"UrlMatcher",(function(){return o.a}));var a=n(100);n.d(t,"ParamFactory",(function(){return a.a})),n.d(t,"UrlMatcherFactory",(function(){return a.b}));var s=n(101);n.d(t,"UrlRouter",(function(){return s.a}));var l=n(54);n.d(t,"UrlRuleFactory",(function(){return l.b})),n.d(t,"BaseUrlRule",(function(){return l.a}));var c=n(104);n.d(t,"UrlService",(function(){return c.a}));var u=n(105);n.d(t,"UrlRules",(function(){return u.a}));var d=n(106);n.d(t,"UrlConfig",(function(){return d.a}))},function(e,t){},function(e,t,n){"use strict";n.r(t);var r=n(142);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(102);n.d(t,"ViewService",(function(){return o.a}))},function(e,t){},function(e,t,n){"use strict";n.r(t);var r=n(144);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i)},function(e,t,n){"use strict";n.r(t);var r=n(145);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(70);n.d(t,"$q",(function(){return o.a}));var a=n(71);n.d(t,"$injector",(function(){return a.a}));var s=n(42);n.d(t,"BaseLocationServices",(function(){return s.a}));var l=n(108);n.d(t,"HashLocationService",(function(){return l.a}));var c=n(109);n.d(t,"MemoryLocationService",(function(){return c.a}));var u=n(110);n.d(t,"PushStateLocationService",(function(){return u.a}));var d=n(111);n.d(t,"MemoryLocationConfig",(function(){return d.a}));var p=n(72);n.d(t,"BrowserLocationConfig",(function(){return p.a}));var f=n(29);n.d(t,"keyValsToObjectR",(function(){return f.c})),n.d(t,"getParams",(function(){return f.b})),n.d(t,"parseUrl",(function(){return f.e})),n.d(t,"buildUrl",(function(){return f.a})),n.d(t,"locationPluginFactory",(function(){return f.d}));var h=n(146);n.d(t,"servicesPlugin",(function(){return h.d})),n.d(t,"hashLocationPlugin",(function(){return h.a})),n.d(t,"pushStateLocationPlugin",(function(){return h.c})),n.d(t,"memoryLocationPlugin",(function(){return h.b}))},function(e,t){},function(e,t,n){"use strict";n.d(t,"d",(function(){return p})),n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return h})),n.d(t,"b",(function(){return g}));var r=n(72),i=n(108),o=n(29),a=n(110),s=n(109),l=n(111),c=n(71),u=n(70),d=n(6);function p(e){return d.b.$injector=c.a,d.b.$q=u.a,{name:"vanilla.services",$q:u.a,$injector:c.a,dispose:function(){return null}}}var f=Object(o.d)("vanilla.hashBangLocation",!1,i.a,r.a),h=Object(o.d)("vanilla.pushStateLocation",!0,a.a,r.a),g=Object(o.d)("vanilla.memoryLocation",!1,s.a,l.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.prototype.dispose=function(e){},e}()},function(e,t,n){var r=n(247);e.exports={Graph:r.Graph,json:n(349),alg:n(350),version:r.version}},function(e,t,n){var r=n(73),i=n(119),o=n(78),a=n(277),s=n(283),l=n(155),c=n(156),u=n(286),d=n(287),p=n(160),f=n(288),h=n(60),g=n(292),m=n(293),v=n(165),b=n(13),y=n(59),x=n(297),w=n(23),k=n(299),A=n(41),E=n(48),S={};S["[object Arguments]"]=S["[object Array]"]=S["[object ArrayBuffer]"]=S["[object DataView]"]=S["[object Boolean]"]=S["[object Date]"]=S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Map]"]=S["[object Number]"]=S["[object Object]"]=S["[object RegExp]"]=S["[object Set]"]=S["[object String]"]=S["[object Symbol]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S["[object Error]"]=S["[object Function]"]=S["[object WeakMap]"]=!1,e.exports=function e(t,n,$,C,_,O){var T,j=1&n,P=2&n,D=4&n;if($&&(T=_?$(t,C,_,O):$(t)),void 0!==T)return T;if(!w(t))return t;var R=b(t);if(R){if(T=g(t),!j)return c(t,T)}else{var I=h(t),N="[object Function]"==I||"[object GeneratorFunction]"==I;if(y(t))return l(t,j);if("[object Object]"==I||"[object Arguments]"==I||N&&!_){if(T=P||N?{}:v(t),!j)return P?d(t,s(T,t)):u(t,a(T,t))}else{if(!S[I])return _?t:{};T=m(t,I,j)}}O||(O=new r);var M=O.get(t);if(M)return M;O.set(t,T),k(t)?t.forEach((function(r){T.add(e(r,n,$,r,t,O))})):x(t)&&t.forEach((function(r,i){T.set(i,e(r,n,$,i,t,O))}));var z=R?void 0:(D?P?f:p:P?E:A)(t);return i(z||t,(function(r,i){z&&(r=t[i=r]),o(T,i,e(r,n,$,i,t,O))})),T}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(35))},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(46),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},function(e,t,n){var r=n(278),i=n(66),o=n(13),a=n(59),s=n(81),l=n(67),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),u=!n&&i(e),d=!n&&!u&&a(e),p=!n&&!u&&!d&&l(e),f=n||u||d||p,h=f?r(e.length,String):[],g=h.length;for(var m in e)!t&&!c.call(e,m)||f&&("length"==m||d&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,g))||h.push(m);return h}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){(function(e){var r=n(31),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}}).call(this,n(80)(e))},function(e,t){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(124),i=n(84),o=n(123),a=n(158),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=i(e);return t}:a;e.exports=s},function(e,t,n){var r=n(161),i=n(123),o=n(41);e.exports=function(e){return r(e,o,i)}},function(e,t,n){var r=n(124),i=n(13);e.exports=function(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}},function(e,t,n){var r=n(46)(n(31),"Set");e.exports=r},function(e,t,n){var r=n(31).Uint8Array;e.exports=r},function(e,t,n){var r=n(125);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},function(e,t,n){var r=n(166),i=n(84),o=n(83);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(i(e))}},function(e,t,n){var r=n(23),i=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},function(e,t,n){e.exports=n(168)},function(e,t,n){var r=n(119),i=n(85),o=n(169),a=n(13);e.exports=function(e,t){return(a(e)?r:i)(e,o(t))}},function(e,t,n){var r=n(49);e.exports=function(e){return"function"==typeof e?e:r}},function(e,t,n){var r=n(157),i=n(303),o=n(37),a=n(13);e.exports=function(e,t){return(a(e)?r:i)(e,o(t,3))}},function(e,t,n){var r=n(306),i=n(34);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!i(t)&&!i(n)?t!=t&&n!=n:r(t,n,o,a,e,s))}},function(e,t,n){var r=n(173),i=n(309),o=n(174);e.exports=function(e,t,n,a,s,l){var c=1&n,u=e.length,d=t.length;if(u!=d&&!(c&&d>u))return!1;var p=l.get(e),f=l.get(t);if(p&&f)return p==t&&f==e;var h=-1,g=!0,m=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++h<u;){var v=e[h],b=t[h];if(a)var y=c?a(b,v,h,t,e,l):a(v,b,h,e,t,l);if(void 0!==y){if(y)continue;g=!1;break}if(m){if(!i(t,(function(e,t){if(!o(m,t)&&(v===e||s(v,e,n,a,l)))return m.push(t)}))){g=!1;break}}else if(v!==b&&!s(v,b,n,a,l)){g=!1;break}}return l.delete(e),l.delete(t),g}},function(e,t,n){var r=n(118),i=n(307),o=n(308);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=i,a.prototype.has=o,e.exports=a},function(e,t){e.exports=function(e,t){return e.has(t)}},function(e,t,n){var r=n(23);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},function(e,t,n){var r=n(319);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){var r=n(320),i=n(179);e.exports=function(e,t){return null!=e&&i(e,t,r)}},function(e,t,n){var r=n(87),i=n(66),o=n(13),a=n(81),s=n(120),l=n(68);e.exports=function(e,t,n){for(var c=-1,u=(t=r(t,e)).length,d=!1;++c<u;){var p=l(t[c]);if(!(d=null!=e&&n(e,p)))break;e=e[p]}return d||++c!=u?d:!!(u=null==e?0:e.length)&&s(u)&&a(p,u)&&(o(e)||i(e))}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var r=n(323),i=n(179);e.exports=function(e,t){return null!=e&&i(e,t,r)}},function(e,t){e.exports=function(e){return void 0===e}},function(e,t,n){var r=n(88),i=n(37),o=n(184),a=n(13);e.exports=function(e,t){return(a(e)?r:o)(e,i(t,3))}},function(e,t,n){var r=n(85),i=n(36);e.exports=function(e,t){var n=-1,o=i(e)?Array(e.length):[];return r(e,(function(e,r,i){o[++n]=t(e,r,i)})),o}},function(e,t,n){var r=n(325),i=n(85),o=n(37),a=n(326),s=n(13);e.exports=function(e,t,n){var l=s(e)?r:a,c=arguments.length<3;return l(e,o(t,4),n,c,i)}},function(e,t,n){var r=n(336),i=Math.max;e.exports=function(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=i(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=o[a];return c[t]=n(l),r(e,this,c)}}},function(e,t,n){var r=n(337),i=n(338)(r);e.exports=i},function(e,t){e.exports=function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}},function(e,t,n){var r=n(36),i=n(34);e.exports=function(e){return i(e)&&r(e)}},function(e,t,n){var r=n(347),i=n(41);e.exports=function(e){return null==e?[]:r(e,i(e))}},function(e,t,n){var r=n(22),i=n(192);e.exports=function(e,t,n,r){return function(e,t,n,r){var o,a,s={},l=new i,c=function(e){var t=e.v!==o?e.v:e.w,r=s[t],i=n(e),c=a.distance+i;if(i<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+i);c<r.distance&&(r.distance=c,r.predecessor=o,l.decrease(t,c))};e.nodes().forEach((function(e){var n=e===t?0:Number.POSITIVE_INFINITY;s[e]={distance:n},l.add(e,n)}));for(;l.size()>0&&(o=l.removeMin(),(a=s[o]).distance!==Number.POSITIVE_INFINITY);)r(o).forEach(c);return s}(e,String(t),n||o,r||function(t){return e.outEdges(t)})};var o=r.constant(1)},function(e,t,n){var r=n(22);function i(){this._arr=[],this._keyIndices={}}e.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map((function(e){return e.key}))},i.prototype.has=function(e){return r.has(this._keyIndices,e)},i.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},i.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(e,t){var n=this._keyIndices;if(e=String(e),!r.has(n,e)){var i=this._arr,o=i.length;return n[e]=o,i.push({key:e,priority:t}),this._decrease(o),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},i.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[n].priority+" New: "+t);this._arr[n].priority=t,this._decrease(n)},i.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))},i.prototype._decrease=function(e){for(var t,n=this._arr,r=n[e].priority;0!==e&&!(n[t=e>>1].priority<r);)this._swap(e,t),e=t},i.prototype._swap=function(e,t){var n=this._arr,r=this._keyIndices,i=n[e],o=n[t];n[e]=o,n[t]=i,r[o.key]=e,r[i.key]=t}},function(e,t,n){var r=n(22);e.exports=function(e){var t=0,n=[],i={},o=[];return e.nodes().forEach((function(a){r.has(i,a)||function a(s){var l=i[s]={onStack:!0,lowlink:t,index:t++};if(n.push(s),e.successors(s).forEach((function(e){r.has(i,e)?i[e].onStack&&(l.lowlink=Math.min(l.lowlink,i[e].index)):(a(e),l.lowlink=Math.min(l.lowlink,i[e].lowlink))})),l.lowlink===l.index){var c,u=[];do{c=n.pop(),i[c].onStack=!1,u.push(c)}while(s!==c);o.push(u)}}(a)})),o}},function(e,t,n){var r=n(22);function i(e){var t={},n={},i=[];if(r.each(e.sinks(),(function a(s){if(r.has(n,s))throw new o;r.has(t,s)||(n[s]=!0,t[s]=!0,r.each(e.predecessors(s),a),delete n[s],i.push(s))})),r.size(t)!==e.nodeCount())throw new o;return i}function o(){}e.exports=i,i.CycleException=o,o.prototype=new Error},function(e,t,n){var r=n(22);e.exports=function(e,t,n){r.isArray(t)||(t=[t]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),o=[],a={};return r.each(t,(function(t){if(!e.hasNode(t))throw new Error("Graph does not have node: "+t);!function e(t,n,i,o,a,s){r.has(o,n)||(o[n]=!0,i||s.push(n),r.each(a(n),(function(n){e(t,n,i,o,a,s)})),i&&s.push(n))}(e,t,"post"===n,a,i,o)})),o}},function(e,t,n){var r=n(366);e.exports=function(e){return e?(e=r(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},function(e,t,n){var r=n(131);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},function(e,t,n){var r=n(79),i=n(57);e.exports=function(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},function(e,t){e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},function(e,t){e.exports=function(e,t){return e<t}},function(e,t,n){"use strict";var r=n(11),i=n(30).Graph,o=n(91).slack;function a(e,t){return r.forEach(e.nodes(),(function n(i){r.forEach(t.nodeEdges(i),(function(r){var a=r.v,s=i===a?r.w:a;e.hasNode(s)||o(t,r)||(e.setNode(s,{}),e.setEdge(i,s,{}),n(s))}))})),e.nodeCount()}function s(e,t){return r.minBy(t.edges(),(function(n){if(e.hasNode(n.v)!==e.hasNode(n.w))return o(t,n)}))}function l(e,t,n){r.forEach(e.nodes(),(function(e){t.node(e).rank+=n}))}e.exports=function(e){var t,n,r=new i({directed:!1}),c=e.nodes()[0],u=e.nodeCount();r.setNode(c,{});for(;a(r,e)<u;)t=s(r,e),n=r.hasNode(t.v)?o(e,t):-o(e,t),l(r,e,n);return r}},function(e,t,n){(function(e,r){var i; /** * @license * Lodash <https://lodash.com/> @@ -38,19 +38,19 @@ * Released under MIT license <https://lodash.com/license> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(){var o="Expected a function",a="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],l="[object Arguments]",c="[object Array]",u="[object Boolean]",d="[object Date]",p="[object Error]",f="[object Function]",h="[object GeneratorFunction]",g="[object Map]",m="[object Number]",v="[object Object]",b="[object RegExp]",y="[object Set]",x="[object String]",w="[object Symbol]",k="[object WeakMap]",A="[object ArrayBuffer]",E="[object DataView]",S="[object Float32Array]",$="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",O="[object Int32Array]",T="[object Uint8Array]",j="[object Uint16Array]",P="[object Uint32Array]",D=/\b__p \+= '';/g,R=/\b(__p \+=) '' \+/g,I=/(__e\(.*?\)|\b__t\)) \+\n'';/g,N=/&(?:amp|lt|gt|quot|#39);/g,M=/[&<>"']/g,z=RegExp(N.source),L=RegExp(M.source),B=/<%-([\s\S]+?)%>/g,F=/<%([\s\S]+?)%>/g,q=/<%=([\s\S]+?)%>/g,V=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,U=/^\w*$/,H=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/[\\^$.*+?()[\]{}|]/g,W=RegExp(G.source),Y=/^\s+/,X=/\s/,Z=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Q=/\{\n\/\* \[wrapped with (.+)\] \*/,J=/,? & /,K=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/[()=,{}\[\]\/\s]/,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ie=/^[-+]0x[0-9a-f]+$/i,oe=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,le=/^(?:0|[1-9]\d*)$/,ce=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ue=/($^)/,de=/['\n\r\u2028\u2029\\]/g,pe="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",fe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",ge="["+fe+"]",me="["+pe+"]",ve="\\d+",be="[\\u2700-\\u27bf]",ye="[a-z\\xdf-\\xf6\\xf8-\\xff]",xe="[^\\ud800-\\udfff"+fe+ve+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",we="\\ud83c[\\udffb-\\udfff]",ke="[^\\ud800-\\udfff]",Ae="(?:\\ud83c[\\udde6-\\uddff]){2}",Ee="[\\ud800-\\udbff][\\udc00-\\udfff]",Se="[A-Z\\xc0-\\xd6\\xd8-\\xde]",$e="(?:"+ye+"|"+xe+")",Ce="(?:"+Se+"|"+xe+")",_e="(?:"+me+"|"+we+")"+"?",Oe="[\\ufe0e\\ufe0f]?"+_e+("(?:\\u200d(?:"+[ke,Ae,Ee].join("|")+")[\\ufe0e\\ufe0f]?"+_e+")*"),Te="(?:"+[be,Ae,Ee].join("|")+")"+Oe,je="(?:"+[ke+me+"?",me,Ae,Ee,he].join("|")+")",Pe=RegExp("['’]","g"),De=RegExp(me,"g"),Re=RegExp(we+"(?="+we+")|"+je+Oe,"g"),Ie=RegExp([Se+"?"+ye+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ge,Se,"$"].join("|")+")",Ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ge,Se+$e,"$"].join("|")+")",Se+"?"+$e+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Se+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ve,Te].join("|"),"g"),Ne=RegExp("[\\u200d\\ud800-\\udfff"+pe+"\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ze=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Le=-1,Be={};Be[S]=Be[$]=Be[C]=Be[_]=Be[O]=Be[T]=Be["[object Uint8ClampedArray]"]=Be[j]=Be[P]=!0,Be[l]=Be[c]=Be[A]=Be[u]=Be[E]=Be[d]=Be[p]=Be[f]=Be[g]=Be[m]=Be[v]=Be[b]=Be[y]=Be[x]=Be[k]=!1;var Fe={};Fe[l]=Fe[c]=Fe[A]=Fe[E]=Fe[u]=Fe[d]=Fe[S]=Fe[$]=Fe[C]=Fe[_]=Fe[O]=Fe[g]=Fe[m]=Fe[v]=Fe[b]=Fe[y]=Fe[x]=Fe[w]=Fe[T]=Fe["[object Uint8ClampedArray]"]=Fe[j]=Fe[P]=!0,Fe[p]=Fe[f]=Fe[k]=!1;var qe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ve=parseFloat,Ue=parseInt,He="object"==typeof e&&e&&e.Object===Object&&e,Ge="object"==typeof self&&self&&self.Object===Object&&self,We=He||Ge||Function("return this")(),Ye=t&&!t.nodeType&&t,Xe=Ye&&"object"==typeof r&&r&&!r.nodeType&&r,Ze=Xe&&Xe.exports===Ye,Qe=Ze&&He.process,Je=function(){try{var e=Xe&&Xe.require&&Xe.require("util").types;return e||Qe&&Qe.binding&&Qe.binding("util")}catch(e){}}(),Ke=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,rt=Je&&Je.isSet,it=Je&&Je.isTypedArray;function ot(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(r,a,n(a),e)}return r}function st(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function lt(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function ct(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function ut(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}function dt(e,t){return!!(null==e?0:e.length)&&wt(e,t,0)>-1}function pt(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function ft(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}function ht(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function gt(e,t,n,r){var i=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}function mt(e,t,n,r){var i=null==e?0:e.length;for(r&&i&&(n=e[--i]);i--;)n=t(n,e[i],i,e);return n}function vt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var bt=St("length");function yt(e,t,n){var r;return n(e,(function(e,n,i){if(t(e,n,i))return r=n,!1})),r}function xt(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}function wt(e,t,n){return t==t?function(e,t,n){var r=n-1,i=e.length;for(;++r<i;)if(e[r]===t)return r;return-1}(e,t,n):xt(e,At,n)}function kt(e,t,n,r){for(var i=n-1,o=e.length;++i<o;)if(r(e[i],t))return i;return-1}function At(e){return e!=e}function Et(e,t){var n=null==e?0:e.length;return n?_t(e,t)/n:NaN}function St(e){return function(t){return null==t?void 0:t[e]}}function $t(e){return function(t){return null==e?void 0:e[t]}}function Ct(e,t,n,r,i){return i(e,(function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)})),n}function _t(e,t){for(var n,r=-1,i=e.length;++r<i;){var o=t(e[r]);void 0!==o&&(n=void 0===n?o:n+o)}return n}function Ot(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function Tt(e){return e?e.slice(0,Yt(e)+1).replace(Y,""):e}function jt(e){return function(t){return e(t)}}function Pt(e,t){return ft(t,(function(t){return e[t]}))}function Dt(e,t){return e.has(t)}function Rt(e,t){for(var n=-1,r=e.length;++n<r&&wt(t,e[n],0)>-1;);return n}function It(e,t){for(var n=e.length;n--&&wt(t,e[n],0)>-1;);return n}function Nt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Mt=$t({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),zt=$t({"&":"&","<":"<",">":">",'"':""","'":"'"});function Lt(e){return"\\"+qe[e]}function Bt(e){return Ne.test(e)}function Ft(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function qt(e,t){return function(n){return e(t(n))}}function Vt(e,t){for(var n=-1,r=e.length,i=0,o=[];++n<r;){var s=e[n];s!==t&&s!==a||(e[n]=a,o[i++]=n)}return o}function Ut(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function Ht(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function Gt(e){return Bt(e)?function(e){var t=Re.lastIndex=0;for(;Re.test(e);)++t;return t}(e):bt(e)}function Wt(e){return Bt(e)?function(e){return e.match(Re)||[]}(e):function(e){return e.split("")}(e)}function Yt(e){for(var t=e.length;t--&&X.test(e.charAt(t)););return t}var Xt=$t({"&":"&","<":"<",">":">",""":'"',"'":"'"});var Zt=function e(t){var n,r=(t=null==t?We:Zt.defaults(We.Object(),t,Zt.pick(We,ze))).Array,i=t.Date,X=t.Error,pe=t.Function,fe=t.Math,he=t.Object,ge=t.RegExp,me=t.String,ve=t.TypeError,be=r.prototype,ye=pe.prototype,xe=he.prototype,we=t["__core-js_shared__"],ke=ye.toString,Ae=xe.hasOwnProperty,Ee=0,Se=(n=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",$e=xe.toString,Ce=ke.call(he),_e=We._,Oe=ge("^"+ke.call(Ae).replace(G,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Te=Ze?t.Buffer:void 0,je=t.Symbol,Re=t.Uint8Array,Ne=Te?Te.allocUnsafe:void 0,qe=qt(he.getPrototypeOf,he),He=he.create,Ge=xe.propertyIsEnumerable,Ye=be.splice,Xe=je?je.isConcatSpreadable:void 0,Qe=je?je.iterator:void 0,Je=je?je.toStringTag:void 0,bt=function(){try{var e=eo(he,"defineProperty");return e({},"",{}),e}catch(e){}}(),$t=t.clearTimeout!==We.clearTimeout&&t.clearTimeout,Qt=i&&i.now!==We.Date.now&&i.now,Jt=t.setTimeout!==We.setTimeout&&t.setTimeout,Kt=fe.ceil,en=fe.floor,tn=he.getOwnPropertySymbols,nn=Te?Te.isBuffer:void 0,rn=t.isFinite,on=be.join,an=qt(he.keys,he),sn=fe.max,ln=fe.min,cn=i.now,un=t.parseInt,dn=fe.random,pn=be.reverse,fn=eo(t,"DataView"),hn=eo(t,"Map"),gn=eo(t,"Promise"),mn=eo(t,"Set"),vn=eo(t,"WeakMap"),bn=eo(he,"create"),yn=vn&&new vn,xn={},wn=_o(fn),kn=_o(hn),An=_o(gn),En=_o(mn),Sn=_o(vn),$n=je?je.prototype:void 0,Cn=$n?$n.valueOf:void 0,_n=$n?$n.toString:void 0;function On(e){if(Ha(e)&&!Ra(e)&&!(e instanceof Dn)){if(e instanceof Pn)return e;if(Ae.call(e,"__wrapped__"))return Oo(e)}return new Pn(e)}var Tn=function(){function e(){}return function(t){if(!Ua(t))return{};if(He)return He(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function jn(){}function Pn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Dn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Rn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function In(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Mn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Nn;++t<n;)this.add(e[t])}function zn(e){var t=this.__data__=new In(e);this.size=t.size}function Ln(e,t){var n=Ra(e),r=!n&&Da(e),i=!n&&!r&&za(e),o=!n&&!r&&!i&&Ka(e),a=n||r||i||o,s=a?Ot(e.length,me):[],l=s.length;for(var c in e)!t&&!Ae.call(e,c)||a&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||so(c,l))||s.push(c);return s}function Bn(e){var t=e.length;return t?e[Mr(0,t-1)]:void 0}function Fn(e,t){return So(bi(e),Zn(t,0,e.length))}function qn(e){return So(bi(e))}function Vn(e,t,n){(void 0!==n&&!Ta(e[t],n)||void 0===n&&!(t in e))&&Yn(e,t,n)}function Un(e,t,n){var r=e[t];Ae.call(e,t)&&Ta(r,n)&&(void 0!==n||t in e)||Yn(e,t,n)}function Hn(e,t){for(var n=e.length;n--;)if(Ta(e[n][0],t))return n;return-1}function Gn(e,t,n,r){return tr(e,(function(e,i,o){t(r,e,n(e),o)})),r}function Wn(e,t){return e&&yi(t,ws(t),e)}function Yn(e,t,n){"__proto__"==t&&bt?bt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Xn(e,t){for(var n=-1,i=t.length,o=r(i),a=null==e;++n<i;)o[n]=a?void 0:ms(e,t[n]);return o}function Zn(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}function Qn(e,t,n,r,i,o){var a,s=1&t,c=2&t,p=4&t;if(n&&(a=i?n(e,r,i,o):n(e)),void 0!==a)return a;if(!Ua(e))return e;var k=Ra(e);if(k){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ae.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return bi(e,a)}else{var D=ro(e),R=D==f||D==h;if(za(e))return pi(e,s);if(D==v||D==l||R&&!i){if(a=c||R?{}:oo(e),!s)return c?function(e,t){return yi(e,no(e),t)}(e,function(e,t){return e&&yi(t,ks(t),e)}(a,e)):function(e,t){return yi(e,to(e),t)}(e,Wn(a,e))}else{if(!Fe[D])return i?e:{};a=function(e,t,n){var r=e.constructor;switch(t){case A:return fi(e);case u:case d:return new r(+e);case E:return function(e,t){var n=t?fi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case S:case $:case C:case _:case O:case T:case"[object Uint8ClampedArray]":case j:case P:return hi(e,n);case g:return new r;case m:case x:return new r(e);case b:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case y:return new r;case w:return i=e,Cn?he(Cn.call(i)):{}}var i}(e,D,s)}}o||(o=new zn);var I=o.get(e);if(I)return I;o.set(e,a),Za(e)?e.forEach((function(r){a.add(Qn(r,t,n,r,e,o))})):Ga(e)&&e.forEach((function(r,i){a.set(i,Qn(r,t,n,i,e,o))}));var N=k?void 0:(p?c?Wi:Gi:c?ks:ws)(e);return st(N||e,(function(r,i){N&&(r=e[i=r]),Un(a,i,Qn(r,t,n,i,e,o))})),a}function Jn(e,t,n){var r=n.length;if(null==e)return!r;for(e=he(e);r--;){var i=n[r],o=t[i],a=e[i];if(void 0===a&&!(i in e)||!o(a))return!1}return!0}function Kn(e,t,n){if("function"!=typeof e)throw new ve(o);return wo((function(){e.apply(void 0,n)}),t)}function er(e,t,n,r){var i=-1,o=dt,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=ft(t,jt(n))),r?(o=pt,a=!1):t.length>=200&&(o=Dt,a=!1,t=new Mn(t));e:for(;++i<s;){var u=e[i],d=null==n?u:n(u);if(u=r||0!==u?u:0,a&&d==d){for(var p=c;p--;)if(t[p]===d)continue e;l.push(u)}else o(t,d,r)||l.push(u)}return l}On.templateSettings={escape:B,evaluate:F,interpolate:q,variable:"",imports:{_:On}},On.prototype=jn.prototype,On.prototype.constructor=On,Pn.prototype=Tn(jn.prototype),Pn.prototype.constructor=Pn,Dn.prototype=Tn(jn.prototype),Dn.prototype.constructor=Dn,Rn.prototype.clear=function(){this.__data__=bn?bn(null):{},this.size=0},Rn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Rn.prototype.get=function(e){var t=this.__data__;if(bn){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ae.call(t,e)?t[e]:void 0},Rn.prototype.has=function(e){var t=this.__data__;return bn?void 0!==t[e]:Ae.call(t,e)},Rn.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bn&&void 0===t?"__lodash_hash_undefined__":t,this},In.prototype.clear=function(){this.__data__=[],this.size=0},In.prototype.delete=function(e){var t=this.__data__,n=Hn(t,e);return!(n<0)&&(n==t.length-1?t.pop():Ye.call(t,n,1),--this.size,!0)},In.prototype.get=function(e){var t=this.__data__,n=Hn(t,e);return n<0?void 0:t[n][1]},In.prototype.has=function(e){return Hn(this.__data__,e)>-1},In.prototype.set=function(e,t){var n=this.__data__,r=Hn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Nn.prototype.clear=function(){this.size=0,this.__data__={hash:new Rn,map:new(hn||In),string:new Rn}},Nn.prototype.delete=function(e){var t=Ji(this,e).delete(e);return this.size-=t?1:0,t},Nn.prototype.get=function(e){return Ji(this,e).get(e)},Nn.prototype.has=function(e){return Ji(this,e).has(e)},Nn.prototype.set=function(e,t){var n=Ji(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Mn.prototype.add=Mn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Mn.prototype.has=function(e){return this.__data__.has(e)},zn.prototype.clear=function(){this.__data__=new In,this.size=0},zn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},zn.prototype.get=function(e){return this.__data__.get(e)},zn.prototype.has=function(e){return this.__data__.has(e)},zn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof In){var r=n.__data__;if(!hn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Nn(r)}return n.set(e,t),this.size=n.size,this};var tr=ki(cr),nr=ki(ur,!0);function rr(e,t){var n=!0;return tr(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function ir(e,t,n){for(var r=-1,i=e.length;++r<i;){var o=e[r],a=t(o);if(null!=a&&(void 0===s?a==a&&!Ja(a):n(a,s)))var s=a,l=o}return l}function or(e,t){var n=[];return tr(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}function ar(e,t,n,r,i){var o=-1,a=e.length;for(n||(n=ao),i||(i=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?ar(s,t-1,n,r,i):ht(i,s):r||(i[i.length]=s)}return i}var sr=Ai(),lr=Ai(!0);function cr(e,t){return e&&sr(e,t,ws)}function ur(e,t){return e&&lr(e,t,ws)}function dr(e,t){return ut(t,(function(t){return Fa(e[t])}))}function pr(e,t){for(var n=0,r=(t=li(t,e)).length;null!=e&&n<r;)e=e[Co(t[n++])];return n&&n==r?e:void 0}function fr(e,t,n){var r=t(e);return Ra(e)?r:ht(r,n(e))}function hr(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Je&&Je in he(e)?function(e){var t=Ae.call(e,Je),n=e[Je];try{e[Je]=void 0;var r=!0}catch(e){}var i=$e.call(e);r&&(t?e[Je]=n:delete e[Je]);return i}(e):function(e){return $e.call(e)}(e)}function gr(e,t){return e>t}function mr(e,t){return null!=e&&Ae.call(e,t)}function vr(e,t){return null!=e&&t in he(e)}function br(e,t,n){for(var i=n?pt:dt,o=e[0].length,a=e.length,s=a,l=r(a),c=1/0,u=[];s--;){var d=e[s];s&&t&&(d=ft(d,jt(t))),c=ln(d.length,c),l[s]=!n&&(t||o>=120&&d.length>=120)?new Mn(s&&d):void 0}d=e[0];var p=-1,f=l[0];e:for(;++p<o&&u.length<c;){var h=d[p],g=t?t(h):h;if(h=n||0!==h?h:0,!(f?Dt(f,g):i(u,g,n))){for(s=a;--s;){var m=l[s];if(!(m?Dt(m,g):i(e[s],g,n)))continue e}f&&f.push(g),u.push(h)}}return u}function yr(e,t,n){var r=null==(e=vo(e,t=li(t,e)))?e:e[Co(Bo(t))];return null==r?void 0:ot(r,e,n)}function xr(e){return Ha(e)&&hr(e)==l}function wr(e,t,n,r,i){return e===t||(null==e||null==t||!Ha(e)&&!Ha(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var a=Ra(e),s=Ra(t),f=a?c:ro(e),h=s?c:ro(t),k=(f=f==l?v:f)==v,S=(h=h==l?v:h)==v,$=f==h;if($&&za(e)){if(!za(t))return!1;a=!0,k=!1}if($&&!k)return o||(o=new zn),a||Ka(e)?Ui(e,t,n,r,i,o):function(e,t,n,r,i,o,a){switch(n){case E:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case A:return!(e.byteLength!=t.byteLength||!o(new Re(e),new Re(t)));case u:case d:case m:return Ta(+e,+t);case p:return e.name==t.name&&e.message==t.message;case b:case x:return e==t+"";case g:var s=Ft;case y:var l=1&r;if(s||(s=Ut),e.size!=t.size&&!l)return!1;var c=a.get(e);if(c)return c==t;r|=2,a.set(e,t);var f=Ui(s(e),s(t),r,i,o,a);return a.delete(e),f;case w:if(Cn)return Cn.call(e)==Cn.call(t)}return!1}(e,t,f,n,r,i,o);if(!(1&n)){var C=k&&Ae.call(e,"__wrapped__"),_=S&&Ae.call(t,"__wrapped__");if(C||_){var O=C?e.value():e,T=_?t.value():t;return o||(o=new zn),i(O,T,n,r,o)}}if(!$)return!1;return o||(o=new zn),function(e,t,n,r,i,o){var a=1&n,s=Gi(e),l=s.length,c=Gi(t).length;if(l!=c&&!a)return!1;var u=l;for(;u--;){var d=s[u];if(!(a?d in t:Ae.call(t,d)))return!1}var p=o.get(e),f=o.get(t);if(p&&f)return p==t&&f==e;var h=!0;o.set(e,t),o.set(t,e);var g=a;for(;++u<l;){d=s[u];var m=e[d],v=t[d];if(r)var b=a?r(v,m,d,t,e,o):r(m,v,d,e,t,o);if(!(void 0===b?m===v||i(m,v,n,r,o):b)){h=!1;break}g||(g="constructor"==d)}if(h&&!g){var y=e.constructor,x=t.constructor;y==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof x&&x instanceof x||(h=!1)}return o.delete(e),o.delete(t),h}(e,t,n,r,i,o)}(e,t,n,r,wr,i))}function kr(e,t,n,r){var i=n.length,o=i,a=!r;if(null==e)return!o;for(e=he(e);i--;){var s=n[i];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<o;){var l=(s=n[i])[0],c=e[l],u=s[1];if(a&&s[2]){if(void 0===c&&!(l in e))return!1}else{var d=new zn;if(r)var p=r(c,u,l,e,t,d);if(!(void 0===p?wr(u,c,3,r,d):p))return!1}}return!0}function Ar(e){return!(!Ua(e)||(t=e,Se&&Se in t))&&(Fa(e)?Oe:ae).test(_o(e));var t}function Er(e){return"function"==typeof e?e:null==e?Ws:"object"==typeof e?Ra(e)?Tr(e[0],e[1]):Or(e):nl(e)}function Sr(e){if(!fo(e))return an(e);var t=[];for(var n in he(e))Ae.call(e,n)&&"constructor"!=n&&t.push(n);return t}function $r(e){if(!Ua(e))return function(e){var t=[];if(null!=e)for(var n in he(e))t.push(n);return t}(e);var t=fo(e),n=[];for(var r in e)("constructor"!=r||!t&&Ae.call(e,r))&&n.push(r);return n}function Cr(e,t){return e<t}function _r(e,t){var n=-1,i=Na(e)?r(e.length):[];return tr(e,(function(e,r,o){i[++n]=t(e,r,o)})),i}function Or(e){var t=Ki(e);return 1==t.length&&t[0][2]?go(t[0][0],t[0][1]):function(n){return n===e||kr(n,e,t)}}function Tr(e,t){return co(e)&&ho(t)?go(Co(e),t):function(n){var r=ms(n,e);return void 0===r&&r===t?vs(n,e):wr(t,r,3)}}function jr(e,t,n,r,i){e!==t&&sr(t,(function(o,a){if(i||(i=new zn),Ua(o))!function(e,t,n,r,i,o,a){var s=yo(e,n),l=yo(t,n),c=a.get(l);if(c)return void Vn(e,n,c);var u=o?o(s,l,n+"",e,t,a):void 0,d=void 0===u;if(d){var p=Ra(l),f=!p&&za(l),h=!p&&!f&&Ka(l);u=l,p||f||h?Ra(s)?u=s:Ma(s)?u=bi(s):f?(d=!1,u=pi(l,!0)):h?(d=!1,u=hi(l,!0)):u=[]:Ya(l)||Da(l)?(u=s,Da(s)?u=ss(s):Ua(s)&&!Fa(s)||(u=oo(l))):d=!1}d&&(a.set(l,u),i(u,l,r,o,a),a.delete(l));Vn(e,n,u)}(e,t,a,n,jr,r,i);else{var s=r?r(yo(e,a),o,a+"",e,t,i):void 0;void 0===s&&(s=o),Vn(e,a,s)}}),ks)}function Pr(e,t){var n=e.length;if(n)return so(t+=t<0?n:0,n)?e[t]:void 0}function Dr(e,t,n){t=t.length?ft(t,(function(e){return Ra(e)?function(t){return pr(t,1===e.length?e[0]:e)}:e})):[Ws];var r=-1;return t=ft(t,jt(Qi())),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(_r(e,(function(e,n,i){return{criteria:ft(t,(function(t){return t(e)})),index:++r,value:e}})),(function(e,t){return function(e,t,n){var r=-1,i=e.criteria,o=t.criteria,a=i.length,s=n.length;for(;++r<a;){var l=gi(i[r],o[r]);if(l){if(r>=s)return l;var c=n[r];return l*("desc"==c?-1:1)}}return e.index-t.index}(e,t,n)}))}function Rr(e,t,n){for(var r=-1,i=t.length,o={};++r<i;){var a=t[r],s=pr(e,a);n(s,a)&&qr(o,li(a,e),s)}return o}function Ir(e,t,n,r){var i=r?kt:wt,o=-1,a=t.length,s=e;for(e===t&&(t=bi(t)),n&&(s=ft(e,jt(n)));++o<a;)for(var l=0,c=t[o],u=n?n(c):c;(l=i(s,u,l,r))>-1;)s!==e&&Ye.call(s,l,1),Ye.call(e,l,1);return e}function Nr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;so(i)?Ye.call(e,i,1):ei(e,i)}}return e}function Mr(e,t){return e+en(dn()*(t-e+1))}function zr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=en(t/2))&&(e+=e)}while(t);return n}function Lr(e,t){return ko(mo(e,t,Ws),e+"")}function Br(e){return Bn(Ts(e))}function Fr(e,t){var n=Ts(e);return So(n,Zn(t,0,n.length))}function qr(e,t,n,r){if(!Ua(e))return e;for(var i=-1,o=(t=li(t,e)).length,a=o-1,s=e;null!=s&&++i<o;){var l=Co(t[i]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(i!=a){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=Ua(u)?u:so(t[i+1])?[]:{})}Un(s,l,c),s=s[l]}return e}var Vr=yn?function(e,t){return yn.set(e,t),e}:Ws,Ur=bt?function(e,t){return bt(e,"toString",{configurable:!0,enumerable:!1,value:Us(t),writable:!0})}:Ws;function Hr(e){return So(Ts(e))}function Gr(e,t,n){var i=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i<o;)a[i]=e[i+t];return a}function Wr(e,t){var n;return tr(e,(function(e,r,i){return!(n=t(e,r,i))})),!!n}function Yr(e,t,n){var r=0,i=null==e?r:e.length;if("number"==typeof t&&t==t&&i<=2147483647){for(;r<i;){var o=r+i>>>1,a=e[o];null!==a&&!Ja(a)&&(n?a<=t:a<t)?r=o+1:i=o}return i}return Xr(e,t,Ws,n)}function Xr(e,t,n,r){var i=0,o=null==e?0:e.length;if(0===o)return 0;for(var a=(t=n(t))!=t,s=null===t,l=Ja(t),c=void 0===t;i<o;){var u=en((i+o)/2),d=n(e[u]),p=void 0!==d,f=null===d,h=d==d,g=Ja(d);if(a)var m=r||h;else m=c?h&&(r||p):s?h&&p&&(r||!f):l?h&&p&&!f&&(r||!g):!f&&!g&&(r?d<=t:d<t);m?i=u+1:o=u}return ln(o,4294967294)}function Zr(e,t){for(var n=-1,r=e.length,i=0,o=[];++n<r;){var a=e[n],s=t?t(a):a;if(!n||!Ta(s,l)){var l=s;o[i++]=0===a?0:a}}return o}function Qr(e){return"number"==typeof e?e:Ja(e)?NaN:+e}function Jr(e){if("string"==typeof e)return e;if(Ra(e))return ft(e,Jr)+"";if(Ja(e))return _n?_n.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Kr(e,t,n){var r=-1,i=dt,o=e.length,a=!0,s=[],l=s;if(n)a=!1,i=pt;else if(o>=200){var c=t?null:zi(e);if(c)return Ut(c);a=!1,i=Dt,l=new Mn}else l=t?[]:s;e:for(;++r<o;){var u=e[r],d=t?t(u):u;if(u=n||0!==u?u:0,a&&d==d){for(var p=l.length;p--;)if(l[p]===d)continue e;t&&l.push(d),s.push(u)}else i(l,d,n)||(l!==s&&l.push(d),s.push(u))}return s}function ei(e,t){return null==(e=vo(e,t=li(t,e)))||delete e[Co(Bo(t))]}function ti(e,t,n,r){return qr(e,t,n(pr(e,t)),r)}function ni(e,t,n,r){for(var i=e.length,o=r?i:-1;(r?o--:++o<i)&&t(e[o],o,e););return n?Gr(e,r?0:o,r?o+1:i):Gr(e,r?o+1:0,r?i:o)}function ri(e,t){var n=e;return n instanceof Dn&&(n=n.value()),gt(t,(function(e,t){return t.func.apply(t.thisArg,ht([e],t.args))}),n)}function ii(e,t,n){var i=e.length;if(i<2)return i?Kr(e[0]):[];for(var o=-1,a=r(i);++o<i;)for(var s=e[o],l=-1;++l<i;)l!=o&&(a[o]=er(a[o]||s,e[l],t,n));return Kr(ar(a,1),t,n)}function oi(e,t,n){for(var r=-1,i=e.length,o=t.length,a={};++r<i;){var s=r<o?t[r]:void 0;n(a,e[r],s)}return a}function ai(e){return Ma(e)?e:[]}function si(e){return"function"==typeof e?e:Ws}function li(e,t){return Ra(e)?e:co(e,t)?[e]:$o(ls(e))}var ci=Lr;function ui(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:Gr(e,t,n)}var di=$t||function(e){return We.clearTimeout(e)};function pi(e,t){if(t)return e.slice();var n=e.length,r=Ne?Ne(n):new e.constructor(n);return e.copy(r),r}function fi(e){var t=new e.constructor(e.byteLength);return new Re(t).set(new Re(e)),t}function hi(e,t){var n=t?fi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function gi(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=e==e,o=Ja(e),a=void 0!==t,s=null===t,l=t==t,c=Ja(t);if(!s&&!c&&!o&&e>t||o&&a&&l&&!s&&!c||r&&a&&l||!n&&l||!i)return 1;if(!r&&!o&&!c&&e<t||c&&n&&i&&!r&&!o||s&&n&&i||!a&&i||!l)return-1}return 0}function mi(e,t,n,i){for(var o=-1,a=e.length,s=n.length,l=-1,c=t.length,u=sn(a-s,0),d=r(c+u),p=!i;++l<c;)d[l]=t[l];for(;++o<s;)(p||o<a)&&(d[n[o]]=e[o]);for(;u--;)d[l++]=e[o++];return d}function vi(e,t,n,i){for(var o=-1,a=e.length,s=-1,l=n.length,c=-1,u=t.length,d=sn(a-l,0),p=r(d+u),f=!i;++o<d;)p[o]=e[o];for(var h=o;++c<u;)p[h+c]=t[c];for(;++s<l;)(f||o<a)&&(p[h+n[s]]=e[o++]);return p}function bi(e,t){var n=-1,i=e.length;for(t||(t=r(i));++n<i;)t[n]=e[n];return t}function yi(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o<a;){var s=t[o],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),i?Yn(n,s,l):Un(n,s,l)}return n}function xi(e,t){return function(n,r){var i=Ra(n)?at:Gn,o=t?t():{};return i(n,e,Qi(r,2),o)}}function wi(e){return Lr((function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&lo(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=he(t);++r<i;){var s=n[r];s&&e(t,s,r,o)}return t}))}function ki(e,t){return function(n,r){if(null==n)return n;if(!Na(n))return e(n,r);for(var i=n.length,o=t?i:-1,a=he(n);(t?o--:++o<i)&&!1!==r(a[o],o,a););return n}}function Ai(e){return function(t,n,r){for(var i=-1,o=he(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}function Ei(e){return function(t){var n=Bt(t=ls(t))?Wt(t):void 0,r=n?n[0]:t.charAt(0),i=n?ui(n,1).join(""):t.slice(1);return r[e]()+i}}function Si(e){return function(t){return gt(Fs(Ds(t).replace(Pe,"")),e,"")}}function $i(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Tn(e.prototype),r=e.apply(n,t);return Ua(r)?r:n}}function Ci(e){return function(t,n,r){var i=he(t);if(!Na(t)){var o=Qi(n,3);t=ws(t),n=function(e){return o(i[e],e,i)}}var a=e(t,n,r);return a>-1?i[o?t[a]:a]:void 0}}function _i(e){return Hi((function(t){var n=t.length,r=n,i=Pn.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new ve(o);if(i&&!s&&"wrapper"==Xi(a))var s=new Pn([],!0)}for(r=s?r:n;++r<n;){var l=Xi(a=t[r]),c="wrapper"==l?Yi(a):void 0;s=c&&uo(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?s[Xi(c[0])].apply(s,c[3]):1==a.length&&uo(a)?s[l]():s.thru(a)}return function(){var e=arguments,r=e[0];if(s&&1==e.length&&Ra(r))return s.plant(r).value();for(var i=0,o=n?t[i].apply(this,e):r;++i<n;)o=t[i].call(this,o);return o}}))}function Oi(e,t,n,i,o,a,s,l,c,u){var d=128&t,p=1&t,f=2&t,h=24&t,g=512&t,m=f?void 0:$i(e);return function v(){for(var b=arguments.length,y=r(b),x=b;x--;)y[x]=arguments[x];if(h)var w=Zi(v),k=Nt(y,w);if(i&&(y=mi(y,i,o,h)),a&&(y=vi(y,a,s,h)),b-=k,h&&b<u){var A=Vt(y,w);return Ni(e,t,Oi,v.placeholder,n,y,A,l,c,u-b)}var E=p?n:this,S=f?E[e]:e;return b=y.length,l?y=bo(y,l):g&&b>1&&y.reverse(),d&&c<b&&(y.length=c),this&&this!==We&&this instanceof v&&(S=m||$i(S)),S.apply(E,y)}}function Ti(e,t){return function(n,r){return function(e,t,n,r){return cr(e,(function(e,i,o){t(r,n(e),i,o)})),r}(n,e,t(r),{})}}function ji(e,t){return function(n,r){var i;if(void 0===n&&void 0===r)return t;if(void 0!==n&&(i=n),void 0!==r){if(void 0===i)return r;"string"==typeof n||"string"==typeof r?(n=Jr(n),r=Jr(r)):(n=Qr(n),r=Qr(r)),i=e(n,r)}return i}}function Pi(e){return Hi((function(t){return t=ft(t,jt(Qi())),Lr((function(n){var r=this;return e(t,(function(e){return ot(e,r,n)}))}))}))}function Di(e,t){var n=(t=void 0===t?" ":Jr(t)).length;if(n<2)return n?zr(t,e):t;var r=zr(t,Kt(e/Gt(t)));return Bt(t)?ui(Wt(r),0,e).join(""):r.slice(0,e)}function Ri(e){return function(t,n,i){return i&&"number"!=typeof i&&lo(t,n,i)&&(n=i=void 0),t=rs(t),void 0===n?(n=t,t=0):n=rs(n),function(e,t,n,i){for(var o=-1,a=sn(Kt((t-e)/(n||1)),0),s=r(a);a--;)s[i?a:++o]=e,e+=n;return s}(t,n,i=void 0===i?t<n?1:-1:rs(i),e)}}function Ii(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=as(t),n=as(n)),e(t,n)}}function Ni(e,t,n,r,i,o,a,s,l,c){var u=8&t;t|=u?32:64,4&(t&=~(u?64:32))||(t&=-4);var d=[e,t,i,u?o:void 0,u?a:void 0,u?void 0:o,u?void 0:a,s,l,c],p=n.apply(void 0,d);return uo(e)&&xo(p,d),p.placeholder=r,Ao(p,e,t)}function Mi(e){var t=fe[e];return function(e,n){if(e=as(e),(n=null==n?0:ln(is(n),292))&&rn(e)){var r=(ls(e)+"e").split("e");return+((r=(ls(t(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}var zi=mn&&1/Ut(new mn([,-0]))[1]==1/0?function(e){return new mn(e)}:Js;function Li(e){return function(t){var n=ro(t);return n==g?Ft(t):n==y?Ht(t):function(e,t){return ft(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Bi(e,t,n,i,s,l,c,u){var d=2&t;if(!d&&"function"!=typeof e)throw new ve(o);var p=i?i.length:0;if(p||(t&=-97,i=s=void 0),c=void 0===c?c:sn(is(c),0),u=void 0===u?u:is(u),p-=s?s.length:0,64&t){var f=i,h=s;i=s=void 0}var g=d?void 0:Yi(e),m=[e,t,n,i,s,f,h,l,c,u];if(g&&function(e,t){var n=e[1],r=t[1],i=n|r,o=i<131,s=128==r&&8==n||128==r&&256==n&&e[7].length<=t[8]||384==r&&t[7].length<=t[8]&&8==n;if(!o&&!s)return e;1&r&&(e[2]=t[2],i|=1&n?0:4);var l=t[3];if(l){var c=e[3];e[3]=c?mi(c,l,t[4]):l,e[4]=c?Vt(e[3],a):t[4]}(l=t[5])&&(c=e[5],e[5]=c?vi(c,l,t[6]):l,e[6]=c?Vt(e[5],a):t[6]);(l=t[7])&&(e[7]=l);128&r&&(e[8]=null==e[8]?t[8]:ln(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=i}(m,g),e=m[0],t=m[1],n=m[2],i=m[3],s=m[4],!(u=m[9]=void 0===m[9]?d?0:e.length:sn(m[9]-p,0))&&24&t&&(t&=-25),t&&1!=t)v=8==t||16==t?function(e,t,n){var i=$i(e);return function o(){for(var a=arguments.length,s=r(a),l=a,c=Zi(o);l--;)s[l]=arguments[l];var u=a<3&&s[0]!==c&&s[a-1]!==c?[]:Vt(s,c);if((a-=u.length)<n)return Ni(e,t,Oi,o.placeholder,void 0,s,u,void 0,void 0,n-a);var d=this&&this!==We&&this instanceof o?i:e;return ot(d,this,s)}}(e,t,u):32!=t&&33!=t||s.length?Oi.apply(void 0,m):function(e,t,n,i){var o=1&t,a=$i(e);return function t(){for(var s=-1,l=arguments.length,c=-1,u=i.length,d=r(u+l),p=this&&this!==We&&this instanceof t?a:e;++c<u;)d[c]=i[c];for(;l--;)d[c++]=arguments[++s];return ot(p,o?n:this,d)}}(e,t,n,i);else var v=function(e,t,n){var r=1&t,i=$i(e);return function t(){var o=this&&this!==We&&this instanceof t?i:e;return o.apply(r?n:this,arguments)}}(e,t,n);return Ao((g?Vr:xo)(v,m),e,t)}function Fi(e,t,n,r){return void 0===e||Ta(e,xe[n])&&!Ae.call(r,n)?t:e}function qi(e,t,n,r,i,o){return Ua(e)&&Ua(t)&&(o.set(t,e),jr(e,t,void 0,qi,o),o.delete(t)),e}function Vi(e){return Ya(e)?void 0:e}function Ui(e,t,n,r,i,o){var a=1&n,s=e.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=o.get(e),u=o.get(t);if(c&&u)return c==t&&u==e;var d=-1,p=!0,f=2&n?new Mn:void 0;for(o.set(e,t),o.set(t,e);++d<s;){var h=e[d],g=t[d];if(r)var m=a?r(g,h,d,t,e,o):r(h,g,d,e,t,o);if(void 0!==m){if(m)continue;p=!1;break}if(f){if(!vt(t,(function(e,t){if(!Dt(f,t)&&(h===e||i(h,e,n,r,o)))return f.push(t)}))){p=!1;break}}else if(h!==g&&!i(h,g,n,r,o)){p=!1;break}}return o.delete(e),o.delete(t),p}function Hi(e){return ko(mo(e,void 0,Io),e+"")}function Gi(e){return fr(e,ws,to)}function Wi(e){return fr(e,ks,no)}var Yi=yn?function(e){return yn.get(e)}:Js;function Xi(e){for(var t=e.name+"",n=xn[t],r=Ae.call(xn,t)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==e)return i.name}return t}function Zi(e){return(Ae.call(On,"placeholder")?On:e).placeholder}function Qi(){var e=On.iteratee||Ys;return e=e===Ys?Er:e,arguments.length?e(arguments[0],arguments[1]):e}function Ji(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function Ki(e){for(var t=ws(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ho(i)]}return t}function eo(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ar(n)?n:void 0}var to=tn?function(e){return null==e?[]:(e=he(e),ut(tn(e),(function(t){return Ge.call(e,t)})))}:ol,no=tn?function(e){for(var t=[];e;)ht(t,to(e)),e=qe(e);return t}:ol,ro=hr;function io(e,t,n){for(var r=-1,i=(t=li(t,e)).length,o=!1;++r<i;){var a=Co(t[r]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++r!=i?o:!!(i=null==e?0:e.length)&&Va(i)&&so(a,i)&&(Ra(e)||Da(e))}function oo(e){return"function"!=typeof e.constructor||fo(e)?{}:Tn(qe(e))}function ao(e){return Ra(e)||Da(e)||!!(Xe&&e&&e[Xe])}function so(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&le.test(e))&&e>-1&&e%1==0&&e<t}function lo(e,t,n){if(!Ua(n))return!1;var r=typeof t;return!!("number"==r?Na(n)&&so(t,n.length):"string"==r&&t in n)&&Ta(n[t],e)}function co(e,t){if(Ra(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ja(e))||(U.test(e)||!V.test(e)||null!=t&&e in he(t))}function uo(e){var t=Xi(e),n=On[t];if("function"!=typeof n||!(t in Dn.prototype))return!1;if(e===n)return!0;var r=Yi(n);return!!r&&e===r[0]}(fn&&ro(new fn(new ArrayBuffer(1)))!=E||hn&&ro(new hn)!=g||gn&&"[object Promise]"!=ro(gn.resolve())||mn&&ro(new mn)!=y||vn&&ro(new vn)!=k)&&(ro=function(e){var t=hr(e),n=t==v?e.constructor:void 0,r=n?_o(n):"";if(r)switch(r){case wn:return E;case kn:return g;case An:return"[object Promise]";case En:return y;case Sn:return k}return t});var po=we?Fa:al;function fo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||xe)}function ho(e){return e==e&&!Ua(e)}function go(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in he(n)))}}function mo(e,t,n){return t=sn(void 0===t?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=sn(i.length-t,0),s=r(a);++o<a;)s[o]=i[t+o];o=-1;for(var l=r(t+1);++o<t;)l[o]=i[o];return l[t]=n(s),ot(e,this,l)}}function vo(e,t){return t.length<2?e:pr(e,Gr(t,0,-1))}function bo(e,t){for(var n=e.length,r=ln(t.length,n),i=bi(e);r--;){var o=t[r];e[r]=so(o,n)?i[o]:void 0}return e}function yo(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var xo=Eo(Vr),wo=Jt||function(e,t){return We.setTimeout(e,t)},ko=Eo(Ur);function Ao(e,t,n){var r=t+"";return ko(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(Z,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return st(s,(function(n){var r="_."+n[0];t&n[1]&&!dt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(Q);return t?t[1].split(J):[]}(r),n)))}function Eo(e){var t=0,n=0;return function(){var r=cn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function So(e,t){var n=-1,r=e.length,i=r-1;for(t=void 0===t?r:t;++n<t;){var o=Mr(n,i),a=e[o];e[o]=e[n],e[n]=a}return e.length=t,e}var $o=function(e){var t=Ea(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(H,(function(e,n,r,i){t.push(r?i.replace(te,"$1"):n||e)})),t}));function Co(e){if("string"==typeof e||Ja(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function _o(e){if(null!=e){try{return ke.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Oo(e){if(e instanceof Dn)return e.clone();var t=new Pn(e.__wrapped__,e.__chain__);return t.__actions__=bi(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var To=Lr((function(e,t){return Ma(e)?er(e,ar(t,1,Ma,!0)):[]})),jo=Lr((function(e,t){var n=Bo(t);return Ma(n)&&(n=void 0),Ma(e)?er(e,ar(t,1,Ma,!0),Qi(n,2)):[]})),Po=Lr((function(e,t){var n=Bo(t);return Ma(n)&&(n=void 0),Ma(e)?er(e,ar(t,1,Ma,!0),void 0,n):[]}));function Do(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:is(n);return i<0&&(i=sn(r+i,0)),xt(e,Qi(t,3),i)}function Ro(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r-1;return void 0!==n&&(i=is(n),i=n<0?sn(r+i,0):ln(i,r-1)),xt(e,Qi(t,3),i,!0)}function Io(e){return(null==e?0:e.length)?ar(e,1):[]}function No(e){return e&&e.length?e[0]:void 0}var Mo=Lr((function(e){var t=ft(e,ai);return t.length&&t[0]===e[0]?br(t):[]})),zo=Lr((function(e){var t=Bo(e),n=ft(e,ai);return t===Bo(n)?t=void 0:n.pop(),n.length&&n[0]===e[0]?br(n,Qi(t,2)):[]})),Lo=Lr((function(e){var t=Bo(e),n=ft(e,ai);return(t="function"==typeof t?t:void 0)&&n.pop(),n.length&&n[0]===e[0]?br(n,void 0,t):[]}));function Bo(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}var Fo=Lr(qo);function qo(e,t){return e&&e.length&&t&&t.length?Ir(e,t):e}var Vo=Hi((function(e,t){var n=null==e?0:e.length,r=Xn(e,t);return Nr(e,ft(t,(function(e){return so(e,n)?+e:e})).sort(gi)),r}));function Uo(e){return null==e?e:pn.call(e)}var Ho=Lr((function(e){return Kr(ar(e,1,Ma,!0))})),Go=Lr((function(e){var t=Bo(e);return Ma(t)&&(t=void 0),Kr(ar(e,1,Ma,!0),Qi(t,2))})),Wo=Lr((function(e){var t=Bo(e);return t="function"==typeof t?t:void 0,Kr(ar(e,1,Ma,!0),void 0,t)}));function Yo(e){if(!e||!e.length)return[];var t=0;return e=ut(e,(function(e){if(Ma(e))return t=sn(e.length,t),!0})),Ot(t,(function(t){return ft(e,St(t))}))}function Xo(e,t){if(!e||!e.length)return[];var n=Yo(e);return null==t?n:ft(n,(function(e){return ot(t,void 0,e)}))}var Zo=Lr((function(e,t){return Ma(e)?er(e,t):[]})),Qo=Lr((function(e){return ii(ut(e,Ma))})),Jo=Lr((function(e){var t=Bo(e);return Ma(t)&&(t=void 0),ii(ut(e,Ma),Qi(t,2))})),Ko=Lr((function(e){var t=Bo(e);return t="function"==typeof t?t:void 0,ii(ut(e,Ma),void 0,t)})),ea=Lr(Yo);var ta=Lr((function(e){var t=e.length,n=t>1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Xo(e,n)}));function na(e){var t=On(e);return t.__chain__=!0,t}function ra(e,t){return t(e)}var ia=Hi((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return Xn(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Dn&&so(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:ra,args:[i],thisArg:void 0}),new Pn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var oa=xi((function(e,t,n){Ae.call(e,n)?++e[n]:Yn(e,n,1)}));var aa=Ci(Do),sa=Ci(Ro);function la(e,t){return(Ra(e)?st:tr)(e,Qi(t,3))}function ca(e,t){return(Ra(e)?lt:nr)(e,Qi(t,3))}var ua=xi((function(e,t,n){Ae.call(e,n)?e[n].push(t):Yn(e,n,[t])}));var da=Lr((function(e,t,n){var i=-1,o="function"==typeof t,a=Na(e)?r(e.length):[];return tr(e,(function(e){a[++i]=o?ot(t,e,n):yr(e,t,n)})),a})),pa=xi((function(e,t,n){Yn(e,n,t)}));function fa(e,t){return(Ra(e)?ft:_r)(e,Qi(t,3))}var ha=xi((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ga=Lr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&lo(e,t[0],t[1])?t=[]:n>2&&lo(t[0],t[1],t[2])&&(t=[t[0]]),Dr(e,ar(t,1),[])})),ma=Qt||function(){return We.Date.now()};function va(e,t,n){return t=n?void 0:t,Bi(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function ba(e,t){var n;if("function"!=typeof t)throw new ve(o);return e=is(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ya=Lr((function(e,t,n){var r=1;if(n.length){var i=Vt(n,Zi(ya));r|=32}return Bi(e,r,t,n,i)})),xa=Lr((function(e,t,n){var r=3;if(n.length){var i=Vt(n,Zi(xa));r|=32}return Bi(t,r,e,n,i)}));function wa(e,t,n){var r,i,a,s,l,c,u=0,d=!1,p=!1,f=!0;if("function"!=typeof e)throw new ve(o);function h(t){var n=r,o=i;return r=i=void 0,u=t,s=e.apply(o,n)}function g(e){return u=e,l=wo(v,t),d?h(e):s}function m(e){var n=e-c;return void 0===c||n>=t||n<0||p&&e-u>=a}function v(){var e=ma();if(m(e))return b(e);l=wo(v,function(e){var n=t-(e-c);return p?ln(n,a-(e-u)):n}(e))}function b(e){return l=void 0,f&&r?h(e):(r=i=void 0,s)}function y(){var e=ma(),n=m(e);if(r=arguments,i=this,c=e,n){if(void 0===l)return g(c);if(p)return di(l),l=wo(v,t),h(c)}return void 0===l&&(l=wo(v,t)),s}return t=as(t)||0,Ua(n)&&(d=!!n.leading,a=(p="maxWait"in n)?sn(as(n.maxWait)||0,t):a,f="trailing"in n?!!n.trailing:f),y.cancel=function(){void 0!==l&&di(l),u=0,r=c=i=l=void 0},y.flush=function(){return void 0===l?s:b(ma())},y}var ka=Lr((function(e,t){return Kn(e,1,t)})),Aa=Lr((function(e,t,n){return Kn(e,as(t)||0,n)}));function Ea(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new ve(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Ea.Cache||Nn),n}function Sa(e){if("function"!=typeof e)throw new ve(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Ea.Cache=Nn;var $a=ci((function(e,t){var n=(t=1==t.length&&Ra(t[0])?ft(t[0],jt(Qi())):ft(ar(t,1),jt(Qi()))).length;return Lr((function(r){for(var i=-1,o=ln(r.length,n);++i<o;)r[i]=t[i].call(this,r[i]);return ot(e,this,r)}))})),Ca=Lr((function(e,t){return Bi(e,32,void 0,t,Vt(t,Zi(Ca)))})),_a=Lr((function(e,t){return Bi(e,64,void 0,t,Vt(t,Zi(_a)))})),Oa=Hi((function(e,t){return Bi(e,256,void 0,void 0,void 0,t)}));function Ta(e,t){return e===t||e!=e&&t!=t}var ja=Ii(gr),Pa=Ii((function(e,t){return e>=t})),Da=xr(function(){return arguments}())?xr:function(e){return Ha(e)&&Ae.call(e,"callee")&&!Ge.call(e,"callee")},Ra=r.isArray,Ia=Ke?jt(Ke):function(e){return Ha(e)&&hr(e)==A};function Na(e){return null!=e&&Va(e.length)&&!Fa(e)}function Ma(e){return Ha(e)&&Na(e)}var za=nn||al,La=et?jt(et):function(e){return Ha(e)&&hr(e)==d};function Ba(e){if(!Ha(e))return!1;var t=hr(e);return t==p||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Ya(e)}function Fa(e){if(!Ua(e))return!1;var t=hr(e);return t==f||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function qa(e){return"number"==typeof e&&e==is(e)}function Va(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ua(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ha(e){return null!=e&&"object"==typeof e}var Ga=tt?jt(tt):function(e){return Ha(e)&&ro(e)==g};function Wa(e){return"number"==typeof e||Ha(e)&&hr(e)==m}function Ya(e){if(!Ha(e)||hr(e)!=v)return!1;var t=qe(e);if(null===t)return!0;var n=Ae.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ke.call(n)==Ce}var Xa=nt?jt(nt):function(e){return Ha(e)&&hr(e)==b};var Za=rt?jt(rt):function(e){return Ha(e)&&ro(e)==y};function Qa(e){return"string"==typeof e||!Ra(e)&&Ha(e)&&hr(e)==x}function Ja(e){return"symbol"==typeof e||Ha(e)&&hr(e)==w}var Ka=it?jt(it):function(e){return Ha(e)&&Va(e.length)&&!!Be[hr(e)]};var es=Ii(Cr),ts=Ii((function(e,t){return e<=t}));function ns(e){if(!e)return[];if(Na(e))return Qa(e)?Wt(e):bi(e);if(Qe&&e[Qe])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Qe]());var t=ro(e);return(t==g?Ft:t==y?Ut:Ts)(e)}function rs(e){return e?(e=as(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function is(e){var t=rs(e),n=t%1;return t==t?n?t-n:t:0}function os(e){return e?Zn(is(e),0,4294967295):0}function as(e){if("number"==typeof e)return e;if(Ja(e))return NaN;if(Ua(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ua(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Tt(e);var n=oe.test(e);return n||se.test(e)?Ue(e.slice(2),n?2:8):ie.test(e)?NaN:+e}function ss(e){return yi(e,ks(e))}function ls(e){return null==e?"":Jr(e)}var cs=wi((function(e,t){if(fo(t)||Na(t))yi(t,ws(t),e);else for(var n in t)Ae.call(t,n)&&Un(e,n,t[n])})),us=wi((function(e,t){yi(t,ks(t),e)})),ds=wi((function(e,t,n,r){yi(t,ks(t),e,r)})),ps=wi((function(e,t,n,r){yi(t,ws(t),e,r)})),fs=Hi(Xn);var hs=Lr((function(e,t){e=he(e);var n=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&lo(t[0],t[1],i)&&(r=1);++n<r;)for(var o=t[n],a=ks(o),s=-1,l=a.length;++s<l;){var c=a[s],u=e[c];(void 0===u||Ta(u,xe[c])&&!Ae.call(e,c))&&(e[c]=o[c])}return e})),gs=Lr((function(e){return e.push(void 0,qi),ot(Es,void 0,e)}));function ms(e,t,n){var r=null==e?void 0:pr(e,t);return void 0===r?n:r}function vs(e,t){return null!=e&&io(e,t,vr)}var bs=Ti((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=$e.call(t)),e[t]=n}),Us(Ws)),ys=Ti((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=$e.call(t)),Ae.call(e,t)?e[t].push(n):e[t]=[n]}),Qi),xs=Lr(yr);function ws(e){return Na(e)?Ln(e):Sr(e)}function ks(e){return Na(e)?Ln(e,!0):$r(e)}var As=wi((function(e,t,n){jr(e,t,n)})),Es=wi((function(e,t,n,r){jr(e,t,n,r)})),Ss=Hi((function(e,t){var n={};if(null==e)return n;var r=!1;t=ft(t,(function(t){return t=li(t,e),r||(r=t.length>1),t})),yi(e,Wi(e),n),r&&(n=Qn(n,7,Vi));for(var i=t.length;i--;)ei(n,t[i]);return n}));var $s=Hi((function(e,t){return null==e?{}:function(e,t){return Rr(e,t,(function(t,n){return vs(e,n)}))}(e,t)}));function Cs(e,t){if(null==e)return{};var n=ft(Wi(e),(function(e){return[e]}));return t=Qi(t),Rr(e,n,(function(e,n){return t(e,n[0])}))}var _s=Li(ws),Os=Li(ks);function Ts(e){return null==e?[]:Pt(e,ws(e))}var js=Si((function(e,t,n){return t=t.toLowerCase(),e+(n?Ps(t):t)}));function Ps(e){return Bs(ls(e).toLowerCase())}function Ds(e){return(e=ls(e))&&e.replace(ce,Mt).replace(De,"")}var Rs=Si((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Is=Si((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Ns=Ei("toLowerCase");var Ms=Si((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var zs=Si((function(e,t,n){return e+(n?" ":"")+Bs(t)}));var Ls=Si((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Bs=Ei("toUpperCase");function Fs(e,t,n){return e=ls(e),void 0===(t=n?void 0:t)?function(e){return Me.test(e)}(e)?function(e){return e.match(Ie)||[]}(e):function(e){return e.match(K)||[]}(e):e.match(t)||[]}var qs=Lr((function(e,t){try{return ot(e,void 0,t)}catch(e){return Ba(e)?e:new X(e)}})),Vs=Hi((function(e,t){return st(t,(function(t){t=Co(t),Yn(e,t,ya(e[t],e))})),e}));function Us(e){return function(){return e}}var Hs=_i(),Gs=_i(!0);function Ws(e){return e}function Ys(e){return Er("function"==typeof e?e:Qn(e,1))}var Xs=Lr((function(e,t){return function(n){return yr(n,e,t)}})),Zs=Lr((function(e,t){return function(n){return yr(e,n,t)}}));function Qs(e,t,n){var r=ws(t),i=dr(t,r);null!=n||Ua(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=dr(t,ws(t)));var o=!(Ua(n)&&"chain"in n&&!n.chain),a=Fa(e);return st(i,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__),i=n.__actions__=bi(this.__actions__);return i.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,ht([this.value()],arguments))})})),e}function Js(){}var Ks=Pi(ft),el=Pi(ct),tl=Pi(vt);function nl(e){return co(e)?St(Co(e)):function(e){return function(t){return pr(t,e)}}(e)}var rl=Ri(),il=Ri(!0);function ol(){return[]}function al(){return!1}var sl=ji((function(e,t){return e+t}),0),ll=Mi("ceil"),cl=ji((function(e,t){return e/t}),1),ul=Mi("floor");var dl,pl=ji((function(e,t){return e*t}),1),fl=Mi("round"),hl=ji((function(e,t){return e-t}),0);return On.after=function(e,t){if("function"!=typeof t)throw new ve(o);return e=is(e),function(){if(--e<1)return t.apply(this,arguments)}},On.ary=va,On.assign=cs,On.assignIn=us,On.assignInWith=ds,On.assignWith=ps,On.at=fs,On.before=ba,On.bind=ya,On.bindAll=Vs,On.bindKey=xa,On.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ra(e)?e:[e]},On.chain=na,On.chunk=function(e,t,n){t=(n?lo(e,t,n):void 0===t)?1:sn(is(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,a=0,s=r(Kt(i/t));o<i;)s[a++]=Gr(e,o,o+=t);return s},On.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var o=e[t];o&&(i[r++]=o)}return i},On.concat=function(){var e=arguments.length;if(!e)return[];for(var t=r(e-1),n=arguments[0],i=e;i--;)t[i-1]=arguments[i];return ht(Ra(n)?bi(n):[n],ar(t,1))},On.cond=function(e){var t=null==e?0:e.length,n=Qi();return e=t?ft(e,(function(e){if("function"!=typeof e[1])throw new ve(o);return[n(e[0]),e[1]]})):[],Lr((function(n){for(var r=-1;++r<t;){var i=e[r];if(ot(i[0],this,n))return ot(i[1],this,n)}}))},On.conforms=function(e){return function(e){var t=ws(e);return function(n){return Jn(n,e,t)}}(Qn(e,1))},On.constant=Us,On.countBy=oa,On.create=function(e,t){var n=Tn(e);return null==t?n:Wn(n,t)},On.curry=function e(t,n,r){var i=Bi(t,8,void 0,void 0,void 0,void 0,void 0,n=r?void 0:n);return i.placeholder=e.placeholder,i},On.curryRight=function e(t,n,r){var i=Bi(t,16,void 0,void 0,void 0,void 0,void 0,n=r?void 0:n);return i.placeholder=e.placeholder,i},On.debounce=wa,On.defaults=hs,On.defaultsDeep=gs,On.defer=ka,On.delay=Aa,On.difference=To,On.differenceBy=jo,On.differenceWith=Po,On.drop=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,(t=n||void 0===t?1:is(t))<0?0:t,r):[]},On.dropRight=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,0,(t=r-(t=n||void 0===t?1:is(t)))<0?0:t):[]},On.dropRightWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3),!0,!0):[]},On.dropWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3),!0):[]},On.fill=function(e,t,n,r){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&lo(e,t,n)&&(n=0,r=i),function(e,t,n,r){var i=e.length;for((n=is(n))<0&&(n=-n>i?0:i+n),(r=void 0===r||r>i?i:is(r))<0&&(r+=i),r=n>r?0:os(r);n<r;)e[n++]=t;return e}(e,t,n,r)):[]},On.filter=function(e,t){return(Ra(e)?ut:or)(e,Qi(t,3))},On.flatMap=function(e,t){return ar(fa(e,t),1)},On.flatMapDeep=function(e,t){return ar(fa(e,t),1/0)},On.flatMapDepth=function(e,t,n){return n=void 0===n?1:is(n),ar(fa(e,t),n)},On.flatten=Io,On.flattenDeep=function(e){return(null==e?0:e.length)?ar(e,1/0):[]},On.flattenDepth=function(e,t){return(null==e?0:e.length)?ar(e,t=void 0===t?1:is(t)):[]},On.flip=function(e){return Bi(e,512)},On.flow=Hs,On.flowRight=Gs,On.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var i=e[t];r[i[0]]=i[1]}return r},On.functions=function(e){return null==e?[]:dr(e,ws(e))},On.functionsIn=function(e){return null==e?[]:dr(e,ks(e))},On.groupBy=ua,On.initial=function(e){return(null==e?0:e.length)?Gr(e,0,-1):[]},On.intersection=Mo,On.intersectionBy=zo,On.intersectionWith=Lo,On.invert=bs,On.invertBy=ys,On.invokeMap=da,On.iteratee=Ys,On.keyBy=pa,On.keys=ws,On.keysIn=ks,On.map=fa,On.mapKeys=function(e,t){var n={};return t=Qi(t,3),cr(e,(function(e,r,i){Yn(n,t(e,r,i),e)})),n},On.mapValues=function(e,t){var n={};return t=Qi(t,3),cr(e,(function(e,r,i){Yn(n,r,t(e,r,i))})),n},On.matches=function(e){return Or(Qn(e,1))},On.matchesProperty=function(e,t){return Tr(e,Qn(t,1))},On.memoize=Ea,On.merge=As,On.mergeWith=Es,On.method=Xs,On.methodOf=Zs,On.mixin=Qs,On.negate=Sa,On.nthArg=function(e){return e=is(e),Lr((function(t){return Pr(t,e)}))},On.omit=Ss,On.omitBy=function(e,t){return Cs(e,Sa(Qi(t)))},On.once=function(e){return ba(2,e)},On.orderBy=function(e,t,n,r){return null==e?[]:(Ra(t)||(t=null==t?[]:[t]),Ra(n=r?void 0:n)||(n=null==n?[]:[n]),Dr(e,t,n))},On.over=Ks,On.overArgs=$a,On.overEvery=el,On.overSome=tl,On.partial=Ca,On.partialRight=_a,On.partition=ha,On.pick=$s,On.pickBy=Cs,On.property=nl,On.propertyOf=function(e){return function(t){return null==e?void 0:pr(e,t)}},On.pull=Fo,On.pullAll=qo,On.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?Ir(e,t,Qi(n,2)):e},On.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?Ir(e,t,void 0,n):e},On.pullAt=Vo,On.range=rl,On.rangeRight=il,On.rearg=Oa,On.reject=function(e,t){return(Ra(e)?ut:or)(e,Sa(Qi(t,3)))},On.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,i=[],o=e.length;for(t=Qi(t,3);++r<o;){var a=e[r];t(a,r,e)&&(n.push(a),i.push(r))}return Nr(e,i),n},On.rest=function(e,t){if("function"!=typeof e)throw new ve(o);return Lr(e,t=void 0===t?t:is(t))},On.reverse=Uo,On.sampleSize=function(e,t,n){return t=(n?lo(e,t,n):void 0===t)?1:is(t),(Ra(e)?Fn:Fr)(e,t)},On.set=function(e,t,n){return null==e?e:qr(e,t,n)},On.setWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:qr(e,t,n,r)},On.shuffle=function(e){return(Ra(e)?qn:Hr)(e)},On.slice=function(e,t,n){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&lo(e,t,n)?(t=0,n=r):(t=null==t?0:is(t),n=void 0===n?r:is(n)),Gr(e,t,n)):[]},On.sortBy=ga,On.sortedUniq=function(e){return e&&e.length?Zr(e):[]},On.sortedUniqBy=function(e,t){return e&&e.length?Zr(e,Qi(t,2)):[]},On.split=function(e,t,n){return n&&"number"!=typeof n&&lo(e,t,n)&&(t=n=void 0),(n=void 0===n?4294967295:n>>>0)?(e=ls(e))&&("string"==typeof t||null!=t&&!Xa(t))&&!(t=Jr(t))&&Bt(e)?ui(Wt(e),0,n):e.split(t,n):[]},On.spread=function(e,t){if("function"!=typeof e)throw new ve(o);return t=null==t?0:sn(is(t),0),Lr((function(n){var r=n[t],i=ui(n,0,t);return r&&ht(i,r),ot(e,this,i)}))},On.tail=function(e){var t=null==e?0:e.length;return t?Gr(e,1,t):[]},On.take=function(e,t,n){return e&&e.length?Gr(e,0,(t=n||void 0===t?1:is(t))<0?0:t):[]},On.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,(t=r-(t=n||void 0===t?1:is(t)))<0?0:t,r):[]},On.takeRightWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3),!1,!0):[]},On.takeWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3)):[]},On.tap=function(e,t){return t(e),e},On.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new ve(o);return Ua(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),wa(e,t,{leading:r,maxWait:t,trailing:i})},On.thru=ra,On.toArray=ns,On.toPairs=_s,On.toPairsIn=Os,On.toPath=function(e){return Ra(e)?ft(e,Co):Ja(e)?[e]:bi($o(ls(e)))},On.toPlainObject=ss,On.transform=function(e,t,n){var r=Ra(e),i=r||za(e)||Ka(e);if(t=Qi(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:Ua(e)&&Fa(o)?Tn(qe(e)):{}}return(i?st:cr)(e,(function(e,r,i){return t(n,e,r,i)})),n},On.unary=function(e){return va(e,1)},On.union=Ho,On.unionBy=Go,On.unionWith=Wo,On.uniq=function(e){return e&&e.length?Kr(e):[]},On.uniqBy=function(e,t){return e&&e.length?Kr(e,Qi(t,2)):[]},On.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Kr(e,void 0,t):[]},On.unset=function(e,t){return null==e||ei(e,t)},On.unzip=Yo,On.unzipWith=Xo,On.update=function(e,t,n){return null==e?e:ti(e,t,si(n))},On.updateWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:ti(e,t,si(n),r)},On.values=Ts,On.valuesIn=function(e){return null==e?[]:Pt(e,ks(e))},On.without=Zo,On.words=Fs,On.wrap=function(e,t){return Ca(si(t),e)},On.xor=Qo,On.xorBy=Jo,On.xorWith=Ko,On.zip=ea,On.zipObject=function(e,t){return oi(e||[],t||[],Un)},On.zipObjectDeep=function(e,t){return oi(e||[],t||[],qr)},On.zipWith=ta,On.entries=_s,On.entriesIn=Os,On.extend=us,On.extendWith=ds,Qs(On,On),On.add=sl,On.attempt=qs,On.camelCase=js,On.capitalize=Ps,On.ceil=ll,On.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=as(n))==n?n:0),void 0!==t&&(t=(t=as(t))==t?t:0),Zn(as(e),t,n)},On.clone=function(e){return Qn(e,4)},On.cloneDeep=function(e){return Qn(e,5)},On.cloneDeepWith=function(e,t){return Qn(e,5,t="function"==typeof t?t:void 0)},On.cloneWith=function(e,t){return Qn(e,4,t="function"==typeof t?t:void 0)},On.conformsTo=function(e,t){return null==t||Jn(e,t,ws(t))},On.deburr=Ds,On.defaultTo=function(e,t){return null==e||e!=e?t:e},On.divide=cl,On.endsWith=function(e,t,n){e=ls(e),t=Jr(t);var r=e.length,i=n=void 0===n?r:Zn(is(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},On.eq=Ta,On.escape=function(e){return(e=ls(e))&&L.test(e)?e.replace(M,zt):e},On.escapeRegExp=function(e){return(e=ls(e))&&W.test(e)?e.replace(G,"\\$&"):e},On.every=function(e,t,n){var r=Ra(e)?ct:rr;return n&&lo(e,t,n)&&(t=void 0),r(e,Qi(t,3))},On.find=aa,On.findIndex=Do,On.findKey=function(e,t){return yt(e,Qi(t,3),cr)},On.findLast=sa,On.findLastIndex=Ro,On.findLastKey=function(e,t){return yt(e,Qi(t,3),ur)},On.floor=ul,On.forEach=la,On.forEachRight=ca,On.forIn=function(e,t){return null==e?e:sr(e,Qi(t,3),ks)},On.forInRight=function(e,t){return null==e?e:lr(e,Qi(t,3),ks)},On.forOwn=function(e,t){return e&&cr(e,Qi(t,3))},On.forOwnRight=function(e,t){return e&&ur(e,Qi(t,3))},On.get=ms,On.gt=ja,On.gte=Pa,On.has=function(e,t){return null!=e&&io(e,t,mr)},On.hasIn=vs,On.head=No,On.identity=Ws,On.includes=function(e,t,n,r){e=Na(e)?e:Ts(e),n=n&&!r?is(n):0;var i=e.length;return n<0&&(n=sn(i+n,0)),Qa(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&wt(e,t,n)>-1},On.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:is(n);return i<0&&(i=sn(r+i,0)),wt(e,t,i)},On.inRange=function(e,t,n){return t=rs(t),void 0===n?(n=t,t=0):n=rs(n),function(e,t,n){return e>=ln(t,n)&&e<sn(t,n)}(e=as(e),t,n)},On.invoke=xs,On.isArguments=Da,On.isArray=Ra,On.isArrayBuffer=Ia,On.isArrayLike=Na,On.isArrayLikeObject=Ma,On.isBoolean=function(e){return!0===e||!1===e||Ha(e)&&hr(e)==u},On.isBuffer=za,On.isDate=La,On.isElement=function(e){return Ha(e)&&1===e.nodeType&&!Ya(e)},On.isEmpty=function(e){if(null==e)return!0;if(Na(e)&&(Ra(e)||"string"==typeof e||"function"==typeof e.splice||za(e)||Ka(e)||Da(e)))return!e.length;var t=ro(e);if(t==g||t==y)return!e.size;if(fo(e))return!Sr(e).length;for(var n in e)if(Ae.call(e,n))return!1;return!0},On.isEqual=function(e,t){return wr(e,t)},On.isEqualWith=function(e,t,n){var r=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===r?wr(e,t,void 0,n):!!r},On.isError=Ba,On.isFinite=function(e){return"number"==typeof e&&rn(e)},On.isFunction=Fa,On.isInteger=qa,On.isLength=Va,On.isMap=Ga,On.isMatch=function(e,t){return e===t||kr(e,t,Ki(t))},On.isMatchWith=function(e,t,n){return n="function"==typeof n?n:void 0,kr(e,t,Ki(t),n)},On.isNaN=function(e){return Wa(e)&&e!=+e},On.isNative=function(e){if(po(e))throw new X("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ar(e)},On.isNil=function(e){return null==e},On.isNull=function(e){return null===e},On.isNumber=Wa,On.isObject=Ua,On.isObjectLike=Ha,On.isPlainObject=Ya,On.isRegExp=Xa,On.isSafeInteger=function(e){return qa(e)&&e>=-9007199254740991&&e<=9007199254740991},On.isSet=Za,On.isString=Qa,On.isSymbol=Ja,On.isTypedArray=Ka,On.isUndefined=function(e){return void 0===e},On.isWeakMap=function(e){return Ha(e)&&ro(e)==k},On.isWeakSet=function(e){return Ha(e)&&"[object WeakSet]"==hr(e)},On.join=function(e,t){return null==e?"":on.call(e,t)},On.kebabCase=Rs,On.last=Bo,On.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return void 0!==n&&(i=(i=is(n))<0?sn(r+i,0):ln(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):xt(e,At,i,!0)},On.lowerCase=Is,On.lowerFirst=Ns,On.lt=es,On.lte=ts,On.max=function(e){return e&&e.length?ir(e,Ws,gr):void 0},On.maxBy=function(e,t){return e&&e.length?ir(e,Qi(t,2),gr):void 0},On.mean=function(e){return Et(e,Ws)},On.meanBy=function(e,t){return Et(e,Qi(t,2))},On.min=function(e){return e&&e.length?ir(e,Ws,Cr):void 0},On.minBy=function(e,t){return e&&e.length?ir(e,Qi(t,2),Cr):void 0},On.stubArray=ol,On.stubFalse=al,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return!0},On.multiply=pl,On.nth=function(e,t){return e&&e.length?Pr(e,is(t)):void 0},On.noConflict=function(){return We._===this&&(We._=_e),this},On.noop=Js,On.now=ma,On.pad=function(e,t,n){e=ls(e);var r=(t=is(t))?Gt(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return Di(en(i),n)+e+Di(Kt(i),n)},On.padEnd=function(e,t,n){e=ls(e);var r=(t=is(t))?Gt(e):0;return t&&r<t?e+Di(t-r,n):e},On.padStart=function(e,t,n){e=ls(e);var r=(t=is(t))?Gt(e):0;return t&&r<t?Di(t-r,n)+e:e},On.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),un(ls(e).replace(Y,""),t||0)},On.random=function(e,t,n){if(n&&"boolean"!=typeof n&&lo(e,t,n)&&(t=n=void 0),void 0===n&&("boolean"==typeof t?(n=t,t=void 0):"boolean"==typeof e&&(n=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=rs(e),void 0===t?(t=e,e=0):t=rs(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var i=dn();return ln(e+i*(t-e+Ve("1e-"+((i+"").length-1))),t)}return Mr(e,t)},On.reduce=function(e,t,n){var r=Ra(e)?gt:Ct,i=arguments.length<3;return r(e,Qi(t,4),n,i,tr)},On.reduceRight=function(e,t,n){var r=Ra(e)?mt:Ct,i=arguments.length<3;return r(e,Qi(t,4),n,i,nr)},On.repeat=function(e,t,n){return t=(n?lo(e,t,n):void 0===t)?1:is(t),zr(ls(e),t)},On.replace=function(){var e=arguments,t=ls(e[0]);return e.length<3?t:t.replace(e[1],e[2])},On.result=function(e,t,n){var r=-1,i=(t=li(t,e)).length;for(i||(i=1,e=void 0);++r<i;){var o=null==e?void 0:e[Co(t[r])];void 0===o&&(r=i,o=n),e=Fa(o)?o.call(e):o}return e},On.round=fl,On.runInContext=e,On.sample=function(e){return(Ra(e)?Bn:Br)(e)},On.size=function(e){if(null==e)return 0;if(Na(e))return Qa(e)?Gt(e):e.length;var t=ro(e);return t==g||t==y?e.size:Sr(e).length},On.snakeCase=Ms,On.some=function(e,t,n){var r=Ra(e)?vt:Wr;return n&&lo(e,t,n)&&(t=void 0),r(e,Qi(t,3))},On.sortedIndex=function(e,t){return Yr(e,t)},On.sortedIndexBy=function(e,t,n){return Xr(e,t,Qi(n,2))},On.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var r=Yr(e,t);if(r<n&&Ta(e[r],t))return r}return-1},On.sortedLastIndex=function(e,t){return Yr(e,t,!0)},On.sortedLastIndexBy=function(e,t,n){return Xr(e,t,Qi(n,2),!0)},On.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=Yr(e,t,!0)-1;if(Ta(e[n],t))return n}return-1},On.startCase=zs,On.startsWith=function(e,t,n){return e=ls(e),n=null==n?0:Zn(is(n),0,e.length),t=Jr(t),e.slice(n,n+t.length)==t},On.subtract=hl,On.sum=function(e){return e&&e.length?_t(e,Ws):0},On.sumBy=function(e,t){return e&&e.length?_t(e,Qi(t,2)):0},On.template=function(e,t,n){var r=On.templateSettings;n&&lo(e,t,n)&&(t=void 0),e=ls(e),t=ds({},t,r,Fi);var i,o,a=ds({},t.imports,r.imports,Fi),s=ws(a),l=Pt(a,s),c=0,u=t.interpolate||ue,d="__p += '",p=ge((t.escape||ue).source+"|"+u.source+"|"+(u===q?ne:ue).source+"|"+(t.evaluate||ue).source+"|$","g"),f="//# sourceURL="+(Ae.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Le+"]")+"\n";e.replace(p,(function(t,n,r,a,s,l){return r||(r=a),d+=e.slice(c,l).replace(de,Lt),n&&(i=!0,d+="' +\n__e("+n+") +\n'"),s&&(o=!0,d+="';\n"+s+";\n__p += '"),r&&(d+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=l+t.length,t})),d+="';\n";var h=Ae.call(t,"variable")&&t.variable;if(h){if(ee.test(h))throw new X("Invalid `variable` option passed into `_.template`")}else d="with (obj) {\n"+d+"\n}\n";d=(o?d.replace(D,""):d).replace(R,"$1").replace(I,"$1;"),d="function("+(h||"obj")+") {\n"+(h?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=qs((function(){return pe(s,f+"return "+d).apply(void 0,l)}));if(g.source=d,Ba(g))throw g;return g},On.times=function(e,t){if((e=is(e))<1||e>9007199254740991)return[];var n=4294967295,r=ln(e,4294967295);e-=4294967295;for(var i=Ot(r,t=Qi(t));++n<e;)t(n);return i},On.toFinite=rs,On.toInteger=is,On.toLength=os,On.toLower=function(e){return ls(e).toLowerCase()},On.toNumber=as,On.toSafeInteger=function(e){return e?Zn(is(e),-9007199254740991,9007199254740991):0===e?e:0},On.toString=ls,On.toUpper=function(e){return ls(e).toUpperCase()},On.trim=function(e,t,n){if((e=ls(e))&&(n||void 0===t))return Tt(e);if(!e||!(t=Jr(t)))return e;var r=Wt(e),i=Wt(t);return ui(r,Rt(r,i),It(r,i)+1).join("")},On.trimEnd=function(e,t,n){if((e=ls(e))&&(n||void 0===t))return e.slice(0,Yt(e)+1);if(!e||!(t=Jr(t)))return e;var r=Wt(e);return ui(r,0,It(r,Wt(t))+1).join("")},On.trimStart=function(e,t,n){if((e=ls(e))&&(n||void 0===t))return e.replace(Y,"");if(!e||!(t=Jr(t)))return e;var r=Wt(e);return ui(r,Rt(r,Wt(t))).join("")},On.truncate=function(e,t){var n=30,r="...";if(Ua(t)){var i="separator"in t?t.separator:i;n="length"in t?is(t.length):n,r="omission"in t?Jr(t.omission):r}var o=(e=ls(e)).length;if(Bt(e)){var a=Wt(e);o=a.length}if(n>=o)return e;var s=n-Gt(r);if(s<1)return r;var l=a?ui(a,0,s).join(""):e.slice(0,s);if(void 0===i)return l+r;if(a&&(s+=l.length-s),Xa(i)){if(e.slice(s).search(i)){var c,u=l;for(i.global||(i=ge(i.source,ls(re.exec(i))+"g")),i.lastIndex=0;c=i.exec(u);)var d=c.index;l=l.slice(0,void 0===d?s:d)}}else if(e.indexOf(Jr(i),s)!=s){var p=l.lastIndexOf(i);p>-1&&(l=l.slice(0,p))}return l+r},On.unescape=function(e){return(e=ls(e))&&z.test(e)?e.replace(N,Xt):e},On.uniqueId=function(e){var t=++Ee;return ls(e)+t},On.upperCase=Ls,On.upperFirst=Bs,On.each=la,On.eachRight=ca,On.first=No,Qs(On,(dl={},cr(On,(function(e,t){Ae.call(On.prototype,t)||(dl[t]=e)})),dl),{chain:!1}),On.VERSION="4.17.21",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){On[e].placeholder=On})),st(["drop","take"],(function(e,t){Dn.prototype[e]=function(n){n=void 0===n?1:sn(is(n),0);var r=this.__filtered__&&!t?new Dn(this):this.clone();return r.__filtered__?r.__takeCount__=ln(n,r.__takeCount__):r.__views__.push({size:ln(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},Dn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Dn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Qi(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),st(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Dn.prototype[e]=function(){return this[n](1).value()[0]}})),st(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Dn.prototype[e]=function(){return this.__filtered__?new Dn(this):this[n](1)}})),Dn.prototype.compact=function(){return this.filter(Ws)},Dn.prototype.find=function(e){return this.filter(e).head()},Dn.prototype.findLast=function(e){return this.reverse().find(e)},Dn.prototype.invokeMap=Lr((function(e,t){return"function"==typeof e?new Dn(this):this.map((function(n){return yr(n,e,t)}))})),Dn.prototype.reject=function(e){return this.filter(Sa(Qi(e)))},Dn.prototype.slice=function(e,t){e=is(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Dn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=is(t))<0?n.dropRight(-t):n.take(t-e)),n)},Dn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Dn.prototype.toArray=function(){return this.take(4294967295)},cr(Dn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=On[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);i&&(On.prototype[t]=function(){var t=this.__wrapped__,a=r?[1]:arguments,s=t instanceof Dn,l=a[0],c=s||Ra(t),u=function(e){var t=i.apply(On,ht([e],a));return r&&d?t[0]:t};c&&n&&"function"==typeof l&&1!=l.length&&(s=c=!1);var d=this.__chain__,p=!!this.__actions__.length,f=o&&!d,h=s&&!p;if(!o&&c){t=h?t:new Dn(this);var g=e.apply(t,a);return g.__actions__.push({func:ra,args:[u],thisArg:void 0}),new Pn(g,d)}return f&&h?e.apply(this,a):(g=this.thru(u),f?r?g.value()[0]:g.value():g)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=be[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);On.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(Ra(i)?i:[],e)}return this[n]((function(n){return t.apply(Ra(n)?n:[],e)}))}})),cr(Dn.prototype,(function(e,t){var n=On[t];if(n){var r=n.name+"";Ae.call(xn,r)||(xn[r]=[]),xn[r].push({name:t,func:n})}})),xn[Oi(void 0,2).name]=[{name:"wrapper",func:void 0}],Dn.prototype.clone=function(){var e=new Dn(this.__wrapped__);return e.__actions__=bi(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=bi(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=bi(this.__views__),e},Dn.prototype.reverse=function(){if(this.__filtered__){var e=new Dn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Dn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Ra(e),r=t<0,i=n?e.length:0,o=function(e,t,n){var r=-1,i=n.length;for(;++r<i;){var o=n[r],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=ln(t,e+a);break;case"takeRight":e=sn(e,t-a)}}return{start:e,end:t}}(0,i,this.__views__),a=o.start,s=o.end,l=s-a,c=r?s:a-1,u=this.__iteratees__,d=u.length,p=0,f=ln(l,this.__takeCount__);if(!n||!r&&i==l&&f==l)return ri(e,this.__actions__);var h=[];e:for(;l--&&p<f;){for(var g=-1,m=e[c+=t];++g<d;){var v=u[g],b=v.iteratee,y=v.type,x=b(m);if(2==y)m=x;else if(!x){if(1==y)continue e;break e}}h[p++]=m}return h},On.prototype.at=ia,On.prototype.chain=function(){return na(this)},On.prototype.commit=function(){return new Pn(this.value(),this.__chain__)},On.prototype.next=function(){void 0===this.__values__&&(this.__values__=ns(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},On.prototype.plant=function(e){for(var t,n=this;n instanceof jn;){var r=Oo(n);r.__index__=0,r.__values__=void 0,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},On.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Dn){var t=e;return this.__actions__.length&&(t=new Dn(this)),(t=t.reverse()).__actions__.push({func:ra,args:[Uo],thisArg:void 0}),new Pn(t,this.__chain__)}return this.thru(Uo)},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return ri(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Qe&&(On.prototype[Qe]=function(){return this}),On}();We._=Zt,void 0===(i=function(){return Zt}.call(t,n,t,r))||(r.exports=i)}).call(this)}).call(this,n(35),n(80)(e))},function(e,t,n){const r=n(21);function i(e){return!r.isNull(e)&&!r.isUndefined(e)}function o(e,t,n,a){a||(a=1);var s=e.predecessors(t);if(!s||0==n)return[];var l=s.concat(s.reduce((function(t,r){return a>=n&&i(n)?t:t.concat(o(e,r,n,a+1))}),[]));return r.uniq(l)}function a(e,t,n,o){o||(o=1);var s=e.successors(t);if(!s||0==n)return[];var l=s.concat(s.reduce((function(t,r){return o>=n&&i(n)?t:t.concat(a(e,r,n,o+1))}),[]));return r.uniq(l)}e.exports={selectAt:function(e,t){var n=[t],i=r.union([t],a(e,t));return r.each(i,(function(t){var i=o(e,t);n=r.union(n,i,[t])})),n},ancestorNodes:o,descendentNodes:a}},function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=n},function(e,t){var n="/docs/source.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.source_name }}.{{ model.name }}</span>\n <small>source table</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.source({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" extras="extra_table_fields"/>\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";n.r(t);var r=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===i}(e)}(e)};var i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function o(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function a(e,t,n){return e.concat(t).map((function(e){return o(e,n)}))}function s(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||a,n.isMergeableObject=n.isMergeableObject||r;var i=Array.isArray(t);return i===Array.isArray(e)?i?n.arrayMerge(e,t,n):function(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach((function(t){r[t]=o(e[t],n)})),Object.keys(t).forEach((function(i){n.isMergeableObject(t[i])&&e[i]?r[i]=s(e[i],t[i],n):r[i]=o(t[i],n)})),r}(e,t,n):o(t,n)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return s(e,n,t)}),{})};var l=s;const c=n(9),u=(n(33),n(202)),{getQuoteChar:d}=n(430);c.module("dbt").factory("project",["$q","$http",function(e,t){var n={manifest:"MANIFEST.JSON INLINE DATA",catalog:"CATALOG.JSON INLINE DATA"},r={project:{},tree:{project:[],database:[],sources:[]},files:{manifest:{},catalog:{}},loaded:e.defer()};function i(e,t){return u.each(t.sources,(function(e,n){t.nodes[n]=e})),u.each(e.nodes,(function(e,n){var r=t.nodes[n];if(r){var i,o,a,s=u.keys(r.columns),l=e.columns,c=(i=s,o=l,a={},u.each(o,(function(e,t){var n=u.find(i,(function(e){return e.toLowerCase()==t.toLowerCase()}));n?a[n]=e:a[t]=e})),a);e.columns=c}})),l(t,e)}function o(e,r){return e in n&&"object"==typeof n[e]?{label:e,data:n[e]}:t({method:"GET",url:r}).then((function(t){return{label:e,data:t.data}}),(function(t){console.error(t),alert("dbt Docs was unable to load the "+e+" file at path: \n "+r+"\n\nError: "+t.statusText+" ("+t.status+")\n\nThe dbt Docs site may not work as expected if this file cannot be found.Please try again, and contact support if this error persists.")}))}return r.find_by_id=function(e,t){r.ready((function(){if(e){var n=r.node(e);t(n)}}))},r.node=function(e){return u.find(r.project.nodes,{unique_id:e})},r.loadProject=function(){var t="?cb="+(new Date).getTime(),n=[o("manifest","manifest.json"+t),o("catalog","catalog.json"+t)];e.all(n).then((function(e){u.each(e,(function(e){e?r.files[e.label]=e.data:console.error("FILE FAILED TO LOAD!")})),u.each(r.files.manifest.nodes,(function(e){"model"==e.resource_type&&null!=e.version?e.label=e.name+"_v"+e.version:e.label=e.name})),u.each(r.files.manifest.sources,(function(e){e.label=e.source_name+"."+e.name,r.files.manifest.nodes[e.unique_id]=e})),u.each(r.files.manifest.exposures,(function(e){e.label||(e.label=e.name),r.files.manifest.nodes[e.unique_id]=e})),u.each(r.files.manifest.metrics,(function(e){r.files.manifest.nodes[e.unique_id]=e})),u.each(r.files.manifest.semantic_models,(function(e){r.files.manifest.nodes[e.unique_id]=e,e.label=e.name}));var t=r.files.manifest.metadata.adapter_type,n=function(e,t){var n=e||[],r={};u.each(n,(function(e){r[e.package_name]||(r[e.package_name]={}),r[e.package_name][e.name]=e}));e=[];return u.each(r,(function(n,r){if("dbt"!=r&&r!="dbt_"+t){var i=function(e,t){var n={};u.each(e,(function(e){e.macro_sql.match(/{{\s*adapter_macro\([^)]+\)\s+}}/)&&(e.impls={"Adapter Macro":e.macro_sql},e.is_adapter_macro=!0,n[e.name]=e)}));var r=["postgres","redshift","bigquery","snowflake","spark","presto","default"],i=u.values(n),o=u.filter(e,(function(e){var t=e.name.split("__"),i=t.shift(),o=t.join("__");return!(r.indexOf(i)>=0&&n[o])||(n[o].impls[i]=e.macro_sql,e.is_adapter_macro_impl=!0,!1)}));return i.concat(o)}(n);e=e.concat(i)}})),u.keyBy(e,"unique_id")}(r.files.manifest.macros,t);r.files.manifest.macros=n;var o=i(r.files.manifest,r.files.catalog),a=o.nodes,s=u.keyBy(a,"name"),l=u.filter(o.nodes,{resource_type:"test"});u.each(l,(function(e){if(e.hasOwnProperty("test_metadata")){var t,n={test_name:t=e.test_metadata.namespace?e.test_metadata.namespace+"."+e.test_metadata.name:e.test_metadata.name};if("not_null"==e.test_metadata.name)n.short="N",n.label="Not Null";else if("unique"==e.test_metadata.name)n.short="U",n.label="Unique";else if("relationships"==e.test_metadata.name){var r=e.refs[0],i=s[r];i&&e.test_metadata.kwargs.field&&(n.fk_field=e.test_metadata.kwargs.field,n.fk_model=i),n.short="F",n.label="Foreign Key"}else if("accepted_values"==e.test_metadata.name){if(Array.isArray(e.test_metadata.kwargs.values))var a=e.test_metadata.kwargs.values.join(", ");else a=JSON.stringify(e.test_metadata.kwargs.values);n.short="A",n.label="Accepted Values: "+a}else{var l=u.omit(e.test_metadata.kwargs,"column_name");n.short="+",n.label=t+"("+JSON.stringify(l)+")"}var c=e.depends_on.nodes,p=e.column_name||e.test_metadata.kwargs.column_name||e.test_metadata.kwargs.arg;if(c.length&&p){if("relationships"==e.test_metadata.name)var f=c[c.length-1];else f=c[0];var h=o.nodes[f],g=d(o.metadata),m=u.find(h.columns,(function(e,t){let n=p;return p.startsWith(g)&&p.endsWith(g)&&(n=p.substring(1,p.length-1)),t.toLowerCase()==n.toLowerCase()}));m&&(m.tests=m.tests||[],m.tests.push(n))}}})),r.project=o;var c=u.filter(r.project.macros,(function(e){return!e.is_adapter_macro_impl})),p=u.filter(r.project.nodes,(function(e){return u.includes(["model","source","seed","snapshot","analysis","exposure","metric","semantic_model"],e.resource_type)}));r.project.searchable=u.filter(p.concat(c),(function(e){return!e.docs||e.docs.show})),r.loaded.resolve()}))},r.ready=function(e){r.loaded.promise.then((function(){e(r.project)}))},r.search=function(e){if(0==e.length)return u.map(r.project.searchable,(function(e){return{model:e,matches:[]}}));var t=[];return u.each(r.project.searchable,(function(n){var r=function(e,t){var n=[],r={name:"string",description:"string",raw_code:"string",columns:"object",column_description:"n/a",tags:"array",arguments:"array",label:"string"};let i=u.words(e.toLowerCase());for(var o in r)if("column_description"===o)for(var a in t.columns)null!=t.columns[a].description&&i.every(e=>-1!=t.columns[a].description.toLowerCase().indexOf(e))&&n.push({key:o,value:e});else{if(!t[o])continue;if("string"===r[o]&&i.every(e=>-1!=t[o].toLowerCase().indexOf(e)))n.push({key:o,value:e});else if("object"===r[o])for(var a in t[o])null!=t[o][a].name&&i.every(e=>-1!=t[o][a].name.toLowerCase().indexOf(e))&&n.push({key:o,value:e});else if("array"===r[o])for(var s of t[o])i.every(e=>-1!=JSON.stringify(s).toLowerCase().indexOf(e))&&n.push({key:o,value:e})}return n}(e,n);r.length&&t.push({model:n,matches:r})})),t},r.getModelTree=function(e,t){r.loaded.promise.then((function(){var n=u.values(r.project.macros),i=u.filter(r.project.nodes,(function(e){if("test"==e.resource_type&&!e.hasOwnProperty("test_metadata"))return!0;return u.includes(["snapshot","source","seed","model","analysis","exposure","metric","semantic_model"],e.resource_type)}));r.tree.database=function(e,t){var n={},r=u.filter(e,(function(e){return!!u.get(e,["docs","show"],!0)&&(-1!=u.indexOf(["source","snapshot","seed"],e.resource_type)||("model"==e.resource_type?"ephemeral"!=e.config.materialized:void 0))})),i=u.sortBy(r,(function(e){return e.database+"."+e.schema+"."+(e.identifier||e.alias||e.name)})),o=u.groupBy(i,"database");return u.each(o,(function(e,r){var i={type:"database",name:r,active:!1,items:[]};n[r]=i;var o=u.groupBy(e,"schema");u.each(o,(function(e,n){n={type:"schema",name:n,active:!1,items:[]};i.items.push(n),u.each(e,(function(e){var r=e.unique_id==t;r&&(i.active=!0,n.active=!0),n.items.push({type:"table",name:e.identifier||e.alias||e.name,node:e,active:r,unique_id:e.unique_id,node_type:"model"})}))}))})),n}(i,e),r.tree.groups=function(e,t){var n={};u.each(e,(function(e){const r=u.get(e,["docs","show"],!0);if(!(e.resource_type in["source","exposure","seed","macro"])&&r&&"private"!==e.access){if("model"==e.resource_type&&null!=e.version)var i=e.name+"_v"+e.version;else i=e.name;var o="protected"===e.access?i+" (protected)":i,a=e.group,s=e.unique_id==t;n[a]?s&&(n[a].active=!0):n[a]={type:"group",name:a,active:s,items:[]},n[a].items.push({type:"file",name:o,node:e,active:s,unique_id:e.unique_id,node_type:"model"})}}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){e.items=u.sortBy(e.items,"name")})),n}(i,e),r.tree.project=function(e,t,n){var r={};e=e||[],t=t||[];return u.each(e.concat(t),(function(e){var t=u.get(e,["docs","show"],!0);if("source"!=e.resource_type&&"exposure"!=e.resource_type&&"metric"!=e.resource_type&&"semantic_model"!=e.resource_type&&t){if(-1!=e.original_file_path.indexOf("\\"))var i=e.original_file_path.split("\\");else i=e.original_file_path.split("/");var o=[e.package_name].concat(i),a=e.unique_id==n,s=u.initial(o);if("macro"==e.resource_type)var l=e.name;else l=u.last(o);if("model"==e.resource_type&&null!=e.version)var c=e.name+"_v"+e.version;else c=e.name;var d=r;u.each(s,(function(e){d[e]?a&&(d[e].active=!0):d[e]={type:"folder",name:e,active:a,items:{}},d=d[e].items})),d[l]={type:"file",name:c,node:e,active:a,unique_id:e.unique_id,node_type:e.resource_type}}})),function e(t){var n=[],r=u.values(t);return u.each(r,(function(t){if(t.items){var r=e(t.items),i=u.sortBy(r,"name");t.items=i}n.push(t)})),n}(r)}(i,n,e);var o=u.values(r.project.sources);r.tree.sources=function(e,t){var n={};u.each(e,(function(e){var r=e.source_name,i=e.name,o=e.unique_id==t;n[r]?o&&(n[r].active=!0):n[r]={type:"folder",name:r,active:o,items:[]},n[r].items.push({type:"file",name:i,node:e,active:o,unique_id:e.unique_id,node_type:"source"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){e.items=u.sortBy(e.items,"name")})),n}(o,e);var a=u.values(r.project.exposures);r.tree.exposures=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.type||"Uncategorized";r=function(e){var t={ml:"ML"};return t.hasOwnProperty(e)?t[e]:e.charAt(0).toUpperCase()+e.slice(1)}(r);var i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.label,node:e,active:i,unique_id:e.unique_id,node_type:"exposure"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){e.items=u.sortBy(e.items,"name")})),n}(a,e);var s=u.values(r.project.metrics);r.tree.metrics=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.package_name,i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.label,node:e,active:i,unique_id:e.unique_id,node_type:"metric"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){n.items=u.sortBy(n.items,"name")})),n}(s,e);var l=u.values(r.project.semantic_models);r.tree.semantic_models=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.package_name,i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.name,node:e,active:i,unique_id:e.unique_id,node_type:"semantic_model"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){n.items=u.sortBy(n.items,"name")})),n}(l,e),t(r.tree)}))},r.updateSelectedInTree=function(e,t){var n=!1;return u.each(t,(function(t){if(t.node&&t.node.unique_id==e)t.active=!0,n=!0;else if(t.node&&t.node.unique_id!=e)t.active=!1;else{r.updateSelectedInTree(e,t.items)&&(t.active=!0,n=!0)}})),n},r.updateSelected=function(e){return r.updateSelectedInTree(e,r.tree.project),r.updateSelectedInTree(e,r.tree.database),r.updateSelectedInTree(e,r.tree.groups),r.updateSelectedInTree(e,r.tree.sources),r.updateSelectedInTree(e,r.tree.exposures),r.updateSelectedInTree(e,r.tree.metrics),r.updateSelectedInTree(e,r.tree.semantic_models),r.tree},r.caseColumn=function(e){return"snowflake"==r.project.metadata.adapter_type&&e.toUpperCase()==e?e.toLowerCase():e},r.init=function(){r.loadProject()},r}])},function(e,t,n){const r=n(9);n(209),n(230),n(445),n(458),n(459),n(479),n(480),n(481),r.module("dbt").run(["$rootScope","$state","$stateParams",function(e,t,n){e.$state=t,e.$stateParams=n}])},function(e,t){ + */(function(){var o="Expected a function",a="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],l="[object Arguments]",c="[object Array]",u="[object Boolean]",d="[object Date]",p="[object Error]",f="[object Function]",h="[object GeneratorFunction]",g="[object Map]",m="[object Number]",v="[object Object]",b="[object RegExp]",y="[object Set]",x="[object String]",w="[object Symbol]",k="[object WeakMap]",A="[object ArrayBuffer]",E="[object DataView]",S="[object Float32Array]",$="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",O="[object Int32Array]",T="[object Uint8Array]",j="[object Uint16Array]",P="[object Uint32Array]",D=/\b__p \+= '';/g,R=/\b(__p \+=) '' \+/g,I=/(__e\(.*?\)|\b__t\)) \+\n'';/g,N=/&(?:amp|lt|gt|quot|#39);/g,M=/[&<>"']/g,z=RegExp(N.source),L=RegExp(M.source),B=/<%-([\s\S]+?)%>/g,F=/<%([\s\S]+?)%>/g,q=/<%=([\s\S]+?)%>/g,V=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,U=/^\w*$/,H=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/[\\^$.*+?()[\]{}|]/g,W=RegExp(G.source),Y=/^\s+/,X=/\s/,Z=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Q=/\{\n\/\* \[wrapped with (.+)\] \*/,J=/,? & /,K=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/[()=,{}\[\]\/\s]/,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ie=/^[-+]0x[0-9a-f]+$/i,oe=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,le=/^(?:0|[1-9]\d*)$/,ce=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ue=/($^)/,de=/['\n\r\u2028\u2029\\]/g,pe="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",fe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",ge="["+fe+"]",me="["+pe+"]",ve="\\d+",be="[\\u2700-\\u27bf]",ye="[a-z\\xdf-\\xf6\\xf8-\\xff]",xe="[^\\ud800-\\udfff"+fe+ve+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",we="\\ud83c[\\udffb-\\udfff]",ke="[^\\ud800-\\udfff]",Ae="(?:\\ud83c[\\udde6-\\uddff]){2}",Ee="[\\ud800-\\udbff][\\udc00-\\udfff]",Se="[A-Z\\xc0-\\xd6\\xd8-\\xde]",$e="(?:"+ye+"|"+xe+")",Ce="(?:"+Se+"|"+xe+")",_e="(?:"+me+"|"+we+")"+"?",Oe="[\\ufe0e\\ufe0f]?"+_e+("(?:\\u200d(?:"+[ke,Ae,Ee].join("|")+")[\\ufe0e\\ufe0f]?"+_e+")*"),Te="(?:"+[be,Ae,Ee].join("|")+")"+Oe,je="(?:"+[ke+me+"?",me,Ae,Ee,he].join("|")+")",Pe=RegExp("['’]","g"),De=RegExp(me,"g"),Re=RegExp(we+"(?="+we+")|"+je+Oe,"g"),Ie=RegExp([Se+"?"+ye+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ge,Se,"$"].join("|")+")",Ce+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ge,Se+$e,"$"].join("|")+")",Se+"?"+$e+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Se+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ve,Te].join("|"),"g"),Ne=RegExp("[\\u200d\\ud800-\\udfff"+pe+"\\ufe0e\\ufe0f]"),Me=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ze=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Le=-1,Be={};Be[S]=Be[$]=Be[C]=Be[_]=Be[O]=Be[T]=Be["[object Uint8ClampedArray]"]=Be[j]=Be[P]=!0,Be[l]=Be[c]=Be[A]=Be[u]=Be[E]=Be[d]=Be[p]=Be[f]=Be[g]=Be[m]=Be[v]=Be[b]=Be[y]=Be[x]=Be[k]=!1;var Fe={};Fe[l]=Fe[c]=Fe[A]=Fe[E]=Fe[u]=Fe[d]=Fe[S]=Fe[$]=Fe[C]=Fe[_]=Fe[O]=Fe[g]=Fe[m]=Fe[v]=Fe[b]=Fe[y]=Fe[x]=Fe[w]=Fe[T]=Fe["[object Uint8ClampedArray]"]=Fe[j]=Fe[P]=!0,Fe[p]=Fe[f]=Fe[k]=!1;var qe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ve=parseFloat,Ue=parseInt,He="object"==typeof e&&e&&e.Object===Object&&e,Ge="object"==typeof self&&self&&self.Object===Object&&self,We=He||Ge||Function("return this")(),Ye=t&&!t.nodeType&&t,Xe=Ye&&"object"==typeof r&&r&&!r.nodeType&&r,Ze=Xe&&Xe.exports===Ye,Qe=Ze&&He.process,Je=function(){try{var e=Xe&&Xe.require&&Xe.require("util").types;return e||Qe&&Qe.binding&&Qe.binding("util")}catch(e){}}(),Ke=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,rt=Je&&Je.isSet,it=Je&&Je.isTypedArray;function ot(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(r,a,n(a),e)}return r}function st(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function lt(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function ct(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function ut(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}function dt(e,t){return!!(null==e?0:e.length)&&wt(e,t,0)>-1}function pt(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function ft(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}function ht(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function gt(e,t,n,r){var i=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}function mt(e,t,n,r){var i=null==e?0:e.length;for(r&&i&&(n=e[--i]);i--;)n=t(n,e[i],i,e);return n}function vt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var bt=St("length");function yt(e,t,n){var r;return n(e,(function(e,n,i){if(t(e,n,i))return r=n,!1})),r}function xt(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}function wt(e,t,n){return t==t?function(e,t,n){var r=n-1,i=e.length;for(;++r<i;)if(e[r]===t)return r;return-1}(e,t,n):xt(e,At,n)}function kt(e,t,n,r){for(var i=n-1,o=e.length;++i<o;)if(r(e[i],t))return i;return-1}function At(e){return e!=e}function Et(e,t){var n=null==e?0:e.length;return n?_t(e,t)/n:NaN}function St(e){return function(t){return null==t?void 0:t[e]}}function $t(e){return function(t){return null==e?void 0:e[t]}}function Ct(e,t,n,r,i){return i(e,(function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)})),n}function _t(e,t){for(var n,r=-1,i=e.length;++r<i;){var o=t(e[r]);void 0!==o&&(n=void 0===n?o:n+o)}return n}function Ot(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function Tt(e){return e?e.slice(0,Yt(e)+1).replace(Y,""):e}function jt(e){return function(t){return e(t)}}function Pt(e,t){return ft(t,(function(t){return e[t]}))}function Dt(e,t){return e.has(t)}function Rt(e,t){for(var n=-1,r=e.length;++n<r&&wt(t,e[n],0)>-1;);return n}function It(e,t){for(var n=e.length;n--&&wt(t,e[n],0)>-1;);return n}function Nt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Mt=$t({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),zt=$t({"&":"&","<":"<",">":">",'"':""","'":"'"});function Lt(e){return"\\"+qe[e]}function Bt(e){return Ne.test(e)}function Ft(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function qt(e,t){return function(n){return e(t(n))}}function Vt(e,t){for(var n=-1,r=e.length,i=0,o=[];++n<r;){var s=e[n];s!==t&&s!==a||(e[n]=a,o[i++]=n)}return o}function Ut(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function Ht(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function Gt(e){return Bt(e)?function(e){var t=Re.lastIndex=0;for(;Re.test(e);)++t;return t}(e):bt(e)}function Wt(e){return Bt(e)?function(e){return e.match(Re)||[]}(e):function(e){return e.split("")}(e)}function Yt(e){for(var t=e.length;t--&&X.test(e.charAt(t)););return t}var Xt=$t({"&":"&","<":"<",">":">",""":'"',"'":"'"});var Zt=function e(t){var n,r=(t=null==t?We:Zt.defaults(We.Object(),t,Zt.pick(We,ze))).Array,i=t.Date,X=t.Error,pe=t.Function,fe=t.Math,he=t.Object,ge=t.RegExp,me=t.String,ve=t.TypeError,be=r.prototype,ye=pe.prototype,xe=he.prototype,we=t["__core-js_shared__"],ke=ye.toString,Ae=xe.hasOwnProperty,Ee=0,Se=(n=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",$e=xe.toString,Ce=ke.call(he),_e=We._,Oe=ge("^"+ke.call(Ae).replace(G,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Te=Ze?t.Buffer:void 0,je=t.Symbol,Re=t.Uint8Array,Ne=Te?Te.allocUnsafe:void 0,qe=qt(he.getPrototypeOf,he),He=he.create,Ge=xe.propertyIsEnumerable,Ye=be.splice,Xe=je?je.isConcatSpreadable:void 0,Qe=je?je.iterator:void 0,Je=je?je.toStringTag:void 0,bt=function(){try{var e=eo(he,"defineProperty");return e({},"",{}),e}catch(e){}}(),$t=t.clearTimeout!==We.clearTimeout&&t.clearTimeout,Qt=i&&i.now!==We.Date.now&&i.now,Jt=t.setTimeout!==We.setTimeout&&t.setTimeout,Kt=fe.ceil,en=fe.floor,tn=he.getOwnPropertySymbols,nn=Te?Te.isBuffer:void 0,rn=t.isFinite,on=be.join,an=qt(he.keys,he),sn=fe.max,ln=fe.min,cn=i.now,un=t.parseInt,dn=fe.random,pn=be.reverse,fn=eo(t,"DataView"),hn=eo(t,"Map"),gn=eo(t,"Promise"),mn=eo(t,"Set"),vn=eo(t,"WeakMap"),bn=eo(he,"create"),yn=vn&&new vn,xn={},wn=_o(fn),kn=_o(hn),An=_o(gn),En=_o(mn),Sn=_o(vn),$n=je?je.prototype:void 0,Cn=$n?$n.valueOf:void 0,_n=$n?$n.toString:void 0;function On(e){if(Ha(e)&&!Ra(e)&&!(e instanceof Dn)){if(e instanceof Pn)return e;if(Ae.call(e,"__wrapped__"))return Oo(e)}return new Pn(e)}var Tn=function(){function e(){}return function(t){if(!Ua(t))return{};if(He)return He(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function jn(){}function Pn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Dn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Rn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function In(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Mn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Nn;++t<n;)this.add(e[t])}function zn(e){var t=this.__data__=new In(e);this.size=t.size}function Ln(e,t){var n=Ra(e),r=!n&&Da(e),i=!n&&!r&&za(e),o=!n&&!r&&!i&&Ka(e),a=n||r||i||o,s=a?Ot(e.length,me):[],l=s.length;for(var c in e)!t&&!Ae.call(e,c)||a&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||so(c,l))||s.push(c);return s}function Bn(e){var t=e.length;return t?e[Mr(0,t-1)]:void 0}function Fn(e,t){return So(bi(e),Zn(t,0,e.length))}function qn(e){return So(bi(e))}function Vn(e,t,n){(void 0!==n&&!Ta(e[t],n)||void 0===n&&!(t in e))&&Yn(e,t,n)}function Un(e,t,n){var r=e[t];Ae.call(e,t)&&Ta(r,n)&&(void 0!==n||t in e)||Yn(e,t,n)}function Hn(e,t){for(var n=e.length;n--;)if(Ta(e[n][0],t))return n;return-1}function Gn(e,t,n,r){return tr(e,(function(e,i,o){t(r,e,n(e),o)})),r}function Wn(e,t){return e&&yi(t,ws(t),e)}function Yn(e,t,n){"__proto__"==t&&bt?bt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Xn(e,t){for(var n=-1,i=t.length,o=r(i),a=null==e;++n<i;)o[n]=a?void 0:ms(e,t[n]);return o}function Zn(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}function Qn(e,t,n,r,i,o){var a,s=1&t,c=2&t,p=4&t;if(n&&(a=i?n(e,r,i,o):n(e)),void 0!==a)return a;if(!Ua(e))return e;var k=Ra(e);if(k){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ae.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return bi(e,a)}else{var D=ro(e),R=D==f||D==h;if(za(e))return pi(e,s);if(D==v||D==l||R&&!i){if(a=c||R?{}:oo(e),!s)return c?function(e,t){return yi(e,no(e),t)}(e,function(e,t){return e&&yi(t,ks(t),e)}(a,e)):function(e,t){return yi(e,to(e),t)}(e,Wn(a,e))}else{if(!Fe[D])return i?e:{};a=function(e,t,n){var r=e.constructor;switch(t){case A:return fi(e);case u:case d:return new r(+e);case E:return function(e,t){var n=t?fi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case S:case $:case C:case _:case O:case T:case"[object Uint8ClampedArray]":case j:case P:return hi(e,n);case g:return new r;case m:case x:return new r(e);case b:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case y:return new r;case w:return i=e,Cn?he(Cn.call(i)):{}}var i}(e,D,s)}}o||(o=new zn);var I=o.get(e);if(I)return I;o.set(e,a),Za(e)?e.forEach((function(r){a.add(Qn(r,t,n,r,e,o))})):Ga(e)&&e.forEach((function(r,i){a.set(i,Qn(r,t,n,i,e,o))}));var N=k?void 0:(p?c?Wi:Gi:c?ks:ws)(e);return st(N||e,(function(r,i){N&&(r=e[i=r]),Un(a,i,Qn(r,t,n,i,e,o))})),a}function Jn(e,t,n){var r=n.length;if(null==e)return!r;for(e=he(e);r--;){var i=n[r],o=t[i],a=e[i];if(void 0===a&&!(i in e)||!o(a))return!1}return!0}function Kn(e,t,n){if("function"!=typeof e)throw new ve(o);return wo((function(){e.apply(void 0,n)}),t)}function er(e,t,n,r){var i=-1,o=dt,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=ft(t,jt(n))),r?(o=pt,a=!1):t.length>=200&&(o=Dt,a=!1,t=new Mn(t));e:for(;++i<s;){var u=e[i],d=null==n?u:n(u);if(u=r||0!==u?u:0,a&&d==d){for(var p=c;p--;)if(t[p]===d)continue e;l.push(u)}else o(t,d,r)||l.push(u)}return l}On.templateSettings={escape:B,evaluate:F,interpolate:q,variable:"",imports:{_:On}},On.prototype=jn.prototype,On.prototype.constructor=On,Pn.prototype=Tn(jn.prototype),Pn.prototype.constructor=Pn,Dn.prototype=Tn(jn.prototype),Dn.prototype.constructor=Dn,Rn.prototype.clear=function(){this.__data__=bn?bn(null):{},this.size=0},Rn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Rn.prototype.get=function(e){var t=this.__data__;if(bn){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ae.call(t,e)?t[e]:void 0},Rn.prototype.has=function(e){var t=this.__data__;return bn?void 0!==t[e]:Ae.call(t,e)},Rn.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bn&&void 0===t?"__lodash_hash_undefined__":t,this},In.prototype.clear=function(){this.__data__=[],this.size=0},In.prototype.delete=function(e){var t=this.__data__,n=Hn(t,e);return!(n<0)&&(n==t.length-1?t.pop():Ye.call(t,n,1),--this.size,!0)},In.prototype.get=function(e){var t=this.__data__,n=Hn(t,e);return n<0?void 0:t[n][1]},In.prototype.has=function(e){return Hn(this.__data__,e)>-1},In.prototype.set=function(e,t){var n=this.__data__,r=Hn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Nn.prototype.clear=function(){this.size=0,this.__data__={hash:new Rn,map:new(hn||In),string:new Rn}},Nn.prototype.delete=function(e){var t=Ji(this,e).delete(e);return this.size-=t?1:0,t},Nn.prototype.get=function(e){return Ji(this,e).get(e)},Nn.prototype.has=function(e){return Ji(this,e).has(e)},Nn.prototype.set=function(e,t){var n=Ji(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Mn.prototype.add=Mn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Mn.prototype.has=function(e){return this.__data__.has(e)},zn.prototype.clear=function(){this.__data__=new In,this.size=0},zn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},zn.prototype.get=function(e){return this.__data__.get(e)},zn.prototype.has=function(e){return this.__data__.has(e)},zn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof In){var r=n.__data__;if(!hn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Nn(r)}return n.set(e,t),this.size=n.size,this};var tr=ki(cr),nr=ki(ur,!0);function rr(e,t){var n=!0;return tr(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function ir(e,t,n){for(var r=-1,i=e.length;++r<i;){var o=e[r],a=t(o);if(null!=a&&(void 0===s?a==a&&!Ja(a):n(a,s)))var s=a,l=o}return l}function or(e,t){var n=[];return tr(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}function ar(e,t,n,r,i){var o=-1,a=e.length;for(n||(n=ao),i||(i=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?ar(s,t-1,n,r,i):ht(i,s):r||(i[i.length]=s)}return i}var sr=Ai(),lr=Ai(!0);function cr(e,t){return e&&sr(e,t,ws)}function ur(e,t){return e&&lr(e,t,ws)}function dr(e,t){return ut(t,(function(t){return Fa(e[t])}))}function pr(e,t){for(var n=0,r=(t=li(t,e)).length;null!=e&&n<r;)e=e[Co(t[n++])];return n&&n==r?e:void 0}function fr(e,t,n){var r=t(e);return Ra(e)?r:ht(r,n(e))}function hr(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Je&&Je in he(e)?function(e){var t=Ae.call(e,Je),n=e[Je];try{e[Je]=void 0;var r=!0}catch(e){}var i=$e.call(e);r&&(t?e[Je]=n:delete e[Je]);return i}(e):function(e){return $e.call(e)}(e)}function gr(e,t){return e>t}function mr(e,t){return null!=e&&Ae.call(e,t)}function vr(e,t){return null!=e&&t in he(e)}function br(e,t,n){for(var i=n?pt:dt,o=e[0].length,a=e.length,s=a,l=r(a),c=1/0,u=[];s--;){var d=e[s];s&&t&&(d=ft(d,jt(t))),c=ln(d.length,c),l[s]=!n&&(t||o>=120&&d.length>=120)?new Mn(s&&d):void 0}d=e[0];var p=-1,f=l[0];e:for(;++p<o&&u.length<c;){var h=d[p],g=t?t(h):h;if(h=n||0!==h?h:0,!(f?Dt(f,g):i(u,g,n))){for(s=a;--s;){var m=l[s];if(!(m?Dt(m,g):i(e[s],g,n)))continue e}f&&f.push(g),u.push(h)}}return u}function yr(e,t,n){var r=null==(e=vo(e,t=li(t,e)))?e:e[Co(Bo(t))];return null==r?void 0:ot(r,e,n)}function xr(e){return Ha(e)&&hr(e)==l}function wr(e,t,n,r,i){return e===t||(null==e||null==t||!Ha(e)&&!Ha(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var a=Ra(e),s=Ra(t),f=a?c:ro(e),h=s?c:ro(t),k=(f=f==l?v:f)==v,S=(h=h==l?v:h)==v,$=f==h;if($&&za(e)){if(!za(t))return!1;a=!0,k=!1}if($&&!k)return o||(o=new zn),a||Ka(e)?Ui(e,t,n,r,i,o):function(e,t,n,r,i,o,a){switch(n){case E:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case A:return!(e.byteLength!=t.byteLength||!o(new Re(e),new Re(t)));case u:case d:case m:return Ta(+e,+t);case p:return e.name==t.name&&e.message==t.message;case b:case x:return e==t+"";case g:var s=Ft;case y:var l=1&r;if(s||(s=Ut),e.size!=t.size&&!l)return!1;var c=a.get(e);if(c)return c==t;r|=2,a.set(e,t);var f=Ui(s(e),s(t),r,i,o,a);return a.delete(e),f;case w:if(Cn)return Cn.call(e)==Cn.call(t)}return!1}(e,t,f,n,r,i,o);if(!(1&n)){var C=k&&Ae.call(e,"__wrapped__"),_=S&&Ae.call(t,"__wrapped__");if(C||_){var O=C?e.value():e,T=_?t.value():t;return o||(o=new zn),i(O,T,n,r,o)}}if(!$)return!1;return o||(o=new zn),function(e,t,n,r,i,o){var a=1&n,s=Gi(e),l=s.length,c=Gi(t).length;if(l!=c&&!a)return!1;var u=l;for(;u--;){var d=s[u];if(!(a?d in t:Ae.call(t,d)))return!1}var p=o.get(e),f=o.get(t);if(p&&f)return p==t&&f==e;var h=!0;o.set(e,t),o.set(t,e);var g=a;for(;++u<l;){d=s[u];var m=e[d],v=t[d];if(r)var b=a?r(v,m,d,t,e,o):r(m,v,d,e,t,o);if(!(void 0===b?m===v||i(m,v,n,r,o):b)){h=!1;break}g||(g="constructor"==d)}if(h&&!g){var y=e.constructor,x=t.constructor;y==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof x&&x instanceof x||(h=!1)}return o.delete(e),o.delete(t),h}(e,t,n,r,i,o)}(e,t,n,r,wr,i))}function kr(e,t,n,r){var i=n.length,o=i,a=!r;if(null==e)return!o;for(e=he(e);i--;){var s=n[i];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<o;){var l=(s=n[i])[0],c=e[l],u=s[1];if(a&&s[2]){if(void 0===c&&!(l in e))return!1}else{var d=new zn;if(r)var p=r(c,u,l,e,t,d);if(!(void 0===p?wr(u,c,3,r,d):p))return!1}}return!0}function Ar(e){return!(!Ua(e)||(t=e,Se&&Se in t))&&(Fa(e)?Oe:ae).test(_o(e));var t}function Er(e){return"function"==typeof e?e:null==e?Ws:"object"==typeof e?Ra(e)?Tr(e[0],e[1]):Or(e):nl(e)}function Sr(e){if(!fo(e))return an(e);var t=[];for(var n in he(e))Ae.call(e,n)&&"constructor"!=n&&t.push(n);return t}function $r(e){if(!Ua(e))return function(e){var t=[];if(null!=e)for(var n in he(e))t.push(n);return t}(e);var t=fo(e),n=[];for(var r in e)("constructor"!=r||!t&&Ae.call(e,r))&&n.push(r);return n}function Cr(e,t){return e<t}function _r(e,t){var n=-1,i=Na(e)?r(e.length):[];return tr(e,(function(e,r,o){i[++n]=t(e,r,o)})),i}function Or(e){var t=Ki(e);return 1==t.length&&t[0][2]?go(t[0][0],t[0][1]):function(n){return n===e||kr(n,e,t)}}function Tr(e,t){return co(e)&&ho(t)?go(Co(e),t):function(n){var r=ms(n,e);return void 0===r&&r===t?vs(n,e):wr(t,r,3)}}function jr(e,t,n,r,i){e!==t&&sr(t,(function(o,a){if(i||(i=new zn),Ua(o))!function(e,t,n,r,i,o,a){var s=yo(e,n),l=yo(t,n),c=a.get(l);if(c)return void Vn(e,n,c);var u=o?o(s,l,n+"",e,t,a):void 0,d=void 0===u;if(d){var p=Ra(l),f=!p&&za(l),h=!p&&!f&&Ka(l);u=l,p||f||h?Ra(s)?u=s:Ma(s)?u=bi(s):f?(d=!1,u=pi(l,!0)):h?(d=!1,u=hi(l,!0)):u=[]:Ya(l)||Da(l)?(u=s,Da(s)?u=ss(s):Ua(s)&&!Fa(s)||(u=oo(l))):d=!1}d&&(a.set(l,u),i(u,l,r,o,a),a.delete(l));Vn(e,n,u)}(e,t,a,n,jr,r,i);else{var s=r?r(yo(e,a),o,a+"",e,t,i):void 0;void 0===s&&(s=o),Vn(e,a,s)}}),ks)}function Pr(e,t){var n=e.length;if(n)return so(t+=t<0?n:0,n)?e[t]:void 0}function Dr(e,t,n){t=t.length?ft(t,(function(e){return Ra(e)?function(t){return pr(t,1===e.length?e[0]:e)}:e})):[Ws];var r=-1;return t=ft(t,jt(Qi())),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(_r(e,(function(e,n,i){return{criteria:ft(t,(function(t){return t(e)})),index:++r,value:e}})),(function(e,t){return function(e,t,n){var r=-1,i=e.criteria,o=t.criteria,a=i.length,s=n.length;for(;++r<a;){var l=gi(i[r],o[r]);if(l){if(r>=s)return l;var c=n[r];return l*("desc"==c?-1:1)}}return e.index-t.index}(e,t,n)}))}function Rr(e,t,n){for(var r=-1,i=t.length,o={};++r<i;){var a=t[r],s=pr(e,a);n(s,a)&&qr(o,li(a,e),s)}return o}function Ir(e,t,n,r){var i=r?kt:wt,o=-1,a=t.length,s=e;for(e===t&&(t=bi(t)),n&&(s=ft(e,jt(n)));++o<a;)for(var l=0,c=t[o],u=n?n(c):c;(l=i(s,u,l,r))>-1;)s!==e&&Ye.call(s,l,1),Ye.call(e,l,1);return e}function Nr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;so(i)?Ye.call(e,i,1):ei(e,i)}}return e}function Mr(e,t){return e+en(dn()*(t-e+1))}function zr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=en(t/2))&&(e+=e)}while(t);return n}function Lr(e,t){return ko(mo(e,t,Ws),e+"")}function Br(e){return Bn(Ts(e))}function Fr(e,t){var n=Ts(e);return So(n,Zn(t,0,n.length))}function qr(e,t,n,r){if(!Ua(e))return e;for(var i=-1,o=(t=li(t,e)).length,a=o-1,s=e;null!=s&&++i<o;){var l=Co(t[i]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(i!=a){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=Ua(u)?u:so(t[i+1])?[]:{})}Un(s,l,c),s=s[l]}return e}var Vr=yn?function(e,t){return yn.set(e,t),e}:Ws,Ur=bt?function(e,t){return bt(e,"toString",{configurable:!0,enumerable:!1,value:Us(t),writable:!0})}:Ws;function Hr(e){return So(Ts(e))}function Gr(e,t,n){var i=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i<o;)a[i]=e[i+t];return a}function Wr(e,t){var n;return tr(e,(function(e,r,i){return!(n=t(e,r,i))})),!!n}function Yr(e,t,n){var r=0,i=null==e?r:e.length;if("number"==typeof t&&t==t&&i<=2147483647){for(;r<i;){var o=r+i>>>1,a=e[o];null!==a&&!Ja(a)&&(n?a<=t:a<t)?r=o+1:i=o}return i}return Xr(e,t,Ws,n)}function Xr(e,t,n,r){var i=0,o=null==e?0:e.length;if(0===o)return 0;for(var a=(t=n(t))!=t,s=null===t,l=Ja(t),c=void 0===t;i<o;){var u=en((i+o)/2),d=n(e[u]),p=void 0!==d,f=null===d,h=d==d,g=Ja(d);if(a)var m=r||h;else m=c?h&&(r||p):s?h&&p&&(r||!f):l?h&&p&&!f&&(r||!g):!f&&!g&&(r?d<=t:d<t);m?i=u+1:o=u}return ln(o,4294967294)}function Zr(e,t){for(var n=-1,r=e.length,i=0,o=[];++n<r;){var a=e[n],s=t?t(a):a;if(!n||!Ta(s,l)){var l=s;o[i++]=0===a?0:a}}return o}function Qr(e){return"number"==typeof e?e:Ja(e)?NaN:+e}function Jr(e){if("string"==typeof e)return e;if(Ra(e))return ft(e,Jr)+"";if(Ja(e))return _n?_n.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Kr(e,t,n){var r=-1,i=dt,o=e.length,a=!0,s=[],l=s;if(n)a=!1,i=pt;else if(o>=200){var c=t?null:zi(e);if(c)return Ut(c);a=!1,i=Dt,l=new Mn}else l=t?[]:s;e:for(;++r<o;){var u=e[r],d=t?t(u):u;if(u=n||0!==u?u:0,a&&d==d){for(var p=l.length;p--;)if(l[p]===d)continue e;t&&l.push(d),s.push(u)}else i(l,d,n)||(l!==s&&l.push(d),s.push(u))}return s}function ei(e,t){return null==(e=vo(e,t=li(t,e)))||delete e[Co(Bo(t))]}function ti(e,t,n,r){return qr(e,t,n(pr(e,t)),r)}function ni(e,t,n,r){for(var i=e.length,o=r?i:-1;(r?o--:++o<i)&&t(e[o],o,e););return n?Gr(e,r?0:o,r?o+1:i):Gr(e,r?o+1:0,r?i:o)}function ri(e,t){var n=e;return n instanceof Dn&&(n=n.value()),gt(t,(function(e,t){return t.func.apply(t.thisArg,ht([e],t.args))}),n)}function ii(e,t,n){var i=e.length;if(i<2)return i?Kr(e[0]):[];for(var o=-1,a=r(i);++o<i;)for(var s=e[o],l=-1;++l<i;)l!=o&&(a[o]=er(a[o]||s,e[l],t,n));return Kr(ar(a,1),t,n)}function oi(e,t,n){for(var r=-1,i=e.length,o=t.length,a={};++r<i;){var s=r<o?t[r]:void 0;n(a,e[r],s)}return a}function ai(e){return Ma(e)?e:[]}function si(e){return"function"==typeof e?e:Ws}function li(e,t){return Ra(e)?e:co(e,t)?[e]:$o(ls(e))}var ci=Lr;function ui(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:Gr(e,t,n)}var di=$t||function(e){return We.clearTimeout(e)};function pi(e,t){if(t)return e.slice();var n=e.length,r=Ne?Ne(n):new e.constructor(n);return e.copy(r),r}function fi(e){var t=new e.constructor(e.byteLength);return new Re(t).set(new Re(e)),t}function hi(e,t){var n=t?fi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function gi(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=e==e,o=Ja(e),a=void 0!==t,s=null===t,l=t==t,c=Ja(t);if(!s&&!c&&!o&&e>t||o&&a&&l&&!s&&!c||r&&a&&l||!n&&l||!i)return 1;if(!r&&!o&&!c&&e<t||c&&n&&i&&!r&&!o||s&&n&&i||!a&&i||!l)return-1}return 0}function mi(e,t,n,i){for(var o=-1,a=e.length,s=n.length,l=-1,c=t.length,u=sn(a-s,0),d=r(c+u),p=!i;++l<c;)d[l]=t[l];for(;++o<s;)(p||o<a)&&(d[n[o]]=e[o]);for(;u--;)d[l++]=e[o++];return d}function vi(e,t,n,i){for(var o=-1,a=e.length,s=-1,l=n.length,c=-1,u=t.length,d=sn(a-l,0),p=r(d+u),f=!i;++o<d;)p[o]=e[o];for(var h=o;++c<u;)p[h+c]=t[c];for(;++s<l;)(f||o<a)&&(p[h+n[s]]=e[o++]);return p}function bi(e,t){var n=-1,i=e.length;for(t||(t=r(i));++n<i;)t[n]=e[n];return t}function yi(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o<a;){var s=t[o],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),i?Yn(n,s,l):Un(n,s,l)}return n}function xi(e,t){return function(n,r){var i=Ra(n)?at:Gn,o=t?t():{};return i(n,e,Qi(r,2),o)}}function wi(e){return Lr((function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&lo(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=he(t);++r<i;){var s=n[r];s&&e(t,s,r,o)}return t}))}function ki(e,t){return function(n,r){if(null==n)return n;if(!Na(n))return e(n,r);for(var i=n.length,o=t?i:-1,a=he(n);(t?o--:++o<i)&&!1!==r(a[o],o,a););return n}}function Ai(e){return function(t,n,r){for(var i=-1,o=he(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}function Ei(e){return function(t){var n=Bt(t=ls(t))?Wt(t):void 0,r=n?n[0]:t.charAt(0),i=n?ui(n,1).join(""):t.slice(1);return r[e]()+i}}function Si(e){return function(t){return gt(Fs(Ds(t).replace(Pe,"")),e,"")}}function $i(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Tn(e.prototype),r=e.apply(n,t);return Ua(r)?r:n}}function Ci(e){return function(t,n,r){var i=he(t);if(!Na(t)){var o=Qi(n,3);t=ws(t),n=function(e){return o(i[e],e,i)}}var a=e(t,n,r);return a>-1?i[o?t[a]:a]:void 0}}function _i(e){return Hi((function(t){var n=t.length,r=n,i=Pn.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new ve(o);if(i&&!s&&"wrapper"==Xi(a))var s=new Pn([],!0)}for(r=s?r:n;++r<n;){var l=Xi(a=t[r]),c="wrapper"==l?Yi(a):void 0;s=c&&uo(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?s[Xi(c[0])].apply(s,c[3]):1==a.length&&uo(a)?s[l]():s.thru(a)}return function(){var e=arguments,r=e[0];if(s&&1==e.length&&Ra(r))return s.plant(r).value();for(var i=0,o=n?t[i].apply(this,e):r;++i<n;)o=t[i].call(this,o);return o}}))}function Oi(e,t,n,i,o,a,s,l,c,u){var d=128&t,p=1&t,f=2&t,h=24&t,g=512&t,m=f?void 0:$i(e);return function v(){for(var b=arguments.length,y=r(b),x=b;x--;)y[x]=arguments[x];if(h)var w=Zi(v),k=Nt(y,w);if(i&&(y=mi(y,i,o,h)),a&&(y=vi(y,a,s,h)),b-=k,h&&b<u){var A=Vt(y,w);return Ni(e,t,Oi,v.placeholder,n,y,A,l,c,u-b)}var E=p?n:this,S=f?E[e]:e;return b=y.length,l?y=bo(y,l):g&&b>1&&y.reverse(),d&&c<b&&(y.length=c),this&&this!==We&&this instanceof v&&(S=m||$i(S)),S.apply(E,y)}}function Ti(e,t){return function(n,r){return function(e,t,n,r){return cr(e,(function(e,i,o){t(r,n(e),i,o)})),r}(n,e,t(r),{})}}function ji(e,t){return function(n,r){var i;if(void 0===n&&void 0===r)return t;if(void 0!==n&&(i=n),void 0!==r){if(void 0===i)return r;"string"==typeof n||"string"==typeof r?(n=Jr(n),r=Jr(r)):(n=Qr(n),r=Qr(r)),i=e(n,r)}return i}}function Pi(e){return Hi((function(t){return t=ft(t,jt(Qi())),Lr((function(n){var r=this;return e(t,(function(e){return ot(e,r,n)}))}))}))}function Di(e,t){var n=(t=void 0===t?" ":Jr(t)).length;if(n<2)return n?zr(t,e):t;var r=zr(t,Kt(e/Gt(t)));return Bt(t)?ui(Wt(r),0,e).join(""):r.slice(0,e)}function Ri(e){return function(t,n,i){return i&&"number"!=typeof i&&lo(t,n,i)&&(n=i=void 0),t=rs(t),void 0===n?(n=t,t=0):n=rs(n),function(e,t,n,i){for(var o=-1,a=sn(Kt((t-e)/(n||1)),0),s=r(a);a--;)s[i?a:++o]=e,e+=n;return s}(t,n,i=void 0===i?t<n?1:-1:rs(i),e)}}function Ii(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=as(t),n=as(n)),e(t,n)}}function Ni(e,t,n,r,i,o,a,s,l,c){var u=8&t;t|=u?32:64,4&(t&=~(u?64:32))||(t&=-4);var d=[e,t,i,u?o:void 0,u?a:void 0,u?void 0:o,u?void 0:a,s,l,c],p=n.apply(void 0,d);return uo(e)&&xo(p,d),p.placeholder=r,Ao(p,e,t)}function Mi(e){var t=fe[e];return function(e,n){if(e=as(e),(n=null==n?0:ln(is(n),292))&&rn(e)){var r=(ls(e)+"e").split("e");return+((r=(ls(t(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}var zi=mn&&1/Ut(new mn([,-0]))[1]==1/0?function(e){return new mn(e)}:Js;function Li(e){return function(t){var n=ro(t);return n==g?Ft(t):n==y?Ht(t):function(e,t){return ft(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Bi(e,t,n,i,s,l,c,u){var d=2&t;if(!d&&"function"!=typeof e)throw new ve(o);var p=i?i.length:0;if(p||(t&=-97,i=s=void 0),c=void 0===c?c:sn(is(c),0),u=void 0===u?u:is(u),p-=s?s.length:0,64&t){var f=i,h=s;i=s=void 0}var g=d?void 0:Yi(e),m=[e,t,n,i,s,f,h,l,c,u];if(g&&function(e,t){var n=e[1],r=t[1],i=n|r,o=i<131,s=128==r&&8==n||128==r&&256==n&&e[7].length<=t[8]||384==r&&t[7].length<=t[8]&&8==n;if(!o&&!s)return e;1&r&&(e[2]=t[2],i|=1&n?0:4);var l=t[3];if(l){var c=e[3];e[3]=c?mi(c,l,t[4]):l,e[4]=c?Vt(e[3],a):t[4]}(l=t[5])&&(c=e[5],e[5]=c?vi(c,l,t[6]):l,e[6]=c?Vt(e[5],a):t[6]);(l=t[7])&&(e[7]=l);128&r&&(e[8]=null==e[8]?t[8]:ln(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=i}(m,g),e=m[0],t=m[1],n=m[2],i=m[3],s=m[4],!(u=m[9]=void 0===m[9]?d?0:e.length:sn(m[9]-p,0))&&24&t&&(t&=-25),t&&1!=t)v=8==t||16==t?function(e,t,n){var i=$i(e);return function o(){for(var a=arguments.length,s=r(a),l=a,c=Zi(o);l--;)s[l]=arguments[l];var u=a<3&&s[0]!==c&&s[a-1]!==c?[]:Vt(s,c);if((a-=u.length)<n)return Ni(e,t,Oi,o.placeholder,void 0,s,u,void 0,void 0,n-a);var d=this&&this!==We&&this instanceof o?i:e;return ot(d,this,s)}}(e,t,u):32!=t&&33!=t||s.length?Oi.apply(void 0,m):function(e,t,n,i){var o=1&t,a=$i(e);return function t(){for(var s=-1,l=arguments.length,c=-1,u=i.length,d=r(u+l),p=this&&this!==We&&this instanceof t?a:e;++c<u;)d[c]=i[c];for(;l--;)d[c++]=arguments[++s];return ot(p,o?n:this,d)}}(e,t,n,i);else var v=function(e,t,n){var r=1&t,i=$i(e);return function t(){var o=this&&this!==We&&this instanceof t?i:e;return o.apply(r?n:this,arguments)}}(e,t,n);return Ao((g?Vr:xo)(v,m),e,t)}function Fi(e,t,n,r){return void 0===e||Ta(e,xe[n])&&!Ae.call(r,n)?t:e}function qi(e,t,n,r,i,o){return Ua(e)&&Ua(t)&&(o.set(t,e),jr(e,t,void 0,qi,o),o.delete(t)),e}function Vi(e){return Ya(e)?void 0:e}function Ui(e,t,n,r,i,o){var a=1&n,s=e.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=o.get(e),u=o.get(t);if(c&&u)return c==t&&u==e;var d=-1,p=!0,f=2&n?new Mn:void 0;for(o.set(e,t),o.set(t,e);++d<s;){var h=e[d],g=t[d];if(r)var m=a?r(g,h,d,t,e,o):r(h,g,d,e,t,o);if(void 0!==m){if(m)continue;p=!1;break}if(f){if(!vt(t,(function(e,t){if(!Dt(f,t)&&(h===e||i(h,e,n,r,o)))return f.push(t)}))){p=!1;break}}else if(h!==g&&!i(h,g,n,r,o)){p=!1;break}}return o.delete(e),o.delete(t),p}function Hi(e){return ko(mo(e,void 0,Io),e+"")}function Gi(e){return fr(e,ws,to)}function Wi(e){return fr(e,ks,no)}var Yi=yn?function(e){return yn.get(e)}:Js;function Xi(e){for(var t=e.name+"",n=xn[t],r=Ae.call(xn,t)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==e)return i.name}return t}function Zi(e){return(Ae.call(On,"placeholder")?On:e).placeholder}function Qi(){var e=On.iteratee||Ys;return e=e===Ys?Er:e,arguments.length?e(arguments[0],arguments[1]):e}function Ji(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function Ki(e){for(var t=ws(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ho(i)]}return t}function eo(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ar(n)?n:void 0}var to=tn?function(e){return null==e?[]:(e=he(e),ut(tn(e),(function(t){return Ge.call(e,t)})))}:ol,no=tn?function(e){for(var t=[];e;)ht(t,to(e)),e=qe(e);return t}:ol,ro=hr;function io(e,t,n){for(var r=-1,i=(t=li(t,e)).length,o=!1;++r<i;){var a=Co(t[r]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++r!=i?o:!!(i=null==e?0:e.length)&&Va(i)&&so(a,i)&&(Ra(e)||Da(e))}function oo(e){return"function"!=typeof e.constructor||fo(e)?{}:Tn(qe(e))}function ao(e){return Ra(e)||Da(e)||!!(Xe&&e&&e[Xe])}function so(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&le.test(e))&&e>-1&&e%1==0&&e<t}function lo(e,t,n){if(!Ua(n))return!1;var r=typeof t;return!!("number"==r?Na(n)&&so(t,n.length):"string"==r&&t in n)&&Ta(n[t],e)}function co(e,t){if(Ra(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ja(e))||(U.test(e)||!V.test(e)||null!=t&&e in he(t))}function uo(e){var t=Xi(e),n=On[t];if("function"!=typeof n||!(t in Dn.prototype))return!1;if(e===n)return!0;var r=Yi(n);return!!r&&e===r[0]}(fn&&ro(new fn(new ArrayBuffer(1)))!=E||hn&&ro(new hn)!=g||gn&&"[object Promise]"!=ro(gn.resolve())||mn&&ro(new mn)!=y||vn&&ro(new vn)!=k)&&(ro=function(e){var t=hr(e),n=t==v?e.constructor:void 0,r=n?_o(n):"";if(r)switch(r){case wn:return E;case kn:return g;case An:return"[object Promise]";case En:return y;case Sn:return k}return t});var po=we?Fa:al;function fo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||xe)}function ho(e){return e==e&&!Ua(e)}function go(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in he(n)))}}function mo(e,t,n){return t=sn(void 0===t?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=sn(i.length-t,0),s=r(a);++o<a;)s[o]=i[t+o];o=-1;for(var l=r(t+1);++o<t;)l[o]=i[o];return l[t]=n(s),ot(e,this,l)}}function vo(e,t){return t.length<2?e:pr(e,Gr(t,0,-1))}function bo(e,t){for(var n=e.length,r=ln(t.length,n),i=bi(e);r--;){var o=t[r];e[r]=so(o,n)?i[o]:void 0}return e}function yo(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var xo=Eo(Vr),wo=Jt||function(e,t){return We.setTimeout(e,t)},ko=Eo(Ur);function Ao(e,t,n){var r=t+"";return ko(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(Z,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return st(s,(function(n){var r="_."+n[0];t&n[1]&&!dt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(Q);return t?t[1].split(J):[]}(r),n)))}function Eo(e){var t=0,n=0;return function(){var r=cn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function So(e,t){var n=-1,r=e.length,i=r-1;for(t=void 0===t?r:t;++n<t;){var o=Mr(n,i),a=e[o];e[o]=e[n],e[n]=a}return e.length=t,e}var $o=function(e){var t=Ea(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(H,(function(e,n,r,i){t.push(r?i.replace(te,"$1"):n||e)})),t}));function Co(e){if("string"==typeof e||Ja(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function _o(e){if(null!=e){try{return ke.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Oo(e){if(e instanceof Dn)return e.clone();var t=new Pn(e.__wrapped__,e.__chain__);return t.__actions__=bi(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var To=Lr((function(e,t){return Ma(e)?er(e,ar(t,1,Ma,!0)):[]})),jo=Lr((function(e,t){var n=Bo(t);return Ma(n)&&(n=void 0),Ma(e)?er(e,ar(t,1,Ma,!0),Qi(n,2)):[]})),Po=Lr((function(e,t){var n=Bo(t);return Ma(n)&&(n=void 0),Ma(e)?er(e,ar(t,1,Ma,!0),void 0,n):[]}));function Do(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:is(n);return i<0&&(i=sn(r+i,0)),xt(e,Qi(t,3),i)}function Ro(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r-1;return void 0!==n&&(i=is(n),i=n<0?sn(r+i,0):ln(i,r-1)),xt(e,Qi(t,3),i,!0)}function Io(e){return(null==e?0:e.length)?ar(e,1):[]}function No(e){return e&&e.length?e[0]:void 0}var Mo=Lr((function(e){var t=ft(e,ai);return t.length&&t[0]===e[0]?br(t):[]})),zo=Lr((function(e){var t=Bo(e),n=ft(e,ai);return t===Bo(n)?t=void 0:n.pop(),n.length&&n[0]===e[0]?br(n,Qi(t,2)):[]})),Lo=Lr((function(e){var t=Bo(e),n=ft(e,ai);return(t="function"==typeof t?t:void 0)&&n.pop(),n.length&&n[0]===e[0]?br(n,void 0,t):[]}));function Bo(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}var Fo=Lr(qo);function qo(e,t){return e&&e.length&&t&&t.length?Ir(e,t):e}var Vo=Hi((function(e,t){var n=null==e?0:e.length,r=Xn(e,t);return Nr(e,ft(t,(function(e){return so(e,n)?+e:e})).sort(gi)),r}));function Uo(e){return null==e?e:pn.call(e)}var Ho=Lr((function(e){return Kr(ar(e,1,Ma,!0))})),Go=Lr((function(e){var t=Bo(e);return Ma(t)&&(t=void 0),Kr(ar(e,1,Ma,!0),Qi(t,2))})),Wo=Lr((function(e){var t=Bo(e);return t="function"==typeof t?t:void 0,Kr(ar(e,1,Ma,!0),void 0,t)}));function Yo(e){if(!e||!e.length)return[];var t=0;return e=ut(e,(function(e){if(Ma(e))return t=sn(e.length,t),!0})),Ot(t,(function(t){return ft(e,St(t))}))}function Xo(e,t){if(!e||!e.length)return[];var n=Yo(e);return null==t?n:ft(n,(function(e){return ot(t,void 0,e)}))}var Zo=Lr((function(e,t){return Ma(e)?er(e,t):[]})),Qo=Lr((function(e){return ii(ut(e,Ma))})),Jo=Lr((function(e){var t=Bo(e);return Ma(t)&&(t=void 0),ii(ut(e,Ma),Qi(t,2))})),Ko=Lr((function(e){var t=Bo(e);return t="function"==typeof t?t:void 0,ii(ut(e,Ma),void 0,t)})),ea=Lr(Yo);var ta=Lr((function(e){var t=e.length,n=t>1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Xo(e,n)}));function na(e){var t=On(e);return t.__chain__=!0,t}function ra(e,t){return t(e)}var ia=Hi((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return Xn(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Dn&&so(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:ra,args:[i],thisArg:void 0}),new Pn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var oa=xi((function(e,t,n){Ae.call(e,n)?++e[n]:Yn(e,n,1)}));var aa=Ci(Do),sa=Ci(Ro);function la(e,t){return(Ra(e)?st:tr)(e,Qi(t,3))}function ca(e,t){return(Ra(e)?lt:nr)(e,Qi(t,3))}var ua=xi((function(e,t,n){Ae.call(e,n)?e[n].push(t):Yn(e,n,[t])}));var da=Lr((function(e,t,n){var i=-1,o="function"==typeof t,a=Na(e)?r(e.length):[];return tr(e,(function(e){a[++i]=o?ot(t,e,n):yr(e,t,n)})),a})),pa=xi((function(e,t,n){Yn(e,n,t)}));function fa(e,t){return(Ra(e)?ft:_r)(e,Qi(t,3))}var ha=xi((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ga=Lr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&lo(e,t[0],t[1])?t=[]:n>2&&lo(t[0],t[1],t[2])&&(t=[t[0]]),Dr(e,ar(t,1),[])})),ma=Qt||function(){return We.Date.now()};function va(e,t,n){return t=n?void 0:t,Bi(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function ba(e,t){var n;if("function"!=typeof t)throw new ve(o);return e=is(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ya=Lr((function(e,t,n){var r=1;if(n.length){var i=Vt(n,Zi(ya));r|=32}return Bi(e,r,t,n,i)})),xa=Lr((function(e,t,n){var r=3;if(n.length){var i=Vt(n,Zi(xa));r|=32}return Bi(t,r,e,n,i)}));function wa(e,t,n){var r,i,a,s,l,c,u=0,d=!1,p=!1,f=!0;if("function"!=typeof e)throw new ve(o);function h(t){var n=r,o=i;return r=i=void 0,u=t,s=e.apply(o,n)}function g(e){return u=e,l=wo(v,t),d?h(e):s}function m(e){var n=e-c;return void 0===c||n>=t||n<0||p&&e-u>=a}function v(){var e=ma();if(m(e))return b(e);l=wo(v,function(e){var n=t-(e-c);return p?ln(n,a-(e-u)):n}(e))}function b(e){return l=void 0,f&&r?h(e):(r=i=void 0,s)}function y(){var e=ma(),n=m(e);if(r=arguments,i=this,c=e,n){if(void 0===l)return g(c);if(p)return di(l),l=wo(v,t),h(c)}return void 0===l&&(l=wo(v,t)),s}return t=as(t)||0,Ua(n)&&(d=!!n.leading,a=(p="maxWait"in n)?sn(as(n.maxWait)||0,t):a,f="trailing"in n?!!n.trailing:f),y.cancel=function(){void 0!==l&&di(l),u=0,r=c=i=l=void 0},y.flush=function(){return void 0===l?s:b(ma())},y}var ka=Lr((function(e,t){return Kn(e,1,t)})),Aa=Lr((function(e,t,n){return Kn(e,as(t)||0,n)}));function Ea(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new ve(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Ea.Cache||Nn),n}function Sa(e){if("function"!=typeof e)throw new ve(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Ea.Cache=Nn;var $a=ci((function(e,t){var n=(t=1==t.length&&Ra(t[0])?ft(t[0],jt(Qi())):ft(ar(t,1),jt(Qi()))).length;return Lr((function(r){for(var i=-1,o=ln(r.length,n);++i<o;)r[i]=t[i].call(this,r[i]);return ot(e,this,r)}))})),Ca=Lr((function(e,t){return Bi(e,32,void 0,t,Vt(t,Zi(Ca)))})),_a=Lr((function(e,t){return Bi(e,64,void 0,t,Vt(t,Zi(_a)))})),Oa=Hi((function(e,t){return Bi(e,256,void 0,void 0,void 0,t)}));function Ta(e,t){return e===t||e!=e&&t!=t}var ja=Ii(gr),Pa=Ii((function(e,t){return e>=t})),Da=xr(function(){return arguments}())?xr:function(e){return Ha(e)&&Ae.call(e,"callee")&&!Ge.call(e,"callee")},Ra=r.isArray,Ia=Ke?jt(Ke):function(e){return Ha(e)&&hr(e)==A};function Na(e){return null!=e&&Va(e.length)&&!Fa(e)}function Ma(e){return Ha(e)&&Na(e)}var za=nn||al,La=et?jt(et):function(e){return Ha(e)&&hr(e)==d};function Ba(e){if(!Ha(e))return!1;var t=hr(e);return t==p||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Ya(e)}function Fa(e){if(!Ua(e))return!1;var t=hr(e);return t==f||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function qa(e){return"number"==typeof e&&e==is(e)}function Va(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ua(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ha(e){return null!=e&&"object"==typeof e}var Ga=tt?jt(tt):function(e){return Ha(e)&&ro(e)==g};function Wa(e){return"number"==typeof e||Ha(e)&&hr(e)==m}function Ya(e){if(!Ha(e)||hr(e)!=v)return!1;var t=qe(e);if(null===t)return!0;var n=Ae.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ke.call(n)==Ce}var Xa=nt?jt(nt):function(e){return Ha(e)&&hr(e)==b};var Za=rt?jt(rt):function(e){return Ha(e)&&ro(e)==y};function Qa(e){return"string"==typeof e||!Ra(e)&&Ha(e)&&hr(e)==x}function Ja(e){return"symbol"==typeof e||Ha(e)&&hr(e)==w}var Ka=it?jt(it):function(e){return Ha(e)&&Va(e.length)&&!!Be[hr(e)]};var es=Ii(Cr),ts=Ii((function(e,t){return e<=t}));function ns(e){if(!e)return[];if(Na(e))return Qa(e)?Wt(e):bi(e);if(Qe&&e[Qe])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Qe]());var t=ro(e);return(t==g?Ft:t==y?Ut:Ts)(e)}function rs(e){return e?(e=as(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function is(e){var t=rs(e),n=t%1;return t==t?n?t-n:t:0}function os(e){return e?Zn(is(e),0,4294967295):0}function as(e){if("number"==typeof e)return e;if(Ja(e))return NaN;if(Ua(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ua(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Tt(e);var n=oe.test(e);return n||se.test(e)?Ue(e.slice(2),n?2:8):ie.test(e)?NaN:+e}function ss(e){return yi(e,ks(e))}function ls(e){return null==e?"":Jr(e)}var cs=wi((function(e,t){if(fo(t)||Na(t))yi(t,ws(t),e);else for(var n in t)Ae.call(t,n)&&Un(e,n,t[n])})),us=wi((function(e,t){yi(t,ks(t),e)})),ds=wi((function(e,t,n,r){yi(t,ks(t),e,r)})),ps=wi((function(e,t,n,r){yi(t,ws(t),e,r)})),fs=Hi(Xn);var hs=Lr((function(e,t){e=he(e);var n=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&lo(t[0],t[1],i)&&(r=1);++n<r;)for(var o=t[n],a=ks(o),s=-1,l=a.length;++s<l;){var c=a[s],u=e[c];(void 0===u||Ta(u,xe[c])&&!Ae.call(e,c))&&(e[c]=o[c])}return e})),gs=Lr((function(e){return e.push(void 0,qi),ot(Es,void 0,e)}));function ms(e,t,n){var r=null==e?void 0:pr(e,t);return void 0===r?n:r}function vs(e,t){return null!=e&&io(e,t,vr)}var bs=Ti((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=$e.call(t)),e[t]=n}),Us(Ws)),ys=Ti((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=$e.call(t)),Ae.call(e,t)?e[t].push(n):e[t]=[n]}),Qi),xs=Lr(yr);function ws(e){return Na(e)?Ln(e):Sr(e)}function ks(e){return Na(e)?Ln(e,!0):$r(e)}var As=wi((function(e,t,n){jr(e,t,n)})),Es=wi((function(e,t,n,r){jr(e,t,n,r)})),Ss=Hi((function(e,t){var n={};if(null==e)return n;var r=!1;t=ft(t,(function(t){return t=li(t,e),r||(r=t.length>1),t})),yi(e,Wi(e),n),r&&(n=Qn(n,7,Vi));for(var i=t.length;i--;)ei(n,t[i]);return n}));var $s=Hi((function(e,t){return null==e?{}:function(e,t){return Rr(e,t,(function(t,n){return vs(e,n)}))}(e,t)}));function Cs(e,t){if(null==e)return{};var n=ft(Wi(e),(function(e){return[e]}));return t=Qi(t),Rr(e,n,(function(e,n){return t(e,n[0])}))}var _s=Li(ws),Os=Li(ks);function Ts(e){return null==e?[]:Pt(e,ws(e))}var js=Si((function(e,t,n){return t=t.toLowerCase(),e+(n?Ps(t):t)}));function Ps(e){return Bs(ls(e).toLowerCase())}function Ds(e){return(e=ls(e))&&e.replace(ce,Mt).replace(De,"")}var Rs=Si((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Is=Si((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Ns=Ei("toLowerCase");var Ms=Si((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var zs=Si((function(e,t,n){return e+(n?" ":"")+Bs(t)}));var Ls=Si((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Bs=Ei("toUpperCase");function Fs(e,t,n){return e=ls(e),void 0===(t=n?void 0:t)?function(e){return Me.test(e)}(e)?function(e){return e.match(Ie)||[]}(e):function(e){return e.match(K)||[]}(e):e.match(t)||[]}var qs=Lr((function(e,t){try{return ot(e,void 0,t)}catch(e){return Ba(e)?e:new X(e)}})),Vs=Hi((function(e,t){return st(t,(function(t){t=Co(t),Yn(e,t,ya(e[t],e))})),e}));function Us(e){return function(){return e}}var Hs=_i(),Gs=_i(!0);function Ws(e){return e}function Ys(e){return Er("function"==typeof e?e:Qn(e,1))}var Xs=Lr((function(e,t){return function(n){return yr(n,e,t)}})),Zs=Lr((function(e,t){return function(n){return yr(e,n,t)}}));function Qs(e,t,n){var r=ws(t),i=dr(t,r);null!=n||Ua(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=dr(t,ws(t)));var o=!(Ua(n)&&"chain"in n&&!n.chain),a=Fa(e);return st(i,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__),i=n.__actions__=bi(this.__actions__);return i.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,ht([this.value()],arguments))})})),e}function Js(){}var Ks=Pi(ft),el=Pi(ct),tl=Pi(vt);function nl(e){return co(e)?St(Co(e)):function(e){return function(t){return pr(t,e)}}(e)}var rl=Ri(),il=Ri(!0);function ol(){return[]}function al(){return!1}var sl=ji((function(e,t){return e+t}),0),ll=Mi("ceil"),cl=ji((function(e,t){return e/t}),1),ul=Mi("floor");var dl,pl=ji((function(e,t){return e*t}),1),fl=Mi("round"),hl=ji((function(e,t){return e-t}),0);return On.after=function(e,t){if("function"!=typeof t)throw new ve(o);return e=is(e),function(){if(--e<1)return t.apply(this,arguments)}},On.ary=va,On.assign=cs,On.assignIn=us,On.assignInWith=ds,On.assignWith=ps,On.at=fs,On.before=ba,On.bind=ya,On.bindAll=Vs,On.bindKey=xa,On.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ra(e)?e:[e]},On.chain=na,On.chunk=function(e,t,n){t=(n?lo(e,t,n):void 0===t)?1:sn(is(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,a=0,s=r(Kt(i/t));o<i;)s[a++]=Gr(e,o,o+=t);return s},On.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var o=e[t];o&&(i[r++]=o)}return i},On.concat=function(){var e=arguments.length;if(!e)return[];for(var t=r(e-1),n=arguments[0],i=e;i--;)t[i-1]=arguments[i];return ht(Ra(n)?bi(n):[n],ar(t,1))},On.cond=function(e){var t=null==e?0:e.length,n=Qi();return e=t?ft(e,(function(e){if("function"!=typeof e[1])throw new ve(o);return[n(e[0]),e[1]]})):[],Lr((function(n){for(var r=-1;++r<t;){var i=e[r];if(ot(i[0],this,n))return ot(i[1],this,n)}}))},On.conforms=function(e){return function(e){var t=ws(e);return function(n){return Jn(n,e,t)}}(Qn(e,1))},On.constant=Us,On.countBy=oa,On.create=function(e,t){var n=Tn(e);return null==t?n:Wn(n,t)},On.curry=function e(t,n,r){var i=Bi(t,8,void 0,void 0,void 0,void 0,void 0,n=r?void 0:n);return i.placeholder=e.placeholder,i},On.curryRight=function e(t,n,r){var i=Bi(t,16,void 0,void 0,void 0,void 0,void 0,n=r?void 0:n);return i.placeholder=e.placeholder,i},On.debounce=wa,On.defaults=hs,On.defaultsDeep=gs,On.defer=ka,On.delay=Aa,On.difference=To,On.differenceBy=jo,On.differenceWith=Po,On.drop=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,(t=n||void 0===t?1:is(t))<0?0:t,r):[]},On.dropRight=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,0,(t=r-(t=n||void 0===t?1:is(t)))<0?0:t):[]},On.dropRightWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3),!0,!0):[]},On.dropWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3),!0):[]},On.fill=function(e,t,n,r){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&lo(e,t,n)&&(n=0,r=i),function(e,t,n,r){var i=e.length;for((n=is(n))<0&&(n=-n>i?0:i+n),(r=void 0===r||r>i?i:is(r))<0&&(r+=i),r=n>r?0:os(r);n<r;)e[n++]=t;return e}(e,t,n,r)):[]},On.filter=function(e,t){return(Ra(e)?ut:or)(e,Qi(t,3))},On.flatMap=function(e,t){return ar(fa(e,t),1)},On.flatMapDeep=function(e,t){return ar(fa(e,t),1/0)},On.flatMapDepth=function(e,t,n){return n=void 0===n?1:is(n),ar(fa(e,t),n)},On.flatten=Io,On.flattenDeep=function(e){return(null==e?0:e.length)?ar(e,1/0):[]},On.flattenDepth=function(e,t){return(null==e?0:e.length)?ar(e,t=void 0===t?1:is(t)):[]},On.flip=function(e){return Bi(e,512)},On.flow=Hs,On.flowRight=Gs,On.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var i=e[t];r[i[0]]=i[1]}return r},On.functions=function(e){return null==e?[]:dr(e,ws(e))},On.functionsIn=function(e){return null==e?[]:dr(e,ks(e))},On.groupBy=ua,On.initial=function(e){return(null==e?0:e.length)?Gr(e,0,-1):[]},On.intersection=Mo,On.intersectionBy=zo,On.intersectionWith=Lo,On.invert=bs,On.invertBy=ys,On.invokeMap=da,On.iteratee=Ys,On.keyBy=pa,On.keys=ws,On.keysIn=ks,On.map=fa,On.mapKeys=function(e,t){var n={};return t=Qi(t,3),cr(e,(function(e,r,i){Yn(n,t(e,r,i),e)})),n},On.mapValues=function(e,t){var n={};return t=Qi(t,3),cr(e,(function(e,r,i){Yn(n,r,t(e,r,i))})),n},On.matches=function(e){return Or(Qn(e,1))},On.matchesProperty=function(e,t){return Tr(e,Qn(t,1))},On.memoize=Ea,On.merge=As,On.mergeWith=Es,On.method=Xs,On.methodOf=Zs,On.mixin=Qs,On.negate=Sa,On.nthArg=function(e){return e=is(e),Lr((function(t){return Pr(t,e)}))},On.omit=Ss,On.omitBy=function(e,t){return Cs(e,Sa(Qi(t)))},On.once=function(e){return ba(2,e)},On.orderBy=function(e,t,n,r){return null==e?[]:(Ra(t)||(t=null==t?[]:[t]),Ra(n=r?void 0:n)||(n=null==n?[]:[n]),Dr(e,t,n))},On.over=Ks,On.overArgs=$a,On.overEvery=el,On.overSome=tl,On.partial=Ca,On.partialRight=_a,On.partition=ha,On.pick=$s,On.pickBy=Cs,On.property=nl,On.propertyOf=function(e){return function(t){return null==e?void 0:pr(e,t)}},On.pull=Fo,On.pullAll=qo,On.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?Ir(e,t,Qi(n,2)):e},On.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?Ir(e,t,void 0,n):e},On.pullAt=Vo,On.range=rl,On.rangeRight=il,On.rearg=Oa,On.reject=function(e,t){return(Ra(e)?ut:or)(e,Sa(Qi(t,3)))},On.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,i=[],o=e.length;for(t=Qi(t,3);++r<o;){var a=e[r];t(a,r,e)&&(n.push(a),i.push(r))}return Nr(e,i),n},On.rest=function(e,t){if("function"!=typeof e)throw new ve(o);return Lr(e,t=void 0===t?t:is(t))},On.reverse=Uo,On.sampleSize=function(e,t,n){return t=(n?lo(e,t,n):void 0===t)?1:is(t),(Ra(e)?Fn:Fr)(e,t)},On.set=function(e,t,n){return null==e?e:qr(e,t,n)},On.setWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:qr(e,t,n,r)},On.shuffle=function(e){return(Ra(e)?qn:Hr)(e)},On.slice=function(e,t,n){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&lo(e,t,n)?(t=0,n=r):(t=null==t?0:is(t),n=void 0===n?r:is(n)),Gr(e,t,n)):[]},On.sortBy=ga,On.sortedUniq=function(e){return e&&e.length?Zr(e):[]},On.sortedUniqBy=function(e,t){return e&&e.length?Zr(e,Qi(t,2)):[]},On.split=function(e,t,n){return n&&"number"!=typeof n&&lo(e,t,n)&&(t=n=void 0),(n=void 0===n?4294967295:n>>>0)?(e=ls(e))&&("string"==typeof t||null!=t&&!Xa(t))&&!(t=Jr(t))&&Bt(e)?ui(Wt(e),0,n):e.split(t,n):[]},On.spread=function(e,t){if("function"!=typeof e)throw new ve(o);return t=null==t?0:sn(is(t),0),Lr((function(n){var r=n[t],i=ui(n,0,t);return r&&ht(i,r),ot(e,this,i)}))},On.tail=function(e){var t=null==e?0:e.length;return t?Gr(e,1,t):[]},On.take=function(e,t,n){return e&&e.length?Gr(e,0,(t=n||void 0===t?1:is(t))<0?0:t):[]},On.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,(t=r-(t=n||void 0===t?1:is(t)))<0?0:t,r):[]},On.takeRightWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3),!1,!0):[]},On.takeWhile=function(e,t){return e&&e.length?ni(e,Qi(t,3)):[]},On.tap=function(e,t){return t(e),e},On.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new ve(o);return Ua(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),wa(e,t,{leading:r,maxWait:t,trailing:i})},On.thru=ra,On.toArray=ns,On.toPairs=_s,On.toPairsIn=Os,On.toPath=function(e){return Ra(e)?ft(e,Co):Ja(e)?[e]:bi($o(ls(e)))},On.toPlainObject=ss,On.transform=function(e,t,n){var r=Ra(e),i=r||za(e)||Ka(e);if(t=Qi(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:Ua(e)&&Fa(o)?Tn(qe(e)):{}}return(i?st:cr)(e,(function(e,r,i){return t(n,e,r,i)})),n},On.unary=function(e){return va(e,1)},On.union=Ho,On.unionBy=Go,On.unionWith=Wo,On.uniq=function(e){return e&&e.length?Kr(e):[]},On.uniqBy=function(e,t){return e&&e.length?Kr(e,Qi(t,2)):[]},On.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Kr(e,void 0,t):[]},On.unset=function(e,t){return null==e||ei(e,t)},On.unzip=Yo,On.unzipWith=Xo,On.update=function(e,t,n){return null==e?e:ti(e,t,si(n))},On.updateWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:ti(e,t,si(n),r)},On.values=Ts,On.valuesIn=function(e){return null==e?[]:Pt(e,ks(e))},On.without=Zo,On.words=Fs,On.wrap=function(e,t){return Ca(si(t),e)},On.xor=Qo,On.xorBy=Jo,On.xorWith=Ko,On.zip=ea,On.zipObject=function(e,t){return oi(e||[],t||[],Un)},On.zipObjectDeep=function(e,t){return oi(e||[],t||[],qr)},On.zipWith=ta,On.entries=_s,On.entriesIn=Os,On.extend=us,On.extendWith=ds,Qs(On,On),On.add=sl,On.attempt=qs,On.camelCase=js,On.capitalize=Ps,On.ceil=ll,On.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=as(n))==n?n:0),void 0!==t&&(t=(t=as(t))==t?t:0),Zn(as(e),t,n)},On.clone=function(e){return Qn(e,4)},On.cloneDeep=function(e){return Qn(e,5)},On.cloneDeepWith=function(e,t){return Qn(e,5,t="function"==typeof t?t:void 0)},On.cloneWith=function(e,t){return Qn(e,4,t="function"==typeof t?t:void 0)},On.conformsTo=function(e,t){return null==t||Jn(e,t,ws(t))},On.deburr=Ds,On.defaultTo=function(e,t){return null==e||e!=e?t:e},On.divide=cl,On.endsWith=function(e,t,n){e=ls(e),t=Jr(t);var r=e.length,i=n=void 0===n?r:Zn(is(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},On.eq=Ta,On.escape=function(e){return(e=ls(e))&&L.test(e)?e.replace(M,zt):e},On.escapeRegExp=function(e){return(e=ls(e))&&W.test(e)?e.replace(G,"\\$&"):e},On.every=function(e,t,n){var r=Ra(e)?ct:rr;return n&&lo(e,t,n)&&(t=void 0),r(e,Qi(t,3))},On.find=aa,On.findIndex=Do,On.findKey=function(e,t){return yt(e,Qi(t,3),cr)},On.findLast=sa,On.findLastIndex=Ro,On.findLastKey=function(e,t){return yt(e,Qi(t,3),ur)},On.floor=ul,On.forEach=la,On.forEachRight=ca,On.forIn=function(e,t){return null==e?e:sr(e,Qi(t,3),ks)},On.forInRight=function(e,t){return null==e?e:lr(e,Qi(t,3),ks)},On.forOwn=function(e,t){return e&&cr(e,Qi(t,3))},On.forOwnRight=function(e,t){return e&&ur(e,Qi(t,3))},On.get=ms,On.gt=ja,On.gte=Pa,On.has=function(e,t){return null!=e&&io(e,t,mr)},On.hasIn=vs,On.head=No,On.identity=Ws,On.includes=function(e,t,n,r){e=Na(e)?e:Ts(e),n=n&&!r?is(n):0;var i=e.length;return n<0&&(n=sn(i+n,0)),Qa(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&wt(e,t,n)>-1},On.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:is(n);return i<0&&(i=sn(r+i,0)),wt(e,t,i)},On.inRange=function(e,t,n){return t=rs(t),void 0===n?(n=t,t=0):n=rs(n),function(e,t,n){return e>=ln(t,n)&&e<sn(t,n)}(e=as(e),t,n)},On.invoke=xs,On.isArguments=Da,On.isArray=Ra,On.isArrayBuffer=Ia,On.isArrayLike=Na,On.isArrayLikeObject=Ma,On.isBoolean=function(e){return!0===e||!1===e||Ha(e)&&hr(e)==u},On.isBuffer=za,On.isDate=La,On.isElement=function(e){return Ha(e)&&1===e.nodeType&&!Ya(e)},On.isEmpty=function(e){if(null==e)return!0;if(Na(e)&&(Ra(e)||"string"==typeof e||"function"==typeof e.splice||za(e)||Ka(e)||Da(e)))return!e.length;var t=ro(e);if(t==g||t==y)return!e.size;if(fo(e))return!Sr(e).length;for(var n in e)if(Ae.call(e,n))return!1;return!0},On.isEqual=function(e,t){return wr(e,t)},On.isEqualWith=function(e,t,n){var r=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===r?wr(e,t,void 0,n):!!r},On.isError=Ba,On.isFinite=function(e){return"number"==typeof e&&rn(e)},On.isFunction=Fa,On.isInteger=qa,On.isLength=Va,On.isMap=Ga,On.isMatch=function(e,t){return e===t||kr(e,t,Ki(t))},On.isMatchWith=function(e,t,n){return n="function"==typeof n?n:void 0,kr(e,t,Ki(t),n)},On.isNaN=function(e){return Wa(e)&&e!=+e},On.isNative=function(e){if(po(e))throw new X("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ar(e)},On.isNil=function(e){return null==e},On.isNull=function(e){return null===e},On.isNumber=Wa,On.isObject=Ua,On.isObjectLike=Ha,On.isPlainObject=Ya,On.isRegExp=Xa,On.isSafeInteger=function(e){return qa(e)&&e>=-9007199254740991&&e<=9007199254740991},On.isSet=Za,On.isString=Qa,On.isSymbol=Ja,On.isTypedArray=Ka,On.isUndefined=function(e){return void 0===e},On.isWeakMap=function(e){return Ha(e)&&ro(e)==k},On.isWeakSet=function(e){return Ha(e)&&"[object WeakSet]"==hr(e)},On.join=function(e,t){return null==e?"":on.call(e,t)},On.kebabCase=Rs,On.last=Bo,On.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return void 0!==n&&(i=(i=is(n))<0?sn(r+i,0):ln(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):xt(e,At,i,!0)},On.lowerCase=Is,On.lowerFirst=Ns,On.lt=es,On.lte=ts,On.max=function(e){return e&&e.length?ir(e,Ws,gr):void 0},On.maxBy=function(e,t){return e&&e.length?ir(e,Qi(t,2),gr):void 0},On.mean=function(e){return Et(e,Ws)},On.meanBy=function(e,t){return Et(e,Qi(t,2))},On.min=function(e){return e&&e.length?ir(e,Ws,Cr):void 0},On.minBy=function(e,t){return e&&e.length?ir(e,Qi(t,2),Cr):void 0},On.stubArray=ol,On.stubFalse=al,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return!0},On.multiply=pl,On.nth=function(e,t){return e&&e.length?Pr(e,is(t)):void 0},On.noConflict=function(){return We._===this&&(We._=_e),this},On.noop=Js,On.now=ma,On.pad=function(e,t,n){e=ls(e);var r=(t=is(t))?Gt(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return Di(en(i),n)+e+Di(Kt(i),n)},On.padEnd=function(e,t,n){e=ls(e);var r=(t=is(t))?Gt(e):0;return t&&r<t?e+Di(t-r,n):e},On.padStart=function(e,t,n){e=ls(e);var r=(t=is(t))?Gt(e):0;return t&&r<t?Di(t-r,n)+e:e},On.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),un(ls(e).replace(Y,""),t||0)},On.random=function(e,t,n){if(n&&"boolean"!=typeof n&&lo(e,t,n)&&(t=n=void 0),void 0===n&&("boolean"==typeof t?(n=t,t=void 0):"boolean"==typeof e&&(n=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=rs(e),void 0===t?(t=e,e=0):t=rs(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var i=dn();return ln(e+i*(t-e+Ve("1e-"+((i+"").length-1))),t)}return Mr(e,t)},On.reduce=function(e,t,n){var r=Ra(e)?gt:Ct,i=arguments.length<3;return r(e,Qi(t,4),n,i,tr)},On.reduceRight=function(e,t,n){var r=Ra(e)?mt:Ct,i=arguments.length<3;return r(e,Qi(t,4),n,i,nr)},On.repeat=function(e,t,n){return t=(n?lo(e,t,n):void 0===t)?1:is(t),zr(ls(e),t)},On.replace=function(){var e=arguments,t=ls(e[0]);return e.length<3?t:t.replace(e[1],e[2])},On.result=function(e,t,n){var r=-1,i=(t=li(t,e)).length;for(i||(i=1,e=void 0);++r<i;){var o=null==e?void 0:e[Co(t[r])];void 0===o&&(r=i,o=n),e=Fa(o)?o.call(e):o}return e},On.round=fl,On.runInContext=e,On.sample=function(e){return(Ra(e)?Bn:Br)(e)},On.size=function(e){if(null==e)return 0;if(Na(e))return Qa(e)?Gt(e):e.length;var t=ro(e);return t==g||t==y?e.size:Sr(e).length},On.snakeCase=Ms,On.some=function(e,t,n){var r=Ra(e)?vt:Wr;return n&&lo(e,t,n)&&(t=void 0),r(e,Qi(t,3))},On.sortedIndex=function(e,t){return Yr(e,t)},On.sortedIndexBy=function(e,t,n){return Xr(e,t,Qi(n,2))},On.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var r=Yr(e,t);if(r<n&&Ta(e[r],t))return r}return-1},On.sortedLastIndex=function(e,t){return Yr(e,t,!0)},On.sortedLastIndexBy=function(e,t,n){return Xr(e,t,Qi(n,2),!0)},On.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=Yr(e,t,!0)-1;if(Ta(e[n],t))return n}return-1},On.startCase=zs,On.startsWith=function(e,t,n){return e=ls(e),n=null==n?0:Zn(is(n),0,e.length),t=Jr(t),e.slice(n,n+t.length)==t},On.subtract=hl,On.sum=function(e){return e&&e.length?_t(e,Ws):0},On.sumBy=function(e,t){return e&&e.length?_t(e,Qi(t,2)):0},On.template=function(e,t,n){var r=On.templateSettings;n&&lo(e,t,n)&&(t=void 0),e=ls(e),t=ds({},t,r,Fi);var i,o,a=ds({},t.imports,r.imports,Fi),s=ws(a),l=Pt(a,s),c=0,u=t.interpolate||ue,d="__p += '",p=ge((t.escape||ue).source+"|"+u.source+"|"+(u===q?ne:ue).source+"|"+(t.evaluate||ue).source+"|$","g"),f="//# sourceURL="+(Ae.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Le+"]")+"\n";e.replace(p,(function(t,n,r,a,s,l){return r||(r=a),d+=e.slice(c,l).replace(de,Lt),n&&(i=!0,d+="' +\n__e("+n+") +\n'"),s&&(o=!0,d+="';\n"+s+";\n__p += '"),r&&(d+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=l+t.length,t})),d+="';\n";var h=Ae.call(t,"variable")&&t.variable;if(h){if(ee.test(h))throw new X("Invalid `variable` option passed into `_.template`")}else d="with (obj) {\n"+d+"\n}\n";d=(o?d.replace(D,""):d).replace(R,"$1").replace(I,"$1;"),d="function("+(h||"obj")+") {\n"+(h?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=qs((function(){return pe(s,f+"return "+d).apply(void 0,l)}));if(g.source=d,Ba(g))throw g;return g},On.times=function(e,t){if((e=is(e))<1||e>9007199254740991)return[];var n=4294967295,r=ln(e,4294967295);e-=4294967295;for(var i=Ot(r,t=Qi(t));++n<e;)t(n);return i},On.toFinite=rs,On.toInteger=is,On.toLength=os,On.toLower=function(e){return ls(e).toLowerCase()},On.toNumber=as,On.toSafeInteger=function(e){return e?Zn(is(e),-9007199254740991,9007199254740991):0===e?e:0},On.toString=ls,On.toUpper=function(e){return ls(e).toUpperCase()},On.trim=function(e,t,n){if((e=ls(e))&&(n||void 0===t))return Tt(e);if(!e||!(t=Jr(t)))return e;var r=Wt(e),i=Wt(t);return ui(r,Rt(r,i),It(r,i)+1).join("")},On.trimEnd=function(e,t,n){if((e=ls(e))&&(n||void 0===t))return e.slice(0,Yt(e)+1);if(!e||!(t=Jr(t)))return e;var r=Wt(e);return ui(r,0,It(r,Wt(t))+1).join("")},On.trimStart=function(e,t,n){if((e=ls(e))&&(n||void 0===t))return e.replace(Y,"");if(!e||!(t=Jr(t)))return e;var r=Wt(e);return ui(r,Rt(r,Wt(t))).join("")},On.truncate=function(e,t){var n=30,r="...";if(Ua(t)){var i="separator"in t?t.separator:i;n="length"in t?is(t.length):n,r="omission"in t?Jr(t.omission):r}var o=(e=ls(e)).length;if(Bt(e)){var a=Wt(e);o=a.length}if(n>=o)return e;var s=n-Gt(r);if(s<1)return r;var l=a?ui(a,0,s).join(""):e.slice(0,s);if(void 0===i)return l+r;if(a&&(s+=l.length-s),Xa(i)){if(e.slice(s).search(i)){var c,u=l;for(i.global||(i=ge(i.source,ls(re.exec(i))+"g")),i.lastIndex=0;c=i.exec(u);)var d=c.index;l=l.slice(0,void 0===d?s:d)}}else if(e.indexOf(Jr(i),s)!=s){var p=l.lastIndexOf(i);p>-1&&(l=l.slice(0,p))}return l+r},On.unescape=function(e){return(e=ls(e))&&z.test(e)?e.replace(N,Xt):e},On.uniqueId=function(e){var t=++Ee;return ls(e)+t},On.upperCase=Ls,On.upperFirst=Bs,On.each=la,On.eachRight=ca,On.first=No,Qs(On,(dl={},cr(On,(function(e,t){Ae.call(On.prototype,t)||(dl[t]=e)})),dl),{chain:!1}),On.VERSION="4.17.21",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){On[e].placeholder=On})),st(["drop","take"],(function(e,t){Dn.prototype[e]=function(n){n=void 0===n?1:sn(is(n),0);var r=this.__filtered__&&!t?new Dn(this):this.clone();return r.__filtered__?r.__takeCount__=ln(n,r.__takeCount__):r.__views__.push({size:ln(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},Dn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Dn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Qi(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),st(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Dn.prototype[e]=function(){return this[n](1).value()[0]}})),st(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Dn.prototype[e]=function(){return this.__filtered__?new Dn(this):this[n](1)}})),Dn.prototype.compact=function(){return this.filter(Ws)},Dn.prototype.find=function(e){return this.filter(e).head()},Dn.prototype.findLast=function(e){return this.reverse().find(e)},Dn.prototype.invokeMap=Lr((function(e,t){return"function"==typeof e?new Dn(this):this.map((function(n){return yr(n,e,t)}))})),Dn.prototype.reject=function(e){return this.filter(Sa(Qi(e)))},Dn.prototype.slice=function(e,t){e=is(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Dn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=is(t))<0?n.dropRight(-t):n.take(t-e)),n)},Dn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Dn.prototype.toArray=function(){return this.take(4294967295)},cr(Dn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=On[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);i&&(On.prototype[t]=function(){var t=this.__wrapped__,a=r?[1]:arguments,s=t instanceof Dn,l=a[0],c=s||Ra(t),u=function(e){var t=i.apply(On,ht([e],a));return r&&d?t[0]:t};c&&n&&"function"==typeof l&&1!=l.length&&(s=c=!1);var d=this.__chain__,p=!!this.__actions__.length,f=o&&!d,h=s&&!p;if(!o&&c){t=h?t:new Dn(this);var g=e.apply(t,a);return g.__actions__.push({func:ra,args:[u],thisArg:void 0}),new Pn(g,d)}return f&&h?e.apply(this,a):(g=this.thru(u),f?r?g.value()[0]:g.value():g)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=be[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);On.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(Ra(i)?i:[],e)}return this[n]((function(n){return t.apply(Ra(n)?n:[],e)}))}})),cr(Dn.prototype,(function(e,t){var n=On[t];if(n){var r=n.name+"";Ae.call(xn,r)||(xn[r]=[]),xn[r].push({name:t,func:n})}})),xn[Oi(void 0,2).name]=[{name:"wrapper",func:void 0}],Dn.prototype.clone=function(){var e=new Dn(this.__wrapped__);return e.__actions__=bi(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=bi(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=bi(this.__views__),e},Dn.prototype.reverse=function(){if(this.__filtered__){var e=new Dn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Dn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Ra(e),r=t<0,i=n?e.length:0,o=function(e,t,n){var r=-1,i=n.length;for(;++r<i;){var o=n[r],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=ln(t,e+a);break;case"takeRight":e=sn(e,t-a)}}return{start:e,end:t}}(0,i,this.__views__),a=o.start,s=o.end,l=s-a,c=r?s:a-1,u=this.__iteratees__,d=u.length,p=0,f=ln(l,this.__takeCount__);if(!n||!r&&i==l&&f==l)return ri(e,this.__actions__);var h=[];e:for(;l--&&p<f;){for(var g=-1,m=e[c+=t];++g<d;){var v=u[g],b=v.iteratee,y=v.type,x=b(m);if(2==y)m=x;else if(!x){if(1==y)continue e;break e}}h[p++]=m}return h},On.prototype.at=ia,On.prototype.chain=function(){return na(this)},On.prototype.commit=function(){return new Pn(this.value(),this.__chain__)},On.prototype.next=function(){void 0===this.__values__&&(this.__values__=ns(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},On.prototype.plant=function(e){for(var t,n=this;n instanceof jn;){var r=Oo(n);r.__index__=0,r.__values__=void 0,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},On.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Dn){var t=e;return this.__actions__.length&&(t=new Dn(this)),(t=t.reverse()).__actions__.push({func:ra,args:[Uo],thisArg:void 0}),new Pn(t,this.__chain__)}return this.thru(Uo)},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return ri(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Qe&&(On.prototype[Qe]=function(){return this}),On}();We._=Zt,void 0===(i=function(){return Zt}.call(t,n,t,r))||(r.exports=i)}).call(this)}).call(this,n(35),n(80)(e))},function(e,t,n){const r=n(21);function i(e){return!r.isNull(e)&&!r.isUndefined(e)}function o(e,t,n,a){a||(a=1);var s=e.predecessors(t);if(!s||0==n)return[];var l=s.concat(s.reduce((function(t,r){return a>=n&&i(n)?t:t.concat(o(e,r,n,a+1))}),[]));return r.uniq(l)}function a(e,t,n,o){o||(o=1);var s=e.successors(t);if(!s||0==n)return[];var l=s.concat(s.reduce((function(t,r){return o>=n&&i(n)?t:t.concat(a(e,r,n,o+1))}),[]));return r.uniq(l)}e.exports={selectAt:function(e,t){var n=[t],i=r.union([t],a(e,t));return r.each(i,(function(t){var i=o(e,t);n=r.union(n,i,[t])})),n},ancestorNodes:o,descendentNodes:a}},function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=n},function(e,t){var n="/docs/source.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.source_name }}.{{ model.name }}</span>\n <small>source table</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.source({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" extras="extra_table_fields"/>\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";n.r(t);var r=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===i}(e)}(e)};var i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function o(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function a(e,t,n){return e.concat(t).map((function(e){return o(e,n)}))}function s(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||a,n.isMergeableObject=n.isMergeableObject||r;var i=Array.isArray(t);return i===Array.isArray(e)?i?n.arrayMerge(e,t,n):function(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach((function(t){r[t]=o(e[t],n)})),Object.keys(t).forEach((function(i){n.isMergeableObject(t[i])&&e[i]?r[i]=s(e[i],t[i],n):r[i]=o(t[i],n)})),r}(e,t,n):o(t,n)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return s(e,n,t)}),{})};var l=s;const c=n(8),u=(n(33),n(202)),{getQuoteChar:d}=n(430);c.module("dbt").factory("project",["$q","$http",function(e,t){var n={manifest:"MANIFEST.JSON INLINE DATA",catalog:"CATALOG.JSON INLINE DATA"},r={project:{},tree:{project:[],database:[],sources:[]},files:{manifest:{},catalog:{}},loaded:e.defer()};function i(e,t){return u.each(t.sources,(function(e,n){t.nodes[n]=e})),u.each(e.nodes,(function(e,n){var r=t.nodes[n];if(r){var i,o,a,s=u.keys(r.columns),l=e.columns,c=(i=s,o=l,a={},u.each(o,(function(e,t){var n=u.find(i,(function(e){return e.toLowerCase()==t.toLowerCase()}));n?a[n]=e:a[t]=e})),a);e.columns=c}})),l(t,e)}function o(e,r){return e in n&&"object"==typeof n[e]?{label:e,data:n[e]}:t({method:"GET",url:r}).then((function(t){return{label:e,data:t.data}}),(function(t){console.error(t),alert("dbt Docs was unable to load the "+e+" file at path: \n "+r+"\n\nError: "+t.statusText+" ("+t.status+")\n\nThe dbt Docs site may not work as expected if this file cannot be found.Please try again, and contact support if this error persists.")}))}return r.find_by_id=function(e,t){r.ready((function(){if(e){var n=r.node(e);t(n)}}))},r.node=function(e){return u.find(r.project.nodes,{unique_id:e})},r.loadProject=function(){var t="?cb="+(new Date).getTime(),n=[o("manifest","manifest.json"+t),o("catalog","catalog.json"+t)];e.all(n).then((function(e){u.each(e,(function(e){e?r.files[e.label]=e.data:console.error("FILE FAILED TO LOAD!")})),u.each(r.files.manifest.nodes,(function(e){"model"==e.resource_type&&null!=e.version?e.label=e.name+"_v"+e.version:e.label=e.name})),u.each(r.files.manifest.sources,(function(e){e.label=e.source_name+"."+e.name,r.files.manifest.nodes[e.unique_id]=e})),u.each(r.files.manifest.exposures,(function(e){e.label||(e.label=e.name),r.files.manifest.nodes[e.unique_id]=e})),u.each(r.files.manifest.metrics,(function(e){r.files.manifest.nodes[e.unique_id]=e})),u.each(r.files.manifest.semantic_models,(function(e){r.files.manifest.nodes[e.unique_id]=e,e.label=e.name})),u.each(r.files.manifest.saved_queries,(function(e){r.files.manifest.nodes[e.unique_id]=e,e.label=e.name})),u.each(r.files.manifest.unit_tests,(function(e){r.files.manifest.nodes[e.unique_id]=e,e.label=e.name}));var t=r.files.manifest.metadata.adapter_type,n=function(e,t){var n=e||[],r={};u.each(n,(function(e){r[e.package_name]||(r[e.package_name]={}),r[e.package_name][e.name]=e}));e=[];return u.each(r,(function(n,r){if("dbt"!=r&&r!="dbt_"+t){var i=function(e,t){var n={};u.each(e,(function(e){e.macro_sql.match(/{{\s*adapter_macro\([^)]+\)\s+}}/)&&(e.impls={"Adapter Macro":e.macro_sql},e.is_adapter_macro=!0,n[e.name]=e)}));var r=["postgres","redshift","bigquery","snowflake","spark","presto","default"],i=u.values(n),o=u.filter(e,(function(e){var t=e.name.split("__"),i=t.shift(),o=t.join("__");return!(r.indexOf(i)>=0&&n[o])||(n[o].impls[i]=e.macro_sql,e.is_adapter_macro_impl=!0,!1)}));return i.concat(o)}(n);e=e.concat(i)}})),u.keyBy(e,"unique_id")}(r.files.manifest.macros,t);r.files.manifest.macros=n;var o=i(r.files.manifest,r.files.catalog),a=o.nodes,s=u.keyBy(a,"name"),l=u.filter(o.nodes,{resource_type:"test"});u.each(l,(function(e){if(e.hasOwnProperty("test_metadata")){var t,n={test_name:t=e.test_metadata.namespace?e.test_metadata.namespace+"."+e.test_metadata.name:e.test_metadata.name};if("not_null"==e.test_metadata.name)n.short="N",n.label="Not Null";else if("unique"==e.test_metadata.name)n.short="U",n.label="Unique";else if("relationships"==e.test_metadata.name){var r=e.refs[0],i=s[r];i&&e.test_metadata.kwargs.field&&(n.fk_field=e.test_metadata.kwargs.field,n.fk_model=i),n.short="F",n.label="Foreign Key"}else if("accepted_values"==e.test_metadata.name){if(Array.isArray(e.test_metadata.kwargs.values))var a=e.test_metadata.kwargs.values.join(", ");else a=JSON.stringify(e.test_metadata.kwargs.values);n.short="A",n.label="Accepted Values: "+a}else{var l=u.omit(e.test_metadata.kwargs,"column_name");n.short="+",n.label=t+"("+JSON.stringify(l)+")"}var c=e.depends_on.nodes,p=e.column_name||e.test_metadata.kwargs.column_name||e.test_metadata.kwargs.arg;if(c.length&&p){if("relationships"==e.test_metadata.name)var f=c[c.length-1];else f=c[0];var h=o.nodes[f],g=d(o.metadata),m=u.find(h.columns,(function(e,t){let n=p;return p.startsWith(g)&&p.endsWith(g)&&(n=p.substring(1,p.length-1)),t.toLowerCase()==n.toLowerCase()}));m&&(m.tests=m.tests||[],m.tests.push(n))}}})),r.project=o;var c=u.filter(r.project.macros,(function(e){return!e.is_adapter_macro_impl})),p=u.filter(r.project.nodes,(function(e){return u.includes(["model","source","seed","snapshot","analysis","exposure","metric","semantic_model","saved_query"],e.resource_type)}));r.project.searchable=u.filter(p.concat(c),(function(e){return!e.docs||e.docs.show})),r.loaded.resolve()}))},r.ready=function(e){r.loaded.promise.then((function(){e(r.project)}))},r.search=function(e){if(0==e.length)return u.map(r.project.searchable,(function(e){return{model:e,matches:[]}}));var t=[];return u.each(r.project.searchable,(function(n){var r=function(e,t){var n=[],r={name:"string",description:"string",raw_code:"string",columns:"object",column_description:"n/a",tags:"array",arguments:"array",label:"string"};let i=u.words(e.toLowerCase());for(var o in r)if("column_description"===o)for(var a in t.columns)null!=t.columns[a].description&&i.every(e=>-1!=t.columns[a].description.toLowerCase().indexOf(e))&&n.push({key:o,value:e});else{if(!t[o])continue;if("string"===r[o]&&i.every(e=>-1!=t[o].toLowerCase().indexOf(e)))n.push({key:o,value:e});else if("object"===r[o])for(var a in t[o])null!=t[o][a].name&&i.every(e=>-1!=t[o][a].name.toLowerCase().indexOf(e))&&n.push({key:o,value:e});else if("array"===r[o])for(var s of t[o])i.every(e=>-1!=JSON.stringify(s).toLowerCase().indexOf(e))&&n.push({key:o,value:e})}return n}(e,n);r.length&&t.push({model:n,matches:r})})),t},r.getModelTree=function(e,t){r.loaded.promise.then((function(){var n=u.values(r.project.macros),i=u.filter(r.project.nodes,(function(e){if("test"==e.resource_type&&!e.hasOwnProperty("test_metadata"))return!0;return u.includes(["snapshot","source","seed","model","analysis","exposure","metric","semantic_model","saved_query"],e.resource_type)}));r.tree.database=function(e,t){var n={},r=u.filter(e,(function(e){return!!u.get(e,["docs","show"],!0)&&(-1!=u.indexOf(["source","snapshot","seed"],e.resource_type)||("model"==e.resource_type?"ephemeral"!=e.config.materialized:void 0))})),i=u.sortBy(r,(function(e){return e.database+"."+e.schema+"."+(e.identifier||e.alias||e.name)})),o=u.groupBy(i,"database");return u.each(o,(function(e,r){var i={type:"database",name:r,active:!1,items:[]};n[r]=i;var o=u.groupBy(e,"schema");u.each(o,(function(e,n){n={type:"schema",name:n,active:!1,items:[]};i.items.push(n),u.each(e,(function(e){var r=e.unique_id==t;r&&(i.active=!0,n.active=!0),n.items.push({type:"table",name:e.identifier||e.alias||e.name,node:e,active:r,unique_id:e.unique_id,node_type:"model"})}))}))})),n}(i,e),r.tree.groups=function(e,t){var n={};u.each(e,(function(e){const r=u.get(e,["docs","show"],!0);if(!(e.resource_type in["source","exposure","seed","macro"])&&r&&"private"!==e.access){if("model"==e.resource_type&&null!=e.version)var i=e.name+"_v"+e.version;else i=e.name;var o="protected"===e.access?i+" (protected)":i,a=e.group,s=e.unique_id==t;n[a]?s&&(n[a].active=!0):n[a]={type:"group",name:a,active:s,items:[]},n[a].items.push({type:"file",name:o,node:e,active:s,unique_id:e.unique_id,node_type:"model"})}}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){e.items=u.sortBy(e.items,"name")})),n}(i,e),r.tree.project=function(e,t,n){var r={};e=e||[],t=t||[];return u.each(e.concat(t),(function(e){var t=u.get(e,["docs","show"],!0);if("source"!=e.resource_type&&"exposure"!=e.resource_type&&"metric"!=e.resource_type&&"semantic_model"!=e.resource_type&&"saved_query"!=e.resource_type&&t){if(-1!=e.original_file_path.indexOf("\\"))var i=e.original_file_path.split("\\");else i=e.original_file_path.split("/");var o=[e.package_name].concat(i),a=e.unique_id==n,s=u.initial(o);if("macro"==e.resource_type)var l=e.name;else l=u.last(o);if("model"==e.resource_type&&null!=e.version)var c=e.name+"_v"+e.version;else c=e.name;var d=r;u.each(s,(function(e){d[e]?a&&(d[e].active=!0):d[e]={type:"folder",name:e,active:a,items:{}},d=d[e].items})),d[l]={type:"file",name:c,node:e,active:a,unique_id:e.unique_id,node_type:e.resource_type}}})),function e(t){var n=[],r=u.values(t);return u.each(r,(function(t){if(t.items){var r=e(t.items),i=u.sortBy(r,"name");t.items=i}n.push(t)})),n}(r)}(i,n,e);var o=u.values(r.project.sources);r.tree.sources=function(e,t){var n={};u.each(e,(function(e){var r=e.source_name,i=e.name,o=e.unique_id==t;n[r]?o&&(n[r].active=!0):n[r]={type:"folder",name:r,active:o,items:[]},n[r].items.push({type:"file",name:i,node:e,active:o,unique_id:e.unique_id,node_type:"source"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){e.items=u.sortBy(e.items,"name")})),n}(o,e);var a=u.values(r.project.exposures);r.tree.exposures=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.type||"Uncategorized";r=function(e){var t={ml:"ML"};return t.hasOwnProperty(e)?t[e]:e.charAt(0).toUpperCase()+e.slice(1)}(r);var i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.label,node:e,active:i,unique_id:e.unique_id,node_type:"exposure"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){e.items=u.sortBy(e.items,"name")})),n}(a,e);var s=u.values(r.project.metrics);r.tree.metrics=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.package_name,i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.label,node:e,active:i,unique_id:e.unique_id,node_type:"metric"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){n.items=u.sortBy(n.items,"name")})),n}(s,e);var l=u.values(r.project.semantic_models);r.tree.semantic_models=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.package_name,i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.name,node:e,active:i,unique_id:e.unique_id,node_type:"semantic_model"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){n.items=u.sortBy(n.items,"name")})),n}(l,e);var c=u.values(r.project.saved_queries);r.tree.saved_queries=function(e,t){var n={};u.each(e,(function(e){e.name;var r=e.package_name,i=e.unique_id==t;n[r]?i&&(n[r].active=!0):n[r]={type:"folder",name:r,active:i,items:[]},n[r].items.push({type:"file",name:e.name,node:e,active:i,unique_id:e.unique_id,node_type:"saved_query"})}));n=u.sortBy(u.values(n),"name");return u.each(n,(function(e){n.items=u.sortBy(n.items,"name")})),n}(c,e),t(r.tree)}))},r.updateSelectedInTree=function(e,t){var n=!1;return u.each(t,(function(t){if(t.node&&t.node.unique_id==e)t.active=!0,n=!0;else if(t.node&&t.node.unique_id!=e)t.active=!1;else{r.updateSelectedInTree(e,t.items)&&(t.active=!0,n=!0)}})),n},r.updateSelected=function(e){return r.updateSelectedInTree(e,r.tree.project),r.updateSelectedInTree(e,r.tree.database),r.updateSelectedInTree(e,r.tree.groups),r.updateSelectedInTree(e,r.tree.sources),r.updateSelectedInTree(e,r.tree.exposures),r.updateSelectedInTree(e,r.tree.metrics),r.updateSelectedInTree(e,r.tree.semantic_models),r.updateSelectedInTree(e,r.tree.saved_queries),r.tree},r.caseColumn=function(e){return"snowflake"==r.project.metadata.adapter_type&&e.toUpperCase()==e?e.toLowerCase():e},r.init=function(){r.loadProject()},r}])},function(e,t,n){const r=n(8);n(209),n(230),n(445),n(459),n(460),n(480),n(481),n(482),r.module("dbt").run(["$rootScope","$state","$stateParams",function(e,t,n){e.$state=t,e.$stateParams=n}])},function(e,t){ /** * @license AngularJS v1.8.3 * (c) 2010-2020 Google LLC. http://angularjs.org * License: MIT */ -!function(e){"use strict";var t={objectMaxDepth:5,urlErrorParamsEnabled:!0};function n(e){if(!L(e))return t;z(e.objectMaxDepth)&&(t.objectMaxDepth=r(e.objectMaxDepth)?e.objectMaxDepth:NaN),z(e.urlErrorParamsEnabled)&&Z(e.urlErrorParamsEnabled)&&(t.urlErrorParamsEnabled=e.urlErrorParamsEnabled)}function r(e){return q(e)&&e>0}function i(e,n){n=n||Error;var r="https://errors.angularjs.org/1.8.3/",i=r.replace(".","\\.")+"[\\s\\S]*",o=new RegExp(i,"g");return function(){var i,a,s=arguments[0],l=arguments[1],c="["+(e?e+":":"")+s+"] ",u=de(arguments,2).map((function(e){return Ve(e,t.objectMaxDepth)}));if(c+=l.replace(/\{\d+\}/g,(function(e){var t=+e.slice(1,-1);return t<u.length?u[t].replace(o,""):e})),c+="\n"+r+(e?e+"/":"")+s,t.urlErrorParamsEnabled)for(a=0,i="?";a<u.length;a++,i="&")c+=i+"p"+a+"="+encodeURIComponent(u[a]);return new n(c)}}var o,a,s,l,c=/^\/(.+)\/([a-z]*)$/,u=Object.prototype.hasOwnProperty,d=function(e){return F(e)?e.toLowerCase():e},p=function(e){return F(e)?e.toUpperCase():e},f=[].slice,h=[].splice,g=[].push,m=Object.prototype.toString,v=Object.getPrototypeOf,b=i("ng"),y=e.angular||(e.angular={}),x=0;function w(e){if(null==e||Y(e))return!1;if(U(e)||F(e)||a&&e instanceof a)return!0;var t="length"in Object(e)&&e.length;return q(t)&&(t>=0&&t-1 in e||"function"==typeof e.item)}function k(e,t,n){var r,i;if(e)if(G(e))for(r in e)"prototype"!==r&&"length"!==r&&"name"!==r&&e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else if(U(e)||w(e)){var o="object"!=typeof e;for(r=0,i=e.length;r<i;r++)(o||r in e)&&t.call(n,e[r],r,e)}else if(e.forEach&&e.forEach!==k)e.forEach(t,n,e);else if(B(e))for(r in e)t.call(n,e[r],r,e);else if("function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else for(r in e)u.call(e,r)&&t.call(n,e[r],r,e);return e}function A(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function E(e){return function(t,n){e(n,t)}}function S(){return++x}function $(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function C(e,t,n){for(var r=e.$$hashKey,i=0,o=t.length;i<o;++i){var a=t[i];if(L(a)||G(a))for(var s=Object.keys(a),l=0,c=s.length;l<c;l++){var u=s[l],d=a[u];n&&L(d)?V(d)?e[u]=new Date(d.valueOf()):W(d)?e[u]=new RegExp(d):d.nodeName?e[u]=d.cloneNode(!0):te(d)?e[u]=d.clone():"__proto__"!==u&&(L(e[u])||(e[u]=U(d)?[]:{}),C(e[u],[d],!0)):e[u]=d}}return $(e,r),e}function _(e){return C(e,f.call(arguments,1),!1)}function O(e){return C(e,f.call(arguments,1),!0)}function T(e){return parseInt(e,10)}o=e.document.documentMode;var j=Number.isNaN||function(e){return e!=e};function P(e,t){return _(Object.create(e),t)}function D(){}function R(e){return e}function I(e){return function(){return e}}function N(e){return G(e.toString)&&e.toString!==m}function M(e){return void 0===e}function z(e){return void 0!==e}function L(e){return null!==e&&"object"==typeof e}function B(e){return null!==e&&"object"==typeof e&&!v(e)}function F(e){return"string"==typeof e}function q(e){return"number"==typeof e}function V(e){return"[object Date]"===m.call(e)}function U(e){return Array.isArray(e)||e instanceof Array}function H(e){switch(m.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return e instanceof Error}}function G(e){return"function"==typeof e}function W(e){return"[object RegExp]"===m.call(e)}function Y(e){return e&&e.window===e}function X(e){return e&&e.$evalAsync&&e.$watch}function Z(e){return"boolean"==typeof e}function Q(e){return e&&G(e.then)}D.$inject=[],R.$inject=[];var J=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;var K=function(e){return F(e)?e.trim():e},ee=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function te(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function ne(e){return d(e.nodeName||e[0]&&e[0].nodeName)}function re(e,t){return-1!==Array.prototype.indexOf.call(e,t)}function ie(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function oe(e,t,n){var i,o,a=[],s=[];if(n=r(n)?n:NaN,t){if((o=t)&&q(o.length)&&J.test(m.call(o))||(i=t,"[object ArrayBuffer]"===m.call(i)))throw b("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw b("cpi","Can't copy! Source and destination are identical.");return U(t)?t.length=0:k(t,(function(e,n){"$$hashKey"!==n&&delete t[n]})),a.push(e),s.push(t),l(e,t,n)}return c(e,n);function l(e,t,n){if(--n<0)return"...";var r,i=t.$$hashKey;if(U(e))for(var o=0,a=e.length;o<a;o++)t.push(c(e[o],n));else if(B(e))for(r in e)t[r]=c(e[r],n);else if(e&&"function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&(t[r]=c(e[r],n));else for(r in e)u.call(e,r)&&(t[r]=c(e[r],n));return $(t,i),t}function c(e,t){if(!L(e))return e;var n=a.indexOf(e);if(-1!==n)return s[n];if(Y(e)||X(e))throw b("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var r=!1,i=function(e){switch(m.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(c(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(G(e.cloneNode))return e.cloneNode(!0)}(e);return void 0===i&&(i=U(e)?[]:Object.create(v(e)),r=!0),a.push(e),s.push(i),r?l(e,i,t):i}}function ae(e,t){return e===t||e!=e&&t!=t}function se(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,r,i,o=typeof e;if(o===typeof t&&"object"===o){if(!U(e)){if(V(e))return!!V(t)&&ae(e.getTime(),t.getTime());if(W(e))return!!W(t)&&e.toString()===t.toString();if(X(e)||X(t)||Y(e)||Y(t)||U(t)||V(t)||W(t))return!1;for(r in i=Le(),e)if("$"!==r.charAt(0)&&!G(e[r])){if(!se(e[r],t[r]))return!1;i[r]=!0}for(r in t)if(!(r in i)&&"$"!==r.charAt(0)&&z(t[r])&&!G(t[r]))return!1;return!0}if(!U(t))return!1;if((n=e.length)===t.length){for(r=0;r<n;r++)if(!se(e[r],t[r]))return!1;return!0}}return!1}var le=function(){if(!z(le.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");le.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else le.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return le.rules},ce=function(){if(z(ce.name_))return ce.name_;var t,n,r,i,o=Se.length;for(n=0;n<o;++n)if(r=Se[n],t=e.document.querySelector("["+r.replace(":","\\:")+"jq]")){i=t.getAttribute(r+"jq");break}return ce.name_=i};function ue(e,t,n){return e.concat(f.call(t,n))}function de(e,t){return f.call(e,t||0)}function pe(e,t){var n=arguments.length>2?de(arguments,2):[];return!G(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,ue(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function fe(t,n){var r=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?r=void 0:Y(n)?r="$WINDOW":n&&e.document===n?r="$DOCUMENT":X(n)&&(r="$SCOPE"),r}function he(e,t){if(!M(e))return q(t)||(t=t?2:null),JSON.stringify(e,fe,t)}function ge(e){return F(e)?JSON.parse(e):e}var me=/:/g;function ve(e,t){e=e.replace(me,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return j(n)?t:n}function be(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}function ye(e,t,n){n=n?-1:1;var r=e.getTimezoneOffset();return be(e,n*(ve(t,r)-r))}function xe(e){e=a(e).clone().empty();var t=a("<div></div>").append(e).html();try{return e[0].nodeType===Fe?d(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,(function(e,t){return"<"+d(t)}))}catch(e){return d(t)}}function we(e){try{return decodeURIComponent(e)}catch(e){}}function ke(e){var t={};return k((e||"").split("&"),(function(e){var n,r,i;e&&(r=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&&(r=e.substring(0,n),i=e.substring(n+1)),z(r=we(r))&&(i=!z(i)||we(i),u.call(t,r)?U(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i))})),t}function Ae(e){return Ee(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ee(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var Se=["ng-","data-ng-","ng:","x-ng-"];var $e=function(t){var n=t.currentScript;if(!n)return!0;if(!(n instanceof e.HTMLScriptElement||n instanceof e.SVGScriptElement))return!1;var r=n.attributes;return[r.getNamedItem("src"),r.getNamedItem("href"),r.getNamedItem("xlink:href")].every((function(e){if(!e)return!0;if(!e.value)return!1;var n=t.createElement("a");if(n.href=e.value,t.location.origin===n.origin)return!0;switch(n.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}))}(e.document);function Ce(t,n){var r,i,o={};if(k(Se,(function(e){var n=e+"app";!r&&t.hasAttribute&&t.hasAttribute(n)&&(r=t,i=t.getAttribute(n))})),k(Se,(function(e){var n,o=e+"app";!r&&(n=t.querySelector("["+o.replace(":","\\:")+"]"))&&(r=n,i=n.getAttribute(o))})),r){if(!$e)return void e.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");o.strictDi=null!==function(e,t){var n,r,i=Se.length;for(r=0;r<i;++r)if(n=Se[r]+t,F(n=e.getAttribute(n)))return n;return null}(r,"strict-di"),n(r,i?[i]:[],o)}}function _e(t,n,r){L(r)||(r={});r=_({strictDi:!1},r);var i=function(){if((t=a(t)).injector()){var i=t[0]===e.document?"document":xe(t);throw b("btstrpd","App already bootstrapped with this element '{0}'",i.replace(/</,"<").replace(/>/,">"))}(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),r.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=Qt(n,r.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply((function(){t.data("$injector",r),n(t)(e)}))}]),o},o=/^NG_ENABLE_DEBUG_INFO!/,s=/^NG_DEFER_BOOTSTRAP!/;if(e&&o.test(e.name)&&(r.debugInfoEnabled=!0,e.name=e.name.replace(o,"")),e&&!s.test(e.name))return i();e.name=e.name.replace(s,""),y.resumeBootstrap=function(e){return k(e,(function(e){n.push(e)})),i()},G(y.resumeDeferredBootstrap)&&y.resumeDeferredBootstrap()}function Oe(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function Te(e){var t=y.element(e).injector();if(!t)throw b("test","no injector found for element argument to getTestability");return t.get("$$testability")}var je=/[A-Z]/g;function Pe(e,t){return t=t||"_",e.replace(je,(function(e,n){return(n?t:"")+e.toLowerCase()}))}var De=!1;function Re(){pt.legacyXHTMLReplacement=!0}function Ie(e,t,n){if(!e)throw b("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function Ne(e,t,n){return n&&U(e)&&(e=e[e.length-1]),Ie(G(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function Me(e,t){if("hasOwnProperty"===e)throw b("badname","hasOwnProperty is not a valid {0} name",t)}function ze(e){for(var t,n=e[0],r=e[e.length-1],i=1;n!==r&&(n=n.nextSibling);i++)(t||e[i]!==n)&&(t||(t=a(f.call(e,0,i))),t.push(n));return t||e}function Le(){return Object.create(null)}function Be(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=!N(e)||U(e)||V(e)?he(e):e.toString()}return e}var Fe=3;function qe(e,t){if(U(e)){t=t||[];for(var n=0,r=e.length;n<r;n++)t[n]=e[n]}else if(L(e))for(var i in t=t||{},e)"$"===i.charAt(0)&&"$"===i.charAt(1)||(t[i]=e[i]);return t||e}function Ve(e,t){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):M(e)?"undefined":"string"!=typeof e?function(e,t){var n=[];return r(t)&&(e=y.copy(e,null,t)),JSON.stringify(e,(function(e,t){if(L(t=fe(e,t))){if(n.indexOf(t)>=0)return"...";n.push(t)}return t}))}(e,t):e}var Ue={full:"1.8.3",major:1,minor:8,dot:3,codeName:"ultimate-farewell"};pt.expando="ng339";var He=pt.cache={},Ge=1;pt._data=function(e){return this.cache[e[this.expando]]||{}};var We=/-([a-z])/g,Ye=/^-ms-/,Xe={mouseleave:"mouseout",mouseenter:"mouseover"},Ze=i("jqLite");function Qe(e,t){return t.toUpperCase()}function Je(e){return e.replace(We,Qe)}var Ke=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,et=/<|&#?\w+;/,tt=/<([\w:-]+)/,nt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,rt={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr","tbody","table"]};rt.tbody=rt.tfoot=rt.colgroup=rt.caption=rt.thead,rt.th=rt.td;var it={option:[1,'<select multiple="multiple">',"</select>"],_default:[0,"",""]};for(var ot in rt){var at=rt[ot],st=at.slice().reverse();it[ot]=[st.length,"<"+st.join("><")+">","</"+at.join("></")+">"]}function lt(e){return!et.test(e)}function ct(e){var t=e.nodeType;return 1===t||!t||9===t}function ut(t,n){var r,i,a,s,l,c=n.createDocumentFragment(),u=[];if(lt(t))u.push(n.createTextNode(t));else{if(r=c.appendChild(n.createElement("div")),i=(tt.exec(t)||["",""])[1].toLowerCase(),s=pt.legacyXHTMLReplacement?t.replace(nt,"<$1></$2>"):t,o<10)for(a=it[i]||it._default,r.innerHTML=a[1]+s+a[2],l=a[0];l--;)r=r.firstChild;else{for(l=(a=rt[i]||[]).length;--l>-1;)r.appendChild(e.document.createElement(a[l])),r=r.firstChild;r.innerHTML=s}u=ue(u,r.childNodes),(r=c.firstChild).textContent=""}return c.textContent="",c.innerHTML="",k(u,(function(e){c.appendChild(e)})),c}it.optgroup=it.option;var dt=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))};function pt(t){if(t instanceof pt)return t;var n,r,i,o;if(F(t)&&(t=K(t),n=!0),!(this instanceof pt)){if(n&&"<"!==t.charAt(0))throw Ze("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new pt(t)}n?Et(this,(r=t,i=i||e.document,(o=Ke.exec(r))?[i.createElement(o[1])]:(o=ut(r,i))?o.childNodes:[])):G(t)?Ot(t):Et(this,t)}function ft(e){return e.cloneNode(!0)}function ht(e,t){!t&&ct(e)&&a.cleanData([e]),e.querySelectorAll&&a.cleanData(e.querySelectorAll("*"))}function gt(e){var t;for(t in e)return!1;return!0}function mt(e){var t=e.ng339,n=t&&He[t],r=n&&n.events,i=n&&n.data;i&&!gt(i)||r&&!gt(r)||(delete He[t],e.ng339=void 0)}function vt(e,t,n,r){if(z(r))throw Ze("offargs","jqLite#off() does not support the `selector` argument");var i=yt(e),o=i&&i.events,a=i&&i.handle;if(a){if(t){var s=function(t){var r=o[t];z(n)&&ie(r||[],n),z(n)&&r&&r.length>0||(e.removeEventListener(t,a),delete o[t])};k(t.split(" "),(function(e){s(e),Xe[e]&&s(Xe[e])}))}else for(t in o)"$destroy"!==t&&e.removeEventListener(t,a),delete o[t];mt(e)}}function bt(e,t){var n=e.ng339,r=n&&He[n];r&&(t?delete r.data[t]:r.data={},mt(e))}function yt(e,t){var n=e.ng339,r=n&&He[n];return t&&!r&&(e.ng339=n=++Ge,r=He[n]={events:{},data:{},handle:void 0}),r}function xt(e,t,n){if(ct(e)){var r,i=z(n),o=!i&&t&&!L(t),a=!t,s=yt(e,!o),l=s&&s.data;if(i)l[Je(t)]=n;else{if(a)return l;if(o)return l&&l[Je(t)];for(r in t)l[Je(r)]=t[r]}}}function wt(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function kt(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),r=n;k(t.split(" "),(function(e){e=K(e),r=r.replace(" "+e+" "," ")})),r!==n&&e.setAttribute("class",K(r))}}function At(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),r=n;k(t.split(" "),(function(e){e=K(e),-1===r.indexOf(" "+e+" ")&&(r+=e+" ")})),r!==n&&e.setAttribute("class",K(r))}}function Et(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var r=0;r<n;r++)e[e.length++]=t[r]}else e[e.length++]=t}}function St(e,t){return $t(e,"$"+(t||"ngController")+"Controller")}function $t(e,t,n){9===e.nodeType&&(e=e.documentElement);for(var r=U(t)?t:[t];e;){for(var i=0,o=r.length;i<o;i++)if(z(n=a.data(e,r[i])))return n;e=e.parentNode||11===e.nodeType&&e.host}}function Ct(e){for(ht(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function _t(e,t){t||ht(e);var n=e.parentNode;n&&n.removeChild(e)}function Ot(t){function n(){e.document.removeEventListener("DOMContentLoaded",n),e.removeEventListener("load",n),t()}"complete"===e.document.readyState?e.setTimeout(t):(e.document.addEventListener("DOMContentLoaded",n),e.addEventListener("load",n))}var Tt=pt.prototype={ready:Ot,toString:function(){var e=[];return k(this,(function(t){e.push(""+t)})),"["+e.join(", ")+"]"},eq:function(e){return a(e>=0?this[e]:this[this.length+e])},length:0,push:g,sort:[].sort,splice:[].splice},jt={};k("multiple,selected,checked,disabled,readOnly,required,open".split(","),(function(e){jt[d(e)]=e}));var Pt={};k("input,select,option,textarea,button,form,details".split(","),(function(e){Pt[e]=!0}));var Dt={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};function Rt(e,t){var n=jt[t.toLowerCase()];return n&&Pt[ne(e)]&&n}function It(e,t,n){n.call(e,t)}function Nt(e,t,n){var r=t.relatedTarget;r&&(r===e||dt.call(e,r))||n.call(e,t)}function Mt(){this.$get=function(){return _(pt,{hasClass:function(e,t){return e.attr&&(e=e[0]),wt(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),At(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),kt(e,t)}})}}function zt(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var r=typeof e;return n="function"===r||"object"===r&&null!==e?e.$$hashKey=r+":"+(t||S)():r+":"+e}k({data:xt,removeData:bt,hasData:function(e){for(var t in He[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t<n;t++)bt(e[t]),vt(e[t])}},(function(e,t){pt[t]=e})),k({data:xt,inheritedData:$t,scope:function(e){return a.data(e,"$scope")||$t(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return a.data(e,"$isolateScope")||a.data(e,"$isolateScopeNoTemplate")},controller:St,injector:function(e){return $t(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:wt,css:function(e,t,n){if(t=function(e){return Je(e.replace(Ye,"ms-"))}(t),!z(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var r,i=e.nodeType;if(i!==Fe&&2!==i&&8!==i&&e.getAttribute){var o=d(t),a=jt[o];if(!z(n))return r=e.getAttribute(t),a&&null!==r&&(r=o),null===r?void 0:r;null===n||!1===n&&a?e.removeAttribute(t):e.setAttribute(t,a?o:n)}},prop:function(e,t,n){if(!z(n))return e[t];e[t]=n},text:function(){return e.$dv="",e;function e(e,t){if(M(t)){var n=e.nodeType;return 1===n||n===Fe?e.textContent:""}e.textContent=t}}(),val:function(e,t){if(M(t)){if(e.multiple&&"select"===ne(e)){var n=[];return k(e.options,(function(e){e.selected&&n.push(e.value||e.text)})),n}return e.value}e.value=t},html:function(e,t){if(M(t))return e.innerHTML;ht(e,!0),e.innerHTML=t},empty:Ct},(function(e,t){pt.prototype[t]=function(t,n){var r,i,o=this.length;if(e!==Ct&&M(2===e.length&&e!==wt&&e!==St?t:n)){if(L(t)){for(r=0;r<o;r++)if(e===xt)e(this[r],t);else for(i in t)e(this[r],i,t[i]);return this}for(var a=e.$dv,s=M(a)?Math.min(o,1):o,l=0;l<s;l++){var c=e(this[l],t,n);a=a?a+c:c}return a}for(r=0;r<o;r++)e(this[r],t,n);return this}})),k({removeData:bt,on:function(e,t,n,r){if(z(r))throw Ze("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(ct(e)){var i=yt(e,!0),o=i.events,a=i.handle;a||(a=i.handle=function(e,t){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[r||n.type],o=i?i.length:0;if(o){if(M(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=i.specialHandlerWrapper||It;o>1&&(i=qe(i));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,i[l])}};return n.elem=e,n}(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,c=function(t,r,i){var s=o[t];s||((s=o[t]=[]).specialHandlerWrapper=r,"$destroy"===t||i||e.addEventListener(t,a)),s.push(n)};l--;)t=s[l],Xe[t]?(c(Xe[t],Nt),c(t,void 0,!0)):c(t)}},off:vt,one:function(e,t,n){(e=a(e)).on(t,(function r(){e.off(t,n),e.off(t,r)})),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;ht(e),k(new pt(t),(function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t}))},children:function(e){var t=[];return k(e.childNodes,(function(e){1===e.nodeType&&t.push(e)})),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(1===n||11===n)for(var r=0,i=(t=new pt(t)).length;r<i;r++){var o=t[r];e.appendChild(o)}},prepend:function(e,t){if(1===e.nodeType){var n=e.firstChild;k(new pt(t),(function(t){e.insertBefore(t,n)}))}},wrap:function(e,t){var n,r,i;n=e,r=a(t).eq(0).clone()[0],(i=n.parentNode)&&i.replaceChild(r,n),r.appendChild(n)},remove:_t,detach:function(e){_t(e,!0)},after:function(e,t){var n=e,r=e.parentNode;if(r)for(var i=0,o=(t=new pt(t)).length;i<o;i++){var a=t[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:At,removeClass:kt,toggleClass:function(e,t,n){t&&k(t.split(" "),(function(t){var r=n;M(r)&&(r=!wt(e,t)),(r?At:kt)(e,t)}))},parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:ft,triggerHandler:function(e,t,n){var r,i,o,a=t.type||t,s=yt(e),l=s&&s.events,c=l&&l[a];c&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:D,type:a,target:e},t.type&&(r=_(r,t)),i=qe(c),o=n?[r].concat(n):[r],k(i,(function(t){r.isImmediatePropagationStopped()||t.apply(e,o)})))}},(function(e,t){pt.prototype[t]=function(t,n,r){for(var i,o=0,s=this.length;o<s;o++)M(i)?z(i=e(this[o],t,n,r))&&(i=a(i)):Et(i,e(this[o],t,n,r));return z(i)?i:this}})),pt.prototype.bind=pt.prototype.on,pt.prototype.unbind=pt.prototype.off;var Lt=Object.create(null);function Bt(){this._keys=[],this._values=[],this._lastKey=NaN,this._lastIndex=-1}Bt.prototype={_idx:function(e){return e!==this._lastKey&&(this._lastKey=e,this._lastIndex=this._keys.indexOf(e)),this._lastIndex},_transformKey:function(e){return j(e)?Lt:e},get:function(e){e=this._transformKey(e);var t=this._idx(e);if(-1!==t)return this._values[t]},has:function(e){return e=this._transformKey(e),-1!==this._idx(e)},set:function(e,t){e=this._transformKey(e);var n=this._idx(e);-1===n&&(n=this._lastIndex=this._keys.length),this._keys[n]=e,this._values[n]=t},delete:function(e){e=this._transformKey(e);var t=this._idx(e);return-1!==t&&(this._keys.splice(t,1),this._values.splice(t,1),this._lastKey=NaN,this._lastIndex=-1,!0)}};var Ft=Bt,qt=[function(){this.$get=[function(){return Ft}]}],Vt=/^([^(]+?)=>/,Ut=/^[^(]*\(\s*([^)]*)\)/m,Ht=/,/,Gt=/^\s*(_?)(\S+?)\1\s*$/,Wt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yt=i("$injector");function Xt(e){return Function.prototype.toString.call(e)}function Zt(e){var t=Xt(e).replace(Wt,"");return t.match(Vt)||t.match(Ut)}function Qt(e,t){t=!0===t;var n={},r=[],i=new Ft,a={$provide:{provider:f(h),factory:f(m),service:f((function(e,t){return m(e,["$injector",function(e){return e.instantiate(t)}])})),value:f((function(e,t){return m(e,I(t),!1)})),constant:f((function(e,t){Me(e,"constant"),a[e]=t,c[e]=t})),decorator:function(e,t){var n=s.get(e+"Provider"),r=n.$get;n.$get=function(){var e=d.invoke(r,n);return d.invoke(t,null,{$delegate:e})}}}},s=a.$injector=b(a,(function(e,t){throw y.isString(t)&&r.push(t),Yt("unpr","Unknown provider: {0}",r.join(" <- "))})),c={},u=b(c,(function(e,t){var n=s.get(e+"Provider",t);return d.invoke(n.$get,n,void 0,e)})),d=u;a.$injectorProvider={$get:I(u)},d.modules=s.modules=Le();var p=v(e);return(d=u.get("$injector")).strictDi=t,k(p,(function(e){e&&d.invoke(e)})),d.loadNewModules=function(e){k(v(e),(function(e){e&&d.invoke(e)}))},d;function f(e){return function(t,n){if(!L(t))return e(t,n);k(t,E(e))}}function h(e,t){if(Me(e,"service"),(G(t)||U(t))&&(t=s.instantiate(t)),!t.$get)throw Yt("pget","Provider '{0}' must define $get factory method.",e);return a[e+"Provider"]=t}function g(e,t){return function(){var n=d.invoke(t,this);if(M(n))throw Yt("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function m(e,t,n){return h(e,{$get:!1!==n?g(e,t):t})}function v(e){Ie(M(e)||U(e),"modulesToLoad","not an array");var t,n=[];return k(e,(function(e){if(!i.get(e)){i.set(e,!0);try{F(e)?(t=l(e),d.modules[e]=t,n=n.concat(v(t.requires)).concat(t._runBlocks),r(t._invokeQueue),r(t._configBlocks)):G(e)||U(e)?n.push(s.invoke(e)):Ne(e,"module")}catch(t){throw U(e)&&(e=e[e.length-1]),t.message&&t.stack&&-1===t.stack.indexOf(t.message)&&(t=t.message+"\n"+t.stack),Yt("modulerr","Failed to instantiate module {0} due to:\n{1}",e,t.stack||t.message||t)}}function r(e){var t,n;for(t=0,n=e.length;t<n;t++){var r=e[t],i=s.get(r[0]);i[r[1]].apply(i,r[2])}}})),n}function b(e,i){function s(t,o){if(e.hasOwnProperty(t)){if(e[t]===n)throw Yt("cdep","Circular dependency found: {0}",t+" <- "+r.join(" <- "));return e[t]}try{return r.unshift(t),e[t]=n,e[t]=i(t,o),e[t]}catch(r){throw e[t]===n&&delete e[t],r}finally{r.shift()}}function l(e,n,r){for(var i=[],o=Qt.$$annotate(e,t,r),a=0,l=o.length;a<l;a++){var c=o[a];if("string"!=typeof c)throw Yt("itkn","Incorrect injection token! Expected service name as string, got {0}",c);i.push(n&&n.hasOwnProperty(c)?n[c]:s(c,r))}return i}return{invoke:function(e,t,n,r){"string"==typeof n&&(r=n,n=null);var i=l(e,n,r);return U(e)&&(e=e[e.length-1]),function(e){if(o||"function"!=typeof e)return!1;var t=e.$$ngIsClass;return Z(t)||(t=e.$$ngIsClass=/^class\b/.test(Xt(e))),t}(e)?(i.unshift(null),new(Function.prototype.bind.apply(e,i))):e.apply(t,i)},instantiate:function(e,t,n){var r=U(e)?e[e.length-1]:e,i=l(e,t,n);return i.unshift(null),new(Function.prototype.bind.apply(r,i))},get:s,annotate:Qt.$$annotate,has:function(t){return a.hasOwnProperty(t+"Provider")||e.hasOwnProperty(t)}}}}function Jt(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(n,r,i){var o=n.document;function s(e){if(e){e.scrollIntoView();var t=function(){var e=l.yOffset;if(G(e))e=e();else if(te(e)){var t=e[0];e="fixed"!==n.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom}else q(e)||(e=0);return e}();if(t){var r=e.getBoundingClientRect().top;n.scrollBy(0,r-t)}}else n.scrollTo(0,0)}function l(e){var t,n,i;(e=F(e)?e:q(e)?e.toString():r.hash())?(t=o.getElementById(e))?s(t):(n=o.getElementsByName(e),i=null,Array.prototype.some.call(n,(function(e){if("a"===ne(e))return i=e,!0})),(t=i)?s(t):"top"===e&&s(null)):s(null)}return t&&i.$watch((function(){return r.hash()}),(function(t,n){var r,o;t===n&&""===t||(r=function(){i.$evalAsync(l)},"complete"===(o=o||e).document.readyState?o.setTimeout(r):a(o).on("load",r))})),l}]}Qt.$$annotate=function(e,t,n){var r,i;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw F(n)&&n||(n=e.name||function(e){var t=Zt(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),Yt("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);k(Zt(e)[1].split(Ht),(function(e){e.replace(Gt,(function(e,t,n){r.push(n)}))}))}e.$inject=r}}else U(e)?(Ne(e[i=e.length-1],"fn"),r=e.slice(0,i)):Ne(e,"fn",!0);return r};var Kt=i("$animate");function en(e,t){return e||t?e?t?(U(e)&&(e=e.join(" ")),U(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function tn(e){return L(e)?e:{}}var nn=function(){this.$get=D},rn=function(){var e=new Ft,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){return{enabled:D,on:D,off:D,pin:D,push:function(a,s,l,c){c&&c(),(l=l||{}).from&&a.css(l.from),l.to&&a.css(l.to),(l.addClass||l.removeClass)&&function(n,a,s){var l=e.get(n)||{},c=i(l,a,!0),u=i(l,s,!1);(c||u)&&(e.set(n,l),t.push(n),1===t.length&&r.$$postDigest(o))}(a,l.addClass,l.removeClass);var u=new n;return u.complete(),u}};function i(e,t,n){var r=!1;return t&&k(t=F(t)?t.split(" "):U(t)?t:[],(function(t){t&&(r=!0,e[t]=n)})),r}function o(){k(t,(function(t){var n=e.get(t);if(n){var r=function(e){F(e)&&(e=e.split(" "));var t=Le();return k(e,(function(e){e.length&&(t[e]=!0)})),t}(t.attr("class")),i="",o="";k(n,(function(e,t){e!==!!r[t]&&(e?i+=(i.length?" ":"")+t:o+=(o.length?" ":"")+t)})),k(t,(function(e){i&&At(e,i),o&&kt(e,o)})),e.delete(t)}})),t.length=0}}]},on=["$provide",function(e){var t=this,n=null,r=null;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&"."!==n.charAt(0))throw Kt("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,r)},this.customFilter=function(e){return 1===arguments.length&&(r=G(e)?e:null),r},this.classNameFilter=function(e){if(1===arguments.length&&(n=e instanceof RegExp?e:null)){var t=new RegExp("[(\\s|\\/)]ng-animate[(\\s|\\/)]");if(t.test(n.toString()))throw n=null,Kt("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate")}return n},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var r=function(e){for(var t=0;t<e.length;t++){var n=e[t];if(1===n.nodeType)return n}}(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.cancel&&e.cancel()},enter:function(n,r,i,o){return r=r&&a(r),i=i&&a(i),t(n,r=r||i.parent(),i),e.push(n,"enter",tn(o))},move:function(n,r,i,o){return r=r&&a(r),i=i&&a(i),t(n,r=r||i.parent(),i),e.push(n,"move",tn(o))},leave:function(t,n){return e.push(t,"leave",tn(n),(function(){t.remove()}))},addClass:function(t,n,r){return(r=tn(r)).addClass=en(r.addclass,n),e.push(t,"addClass",r)},removeClass:function(t,n,r){return(r=tn(r)).removeClass=en(r.removeClass,n),e.push(t,"removeClass",r)},setClass:function(t,n,r,i){return(i=tn(i)).addClass=en(i.addClass,n),i.removeClass=en(i.removeClass,r),e.push(t,"setClass",i)},animate:function(t,n,r,i,o){return(o=tn(o)).from=o.from?_(o.from,n):n,o.to=o.to?_(o.to,r):r,i=i||"ng-inline-animate",o.tempClasses=en(o.tempClasses,i),e.push(t,"animate",o)}}}]}],an=function(){this.$get=["$$rAF",function(e){var t=[];function n(n){t.push(n),t.length>1||e((function(){for(var e=0;e<t.length;e++)t[e]();t=[]}))}return function(){var e=!1;return n((function(){e=!0})),function(t){e?t():n(t)}}}]},sn=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(e,t,n,r,i){function o(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){r()?function(e){i(e,0,!1)}(e):t(e)},this._state=0}return o.chain=function(e,t){var n=0;!function r(){if(n===e.length)return void t(!0);e[n]((function(e){!1!==e?(n++,r()):t(!1)}))}()},o.all=function(e,t){var n=0,r=!0;function i(i){r=r&&i,++n===e.length&&t(r)}k(e,(function(e){e.done(i)}))},o.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:D,getPromise:function(){if(!this.promise){var t=this;this.promise=e((function(e,n){t.done((function(t){!1===t?n():e()}))}))}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick((function(){t._resolve(e)})))},_resolve:function(e){2!==this._state&&(k(this._doneCallbacks,(function(t){t(e)})),this._doneCallbacks.length=0,this._state=2)}},o}]},ln=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,r){var i=r||{};i.$$prepared||(i=oe(i)),i.cleanupStyles&&(i.from=i.to=null),i.from&&(t.css(i.from),i.from=null);var o,a=new n;return{start:s,end:s};function s(){return e((function(){!function(){i.addClass&&(t.addClass(i.addClass),i.addClass=null);i.removeClass&&(t.removeClass(i.removeClass),i.removeClass=null);i.to&&(t.css(i.to),i.to=null)}(),o||a.complete(),o=!0})),a}}}]};function cn(e,t,n,r,i){var o=this,s=e.location,l=e.history,c=e.setTimeout,u=e.clearTimeout,d={},p=i(n);o.isMock=!1,o.$$completeOutstandingRequest=p.completeTask,o.$$incOutstandingRequestCount=p.incTaskCount,o.notifyWhenNoOutstandingRequests=p.notifyWhenNoPendingTasks;var f,h,g=s.href,m=t.find("base"),v=null,b=r.history?function(){try{return l.state}catch(e){}}:D;E(),o.url=function(t,n,i){if(M(i)&&(i=null),s!==e.location&&(s=e.location),l!==e.history&&(l=e.history),t){var a=h===i;if(t=li(t).href,g===t&&(!r.history||a))return o;var c=g&&sr(g)===sr(t);return g=t,h=i,!r.history||c&&a?(c||(v=t),n?s.replace(t):c?s.hash=function(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}(t):s.href=t,s.href!==t&&(v=t)):(l[n?"replaceState":"pushState"](i,"",t),E()),v&&(v=t),o}return function(e){return e.replace(/#$/,"")}(v||s.href)},o.state=function(){return f};var y=[],x=!1;function w(){v=null,S()}var A=null;function E(){se(f=M(f=b())?null:f,A)&&(f=A),A=f,h=f}function S(){var e=h;E(),g===o.url()&&e===f||(g=o.url(),h=f,k(y,(function(e){e(o.url(),f)})))}o.onUrlChange=function(t){return x||(r.history&&a(e).on("popstate",w),a(e).on("hashchange",w),x=!0),y.push(t),t},o.$$applicationDestroyed=function(){a(e).off("hashchange popstate",w)},o.$$checkUrlChange=S,o.baseHref=function(){var e=m.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},o.defer=function(e,t,n){var r;return t=t||0,n=n||p.DEFAULT_TASK_TYPE,p.incTaskCount(n),r=c((function(){delete d[r],p.completeTask(e,n)}),t),d[r]=n,r},o.defer.cancel=function(e){if(d.hasOwnProperty(e)){var t=d[e];return delete d[e],u(e),p.completeTask(D,t),!0}return!1}}function un(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(e,t,n,r,i){return new cn(e,r,t,n,i)}]}function dn(){this.$get=function(){var e={};function t(t,n){if(t in e)throw i("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var r=0,o=_({},n,{id:t}),a=Le(),s=n&&n.capacity||Number.MAX_VALUE,l=Le(),c=null,u=null;return e[t]={put:function(e,t){if(!M(t)){if(s<Number.MAX_VALUE)d(l[e]||(l[e]={key:e}));return e in a||r++,a[e]=t,r>s&&this.remove(u.key),t}},get:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;d(t)}return a[e]},remove:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;t===c&&(c=t.p),t===u&&(u=t.n),p(t.n,t.p),delete l[e]}e in a&&(delete a[e],r--)},removeAll:function(){a=Le(),r=0,l=Le(),c=u=null},destroy:function(){a=null,o=null,l=null,delete e[t]},info:function(){return _({},o,{size:r})}};function d(e){e!==c&&(u?u===e&&(u=e.n):u=e,p(e.n,e.p),p(e,c),(c=e).n=null)}function p(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}}return t.info=function(){var t={};return k(e,(function(e,n){t[n]=e.info()})),t},t.get=function(t){return e[t]},t}}function pn(){this.$get=["$cacheFactory",function(e){return e("templates")}]}var fn=i("$compile");var hn=new function(){};function gn(t,n){var r={},i=/^\s*directive:\s*([\w-]+)\s+(.*)$/,s=/(([\w-]+)(?::([^;]+))?;?)/,l=function(e){var t,n={},r=e.split(",");for(t=0;t<r.length;t++)n[r[t]]=!0;return n}("ngSrc,ngSrcset,src,srcset"),c=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,p=/^(on[a-z]+|formaction)$/,f=Le();function h(e,t,n){var r=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,i=Le();return k(e,(function(e,o){if((e=e.trim())in f)i[o]=f[e];else{var a=e.match(r);if(!a)throw fn("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,o,e,n?"controller bindings definition":"isolate scope definition");i[o]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||o},a[4]&&(f[e]=i[o])}})),i}function g(e,t){var n={isolateScope:null,bindToController:null};if(L(e.scope)&&(!0===e.bindToController?(n.bindToController=h(e.scope,t,!0),n.isolateScope={}):n.isolateScope=h(e.scope,t,!1)),L(e.bindToController)&&(n.bindToController=h(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw fn("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}this.directive=function e(n,i){return Ie(n,"name"),Me(n,"directive"),F(n)?(!function(e){var t=e.charAt(0);if(!t||t!==d(t))throw fn("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw fn("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}(n),Ie(i,"directiveFactory"),r.hasOwnProperty(n)||(r[n]=[],t.factory(n+"Directive",["$injector","$exceptionHandler",function(e,t){var i=[];return k(r[n],(function(r,o){try{var a=e.invoke(r);G(a)?a={compile:I(a)}:!a.compile&&a.link&&(a.compile=I(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||n,a.require=function(e){var t=e.require||e.controller&&e.name;return!U(t)&&L(t)&&k(t,(function(e,n){var r=e.match(c);e.substring(r[0].length)||(t[n]=r[0]+n)})),t}(a),a.restrict=function(e,t){if(e&&(!F(e)||!/[EACM]/.test(e)))throw fn("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}(a.restrict,n),a.$$moduleName=r.$$moduleName,i.push(a)}catch(e){t(e)}})),i}])),r[n].push(i)):k(n,E(e)),this},this.component=function e(t,n){if(!F(t))return k(t,E(pe(this,e))),this;var r=n.controller||function(){};function i(e){function t(t){return G(t)||U(t)?function(n,r){return e.invoke(t,this,{$element:n,$attrs:r})}:t}var i=n.template||n.templateUrl?n.template:"",o={controller:r,controllerAs:En(n.controller)||n.controllerAs||"$ctrl",template:t(i),templateUrl:t(n.templateUrl),transclude:n.transclude,scope:{},bindToController:n.bindings||{},restrict:"E",require:n.require};return k(n,(function(e,t){"$"===t.charAt(0)&&(o[t]=e)})),o}return k(n,(function(e,t){"$"===t.charAt(0)&&(i[t]=e,G(r)&&(r[t]=e))})),i.$inject=["$injector"],this.directive(t,i)},this.aHrefSanitizationTrustedUrlList=function(e){return z(e)?(n.aHrefSanitizationTrustedUrlList(e),this):n.aHrefSanitizationTrustedUrlList()},Object.defineProperty(this,"aHrefSanitizationWhitelist",{get:function(){return this.aHrefSanitizationTrustedUrlList},set:function(e){this.aHrefSanitizationTrustedUrlList=e}}),this.imgSrcSanitizationTrustedUrlList=function(e){return z(e)?(n.imgSrcSanitizationTrustedUrlList(e),this):n.imgSrcSanitizationTrustedUrlList()},Object.defineProperty(this,"imgSrcSanitizationWhitelist",{get:function(){return this.imgSrcSanitizationTrustedUrlList},set:function(e){this.imgSrcSanitizationTrustedUrlList=e}});var v=!0;this.debugInfoEnabled=function(e){return z(e)?(v=e,this):v};var b=!1;this.strictComponentBindingsEnabled=function(e){return z(e)?(b=e,this):b};var y=10;this.onChangesTtl=function(e){return arguments.length?(y=e,this):y};var x=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(x=e,this):x};var w=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(w=e,this):w};var A=Le();this.addPropertySecurityContext=function(e,t,n){var r=e.toLowerCase()+"|"+t.toLowerCase();if(r in A&&A[r]!==n)throw fn("ctxoverride","Property context '{0}.{1}' already set to '{2}', cannot override to '{3}'.",e,t,A[r],n);return A[r]=n,this},function(){function e(e,t){k(t,(function(t){A[t.toLowerCase()]=e}))}e(Ur.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),e(Ur.CSS,["*|style"]),e(Ur.URL,["area|href","area|ping","a|href","a|ping","blockquote|cite","body|background","del|cite","input|src","ins|cite","q|cite"]),e(Ur.MEDIA_URL,["audio|src","img|src","img|srcset","source|src","source|srcset","track|src","video|src","video|poster"]),e(Ur.RESOURCE_URL,["*|formAction","applet|code","applet|codebase","base|href","embed|src","frame|src","form|action","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])}(),this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(t,n,f,h,E,S,$,C,O){var T,j=/^\w/,I=e.document.createElement("div"),N=x,z=w,B=y;function q(){try{if(!--B)throw T=void 0,fn("infchng","{0} $onChanges() iterations reached. Aborting!\n",y);$.$apply((function(){for(var e=0,t=T.length;e<t;++e)try{T[e]()}catch(e){f(e)}T=void 0}))}finally{B++}}function V(e,t){if(!e)return e;if(!F(e))throw fn("srcset",'Can\'t pass trusted values to `{0}`: "{1}"',t,e.toString());for(var n="",r=K(e),i=/\s/.test(r)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,o=r.split(i),a=Math.floor(o.length/2),s=0;s<a;s++){var l=2*s;n+=C.getTrustedMediaUrl(K(o[l])),n+=" "+K(o[l+1])}var c=K(o[2*s]).split(/\s/);return n+=C.getTrustedMediaUrl(K(c[0])),2===c.length&&(n+=" "+K(c[1])),n}function W(e,t){if(t){var n,r,i,o=Object.keys(t);for(n=0,r=o.length;n<r;n++)this[i=o[n]]=t[i]}else this.$attr={};this.$$element=e}function Y(e,t){try{e.addClass(t)}catch(e){}}W.prototype={$normalize:yn,$addClass:function(e){e&&e.length>0&&O.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&O.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=xn(e,t);n&&n.length&&O.addClass(this.$$element,n);var r=xn(t,e);r&&r.length&&O.removeClass(this.$$element,r)},$set:function(e,t,n,r){var i=Rt(this.$$element[0],e),o=Dt[e],a=e;i?(this.$$element.prop(e,t),r=i):o&&(this[o]=t,a=o),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e])||(this.$attr[e]=r=Pe(e,"-")),"img"===ne(this.$$element)&&"srcset"===e&&(this[e]=t=V(t,"$set('srcset', value)")),!1!==n&&(null===t||M(t)?this.$$element.removeAttr(r):j.test(r)?i&&!1===t?this.$$element.removeAttr(r):this.$$element.attr(r,t):function(e,t,n){I.innerHTML="<span "+t+">";var r=I.firstChild.attributes,i=r[0];r.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}(this.$$element[0],r,t));var s=this.$$observers;s&&k(s[a],(function(e){try{e(t)}catch(e){f(e)}}))},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers=Le()),i=r[e]||(r[e]=[]);return i.push(t),$.$evalAsync((function(){i.$$inter||!n.hasOwnProperty(e)||M(n[e])||t(n[e])})),function(){ie(i,t)}}};var Q=n.startSymbol(),J=n.endSymbol(),ee="{{"===Q&&"}}"===J?R:function(e){return e.replace(/\{\{/g,Q).replace(/}}/g,J)},te=/^ng(Attr|Prop|On)([A-Z].*)$/,re=/^(.+)Start$/;return oe.$$addBindingInfo=v?function(e,t){var n=e.data("$binding")||[];U(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:D,oe.$$addBindingClass=v?function(e){Y(e,"ng-binding")}:D,oe.$$addScopeInfo=v?function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:D,oe.$$addScopeClass=v?function(e,t){Y(e,t?"ng-isolate-scope":"ng-scope")}:D,oe.$$createComment=function(t,n){var r="";return v&&(r=" "+(t||"")+": ",n&&(r+=n+" ")),e.document.createComment(r)},oe;function oe(e,t,n,r,i){e instanceof a||(e=a(e));var o=le(e,t,e,n,r,i);oe.$$addScopeClass(e);var s=null;return function(t,n,r){if(!e)throw fn("multilink","This element has already been linked.");Ie(t,"scope"),i&&i.needsNewScope&&(t=t.$parent.$new());var l,c,u,d=(r=r||{}).parentBoundTranscludeFn,p=r.transcludeControllers,f=r.futureParentElement;if(d&&d.$$boundTransclude&&(d=d.$$boundTransclude),s||(c=(l=f)&&l[0],s=c&&"foreignobject"!==ne(c)&&m.call(c).match(/SVG/)?"svg":"html"),u="html"!==s?a(Ce(s,a("<div></div>").append(e).html())):n?Tt.clone.call(e):e,p)for(var h in p)u.data("$"+h+"Controller",p[h].instance);return oe.$$addScopeInfo(u,t),n&&n(u,t),o&&o(t,u,u,d),n||(e=o=null),u}}function le(e,t,n,r,i,s){for(var l,c,u,d,p,f,h,g=[],m=U(e)||e instanceof a,v=0;v<e.length;v++)l=new W,11===o&&ce(e,v,m),(u=(c=fe(e[v],[],l,0===v?r:void 0,i)).length?ve(c,e[v],l,t,n,null,[],[],s):null)&&u.scope&&oe.$$addScopeClass(l.$$element),p=u&&u.terminal||!(d=e[v].childNodes)||!d.length?null:le(d,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&&u.transclude:t),(u||p)&&(g.push(v,u,p),f=!0,h=h||u),s=null;return f?function(e,n,r,i){var o,s,l,c,u,d,p,f,m;if(h){var v=n.length;for(m=new Array(v),u=0;u<g.length;u+=3)p=g[u],m[p]=n[p]}else m=n;for(u=0,d=g.length;u<d;)l=m[g[u++]],o=g[u++],s=g[u++],o?(o.scope?(c=e.$new(),oe.$$addScopeInfo(a(l),c)):c=e,f=o.transcludeOnThisElement?ue(e,o.transclude,i):!o.templateOnThisElement&&i?i:!i&&t?ue(e,t):null,o(s,c,l,r,f)):s&&s(e,l.childNodes,void 0,i)}:null}function ce(e,t,n){var r,i=e[t],o=i.parentNode;if(i.nodeType===Fe)for(;(r=o?i.nextSibling:e[t+1])&&r.nodeType===Fe;)i.nodeValue=i.nodeValue+r.nodeValue,r.parentNode&&r.parentNode.removeChild(r),n&&r===e[t+1]&&e.splice(t+1,1)}function ue(e,t,n){function r(r,i,o,a,s){return r||((r=e.$new(!1,s)).$$transcluded=!0),t(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var i=r.$$slots=Le();for(var o in t.$$slots)t.$$slots[o]?i[o]=ue(e,t.$$slots[o],n):i[o]=null;return r}function fe(e,t,r,o,a){var l,c,u,d=e.nodeType,p=r.$attr;switch(d){case 1:we(t,yn(c=ne(e)),"E",o,a);for(var f,h,g,m,v,b=e.attributes,y=0,x=b&&b.length;y<x;y++){var w,k=!1,A=!1,E=!1,S=!1,$=!1;h=(f=b[y]).name,m=f.value,(v=(g=yn(h.toLowerCase())).match(te))?(E="Attr"===v[1],S="Prop"===v[1],$="On"===v[1],h=h.replace(vn,"").toLowerCase().substr(4+v[1].length).replace(/_(.)/g,(function(e,t){return t.toUpperCase()}))):(w=g.match(re))&&ke(w[1])&&(k=h,A=h.substr(0,h.length-5)+"end",h=h.substr(0,h.length-6)),S||$?(r[g]=m,p[g]=f.name,S?Oe(e,t,g,h):Te(t,g,h)):(p[g=yn(h.toLowerCase())]=h,!E&&r.hasOwnProperty(g)||(r[g]=m,Rt(e,g)&&(r[g]=!0)),je(e,t,m,g,E),we(t,g,"A",o,a,k,A))}if("input"===c&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!z)break;if(L(u=e.className)&&(u=u.animVal),F(u)&&""!==u)for(;l=s.exec(u);)we(t,g=yn(l[2]),"C",o,a)&&(r[g]=K(l[3])),u=u.substr(l.index+l[0].length);break;case Fe:!function(e,t){var r=n(t,!0);r&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&oe.$$addBindingClass(t),function(e,t){var i=t.parent();n||oe.$$addBindingClass(i),oe.$$addBindingInfo(i,r.expressions),e.$watch(r,(function(e){t[0].nodeValue=e}))}}})}(t,e.nodeValue);break;case 8:if(!N)break;!function(e,t,n,r,o){try{var a=i.exec(e.nodeValue);if(a){var s=yn(a[1]);we(t,s,"M",r,o)&&(n[s]=K(a[2]))}}catch(e){}}(e,t,r,o,a)}return t.sort(Se),t}function he(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw fn("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);1===e.nodeType&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0);else r.push(e);return a(r)}function ge(e,t,n){return function(r,i,o,a,s){return i=he(i[0],t,n),e(r,i,o,a,s)}}function me(e,t,n,r,i,o){var a;return e?oe(t,n,r,i,o):function(){return a||(a=oe(t,n,r,i,o),t=n=o=null),a.apply(this,arguments)}}function ve(t,n,r,i,o,s,l,c,u){u=u||{};for(var d,p,h,g,m,v=-Number.MAX_VALUE,b=u.newScopeDirective,y=u.controllerDirectives,x=u.newIsolateScopeDirective,w=u.templateDirective,A=u.nonTlbTranscludeDirective,E=!1,$=!1,C=u.hasElementTranscludeDirective,O=r.$$element=a(n),T=s,j=i,P=!1,D=!1,R=0,I=t.length;R<I;R++){var N=(d=t[R]).$$start,z=d.$$end;if(N&&(O=he(n,N,z)),h=void 0,v>d.priority)break;if((m=d.scope)&&(d.templateUrl||(L(m)?($e("new/isolated scope",x||b,d,O),x=d):$e("new/isolated scope",x,d,O)),b=b||d),p=d.name,!P&&(d.replace&&(d.templateUrl||d.template)||d.transclude&&!d.$$tlb)){for(var B,F=R+1;B=t[F++];)if(B.transclude&&!B.$$tlb||B.replace&&(B.templateUrl||B.template)){D=!0;break}P=!0}if(!d.templateUrl&&d.controller&&(y=y||Le(),$e("'"+p+"' controller",y[p],d,O),y[p]=d),m=d.transclude)if(E=!0,d.$$tlb||($e("transclusion",A,d,O),A=d),"element"===m)C=!0,v=d.priority,h=O,O=r.$$element=a(oe.$$createComment(p,r[p])),n=O[0],De(o,de(h),n),j=me(D,h,i,v,T&&T.name,{nonTlbTranscludeDirective:A});else{var q=Le();if(L(m)){h=e.document.createDocumentFragment();var V=Le(),H=Le();for(var Y in k(m,(function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,V[e]=t,q[t]=null,H[t]=n})),k(O.contents(),(function(t){var n=V[yn(ne(t))];n?(H[n]=!0,q[n]=q[n]||e.document.createDocumentFragment(),q[n].appendChild(t)):h.appendChild(t)})),k(H,(function(e,t){if(!e)throw fn("reqslot","Required transclusion slot `{0}` was not filled.",t)})),q)if(q[Y]){var Z=a(q[Y].childNodes);q[Y]=me(D,Z,i)}h=a(h.childNodes)}else h=a(ft(n)).contents();O.empty(),(j=me(D,h,i,void 0,void 0,{needsNewScope:d.$$isolateScope||d.$$newScope})).$$slots=q}if(d.template)if($=!0,$e("template",w,d,O),w=d,m=G(d.template)?d.template(O,r):d.template,m=ee(m),d.replace){if(T=d,h=lt(m)?[]:wn(Ce(d.templateNamespace,K(m))),n=h[0],1!==h.length||1!==n.nodeType)throw fn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",p,"");De(o,O,n);var Q={$attr:{}},J=fe(n,[],Q),te=t.splice(R+1,t.length-(R+1));(x||b)&&ye(J,x,b),t=t.concat(J).concat(te),Ae(r,Q),I=t.length}else O.html(m);if(d.templateUrl)$=!0,$e("template",w,d,O),w=d,d.replace&&(T=d),ae=Ee(t.splice(R,t.length-R),O,r,o,E&&j,l,c,{controllerDirectives:y,newScopeDirective:b!==d&&b,newIsolateScopeDirective:x,templateDirective:w,nonTlbTranscludeDirective:A}),I=t.length;else if(d.compile)try{g=d.compile(O,r,j);var re=d.$$originalDirective||d;G(g)?ie(null,pe(re,g),N,z):g&&ie(pe(re,g.pre),pe(re,g.post),N,z)}catch(e){f(e,xe(O))}d.terminal&&(ae.terminal=!0,v=Math.max(v,d.priority))}return ae.scope=b&&!0===b.scope,ae.transcludeOnThisElement=E,ae.templateOnThisElement=$,ae.transclude=j,u.hasElementTranscludeDirective=C,ae;function ie(e,t,n,r){e&&(n&&(e=ge(e,n,r)),e.require=d.require,e.directiveName=p,(x===d||d.$$isolateScope)&&(e=Re(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=ge(t,n,r)),t.require=d.require,t.directiveName=p,(x===d||d.$$isolateScope)&&(t=Re(t,{isolateScope:!0})),c.push(t))}function ae(e,t,i,o,s){var u,d,p,h,g,m,v,A,E,$;for(var O in n===i?(E=r,A=r.$$element):E=new W(A=a(i),r),g=t,x?h=t.$new(!0):b&&(g=t.$parent),s&&((v=function(e,t,n,r){var i;X(e)||(r=n,n=t,t=e,e=void 0);C&&(i=m);n||(n=C?A.parent():A);if(!r)return s(e,t,i,n,D);var o=s.$$slots[r];if(o)return o(e,t,i,n,D);if(M(o))throw fn("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',r,xe(A))}).$$boundTransclude=s,v.isSlotFilled=function(e){return!!s.$$slots[e]}),y&&(m=function(e,t,n,r,i,o,a){var s=Le();for(var l in r){var c=r[l],u={$scope:c===a||c.$$isolateScope?i:o,$element:e,$attrs:t,$transclude:n},d=c.controller;"@"===d&&(d=t[c.name]);var p=S(d,u,!0,c.controllerAs);s[c.name]=p,e.data("$"+c.name+"Controller",p.instance)}return s}(A,E,v,y,h,t,x)),x&&(oe.$$addScopeInfo(A,h,!0,!(w&&(w===x||w===x.$$originalDirective))),oe.$$addScopeClass(A,!0),h.$$isolateBindings=x.$$isolateBindings,($=ze(t,E,h,h.$$isolateBindings,x)).removeWatches&&h.$on("$destroy",$.removeWatches)),m){var T=y[O],j=m[O],P=T.$$bindings.bindToController;j.instance=j(),A.data("$"+T.name+"Controller",j.instance),j.bindingInfo=ze(g,E,j.instance,P,T)}for(k(y,(function(e,t){var n=e.require;e.bindToController&&!U(n)&&L(n)&&_(m[t].instance,be(t,n,A,m))})),k(m,(function(e){var t=e.instance;if(G(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){f(e)}if(G(t.$onInit))try{t.$onInit()}catch(e){f(e)}G(t.$doCheck)&&(g.$watch((function(){t.$doCheck()})),t.$doCheck()),G(t.$onDestroy)&&g.$on("$destroy",(function(){t.$onDestroy()}))})),u=0,d=l.length;u<d;u++)Ne(p=l[u],p.isolateScope?h:t,A,E,p.require&&be(p.directiveName,p.require,A,m),v);var D=t;for(x&&(x.template||null===x.templateUrl)&&(D=h),e&&e(D,i.childNodes,void 0,s),u=c.length-1;u>=0;u--)Ne(p=c[u],p.isolateScope?h:t,A,E,p.require&&be(p.directiveName,p.require,A,m),v);k(m,(function(e){var t=e.instance;G(t.$postLink)&&t.$postLink()}))}}function be(e,t,n,r){var i;if(F(t)){var o=t.match(c),a=t.substring(o[0].length),s=o[1]||o[3],l="?"===o[2];if("^^"===s?n=n.parent():i=(i=r&&r[a])&&i.instance,!i){var u="$"+a+"Controller";i="^^"===s&&n[0]&&9===n[0].nodeType?null:s?n.inheritedData(u):n.data(u)}if(!i&&!l)throw fn("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(U(t)){i=[];for(var d=0,p=t.length;d<p;d++)i[d]=be(e,t[d],n,r)}else L(t)&&(i={},k(t,(function(t,o){i[o]=be(e,t,n,r)})));return i||null}function ye(e,t,n){for(var r=0,i=e.length;r<i;r++)e[r]=P(e[r],{$$isolateScope:t,$$newScope:n})}function we(e,n,i,o,a,s,l){if(n===a)return null;var c=null;if(r.hasOwnProperty(n))for(var u,d=t.get(n+"Directive"),p=0,f=d.length;p<f;p++)if(u=d[p],(M(o)||o>u.priority)&&-1!==u.restrict.indexOf(i)){if(s&&(u=P(u,{$$start:s,$$end:l})),!u.$$bindings){var h=u.$$bindings=g(u,u.name);L(h.isolateScope)&&(u.$$isolateBindings=h.isolateScope)}e.push(u),c=u}return c}function ke(e){if(r.hasOwnProperty(e))for(var n=t.get(e+"Directive"),i=0,o=n.length;i<o;i++)if(n[i].multiElement)return!0;return!1}function Ae(e,t){var n=t.$attr,r=e.$attr;k(e,(function(r,i){"$"!==i.charAt(0)&&(t[i]&&t[i]!==r&&(r.length?r+=("style"===i?";":" ")+t[i]:r=t[i]),e.$set(i,r,!0,n[i]))})),k(t,(function(t,i){e.hasOwnProperty(i)||"$"===i.charAt(0)||(e[i]=t,"class"!==i&&"style"!==i&&(r[i]=n[i]))}))}function Ee(e,t,n,r,i,o,s,l){var c,u,d=[],p=t[0],g=e.shift(),m=P(g,{templateUrl:null,transclude:null,replace:null,$$originalDirective:g}),v=G(g.templateUrl)?g.templateUrl(t,n):g.templateUrl,b=g.templateNamespace;return t.empty(),h(v).then((function(f){var h,y,x,w;if(f=ee(f),g.replace){if(x=lt(f)?[]:wn(Ce(b,K(f))),h=x[0],1!==x.length||1!==h.nodeType)throw fn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",g.name,v);y={$attr:{}},De(r,t,h);var A=fe(h,[],y);L(g.scope)&&ye(A,!0),e=A.concat(e),Ae(n,y)}else h=p,t.html(f);for(e.unshift(m),c=ve(e,h,n,i,t,g,o,s,l),k(r,(function(e,n){e===h&&(r[n]=t[0])})),u=le(t[0].childNodes,i);d.length;){var E=d.shift(),S=d.shift(),$=d.shift(),C=d.shift(),_=t[0];if(!E.$$destroyed){if(S!==p){var O=S.className;l.hasElementTranscludeDirective&&g.replace||(_=ft(h)),De($,a(S),_),Y(a(_),O)}w=c.transcludeOnThisElement?ue(E,c.transclude,C):C,c(u,E,_,r,w)}}d=null})).catch((function(e){H(e)&&f(e)})),function(e,t,n,r,i){var o=i;t.$$destroyed||(d?d.push(t,n,r,o):(c.transcludeOnThisElement&&(o=ue(t,c.transclude,i)),c(u,t,n,r,o)))}}function Se(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function $e(e,t,n,r){function i(e){return e?" (module: "+e+")":""}if(t)throw fn("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,xe(r))}function Ce(t,n){switch(t=d(t||"html")){case"svg":case"math":var r=e.document.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function _e(e){return V(C.valueOf(e),"ng-prop-srcset")}function Oe(e,t,n,r){if(p.test(r))throw fn("nodomevents","Property bindings for HTML DOM event properties are disallowed");var i=ne(e),o=function(e,t){var n=t.toLowerCase();return A[e+"|"+n]||A["*|"+n]}(i,r),a=R;"srcset"!==r||"img"!==i&&"source"!==i?o&&(a=C.getTrusted.bind(C,o)):a=_e,t.push({priority:100,compile:function(e,t){var i=E(t[n]),o=E(t[n],(function(e){return C.valueOf(e)}));return{pre:function(e,t){function n(){var n=i(e);t[0][r]=a(n)}n(),e.$watch(o,n)}}}})}function Te(e,t,n){e.push(Po(E,$,f,t,n,!1))}function je(e,t,r,i,o){var a=ne(e),s=function(e,t){return"srcdoc"===t?C.HTML:"src"===t||"ngSrc"===t?-1===["img","video","audio","source","track"].indexOf(e)?C.RESOURCE_URL:C.MEDIA_URL:"xlinkHref"===t?"image"===e?C.MEDIA_URL:"a"===e?C.URL:C.RESOURCE_URL:"form"===e&&"action"===t||"base"===e&&"href"===t||"link"===e&&"href"===t?C.RESOURCE_URL:"a"!==e||"href"!==t&&"ngHref"!==t?void 0:C.URL}(a,i),c=!o,u=l[i]||o,d=n(r,c,s,u);if(d){if("multiple"===i&&"select"===a)throw fn("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",xe(e));if(p.test(i))throw fn("nodomevents","Interpolations for HTML DOM event attributes are disallowed");t.push({priority:100,compile:function(){return{pre:function(e,t,o){var a=o.$$observers||(o.$$observers=Le()),l=o[i];l!==r&&(d=l&&n(l,!0,s,u),r=l),d&&(o[i]=d(e),(a[i]||(a[i]=[])).$$inter=!0,(o.$$observers&&o.$$observers[i].$$scope||e).$watch(d,(function(e,t){"class"===i&&e!==t?o.$updateClass(e,t):o.$set(i,e)})))}}}})}}function De(t,n,r){var i,o,s=n[0],l=n.length,c=s.parentNode;if(t)for(i=0,o=t.length;i<o;i++)if(t[i]===s){t[i++]=r;for(var u=i,d=u+l-1,p=t.length;u<p;u++,d++)d<p?t[u]=t[d]:delete t[u];t.length-=l-1,t.context===s&&(t.context=r);break}c&&c.replaceChild(r,s);var f=e.document.createDocumentFragment();for(i=0;i<l;i++)f.appendChild(n[i]);for(a.hasData(s)&&(a.data(r,a.data(s)),a(s).off("$destroy")),a.cleanData(f.querySelectorAll("*")),i=1;i<l;i++)delete n[i];n[0]=r,n.length=1}function Re(e,t){return _((function(){return e.apply(null,arguments)}),e,t)}function Ne(e,t,n,r,i,o){try{e(t,n,r,i,o)}catch(e){f(e,xe(n))}}function Me(e,t){if(b)throw fn("missingattr","Attribute '{0}' of '{1}' is non-optional and must be set!",e,t)}function ze(e,t,r,i,o){var a,s=[],l={};function c(t,n,i){G(r.$onChanges)&&!ae(n,i)&&(T||(e.$$postDigest(q),T=[]),a||(a={},T.push(d)),a[t]&&(i=a[t].previousValue),a[t]=new mn(i,n))}function d(){r.$onChanges(a),a=void 0}return k(i,(function(i,a){var d,p,f,h,g,m=i.attrName,v=i.optional;switch(i.mode){case"@":v||u.call(t,m)||(Me(m,o.name),r[a]=t[m]=void 0),g=t.$observe(m,(function(e){if(F(e)||Z(e)){var t=r[a];c(a,e,t),r[a]=e}})),t.$$observers[m].$$scope=e,F(d=t[m])?r[a]=n(d)(e):Z(d)&&(r[a]=d),l[a]=new mn(hn,r[a]),s.push(g);break;case"=":if(!u.call(t,m)){if(v)break;Me(m,o.name),t[m]=void 0}if(v&&!t[m])break;p=E(t[m]),h=p.literal?se:ae,f=p.assign||function(){throw d=r[a]=p(e),fn("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[m],m,o.name)},d=r[a]=p(e);var b=function(t){return h(t,r[a])||(h(t,d)?f(e,t=r[a]):r[a]=t),d=t};b.$stateful=!0,g=i.collection?e.$watchCollection(t[m],b):e.$watch(E(t[m],b),null,p.literal),s.push(g);break;case"<":if(!u.call(t,m)){if(v)break;Me(m,o.name),t[m]=void 0}if(v&&!t[m])break;var y=(p=E(t[m])).literal,x=r[a]=p(e);l[a]=new mn(hn,r[a]),g=e[i.collection?"$watchCollection":"$watch"](p,(function(e,t){if(t===e){if(t===x||y&&se(t,x))return;t=x}c(a,e,t),r[a]=e})),s.push(g);break;case"&":if(v||u.call(t,m)||Me(m,o.name),(p=t.hasOwnProperty(m)?E(t[m]):D)===D&&v)break;r[a]=function(t){return p(e,t)}}})),{initialChanges:l,removeWatches:s.length&&function(){for(var e=0,t=s.length;e<t;++e)s[e]()}}}}]}function mn(e,t){this.previousValue=e,this.currentValue=t}gn.$inject=["$provide","$$sanitizeUriProvider"],mn.prototype.isFirstChange=function(){return this.previousValue===hn};var vn=/^((?:x|data)[:\-_])/i,bn=/[:\-_]+(.)/g;function yn(e){return e.replace(vn,"").replace(bn,(function(e,t,n){return n?t.toUpperCase():t}))}function xn(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a===i[s])continue e;n+=(n.length>0?" ":"")+a}return n}function wn(e){var t=(e=a(e)).length;if(t<=1)return e;for(;t--;){var n=e[t];(8===n.nodeType||n.nodeType===Fe&&""===n.nodeValue.trim())&&h.call(e,t,1)}return e}var kn=i("$controller"),An=/^(\S+)(\s+as\s+([\w$]+))?$/;function En(e,t){if(t&&F(t))return t;if(F(e)){var n=An.exec(e);if(n)return n[3]}}function Sn(){var e={};this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Me(t,"controller"),L(t)?_(e,t):e[t]=n},this.$get=["$injector",function(t){return function(r,i,o,a){var s,l,c,u;if(o=!0===o,a&&F(a)&&(u=a),F(r)){if(!(l=r.match(An)))throw kn("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);if(c=l[1],u=u||l[3],!(r=e.hasOwnProperty(c)?e[c]:function(e,t,n){if(!t)return e;for(var r,i=t.split("."),o=e,a=i.length,s=0;s<a;s++)r=i[s],e&&(e=(o=e)[r]);return!n&&G(e)?pe(o,e):e}(i.$scope,c,!0)))throw kn("ctrlreg","The controller with the name '{0}' is not registered.",c);Ne(r,c,!0)}if(o){var d=(U(r)?r[r.length-1]:r).prototype;return s=Object.create(d||null),u&&n(i,u,s,c||r.name),_((function(){var e=t.invoke(r,s,i,c);return e!==s&&(L(e)||G(e))&&(s=e,u&&n(i,u,s,c||r.name)),s}),{instance:s,identifier:u})}return s=t.instantiate(r,i,c),u&&n(i,u,s,c||r.name),s};function n(e,t,n,r){if(!e||!L(e.$scope))throw i("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,t);e.$scope[t]=n}}]}function $n(){this.$get=["$window",function(e){return a(e.document)}]}function Cn(){this.$get=["$document","$rootScope",function(e,t){var n=e[0],r=n&&n.hidden;function i(){r=n.hidden}return e.on("visibilitychange",i),t.$on("$destroy",(function(){e.off("visibilitychange",i)})),function(){return r}}]}function _n(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}var On=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof a&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},Tn={"Content-Type":"application/json;charset=utf-8"},jn=/^\[|^\{(?!\{)/,Pn={"[":/]$/,"{":/}$/},Dn=/^\)]\}',?\n/,Rn=i("$http");function In(e){return L(e)?V(e)?e.toISOString():he(e):e}function Nn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return A(e,(function(e,n){null===e||M(e)||G(e)||(U(e)?k(e,(function(e){t.push(Ee(n)+"="+Ee(In(e)))})):t.push(Ee(n)+"="+Ee(In(e))))})),t.join("&")}}}function Mn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function e(n,r,i){U(n)?k(n,(function(t,n){e(t,r+"["+(L(t)?n:"")+"]")})):L(n)&&!V(n)?A(n,(function(t,n){e(t,r+(i?"":"[")+n+(i?"":"]"))})):(G(n)&&(n=n()),t.push(Ee(r)+"="+(null==n?"":Ee(In(n)))))}(e,"",!0),t.join("&")}}}function zn(e,t){if(F(e)){var n=e.replace(Dn,"").trim();if(n){var r=t("Content-Type"),i=r&&0===r.indexOf("application/json");if(i||(a=(o=n).match(jn))&&Pn[a[0]].test(o))try{e=ge(n)}catch(t){if(!i)return e;throw Rn("baddata",'Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"',e,t)}}}var o,a;return e}function Ln(e){var t,n=Le();function r(e,t){e&&(n[e]=n[e]?n[e]+", "+t:t)}return F(e)?k(e.split("\n"),(function(e){t=e.indexOf(":"),r(d(K(e.substr(0,t))),K(e.substr(t+1)))})):L(e)&&k(e,(function(e,t){r(d(t),K(e))})),n}function Bn(e){var t;return function(n){if(t||(t=Ln(e)),n){var r=t[d(n)];return void 0===r&&(r=null),r}return t}}function Fn(e,t,n,r){return G(r)?r(e,t,n):(k(r,(function(r){e=r(e,t,n)})),e)}function qn(e){return 200<=e&&e<300}function Vn(){var e=this.defaults={transformResponse:[zn],transformRequest:[function(e){return!L(e)||(t=e,"[object File]"===m.call(t))||function(e){return"[object Blob]"===m.call(e)}(e)||function(e){return"[object FormData]"===m.call(e)}(e)?e:he(e);var t}],headers:{common:{Accept:"application/json, text/plain, */*"},post:qe(Tn),put:qe(Tn),patch:qe(Tn)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},t=!1;this.useApplyAsync=function(e){return z(e)?(t=!!e,this):t};var n=this.interceptors=[],r=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",{get:function(){return this.xsrfTrustedOrigins},set:function(e){this.xsrfTrustedOrigins=e}}),this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(o,a,s,l,c,u,f,h){var g=l("$http");e.paramSerializer=F(e.paramSerializer)?f.get(e.paramSerializer):e.paramSerializer;var m=[];k(n,(function(e){m.unshift(F(e)?f.get(e):f.invoke(e))}));var v,b=(v=[ai].concat(r.map(li)),function(e){var t=li(e);return v.some(ci.bind(null,t))});function y(n){if(!L(n))throw i("$http")("badreq","Http request configuration must be an object. Received: {0}",n);if(!F(h.valueOf(n.url)))throw i("$http")("badreq","Http request configuration url must be a string or a $sce trusted object. Received: {0}",n.url);var r=_({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer,jsonpCallbackParam:e.jsonpCallbackParam},n);r.headers=function(t){var n,r,i,o=e.headers,a=_({},t.headers);o=_({},o.common,o[d(t.method)]);e:for(n in o){for(i in r=d(n),a)if(d(i)===r)continue e;a[n]=o[n]}return function(e,t){var n,r={};return k(e,(function(e,i){G(e)?null!=(n=e(t))&&(r[i]=n):r[i]=e})),r}(a,qe(t))}(n),r.method=p(r.method),r.paramSerializer=F(r.paramSerializer)?f.get(r.paramSerializer):r.paramSerializer,o.$$incOutstandingRequestCount("$http");var l=[],v=[],x=u.resolve(r);return k(m,(function(e){(e.request||e.requestError)&&l.unshift(e.request,e.requestError),(e.response||e.responseError)&&v.push(e.response,e.responseError)})),x=w(x,l),x=(x=w(x=x.then((function(n){var r=n.headers,i=Fn(n.data,Bn(r),void 0,n.transformRequest);M(i)&&k(r,(function(e,t){"content-type"===d(t)&&delete r[t]}));M(n.withCredentials)&&!M(e.withCredentials)&&(n.withCredentials=e.withCredentials);return function(n,r){var i,o,l=u.defer(),p=l.promise,f=n.headers,m="jsonp"===d(n.method),v=n.url;m?v=h.getTrustedResourceUrl(v):F(v)||(v=h.valueOf(v));v=function(e,t){t.length>0&&(e+=(-1===e.indexOf("?")?"?":"&")+t);return e}(v,n.paramSerializer(n.params)),m&&(v=function(e,t){var n=e.split("?");if(n.length>2)throw Rn("badjsonp",'Illegal use more than one "?", in url, "{1}"',e);return k(ke(n[1]),(function(n,r){if("JSON_CALLBACK"===n)throw Rn("badjsonp",'Illegal use of JSON_CALLBACK in url, "{0}"',e);if(r===t)throw Rn("badjsonp",'Illegal use of callback param, "{0}", in url, "{1}"',t,e)})),e+=(-1===e.indexOf("?")?"?":"&")+t+"=JSON_CALLBACK"}(v,n.jsonpCallbackParam));y.pendingRequests.push(n),p.then(S,S),!n.cache&&!e.cache||!1===n.cache||"GET"!==n.method&&"JSONP"!==n.method||(i=L(n.cache)?n.cache:L(e.cache)?e.cache:g);i&&(z(o=i.get(v))?Q(o)?o.then(E,E):U(o)?A(o[1],o[0],qe(o[2]),o[3],o[4]):A(o,200,{},"OK","complete"):i.put(v,p));if(M(o)){var x=b(n.url)?s()[n.xsrfCookieName||e.xsrfCookieName]:void 0;x&&(f[n.xsrfHeaderName||e.xsrfHeaderName]=x),a(n.method,v,r,(function(e,n,r,o,a){i&&(qn(e)?i.put(v,[e,n,Ln(r),o,a]):i.remove(v));function s(){A(n,e,r,o,a)}t?c.$applyAsync(s):(s(),c.$$phase||c.$apply())}),f,n.timeout,n.withCredentials,n.responseType,w(n.eventHandlers),w(n.uploadEventHandlers))}return p;function w(e){if(e){var n={};return k(e,(function(e,r){n[r]=function(n){function r(){e(n)}t?c.$applyAsync(r):c.$$phase?r():c.$apply(r)}})),n}}function A(e,t,r,i,o){(qn(t=t>=-1?t:0)?l.resolve:l.reject)({data:e,status:t,headers:Bn(r),config:n,statusText:i,xhrStatus:o})}function E(e){A(e.data,e.status,qe(e.headers()),e.statusText,e.xhrStatus)}function S(){var e=y.pendingRequests.indexOf(n);-1!==e&&y.pendingRequests.splice(e,1)}}(n,i).then(A,A)})),v)).finally((function(){o.$$completeOutstandingRequest(D,"$http")}));function w(e,t){for(var n=0,r=t.length;n<r;){var i=t[n++],o=t[n++];e=e.then(i,o)}return t.length=0,e}function A(e){var t=_({},e);return t.data=Fn(e.data,e.headers,e.status,r.transformResponse),qn(e.status)?t:u.reject(t)}}return y.pendingRequests=[],function(e){k(arguments,(function(e){y[e]=function(t,n){return y(_({},n||{},{method:e,url:t}))}}))}("get","delete","head","jsonp"),function(e){k(arguments,(function(e){y[e]=function(t,n,r){return y(_({},r||{},{method:e,url:t,data:n}))}}))}("post","put","patch"),y.defaults=e,y}]}function Un(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Hn(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,r){return function(e,t,n,r,i){return function(o,a,s,l,c,u,p,f,h,g){if(a=a||e.url(),"jsonp"===d(o))var m=r.createCallback(a),v=function(e,t,n){e=e.replace("JSON_CALLBACK",t);var o=i.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){o.removeEventListener("load",a),o.removeEventListener("error",a),i.body.removeChild(o),o=null;var s=-1,l="unknown";e&&("load"!==e.type||r.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},o.addEventListener("load",a),o.addEventListener("error",a),i.body.appendChild(o),a}(a,m,(function(e,t){var n=200===e&&r.getResponse(m);A(l,e,n,"",t,"complete"),r.removeCallback(m)}));else{var b=t(o,a),y=!1;b.open(o,a,!0),k(c,(function(e,t){z(e)&&b.setRequestHeader(t,e)})),b.onload=function(){var e=b.statusText||"",t="response"in b?b.response:b.responseText,n=1223===b.status?204:b.status;0===n&&(n=t?200:"file"===li(a).protocol?404:0),A(l,n,t,b.getAllResponseHeaders(),e,"complete")};if(b.onerror=function(){A(l,-1,null,null,"","error")},b.ontimeout=function(){A(l,-1,null,null,"","timeout")},b.onabort=function(){A(l,-1,null,null,"",y?"timeout":"abort")},k(h,(function(e,t){b.addEventListener(t,e)})),k(g,(function(e,t){b.upload.addEventListener(t,e)})),p&&(b.withCredentials=!0),f)try{b.responseType=f}catch(e){if("json"!==f)throw e}b.send(M(s)?null:s)}if(u>0)var x=n((function(){w("timeout")}),u);else Q(u)&&u.then((function(){w(z(u.$$timeoutId)?"timeout":"abort")}));function w(e){y="timeout"===e,v&&v(),b&&b.abort()}function A(e,t,r,i,o,a){z(x)&&n.cancel(x),v=b=null,e(t,r,i,o,a)}}}(e,r,e.defer,t,n[0])}]}var Gn=y.$interpolateMinErr=i("$interpolate");function Wn(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){var o=e.length,a=t.length,s=new RegExp(e.replace(/./g,c),"g"),l=new RegExp(t.replace(/./g,c),"g");function c(e){return"\\\\\\"+e}function u(n){return n.replace(s,e).replace(l,t)}function d(e,t,n,r){var i=e.$watch((function(e){return i(),r(e)}),t,n);return i}function p(s,l,c,p){var f=c===i.URL||c===i.MEDIA_URL;if(!s.length||-1===s.indexOf(e)){if(l)return;var h=u(s);f&&(h=i.getTrusted(c,h));var g=I(h);return g.exp=s,g.expressions=[],g.$$watchDelegate=d,g}p=!!p;for(var m,v,b,y,x,w=0,k=[],A=s.length,E=[],S=[];w<A;){if(-1===(m=s.indexOf(e,w))||-1===(v=s.indexOf(t,m+o))){w!==A&&E.push(u(s.substring(w)));break}w!==m&&E.push(u(s.substring(w,m))),y=s.substring(m+o,v),k.push(y),w=v+a,S.push(E.length),E.push("")}x=1===E.length&&1===S.length;var $=f&&x?void 0:function(e){try{return e=c&&!f?i.getTrusted(c,e):i.valueOf(e),p&&!z(e)?e:Be(e)}catch(e){r(Gn.interr(s,e))}};if(b=k.map((function(e){return n(e,$)})),!l||k.length){var C=function(e){for(var t=0,n=k.length;t<n;t++){if(p&&M(e[t]))return;E[S[t]]=e[t]}return f?i.getTrusted(c,x?E[0]:E.join("")):(c&&E.length>1&&Gn.throwNoconcat(s),E.join(""))};return _((function(e){var t=0,n=k.length,i=new Array(n);try{for(;t<n;t++)i[t]=b[t](e);return C(i)}catch(e){r(Gn.interr(s,e))}}),{exp:s,expressions:k,$$watchDelegate:function(e,t){var n;return e.$watchGroup(b,(function(r,i){var o=C(r);t.call(this,o,r!==i?n:o,e),n=o}))}})}}return p.startSymbol=function(){return e},p.endSymbol=function(){return t},p}]}Gn.throwNoconcat=function(e){throw Gn("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},Gn.interr=function(e,t){return Gn("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var Yn=i("$interval");function Xn(){this.$get=["$$intervalFactory","$window",function(e,t){var n={},r=function(e){t.clearInterval(e),delete n[e]},i=e((function(e,r,i){var o=t.setInterval(e,r);return n[o]=i,o}),r);return i.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$intervalId"))throw Yn("badprom","`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!n.hasOwnProperty(e.$$intervalId))return!1;var t=e.$$intervalId,i=n[t];return Lr(i.promise),i.reject("canceled"),r(t),!0},i}]}function Zn(){this.$get=["$browser","$q","$$q","$rootScope",function(e,t,n,r){return function(i,o){return function(a,s,l,c){var u=arguments.length>4,d=u?de(arguments,4):[],p=0,f=z(c)&&!c,h=(f?n:t).defer(),g=h.promise;function m(){u?a.apply(null,d):a(p)}function v(){f?e.defer(m):r.$evalAsync(m),h.notify(p++),l>0&&p>=l&&(h.resolve(p),o(g.$$intervalId)),f||r.$apply()}return l=z(l)?l:0,g.$$intervalId=i(v,s,h,f),g}}}]}var Qn=function(){this.$get=function(){var e=y.callbacks,t={};return{createCallback:function(n){var r="_"+(e.$$counter++).toString(36),i="angular.callbacks."+r,o=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(r);return t[i]=e[r]=o,i},wasCalled:function(e){return t[e].called},getResponse:function(e){return t[e].data},removeCallback:function(n){var r=t[n];delete e[r.id],delete t[n]}}}},Jn=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Kn={http:80,https:443,ftp:21},er=i("$location");function tr(e,t,n){var r,i=(r=[],k(t,(function(e,t){U(e)?k(e,(function(e){r.push(Ee(t,!0)+(!0===e?"":"="+Ee(e,!0)))})):r.push(Ee(t,!0)+(!0===e?"":"="+Ee(e,!0)))})),r.length?r.join("&"):""),o=n?"#"+Ae(n):"";return function(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=Ae(t[n].replace(/%2F/g,"/"));return t.join("/")}(e)+(i?"?"+i:"")+o}function nr(e,t){var n=li(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=T(n.port)||Kn[n.protocol]||null}var rr=/^\s*[\\/]{2,}/;function ir(e,t,n){if(rr.test(e))throw er("badpath",'Invalid url "{0}".',e);var r="/"!==e.charAt(0);r&&(e="/"+e);var i=li(e),o=r&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname;t.$$path=function(e,t){for(var n=e.split("/"),r=n.length;r--;)n[r]=decodeURIComponent(n[r]),t&&(n[r]=n[r].replace(/\//g,"%2F"));return n.join("/")}(o,n),t.$$search=ke(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function or(e,t){return e.slice(0,t.length)===t}function ar(e,t){if(or(t,e))return t.substr(e.length)}function sr(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function lr(e,t,n){this.$$html5=!0,n=n||"",nr(e,this),this.$$parse=function(e){var n=ar(t,e);if(!F(n))throw er("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);ir(n,this,!0),this.$$path||(this.$$path="/"),this.$$compose()},this.$$normalizeUrl=function(e){return t+e.substr(1)},this.$$parseLinkUrl=function(r,i){return i&&"#"===i[0]?(this.hash(i.slice(1)),!0):(z(o=ar(e,r))?(a=o,s=n&&z(o=ar(n,o))?t+(ar("/",o)||o):e+a):z(o=ar(t,r))?s=t+o:t===r+"/"&&(s=t),s&&this.$$parse(s),!!s);var o,a,s}}function cr(e,t,n){nr(e,this),this.$$parse=function(r){var i,o=ar(e,r)||ar(t,r);M(o)||"#"!==o.charAt(0)?this.$$html5?i=o:(i="",M(o)&&(e=r,this.replace())):M(i=ar(n,o))&&(i=o),ir(i,this,!1),this.$$path=function(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;or(t,n)&&(t=t.replace(n,""));if(i.exec(t))return e;return(r=i.exec(e))?r[1]:e}(this.$$path,i,e),this.$$compose()},this.$$normalizeUrl=function(t){return e+(t?n+t:"")},this.$$parseLinkUrl=function(t,n){return sr(e)===sr(t)&&(this.$$parse(t),!0)}}function ur(e,t,n){this.$$html5=!0,cr.apply(this,arguments),this.$$parseLinkUrl=function(r,i){return i&&"#"===i[0]?(this.hash(i.slice(1)),!0):(e===sr(r)?o=r:(a=ar(t,r))?o=e+n+a:t===r+"/"&&(o=t),o&&this.$$parse(o),!!o);var o,a},this.$$normalizeUrl=function(t){return e+n+t}}var dr={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){this.$$url=tr(this.$$path,this.$$search,this.$$hash),this.$$absUrl=this.$$normalizeUrl(this.$$url),this.$$urlUpdatedByLocation=!0},absUrl:pr("$$absUrl"),url:function(e){if(M(e))return this.$$url;var t=Jn.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:pr("$$protocol"),host:pr("$$host"),port:pr("$$port"),path:fr("$$path",(function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e})),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(F(e)||q(e))e=e.toString(),this.$$search=ke(e);else{if(!L(e))throw er("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");k(e=oe(e,{}),(function(t,n){null==t&&delete e[n]})),this.$$search=e}break;default:M(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:fr("$$hash",(function(e){return null!==e?e.toString():""})),replace:function(){return this.$$replace=!0,this}};function pr(e){return function(){return this[e]}}function fr(e,t){return function(n){return M(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function hr(){var e="!",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return z(t)?(e=t,this):e},this.html5Mode=function(e){return Z(e)?(t.enabled=e,this):L(e)?(Z(e.enabled)&&(t.enabled=e.enabled),Z(e.requireBase)&&(t.requireBase=e.requireBase),(Z(e.rewriteLinks)||F(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,s){var l,c,u,d,p=r.baseHref(),f=r.url();if(t.enabled){if(!p&&t.requireBase)throw er("nobase","$location in HTML5 mode requires a <base> tag to be present!");u=(d=f).substring(0,d.indexOf("/",d.indexOf("//")+2))+(p||"/"),c=i.history?lr:ur}else u=sr(f),c=cr;var h=function(e){return e.substr(0,sr(e).lastIndexOf("/")+1)}(u);(l=new c(u,h,"#"+e)).$$parseLinkUrl(f,f),l.$$state=r.state();var g=/^\s*(javascript|mailto):/i;function m(e,t,n){var i=l.url(),o=l.$$state;try{r.url(e,t,n),l.$$state=r.state()}catch(e){throw l.url(i),l.$$state=o,e}}o.on("click",(function(e){var i=t.rewriteLinks;if(i&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var s=a(e.target);"a"!==ne(s[0]);)if(s[0]===o[0]||!(s=s.parent())[0])return;if(!F(i)||!M(s.attr(i))){var c=s.prop("href"),u=s.attr("href")||s.attr("xlink:href");L(c)&&"[object SVGAnimatedString]"===c.toString()&&(c=li(c.animVal).href),g.test(c)||!c||s.attr("target")||e.isDefaultPrevented()||l.$$parseLinkUrl(c,u)&&(e.preventDefault(),l.absUrl()!==r.url()&&n.$apply())}}})),l.absUrl()!==f&&r.url(l.absUrl(),!0);var v=!0;return r.onUrlChange((function(e,t){or(e,h)?(n.$evalAsync((function(){var r,i=l.absUrl(),o=l.$$state;l.$$parse(e),l.$$state=t,r=n.$broadcast("$locationChangeStart",e,i,t,o).defaultPrevented,l.absUrl()===e&&(r?(l.$$parse(i),l.$$state=o,m(i,!1,o)):(v=!1,b(i,o)))})),n.$$phase||n.$digest()):s.location.href=e})),n.$watch((function(){if(v||l.$$urlUpdatedByLocation){l.$$urlUpdatedByLocation=!1;var e=r.url(),t=l.absUrl(),o=r.state(),a=l.$$replace,s=!((c=e)===(u=t)||li(c).href===li(u).href)||l.$$html5&&i.history&&o!==l.$$state;(v||s)&&(v=!1,n.$evalAsync((function(){var t=l.absUrl(),r=n.$broadcast("$locationChangeStart",t,e,l.$$state,o).defaultPrevented;l.absUrl()===t&&(r?(l.$$parse(e),l.$$state=o):(s&&m(t,a,o===l.$$state?null:l.$$state),b(e,o)))})))}var c,u;l.$$replace=!1})),l;function b(e,t){n.$broadcast("$locationChangeSuccess",l.absUrl(),e,l.$$state,t)}}]}function gr(){var e=!0,t=this;this.debugEnabled=function(t){return z(t)?(e=t,this):e},this.$get=["$window",function(n){var r,i=o||/\bEdge\//.test(n.navigator&&n.navigator.userAgent);return{log:s("log"),info:s("info"),warn:s("warn"),error:s("error"),debug:(r=s("debug"),function(){e&&r.apply(t,arguments)})};function a(e){return H(e)&&(e.stack&&i?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function s(e){var t=n.console||{},r=t[e]||t.log||D;return function(){var e=[];return k(arguments,(function(t){e.push(a(t))})),Function.prototype.apply.call(r,t,e)}}}]}k([ur,cr,lr],(function(e){e.prototype=Object.create(dr),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==lr||!this.$$html5)throw er("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=M(t)?null:t,this.$$urlUpdatedByLocation=!0,this}}));var mr=i("$parse"),vr={}.constructor.prototype.valueOf;function br(e){return e+""}var yr=Le();k("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),(function(e){yr[e]=!0}));var xr={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},wr=function(e){this.options=e};wr.prototype={constructor:wr,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=yr[t],o=yr[n],a=yr[r];if(i||o||a){var s=a?r:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),r=t.charCodeAt(0);return n>=55296&&n<=56319&&r>=56320&&r<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=z(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw mr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=d(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"===n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{n+=xr[o]||o}i=!1}else if("\\"===o)i=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var kr=function(e,t){this.lexer=e,this.options=t};function Ar(e,t){return void 0!==e?e:t}function Er(e,t){return void 0===e?t:void 0===t?e:e+t}kr.Program="Program",kr.ExpressionStatement="ExpressionStatement",kr.AssignmentExpression="AssignmentExpression",kr.ConditionalExpression="ConditionalExpression",kr.LogicalExpression="LogicalExpression",kr.BinaryExpression="BinaryExpression",kr.UnaryExpression="UnaryExpression",kr.CallExpression="CallExpression",kr.MemberExpression="MemberExpression",kr.Identifier="Identifier",kr.Literal="Literal",kr.ArrayExpression="ArrayExpression",kr.Property="Property",kr.ObjectExpression="ObjectExpression",kr.ThisExpression="ThisExpression",kr.LocalsExpression="LocalsExpression",kr.NGValueParameter="NGValueParameter",kr.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:kr.Program,body:e}},expressionStatement:function(){return{type:kr.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Cr(e))throw mr("lval","Trying to assign a value to a non l-value");e={type:kr.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:kr.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:kr.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:kr.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:kr.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=oe(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:kr.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:kr.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:kr.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:kr.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:kr.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:kr.Identifier,name:e.text}},constant:function(){return{type:kr.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:kr.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:kr.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:kr.ObjectExpression,properties:t}},throwError:function(e,t){throw mr("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw mr("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw mr("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===r||a===i||!t&&!n&&!r&&!i)return o}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return!!i&&(this.tokens.shift(),i)},selfReferential:{this:{type:kr.ThisExpression},$locals:{type:kr.LocalsExpression}}};function Sr(e,t,n){var r,i,o,a=e.isPure=function(e,t){switch(e.type){case kr.MemberExpression:if(e.computed)return!1;break;case kr.UnaryExpression:return 1;case kr.BinaryExpression:return"+"!==e.operator&&1;case kr.CallExpression:return!1}return void 0===t?2:t}(e,n);switch(e.type){case kr.Program:r=!0,k(e.body,(function(e){Sr(e.expression,t,a),r=r&&e.expression.constant})),e.constant=r;break;case kr.Literal:e.constant=!0,e.toWatch=[];break;case kr.UnaryExpression:Sr(e.argument,t,a),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case kr.BinaryExpression:Sr(e.left,t,a),Sr(e.right,t,a),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case kr.LogicalExpression:Sr(e.left,t,a),Sr(e.right,t,a),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case kr.ConditionalExpression:Sr(e.test,t,a),Sr(e.alternate,t,a),Sr(e.consequent,t,a),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case kr.Identifier:e.constant=!1,e.toWatch=[e];break;case kr.MemberExpression:Sr(e.object,t,a),e.computed&&Sr(e.property,t,a),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=e.constant?[]:[e];break;case kr.CallExpression:o=!!e.filter&&function(e,t){return!e(t).$stateful}(t,e.callee.name),r=o,i=[],k(e.arguments,(function(e){Sr(e,t,a),r=r&&e.constant,i.push.apply(i,e.toWatch)})),e.constant=r,e.toWatch=o?i:[e];break;case kr.AssignmentExpression:Sr(e.left,t,a),Sr(e.right,t,a),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case kr.ArrayExpression:r=!0,i=[],k(e.elements,(function(e){Sr(e,t,a),r=r&&e.constant,i.push.apply(i,e.toWatch)})),e.constant=r,e.toWatch=i;break;case kr.ObjectExpression:r=!0,i=[],k(e.properties,(function(e){Sr(e.value,t,a),r=r&&e.value.constant,i.push.apply(i,e.value.toWatch),e.computed&&(Sr(e.key,t,!1),r=r&&e.key.constant,i.push.apply(i,e.key.toWatch))})),e.constant=r,e.toWatch=i;break;case kr.ThisExpression:case kr.LocalsExpression:e.constant=!1,e.toWatch=[]}}function $r(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length||n[0]!==t?n:void 0}}function Cr(e){return e.type===kr.Identifier||e.type===kr.MemberExpression}function _r(e){if(1===e.body.length&&Cr(e.body[0].expression))return{type:kr.AssignmentExpression,left:e.body[0].expression,right:{type:kr.NGValueParameter},operator:"="}}function Or(e){this.$filter=e}function Tr(e){this.$filter=e}function jr(e,t,n){this.ast=new kr(e,n),this.astCompiler=n.csp?new Tr(t):new Or(t)}function Pr(e){return G(e.valueOf)?e.valueOf():vr.call(e)}function Dr(){var e,t,n=Le(),r={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){r[e]=t},this.setIdentifierFns=function(n,r){return e=n,t=r,this},this.$get=["$filter",function(i){var o={csp:le().noUnsafeEval,literals:oe(r),isIdentifierStart:G(e)&&e,isIdentifierContinue:G(t)&&t};return a.$$getAst=function(e){return new jr(new wr(o),i,o).getAst(e).ast},a;function a(e,t){var r,a;switch(typeof e){case"string":if(e=e.trim(),!(r=n[a=e]))r=new jr(new wr(o),i,o).parse(e),n[a]=p(r);return f(r,t);case"function":return f(e,t);default:return f(D,t)}}function s(e,t,n){return null==e||null==t?e===t:!("object"==typeof e&&"object"==typeof(e=Pr(e))&&!n)&&(e===t||e!=e&&t!=t)}function l(e,t,n,r,i){var o,a=r.inputs;if(1===a.length){var l=s;return a=a[0],e.$watch((function(e){var t=a(e);return s(t,l,a.isPure)||(o=r(e,void 0,void 0,[t]),l=t&&Pr(t)),o}),t,n,i)}for(var c=[],u=[],d=0,p=a.length;d<p;d++)c[d]=s,u[d]=null;return e.$watch((function(e){for(var t=!1,n=0,i=a.length;n<i;n++){var l=a[n](e);(t||(t=!s(l,c[n],a[n].isPure)))&&(u[n]=l,c[n]=l&&Pr(l))}return t&&(o=r(e,void 0,void 0,u)),o}),t,n,i)}function c(e,t,n,r,i){var o,a,s=r.literal?u:z,l=r.$$intercepted||r,c=r.$$interceptor||R,d=r.inputs&&!l.inputs;return h.literal=r.literal,h.constant=r.constant,h.inputs=r.inputs,p(h),o=e.$watch(h,t,n,i);function f(){s(a)&&o()}function h(e,t,n,r){return a=d&&r?r[0]:l(e,t,n,r),s(a)&&e.$$postDigest(f),c(a)}}function u(e){var t=!0;return k(e,(function(e){z(e)||(t=!1)})),t}function d(e,t,n,r){var i=e.$watch((function(e){return i(),r(e)}),t,n);return i}function p(e){return e.constant?e.$$watchDelegate=d:e.oneTime?e.$$watchDelegate=c:e.inputs&&(e.$$watchDelegate=l),e}function f(e,t){if(!t)return e;e.$$interceptor&&(t=function(e,t){function n(n){return t(e(n))}return n.$stateful=e.$stateful||t.$stateful,n.$$pure=e.$$pure&&t.$$pure,n}(e.$$interceptor,t),e=e.$$intercepted);var n=!1,r=function(r,i,o,a){var s=n&&a?a[0]:e(r,i,o,a);return t(s)};return r.$$intercepted=e,r.$$interceptor=t,r.literal=e.literal,r.oneTime=e.oneTime,r.constant=e.constant,t.$stateful||(n=!e.inputs,r.inputs=e.inputs?e.inputs:[e],t.$$pure||(r.inputs=r.inputs.map((function(e){return 2===e.isPure?function(t){return e(t)}:e})))),p(r)}}]}function Rr(){var e=!0;this.$get=["$rootScope","$exceptionHandler",function(t,n){return Nr((function(e){t.$evalAsync(e)}),n,e)}],this.errorOnUnhandledRejections=function(t){return z(t)?(e=t,this):e}}function Ir(){var e=!0;this.$get=["$browser","$exceptionHandler",function(t,n){return Nr((function(e){t.defer(e)}),n,e)}],this.errorOnUnhandledRejections=function(t){return z(t)?(e=t,this):e}}function Nr(e,t,n){var r=i("$q",TypeError),o=0,a=[];function s(){return new l}function l(){var e=this.promise=new c;this.resolve=function(t){p(e,t)},this.reject=function(t){f(e,t)},this.notify=function(t){g(e,t)}}function c(){this.$$state={status:0}}function u(){for(;!o&&a.length;){var e=a.shift();if(!Mr(e)){zr(e);var n="Possibly unhandled rejection: "+Ve(e.value);H(e.value)?t(e.value,n):t(n)}}}function d(r){!n||r.pending||2!==r.status||Mr(r)||(0===o&&0===a.length&&e(u),a.push(r)),!r.processScheduled&&r.pending&&(r.processScheduled=!0,++o,e((function(){!function(r){var i,a,s;s=r.pending,r.processScheduled=!1,r.pending=void 0;try{for(var l=0,c=s.length;l<c;++l){zr(r),a=s[l][0],i=s[l][r.status];try{G(i)?p(a,i(r.value)):1===r.status?p(a,r.value):f(a,r.value)}catch(e){f(a,e),e&&!0===e.$$passToExceptionHandler&&t(e)}}}finally{--o,n&&0===o&&e(u)}}(r)})))}function p(e,t){e.$$state.status||(t===e?h(e,r("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):function e(t,n){var r,i=!1;try{(L(n)||G(n))&&(r=n.then),G(r)?(t.$$state.status=-1,r.call(n,o,a,(function(e){g(t,e)}))):(t.$$state.value=n,t.$$state.status=1,d(t.$$state))}catch(e){a(e)}function o(n){i||(i=!0,e(t,n))}function a(e){i||(i=!0,h(t,e))}}(e,t))}function f(e,t){e.$$state.status||h(e,t)}function h(e,t){e.$$state.value=t,e.$$state.status=2,d(e.$$state)}function g(n,r){var i=n.$$state.pending;n.$$state.status<=0&&i&&i.length&&e((function(){for(var e,n,o=0,a=i.length;o<a;o++){n=i[o][0],e=i[o][3];try{g(n,G(e)?e(r):r)}catch(e){t(e)}}}))}function m(e){var t=new c;return f(t,e),t}function v(e,t,n){var r=null;try{G(n)&&(r=n())}catch(e){return m(e)}return Q(r)?r.then((function(){return t(e)}),m):t(e)}function b(e,t,n,r){var i=new c;return p(i,e),i.then(t,n,r)}_(c.prototype,{then:function(e,t,n){if(M(e)&&M(t)&&M(n))return this;var r=new c;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),this.$$state.status>0&&d(this.$$state),r},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then((function(t){return v(t,y,e)}),(function(t){return v(t,m,e)}),t)}});var y=b;function x(e){if(!G(e))throw r("norslvr","Expected resolverFn, got '{0}'",e);var t=new c;return e((function(e){p(t,e)}),(function(e){f(t,e)})),t}return x.prototype=c.prototype,x.defer=s,x.reject=m,x.when=b,x.resolve=y,x.all=function(e){var t=new c,n=0,r=U(e)?[]:{};return k(e,(function(e,i){n++,b(e).then((function(e){r[i]=e,--n||p(t,r)}),(function(e){f(t,e)}))})),0===n&&p(t,r),t},x.race=function(e){var t=s();return k(e,(function(e){b(e).then(t.resolve,t.reject)})),t.promise},x}function Mr(e){return!!e.pur}function zr(e){e.pur=!0}function Lr(e){e.$$state&&zr(e.$$state)}function Br(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function Fr(){var e=10,t=i("$rootScope"),n=null,r=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$exceptionHandler","$parse","$browser",function(i,a,s){function l(e){e.currentScope.$$destroyed=!0}function c(){this.$id=S(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$suspended=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}c.prototype={constructor:c,$new:function(e,t){var n;return t=t||this,e?(n=new c).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=S(),this.$$ChildScope=null,this.$$suspended=!1}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&&n.$on("$destroy",l),n},$watch:function(e,t,r,i){var o=a(e),s=G(t)?t:D;if(o.$$watchDelegate)return o.$$watchDelegate(this,s,r,o,e);var l=this,c=l.$$watchers,u={fn:s,last:x,get:o,exp:i||e,eq:!!r};return n=null,c||((c=l.$$watchers=[]).$$digestWatchIndex=-1),c.unshift(u),c.$$digestWatchIndex++,b(this,1),function(){var e=ie(c,u);e>=0&&(b(l,-1),e<c.$$digestWatchIndex&&c.$$digestWatchIndex--),n=null}},$watchGroup:function(e,t){var n=new Array(e.length),r=new Array(e.length),i=[],o=this,a=!1,s=!0;if(!e.length){var l=!0;return o.$evalAsync((function(){l&&t(r,r,o)})),function(){l=!1}}if(1===e.length)return this.$watch(e[0],(function(e,i,o){r[0]=e,n[0]=i,t(r,e===i?r:n,o)}));function c(){a=!1;try{s?(s=!1,t(r,r,o)):t(r,n,o)}finally{for(var i=0;i<e.length;i++)n[i]=r[i]}}return k(e,(function(e,t){var n=o.$watch(e,(function(e){r[t]=e,a||(a=!0,o.$evalAsync(c))}));i.push(n)})),function(){for(;i.length;)i.shift()()}},$watchCollection:function(e,t){g.$$pure=a(e).literal,g.$stateful=!g.$$pure;var n,r,i,o=this,s=t.length>1,l=0,c=a(e,g),d=[],p={},f=!0,h=0;function g(e){var t,i,o,a;if(!M(n=e)){if(L(n))if(w(n)){r!==d&&(h=(r=d).length=0,l++),t=n.length,h!==t&&(l++,r.length=h=t);for(var s=0;s<t;s++)a=r[s],o=n[s],a!=a&&o!=o||a===o||(l++,r[s]=o)}else{for(i in r!==p&&(r=p={},h=0,l++),t=0,n)u.call(n,i)&&(t++,o=n[i],a=r[i],i in r?a!=a&&o!=o||a===o||(l++,r[i]=o):(h++,r[i]=o,l++));if(h>t)for(i in l++,r)u.call(n,i)||(h--,delete r[i])}else r!==n&&(r=n,l++);return l}}return this.$watch(c,(function(){if(f?(f=!1,t(n,n,o)):t(n,i,o),s)if(L(n))if(w(n)){i=new Array(n.length);for(var e=0;e<n.length;e++)i[e]=n[e]}else for(var r in i={},n)u.call(n,r)&&(i[r]=n[r]);else i=n}))},$digest:function(){var o,a,l,c,u,h,b,y,w,k=e,E=p.length?d:this,S=[];m("$digest"),s.$$checkUrlChange(),this===d&&null!==r&&(s.defer.cancel(r),A()),n=null;do{u=!1,b=E;for(var $=0;$<p.length;$++){try{(0,(w=p[$]).fn)(w.scope,w.locals)}catch(e){i(e)}n=null}p.length=0;e:do{if(c=!b.$$suspended&&b.$$watchers)for(c.$$digestWatchIndex=c.length;c.$$digestWatchIndex--;)try{if(o=c[c.$$digestWatchIndex])if((a=(0,o.get)(b))===(l=o.last)||(o.eq?se(a,l):j(a)&&j(l))){if(o===n){u=!1;break e}}else u=!0,n=o,o.last=o.eq?oe(a,null):a,(0,o.fn)(a,l===x?a:l,b),k<5&&(S[y=4-k]||(S[y]=[]),S[y].push({msg:G(o.exp)?"fn: "+(o.exp.name||o.exp.toString()):o.exp,newVal:a,oldVal:l}))}catch(e){i(e)}if(!(h=!b.$$suspended&&b.$$watchersCount&&b.$$childHead||b!==E&&b.$$nextSibling))for(;b!==E&&!(h=b.$$nextSibling);)b=b.$parent}while(b=h);if((u||p.length)&&!k--)throw v(),t("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,S)}while(u||p.length);for(v();g<f.length;)try{f[g++]()}catch(e){i(e)}f.length=g=0,s.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===d&&s.$$applicationDestroyed(),b(this,-this.$$watchersCount),this.$$listenerCount)y(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=D,this.$on=this.$watch=this.$watchGroup=function(){return D},this.$$listeners={},this.$$nextSibling=null,function e(t){9===o&&(t.$$childHead&&e(t.$$childHead),t.$$nextSibling&&e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return a(e)(this,t)},$evalAsync:function(e,t){d.$$phase||p.length||s.defer((function(){p.length&&d.$digest()}),null,"$evalAsync"),p.push({scope:this,fn:a(e),locals:t})},$$postDigest:function(e){f.push(e)},$apply:function(e){try{m("$apply");try{return this.$eval(e)}finally{v()}}catch(e){i(e)}finally{try{d.$digest()}catch(e){throw i(e),e}}},$applyAsync:function(e){var t=this;e&&h.push((function(){t.$eval(e)})),e=a(e),null===r&&(r=s.defer((function(){d.$apply(A)}),null,"$applyAsync"))},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do{r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++}while(r=r.$parent);var i=this;return function(){var r=n.indexOf(t);-1!==r&&(delete n[r],y(i,1,e))}},$emit:function(e,t){var n,r,o,a=[],s=this,l=!1,c={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},u=ue([c],arguments,1);do{for(n=s.$$listeners[e]||a,c.currentScope=s,r=0,o=n.length;r<o;r++)if(n[r])try{n[r].apply(null,u)}catch(e){i(e)}else n.splice(r,1),r--,o--;if(l)break;s=s.$parent}while(s);return c.currentScope=null,c},$broadcast:function(e,t){var n=this,r=n,o=n,a={name:e,targetScope:n,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[e])return a;for(var s,l,c,u=ue([a],arguments,1);r=o;){for(a.currentScope=r,l=0,c=(s=r.$$listeners[e]||[]).length;l<c;l++)if(s[l])try{s[l].apply(null,u)}catch(e){i(e)}else s.splice(l,1),l--,c--;if(!(o=r.$$listenerCount[e]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(o=r.$$nextSibling);)r=r.$parent}return a.currentScope=null,a}};var d=new c,p=d.$$asyncQueue=[],f=d.$$postDigestQueue=[],h=d.$$applyAsyncQueue=[],g=0;return d;function m(e){if(d.$$phase)throw t("inprog","{0} already in progress",d.$$phase);d.$$phase=e}function v(){d.$$phase=null}function b(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function y(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function x(){}function A(){for(;h.length;)try{h.shift()()}catch(e){i(e)}r=null}}]}function qr(){var e=/^\s*(https?|s?ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(t){return z(t)?(e=t,this):e},this.imgSrcSanitizationTrustedUrlList=function(e){return z(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i=r?t:e,o=li(n&&n.trim()).href;return""===o||o.match(i)?n:"unsafe:"+o}}}Or.prototype={compile:function(e){var t=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Sr(e,t.$filter);var n,r="";if(this.stage="assign",n=_r(e)){this.state.computing="assign";var i=this.nextId();this.recurse(n,i),this.return_(i),r="fn.assign="+this.generateFunction("assign","s,v,l")}var o=$r(e.body);t.stage="inputs",k(o,(function(e,n){var r="fn"+n;t.state[r]={vars:[],body:[],own:{}},t.state.computing=r;var i=t.nextId();t.recurse(e,i),t.return_(i),t.state.inputs.push({name:r,isPure:e.isPure}),e.watchId=n})),this.state.computing="fn",this.stage="main",this.recurse(e);var a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+r+this.watchFns()+"return fn;",s=new Function("$filter","getStringValue","ifDefined","plus",a)(this.$filter,br,Ar,Er);return this.state=this.stage=void 0,s},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return k(t,(function(t){e.push("var "+t.name+"="+n.generateFunction(t.name,"s")),t.isPure&&e.push(t.name,".isPure="+JSON.stringify(t.isPure)+";")})),t.length&&e.push("fn.inputs=["+t.map((function(e){return e.name})).join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return k(this.state.filters,(function(n,r){e.push(n+"=$filter("+t.escape(r)+")")})),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,r,i,o){var a,s,l,c,u,d=this;if(r=r||D,!o&&z(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,r,i,!0));switch(e.type){case kr.Program:k(e.body,(function(t,n){d.recurse(t.expression,void 0,void 0,(function(e){s=e})),n!==e.body.length-1?d.current().body.push(s,";"):d.return_(s)}));break;case kr.Literal:c=this.escape(e.value),this.assign(t,c),r(t||c);break;case kr.UnaryExpression:this.recurse(e.argument,void 0,void 0,(function(e){s=e})),c=e.operator+"("+this.ifDefined(s,0)+")",this.assign(t,c),r(c);break;case kr.BinaryExpression:this.recurse(e.left,void 0,void 0,(function(e){a=e})),this.recurse(e.right,void 0,void 0,(function(e){s=e})),c="+"===e.operator?this.plus(a,s):"-"===e.operator?this.ifDefined(a,0)+e.operator+this.ifDefined(s,0):"("+a+")"+e.operator+"("+s+")",this.assign(t,c),r(c);break;case kr.LogicalExpression:t=t||this.nextId(),d.recurse(e.left,t),d.if_("&&"===e.operator?t:d.not(t),d.lazyRecurse(e.right,t)),r(t);break;case kr.ConditionalExpression:t=t||this.nextId(),d.recurse(e.test,t),d.if_(t,d.lazyRecurse(e.alternate,t),d.lazyRecurse(e.consequent,t)),r(t);break;case kr.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",e.name)),(function(){d.if_("inputs"===d.stage||"s",(function(){i&&1!==i&&d.if_(d.isNull(d.nonComputedMember("s",e.name)),d.lazyAssign(d.nonComputedMember("s",e.name),"{}")),d.assign(t,d.nonComputedMember("s",e.name))}))}),t&&d.lazyAssign(t,d.nonComputedMember("l",e.name))),r(t);break;case kr.MemberExpression:a=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(e.object,a,void 0,(function(){d.if_(d.notNull(a),(function(){e.computed?(s=d.nextId(),d.recurse(e.property,s),d.getStringValue(s),i&&1!==i&&d.if_(d.not(d.computedMember(a,s)),d.lazyAssign(d.computedMember(a,s),"{}")),c=d.computedMember(a,s),d.assign(t,c),n&&(n.computed=!0,n.name=s)):(i&&1!==i&&d.if_(d.isNull(d.nonComputedMember(a,e.property.name)),d.lazyAssign(d.nonComputedMember(a,e.property.name),"{}")),c=d.nonComputedMember(a,e.property.name),d.assign(t,c),n&&(n.computed=!1,n.name=e.property.name))}),(function(){d.assign(t,"undefined")})),r(t)}),!!i);break;case kr.CallExpression:t=t||this.nextId(),e.filter?(s=d.filter(e.callee.name),l=[],k(e.arguments,(function(e){var t=d.nextId();d.recurse(e,t),l.push(t)})),c=s+"("+l.join(",")+")",d.assign(t,c),r(t)):(s=d.nextId(),a={},l=[],d.recurse(e.callee,s,a,(function(){d.if_(d.notNull(s),(function(){k(e.arguments,(function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(e)}))})),c=a.name?d.member(a.context,a.name,a.computed)+"("+l.join(",")+")":s+"("+l.join(",")+")",d.assign(t,c)}),(function(){d.assign(t,"undefined")})),r(t)})));break;case kr.AssignmentExpression:s=this.nextId(),a={},this.recurse(e.left,void 0,a,(function(){d.if_(d.notNull(a.context),(function(){d.recurse(e.right,s),c=d.member(a.context,a.name,a.computed)+e.operator+s,d.assign(t,c),r(t||c)}))}),1);break;case kr.ArrayExpression:l=[],k(e.elements,(function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(e)}))})),c="["+l.join(",")+"]",this.assign(t,c),r(t||c);break;case kr.ObjectExpression:l=[],u=!1,k(e.properties,(function(e){e.computed&&(u=!0)})),u?(t=t||this.nextId(),this.assign(t,"{}"),k(e.properties,(function(e){e.computed?(a=d.nextId(),d.recurse(e.key,a)):a=e.key.type===kr.Identifier?e.key.name:""+e.key.value,s=d.nextId(),d.recurse(e.value,s),d.assign(d.member(t,a,e.computed),s)}))):(k(e.properties,(function(t){d.recurse(t.value,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(d.escape(t.key.type===kr.Identifier?t.key.name:""+t.key.value)+":"+e)}))})),c="{"+l.join(",")+"}",this.assign(t,c)),r(t||c);break;case kr.ThisExpression:this.assign(t,"s"),r(t||"s");break;case kr.LocalsExpression:this.assign(t,"l"),r(t||"l");break;case kr.NGValueParameter:this.assign(t,"v"),r(t||"v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),r[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var r=this.current().body;r.push("if(",e,"){"),t(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(e){return"!("+e+")"},isNull:function(e){return e+"==null"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},lazyRecurse:function(e,t,n,r,i,o){var a=this;return function(){a.recurse(e,t,n,r,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(F(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(q(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw mr("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},Tr.prototype={compile:function(e){var t,n,r=this;Sr(e,r.$filter),(t=_r(e))&&(n=this.recurse(t));var i,o=$r(e.body);o&&(i=[],k(o,(function(e,t){var n=r.recurse(e);n.isPure=e.isPure,e.input=n,i.push(n),e.watchId=t})));var a=[];k(e.body,(function(e){a.push(r.recurse(e.expression))}));var s=0===e.body.length?D:1===e.body.length?a[0]:function(e,t){var n;return k(a,(function(r){n=r(e,t)})),n};return n&&(s.assign=function(e,t,r){return n(e,r,t)}),i&&(s.inputs=i),s},recurse:function(e,t,n){var r,i,o,a=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case kr.Literal:return this.value(e.value,t);case kr.UnaryExpression:return i=this.recurse(e.argument),this["unary"+e.operator](i,t);case kr.BinaryExpression:case kr.LogicalExpression:return r=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](r,i,t);case kr.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case kr.Identifier:return a.identifier(e.name,t,n);case kr.MemberExpression:return r=this.recurse(e.object,!1,!!n),e.computed||(i=e.property.name),e.computed&&(i=this.recurse(e.property)),e.computed?this.computedMember(r,i,t,n):this.nonComputedMember(r,i,t,n);case kr.CallExpression:return o=[],k(e.arguments,(function(e){o.push(a.recurse(e))})),e.filter&&(i=this.$filter(e.callee.name)),e.filter||(i=this.recurse(e.callee,!0)),e.filter?function(e,n,r,a){for(var s=[],l=0;l<o.length;++l)s.push(o[l](e,n,r,a));var c=i.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:c}:c}:function(e,n,r,a){var s,l=i(e,n,r,a);if(null!=l.value){for(var c=[],u=0;u<o.length;++u)c.push(o[u](e,n,r,a));s=l.value.apply(l.context,c)}return t?{value:s}:s};case kr.AssignmentExpression:return r=this.recurse(e.left,!0,1),i=this.recurse(e.right),function(e,n,o,a){var s=r(e,n,o,a),l=i(e,n,o,a);return s.context[s.name]=l,t?{value:l}:l};case kr.ArrayExpression:return o=[],k(e.elements,(function(e){o.push(a.recurse(e))})),function(e,n,r,i){for(var a=[],s=0;s<o.length;++s)a.push(o[s](e,n,r,i));return t?{value:a}:a};case kr.ObjectExpression:return o=[],k(e.properties,(function(e){e.computed?o.push({key:a.recurse(e.key),computed:!0,value:a.recurse(e.value)}):o.push({key:e.key.type===kr.Identifier?e.key.name:""+e.key.value,computed:!1,value:a.recurse(e.value)})})),function(e,n,r,i){for(var a={},s=0;s<o.length;++s)o[s].computed?a[o[s].key(e,n,r,i)]=o[s].value(e,n,r,i):a[o[s].key]=o[s].value(e,n,r,i);return t?{value:a}:a};case kr.ThisExpression:return function(e){return t?{value:e}:e};case kr.LocalsExpression:return function(e,n){return t?{value:n}:n};case kr.NGValueParameter:return function(e,n,r){return t?{value:r}:r}}},"unary+":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=z(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=z(a)?-a:-0,t?{value:a}:a}},"unary!":function(e,t){return function(n,r,i,o){var a=!e(n,r,i,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(r,i,o,a){var s=Er(e(r,i,o,a),t(r,i,o,a));return n?{value:s}:s}},"binary-":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),l=t(r,i,o,a),c=(z(s)?s:0)-(z(l)?l:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)*t(r,i,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)/t(r,i,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)%t(r,i,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)===t(r,i,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!==t(r,i,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)==t(r,i,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!=t(r,i,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<t(r,i,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>t(r,i,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<=t(r,i,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>=t(r,i,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)&&t(r,i,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)||t(r,i,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,r){return function(i,o,a,s){var l=e(i,o,a,s)?t(i,o,a,s):n(i,o,a,s);return r?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n){return function(r,i,o,a){var s=i&&e in i?i:r;n&&1!==n&&s&&null==s[e]&&(s[e]={});var l=s?s[e]:void 0;return t?{context:s,name:e,value:l}:l}},computedMember:function(e,t,n,r){return function(i,o,a,s){var l,c,u=e(i,o,a,s);return null!=u&&(l=br(l=t(i,o,a,s)),r&&1!==r&&u&&!u[l]&&(u[l]={}),c=u[l]),n?{context:u,name:l,value:c}:c}},nonComputedMember:function(e,t,n,r){return function(i,o,a,s){var l=e(i,o,a,s);r&&1!==r&&l&&null==l[t]&&(l[t]={});var c=null!=l?l[t]:void 0;return n?{context:l,name:t,value:c}:c}},inputs:function(e,t){return function(n,r,i,o){return o?o[t]:e(n,r,i)}}},jr.prototype={constructor:jr,parse:function(e){var t=this.getAst(e),n=this.astCompiler.compile(t.ast);return n.literal=function(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===kr.Literal||e.body[0].expression.type===kr.ArrayExpression||e.body[0].expression.type===kr.ObjectExpression)}(t.ast),n.constant=function(e){return e.constant}(t.ast),n.oneTime=t.oneTime,n},getAst:function(e){var t=!1;return":"===(e=e.trim()).charAt(0)&&":"===e.charAt(1)&&(t=!0,e=e.substring(2)),{ast:this.ast.ast(e),oneTime:t}}};var Vr=i("$sce"),Ur={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Hr=/_([a-z])/g;function Gr(e){return e.replace(Hr,Qe)}function Wr(e){var t=[];return z(e)&&k(e,(function(e){t.push(function(e){if("self"===e)return e;if(F(e)){if(e.indexOf("***")>-1)throw Vr("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=ee(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(W(e))return new RegExp("^"+e.source+"$");throw Vr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}(e))})),t}function Yr(){this.SCE_CONTEXTS=Ur;var t=["self"],n=[];this.trustedResourceUrlList=function(e){return arguments.length&&(t=Wr(e)),t},Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(e){this.trustedResourceUrlList=e}}),this.bannedResourceUrlList=function(e){return arguments.length&&(n=Wr(e)),n},Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(e){this.bannedResourceUrlList=e}}),this.$get=["$injector","$$sanitizeUri",function(r,i){var o=function(e){throw Vr("unsafe","Attempting to use an unsafe value in a safe context.")};function a(t,n){return"self"===t?ci(n,ai)||function(t){return ci(t,function(){if(e.document.baseURI)return e.document.baseURI;ii||((ii=e.document.createElement("a")).href=".",ii=ii.cloneNode(!1));return ii.href}())}(n):!!t.exec(n.href)}function s(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}r.has("$sanitize")&&(o=r.get("$sanitize"));var l=s(),c={};return c[Ur.HTML]=s(l),c[Ur.CSS]=s(l),c[Ur.MEDIA_URL]=s(l),c[Ur.URL]=s(c[Ur.MEDIA_URL]),c[Ur.JS]=s(l),c[Ur.RESOURCE_URL]=s(c[Ur.URL]),{trustAs:function(e,t){var n=c.hasOwnProperty(e)?c[e]:null;if(!n)throw Vr("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||M(t)||""===t)return t;if("string"!=typeof t)throw Vr("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)},getTrusted:function(e,r){if(null===r||M(r)||""===r)return r;var s=c.hasOwnProperty(e)?c[e]:null;if(s&&r instanceof s)return r.$$unwrapTrustedValue();if(G(r.$$unwrapTrustedValue)&&(r=r.$$unwrapTrustedValue()),e===Ur.MEDIA_URL||e===Ur.URL)return i(r.toString(),e===Ur.MEDIA_URL);if(e===Ur.RESOURCE_URL){if(function(e){var r,i,o=li(e.toString()),s=!1;for(r=0,i=t.length;r<i;r++)if(a(t[r],o)){s=!0;break}if(s)for(r=0,i=n.length;r<i;r++)if(a(n[r],o)){s=!1;break}return s}(r))return r;throw Vr("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",r.toString())}if(e===Ur.HTML)return o(r);throw Vr("unsafe","Attempting to use an unsafe value in a safe context.")},valueOf:function(e){return e instanceof l?e.$$unwrapTrustedValue():e}}}]}function Xr(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&o<8)throw Vr("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=qe(Ur);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=R),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,(function(t){return r.getTrusted(e,t)}))};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return k(Ur,(function(e,t){var n=d(t);r[Gr("parse_as_"+n)]=function(t){return i(e,t)},r[Gr("get_trusted_"+n)]=function(t){return a(e,t)},r[Gr("trust_as_"+n)]=function(t){return s(e,t)}})),r}]}function Zr(){this.$get=["$window","$document",function(e,t){var n={},r=!(!(e.nw&&e.nw.process)&&e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,i=T((/android (\d+)/.exec(d((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},l=s.body&&s.body.style,c=!1,u=!1;return l&&(c=!(!("transition"in l)&&!("webkitTransition"in l)),u=!(!("animation"in l)&&!("webkitAnimation"in l))),{history:!(!r||i<4||a),hasEvent:function(e){if("input"===e&&o)return!1;if(M(n[e])){var t=s.createElement("div");n[e]="on"+e in t}return n[e]},csp:le(),transitions:c,animations:u,android:i}}]}function Qr(){this.$get=I((function(e){return new Jr(e)}))}function Jr(e){var t={},n=[],r=this.ALL_TASKS_TYPE="$$all$$",i=this.DEFAULT_TASK_TYPE="$$default$$";function o(){var e=n.pop();return e&&e.cb}function a(e){for(var t=n.length-1;t>=0;--t){var r=n[t];if(r.type===e)return n.splice(t,1),r.cb}}this.completeTask=function(n,s){s=s||i;try{n()}finally{!function(e){t[e=e||i]&&(t[e]--,t[r]--)}(s);var l=t[s],c=t[r];if(!c||!l)for(var u,d=c?a:o;u=d(s);)try{u()}catch(t){e.error(t)}}},this.incTaskCount=function(e){t[e=e||i]=(t[e]||0)+1,t[r]=(t[r]||0)+1},this.notifyWhenNoPendingTasks=function(e,i){t[i=i||r]?n.push({type:i,cb:e}):e()}}var Kr=i("$templateRequest");function ei(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(t,n,r,i,o){function a(s,l){a.totalPendingRequests++,F(s)&&!M(n.get(s))||(s=o.getTrustedResourceUrl(s));var c=r.defaults&&r.defaults.transformResponse;return U(c)?c=c.filter((function(e){return e!==zn})):c===zn&&(c=null),r.get(s,_({cache:n,transformResponse:c},e)).finally((function(){a.totalPendingRequests--})).then((function(e){return n.put(s,e.data)}),(function(e){l||(e=Kr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,e.status,e.statusText),t(e));return i.reject(e)}))}return a.totalPendingRequests=0,a}]}function ti(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var r={findBindings:function(e,t,n){var r=e.getElementsByClassName("ng-binding"),i=[];return k(r,(function(e){var r=y.element(e).data("$binding");r&&k(r,(function(r){n?new RegExp("(^|\\s)"+ee(t)+"(\\s|\\||$)").test(r)&&i.push(e):-1!==r.indexOf(t)&&i.push(e)}))})),i},findModels:function(e,t,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o="["+r[i]+"model"+(n?"=":"*=")+'"'+t+'"]',a=e.querySelectorAll(o);if(a.length)return a}},getLocation:function(){return n.url()},setLocation:function(t){t!==n.url()&&(n.url(t),e.$digest())},whenStable:function(e){t.notifyWhenNoOutstandingRequests(e)}};return r}]}var ni=i("$timeout");function ri(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,r,i){var o={};function a(a,s,l){G(a)||(l=s,s=a,a=D);var c,u=de(arguments,3),d=z(l)&&!l,p=(d?r:n).defer(),f=p.promise;return c=t.defer((function(){try{p.resolve(a.apply(null,u))}catch(e){p.reject(e),i(e)}finally{delete o[f.$$timeoutId]}d||e.$apply()}),s,"$timeout"),f.$$timeoutId=c,o[c]=p,f}return a.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$timeoutId"))throw ni("badprom","`$timeout.cancel()` called with a promise that was not generated by `$timeout()`.");if(!o.hasOwnProperty(e.$$timeoutId))return!1;var n=e.$$timeoutId,r=o[n];return Lr(r.promise),r.reject("canceled"),delete o[n],t.defer.cancel(n)},a}]}var ii,oi=e.document.createElement("a"),ai=li(e.location.href);oi.href="http://[::1]";var si="[::1]"===oi.hostname;function li(e){if(!F(e))return e;var t=e;o&&(oi.setAttribute("href",t),t=oi.href),oi.setAttribute("href",t);var n=oi.hostname;return!si&&n.indexOf(":")>-1&&(n="["+n+"]"),{href:oi.href,protocol:oi.protocol?oi.protocol.replace(/:$/,""):"",host:oi.host,search:oi.search?oi.search.replace(/^\?/,""):"",hash:oi.hash?oi.hash.replace(/^#/,""):"",hostname:n,port:oi.port,pathname:"/"===oi.pathname.charAt(0)?oi.pathname:"/"+oi.pathname}}function ci(e,t){return e=li(e),t=li(t),e.protocol===t.protocol&&e.host===t.host}function ui(){this.$get=I(e)}function di(e){var t=e[0]||{},n={},r="";function i(e){try{return decodeURIComponent(e)}catch(t){return e}}return function(){var e,o,a,s,l,c=function(e){try{return e.cookie||""}catch(e){return""}}(t);if(c!==r)for(e=(r=c).split("; "),n={},a=0;a<e.length;a++)(s=(o=e[a]).indexOf("="))>0&&(l=i(o.substring(0,s)),M(n[l])&&(n[l]=i(o.substring(s+1))));return n}}function pi(){this.$get=di}function fi(e){function t(n,r){if(L(n)){var i={};return k(n,(function(e,n){i[n]=t(n,e)})),i}return e.factory(n+"Filter",r)}this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+"Filter")}}],t("currency",vi),t("date",Oi),t("filter",hi),t("json",Ti),t("limitTo",Di),t("lowercase",ji),t("number",bi),t("orderBy",Ii),t("uppercase",Pi)}function hi(){return function(e,t,n,r){if(!w(e)){if(null==e)return e;throw i("filter")("notarray","Expected array but received: {0}",e)}var o,a;switch(r=r||"$",mi(t)){case"function":o=t;break;case"boolean":case"null":case"number":case"string":a=!0;case"object":o=function(e,t,n,r){var i=L(e)&&n in e;!0===t?t=se:G(t)||(t=function(e,t){return!M(e)&&(null===e||null===t?e===t:!(L(t)||L(e)&&!N(e))&&(e=d(""+e),t=d(""+t),-1!==e.indexOf(t)))});return function(o){return i&&!L(o)?gi(o,e[n],t,n,!1):gi(o,e,t,n,r)}}(t,n,r,a);break;default:return e}return Array.prototype.filter.call(e,o)}}function gi(e,t,n,r,i,o){var a=mi(e),s=mi(t);if("string"===s&&"!"===t.charAt(0))return!gi(e,t.substring(1),n,r,i);if(U(e))return e.some((function(e){return gi(e,t,n,r,i)}));switch(a){case"object":var l;if(i){for(l in e)if(l.charAt&&"$"!==l.charAt(0)&&gi(e[l],t,n,r,!0))return!0;return!o&&gi(e,t,n,r,!1)}if("object"===s){for(l in t){var c=t[l];if(!G(c)&&!M(c)){var u=l===r;if(!gi(u?e:e[l],c,n,r,u,u))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function mi(e){return null===e?"null":typeof e}di.$inject=["$document"],fi.$inject=["$provide"];function vi(e){var t=e.NUMBER_FORMATS;return function(e,n,r){M(n)&&(n=t.CURRENCY_SYM),M(r)&&(r=t.PATTERNS[1].maxFrac);var i=n?/\u00A4/g:/\s*\u00A4\s*/g;return null==e?e:yi(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,r).replace(i,n)}}function bi(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:yi(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function yi(e,t,n,r,i){if(!F(e)&&!q(e)||isNaN(e))return"";var o,a=!isFinite(e),s=!1,l=Math.abs(e)+"",c="";if(a)c="∞";else{(function(e,t,n,r){var i=e.d,o=i.length-e.i,a=(t=M(t)?Math.min(Math.max(n,o),r):+t)+e.i,s=i[a];if(a>0){i.splice(Math.max(e.i,a));for(var l=a;l<i.length;l++)i[l]=0}else{o=Math.max(0,o),e.i=1,i.length=Math.max(1,a=t+1),i[0]=0;for(var c=1;c<a;c++)i[c]=0}if(s>=5)if(a-1<0){for(var u=0;u>a;u--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[a-1]++;for(;o<Math.max(0,t);o++)i.push(0);var d=i.reduceRight((function(e,t,n,r){return t+=e,r[n]=t%10,Math.floor(t/10)}),0);d&&(i.unshift(d),e.i++)})(o=function(e){var t,n,r,i,o,a=0;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;"0"===e.charAt(r);r++);if(r===(o=e.length))t=[0],n=1;else{for(o--;"0"===e.charAt(o);)o--;for(n-=r,t=[],i=0;r<=o;r++,i++)t[i]=+e.charAt(r)}return n>22&&(t=t.splice(0,21),a=n-1,n=1),{d:t,e:a,i:n}}(l),i,t.minFrac,t.maxFrac);var u=o.d,d=o.i,p=o.e,f=[];for(s=u.reduce((function(e,t){return e&&!t}),!0);d<0;)u.unshift(0),d++;d>0?f=u.splice(d,u.length):(f=u,u=[0]);var h=[];for(u.length>=t.lgSize&&h.unshift(u.splice(-t.lgSize,u.length).join(""));u.length>t.gSize;)h.unshift(u.splice(-t.gSize,u.length).join(""));u.length&&h.unshift(u.join("")),c=h.join(n),f.length&&(c+=r+f.join("")),p&&(c+="e+"+p)}return e<0&&!s?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function xi(e,t,n,r){var i="";for((e<0||r&&e<=0)&&(r?e=1-e:(e=-e,i="-")),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),i+e}function wi(e,t,n,r,i){return n=n||0,function(o){var a=o["get"+e]();return(n>0||a>-n)&&(a+=n),0===a&&-12===n&&(a=12),xi(a,t,r,i)}}function ki(e,t,n){return function(r,i){var o=r["get"+e]();return i[p((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function Ai(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Ei(e){return function(t){var n,r=Ai(t.getFullYear()),i=+(n=t,new Date(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay())))-+r;return xi(1+Math.round(i/6048e5),e)}}function Si(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}vi.$inject=["$locale"],bi.$inject=["$locale"];var $i={yyyy:wi("FullYear",4,0,!1,!0),yy:wi("FullYear",2,0,!0,!0),y:wi("FullYear",1,0,!1,!0),MMMM:ki("Month"),MMM:ki("Month",!0),MM:wi("Month",2,1),M:wi("Month",1,1),LLLL:ki("Month",!1,!0),dd:wi("Date",2),d:wi("Date",1),HH:wi("Hours",2),H:wi("Hours",1),hh:wi("Hours",2,-12),h:wi("Hours",1,-12),mm:wi("Minutes",2),m:wi("Minutes",1),ss:wi("Seconds",2),s:wi("Seconds",1),sss:wi("Milliseconds",3),EEEE:ki("Day"),EEE:ki("Day",!0),a:function(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){var r=-1*n,i=r>=0?"+":"";return i+=xi(Math[r>0?"floor":"ceil"](r/60),2)+xi(Math.abs(r%60),2)},ww:Ei(2),w:Ei(1),G:Si,GG:Si,GGG:Si,GGGG:function(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}},Ci=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,_i=/^-?\d+$/;function Oi(e){var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var o,a,s="",l=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,F(n)&&(n=_i.test(n)?T(n):function(e){var n;if(n=e.match(t)){var r=new Date(0),i=0,o=0,a=n[8]?r.setUTCFullYear:r.setFullYear,s=n[8]?r.setUTCHours:r.setHours;n[9]&&(i=T(n[9]+n[10]),o=T(n[9]+n[11])),a.call(r,T(n[1]),T(n[2])-1,T(n[3]));var l=T(n[4]||0)-i,c=T(n[5]||0)-o,u=T(n[6]||0),d=Math.round(1e3*parseFloat("0."+(n[7]||0)));return s.call(r,l,c,u,d),r}return e}(n)),q(n)&&(n=new Date(n)),!V(n)||!isFinite(n.getTime()))return n;for(;r;)(a=Ci.exec(r))?r=(l=ue(l,a,1)).pop():(l.push(r),r=null);var c=n.getTimezoneOffset();return i&&(c=ve(i,c),n=ye(n,i,!0)),k(l,(function(t){s+=(o=$i[t])?o(n,e.DATETIME_FORMATS,c):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),s}}function Ti(){return function(e,t){return M(t)&&(t=2),he(e,t)}}Oi.$inject=["$locale"];var ji=I(d),Pi=I(p);function Di(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):T(t),j(t)?e:(q(e)&&(e=e.toString()),w(e)?(n=(n=!n||isNaN(n)?0:T(n))<0?Math.max(0,e.length+n):n,t>=0?Ri(e,n,n+t):0===n?Ri(e,t,e.length):Ri(e,Math.max(0,n+t),n)):e)}}function Ri(e,t,n){return F(e)?e.slice(t,n):f.call(e,t,n)}function Ii(e){return function(r,o,a,s){if(null==r)return r;if(!w(r))throw i("orderBy")("notarray","Expected array but received: {0}",r);U(o)||(o=[o]),0===o.length&&(o=["+"]);var l=o.map((function(t){var n=1,r=R;if(G(t))r=t;else if(F(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(r=e(t)).constant)){var i=r();r=function(e){return e[i]}}return{get:r,descending:n}})),c=a?-1:1,u=G(s)?s:n,d=Array.prototype.map.call(r,(function(e,n){return{value:e,tieBreaker:{value:n,type:"number",index:n},predicateValues:l.map((function(r){return function(e,n){var r=typeof e;null===e?r="null":"object"===r&&(e=function(e){if(G(e.valueOf)&&t(e=e.valueOf()))return e;if(N(e)&&t(e=e.toString()))return e;return e}(e));return{value:e,type:r,index:n}}(r.get(e),n)}))}}));return d.sort((function(e,t){for(var r=0,i=l.length;r<i;r++){var o=u(e.predicateValues[r],t.predicateValues[r]);if(o)return o*l[r].descending*c}return(u(e.tieBreaker,t.tieBreaker)||n(e.tieBreaker,t.tieBreaker))*c})),r=d.map((function(e){return e.value}))};function t(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function n(e,t){var n=0,r=e.type,i=t.type;if(r===i){var o=e.value,a=t.value;"string"===r?(o=o.toLowerCase(),a=a.toLowerCase()):"object"===r&&(L(o)&&(o=e.index),L(a)&&(a=t.index)),o!==a&&(n=o<a?-1:1)}else n="undefined"===r?1:"undefined"===i?-1:"null"===r?1:"null"===i||r<i?-1:1;return n}}function Ni(e){return G(e)&&(e={link:e}),e.restrict=e.restrict||"AC",I(e)}Ii.$inject=["$parse"];var Mi=I({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===m.call(t.prop("href"))?"xlink:href":"href";t.on("click",(function(e){t.attr(n)||e.preventDefault()}))}}}}),zi={};k(jt,(function(e,t){if("multiple"!==e){var n=yn("ng-"+t),r=i;"checked"===e&&(r=function(e,t,r){r.ngModel!==r[n]&&i(e,0,r)}),zi[n]=function(){return{restrict:"A",priority:100,link:r}}}function i(e,r,i){e.$watch(i[n],(function(e){i.$set(t,!!e)}))}})),k(Dt,(function(e,t){zi[t]=function(){return{priority:100,link:function(e,n,r){if("ngPattern"===t&&"/"===r.ngPattern.charAt(0)){var i=r.ngPattern.match(c);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(r[t],(function(e){r.$set(t,e)}))}}}})),k(["src","srcset","href"],(function(e){var t=yn("ng-"+e);zi[t]=["$sce",function(n){return{priority:99,link:function(r,i,a){var s=e,l=e;"href"===e&&"[object SVGAnimatedString]"===m.call(i.prop("href"))&&(l="xlinkHref",a.$attr[l]="xlink:href",s=null),a.$set(t,n.getTrustedMediaUrl(a[t])),a.$observe(t,(function(t){t?(a.$set(l,t),o&&s&&i.prop(s,a[l])):"href"===e&&a.$set(l,null)}))}}}]}));var Li={$addControl:D,$getControls:I([]),$$renameControl:function(e,t){e.$name=t},$removeControl:D,$setValidity:D,$setDirty:D,$setPristine:D,$setSubmitted:D,$$setSubmitted:D};function Bi(e,t,n,r,i){this.$$controls=[],this.$error={},this.$$success={},this.$pending=void 0,this.$name=i(t.name||t.ngForm||"")(n),this.$dirty=!1,this.$pristine=!0,this.$valid=!0,this.$invalid=!1,this.$submitted=!1,this.$$parentForm=Li,this.$$element=e,this.$$animate=r,Ui(this)}Bi.$inject=["$element","$attrs","$scope","$animate","$interpolate"],Bi.prototype={$rollbackViewValue:function(){k(this.$$controls,(function(e){e.$rollbackViewValue()}))},$commitViewValue:function(){k(this.$$controls,(function(e){e.$commitViewValue()}))},$addControl:function(e){Me(e.$name,"input"),this.$$controls.push(e),e.$name&&(this[e.$name]=e),e.$$parentForm=this},$getControls:function(){return qe(this.$$controls)},$$renameControl:function(e,t){var n=e.$name;this[n]===e&&delete this[n],this[t]=e,e.$name=t},$removeControl:function(e){e.$name&&this[e.$name]===e&&delete this[e.$name],k(this.$pending,(function(t,n){this.$setValidity(n,null,e)}),this),k(this.$error,(function(t,n){this.$setValidity(n,null,e)}),this),k(this.$$success,(function(t,n){this.$setValidity(n,null,e)}),this),ie(this.$$controls,e),e.$$parentForm=Li},$setDirty:function(){this.$$animate.removeClass(this.$$element,Bo),this.$$animate.addClass(this.$$element,Fo),this.$dirty=!0,this.$pristine=!1,this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Bo,Fo+" ng-submitted"),this.$dirty=!1,this.$pristine=!0,this.$submitted=!1,k(this.$$controls,(function(e){e.$setPristine()}))},$setUntouched:function(){k(this.$$controls,(function(e){e.$setUntouched()}))},$setSubmitted:function(){for(var e=this;e.$$parentForm&&e.$$parentForm!==Li;)e=e.$$parentForm;e.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,"ng-submitted"),this.$submitted=!0,k(this.$$controls,(function(e){e.$$setSubmitted&&e.$$setSubmitted()}))}},Hi({clazz:Bi,set:function(e,t,n){var r=e[t];r?-1===r.indexOf(n)&&r.push(n):e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(ie(r,n),0===r.length&&delete e[t])}});var Fi=function(e){return["$timeout","$parse",function(t,n){return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:Bi,compile:function(n,i){n.addClass(Bo).addClass(zo);var o=i.name?"name":!(!e||!i.ngForm)&&"ngForm";return{pre:function(e,n,i,a){var s=a[0];if(!("action"in i)){var l=function(t){e.$apply((function(){s.$commitViewValue(),s.$setSubmitted()})),t.preventDefault()};n[0].addEventListener("submit",l),n.on("$destroy",(function(){t((function(){n[0].removeEventListener("submit",l)}),0,!1)}))}(a[1]||s.$$parentForm).$addControl(s);var c=o?r(s.$name):D;o&&(c(e,s),i.$observe(o,(function(t){s.$name!==t&&(c(e,void 0),s.$$parentForm.$$renameControl(s,t),(c=r(s.$name))(e,s))}))),n.on("$destroy",(function(){s.$$parentForm.$removeControl(s),c(e,void 0),_(s,Li)}))}}}};function r(e){return""===e?n('this[""]').assign:n(e).assign||D}}]},qi=Fi(),Vi=Fi(!0);function Ui(e){e.$$classCache={},e.$$classCache[Lo]=!(e.$$classCache[zo]=e.$$element.hasClass(zo))}function Hi(e){var t=e.clazz,n=e.set,r=e.unset;function i(e,t,n){n&&!e.$$classCache[t]?(e.$$animate.addClass(e.$$element,t),e.$$classCache[t]=!0):!n&&e.$$classCache[t]&&(e.$$animate.removeClass(e.$$element,t),e.$$classCache[t]=!1)}function o(e,t,n){t=t?"-"+Pe(t,"-"):"",i(e,zo+t,!0===n),i(e,Lo+t,!1===n)}t.prototype.$setValidity=function(e,t,a){var s;M(t)?function(e,t,r,i){e[t]||(e[t]={});n(e[t],r,i)}(this,"$pending",e,a):function(e,t,n,i){e[t]&&r(e[t],n,i);Gi(e[t])&&(e[t]=void 0)}(this,"$pending",e,a),Z(t)?t?(r(this.$error,e,a),n(this.$$success,e,a)):(n(this.$error,e,a),r(this.$$success,e,a)):(r(this.$error,e,a),r(this.$$success,e,a)),this.$pending?(i(this,"ng-pending",!0),this.$valid=this.$invalid=void 0,o(this,"",null)):(i(this,"ng-pending",!1),this.$valid=Gi(this.$error),this.$invalid=!this.$valid,o(this,"",this.$valid)),o(this,e,s=this.$pending&&this.$pending[e]?void 0:!this.$error[e]&&(!!this.$$success[e]||null)),this.$$parentForm.$setValidity(e,s,this)}}function Gi(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var Wi=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Yi=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Xi=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Zi=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Qi=/^(\d{4,})-(\d{2})-(\d{2})$/,Ji=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Ki=/^(\d{4,})-W(\d\d)$/,eo=/^(\d{4,})-(\d\d)$/,to=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,no=Le();k("date,datetime-local,month,time,week".split(","),(function(e){no[e]=!0}));var ro={text:function(e,t,n,r,i,o){oo(e,t,n,r,i,o),io(r)},date:so("date",Qi,ao(Qi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":so("datetimelocal",Ji,ao(Ji,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:so("time",to,ao(to,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:so("week",Ki,(function(e,t){if(V(e))return e;if(F(e)){Ki.lastIndex=0;var n=Ki.exec(e);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,l=0,c=Ai(r),u=7*(i-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(r,0,c.getDate()+u,o,a,s,l)}}return NaN}),"yyyy-Www"),month:so("month",eo,ao(eo,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,r,i,o,a,s){var l;if(lo(e,t,n,r,"number"),co(r),oo(e,t,n,r,i,o),z(n.min)||n.ngMin){var c=n.min||s(n.ngMin)(e);l=uo(c),r.$validators.min=function(e,t){return r.$isEmpty(t)||M(l)||t>=l},n.$observe("min",(function(e){e!==c&&(l=uo(e),c=e,r.$validate())}))}if(z(n.max)||n.ngMax){var u=n.max||s(n.ngMax)(e),d=uo(u);r.$validators.max=function(e,t){return r.$isEmpty(t)||M(d)||t<=d},n.$observe("max",(function(e){e!==u&&(d=uo(e),u=e,r.$validate())}))}if(z(n.step)||n.ngStep){var p=n.step||s(n.ngStep)(e),f=uo(p);r.$validators.step=function(e,t){return r.$isEmpty(t)||M(f)||ho(t,l||0,f)},n.$observe("step",(function(e){e!==p&&(f=uo(e),p=e,r.$validate())}))}},url:function(e,t,n,r,i,o){oo(e,t,n,r,i,o),io(r),r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||Yi.test(n)}},email:function(e,t,n,r,i,o){oo(e,t,n,r,i,o),io(r),r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||Xi.test(n)}},radio:function(e,t,n,r){var i=!n.ngTrim||"false"!==K(n.ngTrim);M(n.name)&&t.attr("name",S());t.on("change",(function(e){var o;t[0].checked&&(o=n.value,i&&(o=K(o)),r.$setViewValue(o,e&&e.type))})),r.$render=function(){var e=n.value;i&&(e=K(e)),t[0].checked=e===r.$viewValue},n.$observe("value",r.$render)},range:function(e,t,n,r,i,o){lo(e,t,n,r,"range"),co(r),oo(e,t,n,r,i,o);var a=r.$$hasNativeValidators&&"range"===t[0].type,s=a?0:void 0,l=a?100:void 0,c=a?1:void 0,u=t[0].validity,d=z(n.min),p=z(n.max),f=z(n.step),h=r.$render;r.$render=a&&z(u.rangeUnderflow)&&z(u.rangeOverflow)?function(){h(),r.$setViewValue(t.val())}:h,d&&(s=uo(n.min),r.$validators.min=a?function(){return!0}:function(e,t){return r.$isEmpty(t)||M(s)||t>=s},g("min",(function(e){if(s=uo(e),j(r.$modelValue))return;if(a){var n=t.val();s>n&&(n=s,t.val(n)),r.$setViewValue(n)}else r.$validate()})));p&&(l=uo(n.max),r.$validators.max=a?function(){return!0}:function(e,t){return r.$isEmpty(t)||M(l)||t<=l},g("max",(function(e){if(l=uo(e),j(r.$modelValue))return;if(a){var n=t.val();l<n&&(t.val(l),n=l<s?s:l),r.$setViewValue(n)}else r.$validate()})));f&&(c=uo(n.step),r.$validators.step=a?function(){return!u.stepMismatch}:function(e,t){return r.$isEmpty(t)||M(c)||ho(t,s||0,c)},g("step",(function(e){if(c=uo(e),j(r.$modelValue))return;a?r.$viewValue!==t.val()&&r.$setViewValue(t.val()):r.$validate()})));function g(e,r){t.attr(e,n[e]);var i=n[e];n.$observe(e,(function(e){e!==i&&(i=e,r(e))}))}},checkbox:function(e,t,n,r,i,o,a,s){var l=go(s,e,"ngTrueValue",n.ngTrueValue,!0),c=go(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("change",(function(e){r.$setViewValue(t[0].checked,e&&e.type)})),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return!1===e},r.$formatters.push((function(e){return se(e,l)})),r.$parsers.push((function(e){return e?l:c}))},hidden:D,button:D,submit:D,reset:D,file:D};function io(e){e.$formatters.push((function(t){return e.$isEmpty(t)?t:t.toString()}))}function oo(e,t,n,r,i,o){var a,s=d(t[0].type);if(!i.android){var l=!1;t.on("compositionstart",(function(){l=!0})),t.on("compositionupdate",(function(e){(M(e.data)||""===e.data)&&(l=!1)})),t.on("compositionend",(function(){l=!1,c()}))}var c=function(e){if(a&&(o.defer.cancel(a),a=null),!l){var i=t.val(),c=e&&e.type;"password"===s||n.ngTrim&&"false"===n.ngTrim||(i=K(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,c)}};if(i.hasEvent("input"))t.on("input",c);else{var u=function(e,t,n){a||(a=o.defer((function(){a=null,t&&t.value===n||c(e)})))};t.on("keydown",(function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||u(e,this,this.value)})),i.hasEvent("paste")&&t.on("paste cut drop",u)}t.on("change",c),no[s]&&r.$$hasNativeValidators&&s===n.type&&t.on("keydown wheel mousedown",(function(e){if(!a){var t=this.validity,n=t.badInput,r=t.typeMismatch;a=o.defer((function(){a=null,t.badInput===n&&t.typeMismatch===r||c(e)}))}})),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function ao(e,t){return function(n,r){var i,o;if(V(n))return n;if(F(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Wi.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n)){i.shift(),o=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},k(i,(function(e,n){n<t.length&&(o[t[n]]=+e)}));var a=new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0);return o.yyyy<100&&a.setFullYear(o.yyyy),a}}return NaN}}function so(e,t,n,r){return function(i,o,a,s,l,c,u,d){lo(i,o,a,s,e),oo(0,o,a,s,l,c);var p,f,h="time"===e||"datetimelocal"===e;if(s.$parsers.push((function(n){return s.$isEmpty(n)?null:t.test(n)?w(n,p):void(s.$$parserName=e)})),s.$formatters.push((function(e){if(e&&!V(e))throw qo("datefmt","Expected `{0}` to be a date",e);if(y(e)){p=e;var t=s.$options.getOption("timezone");return t&&(f=t,p=ye(p,t,!0)),function(e,t){var n=r;h&&F(s.$options.getOption("timeSecondsFormat"))&&(n=r.replace("ss.sss",s.$options.getOption("timeSecondsFormat")).replace(/:$/,""));var i=u("date")(e,n,t);h&&s.$options.getOption("timeStripZeroSeconds")&&(i=i.replace(/(?::00)?(?:\.000)?$/,""));return i}(e,t)}return p=null,f=null,""})),z(a.min)||a.ngMin){var g=a.min||d(a.ngMin)(i),m=x(g);s.$validators.min=function(e){return!y(e)||M(m)||n(e)>=m},a.$observe("min",(function(e){e!==g&&(m=x(e),g=e,s.$validate())}))}if(z(a.max)||a.ngMax){var v=a.max||d(a.ngMax)(i),b=x(v);s.$validators.max=function(e){return!y(e)||M(b)||n(e)<=b},a.$observe("max",(function(e){e!==v&&(b=x(e),v=e,s.$validate())}))}function y(e){return e&&!(e.getTime&&e.getTime()!=e.getTime())}function x(e){return z(e)&&!V(e)?w(e)||void 0:e}function w(e,t){var r=s.$options.getOption("timezone");f&&f!==r&&(t=be(t,ve(f)));var i=n(e,t);return!isNaN(i)&&r&&(i=ye(i,r)),i}}}function lo(e,t,n,r,i){var o=t[0];(r.$$hasNativeValidators=L(o.validity))&&r.$parsers.push((function(e){var n=t.prop("validity")||{};if(!n.badInput&&!n.typeMismatch)return e;r.$$parserName=i}))}function co(e){e.$parsers.push((function(t){return e.$isEmpty(t)?null:Zi.test(t)?parseFloat(t):void(e.$$parserName="number")})),e.$formatters.push((function(t){if(!e.$isEmpty(t)){if(!q(t))throw qo("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}))}function uo(e){return z(e)&&!q(e)&&(e=parseFloat(e)),j(e)?void 0:e}function po(e){return(0|e)===e}function fo(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1<e&&e<1){var r=/e-(\d+)$/.exec(t);if(r)return Number(r[1])}return 0}return t.length-n-1}function ho(e,t,n){var r=Number(e),i=!po(r),o=!po(t),a=!po(n);if(i||o||a){var s=i?fo(r):0,l=o?fo(t):0,c=a?fo(n):0,u=Math.max(s,l,c),d=Math.pow(10,u);r*=d,t*=d,n*=d,i&&(r=Math.round(r)),o&&(t=Math.round(t)),a&&(n=Math.round(n))}return(r-t)%n==0}function go(e,t,n,r,i){var o;if(z(r)){if(!(o=e(r)).constant)throw qo("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(t)}return i}var mo=["$browser","$sniffer","$filter","$parse",function(e,t,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(ro[d(a.type)]||ro.text)(i,o,a,s[0],t,e,n,r)}}}}],vo=function(){var e={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(e){this.setAttribute("value",e)}};return{restrict:"E",priority:200,compile:function(t,n){if("hidden"===d(n.type))return{pre:function(t,n,r,i){var o=n[0];o.parentNode&&o.parentNode.insertBefore(o,o.nextSibling),Object.defineProperty&&Object.defineProperty(o,"value",e)}}}}},bo=/^(true|false|\d+)$/,yo=function(){function e(e,t,n){var r=z(n)?n:9===o?"":null;e.prop("value",r),t.$set("value",n)}return{restrict:"A",priority:100,compile:function(t,n){return bo.test(n.ngValue)?function(t,n,r){e(n,r,t.$eval(r.ngValue))}:function(t,n,r){t.$watch(r.ngValue,(function(t){e(n,r,t)}))}}}},xo=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,r){e.$$addBindingInfo(n,r.ngBind),n=n[0],t.$watch(r.ngBind,(function(e){n.textContent=Be(e)}))}}}}],wo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,r,i){var o=e(r.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(r,o.expressions),r=r[0],i.$observe("ngBindTemplate",(function(e){r.textContent=M(e)?"":e}))}}}}],ko=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(r,i){var o=t(i.ngBindHtml),a=t(i.ngBindHtml,(function(t){return e.valueOf(t)}));return n.$$addBindingClass(r),function(t,r,i){n.$$addBindingInfo(r,i.ngBindHtml),t.$watch(a,(function(){var n=o(t);r.html(e.getTrustedHtml(n)||"")}))}}}}],Ao=I({restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push((function(){e.$eval(n.ngChange)}))}});function Eo(e,t){var n;return e="ngClass"+e,["$parse",function(a){return{restrict:"AC",link:function(s,l,c){var u,d=l.data("$classCounts"),p=!0;function f(e,t){var n=[];return k(e,(function(e){(t>0||d[e])&&(d[e]=(d[e]||0)+t,d[e]===+(t>0)&&n.push(e))})),n.join(" ")}d||(d=Le(),l.data("$classCounts",d)),"ngClass"!==e&&(n||(n=a("$index",(function(e){return 1&e}))),s.$watch(n,(function(e){e===t?(n=f(i(n=u),1),c.$addClass(n)):function(e){e=f(i(e),-1),c.$removeClass(e)}(u);var n;p=e}))),s.$watch(a(c[e],o),(function(e){p===t&&function(e,t){var n=i(e),o=i(t),a=r(n,o),s=r(o,n),l=f(a,-1),u=f(s,1);c.$addClass(u),c.$removeClass(l)}(u,e);u=e}))}}}];function r(e,t){if(!e||!e.length)return[];if(!t||!t.length)return e;var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],o=0;o<t.length;o++)if(i===t[o])continue e;n.push(i)}return n}function i(e){return e&&e.split(" ")}function o(e){if(!e)return e;var t=e;return U(e)?t=e.map(o).join(" "):L(e)?t=Object.keys(e).filter((function(t){return e[t]})).join(" "):F(e)||(t=e+""),t}}var So=Eo("",!0),$o=Eo("Odd",0),Co=Eo("Even",1),_o=Ni({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Oo=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],To={},jo={blur:!0,focus:!0};function Po(e,t,n,r,i,o){return{restrict:"A",compile:function(a,s){var l=e(s[r]);return function(e,r){r.on(i,(function(r){var i=function(){l(e,{$event:r})};if(t.$$phase)if(o)e.$evalAsync(i);else try{i()}catch(e){n(e)}else e.$apply(i)}))}}}}k("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),(function(e){var t=yn("ng-"+e);To[t]=["$parse","$rootScope","$exceptionHandler",function(n,r,i){return Po(n,r,i,t,e,jo[e])}]}));var Do=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,l,c;n.$watch(i.ngIf,(function(n){n?l||a((function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",i.ngIf),s={clone:n},e.enter(n,r.parent(),r)})):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),s&&(c=ze(s.clone),e.leave(c).done((function(e){!1!==e&&(c=null)})),s=null))}))}}}],Ro=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:y.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,l,c,u){var d,p,f,h=0,g=function(){p&&(p.remove(),p=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).done((function(e){!1!==e&&(p=null)})),p=f,f=null)};r.$watch(o,(function(o){var l=function(e){!1===e||!z(s)||s&&!r.$eval(s)||t()},p=++h;o?(e(o,!0).then((function(e){if(!r.$$destroyed&&p===h){var t=r.$new();c.template=e;var s=u(t,(function(e){g(),n.enter(e,null,i).done(l)}));f=s,(d=t).$emit("$includeContentLoaded",o),r.$eval(a)}}),(function(){r.$$destroyed||p===h&&(g(),r.$emit("$includeContentError",o))})),r.$emit("$includeContentRequested",o)):(g(),c.template=null)}))}}}}],Io=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){if(m.call(r[0]).match(/SVG/))return r.empty(),void t(ut(o.template,e.document).childNodes)(n,(function(e){r.append(e)}),{futureParentElement:r});r.html(o.template),t(r.contents())(n)}}}],No=Ni({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Mo=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,r){var i=n.ngList||", ",o="false"!==n.ngTrim,a=o?K(i):i;r.$parsers.push((function(e){if(!M(e)){var t=[];return e&&k(e.split(a),(function(e){e&&t.push(o?K(e):e)})),t}})),r.$formatters.push((function(e){if(U(e))return e.join(i)})),r.$isEmpty=function(e){return!e||!e.length}}}},zo="ng-valid",Lo="ng-invalid",Bo="ng-pristine",Fo="ng-dirty",qo=i("ngModel");function Vo(e,t,n,r,i,o,a,s,l){var c;this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=l(n.name||"",!1)(e),this.$$parentForm=Li,this.$options=Uo,this.$$updateEvents="",this.$$updateEventHandler=this.$$updateEventHandler.bind(this),this.$$parsedNgModel=i(n.ngModel),this.$$parsedNgModelAssign=this.$$parsedNgModel.assign,this.$$ngModelGet=this.$$parsedNgModel,this.$$ngModelSet=this.$$parsedNgModelAssign,this.$$pendingDebounce=null,this.$$parserValid=void 0,this.$$parserName="parse",this.$$currentValidationRunId=0,this.$$scope=e,this.$$rootScope=e.$root,this.$$attr=n,this.$$element=r,this.$$animate=o,this.$$timeout=a,this.$$parse=i,this.$$q=s,this.$$exceptionHandler=t,Ui(this),(c=this).$$scope.$watch((function(e){var t=c.$$ngModelGet(e);return t===c.$modelValue||c.$modelValue!=c.$modelValue&&t!=t||c.$$setModelValue(t),t}))}Vo.$inject=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$q","$interpolate"],Vo.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var e=this.$$parse(this.$$attr.ngModel+"()"),t=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(t){var n=this.$$parsedNgModel(t);return G(n)&&(n=e(t)),n},this.$$ngModelSet=function(e,n){G(this.$$parsedNgModel(e))?t(e,{$$$p:n}):this.$$parsedNgModelAssign(e,n)}}else if(!this.$$parsedNgModel.assign)throw qo("nonassign","Expression '{0}' is non-assignable. Element: {1}",this.$$attr.ngModel,xe(this.$$element))},$render:D,$isEmpty:function(e){return M(e)||""===e||null===e||e!=e},$$updateEmptyClasses:function(e){this.$isEmpty(e)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,"ng-not-empty"))},$setPristine:function(){this.$dirty=!1,this.$pristine=!0,this.$$animate.removeClass(this.$$element,Fo),this.$$animate.addClass(this.$$element,Bo)},$setDirty:function(){this.$dirty=!0,this.$pristine=!1,this.$$animate.removeClass(this.$$element,Bo),this.$$animate.addClass(this.$$element,Fo),this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1,this.$untouched=!0,this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=!0,this.$untouched=!1,this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce),this.$viewValue=this.$$lastCommittedViewValue,this.$render()},$validate:function(){if(!j(this.$modelValue)){var e=this.$$lastCommittedViewValue,t=this.$$rawModelValue,n=this.$valid,r=this.$modelValue,i=this.$options.getOption("allowInvalid"),o=this;this.$$runValidators(t,e,(function(e){i||n===e||(o.$modelValue=e?t:void 0,o.$modelValue!==r&&o.$$writeModelToScope())}))}},$$runValidators:function(e,t,n){this.$$currentValidationRunId++;var r,i,o=this.$$currentValidationRunId,a=this;(function(){var e=a.$$parserName;if(!M(a.$$parserValid))return a.$$parserValid||(k(a.$validators,(function(e,t){s(t,null)})),k(a.$asyncValidators,(function(e,t){s(t,null)}))),s(e,a.$$parserValid),a.$$parserValid;s(e,null);return!0})()?!function(){var n=!0;if(k(a.$validators,(function(r,i){var o=Boolean(r(e,t));n=n&&o,s(i,o)})),!n)return k(a.$asyncValidators,(function(e,t){s(t,null)})),!1;return!0}()?l(!1):(r=[],i=!0,k(a.$asyncValidators,(function(n,o){var a=n(e,t);if(!Q(a))throw qo("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",a);s(o,void 0),r.push(a.then((function(){s(o,!0)}),(function(){i=!1,s(o,!1)})))})),r.length?a.$$q.all(r).then((function(){l(i)}),D):l(!0)):l(!1);function s(e,t){o===a.$$currentValidationRunId&&a.$setValidity(e,t)}function l(e){o===a.$$currentValidationRunId&&n(e)}},$commitViewValue:function(){var e=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce),(this.$$lastCommittedViewValue!==e||""===e&&this.$$hasNativeValidators)&&(this.$$updateEmptyClasses(e),this.$$lastCommittedViewValue=e,this.$pristine&&this.$setDirty(),this.$$parseAndValidate())},$$parseAndValidate:function(){var e=this.$$lastCommittedViewValue,t=this;if(this.$$parserValid=!M(e)||void 0,this.$setValidity(this.$$parserName,null),this.$$parserName="parse",this.$$parserValid)for(var n=0;n<this.$parsers.length;n++)if(M(e=this.$parsers[n](e))){this.$$parserValid=!1;break}j(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));var r=this.$modelValue,i=this.$options.getOption("allowInvalid");function o(){t.$modelValue!==r&&t.$$writeModelToScope()}this.$$rawModelValue=e,i&&(this.$modelValue=e,o()),this.$$runValidators(e,this.$$lastCommittedViewValue,(function(n){i||(t.$modelValue=n?e:void 0,o())}))},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue),k(this.$viewChangeListeners,(function(e){try{e()}catch(e){this.$$exceptionHandler(e)}}),this)},$setViewValue:function(e,t){this.$viewValue=e,this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(t)},$$debounceViewValueCommit:function(e){var t=this.$options.getOption("debounce");q(t[e])?t=t[e]:q(t.default)&&-1===this.$options.getOption("updateOn").indexOf(e)?t=t.default:q(t["*"])&&(t=t["*"]),this.$$timeout.cancel(this.$$pendingDebounce);var n=this;t>0?this.$$pendingDebounce=this.$$timeout((function(){n.$commitViewValue()}),t):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply((function(){n.$commitViewValue()}))},$overrideModelOptions:function(e){this.$options=this.$options.createChild(e),this.$$setUpdateOnEvents()},$processModelValue:function(){var e=this.$$format();this.$viewValue!==e&&(this.$$updateEmptyClasses(e),this.$viewValue=this.$$lastCommittedViewValue=e,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,D))},$$format:function(){for(var e=this.$formatters,t=e.length,n=this.$modelValue;t--;)n=e[t](n);return n},$$setModelValue:function(e){this.$modelValue=this.$$rawModelValue=e,this.$$parserValid=void 0,this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler),this.$$updateEvents=this.$options.getOption("updateOn"),this.$$updateEvents&&this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(e){this.$$debounceViewValueCommit(e&&e.type)}},Hi({clazz:Vo,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]}});var Uo,Ho=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Vo,priority:1,compile:function(t){return t.addClass(Bo).addClass("ng-untouched").addClass(zo),{pre:function(e,t,n,r){var i=r[0],o=r[1]||i.$$parentForm,a=r[2];a&&(i.$options=a.$options),i.$$initGetterSetters(),o.$addControl(i),n.$observe("name",(function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)})),e.$on("$destroy",(function(){i.$$parentForm.$removeControl(i)}))},post:function(t,n,r,i){var o=i[0];function a(){o.$setTouched()}o.$$setUpdateOnEvents(),n.on("blur",(function(){o.$touched||(e.$$phase?t.$evalAsync(a):t.$apply(a))}))}}}}}],Go=/(\s+|^)default(\s+|$)/;function Wo(e){this.$$options=e}Wo.prototype={getOption:function(e){return this.$$options[e]},createChild:function(e){var t=!1;return k(e=_({},e),(function(n,r){"$inherit"===n?"*"===r?t=!0:(e[r]=this.$$options[r],"updateOn"===r&&(e.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===r&&(e.updateOnDefault=!1,e[r]=K(n.replace(Go,(function(){return e.updateOnDefault=!0," "}))))}),this),t&&(delete e["*"],Xo(e,this.$$options)),Xo(e,Uo.$$options),new Wo(e)}},Uo=new Wo({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var Yo=function(){function e(e,t){this.$$attrs=e,this.$$scope=t}return e.$inject=["$attrs","$scope"],e.prototype={$onInit:function(){var e=this.parentCtrl?this.parentCtrl.$options:Uo,t=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=e.createChild(t)}},{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:e}};function Xo(e,t){k(t,(function(t,n){z(e[n])||(e[n]=t)}))}var Zo=Ni({terminal:!0,priority:1e3}),Qo=i("ngOptions"),Jo=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Ko=["$compile","$document","$parse",function(t,n,r){var i=e.document.createElement("option"),o=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,r){r[0].registerOption=D},post:function(e,s,l,c){for(var u=c[0],d=c[1],p=l.multiple,f=0,h=s.children(),g=h.length;f<g;f++)if(""===h[f].value){u.hasEmptyOption=!0,u.emptyOption=h.eq(f);break}s.empty();var m,v=!!u.emptyOption;a(i.cloneNode(!1)).val("?");var b=function(e,t,n){var i=e.match(Jo);if(!i)throw Qo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,xe(t));var o=i[5]||i[7],a=i[6],s=/ as /.test(i[0])&&i[1],l=i[9],c=r(i[2]?i[1]:o),u=s&&r(s)||c,d=l&&r(l),p=l?function(e,t){return d(n,t)}:function(e){return zt(e)},f=function(e,t){return p(e,y(e,t))},h=r(i[2]||i[1]),g=r(i[3]||""),m=r(i[4]||""),v=r(i[8]),b={},y=a?function(e,t){return b[a]=t,b[o]=e,b}:function(e){return b[o]=e,b};function x(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function k(e){var t;if(!a&&w(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n);return t}return{trackBy:l,getTrackByValue:f,getWatchables:r(v,(function(e){for(var t=[],r=k(e=e||[]),o=r.length,a=0;a<o;a++){var s=e===r?a:r[a],l=e[s],c=y(l,s),u=p(l,c);if(t.push(u),i[2]||i[1]){var d=h(n,c);t.push(d)}if(i[4]){var f=m(n,c);t.push(f)}}return t})),getOptions:function(){for(var e=[],t={},r=v(n)||[],i=k(r),o=i.length,a=0;a<o;a++){var s=r===i?a:i[a],c=r[s],d=y(c,s),b=u(n,d),w=p(b,d),A=new x(w,b,h(n,d),g(n,d),m(n,d));e.push(A),t[w]=A}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[f(e)]},getViewValueFromOption:function(e){return l?oe(e.viewValue):e.viewValue}}}}}(l.ngOptions,s,e),y=n[0].createDocumentFragment();function x(e,t){var n=i.cloneNode(!1);t.appendChild(n),function(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label);t.value=e.selectValue}(e,n)}function A(e){var t=m.getOptionFromViewValue(e),n=t&&t.element;return n&&!n.selected&&(n.selected=!0),t}u.generateUnknownOptionValue=function(e){return"?"},p?(u.writeValue=function(e){if(m){var t=e&&e.map(A)||[];m.items.forEach((function(e){e.element.selected&&!re(t,e)&&(e.element.selected=!1)}))}},u.readValue=function(){var e=s.val()||[],t=[];return k(e,(function(e){var n=m.selectValueMap[e];n&&!n.disabled&&t.push(m.getViewValueFromOption(n))})),t},b.trackBy&&e.$watchCollection((function(){if(U(d.$viewValue))return d.$viewValue.map((function(e){return b.getTrackByValue(e)}))}),(function(){d.$render()}))):(u.writeValue=function(e){if(m){var t=s[0].options[s[0].selectedIndex],n=m.getOptionFromViewValue(e);t&&t.removeAttribute("selected"),n?(s[0].value!==n.selectValue&&(u.removeUnknownOption(),s[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):u.selectUnknownOrEmptyOption(e)}},u.readValue=function(){var e=m.selectValueMap[s.val()];return e&&!e.disabled?(u.unselectEmptyOption(),u.removeUnknownOption(),m.getViewValueFromOption(e)):null},b.trackBy&&e.$watch((function(){return b.getTrackByValue(d.$viewValue)}),(function(){d.$render()}))),v&&(t(u.emptyOption)(e),s.prepend(u.emptyOption),8===u.emptyOption[0].nodeType?(u.hasEmptyOption=!1,u.registerOption=function(e,t){""===t.val()&&(u.hasEmptyOption=!0,u.emptyOption=t,u.emptyOption.removeClass("ng-scope"),d.$render(),t.on("$destroy",(function(){var e=u.$isEmptyOptionSelected();u.hasEmptyOption=!1,u.emptyOption=void 0,e&&d.$render()})))}):u.emptyOption.removeClass("ng-scope")),e.$watchCollection(b.getWatchables,(function(){var e=m&&u.readValue();if(m)for(var t=m.items.length-1;t>=0;t--){var n=m.items[t];z(n.group)?_t(n.element.parentNode):_t(n.element)}m=b.getOptions();var r={};if(m.items.forEach((function(e){var t;z(e.group)?((t=r[e.group])||(t=o.cloneNode(!1),y.appendChild(t),t.label=null===e.group?"null":e.group,r[e.group]=t),x(e,t)):x(e,y)})),s[0].appendChild(y),d.$render(),!d.$isEmpty(e)){var i=u.readValue();(b.trackBy||p?se(e,i):e===i)||(d.$setViewValue(i),d.$render())}}))}}}}],ea=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(o,a,s){var l,c=s.count,u=s.$attr.when&&a.attr(s.$attr.when),p=s.offset||0,f=o.$eval(u)||{},h={},g=t.startSymbol(),m=t.endSymbol(),v=g+c+"-"+p+m,b=y.noop;function x(e){a.text(e||"")}k(s,(function(e,t){var n=i.exec(t);if(n){var r=(n[1]?"-":"")+d(n[2]);f[r]=a.attr(s.$attr[t])}})),k(f,(function(e,n){h[n]=t(e.replace(r,v))})),o.$watch(c,(function(t){var r=parseFloat(t),i=j(r);if(i||r in f||(r=e.pluralCat(r-p)),!(r===l||i&&j(l))){b();var a=h[r];M(a)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+r+"' in "+u),b=D,x()):b=o.$watch(a,x),l=r}}))}}}],ta=i("ngRef"),na=["$parse",function(e){return{priority:-1,restrict:"A",compile:function(t,n){var r=yn(ne(t)),i=e(n.ngRef),o=i.assign||function(){throw ta("nonassign",'Expression in ngRef="{0}" is non-assignable!',n.ngRef)};return function(e,t,a){var s;if(a.hasOwnProperty("ngRefRead")){if("$element"===a.ngRefRead)s=t;else if(!(s=t.data("$"+a.ngRefRead+"Controller")))throw ta("noctrl",'The controller for ngRefRead="{0}" could not be found on ngRef="{1}"',a.ngRefRead,n.ngRef)}else s=t.data("$"+r+"Controller");o(e,s=s||t),t.on("$destroy",(function(){i(e)===s&&o(e,null)}))}}}}],ra=["$parse","$animate","$compile",function(e,t,n){var r=i("ngRepeat"),o=function(e,t,n,r,i,o,a){e[n]=r,i&&(e[i]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))},a=function(e){return e.clone[0]},s=function(e){return e.clone[e.clone.length-1]},l=function(e,t,n){return zt(n)},c=function(e,t){return t};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,d){var p=d.ngRepeat,f=n.$$createComment("end ngRepeat",p),h=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!h)throw r("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var g=h[1],m=h[2],v=h[3],b=h[4];if(!(h=g.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw r("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",g);var y,x=h[3]||h[1],A=h[2];if(v&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw r("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",v);if(b){var E={$id:zt},S=e(b);y=function(e,t,n,r){return A&&(E[A]=t),E[x]=n,E.$index=r,S(e,E)}}return function(e,n,i,d,h){var g=Le();e.$watchCollection(m,(function(i){var d,m,b,S,$,C,_,O,T,j,P,D,R=n[0],I=Le();if(v&&(e[v]=i),w(i))T=i,O=y||l;else for(var N in O=y||c,T=[],i)u.call(i,N)&&"$"!==N.charAt(0)&&T.push(N);for(S=T.length,P=new Array(S),d=0;d<S;d++)if($=i===T?d:T[d],C=i[$],_=O(e,$,C,d),g[_])j=g[_],delete g[_],I[_]=j,P[d]=j;else{if(I[_])throw k(P,(function(e){e&&e.scope&&(g[e.id]=e)})),r("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,_,C);P[d]={id:_,scope:void 0,clone:void 0},I[_]=!0}for(var M in E&&(E[x]=void 0),g){if(D=ze((j=g[M]).clone),t.leave(D),D[0].parentNode)for(d=0,m=D.length;d<m;d++)D[d].$$NG_REMOVED=!0;j.scope.$destroy()}for(d=0;d<S;d++)if($=i===T?d:T[d],C=i[$],(j=P[d]).scope){b=R;do{b=b.nextSibling}while(b&&b.$$NG_REMOVED);a(j)!==b&&t.move(ze(j.clone),null,R),R=s(j),o(j.scope,d,x,C,A,$,S)}else h((function(e,n){j.scope=n;var r=f.cloneNode(!1);e[e.length++]=r,t.enter(e,null,R),R=r,j.clone=e,I[j.id]=j,o(j.scope,d,x,C,A,$,S)}));g=I}))}}}}],ia=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngShow,(function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],oa=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngHide,(function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],aa=Ni((function(e,t,n){e.$watchCollection(n.ngStyle,(function(e,n){n&&e!==n&&k(n,(function(e,n){t.css(n,"")})),e&&t.css(e)}))})),sa=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,o){var a=i.ngSwitch||i.on,s=[],l=[],c=[],u=[],d=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(a,(function(n){for(var r,i;c.length;)e.cancel(c.pop());for(r=0,i=u.length;r<i;++r){var a=ze(l[r].clone);u[r].$destroy(),(c[r]=e.leave(a)).done(d(c,r))}l.length=0,u.length=0,(s=o.cases["!"+n]||o.cases["?"])&&k(s,(function(n){n.transclude((function(r,i){u.push(i);var o=n.element;r[r.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:r};l.push(a),e.enter(r,o.parent(),o)}))}))}))}}}],la=Ni({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){k(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter((function(e,t,n){return n[t-1]!==e})),(function(e){r.cases["!"+e]=r.cases["!"+e]||[],r.cases["!"+e].push({transclude:i,element:t})}))}}),ca=Ni({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),ua=i("ngTransclude"),da=["$compile",function(e){return{restrict:"EAC",compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,r,i,o){if(!o)throw ua("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",xe(t));r.ngTransclude===r.$attr.ngTransclude&&(r.ngTransclude="");var a=r.ngTransclude||r.ngTranscludeSlot;function s(){n(e,(function(e){t.append(e)}))}o((function(e,n){e.length&&function(e){for(var t=0,n=e.length;t<n;t++){var r=e[t];if(r.nodeType!==Fe||r.nodeValue.trim())return!0}}(e)?t.append(e):(s(),n.$destroy())}),null,a),a&&!o.isSlotFilled(a)&&s()}}}}],pa=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var r=n.id,i=t[0].text;e.put(r,i)}}}}],fa={$setViewValue:D,$render:D};function ha(e,t){e.prop("selected",t),e.attr("selected",t)}var ga=["$element","$scope",function(t,n){var r=this,i=new Ft;r.selectValueMap={},r.ngModelCtrl=fa,r.multiple=!1,r.unknownOption=a(e.document.createElement("option")),r.hasEmptyOption=!1,r.emptyOption=void 0,r.renderUnknownOption=function(e){var n=r.generateUnknownOptionValue(e);r.unknownOption.val(n),t.prepend(r.unknownOption),ha(r.unknownOption,!0),t.val(n)},r.updateUnknownOption=function(e){var n=r.generateUnknownOptionValue(e);r.unknownOption.val(n),ha(r.unknownOption,!0),t.val(n)},r.generateUnknownOptionValue=function(e){return"? "+zt(e)+" ?"},r.removeUnknownOption=function(){r.unknownOption.parent()&&r.unknownOption.remove()},r.selectEmptyOption=function(){r.emptyOption&&(t.val(""),ha(r.emptyOption,!0))},r.unselectEmptyOption=function(){r.hasEmptyOption&&ha(r.emptyOption,!1)},n.$on("$destroy",(function(){r.renderUnknownOption=D})),r.readValue=function(){var e=t.val(),n=e in r.selectValueMap?r.selectValueMap[e]:e;return r.hasOption(n)?n:null},r.writeValue=function(e){var n=t[0].options[t[0].selectedIndex];if(n&&ha(a(n),!1),r.hasOption(e)){r.removeUnknownOption();var i=zt(e);t.val(i in r.selectValueMap?i:e);var o=t[0].options[t[0].selectedIndex];ha(a(o),!0)}else r.selectUnknownOrEmptyOption(e)},r.addOption=function(e,t){if(8!==t[0].nodeType){Me(e,'"option value"'),""===e&&(r.hasEmptyOption=!0,r.emptyOption=t);var n=i.get(e)||0;i.set(e,n+1),s()}},r.removeOption=function(e){var t=i.get(e);t&&(1===t?(i.delete(e),""===e&&(r.hasEmptyOption=!1,r.emptyOption=void 0)):i.set(e,t-1))},r.hasOption=function(e){return!!i.get(e)},r.$hasEmptyOption=function(){return r.hasEmptyOption},r.$isUnknownOptionSelected=function(){return t[0].options[0]===r.unknownOption[0]},r.$isEmptyOptionSelected=function(){return r.hasEmptyOption&&t[0].options[t[0].selectedIndex]===r.emptyOption[0]},r.selectUnknownOrEmptyOption=function(e){null==e&&r.emptyOption?(r.removeUnknownOption(),r.selectEmptyOption()):r.unknownOption.parent().length?r.updateUnknownOption(e):r.renderUnknownOption(e)};var o=!1;function s(){o||(o=!0,n.$$postDigest((function(){o=!1,r.ngModelCtrl.$render()})))}var l=!1;function c(e){l||(l=!0,n.$$postDigest((function(){n.$$destroyed||(l=!1,r.ngModelCtrl.$setViewValue(r.readValue()),e&&r.ngModelCtrl.$render())})))}r.registerOption=function(e,t,n,i,o){var a,l;n.$attr.ngValue?n.$observe("value",(function(e){var n,i=t.prop("selected");z(l)&&(r.removeOption(a),delete r.selectValueMap[l],n=!0),l=zt(e),a=e,r.selectValueMap[l]=e,r.addOption(e,t),t.attr("value",l),n&&i&&c()})):i?n.$observe("value",(function(e){var n;r.readValue();var i=t.prop("selected");z(a)&&(r.removeOption(a),n=!0),a=e,r.addOption(e,t),n&&i&&c()})):o?e.$watch(o,(function(e,i){n.$set("value",e);var o=t.prop("selected");i!==e&&r.removeOption(i),r.addOption(e,t),i&&o&&c()})):r.addOption(n.value,t);n.$observe("disabled",(function(e){("true"===e||e&&t.prop("selected"))&&(r.multiple?c(!0):(r.ngModelCtrl.$setViewValue(null),r.ngModelCtrl.$render()))})),t.on("$destroy",(function(){var e=r.readValue(),t=n.value;r.removeOption(t),s(),(r.multiple&&e&&-1!==e.indexOf(t)||e===t)&&c(!0)}))}}],ma=function(){return{restrict:"E",require:["select","?ngModel"],controller:ga,priority:1,link:{pre:function(e,t,n,r){var i=r[0],o=r[1];if(!o)return void(i.registerOption=D);if(i.ngModelCtrl=o,t.on("change",(function(){i.removeUnknownOption(),e.$apply((function(){o.$setViewValue(i.readValue())}))})),n.multiple){i.multiple=!0,i.readValue=function(){var e=[];return k(t.find("option"),(function(t){if(t.selected&&!t.disabled){var n=t.value;e.push(n in i.selectValueMap?i.selectValueMap[n]:n)}})),e},i.writeValue=function(e){k(t.find("option"),(function(t){var n=!!e&&(re(e,t.value)||re(e,i.selectValueMap[t.value]));n!==t.selected&&ha(a(t),n)}))};var s,l=NaN;e.$watch((function(){l!==o.$viewValue||se(s,o.$viewValue)||(s=qe(o.$viewValue),o.$render()),l=o.$viewValue})),o.$isEmpty=function(e){return!e||0===e.length}}},post:function(e,t,n,r){var i=r[1];if(!i)return;var o=r[0];i.$render=function(){o.writeValue(i.$viewValue)}}}}},va=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var r,i;return z(n.ngValue)||(z(n.value)?r=e(n.value,!0):(i=e(t.text(),!0))||n.$set("value",t.text())),function(e,t,n){var o=t.parent(),a=o.data("$selectController")||o.parent().data("$selectController");a&&a.registerOption(e,t,n,r,i)}}}}],ba=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,i){if(i){var o=r.hasOwnProperty("required")||e(r.ngRequired)(t);r.ngRequired||(r.required=!0),i.$validators.required=function(e,t){return!o||!i.$isEmpty(t)},r.$observe("required",(function(e){o!==e&&(o=e,i.$validate())}))}}}}],ya=["$parse",function(e){return{restrict:"A",require:"?ngModel",compile:function(t,n){var r,i;return n.ngPattern&&(r=n.ngPattern,i="/"===n.ngPattern.charAt(0)&&c.test(n.ngPattern)?function(){return n.ngPattern}:e(n.ngPattern)),function(e,t,n,o){if(o){var a=n.pattern;n.ngPattern?a=i(e):r=n.pattern;var s=ka(a,r,t);n.$observe("pattern",(function(e){var n=s;s=ka(e,r,t),(n&&n.toString())!==(s&&s.toString())&&o.$validate()})),o.$validators.pattern=function(e,t){return o.$isEmpty(t)||M(s)||s.test(t)}}}}}}],xa=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,i){if(i){var o=r.maxlength||e(r.ngMaxlength)(t),a=Aa(o);r.$observe("maxlength",(function(e){o!==e&&(a=Aa(e),o=e,i.$validate())})),i.$validators.maxlength=function(e,t){return a<0||i.$isEmpty(t)||t.length<=a}}}}}],wa=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,i){if(i){var o=r.minlength||e(r.ngMinlength)(t),a=Aa(o)||-1;r.$observe("minlength",(function(e){o!==e&&(a=Aa(e)||-1,o=e,i.$validate())})),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=a}}}}}];function ka(e,t,n){if(e){if(F(e)&&(e=new RegExp("^"+e+"$")),!e.test)throw i("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",t,e,xe(n));return e}}function Aa(e){var t=T(e);return j(t)?-1:t}e.angular.bootstrap?e.console&&console.log("WARNING: Tried to load AngularJS more than once."):(!function(){var t;if(!De){var n=ce();(s=M(n)?e.jQuery:n?e[n]:void 0)&&s.fn.on?(a=s,_(s.fn,{scope:Tt.scope,isolateScope:Tt.isolateScope,controller:Tt.controller,injector:Tt.injector,inheritedData:Tt.inheritedData})):a=pt,t=a.cleanData,a.cleanData=function(e){for(var n,r,i=0;null!=(r=e[i]);i++)(n=(a._data(r)||{}).events)&&n.$destroy&&a(r).triggerHandler("$destroy");t(e)},y.element=a,De=!0}}(),function(t){_(t,{errorHandlingConfig:n,bootstrap:_e,copy:oe,extend:_,merge:O,equals:se,element:a,forEach:k,injector:Qt,noop:D,bind:pe,toJson:he,fromJson:ge,identity:R,isUndefined:M,isDefined:z,isString:F,isFunction:G,isObject:L,isNumber:q,isElement:te,isArray:U,version:Ue,isDate:V,callbacks:{$$counter:0},getTestability:Te,reloadWithDebugInfo:Oe,UNSAFE_restoreLegacyJqLiteXHTMLReplacement:Re,$$minErr:i,$$csp:le,$$encodeUriSegment:Ae,$$encodeUriQuery:Ee,$$lowercase:d,$$stringify:Be,$$uppercase:p}),(l=function(e){var t=i("$injector"),n=i("ng");function r(e,t,n){return e[t]||(e[t]=n())}var o=r(e,"angular",Object);return o.$$minErr=o.$$minErr||i,r(o,"module",(function(){var e={};return function(i,o,a){var s={};return function(e,t){if("hasOwnProperty"===e)throw n("badname","hasOwnProperty is not a valid {0} name",t)}(i,"module"),o&&e.hasOwnProperty(i)&&(e[i]=null),r(e,i,(function(){if(!o)throw t("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var e=[],r=[],l=[],c=d("$injector","invoke","push",r),u={_invokeQueue:e,_configBlocks:r,_runBlocks:l,info:function(e){if(z(e)){if(!L(e))throw n("aobj","Argument '{0}' must be an object","value");return s=e,this}return s},requires:o,name:i,provider:p("$provide","provider"),factory:p("$provide","factory"),service:p("$provide","service"),value:d("$provide","value"),constant:d("$provide","constant","unshift"),decorator:p("$provide","decorator",r),animation:p("$animateProvider","register"),filter:p("$filterProvider","register"),controller:p("$controllerProvider","register"),directive:p("$compileProvider","directive"),component:p("$compileProvider","component"),config:c,run:function(e){return l.push(e),this}};return a&&c(a),u;function d(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),u}}function p(t,n,r){return r||(r=e),function(e,o){return o&&G(o)&&(o.$$moduleName=i),r.push([t,n,arguments]),u}}}))}}))}(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:qr}),e.provider("$compile",gn).directive({a:Mi,input:mo,textarea:mo,form:qi,script:pa,select:ma,option:va,ngBind:xo,ngBindHtml:ko,ngBindTemplate:wo,ngClass:So,ngClassEven:Co,ngClassOdd:$o,ngCloak:_o,ngController:Oo,ngForm:Vi,ngHide:oa,ngIf:Do,ngInclude:Ro,ngInit:No,ngNonBindable:Zo,ngPluralize:ea,ngRef:na,ngRepeat:ra,ngShow:ia,ngStyle:aa,ngSwitch:sa,ngSwitchWhen:la,ngSwitchDefault:ca,ngOptions:Ko,ngTransclude:da,ngModel:Ho,ngList:Mo,ngChange:Ao,pattern:ya,ngPattern:ya,required:ba,ngRequired:ba,minlength:wa,ngMinlength:wa,maxlength:xa,ngMaxlength:xa,ngValue:yo,ngModelOptions:Yo}).directive({ngInclude:Io,input:vo}).directive(zi).directive(To),e.provider({$anchorScroll:Jt,$animate:on,$animateCss:ln,$$animateJs:nn,$$animateQueue:rn,$$AnimateRunner:sn,$$animateAsyncRun:an,$browser:un,$cacheFactory:dn,$controller:Sn,$document:$n,$$isDocumentHidden:Cn,$exceptionHandler:_n,$filter:fi,$$forceReflow:On,$interpolate:Wn,$interval:Xn,$$intervalFactory:Zn,$http:Vn,$httpParamSerializer:Nn,$httpParamSerializerJQLike:Mn,$httpBackend:Hn,$xhrFactory:Un,$jsonpCallbacks:Qn,$location:hr,$log:gr,$parse:Dr,$rootScope:Fr,$q:Rr,$$q:Ir,$sce:Xr,$sceDelegate:Yr,$sniffer:Zr,$$taskTrackerFactory:Qr,$templateCache:pn,$templateRequest:ei,$$testability:ti,$timeout:ri,$window:ui,$$rAF:Br,$$jqLite:Mt,$$Map:qt,$$cookieReader:pi})}]).info({angularVersion:"1.8.3"})}(y),y.module("ngLocale",[],["$provide",function(e){var t="one",n="other";e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,r){var i=0|e,o=function(e,t){var n=t;void 0===n&&(n=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3));var r=Math.pow(10,n);return{v:n,f:(e*r|0)%r}}(e,r);return 1==i&&0==o.v?t:n}})}]),a((function(){Ce(e.document,_e)})))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(window.angular.element("<style>").text('@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}'))},function(e,t,n){"use strict";n(210);const r=n(33),i=n(9);window.jQuery=r,n(217),n(218),n(219),n(225),n(227),i.module("dbt",["ngRoute","ui.router","hc.marked"]).config(["markedProvider","$locationProvider",function(e,t){e.setOptions({gfm:!0,sanitize:!0}),e.setRenderer({table:function(e,t){return"<table class='table'><thead>"+e+"</thead><tbody>"+t+"</tbody></table>"}}),t.html5Mode({enabled:!1}),r(document).tooltip({selector:'[data-toggle="tooltip"]',placement:function(e,t){return r(t).attr("data-placement")?r(t).attr("data-placement"):"auto"},container:"body"}),r(document).ready((function(){r("[data-toggle=popover]").popover({container:"body",html:!0})}))}])},function(e,t,n){var r=n(211);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){var r=n(212);(e.exports=n(39)(!1)).push([e.i,'@media (max-width: 960px){[data-large]{display:none !important}}@media (min-width: 961px){[data-small]{display:none !important}}@media screen{[data-print]{display:none !important}}@media print{[data-screen]{display:none !important}}html.touchevents [data-click]{display:none !important}html.no-touchevents [data-touch]{display:none !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.6;color:#5e666c;background-color:#f9fafb}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#0bb;text-decoration:none}a:hover,a:focus{color:#009595;text-decoration:none}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:4px}.img-thumbnail{padding:0;line-height:1.6;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:1.6rem;margin-bottom:1.6rem;border:0;border-top:1px solid rgba(0,30,60,0.075)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:normal;line-height:false;color:#313539}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#8b969e}h1,.h1,h2,.h2,h3,.h3{margin-top:1.6rem;margin-bottom:.8rem}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:.8rem;margin-bottom:.8rem}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:1.7142857143rem}h2,.h2{font-size:1.7142857143rem}h3,.h3{font-size:1.2857142857rem}h4,.h4{font-size:1.1428571429rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}p{margin:0 0 .8rem}.lead{margin-bottom:1.6rem;font-size:1rem;font-weight:300;line-height:1.4}@media (min-width: 540px){.lead{font-size:1.5rem}}small,.small{font-size:92%}mark,.mark{background-color:#fff6ec;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase,.initialism{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#8b969e}.text-primary{color:#0bb}a.text-primary:hover,a.text-primary:focus{color:#088}.text-success{color:#48a71c}a.text-success:hover,a.text-success:focus{color:#357b15}.text-info{color:#0aa}a.text-info:hover,a.text-info:focus{color:#077}.text-warning{color:#ff6316}a.text-warning:hover,a.text-warning:focus{color:#e24b00}.text-danger{color:#ff694b}a.text-danger:hover,a.text-danger:focus{color:#ff3f18}.bg-primary{color:#fff}.bg-primary{background-color:#0bb}a.bg-primary:hover,a.bg-primary:focus{background-color:#088}.bg-success{background-color:#f3faec}a.bg-success:hover,a.bg-success:focus{background-color:#daefc4}.bg-info{background-color:#edfafa}a.bg-info:hover,a.bg-info:focus{background-color:#c5efef}.bg-warning{background-color:#fff6ec}a.bg-warning:hover,a.bg-warning:focus{background-color:#ffdeb9}.bg-danger{background-color:#fff5f4}a.bg-danger:hover,a.bg-danger:focus{background-color:#ffc7c1}.page-header{padding-bottom:-.2rem;margin:3.2rem 0 1.6rem;border-bottom:1px solid #f7f7f8}ul,ol{margin-top:0;margin-bottom:.8rem}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:1.6rem}dt,dd{line-height:1.6}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 260px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted rgba(0,30,60,0.075)}.initialism{font-size:90%}blockquote{padding:.8rem 1.6rem;margin:0 0 1.6rem;font-size:1rem;border-left:5px solid transparent}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.6;color:#8b969e}blockquote footer:before,blockquote small:before,blockquote .small:before{content:\'\\2014 \\A0\'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid transparent;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:\'\'}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:\'\\A0 \\2014\'}address{margin-bottom:1.6rem;font-style:normal;line-height:1.6}code,kbd,pre,samp{font-family:"Monaco",monospace}code{padding:2px 4px;font-size:90%;color:#313539;background-color:transparent;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#313539;background-color:transparent;border-radius:4px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:.3rem;margin:0 0 .8rem;font-size:0rem;line-height:1.6;word-break:break-all;word-wrap:break-word;color:#fff;background-color:#005e7a;border:1px solid transparent;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:30px;padding-right:30px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 540px){.container{width:780px}}@media (min-width: 768px){.container{width:1000px}}@media (min-width: 960px){.container{width:1200px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:30px;padding-right:30px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-30px;margin-right:-30px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:30px;padding-right:30px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 540px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 768px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 960px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:.6785714286rem 1.25rem;padding-bottom:.6785714286rem 1.25rem;color:#8b969e;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:1.6rem}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:.6785714286rem 1.25rem;line-height:1.6;vertical-align:top;border-top:1px solid rgba(0,30,60,0.075)}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid rgba(0,30,60,0.075)}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid rgba(0,30,60,0.075)}.table .table{background-color:#f9fafb}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:.4464285714rem .875rem}.table-bordered{border:1px solid rgba(0,30,60,0.075)}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid rgba(0,30,60,0.075)}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9fafb}.table-hover>tbody>tr:hover{background-color:#f9fafb}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f9fafb}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#eaedf1}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#f3faec}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#e6f5d8}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#edfafa}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#d9f4f4}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fff6ec}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ffead3}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#fff5f4}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ffdedb}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 539px){.table-responsive{width:100%;margin-bottom:1.2rem;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid rgba(0,30,60,0.075)}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:1.6rem;font-size:1.5rem;line-height:inherit;color:#8b969e;border:0;border-bottom:1px solid rgba(0,30,60,0.075)}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \\9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:1.6785714286rem;font-size:1rem;line-height:1.6;color:#484e53}.form-control{display:block;width:100%;height:2.8571428571rem;padding:.6785714286rem 1.25rem;font-size:1rem;line-height:1.6;color:#484e53;background-color:#f0f2f4;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus{border-color:transparent;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6)}.form-control::-moz-placeholder{color:#a8b1b7;opacity:1}.form-control:-ms-input-placeholder{color:#a8b1b7}.form-control::-webkit-input-placeholder{color:#a8b1b7}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#e4e6eb;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:2.8571428571rem}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,.input-group-sm input[type="date"],input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,.input-group-sm input[type="time"],input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,.input-group-sm input[type="datetime-local"],input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn,.input-group-sm input[type="month"]{line-height:2.2857142857rem}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,.input-group-lg input[type="date"],input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,.input-group-lg input[type="time"],input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,.input-group-lg input[type="datetime-local"],input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn,.input-group-lg input[type="month"]{line-height:4.2857142857rem}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:1.6rem;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \\9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static,.form-grid .form-row .form-label label{padding-top:1.6785714286rem;padding-bottom:1.6785714286rem;margin-bottom:0;min-height:2.6rem}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-lg>label.form-control,.input-group-lg>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-lg>label.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-lg>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-lg,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-sm>label.form-control,.input-group-sm>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-sm>label.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-sm>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-sm{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:2.2857142857rem;padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6;border-radius:4px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:2.2857142857rem;line-height:2.2857142857rem}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.form-group-sm .form-control{height:2.2857142857rem;padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6;border-radius:4px}.form-group-sm select.form-control{height:2.2857142857rem;line-height:2.2857142857rem}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static,.form-group-sm .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-sm label{height:2.2857142857rem;min-height:2.5285714286rem;padding:1.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:4.2857142857rem;padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6;border-radius:4px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:4.2857142857rem;line-height:4.2857142857rem}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.form-group-lg .form-control{height:4.2857142857rem;padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6;border-radius:4px}.form-group-lg select.form-control{height:4.2857142857rem;line-height:4.2857142857rem}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static,.form-group-lg .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-lg label{height:4.2857142857rem;min-height:2.7428571429rem;padding:2.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6}.has-feedback{position:relative}.has-feedback .form-control{padding-right:3.5714285714rem}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:2.8571428571rem;height:2.8571428571rem;line-height:2.8571428571rem;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:4.2857142857rem;height:4.2857142857rem;line-height:4.2857142857rem}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:2.2857142857rem;height:2.2857142857rem;line-height:2.2857142857rem}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#48a71c}.has-success .form-control{border-color:#48a71c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#357b15;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #79e049;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #79e049}.has-success .input-group-addon{color:#48a71c;border-color:#48a71c;background-color:#f3faec}.has-success .form-control-feedback{color:#48a71c}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ff6316}.has-warning .form-control{border-color:#ff6316;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e24b00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffa77c;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffa77c}.has-warning .input-group-addon{color:#ff6316;border-color:#ff6316;background-color:#fff6ec}.has-warning .form-control-feedback{color:#ff6316}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ff694b}.has-error .form-control{border-color:#ff694b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#ff3f18;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffbeb1;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffbeb1}.has-error .input-group-addon{color:#ff694b;border-color:#ff694b;background-color:#fff5f4}.has-error .form-control-feedback{color:#ff694b}.has-feedback label ~ .form-control-feedback{top:6.6rem}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#9ea6ab}@media (min-width: 540px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.form-inline .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-inline label{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:1.6785714286rem}.form-horizontal .radio,.form-horizontal .checkbox{min-height:3.2785714286rem}.form-horizontal .form-group{margin-left:-30px;margin-right:-30px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 540px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:1.6785714286rem}}.form-horizontal .has-feedback .form-control-feedback{right:30px}@media (min-width: 540px){.form-horizontal .form-group-lg .control-label{padding-top:2.2857142857rem;font-size:1.1428571429rem}}@media (min-width: 540px){.form-horizontal .form-group-sm .control-label{padding-top:1.4464285714rem;font-size:.9285714286rem}}.btn{display:inline-block;margin-bottom:0;font-weight:bold;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:.6785714286rem 1.25rem;font-size:1rem;line-height:1.6;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#484e53;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#484e53;background-color:#f0f2f4;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#484e53;background-color:#e9ebef}.btn-default:hover{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#484e53;background-color:#e9ebef}.btn-default:active:hover,.btn-default:active:focus,.btn-default:active.focus,.btn-default.active:hover,.btn-default.active:focus,.btn-default.active.focus,.open>.btn-default.dropdown-toggle:hover,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle.focus{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus{background-color:#f0f2f4;border-color:transparent}.btn-default .badge{color:#f0f2f4;background-color:#484e53}.btn-primary{color:#fff;background-color:#0bb;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#009595}.btn-primary:hover{color:#fff;background-color:#009595}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#009595}.btn-primary:active:hover,.btn-primary:active:focus,.btn-primary:active.focus,.btn-primary.active:hover,.btn-primary.active:focus,.btn-primary.active.focus,.open>.btn-primary.dropdown-toggle:hover,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle.focus{color:#fff;background-color:#009595}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus{background-color:#0bb;border-color:transparent}.btn-primary .badge{color:#0bb;background-color:#fff}.btn-success{color:#fff;background-color:#7ec631;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#48a71c}.btn-success:hover{color:#fff;background-color:#48a71c}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#48a71c}.btn-success:active:hover,.btn-success:active:focus,.btn-success:active.focus,.btn-success.active:hover,.btn-success.active:focus,.btn-success.active.focus,.open>.btn-success.dropdown-toggle:hover,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle.focus{color:#fff;background-color:#48a71c}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus{background-color:#7ec631;border-color:transparent}.btn-success .badge{color:#7ec631;background-color:#fff}.btn-info{color:#fff;background-color:#0bb;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#009595}.btn-info:hover{color:#fff;background-color:#009595}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#009595}.btn-info:active:hover,.btn-info:active:focus,.btn-info:active.focus,.btn-info.active:hover,.btn-info.active:focus,.btn-info.active.focus,.open>.btn-info.dropdown-toggle:hover,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle.focus{color:#fff;background-color:#009595}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus{background-color:#0bb;border-color:transparent}.btn-info .badge{color:#0bb;background-color:#fff}.btn-warning{color:#fff;background-color:#ff9b26;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ff6316}.btn-warning:hover{color:#fff;background-color:#ff6316}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ff6316}.btn-warning:active:hover,.btn-warning:active:focus,.btn-warning:active.focus,.btn-warning.active:hover,.btn-warning.active:focus,.btn-warning.active.focus,.open>.btn-warning.dropdown-toggle:hover,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle.focus{color:#fff;background-color:#ff6316}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus{background-color:#ff9b26;border-color:transparent}.btn-warning .badge{color:#ff9b26;background-color:#fff}.btn-danger{color:#fff;background-color:#ff694b;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#ff3c2b}.btn-danger:hover{color:#fff;background-color:#ff3c2b}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff3c2b}.btn-danger:active:hover,.btn-danger:active:focus,.btn-danger:active.focus,.btn-danger.active:hover,.btn-danger.active:focus,.btn-danger.active.focus,.open>.btn-danger.dropdown-toggle:hover,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle.focus{color:#fff;background-color:#ff3c2b}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus{background-color:#ff694b;border-color:transparent}.btn-danger .badge{color:#ff694b;background-color:#fff}.btn-link{color:#0bb;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#009595;text-decoration:none;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#8b969e;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6;border-radius:4px}.btn-sm,.btn-group-sm>.btn{padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6;border-radius:4px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:.9285714286rem;line-height:1.6;border-radius:4px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \\9 ;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:1rem;text-align:left;background-color:#fff;border:1px solid transparent;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:-.2rem 0;overflow:hidden;background-color:rgba(0,30,60,0.075)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.6;color:#5e666c;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#313539;background-color:#f9fafb}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#0bb}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#8b969e}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:.9285714286rem;line-height:1.6;color:#8b969e;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \\9 ;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 960px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:.6785714286rem 1.25rem;font-size:1rem;font-weight:normal;line-height:1;color:#484e53;text-align:center;background-color:#f0f2f4;border:1px solid transparent;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.4464285714rem .875rem;font-size:.9285714286rem;border-radius:4px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;border-radius:4px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:.6785714286rem .875rem}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#f9fafb}.nav>li.disabled>a{color:#8b969e}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#8b969e;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#f9fafb;border-color:#0bb}.nav .nav-divider{height:1px;margin:-.2rem 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid rgba(0,30,60,0.075)}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.6;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#ff694b #ff694b rgba(0,30,60,0.075)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:inherit;background-color:transparent;border:1px solid #ff694b;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:1000px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#0bb}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 540px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 540px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#f9fafb}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.breadcrumb{padding:1.2857142857rem 1.875rem;margin-bottom:1.6rem;list-style:none;background-color:#f9fafb;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\\A0";padding:0 5px;color:#8b969e}.breadcrumb>.active{color:#313539}.pagination{display:inline-block;padding-left:0;margin:1.6rem 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:.6785714286rem 1.25rem;line-height:1.6;text-decoration:none;color:#0bb;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{z-index:2;color:#009595;background-color:#f7f7f8;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:3;color:#fff;background-color:#0bb;border-color:#0bb;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#bec5c9;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination-sm>li>a,.pagination-sm>li>span{padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pager{padding-left:0;margin:1.6rem 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f7f7f8}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#bec5c9;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#8b969e;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:transparent}.label-default[href]:hover,.label-default[href]:focus{background-color:transparent}.label-primary{background-color:transparent}.label-primary[href]:hover,.label-primary[href]:focus{background-color:transparent}.label-success{background-color:transparent}.label-success[href]:hover,.label-success[href]:focus{background-color:transparent}.label-info{background-color:transparent}.label-info[href]:hover,.label-info[href]:focus{background-color:transparent}.label-warning{background-color:transparent}.label-warning[href]:hover,.label-warning[href]:focus{background-color:transparent}.label-danger{background-color:transparent}.label-danger[href]:hover,.label-danger[href]:focus{background-color:transparent}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:.9285714286rem;font-weight:bold;color:#8b969e;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#f0f2f4;border-radius:100px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#0bb;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.thumbnail{display:block;padding:0;margin-bottom:1.6rem;line-height:1.6;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:20px 30px;color:#8b969e}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0bb}.alert{padding:1.2857142857rem 1.875rem;margin-bottom:1.6rem;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:1.2857142857rem 1.875rem20}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#f3faec;border-color:transparent;color:#48a71c}.alert-success hr{border-top-color:transparent}.alert-success .alert-link{color:#357b15}.alert-info{background-color:#edfafa;border-color:transparent;color:#0aa}.alert-info hr{border-top-color:transparent}.alert-info .alert-link{color:#077}.alert-warning{background-color:#fff6ec;border-color:transparent;color:#ff6316}.alert-warning hr{border-top-color:transparent}.alert-warning .alert-link{color:#e24b00}.alert-danger{background-color:#fff5f4;border-color:transparent;color:#ff694b}.alert-danger hr{border-top-color:transparent}.alert-danger .alert-link{color:#ff3f18}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:1.6rem;margin-bottom:1.6rem;background-color:#f0f2f4;border-radius:100px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:.9285714286rem;line-height:1.6rem;color:#8b969e;text-align:center;background-color:#0bb;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#7ec631}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#0bb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff9b26}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff694b}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,30,60,0.075)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#5e666c}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#313539}a.list-group-item:hover,a.list-group-item:focus,button.list-group-item:hover,button.list-group-item:focus{text-decoration:none;color:#313539;background-color:#f9fafb}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#f9fafb;color:#8b969e;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#8b969e}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#0bb;border-color:rgba(0,30,60,0.03)}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fff}.list-group-item-success{color:#48a71c;background-color:#f3faec}a.list-group-item-success,button.list-group-item-success{color:#48a71c}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:hover,button.list-group-item-success:focus{color:#48a71c;background-color:#e6f5d8}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active,button.list-group-item-success.active:hover,button.list-group-item-success.active:focus{color:#fff;background-color:#48a71c;border-color:#48a71c}.list-group-item-info{color:#0aa;background-color:#edfafa}a.list-group-item-info,button.list-group-item-info{color:#0aa}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:hover,button.list-group-item-info:focus{color:#0aa;background-color:#d9f4f4}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active,button.list-group-item-info.active:hover,button.list-group-item-info.active:focus{color:#fff;background-color:#0aa;border-color:#0aa}.list-group-item-warning{color:#ff6316;background-color:#fff6ec}a.list-group-item-warning,button.list-group-item-warning{color:#ff6316}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:hover,button.list-group-item-warning:focus{color:#ff6316;background-color:#ffead3}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active,button.list-group-item-warning.active:hover,button.list-group-item-warning.active:focus{color:#fff;background-color:#ff6316;border-color:#ff6316}.list-group-item-danger{color:#ff694b;background-color:#fff5f4}a.list-group-item-danger,button.list-group-item-danger{color:#ff694b}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:hover,button.list-group-item-danger:focus{color:#ff694b;background-color:#ffdedb}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active,button.list-group-item-danger.active:hover,button.list-group-item-danger.active:focus{color:#fff;background-color:#ff694b;border-color:#ff694b}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:1.6rem;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:2rem;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:transparent;border-top:1px solid transparent;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid rgba(0,30,60,0.075)}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:1.6rem}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#5e666c;background-color:transparent;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:transparent;background-color:#5e666c}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#0bb}.panel-primary>.panel-heading{color:#fff;background-color:#0bb;border-color:#0bb}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#0bb}.panel-primary>.panel-heading .badge{color:#0bb;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#0bb}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#48a71c;background-color:#f3faec;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#f3faec;background-color:#48a71c}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#0aa;background-color:#edfafa;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#edfafa;background-color:#0aa}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ff6316;background-color:#fff6ec;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#fff6ec;background-color:#ff6316}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ff694b;background-color:#fff5f4;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#fff5f4;background-color:#ff694b}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f0f2f4;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:4px}.well-sm{padding:9px;border-radius:4px}.close{float:right;font-size:1.5rem;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:transparent;border:1px solid transparent;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#f0f2f4}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.75;filter:alpha(opacity=75)}.modal-header{padding:0;border-bottom:1px solid transparent}.modal-header:before,.modal-header:after{content:" ";display:table}.modal-header:after{clear:both}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.6}.modal-body{position:relative;padding:0}.modal-footer{padding:0;text-align:right;border-top:1px solid transparent}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 540px){.modal-dialog{width:768px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:400px}}@media (min-width: 768px){.modal-lg{width:960px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:.9285714286rem;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:1;filter:alpha(opacity=100)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:300px;padding:3px 8px;color:#fff;text-align:center;background-color:#007699;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#007699}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#007699}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#007699}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#007699}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#007699}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#007699}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#007699}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#007699}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:400px;padding:1px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:1rem;background-color:#ff694b;background-clip:padding-box;border:1px solid transparent;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:1rem;background-color:transparent;border-bottom:1px solid transparent;border-radius:3px 3px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:0}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:0;border-bottom-width:0;border-top-color:transparent;border-top-color:transparent;bottom:0}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ff694b}.popover.right>.arrow{top:50%;left:0;margin-top:0;border-left-width:0;border-right-color:transparent;border-right-color:transparent}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ff694b}.popover.bottom>.arrow{left:50%;margin-left:0;border-top-width:0;border-bottom-color:transparent;border-bottom-color:transparent;top:0}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ff694b}.popover.left>.arrow{top:50%;right:0;margin-top:0;border-right-width:0;border-left-color:transparent;border-left-color:transparent}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ff694b;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-moz-transition:-moz-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:120px;opacity:1;filter:alpha(opacity=100);font-size:20px;color:#fff;text-align:center;text-shadow:none;background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#80000000\', endColorstr=\'#00000000\', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#00000000\', endColorstr=\'#80000000\', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:\'\\2039\'}.carousel-control .icon-next:before{content:\'\\203A\'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid transparent;border-radius:10px;cursor:pointer;background-color:#000 \\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:none}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 540px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@font-face{font-family:"arrows";font-weight:normal;font-style:normal;src:url('+r(n(213))+') format("woff")}[class*="arrow-"]:not(.arrow-before):after,[class*="arrow-"].arrow-before:before{font-family:"arrows";text-transform:none;font-style:normal;font-weight:normal;line-height:.5}.arrow-large:not(.arrow-before):after,.arrow-large.arrow-before:before{text-transform:uppercase}.arrow-up:not(.arrow-before):after,.arrow-up.arrow-before:before{content:" a "}.arrow-right:not(.arrow-before):after,.arrow-right.arrow-before:before{content:" b "}.arrow-down:not(.arrow-before):after,.arrow-down.arrow-before:before{content:" c "}.arrow-left:not(.arrow-before):after,.arrow-left.arrow-before:before{content:" d "}.arrow-close:not(.arrow-before):after,.arrow-close.arrow-before:before{content:" e "}.arrow-check:not(.arrow-before):after,.arrow-check.arrow-before:before{content:" f "}@font-face{font-family:"entypo";font-weight:normal;font-style:normal;src:url('+r(n(214))+') format("woff")}[data-icon]{width:24px;height:10px;display:inline-block;vertical-align:middle}[data-icon]:before{display:block;position:relative;margin-top:-1px;top:-5px;speak:none;font-family:"entypo";font-style:normal;font-weight:normal;font-variant:normal;font-size:18px;line-height:1;text-align:center;text-transform:none;text-decoration:inherit}[data-icon].md:before{font-size:20px}[data-icon].lg{width:32px}[data-icon].lg:before{font-size:32px;top:-11px}[data-icon="note"]:before{content:"\\E800"}[data-icon="logo-db"]:before{content:"\\E8DE"}[data-icon="music"]:before{content:"\\E802"}[data-icon="search"]:before{content:"\\E803"}[data-icon="flashlight"]:before{content:"\\E804"}[data-icon="mail"]:before{content:"\\E805"}[data-icon="heart"]:before{content:"\\E80D"}[data-icon="heart-empty"]:before{content:"\\E80F"}[data-icon="star"]:before{content:"\\E810"}[data-icon="star-empty"]:before{content:"\\E813"}[data-icon="user"]:before{content:"\\E814"}[data-icon="users"]:before{content:"\\E817"}[data-icon="user-add"]:before{content:"\\E819"}[data-icon="video"]:before{content:"\\E81A"}[data-icon="picture"]:before{content:"\\E81D"}[data-icon="camera"]:before{content:"\\1F4F7"}[data-icon="layout"]:before{content:"\\E821"}[data-icon="menu"]:before{content:"\\E823"}[data-icon="check"]:before{content:"\\E824"}[data-icon="close"]:before{content:"\\E826"}[data-icon="cancel"]:before{content:"\\E826"}[data-icon="cancel-circled"]:before{content:"\\E806"}[data-icon="cancel-squared"]:before{content:"\\E808"}[data-icon="plus"]:before{content:"+"}[data-icon="plus-circled"]:before{content:"\\E809"}[data-icon="plus-squared"]:before{content:"\\E80A"}[data-icon="minus"]:before{content:"\\2212"}[data-icon="minus-circled"]:before{content:"\\E80E"}[data-icon="minus-squared"]:before{content:"\\E80C"}[data-icon="help"]:before{content:"\\E811"}[data-icon="help-circled"]:before{content:"\\E812"}[data-icon="info"]:before{content:"\\E815"}[data-icon="info-circled"]:before{content:"\\E816"}[data-icon="back"]:before{content:"\\E818"}[data-icon="home"]:before{content:"\\E81B"}[data-icon="link"]:before{content:"\\E81C"}[data-icon="attach"]:before{content:"\\E81F"}[data-icon="lock"]:before{content:"\\1F512"}[data-icon="lock-open"]:before{content:"\\E822"}[data-icon="eye"]:before{content:"\\E825"}[data-icon="tag"]:before{content:"\\E827"}[data-icon="bookmark"]:before{content:"\\1F516"}[data-icon="bookmarks"]:before{content:"\\E837"}[data-icon="flag"]:before{content:"\\E838"}[data-icon="thumbs-up"]:before{content:"\\E840"}[data-icon="thumbs-down"]:before{content:"\\E849"}[data-icon="download"]:before{content:"\\E85D"}[data-icon="upload"]:before{content:"\\E851"}[data-icon="upload-cloud"]:before{content:"\\E86B"}[data-icon="reply"]:before{content:"\\E86C"}[data-icon="reply-all"]:before{content:"\\E87B"}[data-icon="forward"]:before{content:"\\E87C"}[data-icon="quote"]:before{content:"\\E889"}[data-icon="code"]:before{content:"\\E88A"}[data-icon="export"]:before{content:"\\E899"}[data-icon="pencil"]:before{content:"\\270F"}[data-icon="feather"]:before{content:"\\E8A5"}[data-icon="print"]:before{content:"\\E8A8"}[data-icon="retweet"]:before{content:"\\E8A9"}[data-icon="keyboard"]:before{content:"\\2328"}[data-icon="comment"]:before{content:"\\E8AB"}[data-icon="chat"]:before{content:"\\E829"}[data-icon="bell"]:before{content:"\\1F514"}[data-icon="attention"]:before{content:"\\E839"}[data-icon="alert"]:before{content:"\\E841"}[data-icon="vcard"]:before{content:"\\E853"}[data-icon="address"]:before{content:"\\E85C"}[data-icon="location"]:before{content:"\\E852"}[data-icon="map"]:before{content:"\\E84A"}[data-icon="direction"]:before{content:"\\E86D"}[data-icon="compass"]:before{content:"\\E87A"}[data-icon="cup"]:before{content:"\\E850"}[data-icon="trash"]:before{content:"\\E888"}[data-icon="doc"]:before{content:"\\E88B"}[data-icon="docs"]:before{content:"\\E898"}[data-icon="doc-landscape"]:before{content:"\\E89B"}[data-icon="doc-text"]:before{content:"\\E8A6"}[data-icon="doc-text-inv"]:before{content:"\\E8A7"}[data-icon="newspaper"]:before{content:"\\1F4F0"}[data-icon="book-open"]:before{content:"\\E8AD"}[data-icon="book"]:before{content:"\\E8AC"}[data-icon="folder"]:before{content:"\\E82A"}[data-icon="archive"]:before{content:"\\E835"}[data-icon="box"]:before{content:"\\E83A"}[data-icon="rss"]:before{content:"\\E842"}[data-icon="phone"]:before{content:"\\E854"}[data-icon="cog"]:before{content:"\\E85E"}[data-icon="tools"]:before{content:"\\E860"}[data-icon="share"]:before{content:"\\E84B"}[data-icon="shareable"]:before{content:"\\E86E"}[data-icon="basket"]:before{content:"\\E879"}[data-icon="bag"]:before{content:"\\E87E"}[data-icon="calendar"]:before{content:"\\1F4C5"}[data-icon="login"]:before{content:"\\E88C"}[data-icon="logout"]:before{content:"\\E897"}[data-icon="mic"]:before{content:"\\E84D"}[data-icon="mute"]:before{content:"\\E84E"}[data-icon="sound"]:before{content:"\\E8AE"}[data-icon="volume"]:before{content:"\\E8B4"}[data-icon="clock"]:before{content:"\\E8AF"}[data-icon="hourglass"]:before{content:"\\231B"}[data-icon="lamp"]:before{content:"\\E82B"}[data-icon="light-down"]:before{content:"\\E834"}[data-icon="light-up"]:before{content:"\\E83B"}[data-icon="adjust"]:before{content:"\\E843"}[data-icon="block"]:before{content:"\\2588"}[data-icon="resize-full"]:before{content:"\\E85F"}[data-icon="resize-small"]:before{content:"\\E861"}[data-icon="popup"]:before{content:"\\E86A"}[data-icon="publish"]:before{content:"\\E86F"}[data-icon="window"]:before{content:"\\E878"}[data-icon="arrow-combo"]:before{content:"\\E87D"}[data-icon="down-circled"]:before{content:"\\E887"}[data-icon="left-circled"]:before{content:"\\E88D"}[data-icon="right-circled"]:before{content:"\\E896"}[data-icon="up-circled"]:before{content:"\\E89C"}[data-icon="down-open"]:before{content:"\\E84C"}[data-icon="left-open"]:before{content:"\\E8B2"}[data-icon="right-open"]:before{content:"\\E8B3"}[data-icon="up-open"]:before{content:"\\E8B5"}[data-icon="down-open-mini"]:before{content:"\\E8B6"}[data-icon="left-open-mini"]:before{content:"\\E833"}[data-icon="right-open-mini"]:before{content:"\\E832"}[data-icon="up-open-mini"]:before{content:"\\E83C"}[data-icon="down-open-big"]:before{content:"\\E844"}[data-icon="left-open-big"]:before{content:"\\E855"}[data-icon="right-open-big"]:before{content:"\\E85B"}[data-icon="up-open-big"]:before{content:"\\E862"}[data-icon="down"]:before{content:"\\E869"}[data-icon="left"]:before{content:"\\E870"}[data-icon="right"]:before{content:"\\E877"}[data-icon="up"]:before{content:"\\E87F"}[data-icon="down-dir"]:before{content:"\\E886"}[data-icon="left-dir"]:before{content:"\\E88E"}[data-icon="right-dir"]:before{content:"\\E895"}[data-icon="up-dir"]:before{content:"\\E89D"}[data-icon="down-bold"]:before{content:"\\E8A4"}[data-icon="left-bold"]:before{content:"\\E8BA"}[data-icon="right-bold"]:before{content:"\\E8B9"}[data-icon="up-bold"]:before{content:"\\E8B8"}[data-icon="down-thin"]:before{content:"\\E8B7"}[data-icon="left-thin"]:before{content:"\\E82C"}[data-icon="note-beamed"]:before{content:"\\E801"}[data-icon="up-thin"]:before{content:"\\E83D"}[data-icon="cw"]:before{content:"\\E856"}[data-icon="arrows-ccw"]:before{content:"\\E85A"}[data-icon="level-down"]:before{content:"\\E863"}[data-icon="level-up"]:before{content:"\\E868"}[data-icon="shuffle"]:before{content:"\\E871"}[data-icon="loop"]:before{content:"\\E876"}[data-icon="switch"]:before{content:"\\E880"}[data-icon="play"]:before{content:"\\E885"}[data-icon="stop"]:before{content:"\\E88F"}[data-icon="pause"]:before{content:"\\E894"}[data-icon="record"]:before{content:"\\E89E"}[data-icon="to-end"]:before{content:"\\E8A3"}[data-icon="to-start"]:before{content:"\\E8BB"}[data-icon="fast-forward"]:before{content:"\\E8BC"}[data-icon="fast-backward"]:before{content:"\\E8BD"}[data-icon="progress-0"]:before{content:"\\E8BE"}[data-icon="progress-1"]:before{content:"\\E82D"}[data-icon="progress-2"]:before{content:"\\E830"}[data-icon="progress-3"]:before{content:"\\E83E"}[data-icon="target"]:before{content:"\\E857"}[data-icon="palette"]:before{content:"\\E847"}[data-icon="list"]:before{content:"\\E859"}[data-icon="list-add"]:before{content:"\\E864"}[data-icon="signal"]:before{content:"\\E867"}[data-icon="trophy"]:before{content:"\\1F3C6"}[data-icon="battery"]:before{content:"\\1F50B"}[data-icon="back-in-time"]:before{content:"\\E881"}[data-icon="monitor"]:before{content:"\\E884"}[data-icon="mobile"]:before{content:"\\E890"}[data-icon="network"]:before{content:"\\E893"}[data-icon="cd"]:before{content:"\\E89F"}[data-icon="inbox"]:before{content:"\\E8A2"}[data-icon="install"]:before{content:"\\E8C2"}[data-icon="globe"]:before{content:"\\E8C1"}[data-icon="cloud"]:before{content:"\\2601"}[data-icon="cloud-thunder"]:before{content:"\\E8BF"}[data-icon="flash"]:before{content:"\\E82E"}[data-icon="moon"]:before{content:"\\E82F"}[data-icon="flight"]:before{content:"\\E83F"}[data-icon="paper-plane"]:before{content:"\\E845"}[data-icon="leaf"]:before{content:"\\E846"}[data-icon="lifebuoy"]:before{content:"\\E858"}[data-icon="mouse"]:before{content:"\\1F401"}[data-icon="briefcase"]:before{content:"\\1F4BC"}[data-icon="suitcase"]:before{content:"\\E873"}[data-icon="dot"]:before{content:"\\E874"}[data-icon="dot-2"]:before{content:"\\E882"}[data-icon="dot-3"]:before{content:"\\E883"}[data-icon="brush"]:before{content:"\\E891"}[data-icon="magnet"]:before{content:"\\E892"}[data-icon="infinity"]:before{content:"\\221E"}[data-icon="erase"]:before{content:"\\E8A1"}[data-icon="chart-pie"]:before{content:"\\E8C3"}[data-icon="chart-line"]:before{content:"\\E8C4"}[data-icon="chart-bar"]:before{content:"\\E8C5"}[data-icon="chart-area"]:before{content:"\\E8C6"}[data-icon="tape"]:before{content:"\\E8C7"}[data-icon="graduation-cap"]:before{content:"\\E8D2"}[data-icon="language"]:before{content:"\\E8D4"}[data-icon="ticket"]:before{content:"\\1F3AB"}[data-icon="water"]:before{content:"\\E8DA"}[data-icon="droplet"]:before{content:"\\1F4A7"}[data-icon="air"]:before{content:"\\E8E3"}[data-icon="credit-card"]:before{content:"\\E8EA"}[data-icon="floppy"]:before{content:"\\E8EB"}[data-icon="clipboard"]:before{content:"\\1F4CB"}[data-icon="megaphone"]:before{content:"\\E8F3"}[data-icon="database"]:before{content:"\\E8FA"}[data-icon="drive"]:before{content:"\\E8FC"}[data-icon="bucket"]:before{content:"\\E902"}[data-icon="thermometer"]:before{content:"\\E903"}[data-icon="key"]:before{content:"\\1F511"}[data-icon="flow-cascade"]:before{content:"\\E90B"}[data-icon="flow-branch"]:before{content:"\\E912"}[data-icon="flow-tree"]:before{content:"\\E913"}[data-icon="flow-line"]:before{content:"\\E91A"}[data-icon="flow-parallel"]:before{content:"\\E8C8"}[data-icon="rocket"]:before{content:"\\1F680"}[data-icon="gauge"]:before{content:"\\E8D3"}[data-icon="traffic-cone"]:before{content:"\\E8D8"}[data-icon="cc"]:before{content:"\\E8DB"}[data-icon="cc-by"]:before{content:"\\E8E1"}[data-icon="cc-nc"]:before{content:"\\E8E4"}[data-icon="cc-nc-eu"]:before{content:"\\E8E9"}[data-icon="cc-nc-jp"]:before{content:"\\E8EC"}[data-icon="cc-sa"]:before{content:"\\E8F1"}[data-icon="cc-nd"]:before{content:"\\E8F4"}[data-icon="cc-pd"]:before{content:"\\E8F9"}[data-icon="cc-zero"]:before{content:"\\E8FB"}[data-icon="cc-share"]:before{content:"\\E901"}[data-icon="cc-remix"]:before{content:"\\E904"}[data-icon="github"]:before{content:"\\E909"}[data-icon="github-circled"]:before{content:"\\E90C"}[data-icon="flickr"]:before{content:"\\E911"}[data-icon="flickr-circled"]:before{content:"\\E914"}[data-icon="vimeo"]:before{content:"\\E919"}[data-icon="vimeo-circled"]:before{content:"\\E8C9"}[data-icon="twitter"]:before{content:"\\E8D0"}[data-icon="twitter-circled"]:before{content:"\\E8D6"}[data-icon="facebook"]:before{content:"\\E8D7"}[data-icon="facebook-circled"]:before{content:"\\E8DC"}[data-icon="facebook-squared"]:before{content:"\\E8E0"}[data-icon="gplus"]:before{content:"\\E8E5"}[data-icon="gplus-circled"]:before{content:"\\E8E8"}[data-icon="pinterest"]:before{content:"\\E8ED"}[data-icon="pinterest-circled"]:before{content:"\\E8F0"}[data-icon="tumblr"]:before{content:"\\E8F5"}[data-icon="tumblr-circled"]:before{content:"\\E8F8"}[data-icon="linkedin"]:before{content:"\\E8FD"}[data-icon="linkedin-circled"]:before{content:"\\E900"}[data-icon="dribbble"]:before{content:"\\E905"}[data-icon="dribbble-circled"]:before{content:"\\E908"}[data-icon="stumbleupon"]:before{content:"\\E90D"}[data-icon="stumbleupon-circled"]:before{content:"\\E910"}[data-icon="lastfm"]:before{content:"\\E915"}[data-icon="lastfm-circled"]:before{content:"\\E918"}[data-icon="rdio"]:before{content:"\\E8CA"}[data-icon="rdio-circled"]:before{content:"\\E8D5"}[data-icon="spotify"]:before{content:"\\E8CF"}[data-icon="spotify-circled"]:before{content:"\\E8CE"}[data-icon="qq"]:before{content:"\\E8DD"}[data-icon="instagram"]:before{content:"\\E8DF"}[data-icon="dropbox"]:before{content:"\\E8E6"}[data-icon="evernote"]:before{content:"\\E8E7"}[data-icon="flattr"]:before{content:"\\E8EE"}[data-icon="skype"]:before{content:"\\E8EF"}[data-icon="skype-circled"]:before{content:"\\E8F6"}[data-icon="renren"]:before{content:"\\E8F7"}[data-icon="sina-weibo"]:before{content:"\\E8FE"}[data-icon="paypal"]:before{content:"\\E8FF"}[data-icon="picasa"]:before{content:"\\E906"}[data-icon="soundcloud"]:before{content:"\\E907"}[data-icon="mixi"]:before{content:"\\E90E"}[data-icon="behance"]:before{content:"\\E90F"}[data-icon="google-circles"]:before{content:"\\E916"}[data-icon="vkontakte"]:before{content:"\\E917"}[data-icon="smashing"]:before{content:"\\E8CB"}[data-icon="sweden"]:before{content:"\\E8CC"}[data-icon="db-shape"]:before{content:"\\E8CD"}[data-icon="bitbucket"]:before{content:"\\20AC"}*,*:before,*:after{position:relative;outline:none !important;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:grayscale}html{-webkit-text-size-adjust:100%;font-size:14px}body{min-width:960px}.block{display:block !important}.inline{display:inline !important}.inline-block{display:inline-block !important}.invisible{visibility:hidden}.hidden{display:none}.blocklink{display:block;color:inherit;text-decoration:none !important}.blocklink:hover,.blocklink:focus{color:inherit}.fill{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.full{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed}.cover{display:block;position:absolute;left:0;top:0;bottom:0;right:0}.clear:after{display:table;content:\'\';clear:both}.clean{margin:0;padding:0;border:0;list-style-type:none}.clean li{margin:0;padding:0;list-style-type:none}.trim>*:first-child{margin-top:0}.trim>*:last-child{margin-bottom:0}.snug>*{margin-top:.5rem;margin-bottom:.5rem}.snug>*:first-child{margin-top:0}.snug>*:last-child{margin-bottom:0}.compact *{margin-top:0;margin-bottom:0}.component{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.transitions{-webkit-transition:all .5s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .5s cubic-bezier(0.25, 0, 0, 1);transition:all .5s cubic-bezier(0.25, 0, 0, 1)}.margin,.margin-top{margin-top:2em}.margin,.margin-bottom{margin-bottom:2em}.margin-small,.margin-small-top{margin-top:1em}.margin-small,.margin-small-bottom{margin-bottom:1em}.padding,.padding-top{padding-top:2em}.padding,.padding-bottom{margin-bottom:2em}.flush,.flush-top{margin-top:0 !important}.flush,.flush-bottom{margin-bottom:0 !important}@media print{html{font-size:9pt}html body{-webkit-print-color-adjust:exact}html a{white-space:nowrap}html,body{background:white !important}font-size:9pt;body{-webkit-print-color-adjust:exact}a{white-space:nowrap}@page{margin:0.75in 1in}}@media screen{html.print{font-size:9pt;font-size:9pt;background:#f9fafb}html.print body{-webkit-print-color-adjust:exact}html.print a{white-space:nowrap}html.print body{-webkit-print-color-adjust:exact}html.print a{white-space:nowrap}html.print body{padding:0.75in 1in;margin:.5in auto;max-width:8.5in;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);height:auto}}.text-red{color:#ff694b !important}.text-red-dark{color:#ff4f39 !important}.text-red-darker{color:#ff3c2b !important}.text-red-darkest{color:#ff2d21 !important}.text-red-light{color:#ff845e !important}.text-red-lighter{color:#ffa376 !important}.text-red-lightest{color:#ffba94 !important}.text-red-highlight{color:#fff5f4 !important}.bg-red{background-color:#ff694b !important}.bg-red-dark{background-color:#ff4f39 !important}.bg-red-darker{background-color:#ff3c2b !important}.bg-red-darkest{background-color:#ff2d21 !important}.bg-red-light{background-color:#ff845e !important}.bg-red-lighter{background-color:#ffa376 !important}.bg-red-lightest{background-color:#ffba94 !important}.bg-red-highlight{background-color:#fff5f4 !important}.text-orange{color:#ff694b !important}.text-orange-dark{color:#ff4f39 !important}.text-orange-darker{color:#ff3c2b !important}.text-orange-darkest{color:#ff2d21 !important}.text-orange-light{color:#ff845e !important}.text-orange-lighter{color:#ffa376 !important}.text-orange-lightest{color:#ffba94 !important}.text-orange-highlight{color:#fff5f4 !important}.bg-orange{background-color:#ff694b !important}.bg-orange-dark{background-color:#ff4f39 !important}.bg-orange-darker{background-color:#ff3c2b !important}.bg-orange-darkest{background-color:#ff2d21 !important}.bg-orange-light{background-color:#ff845e !important}.bg-orange-lighter{background-color:#ffa376 !important}.bg-orange-lightest{background-color:#ffba94 !important}.bg-orange-highlight{background-color:#fff5f4 !important}.text-yellow{color:#fc0 !important}.text-yellow-dark{color:#ffc000 !important}.text-yellow-darker{color:#ffb100 !important}.text-yellow-darkest{color:#ff9e00 !important}.text-yellow-light{color:#ffd900 !important}.text-yellow-lighter{color:#ffe300 !important}.text-yellow-lightest{color:#ffea00 !important}.text-yellow-highlight{color:#fff8db !important}.bg-yellow{background-color:#fc0 !important}.bg-yellow-dark{background-color:#ffc000 !important}.bg-yellow-darker{background-color:#ffb100 !important}.bg-yellow-darkest{background-color:#ff9e00 !important}.bg-yellow-light{background-color:#ffd900 !important}.bg-yellow-lighter{background-color:#ffe300 !important}.bg-yellow-lightest{background-color:#ffea00 !important}.bg-yellow-highlight{background-color:#fff8db !important}.text-green{color:#7ec631 !important}.text-green-dark{color:#5fb825 !important}.text-green-darker{color:#48a71c !important}.text-green-darkest{color:#369115 !important}.text-green-light{color:#9ed53e !important}.text-green-lighter{color:#b7e04e !important}.text-green-lightest{color:#c9e862 !important}.text-green-highlight{color:#f3faec !important}.bg-green{background-color:#7ec631 !important}.bg-green-dark{background-color:#5fb825 !important}.bg-green-darker{background-color:#48a71c !important}.bg-green-darkest{background-color:#369115 !important}.bg-green-light{background-color:#9ed53e !important}.bg-green-lighter{background-color:#b7e04e !important}.bg-green-lightest{background-color:#c9e862 !important}.bg-green-highlight{background-color:#f3faec !important}.text-blue{color:#0bb !important}.text-blue-dark{color:#0aa !important}.text-blue-darker{color:#009595 !important}.text-blue-darkest{color:#007b7b !important}.text-blue-light{color:#0cc !important}.text-blue-lighter{color:#00d9d9 !important}.text-blue-lightest{color:#00e3e3 !important}.text-blue-highlight{color:#edfafa !important}.bg-blue{background-color:#0bb !important}.bg-blue-dark{background-color:#0aa !important}.bg-blue-darker{background-color:#009595 !important}.bg-blue-darkest{background-color:#007b7b !important}.bg-blue-light{background-color:#0cc !important}.bg-blue-lighter{background-color:#00d9d9 !important}.bg-blue-lightest{background-color:#00e3e3 !important}.bg-blue-highlight{background-color:#edfafa !important}.text-purple{color:#7f6cc5 !important}.text-purple-dark{color:#6051b7 !important}.text-purple-darker{color:#483da5 !important}.text-purple-darkest{color:#362e8f !important}.text-purple-light{color:#9f87d4 !important}.text-purple-lighter{color:#b7a5df !important}.text-purple-lightest{color:#c9bce7 !important}.text-purple-highlight{color:#f8f7fc !important}.bg-purple{background-color:#7f6cc5 !important}.bg-purple-dark{background-color:#6051b7 !important}.bg-purple-darker{background-color:#483da5 !important}.bg-purple-darkest{background-color:#362e8f !important}.bg-purple-light{background-color:#9f87d4 !important}.bg-purple-lighter{background-color:#b7a5df !important}.bg-purple-lightest{background-color:#c9bce7 !important}.bg-purple-highlight{background-color:#f8f7fc !important}.text-navy{color:#005e7a !important}.text-navy-dark{color:#00475c !important}.text-navy-darker{color:#003645 !important}.text-navy-darkest{color:#002934 !important}.text-navy-light{color:#007699 !important}.text-navy-lighter{color:#0094b3 !important}.text-navy-lightest{color:#00afc6 !important}.text-navy-highlight{color:#f4f8f9 !important}.bg-navy{background-color:#005e7a !important}.bg-navy-dark{background-color:#00475c !important}.bg-navy-darker{background-color:#003645 !important}.bg-navy-darkest{background-color:#002934 !important}.bg-navy-light{background-color:#007699 !important}.bg-navy-lighter{background-color:#0094b3 !important}.bg-navy-lightest{background-color:#00afc6 !important}.bg-navy-highlight{background-color:#f4f8f9 !important}.text-gray{color:#8b969e !important}.text-gray-dark{color:#6e7c86 !important}.text-gray-darker{color:#535d68 !important}.text-gray-darkest{color:#3f464e !important}.text-gray-light{color:#a8b1b7 !important}.text-gray-lighter{color:#bec5c9 !important}.text-gray-lightest{color:#cfd4d7 !important}.text-gray-highlight{color:#f7f7f8 !important}.bg-gray{background-color:#8b969e !important}.bg-gray-dark{background-color:#6e7c86 !important}.bg-gray-darker{background-color:#535d68 !important}.bg-gray-darkest{background-color:#3f464e !important}.bg-gray-light{background-color:#a8b1b7 !important}.bg-gray-lighter{background-color:#bec5c9 !important}.bg-gray-lightest{background-color:#cfd4d7 !important}.bg-gray-highlight{background-color:#f7f7f8 !important}.text-success{color:#5fb825 !important}.text-danger{color:#ff4f39 !important}.text-warning{color:#ff821d !important}.text-info{color:#0aa !important}.text-white{color:white !important}.text-light{color:#8b969e !important}.text-lighter{color:#bec5c9 !important}.text-dark{color:#313539 !important}.text-inherit{color:inherit}.text-inherit:hover,.text-inherit:focus{color:inherit}.text-silver{color:#f0f2f4 !important}.text-silver-light{color:#f9fafb !important}.text-silver-dark{color:#e9ebef !important}.text-silver-darker{color:#e4e6eb !important}.text-silver-darkest{color:#dee0e6 !important}.bg-silver{background-color:#f0f2f4}.bg-silver-light{background-color:#f9fafb !important}.bg-silver-dark{background-color:#e9ebef !important}.bg-silver-darker{background-color:#e4e6eb !important}.bg-silver-darkest{background-color:#dee0e6 !important}.bg-transparent{background-color:transparent !important}.faint{opacity:.5}.fainter{opacity:.3}.inherit{color:inherit}::selection{background:#0bb;color:#fff}::-moz-selection{background:#0bb;color:#fff}img{display:block;max-width:100%}[data-bg]{background:transparent no-repeat 50% 50%/cover}body{font-size:1rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;background:#f9fafb;color:#5e666c}*,dt,dd{line-height:calc(1em + .15 * (5rem - 1em));text-align:inherit}a,.a{cursor:pointer;color:#0bb;text-decoration:none}a:hover,a:focus,.a:hover,.a:focus{text-decoration:none;color:#009595}i,.i,em,.em{font-style:oblique}b,.b,strong,.strong{font-weight:bold}mark{background:#edfafa;color:#313539;padding:.1em 0;border-radius:4px}.normal{font-weight:normal !important}iframe{margin:0;display:block}label{margin:.5em 0;font-weight:normal}hr{margin:3em 0;border-top:1px solid rgba(0,30,60,0.075)}blockquote,ul,ol,p,.field,.table{margin:1.5em 0}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{margin:1.5em 0 .5em}ul,ol{padding-left:1.25em}dl dt+dd{margin-bottom:1em}blockquote{padding:0;font-size:inherit}small,.small,.text-small{font-size:.9285714286rem}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{font-weight:bold;letter-spacing:.01em}h5,.h5,h6,.h6,.text-base{font-size:1rem}h4,.h4,.text-large{font-size:1.1428571429rem}h3,.h3,.text-larger{font-size:1.2857142857rem}h1,.h1,h2,.h2,.text-largest{font-size:1.7142857143rem}.text-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.text-mono{font-family:"Monaco",monospace;font-size:.8571428571rem !important}.text-smallcaps{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#8b969e;font-weight:bold;font-style:normal}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 961px){.text-center-large{text-align:center !important}.text-right-large{text-align:right !important}.text-left-large{text-align:left !important}}@media (max-width: 960px){.text-center-small{text-align:center !important}.text-right-small{text-align:right !important}.text-left-small{text-align:left !important}}@media (min-width: 401px){.nowrap{white-space:nowrap}}.condensed{white-space:nowrap;width:1px}.ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wrap{white-space:normal}.break{word-break:break-word}.buffer,.card,.title,.tokens,.settings{margin-top:20px;margin-bottom:20px}*:first-child{margin-top:0}*:last-child{margin-bottom:0}.margin-right{margin-right:.75em !important}.margin-left{margin-left:.75em !important}.margin-right-small{margin-right:.375em !important}.margin-left-small{margin-left:.375em !important}.icn{font-size:16px;top:-1px;width:1em;height:1em;margin:auto;display:inline-block;vertical-align:middle;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.icn use{fill:currentColor}.icn-md{width:1.5em;height:1.5em;-webkit-transform:scale(1.5);transform:scale(1.5);-webkit-transform-origin:0 0;transform-origin:0 0}.icn-lg{width:2em;height:2em;-webkit-transform:scale(2);transform:scale(2);-webkit-transform-origin:0 0;transform-origin:0 0}.glyph{top:-1px;margin:auto;font-size:24px;display:inline-block;vertical-align:middle;transform:translate(0, 0);width:1em;height:1em}.glyph use{fill:none;stroke-width:2;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;transform-origin:0 0;shape-rendering:geometricPrecision}.glyph-solid use{fill:currentColor;stroke-width:0 !important}.glyph-middle,.btn .glyph{margin-top:-10px;margin-bottom:-8px}.glyph-before{margin-right:.25em;margin-left:-.125em}.glyph-after{margin-left:.25em;margin-right:-.125em}.glyph-sm{font-size:16px}.glyph-sm use{stroke-width:3}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-sm use{stroke-width:2.25}}.glyph-md{font-size:36px}.glyph-md use{stroke-width:1.3333333333}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-md use{stroke-width:1}}.glyph-lg{font-size:48px}.glyph-lg use{stroke-width:1}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-lg use{stroke-width:.75}}.glyph-xl{font-size:72px}.glyph-xl use{stroke-width:.6666666667}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-xl use{stroke-width:.5}}.glyph-check,.glyph-radio{font-size:18px;border:2px solid currentColor;opacity:.25}.glyph-check use,.glyph-radio use{opacity:0}:hover>.glyph-check,:focus ~ .glyph-check,:hover>.glyph-radio,:focus ~ .glyph-radio{opacity:.5}:checked ~ .glyph-check,:disabled ~ .glyph-check,[type="checkbox"]:indeterminate ~ .glyph-check,:checked ~ .glyph-radio,:disabled ~ .glyph-radio,[type="checkbox"]:indeterminate ~ .glyph-radio{border-color:transparent !important}:checked ~ .glyph-check,[type="checkbox"]:indeterminate ~ .glyph-check,:checked ~ .glyph-radio,[type="checkbox"]:indeterminate ~ .glyph-radio{opacity:1;background:#0bb}:checked ~ .glyph-check use,[type="checkbox"]:indeterminate ~ .glyph-check use,:checked ~ .glyph-radio use,[type="checkbox"]:indeterminate ~ .glyph-radio use{opacity:1;color:white}:checked:hover ~ .glyph-check,:checked:focus ~ .glyph-check,[type="checkbox"]:indeterminate:hover ~ .glyph-check,[type="checkbox"]:indeterminate:focus ~ .glyph-check,:hover>:checked ~ .glyph-check,:focus>:checked ~ .glyph-check,:checked:hover ~ .glyph-radio,:checked:focus ~ .glyph-radio,[type="checkbox"]:indeterminate:hover ~ .glyph-radio,[type="checkbox"]:indeterminate:focus ~ .glyph-radio,:hover>:checked ~ .glyph-radio,:focus>:checked ~ .glyph-radio{background:#009595}[type="checkbox"]:indeterminate ~ .glyph-check use,[type="checkbox"]:indeterminate ~ .glyph-radio use{fill:currentColor;stroke:transparent}:disabled ~ .glyph-check,:checked:disabled ~ .glyph-check,[type="checkbox"]:indeterminate:disabled ~ .glyph-check,:disabled ~ .glyph-radio,:checked:disabled ~ .glyph-radio,[type="checkbox"]:indeterminate:disabled ~ .glyph-radio{opacity:.5;background:#dee0e6;color:inherit}:disabled ~ .glyph-check use,:checked:disabled ~ .glyph-check use,[type="checkbox"]:indeterminate:disabled ~ .glyph-check use,:disabled ~ .glyph-radio use,:checked:disabled ~ .glyph-radio use,[type="checkbox"]:indeterminate:disabled ~ .glyph-radio use{color:inherit}.glyph-radio{border-radius:50%}.glyph-radio use{fill:currentColor}.glyph-check{border-radius:4px}select:not([multiple]).form-control{background-size:.75em .75em;background-repeat:no-repeat;background-image:url('+r(n(215))+');background-position:calc( 100% - .875em ) 50%;padding-top:0;padding-bottom:0;padding-right:2.25em}select:not([multiple]).form-control::-ms-value{background:transparent !important}.bootstrap-select button{background-repeat:no-repeat;background-size:auto 1em;background-position:calc(100% - 1.25rem + 5px) 50%;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cG9seWxpbmUgcG9pbnRzPSI0LjUgNiA4IDkuNSAxMS41IDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwOTRiMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==");padding-right:2em !important;-moz-appearance:none}.bootstrap-select button.input-sm,.bootstrap-select .input-group-sm>button.form-control,.bootstrap-select .input-group-sm>button.input-group-addon,.bootstrap-select .input-group-sm>.input-group-btn>button.btn,.bootstrap-select button.sm{background-position:calc(100% - .875rem + 5px) 50%}.bootstrap-select button.input-lg,.bootstrap-select .input-group-lg>button.form-control,.bootstrap-select .input-group-lg>button.input-group-addon,.bootstrap-select .input-group-lg>.input-group-btn>button.btn,.bootstrap-select button.lg{background-position:calc(100% - 1.875rem + 5px) 50%}.bootstrap-select button::-ms-expand{display:none}.btn input,.form-control input,.option input{position:absolute;opacity:0}.option{margin:0}.option:not(.input-group-addon){padding-left:0 !important}.option-flush{padding-left:0 !important;padding-right:0 !important}.option.input-group-addon{padding-left:.875rem;padding-right:.875rem}.option .glyph{margin-right:.375em}/*! jQuery UI - v1.12.1 - 2017-01-20\n* http://jqueryui.com\n* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item:focus,.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-widget{font-size:1rem;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);background:#fff;border-radius:4px;z-index:1050 !important;border-width:0}.ui-widget .ui-state-active,.ui-widget .ui-state-focus{margin:0;background:#0bb}.ui-widget .ui-state-active,.ui-widget .ui-state-active *,.ui-widget .ui-state-focus,.ui-widget .ui-state-focus *{color:#fff}.ui-widget.ui-datepicker{padding-left:10px;padding-right:10px;-webkit-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);-o-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);-webkit-transform:scale(0.75);transform:scale(0.75);-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, transform}.ui-widget.ui-datepicker.ui-widget-active{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}.ui-widget.ui-datepicker .ui-datepicker-prev{top:2px !important;left:2px !important}.ui-widget.ui-datepicker .ui-datepicker-next{top:2px !important;right:2px !important}.ui-widget.ui-datepicker .ui-datepicker-month{font-weight:bold}.ui-widget.ui-datepicker tr>* a{text-align:center}.ui-widget.ui-datepicker td a{padding:.3em}.ui-widget.ui-autocomplete{padding:5px 0;max-height:240px;overflow:auto}.ui-widget.ui-autocomplete li{border:0;padding:0}.ui-widget.ui-autocomplete li .ui-menu-item-wrapper{padding:.4464285714rem 1.25rem}.ui-widget.ui-autocomplete li *{margin-top:0;margin-bottom:0}.ui-widget.ui-autocomplete li+li.ui-separator{margin-top:5px;padding-top:6px;border-top:1px solid rgba(0,30,60,0.075)}.ui-widget .ui-icon{overflow:visible}.ui-widget .ui-icon-circle-triangle-w:after,.ui-widget .ui-icon-circle-triangle-e:after{content:\'\';display:block;border:5px solid;border-top-color:transparent;border-bottom-color:transparent;position:absolute;width:0;height:0;top:5px;left:0}.ui-widget .ui-icon-circle-triangle-w:after{border-left-color:transparent}.ui-widget .ui-icon-circle-triangle-e:after{border-right-color:transparent;left:5px}.ui-sortable-handle,.ui-draggable-handle{cursor:move}tr.ui-sortable-helper{box-shadow:0 7px 10px rgba(0,0,0,0.2);border-radius:4px;display:table;z-index:2}tr.ui-sortable-helper>td,tr.ui-sortable-helper th{border:0 !important}tr.ui-sortable-helper>td:first-child,tr.ui-sortable-helper th:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}tr.ui-sortable-helper>td:last-child,tr.ui-sortable-helper th:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.ui-draggable-dragging,.ui-sortable-sorting{z-index:5001 !important}.ui-resizable-n,.ui-resizable-s{cursor:ns-resize}.ui-resizable-e,.ui-resizable-w{cursor:ew-resize}.caret,.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border:0 !important;margin-left:0;width:auto;height:auto;display:inline}.caret:after,.dropup .caret:after,.navbar-fixed-bottom .dropdown .caret:after{font-family:"arrows";text-transform:none;font-style:normal;font-weight:normal;line-height:.5;content:" c "}.dropdown-menu{-webkit-transform:scale(0.75);transform:scale(0.75);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);-o-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);font-size:1rem;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);border-radius:4px !important;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, transform;padding:5px 0 !important;pointer-events:none;font-style:normal;border-width:0;display:block;left:-9999px;max-height:50vh;min-width:100%;max-width:240px;overflow:auto;opacity:0;margin:0}.dropdown-menu>li>a{margin:0;display:block;padding:.25em 15px}.dropdown-menu>li>a>*{margin:0}.dropdown-menu>li>a em{font-style:oblique;color:#8b969e}.dropdown-menu>li>a [data-icon]{margin-right:.25em}.dropdown-menu .divider{margin:5px 0}.dropdown-menu .dropdown-header{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;padding:.5em 15px !important}.dropdown-menu-lg>li>*{padding-top:.5em;padding-bottom:.5em}.dropdown-menu-right{left:auto;right:9999px}.dropdown.open>.dropdown-menu{pointer-events:auto;-webkit-transform:scale(1);transform:scale(1);opacity:1;left:0}.dropdown.open>.dropdown-menu-right{right:0;left:auto}.dropdown{cursor:pointer}.dropdown-inline{display:inline-block}.form-group>*:not(:last-child),.form-inline>*:not(:last-child){margin-right:1em}.form-horizontal .form-group>*:not(:last-child),.form-horizontal .form-inline>*:not(:last-child){margin-right:0}.form-group>* label,.form-inline>* label{vertical-align:middle;margin:.6785714286rem 0}.help-block{display:block;color:#8b969e;font-style:oblique;font-weight:normal;font-size:.9285714286rem;margin:.25em 0}.help-block:empty{display:none}.help-block p{margin:0;display:inline}.help-block-inline{display:inline}.form-group-lg{font-size:1.1428571429rem}.form-footer{margin:2em 0}.form-footer:first-child{margin-top:0}.form-footer:last-child{margin-bottom:0}.btn{border-width:0;margin:0;cursor:pointer;overflow:hidden;text-overflow:ellipsis;font-size:1rem;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);height:2.8571428571rem;line-height:1.5 !important;font-weight:bold;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03)}.btn-red{color:#fff;background-color:#ff694b;border-color:#ff694b}.btn-red:focus,.btn-red.focus{color:#fff;background-color:#ff3c2b}.btn-red:hover{color:#fff;background-color:#ff3c2b}.btn-red:active,.btn-red.active,.open>.btn-red.dropdown-toggle{color:#fff;background-color:#ff3c2b}.btn-red:active:hover,.btn-red:active:focus,.btn-red:active.focus,.btn-red.active:hover,.btn-red.active:focus,.btn-red.active.focus,.open>.btn-red.dropdown-toggle:hover,.open>.btn-red.dropdown-toggle:focus,.open>.btn-red.dropdown-toggle.focus{color:#fff;background-color:#ff3c2b}.btn-red:active,.btn-red.active,.open>.btn-red.dropdown-toggle{background-image:none}.btn-red.disabled:hover,.btn-red.disabled:focus,.btn-red.disabled.focus,.btn-red[disabled]:hover,.btn-red[disabled]:focus,.btn-red[disabled].focus,fieldset[disabled] .btn-red:hover,fieldset[disabled] .btn-red:focus,fieldset[disabled] .btn-red.focus{background-color:#ff694b;border-color:#ff694b}.btn-red .badge{color:#ff694b;background-color:#fff}.btn-blue{color:#fff;background-color:#0bb;border-color:#0bb}.btn-blue:focus,.btn-blue.focus{color:#fff;background-color:#009595}.btn-blue:hover{color:#fff;background-color:#009595}.btn-blue:active,.btn-blue.active,.open>.btn-blue.dropdown-toggle{color:#fff;background-color:#009595}.btn-blue:active:hover,.btn-blue:active:focus,.btn-blue:active.focus,.btn-blue.active:hover,.btn-blue.active:focus,.btn-blue.active.focus,.open>.btn-blue.dropdown-toggle:hover,.open>.btn-blue.dropdown-toggle:focus,.open>.btn-blue.dropdown-toggle.focus{color:#fff;background-color:#009595}.btn-blue:active,.btn-blue.active,.open>.btn-blue.dropdown-toggle{background-image:none}.btn-blue.disabled:hover,.btn-blue.disabled:focus,.btn-blue.disabled.focus,.btn-blue[disabled]:hover,.btn-blue[disabled]:focus,.btn-blue[disabled].focus,fieldset[disabled] .btn-blue:hover,fieldset[disabled] .btn-blue:focus,fieldset[disabled] .btn-blue.focus{background-color:#0bb;border-color:#0bb}.btn-blue .badge{color:#0bb;background-color:#fff}.btn-navy{color:#fff;background-color:#005e7a;border-color:#005e7a}.btn-navy:focus,.btn-navy.focus{color:#fff;background-color:#003645}.btn-navy:hover{color:#fff;background-color:#003645}.btn-navy:active,.btn-navy.active,.open>.btn-navy.dropdown-toggle{color:#fff;background-color:#003645}.btn-navy:active:hover,.btn-navy:active:focus,.btn-navy:active.focus,.btn-navy.active:hover,.btn-navy.active:focus,.btn-navy.active.focus,.open>.btn-navy.dropdown-toggle:hover,.open>.btn-navy.dropdown-toggle:focus,.open>.btn-navy.dropdown-toggle.focus{color:#fff;background-color:#003645}.btn-navy:active,.btn-navy.active,.open>.btn-navy.dropdown-toggle{background-image:none}.btn-navy.disabled:hover,.btn-navy.disabled:focus,.btn-navy.disabled.focus,.btn-navy[disabled]:hover,.btn-navy[disabled]:focus,.btn-navy[disabled].focus,fieldset[disabled] .btn-navy:hover,fieldset[disabled] .btn-navy:focus,fieldset[disabled] .btn-navy.focus{background-color:#005e7a;border-color:#005e7a}.btn-navy .badge{color:#005e7a;background-color:#fff}.btn-green{color:#fff;background-color:#7ec631;border-color:#7ec631}.btn-green:focus,.btn-green.focus{color:#fff;background-color:#48a71c}.btn-green:hover{color:#fff;background-color:#48a71c}.btn-green:active,.btn-green.active,.open>.btn-green.dropdown-toggle{color:#fff;background-color:#48a71c}.btn-green:active:hover,.btn-green:active:focus,.btn-green:active.focus,.btn-green.active:hover,.btn-green.active:focus,.btn-green.active.focus,.open>.btn-green.dropdown-toggle:hover,.open>.btn-green.dropdown-toggle:focus,.open>.btn-green.dropdown-toggle.focus{color:#fff;background-color:#48a71c}.btn-green:active,.btn-green.active,.open>.btn-green.dropdown-toggle{background-image:none}.btn-green.disabled:hover,.btn-green.disabled:focus,.btn-green.disabled.focus,.btn-green[disabled]:hover,.btn-green[disabled]:focus,.btn-green[disabled].focus,fieldset[disabled] .btn-green:hover,fieldset[disabled] .btn-green:focus,fieldset[disabled] .btn-green.focus{background-color:#7ec631;border-color:#7ec631}.btn-green .badge{color:#7ec631;background-color:#fff}.btn-orange{color:#fff;background-color:#ff694b;border-color:#ff694b}.btn-orange:focus,.btn-orange.focus{color:#fff;background-color:#ff3c2b}.btn-orange:hover{color:#fff;background-color:#ff3c2b}.btn-orange:active,.btn-orange.active,.open>.btn-orange.dropdown-toggle{color:#fff;background-color:#ff3c2b}.btn-orange:active:hover,.btn-orange:active:focus,.btn-orange:active.focus,.btn-orange.active:hover,.btn-orange.active:focus,.btn-orange.active.focus,.open>.btn-orange.dropdown-toggle:hover,.open>.btn-orange.dropdown-toggle:focus,.open>.btn-orange.dropdown-toggle.focus{color:#fff;background-color:#ff3c2b}.btn-orange:active,.btn-orange.active,.open>.btn-orange.dropdown-toggle{background-image:none}.btn-orange.disabled:hover,.btn-orange.disabled:focus,.btn-orange.disabled.focus,.btn-orange[disabled]:hover,.btn-orange[disabled]:focus,.btn-orange[disabled].focus,fieldset[disabled] .btn-orange:hover,fieldset[disabled] .btn-orange:focus,fieldset[disabled] .btn-orange.focus{background-color:#ff694b;border-color:#ff694b}.btn-orange .badge{color:#ff694b;background-color:#fff}.btn-yellow{color:#fff;background-color:#fc0;border-color:#fc0}.btn-yellow:focus,.btn-yellow.focus{color:#fff;background-color:#ffb100}.btn-yellow:hover{color:#fff;background-color:#ffb100}.btn-yellow:active,.btn-yellow.active,.open>.btn-yellow.dropdown-toggle{color:#fff;background-color:#ffb100}.btn-yellow:active:hover,.btn-yellow:active:focus,.btn-yellow:active.focus,.btn-yellow.active:hover,.btn-yellow.active:focus,.btn-yellow.active.focus,.open>.btn-yellow.dropdown-toggle:hover,.open>.btn-yellow.dropdown-toggle:focus,.open>.btn-yellow.dropdown-toggle.focus{color:#fff;background-color:#ffb100}.btn-yellow:active,.btn-yellow.active,.open>.btn-yellow.dropdown-toggle{background-image:none}.btn-yellow.disabled:hover,.btn-yellow.disabled:focus,.btn-yellow.disabled.focus,.btn-yellow[disabled]:hover,.btn-yellow[disabled]:focus,.btn-yellow[disabled].focus,fieldset[disabled] .btn-yellow:hover,fieldset[disabled] .btn-yellow:focus,fieldset[disabled] .btn-yellow.focus{background-color:#fc0;border-color:#fc0}.btn-yellow .badge{color:#fc0;background-color:#fff}.btn-purple{color:#fff;background-color:#7f6cc5;border-color:#7f6cc5}.btn-purple:focus,.btn-purple.focus{color:#fff;background-color:#483da5}.btn-purple:hover{color:#fff;background-color:#483da5}.btn-purple:active,.btn-purple.active,.open>.btn-purple.dropdown-toggle{color:#fff;background-color:#483da5}.btn-purple:active:hover,.btn-purple:active:focus,.btn-purple:active.focus,.btn-purple.active:hover,.btn-purple.active:focus,.btn-purple.active.focus,.open>.btn-purple.dropdown-toggle:hover,.open>.btn-purple.dropdown-toggle:focus,.open>.btn-purple.dropdown-toggle.focus{color:#fff;background-color:#483da5}.btn-purple:active,.btn-purple.active,.open>.btn-purple.dropdown-toggle{background-image:none}.btn-purple.disabled:hover,.btn-purple.disabled:focus,.btn-purple.disabled.focus,.btn-purple[disabled]:hover,.btn-purple[disabled]:focus,.btn-purple[disabled].focus,fieldset[disabled] .btn-purple:hover,fieldset[disabled] .btn-purple:focus,fieldset[disabled] .btn-purple.focus{background-color:#7f6cc5;border-color:#7f6cc5}.btn-purple .badge{color:#7f6cc5;background-color:#fff}.btn-white{color:#484e53;background-color:#fff;border-color:#fff}.btn-white:focus,.btn-white.focus{color:#484e53;background-color:#f9fafb}.btn-white:hover{color:#484e53;background-color:#f9fafb}.btn-white:active,.btn-white.active,.open>.btn-white.dropdown-toggle{color:#484e53;background-color:#f9fafb}.btn-white:active:hover,.btn-white:active:focus,.btn-white:active.focus,.btn-white.active:hover,.btn-white.active:focus,.btn-white.active.focus,.open>.btn-white.dropdown-toggle:hover,.open>.btn-white.dropdown-toggle:focus,.open>.btn-white.dropdown-toggle.focus{color:#484e53;background-color:#f9fafb}.btn-white:active,.btn-white.active,.open>.btn-white.dropdown-toggle{background-image:none}.btn-white.disabled:hover,.btn-white.disabled:focus,.btn-white.disabled.focus,.btn-white[disabled]:hover,.btn-white[disabled]:focus,.btn-white[disabled].focus,fieldset[disabled] .btn-white:hover,fieldset[disabled] .btn-white:focus,fieldset[disabled] .btn-white.focus{background-color:#fff;border-color:#fff}.btn-white .badge{color:#fff;background-color:#484e53}.btn-default{color:#484e53;background-color:#f0f2f4;border-color:#f0f2f4}.btn-default:focus,.btn-default.focus{color:#484e53;background-color:#e9ebef}.btn-default:hover{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#484e53;background-color:#e9ebef}.btn-default:active:hover,.btn-default:active:focus,.btn-default:active.focus,.btn-default.active:hover,.btn-default.active:focus,.btn-default.active.focus,.open>.btn-default.dropdown-toggle:hover,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle.focus{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus{background-color:#f0f2f4;border-color:#f0f2f4}.btn-default .badge{color:#f0f2f4;background-color:#484e53}.btn-clear,.btn-text,.btn-link{background:transparent !important}.btn-text,.btn.text-inherit{color:inherit}.btn-text:hover,.btn-text:focus,.btn.text-inherit:hover,.btn.text-inherit:focus{color:inherit}.btn[class*="btn-highlight"],.btn-default,.btn-clear,.btn-text,.btn-link{box-shadow:none}.btn-highlight-info{color:#0aa;background-color:#edfafa;border-color:transparent}.btn-highlight-info:focus,.btn-highlight-info.focus{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:hover{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:active,.btn-highlight-info.active,.open>.btn-highlight-info.dropdown-toggle{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:active:hover,.btn-highlight-info:active:focus,.btn-highlight-info:active.focus,.btn-highlight-info.active:hover,.btn-highlight-info.active:focus,.btn-highlight-info.active.focus,.open>.btn-highlight-info.dropdown-toggle:hover,.open>.btn-highlight-info.dropdown-toggle:focus,.open>.btn-highlight-info.dropdown-toggle.focus{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:active,.btn-highlight-info.active,.open>.btn-highlight-info.dropdown-toggle{background-image:none}.btn-highlight-info.disabled:hover,.btn-highlight-info.disabled:focus,.btn-highlight-info.disabled.focus,.btn-highlight-info[disabled]:hover,.btn-highlight-info[disabled]:focus,.btn-highlight-info[disabled].focus,fieldset[disabled] .btn-highlight-info:hover,fieldset[disabled] .btn-highlight-info:focus,fieldset[disabled] .btn-highlight-info.focus{background-color:#edfafa;border-color:transparent}.btn-highlight-info .badge{color:#edfafa;background-color:#0aa}.btn-highlight-success{color:#48a71c;background-color:#f3faec;border-color:transparent}.btn-highlight-success:focus,.btn-highlight-success.focus{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:hover{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:active,.btn-highlight-success.active,.open>.btn-highlight-success.dropdown-toggle{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:active:hover,.btn-highlight-success:active:focus,.btn-highlight-success:active.focus,.btn-highlight-success.active:hover,.btn-highlight-success.active:focus,.btn-highlight-success.active.focus,.open>.btn-highlight-success.dropdown-toggle:hover,.open>.btn-highlight-success.dropdown-toggle:focus,.open>.btn-highlight-success.dropdown-toggle.focus{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:active,.btn-highlight-success.active,.open>.btn-highlight-success.dropdown-toggle{background-image:none}.btn-highlight-success.disabled:hover,.btn-highlight-success.disabled:focus,.btn-highlight-success.disabled.focus,.btn-highlight-success[disabled]:hover,.btn-highlight-success[disabled]:focus,.btn-highlight-success[disabled].focus,fieldset[disabled] .btn-highlight-success:hover,fieldset[disabled] .btn-highlight-success:focus,fieldset[disabled] .btn-highlight-success.focus{background-color:#f3faec;border-color:transparent}.btn-highlight-success .badge{color:#f3faec;background-color:#48a71c}.btn-highlight-danger{color:#ff694b;background-color:#fff5f4;border-color:transparent}.btn-highlight-danger:focus,.btn-highlight-danger.focus{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:hover{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:active,.btn-highlight-danger.active,.open>.btn-highlight-danger.dropdown-toggle{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:active:hover,.btn-highlight-danger:active:focus,.btn-highlight-danger:active.focus,.btn-highlight-danger.active:hover,.btn-highlight-danger.active:focus,.btn-highlight-danger.active.focus,.open>.btn-highlight-danger.dropdown-toggle:hover,.open>.btn-highlight-danger.dropdown-toggle:focus,.open>.btn-highlight-danger.dropdown-toggle.focus{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:active,.btn-highlight-danger.active,.open>.btn-highlight-danger.dropdown-toggle{background-image:none}.btn-highlight-danger.disabled:hover,.btn-highlight-danger.disabled:focus,.btn-highlight-danger.disabled.focus,.btn-highlight-danger[disabled]:hover,.btn-highlight-danger[disabled]:focus,.btn-highlight-danger[disabled].focus,fieldset[disabled] .btn-highlight-danger:hover,fieldset[disabled] .btn-highlight-danger:focus,fieldset[disabled] .btn-highlight-danger.focus{background-color:#fff5f4;border-color:transparent}.btn-highlight-danger .badge{color:#fff5f4;background-color:#ff694b}.btn-highlight-warning{color:#ff6316;background-color:#fff6ec;border-color:transparent}.btn-highlight-warning:focus,.btn-highlight-warning.focus{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:hover{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:active,.btn-highlight-warning.active,.open>.btn-highlight-warning.dropdown-toggle{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:active:hover,.btn-highlight-warning:active:focus,.btn-highlight-warning:active.focus,.btn-highlight-warning.active:hover,.btn-highlight-warning.active:focus,.btn-highlight-warning.active.focus,.open>.btn-highlight-warning.dropdown-toggle:hover,.open>.btn-highlight-warning.dropdown-toggle:focus,.open>.btn-highlight-warning.dropdown-toggle.focus{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:active,.btn-highlight-warning.active,.open>.btn-highlight-warning.dropdown-toggle{background-image:none}.btn-highlight-warning.disabled:hover,.btn-highlight-warning.disabled:focus,.btn-highlight-warning.disabled.focus,.btn-highlight-warning[disabled]:hover,.btn-highlight-warning[disabled]:focus,.btn-highlight-warning[disabled].focus,fieldset[disabled] .btn-highlight-warning:hover,fieldset[disabled] .btn-highlight-warning:focus,fieldset[disabled] .btn-highlight-warning.focus{background-color:#fff6ec;border-color:transparent}.btn-highlight-warning .badge{color:#fff6ec;background-color:#ff6316}.btn-lg,.btn-group-lg>.btn{height:4.2857142857rem;font-size:1.1428571429rem}.btn-sm,.btn-group-sm>.btn{height:2.2857142857rem;font-size:.9285714286rem}.btn-xs,.btn-group-xs>.btn{padding:.1607142857rem .625rem;height:1.7142857143rem;font-size:.9285714286rem}.btn-md{padding:.3928571429rem 1.5rem;height:3.7142857143rem;font-size:1rem}.btn-pill{border-radius:200px }.btn-icon{padding-left:0;padding-right:0;width:2.8571428571rem;min-width:2.8571428571rem}.btn-icon.btn-xs,.btn-group-xs>.btn-icon.btn{width:1.7142857143rem;min-width:1.7142857143rem}.btn-icon.btn-sm,.btn-group-sm>.btn-icon.btn{width:2.2857142857rem;min-width:2.2857142857rem}.btn-icon.btn-md{width:3.7142857143rem;min-width:3.7142857143rem}.btn-icon.btn-lg,.btn-group-lg>.btn-icon.btn{width:4.2857142857rem;min-width:4.2857142857rem}.btn-icon .icon,.btn-icon .glyph{margin:0;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.btn-icon-slim{min-width:0}.btn-block,.btn-slim,.btn-link,.btn-text{padding-left:0;padding-right:0}.btn.active,.btn:active{-webkit-box-shadow:none;box-shadow:none}.btn.disabled,.btn[disabled]{opacity:.375}.btn-file:before{content:attr(data-placeholder)}.btn-file[data-value]:before{content:attr(data-placeholder) " "}.btn-file[data-value]:after{content:"(" attr(data-value) ")"}.btn-file input{position:absolute;opacity:0}.btn-inliner .btn{margin-bottom:.3rem}.btn-toolbar{margin-left:-2px;margin-right:-2px;font-size:0}.btn-toolbar .btn-group{margin-left:2px;margin-right:2px;float:none}.form-control,.input-group-addon,.form-control-static,.form-grid .form-row .form-label label,.option{line-height:1.5 !important;border-width:0 !important;font-size:1rem}.form-group-lg .form-control,.input-group-lg .form-control,.form-group-lg .input-group-addon,.input-group-lg .input-group-addon,.form-group-lg .form-control-static,.form-group-lg .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-lg label,.input-group-lg .form-control-static,.input-group-lg .form-grid .form-row .form-label label,.form-grid .form-row .form-label .input-group-lg label,.form-group-lg .option,.input-group-lg .option{font-size:1.1428571429rem}.form-group-sm .form-control,.input-group-sm .form-control,.form-group-sm .input-group-addon,.input-group-sm .input-group-addon,.form-group-sm .form-control-static,.form-group-sm .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-sm label,.input-group-sm .form-control-static,.input-group-sm .form-grid .form-row .form-label label,.form-grid .form-row .form-label .input-group-sm label,.form-group-sm .option,.input-group-sm .option{font-size:.9285714286rem}.form-control.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-btn>.form-control.btn,.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn,.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-lg>label.form-control,.input-group-lg>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-lg>label.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-lg>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-lg,.option.input-lg,.input-group-lg>.option.form-control,.input-group-lg>.option.input-group-addon,.input-group-lg>.input-group-btn>.option.btn{font-size:1.1428571429rem}.form-control.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-btn>.form-control.btn,.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-sm>label.form-control,.input-group-sm>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-sm>label.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-sm>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-sm,.option.input-sm,.input-group-sm>.option.form-control,.input-group-sm>.option.input-group-addon,.input-group-sm>.input-group-btn>.option.btn{font-size:.9285714286rem}.form-control::-ms-expand,.input-group-addon::-ms-expand,.form-control-static::-ms-expand,.form-grid .form-row .form-label label::-ms-expand,.option::-ms-expand{display:none}.form-control::-ms-clear,.input-group-addon::-ms-clear,.form-control-static::-ms-clear,.form-grid .form-row .form-label label::-ms-clear,.option::-ms-clear{display:none}.form-control::-ms-value,.input-group-addon::-ms-value,.form-control-static::-ms-value,.form-grid .form-row .form-label label::-ms-value,.option::-ms-value{background:transparent !important}.form-control,.form-control-static,.form-grid .form-row .form-label label,textarea.form-control,.option{height:2.8571428571rem;line-height:1.5 !important;padding:.6785714286rem 1.25rem;border:0}.form-control.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-btn>.form-control.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-sm>label.form-control,.input-group-sm>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-sm>label.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-sm>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-sm,textarea.form-control.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>.input-group-btn>textarea.form-control.btn,.option.input-sm,.input-group-sm>.option.form-control,.input-group-sm>.option.input-group-addon,.input-group-sm>.input-group-btn>.option.btn{height:2.2857142857rem;min-height:2.2857142857rem;padding:.4464285714rem .875rem}.form-control.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-btn>.form-control.btn,.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-lg>label.form-control,.input-group-lg>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-lg>label.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-lg>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-lg,textarea.form-control.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>.input-group-btn>textarea.form-control.btn,.option.input-lg,.input-group-lg>.option.form-control,.input-group-lg>.option.input-group-addon,.input-group-lg>.input-group-btn>.option.btn{height:4.2857142857rem;min-height:4.2857142857rem;padding:1.2857142857rem 1.875rem}.form-control.input-md,.form-control-static.input-md,.form-grid .form-row .form-label label.input-md,textarea.form-control.input-md,.option.input-md{height:2.2857142857rem;min-height:2.2857142857rem;padding:.3928571429rem .875rem}textarea.form-control:not(.form-control-height){height:6em}.form-control{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-transition-property:color,background-color,box-shadow;transition-property:color,background-color,box-shadow;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;text-overflow:ellipsis;box-shadow:none;color:#484e53}.form-control::-moz-placeholder{color:#a8b1b7;opacity:1}.form-control:-ms-input-placeholder{color:#a8b1b7}.form-control::-webkit-input-placeholder{color:#a8b1b7}.form-control.input-short{width:64px}.form-control.input-medium{width:240px}.form-control.input-long{width:100%}.form-control.input-pill{border-radius:200px !important}.form-control.input-dark{background-color:#00475c;color:white}.form-control.input-dark:hover,.form-control.input-dark:focus{background-color:white;color:#313539}.form-control.input-dark::-moz-placeholder{color:#00afc6;opacity:1}.form-control.input-dark:-ms-input-placeholder{color:#00afc6}.form-control.input-dark::-webkit-input-placeholder{color:#00afc6}.form-control.input-transparent{background-color:transparent}.form-control.input-white{background-color:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03)}.form-control:not(:disabled):not(.disabled):hover{background-color:#e9ebef}.form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#5e666c;opacity:1}.form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#5e666c}.form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#5e666c}.form-control:not(:disabled):not(.disabled):hover.input-white{background-color:#f9fafb}.form-control:focus{color:#484e53 !important;background-color:white !important;box-shadow:0 0 0 1px #0bb,0 15px 15px -7.5px rgba(0,0,0,0.15);border-radius:4px !important;z-index:3}.form-control:focus::-moz-placeholder{color:#8b969e !important;opacity:1}.form-control:focus:-ms-input-placeholder{color:#8b969e !important}.form-control:focus::-webkit-input-placeholder{color:#8b969e !important}.form-control[type="number"]:not(.spinner){-moz-appearance:textfield}.form-control[type="number"]:not(.spinner)::-webkit-inner-spin-button,.form-control[type="number"]:not(.spinner)::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-control-static,.form-grid .form-row .form-label label{display:block;height:auto !important;padding-left:0 !important;padding-right:0 !important;color:#484e53}.has-info .input-group-addon,.has-info .form-control{border-color:transparent !important;background-color:#edfafa;box-shadow:none}.has-info .input-group-addon::-moz-placeholder,.has-info .form-control::-moz-placeholder{color:#80d5d5;opacity:1}.has-info .input-group-addon:-ms-input-placeholder,.has-info .form-control:-ms-input-placeholder{color:#80d5d5}.has-info .input-group-addon::-webkit-input-placeholder,.has-info .form-control::-webkit-input-placeholder{color:#80d5d5}.has-info .input-group-addon,.has-info .form-control{color:#0aa}.has-info .form-control:not(:disabled):not(.disabled):hover{background-color:#def7f7;color:#007b7b}.has-info .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#40bfbf;opacity:1}.has-info .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#40bfbf}.has-info .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#40bfbf}.has-info .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #0bb,0 15px 15px -7.5px rgba(0,0,0,0.15)}.has-success .input-group-addon,.has-success .form-control{border-color:transparent !important;background-color:#f3faec;box-shadow:none}.has-success .input-group-addon::-moz-placeholder,.has-success .form-control::-moz-placeholder{color:#a4d38e;opacity:1}.has-success .input-group-addon:-ms-input-placeholder,.has-success .form-control:-ms-input-placeholder{color:#a4d38e}.has-success .input-group-addon::-webkit-input-placeholder,.has-success .form-control::-webkit-input-placeholder{color:#a4d38e}.has-success .input-group-addon,.has-success .form-control{color:#48a71c}.has-success .form-control:not(:disabled):not(.disabled):hover{background-color:#e9f7dc;color:#297610}.has-success .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#76bd55;opacity:1}.has-success .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#76bd55}.has-success .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#76bd55}.has-success .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #7ec631,0 15px 15px -7.5px rgba(0,0,0,0.15)}.has-warning .input-group-addon,.has-warning .form-control{border-color:transparent !important;background-color:#fff6ec;box-shadow:none}.has-warning .input-group-addon::-moz-placeholder,.has-warning .form-control::-moz-placeholder{color:#ffb18b;opacity:1}.has-warning .input-group-addon:-ms-input-placeholder,.has-warning .form-control:-ms-input-placeholder{color:#ffb18b}.has-warning .input-group-addon::-webkit-input-placeholder,.has-warning .form-control::-webkit-input-placeholder{color:#ffb18b}.has-warning .input-group-addon,.has-warning .form-control{color:#ff6316}.has-warning .form-control:not(:disabled):not(.disabled):hover{background-color:#ffefdc;color:#ff390d}.has-warning .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#ff8a50;opacity:1}.has-warning .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#ff8a50}.has-warning .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#ff8a50}.has-warning .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #ff9b26,0 15px 15px -7.5px rgba(0,0,0,0.15)}.has-danger .input-group-addon,.has-danger .form-control,.has-error .input-group-addon,.has-error .form-control{border-color:transparent !important;background-color:#fff5f4;box-shadow:none}.has-danger .input-group-addon::-moz-placeholder,.has-danger .form-control::-moz-placeholder,.has-error .input-group-addon::-moz-placeholder,.has-error .form-control::-moz-placeholder{color:#ffb4a5;opacity:1}.has-danger .input-group-addon:-ms-input-placeholder,.has-danger .form-control:-ms-input-placeholder,.has-error .input-group-addon:-ms-input-placeholder,.has-error .form-control:-ms-input-placeholder{color:#ffb4a5}.has-danger .input-group-addon::-webkit-input-placeholder,.has-danger .form-control::-webkit-input-placeholder,.has-error .input-group-addon::-webkit-input-placeholder,.has-error .form-control::-webkit-input-placeholder{color:#ffb4a5}.has-danger .input-group-addon,.has-danger .form-control,.has-error .input-group-addon,.has-error .form-control{color:#ff694b}.has-danger .form-control:not(:disabled):not(.disabled):hover,.has-error .form-control:not(:disabled):not(.disabled):hover{background-color:#ffedeb;color:#ff3c2b}.has-danger .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder,.has-error .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#ff8f78;opacity:1}.has-danger .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder,.has-error .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#ff8f78}.has-danger .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder,.has-error .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#ff8f78}.has-danger .form-control:not(:disabled):not(.disabled):focus,.has-error .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #ff694b,0 15px 15px -7.5px rgba(0,0,0,0.15)}.input-group-rounded>*:first-child,.input-group-rounded>*:first-child.input-group-btn .btn{border-top-left-radius:100px;border-bottom-left-radius:100px}.input-group-rounded>*:last-child,.input-group-rounded>*:last-child.input-group-btn .btn{border-top-right-radius:100px;border-bottom-right-radius:100px}.input-group-addon{color:#8b969e}.table tr.success{box-shadow:inset rgba(0,30,60,0.03) 0 0 #7ec631}.table tr.info{box-shadow:inset rgba(0,30,60,0.03) 0 0 #0bb}.table tr.warning{box-shadow:inset rgba(0,30,60,0.03) 0 0 #fc0}.table tr.danger{box-shadow:inset rgba(0,30,60,0.03) 0 0 #ff694b}.table-flush th:first-child,.table-flush td:first-child{padding-left:0}.table-flush th:last-child,.table-flush td:last-child{padding-right:0}.table-justified th:last-child,.table-justified td:last-child{text-align:right}th.sm,td.sm{width:1px;white-space:nowrap}th.flush-left,td.flush-left{padding-left:0 !important}th.flush-right,td.flush-right{padding-right:0 !important}.table:not(.table-borderless)>thead>tr>*{border-width:1px}thead>tr>*,.table-label{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;color:#8b969e}.table-borderless tr *{border-width:0 !important}.table tbody+tbody{border-top-width:1px}.table-compact th *,.table-compact td *{margin-top:0;margin-bottom:0}.table-middle th,.table-middle td{vertical-align:middle !important}.table-large{font-size:1rem}.table-large tbody th,.table-large tbody td,.table-large>td,.table-large>th{padding-top:1rem !important;padding-bottom:1rem !important}.card .table th,.card .table td{padding-left:1.875rem;padding-right:1.875rem}.table-condensed{font-size:.9285714286rem}.table-responsive{border-radius:4px}@media (min-width: 961px){.table-responsive{overflow:visible}}@media (max-width: 960px){.table-responsive{overflow:auto}html.touch .table-responsive{overflow:scroll;-webkit-overflow-scrolling:touch}}@media (min-width: 961px){.table-alignment{margin-left:-1.25rem;margin-right:-1.25rem}}.table-linked{overflow:hidden}.table-linked a{z-index:3}.table-linked .table-link{width:0 !important;padding:0 !important;vertical-align:top !important}.table-linked .table-link .table-anchor{position:absolute;display:block;height:100%;width:1000vw;z-index:2}.table{display:table}.table-caption{display:table-caption}.table-colgroup{display:table-column-group}.table-thead{display:table-header-group}.table-tfoot{display:table-footer-group}.table-tbody{display:table-row-group}.table-td{display:table-cell}.table-col{display:table-column}.table-tr{display:table-row}.table-sticky{box-shadow:0 1px 0 #ecedee;z-index:2;position:sticky;top:0;background:#f9fafb}tbody .table-sticky{top:28px;background:white}.table .secondary td,.table .secondary th{background:#f9fafb;color:#8b969e}.nav-stacked .nav-stacked{font-size:.9285714286rem}.nav-stacked .nav-stacked>li{margin-left:1em}.nav-stacked .nav-stacked>li>a{color:#8b969e}.nav-tabs{border:0;box-shadow:0 1px 0 rgba(0,30,60,0.075);color:#313539;display:flex;flex-direction:row;flex-wrap:wrap}.nav-tabs:before,.nav-tabs:after{display:none}.nav-tabs>li{float:none;flex:0 0 auto;background:transparent !important;margin:0}.nav-tabs>li:not(:first-child){margin-left:.75em}.nav-tabs>li:not(:last-child){margin-right:.75em}.nav-tabs>li>a,.nav-tabs>li>span{display:block;line-height:1.5;background:transparent !important;padding:1.2857142857rem 0;margin:0 !important;border:0 !important;border-radius:0}.nav-tabs>li.active{box-shadow:0 1px 0 #0bb}.nav-tabs>li.active a{color:#313539}.nav-tabs-sm>li>a,.nav-tabs-sm>li>span{font-size:.9285714286rem;padding:.6785714286rem 0}.nav-tabs-fill>li{flex:1 0 auto;margin:0 !important}.nav-tabs-fill>li>a,.nav-tabs-fill>li>span{text-align:center;padding-left:20px;padding-right:20px}html.touch .nav-tabs{flex-wrap:nowrap;overflow:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch}.card-tabs .nav-tabs{background:#f0f2f4;border-radius:4px 4px 0 0}.card-tabs .nav-tabs>li:first-child{border-top-left-radius:4px}.card-tabs .nav-tabs>li:last-child{border-top-right-radius:4px}.card-tabs .nav-tabs>li.active{box-shadow:0 1px 0 white !important;background:white !important}.tab-content>.tab-pane{height:0;display:block;overflow:hidden}.tab-content>.tab-pane:not(.active){padding:0}.tab-content>.tab-pane.active{height:auto;overflow:visible}.nav-pills>li>a{font-size:.9285714286rem;padding:.4464285714rem 1em}.alert{border:0;margin:1.5em 0}.alert:first-child{margin-top:0}.alert:last-child{margin-bottom:0}.alert strong{color:inherit;font-style:normal}.alert-default{background:#f9fafb;color:#8b969e}.alert-flush{margin:0}.alert-trim{padding-left:0;padding-right:0}.alert-link{font-weight:bold !important}.avatar{display:inline-block;vertical-align:middle}.avatar img{display:block;border-radius:50%;height:28px;width:28px}.avatar-square img{border-radius:4px}.avatar-sm img{height:20px;width:20px}kbd,code,pre{font-size:.8571428571rem}pre{padding:0;overflow:auto;border-width:0;resize:vertical;white-space:pre;padding:1.2857142857rem 1.875rem;border-radius:4px;font-size:.8571428571rem;-moz-tab-size:2;-o-tab-size:2;tab-size:2;margin:1em 0}pre:first-child{margin-top:0}pre:last-child{margin-bottom:0}.panel-code pre{border-radius:0;padding:40px 50px}@media (max-width: 960px){.panel-code pre{padding-left:7.5vw;padding-right:7.5vw}}.panel-footer .panel-code pre,.panel-body:last-child .panel-code pre{border-bottom-right-radius:4px;border-bottom-left-radius:4px}kbd{box-shadow:none}figure.highlight{tab-size:2}.code,code{font-family:"Monaco",monospace;font-size:.8571428571rem;font-weight:normal;padding:0}.highlight pre{background:#005e7a;color:white;overflow:auto}html.touch .highlight pre{overflow:scroll;-webkit-overflow-scrolling:touch}.highlight code{white-space:pre;display:block}.highlight code *{font-style:normal}.highlight .c{color:#00afc6;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .gd .x{color:#000000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .gi .x{color:#000000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kt{color:#445588}.highlight .m{color:#b7a5df}.highlight .n{color:#00d9d9}.highlight .s{color:#9ed53e}.highlight .na{color:#00afc6}.highlight .nb{color:#00d9d9}.highlight .nl{color:#00afc6}.highlight .nc{color:#fc0}.highlight .nd{color:#fc0}.highlight .no{color:#00afc6}.highlight .ni{color:#fc0}.highlight .ne{color:#990000}.highlight .nf{color:#990000}.highlight .nn{color:#555}.highlight .nt{color:#00d9d9}.highlight .nv{color:teal}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#ff694b}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}.highlight .lineno{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none}.highlight .lineno::-moz-selection{background-color:transparent}.highlight .lineno::selection{background-color:transparent}.label{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);display:inline-block;text-align:inherit;padding:0;border:0}.label-default{color:#8b969e}.label-success{color:#5fb825}.label-info{color:#0aa}.label-warning{color:#ff821d}.label-danger{color:#ff4f39}.label-inherit{color:inherit}.label+.label:not(.block){margin-left:1.5em}a.label:hover.label-default,a.label:focus.label-default{color:#3f464e}a.label:hover.label-success,a.label:focus.label-success{color:#369115}a.label:hover.label-info,a.label:focus.label-info{color:#007b7b}a.label:hover.label-warning,a.label:focus.label-warning{color:#ff4b11}a.label:hover.label-danger,a.label:focus.label-danger{color:#ff2d21}.badge{border-radius:200px ;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;line-height:1.8em;height:1.8em;min-width:1.8em;text-align:center;padding:0 7px;text-indent:1px;border:0}.badge-success{background:#7ec631;color:white}.badge-warning{background:#ff9b26;color:white}.badge-danger{background:#ff694b;color:white}.list-group-item .badge{float:right}.active .badge{color:#fff;background:#009797}.badge-digit{padding:0 2px}.badge-corner{position:absolute;top:0;right:0;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}.badges{font-size:0;display:block}.badges .badge{margin:2px 4px 2px 0}.progress{height:6px;overflow:visible;margin:1em 0}.progress:first-child{margin-top:0}.progress:last-child{margin-bottom:0}.progress,.progress .progress-bar{border-radius:100px;box-shadow:none}.tooltip{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);padding:0 !important}.tooltip,.tooltip .tooltip-inner,.tooltip .tooltip-arrow{border-radius:4px}.tooltip .tooltip-arrow{-webkit-transform:rotate(45deg);transform:rotate(45deg);background:#007699;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);border-width:0;height:12px;width:12px}.tooltip.top .tooltip-arrow{margin-bottom:-3px}.tooltip.bottom .tooltip-arrow{margin-top:-3px}.tooltip.left .tooltip-arrow{margin-right:-3px}.tooltip.right .tooltip-arrow{margin-left:-3px}.tooltip .tooltip-inner{font-size:.9285714286rem;padding:.6785714286rem 1.25rem;margin:0 !important;font-style:normal}.popover{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);font-size:1rem;border-width:0 !important;color:#fff;padding:0}.popover,.popover .popover-content,.popover .arrow{border-radius:4px}.popover .popover-content{border-radius:4px;margin:0 !important}.popover .popover-title,.popover .popover-content{padding:1.2857142857rem 1.875rem;background:#ff694b}.popover .arrow{width:20px;height:20px;background:#ff694b;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.popover .arrow:after{display:none}.popover.top .arrow{margin:-10px;margin-bottom:-4px}.popover.bottom .arrow{margin:-10px;margin-top:-4px}.popover.left .arrow{margin:-10px;margin-right:-4px}.popover.right .arrow{margin:-10px;margin-left:-4px}.modal .modal-dialog{margin:auto;display:table;width:768px;max-width:100vw;height:100vh}.modal .modal-dialog.modal-sm{width:400px}.modal .modal-dialog.modal-lg{width:960px}.modal .modal-content{display:table-cell;vertical-align:middle;box-shadow:none}.modal.fade .modal-dialog{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-transform:translate(0, -20px);transform:translate(0, -20px)}.modal.fade.in .modal-dialog{-webkit-transform:translate(0, 0);transform:translate(0, 0)}.modal-backdrop{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed;z-index:1040}@media (max-width: 960px){.modal-content:not(.modal-content-flush){padding:7.5vw}}.panel{border-width:0;display:flex;flex-direction:column;display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px;margin:1em 0}.panel:first-child{margin-top:0}.panel:last-child{margin-bottom:0}.panel>*{border-color:transparent !important;flex:0 0 auto}.panel>*:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.panel>*:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel>*,.panel>*>.panel-fill{padding:20px 30px}.panel>*.panel-flush,.panel>*>.panel-fill.panel-flush{padding:0 !important}.panel>*.panel-flush-top,.panel>*>.panel-fill.panel-flush-top{padding-top:0 !important}.panel>*.panel-flush-bottom,.panel>*>.panel-fill.panel-flush-bottom{padding-bottom:0 !important}.panel-large>*,.panel-large>*>.panel-fill{padding:40px 50px}@media (max-width: 960px){.panel-large>*,.panel-large>*>.panel-fill{padding:5vw 7.5vw}}.panel>.panel-body{flex:1 0 auto}.panel>.panel-body>*:first-child{margin-top:0}.panel>.panel-body>*:last-child{margin-bottom:0}.panel>.panel-body>.panel-fill{display:block;position:absolute;width:100%;height:100%;top:0;left:0;overflow:auto}html.touch .panel>.panel-body>.panel-fill{overflow:scroll;-webkit-overflow-scrolling:touch}h1.panel-title,.h1.panel-title{font-size:1.7142857143rem}h2.panel-title,.h2.panel-title{font-size:1.7142857143rem}h3.panel-title,.h3.panel-title{font-size:1.2857142857rem}h4.panel-title,.h4.panel-title{font-size:1.1428571429rem}h5.panel-title,.h5.panel-title{font-size:1rem}h6.panel-title,.h6.panel-title{font-size:1rem}.list-group{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.list-group .list-group-item{margin:0;border-width:0 0 1px 0}.list-group .list-group-item *{margin-top:0;margin-bottom:0}.list-group .list-group-item:last-child{border-width:0}.well{padding:1.2857142857rem 1.875rem;box-shadow:none;border:0}.well>*:first-child{margin-top:0}.well>*:last-child{margin-bottom:0}.row{margin:0}.container{padding-left:0;padding-right:0}@media (min-width: 961px){.container{width:90%;max-width:1320px}}@media (max-width: 960px){.container{width:auto}}@media (min-width: 961px){.row-reverse>[class*="col-lg-"]{float:right}}@media (max-width: 960px){[class*="col-lg-"]+[class*="col-lg-"]{margin-top:30px;margin-bottom:30px}[class*="col-lg-"]+[class*="col-lg-"]:first-child{margin-top:0}[class*="col-lg-"]+[class*="col-lg-"]:last-child{margin-bottom:0}}@media (max-width: 768px){[class*="col-md-"]+[class*="col-md-"]{margin-top:30px;margin-bottom:30px}[class*="col-md-"]+[class*="col-md-"]:first-child{margin-top:0}[class*="col-md-"]+[class*="col-md-"]:last-child{margin-bottom:0}}@media (max-width: 540px){[class*="col-sm-"]+[class*="col-sm-"]{margin-top:30px;margin-bottom:30px}[class*="col-sm-"]+[class*="col-sm-"]:first-child{margin-top:0}[class*="col-sm-"]+[class*="col-sm-"]:last-child{margin-bottom:0}}.carousel .carousel-control{background:transparent}.carousel .carousel-control:after{width:1em;display:block;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto;height:1.6em;font-size:2rem}.carousel .carousel-indicators{bottom:10px}.carousel .carousel-indicators li{background:#fff;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);margin:0 2px;opacity:.25;height:8px;width:8px;border:0}.carousel .carousel-indicators li.active{opacity:1}.carousel .carousel-inner .item img{width:100%}.thumbnail{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.thumbnail img{width:100%}.thumbnail .caption *{margin-top:0;margin-bottom:0}.range{-webkit-appearance:none;margin:0;width:100%;outline:none !important}.range::-moz-focus-outer{border:0}.range::-webkit-slider-runnable-track{width:100%;height:6px;cursor:pointer;box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-moz-range-track{width:100%;height:6px;cursor:pointer;box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-ms-track{width:100%;height:6px;cursor:pointer;box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);background:transparent;border-width:5px 0}.range::-ms-fill-lower{box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-ms-fill-upper{box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-webkit-slider-thumb{box-shadow:none;border:0;height:16px;width:16px;border-radius:200px;background:#0bb;cursor:pointer;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-appearance:none;margin-top:-5px}.range::-moz-range-thumb{box-shadow:none;border:0;height:16px;width:16px;border-radius:200px;background:#0bb;cursor:pointer;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-ms-thumb{box-shadow:none;border:0;height:16px;width:16px;border-radius:200px;background:#0bb;cursor:pointer;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}@supports (-ms-ime-align: auto){.range::-ms-thumb{margin-top:1px}}.range:hover::-webkit-slider-thumb{background:#0aa}.range:focus::-webkit-slider-thumb{background:#0aa}.range:hover::-moz-range-thumb{background:#0aa}.range:focus::-moz-range-thumb{background:#0aa}.range:hover::-ms-thumb{background:#0aa}.range:focus::-ms-thumb{background:#0aa}.range:hover::-webkit-slider-runnable-track{background:#e9ebef}.range:focus::-webkit-slider-runnable-track{background:#e9ebef}.range:hover::-moz-range-track{background:#e9ebef}.range:focus::-moz-range-track{background:#e9ebef}.range:hover::-ms-fill-lower{background:#e9ebef}.range:focus::-ms-fill-lower{background:#e9ebef}.range:hover::-ms-fill-upper{background:#e9ebef}.range:focus::-ms-fill-upper{background:#e9ebef}.breadcrumb-flush{padding:0}.breadcrumb>li:first-child .glyph{position:absolute;right:100%;top:50%;-webkit-transform:translate(-33%, -50%);transform:translate(-33%, -50%)}.breadcrumb>li:before{font-weight:normal;padding:0 .5em;opacity:.5}.card{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px;display:flex;flex-direction:column}.card>.card-header,.card>.card-footer{flex:0 0 auto}.card>.card-body{flex:1 0 auto}.card.active{box-shadow:0 0 0 1px #0bb,0 15px 15px -7.5px rgba(0,0,0,0.15)}.card-footer,.card-header,.card-body,.card-padding{padding:20px 30px}.card-expand{margin:-20px -30px}.card-header h1,.card-header .h1,.card-header h2,.card-header .h2,.card-header h3,.card-header .h3,.card-header h4,.card-header .h4,.card-header h5,.card-header .h5,.card-header h6,.card-header .h6{margin:0}.card-flush-top{padding-top:0}.card-flush-bottom{padding-bottom:0}.card-flush-vertical{padding-top:0;padding-bottom:0}.card-flush{padding:0}.card-sm{padding:8px 12px}.card-control{display:block}.card-control .btn,.card-control .form-control,.card-control .input-group-addon,.card-control .form-control-static,.card-control .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-control label{display:block;margin:0 !important;height:4.2857142857rem;padding:1.3928571429rem 30px;border-radius:0;width:100%}.card-control .form-control{background:white}.card-control .form-control:not(:disabled):not(.disabled):hover{background-color:#f0f2f4}.card-control .btn,.card-control .input-group-addon{text-align:center}.card-footer .card-control:first-child .btn,.card-footer .card-control:first-child .form-control,.card-footer .card-control:first-child .input-group-addon,.card-footer .card-control:first-child .form-control-static,.card-footer .card-control:first-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-footer .card-control:first-child label{border-bottom-left-radius:4px}.card-footer .card-control:last-child .btn,.card-footer .card-control:last-child .form-control,.card-footer .card-control:last-child .input-group-addon,.card-footer .card-control:last-child .form-control-static,.card-footer .card-control:last-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-footer .card-control:last-child label{border-bottom-right-radius:4px}.card-body .card-control:first-child .btn,.card-body .card-control:first-child .form-control,.card-body .card-control:first-child .input-group-addon,.card-body .card-control:first-child .form-control-static,.card-body .card-control:first-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-body .card-control:first-child label{border-top-left-radius:4px}.card-body .card-control:last-child .btn,.card-body .card-control:last-child .form-control,.card-body .card-control:last-child .input-group-addon,.card-body .card-control:last-child .form-control-static,.card-body .card-control:last-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-body .card-control:last-child label{border-top-right-radius:4px}.card-toolbar{display:flex;flex-direction:row;flex-wrap:wrap;padding:0}.card-toolbar .card-control{display:block;flex:1 0 auto}.card-form{padding:0;display:table;width:100%}.card-form .card-formrow{display:table-row}.card-form .card-formrow .card-control{display:table-cell;vertical-align:middle}.card-form .card-formrow:not(:last-child) .card-control{border-bottom:1px solid rgba(0,30,60,0.075)}.card-list:not(:first-child){border-top:1px solid rgba(0,30,60,0.075)}.preview{margin:60px 0;background:white;border-radius:4px;display:flex;flex-direction:column;flex:1 0 auto;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.preview:first-child{margin-top:0}.preview:last-child{margin-bottom:0}.preview .preview-header{background-position:50% 50%;background-size:cover}.preview .preview-header:before{content:\'\';display:block;padding-bottom:50%}.preview .preview-body{display:flex;flex-direction:column;flex:1 0 auto}.preview .preview-body .preview-footer{flex:0 0 auto;padding:20px 30px}.preview .preview-body .preview-text{flex:1 0 auto;padding:20px 30px}.preview .preview-body .preview-text *{margin-top:0;margin-bottom:0}.preview .preview-body .preview-text h1,.preview .preview-body .preview-text .h1,.preview .preview-body .preview-text h2,.preview .preview-body .preview-text .h2,.preview .preview-body .preview-text h3,.preview .preview-body .preview-text .h3,.preview .preview-body .preview-text h4,.preview .preview-body .preview-text .h4,.preview .preview-body .preview-text h5,.preview .preview-body .preview-text .h5,.preview .preview-body .preview-text h6,.preview .preview-body .preview-text .h6{margin-bottom:20px}.preview .preview-body .preview-text ~ .preview-footer{padding-top:0}.preview.preview-link:hover,.preview.preview-link:focus{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 15px 15px -7.5px rgba(0,0,0,0.15)}.preview.preview-vertical .preview-header{flex:0 0 auto}.preview.preview-vertical .preview-body{flex:1 0 auto}.preview.preview-vertical .preview-header-grow{flex:1 0 auto}.preview.preview-vertical .preview-header-grow ~ .preview-body{flex:0 0 auto}.preview.preview-horizontal{display:flex;flex-direction:row}.preview.preview-horizontal .preview-header{flex:1 1 120px}.preview.preview-horizontal .preview-body{flex:3 1 260px}.preview:not(.preview-vertical):not(.preview-horizontal){display:flex;flex-direction:row;flex-wrap:wrap}.preview:not(.preview-vertical):not(.preview-horizontal) .preview-header{flex:1 0 120px}.preview:not(.preview-vertical):not(.preview-horizontal) .preview-body{flex:3 1 260px}.loading{text-align:center;margin:20px 0}.loading:after{margin:0 auto;content:\'\';display:block;font-size:30px;width:1em;height:1em;border-radius:50%;border:1px solid;border-top-color:rgba(0,30,60,0.03);border-right-color:rgba(0,30,60,0.03);-webkit-animation:spin .5s 0s linear infinite;-o-animation:spin .5s 0s linear infinite;animation:spin .5s 0s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.loading.loading-inline{height:10px;display:inline-block;margin:0 .375em 0 0;vertical-align:middle}.loading.loading-inline-after{margin:0 0 0 .375em}.loading.loading-inline:after{margin:-10px 0}.loading.loading-small.loading-inline{top:-1px}.loading.loading-small:after{font-size:12px;margin:-1px auto}.btn .loading:after{color:inherit}.loading-overlay{background:#f9fafb;border-radius:4px}.loading-overlay>*{pointer-events:none;opacity:.15}.loading-overlay .loading{display:block;position:absolute;width:100%;height:100%;top:0;left:0;margin:0;opacity:1}.loading-overlay .loading:after{display:block;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto}.message{margin:20px 0}.message .message-content{display:flex;flex-direction:row}.message .message-content>*{padding:0 .5rem}.message:not(.message-secondary) .message-content .message-header{padding-left:0}.message:not(.message-secondary) .message-content .message-body{padding-right:4rem}.message:not(.message-secondary) .message-content .message-body .message-text{border-top-left-radius:4px}.message.message-secondary .message-content{-ms-flex-pack:end;justify-content:flex-end}.message.message-secondary .message-content .message-header{padding-right:0}.message.message-secondary .message-content .message-body{padding-left:4rem}.message.message-secondary .message-content .message-body .message-text{border-top-right-radius:4px}.message-header{flex:0 0 auto}.message-secondary .message-header{order:2}.message-header .message-avatar .avatar{font-size:2.5rem}.message-body{flex:0 1 auto}.message-body .message-text{background:#f0f2f4;padding:1.2857142857rem 1.875rem;border-radius:1.333em}.message-blue .message-body .message-text{background:#0bb;color:white}.message-green .message-body .message-text{background:#7ec631;color:white}.message-purple .message-body .message-text{background:#7f6cc5;color:white}.toolbar a{display:block}.toolbar .toolbar-content{display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-align:center;align-items:center}.toolbar .toolbar-content .toolbar-item{flex:0 0 auto}.toolbar .toolbar-content .toolbar-item>.btn{width:100%}.toolbar .toolbar-content .toolbar-item>.toolbar-link{padding:1rem 1.5rem}.toolbar .toolbar-content .toolbar-gap{flex:1000 1 auto}.toolbar-fill .btn{border-radius:0}.toolbar-fill .toolbar-content>.btn,.toolbar-fill .toolbar-content .toolbar-item{flex:1 0 auto}.toolbar-separate .toolbar-content{margin:-.375rem}.toolbar-separate .toolbar-content .toolbar-item{margin:.375rem}.toolbar-fixed .toolbar-content>.btn,.toolbar-fixed .toolbar-content .toolbar-item{flex:1 0 0px}.title{margin-left:-10px;margin-right:-10px;display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.title-buffer{margin-top:60px;margin-bottom:60px}.title>*{padding:5px 0;margin:0 10px}.title-header{flex:0 1 auto}.title-body{flex:1 1 auto}.title-actions{flex:0 1 auto}.title-fix{min-height:50px}.title:first-child{margin-top:-5px}.title:last-child{margin-bottom:-5px}.list{color:#8b969e}.list-item:not(:first-child){border-top:1px solid rgba(0,30,60,0.075)}.list-item:first-child .list-row{border-top-right-radius:4px;border-top-left-radius:4px}.list-item:last-child .list-row{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-link{display:block;position:absolute;width:100%;height:100%;top:0;left:0;z-index:2}.list-link:hover+.list-row,.list-link:focus+.list-row{background:#f9fafb}.list-item.active .list-row{background:#0bb}.list-item.active .list-row h1,.list-item.active .list-row .h1,.list-item.active .list-row h2,.list-item.active .list-row .h2,.list-item.active .list-row h3,.list-item.active .list-row .h3,.list-item.active .list-row h4,.list-item.active .list-row .h4,.list-item.active .list-row h5,.list-item.active .list-row .h5,.list-item.active .list-row h6,.list-item.active .list-row .h6,.list-item.active .list-row{color:#fff}.list-row{display:flex;flex-direction:row;-ms-flex-align:center;align-items:center;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.list-row>*{flex:1 1 0px;padding:1.5rem 2rem}.list-row>* *{margin-top:0;margin-bottom:0}.list-row>* a{z-index:3}.list-row-group{padding-left:0;padding-right:1rem}.list-row-graphic,.list-row-arrow{flex:0 0 auto}.list-row-graphic>.glyph,.list-row-arrow>.glyph{opacity:.3333333333}.list-row-sm>*{padding-top:12px;padding-bottom:12px}.list-row-xs>*{padding-top:7px;padding-bottom:7px}.card-list .list .list-row>*{padding-left:30px;paddign-right:30px}.list-clean{margin:0;padding:0;border:0;list-style-type:none}.list-clean li{margin:0;padding:0;list-style-type:none}.list-columns-2{columns:2}.status{display:flex;flex-direction:row}.status-text{flex:1 1 auto;white-space:nowrap;min-width:0}.status-icon{flex:0 0 auto}.dot{display:inline-block;background:currentColor;width:8px;height:8px;border-radius:50%}.dot-default{color:#8b969e}.dot-success{color:#5fb825}.dot-info{color:#0aa}.dot-warning{color:#ff821d}.dot-danger{color:#ff4f39}.table-master-detail-toggle{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.table-master-detail:not(.open) .table-detail{display:none}.table-master-detail.open .table-master td,.table-master-detail.open .table-master th{background:white !important}.table-master-detail.open .table-master-detail-toggle{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.form-grid{display:table;width:100%}.form-grid .form-row-group{display:table-row-group}.form-grid .form-row{display:table-row}.form-grid .form-row .form-row{display:table;width:100%}.form-grid .form-row .form-label,.form-grid .form-row .form-response{display:table-cell;padding:7px;vertical-align:top}.form-grid .form-row .form-label:first-child,.form-grid .form-row .form-response:first-child{padding-left:0}.form-grid .form-row .form-label:last-child,.form-grid .form-row .form-response:last-child{padding-right:0}.form-grid .form-row .form-label .form-row>*,.form-grid .form-row .form-response .form-row>*{padding-top:0;padding-bottom:0}.form-grid .form-row .form-label{white-space:nowrap;width:1px}.form-grid .form-row .form-response .help-block{margin:0;top:3px}.form-grid .form-row .form-response.form-response-short{width:1px;white-space:nowrap}.form-grid .form-row .form-response .form-response,.form-grid .form-row .form-response .form-label{padding-top:0;padding-bottom:0}.form-grid .form-row>.form-label:first-child{padding-right:7px}.form-grid:not(.form-grid-left) .form-label{text-align:right}.matrix{margin:0 -15px;display:flex;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;flex-wrap:wrap}.matrix.matrix-nowrap{flex-wrap:nowrap}.matrix .matrix-item{padding:15px;display:flex;flex-direction:column;flex:1 1 260px}.matrix .matrix-item>*{flex:1 1 auto;margin:0}.waterfall{margin:0 -15px;-webkit-column-count:4;column-count:4;-webkit-column-gap:0;column-gap:0;-webkit-column-width:320px;column-width:320px}.waterfall .waterfall-item{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid-column;padding:15px}.waterfall .waterfall-item>*{margin:0}.mosaic{display:flex;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.mosaic-buffer{margin:0 -15px}.mosaic-row{display:flex;flex-direction:row;flex-wrap:wrap;flex:1 1 auto}.mosaic-column{display:flex;flex-direction:column;flex:1 1 320px}.mosaic-column-1{flex:1 1 320px}.mosaic-column-2{flex:1 1 640px}.mosaic-column-3{flex:1 1 960px}.mosaic-column-4{flex:1 1 1280px}.mosaic-column-5{flex:1 1 1600px}.mosaic-column-6{flex:1 1 1920px}.mosaic-column-7{flex:1 1 2240px}.mosaic-column-8{flex:1 1 2560px}.mosaic-column-9{flex:1 1 2880px}.mosaic-column-10{flex:1 1 3200px}.mosaic-column-11{flex:1 1 3520px}.mosaic-column-12{flex:1 1 3840px}.mosaic-item{display:flex;flex-direction:column}.mosaic-item>*{flex:1 0 auto;margin:0}.mosaic-column>.mosaic-item{flex:1 1 auto}.mosaic-row>.mosaic-item{flex:1 0 260px}.mosaic-buffer .mosaic-item{margin:15px}.flex-row{display:flex;flex-direction:row;flex-wrap:wrap}.flex-column{display:flex;flex-direction:column;flex:1 1 320px}.flex-column-1{flex:1 1 320px}.flex-column-2{flex:1 1 640px}.flex-column-3{flex:1 1 960px}.flex-column-4{flex:1 1 1280px}.flex-column-5{flex:1 1 1600px}.flex-column-6{flex:1 1 1920px}.flex-column-7{flex:1 1 2240px}.flex-column-8{flex:1 1 2560px}.flex-column-9{flex:1 1 2880px}.flex-column-10{flex:1 1 3200px}.flex-column-11{flex:1 1 3520px}.flex-column-12{flex:1 1 3840px}.flex-nowrap{flex-wrap:nowrap}.flex-buffer{margin:0 -15px}.flex-flush{margin-top:-15px;margin-bottom:-15px}.flex-column>.flex-item{flex:1 1 auto}.flex-row>.flex-item{flex:1 0 260px}.flex-buffer .flex-item{margin:15px}.flex-column>.flex-item-sm{flex:1 1 auto}.flex-row>.flex-item-sm{flex:1 0 130px}.flex-buffer .flex-item-sm{margin:7.5px}.flex-grow{flex:1 0 auto}.flex-auto{flex:0 0 auto}.flex-shrink{flex:0 1 auto}.album{margin:0 -30px;visibility:hidden}.album.album-ready{visibility:visible}.album .album-content{display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch}.album .album-content .album-image{flex:1 1 auto;margin:30px}.album .album-content .album-image img{margin:0;display:block;width:100%;height:auto;display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.limit-1>*:nth-child(n+2){display:none !important}.limit-2>*:nth-child(n+3){display:none !important}.limit-3>*:nth-child(n+4){display:none !important}.limit-4>*:nth-child(n+5){display:none !important}.limit-5>*:nth-child(n+6){display:none !important}.limit-6>*:nth-child(n+7){display:none !important}.limit-7>*:nth-child(n+8){display:none !important}.limit-8>*:nth-child(n+9){display:none !important}.limit-9>*:nth-child(n+10){display:none !important}.limit-10>*:nth-child(n+11){display:none !important}.limit-11>*:nth-child(n+12){display:none !important}.limit-12>*:nth-child(n+13){display:none !important}.grid{display:grid;grid-gap:2em;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr))}html.cssgridlegacy .grid{display:flex;flex-direction:row;flex-wrap:wrap;padding:1em}html.cssgridlegacy .grid>*{flex:1 0 200px;max-width:320px;padding:1em}.section-target{position:absolute;visibility:hidden;top:-4em}.section{padding:.75em 0}.section-target:target+.section-content .panel{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 30px 30px -15px rgba(0,0,0,0.3)}.framework{-ms-display:grid;display:grid;height:100%}.framework>*{padding:1em 1.5em}.framework .framework-header{background:#0bb;color:white}.framework .framework-nav{background:#f0f2f4}.framework .framework-menu{background:#f9fafb}.framework .framework-content{background:white}.framework .framework-content{padding:0;overflow:auto;display:flex;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.framework .framework-content>*{padding:1em 1.5em}.framework .framework-content .framework-actions{position:sticky;top:0;z-index:2;background:white}@media (min-width: 961px){.framework{-ms-grid-rows:60px auto;grid-template-rows:60px auto;-ms-grid-columns:60px 240px auto;grid-template-columns:60px 240px auto}.framework .framework-header{-ms-grid-row:1;grid-row:1;-ms-grid-column:1;-ms-grid-column-span:3;grid-column:1 / 4}.framework .framework-nav{-ms-grid-row:2;grid-row:2;-ms-grid-column:1;grid-column:1}.framework .framework-menu{-ms-grid-row:2;grid-row:2;-ms-grid-column:2;grid-column:2}.framework .framework-content{-ms-grid-row:2;grid-row:2;-ms-grid-column:3;grid-column:3}}@media (max-width: 960px){.framework{-ms-grid-rows:60px auto;grid-template-rows:60px auto;-ms-grid-columns:auto;grid-template-columns:auto}.framework .framework-header{-ms-grid-row:1;grid-row:1;-ms-grid-column:1;grid-column:1}.framework .framework-nav{display:none}.framework .framework-menu{display:none}.framework .framework-content{-ms-grid-row:2;grid-row:2;-ms-grid-column:1;grid-column:1}.framework .framework-content .framework-actions{order:-1}}.app{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed;min-width:960px}.app-row{display:flex;flex-direction:row;-ms-flex-align:stretch;align-items:stretch}.app-column{display:flex;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.app-middle{-ms-flex-align:center;align-items:center}.app-header,.app-footer{flex:0 0 auto}.app-body{flex:1 0 0px}.app-navbar{height:calc( 2.8571428571rem + 40px );z-index:3;background:white}.app-menu,.app-sidebar,.app-content{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);background:#f9fafb}.app-menu,.app-sidebar{width:20%;min-width:300px;flex:0 0 auto}.app-content{flex:1 0 0px}.app-content a,.app-content .a{color:#0bb}.app-content a:hover,.app-content a:focus,.app-content .a:hover,.app-content .a:focus{color:#0aa}.app-overlay{background:#f0f2f4;position:absolute;display:none;z-index:2;right:-100vw;left:-100vw;bottom:0;top:0;opacity:.9}.app-menu .app-overlay{left:100%;box-shadow:inset 5px 0 10px -5px rgba(0,0,0,0.2)}.app-sidebar .app-overlay{right:100%;box-shadow:inset -5px 0 10px -5px rgba(0,0,0,0.2)}.app-icn:not(:first-child){padding-left:20px}.app-icn:not(:last-child){padding-right:20px}.app-scroll{display:block;position:absolute;width:100%;height:100%;top:0;left:0;overflow:auto}html.touch .app-scroll{overflow:scroll;-webkit-overflow-scrolling:touch}.app-pad{padding:20px 30px}.app-pad,.app-pad-v{padding-top:20px;padding-bottom:20px}.app-pad,.app-pad-h{padding-left:30px;padding-right:30px}.app-sticky{top:0;z-index:2;position:sticky;background:#f9fafb}.app-frame{margin:auto}@media (min-width: 961px){.app-frame{width:90%}}.app-shadow{box-shadow:0 1px 0 rgba(0,16,32,0.05)}.app-flush,.app-flush-top{padding-top:0}.app-flush,.app-flush-bottom{padding-bottom:0}.app-flush,.app-flush-left{padding-left:0}.app-flush,.app-flush-right{padding-right:0}.app-logo{width:100px}.layout{width:100vw;height:100vh;min-width:960px;overflow:auto}html.touch .layout{overflow:scroll;-webkit-overflow-scrolling:touch}.layout-pad{padding-top:20px;padding-bottom:20px}.layout-ide{height:calc(100vh - 53px)}.layout-pad-l,.layout-pad-x{padding-left:20px}.layout-pad-r,.layout-pad-x{padding-right:20px}.layout-sticky{position:sticky;z-index:20;top:0}.layout-frame{margin:auto;width:90%;padding-left:20px;padding-right:20px}.layout-menu .layout-frame{padding-right:0}.layout-navigation{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);background:white;height:52px;position:absolute;top:0;left:0;right:0}.layout-content{position:absolute;top:53px;bottom:0;left:0;right:0;overflow:auto}html.touch .layout-content{overflow:scroll;-webkit-overflow-scrolling:touch}.layout-row{display:flex;flex-direction:row}.layout-alert{flex:0 0 100%}.layout-menu{flex:0 0 25%;max-width:300px;min-width:0}.layout-body{flex:1 1 auto;box-shadow:0 -1px 0 rgba(0,30,60,0.03)}.ide{overflow:hidden;font-size:.9285714286rem;display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:white}.ide-pad{padding:14px 16px !important}.ide-pad-l,.ide-pad-x{padding-left:16px !important}.ide-pad-r,.ide-pad-x{padding-right:16px !important}.ide-panels{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.ide-panels,.ide-panel-group{display:flex;flex-direction:row;background:inherit}.ide-panels.ide-vertical,.ide-panel-group.ide-vertical{display:flex;flex-direction:column}@media (max-width: 960px){.ide-panels,.ide-panel-group{display:flex;flex-direction:column}}.ide-panel,.ide-panel-group{flex:1 0 0px}.ide-panel{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-transition-property:box-shadow,transform;transition-property:box-shadow,transform;box-shadow:0 0 0 2px transparent;min-height:200px;min-width:200px;background:inherit;display:flex;flex-direction:column}.ide-horizontal .ide-panel{height:auto !important}.ide-horizontal .ide-panel[style*="width"]{flex:0 0 auto}.ide-vertical .ide-panel{width:auto !important}.ide-vertical .ide-panel[style*="height"]{flex:0 0 auto}@media (max-width: 960px){.ide-panel{width:auto !important}}.ide-panel-sm{flex:0 0 280px}.ide-panel:before{content:\'\';display:block;position:absolute;left:0;top:0;bottom:0;right:0;box-shadow:0 0 0 1px currentColor;opacity:.125}.ide-panel:focus{z-index:3;box-shadow:0 0 0 2px #0bb,0 10px 20px rgba(0,30,60,0.3);-webkit-transform:translate(10px, -10px);transform:translate(10px, -10px);border-radius:4px}.ide-panel>*:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.ide-panel>*:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.ide-panel-header,.ide-panel-footer{flex:0 0 auto;background:rgba(0,30,60,0.03)}.ide-panel-header:before,.ide-panel-header:after,.ide-panel-footer:before,.ide-panel-footer:after{content:\'\';display:block;position:absolute;left:0;top:0;bottom:0;right:0;background:currentColor;opacity:.0075}.ide-panel-header:after,.ide-panel-footer:after{height:1px;opacity:.06}.ide-panel-header .btn:focus,.ide-panel-header .btn:active,.ide-panel-footer .btn:focus,.ide-panel-footer .btn:active{z-index:auto}.ide-panel-header:after{top:auto}.ide-panel-footer:before{display:none}.ide-panel-footer:after{bottom:auto}.ide-panel-body{color:#313539;background:inherit;flex:1 1 auto}.ide-panel-scroll{display:block;position:absolute;width:100%;height:100%;top:0;left:0;overflow:auto}html.touch .ide-panel-scroll{overflow:scroll;-webkit-overflow-scrolling:touch}.ide-panel-scroll::-webkit-scrollbar{background:#e9ebef;width:7px;height:7px}.ide-panel-scroll::-webkit-scrollbar-button{display:none}.ide-panel-scroll::-webkit-scrollbar-track{background:transparent}.ide-panel-scroll::-webkit-scrollbar-track-piece{background:transparent}.ide-panel-scroll::-webkit-scrollbar-thumb{background:#d7dbdf;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-panel-scroll::-webkit-scrollbar-corner{background:#e9ebef}.ide-panel-scroll::-webkit-resizer{background:transparent}.ide-panel-scroll:hover::-webkit-scrollbar-thumb{background:#c1c7cd}.ide-panel-handle{display:block;position:absolute;top:0;bottom:0;right:0;background:white;width:10px}.ide-controls{display:table;width:100%;height:44px}.ide-controls>*{display:table-cell;vertical-align:middle}.ide-control{white-space:nowrap}.ide-control-sm{width:1px}.ide-control-link,.ide-control-text{display:block;padding:.6785714286rem 0}.ide-control-link{padding-left:1.25rem;padding-right:1.25rem;text-align:center}.ide-control-inline-link{display:inline-block;padding:.6785714286rem 0;text-align:center}.ide-control.active{box-shadow:inset 0 -1px 0 #0bb}.ide-control.active .ide-control-link,.ide-control.active .ide-control-inline-link{color:inherit;font-weight:bold}.ide-list{padding:7px 0}.ide-list-item{display:block;padding:7px 16px;color:inherit;box-shadow:0 1px 0 rgba(0,30,60,0.03);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide-list-item:hover,.ide-list-item:focus{color:inherit}.ide-list-item-footer{padding:.375em 0;display:flex;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}.ide-interactive:hover,.ide-interactive:focus{background:#f9fafb}.ide-active{background:#e4e6eb !important}.ide-code{color:inherit;resize:none;padding:0;background:transparent}.ide table{white-space:nowrap}.ide table td:first-child,.ide table th:first-child{padding-left:16px}.ide table td:last-child,.ide table th:last-child{padding-right:16px}.ide table td{max-width:300px;overflow:hidden;text-overflow:ellipsis}.ide-table-heading{color:inherit;position:sticky;top:0;z-index:3;background:white;box-shadow:0 1px 0 rgba(0,30,60,0.03)}.ide-dark{color:white}.ide-dark,.ide-dark .ide-table-heading{background:#002934}.ide-dark .ide-panel-body{color:inherit}.ide-dark .ide-panel:focus,.ide-dark .ide-panel-header,.ide-dark .ide-panel-footer,.ide-dark .table-striped>tbody>tr:nth-of-type(odd){background:#00303d}.ide-dark .ide-active{background:#005e7a !important;color:white !important}.ide-dark .ide-table-heading,.ide-dark .ide-list-item{box-shadow:0 1px 0 rgba(255,255,255,0.1)}.ide-dark .ide-panel-header .btn-default,.ide-dark .ide-panel-footer .btn-default{color:#fff;background-color:#005e7a;border-color:#005e7a}.ide-dark .ide-panel-header .btn-default:focus,.ide-dark .ide-panel-header .btn-default.focus,.ide-dark .ide-panel-footer .btn-default:focus,.ide-dark .ide-panel-footer .btn-default.focus{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:hover,.ide-dark .ide-panel-footer .btn-default:hover{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:active,.ide-dark .ide-panel-header .btn-default.active,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle,.ide-dark .ide-panel-footer .btn-default:active,.ide-dark .ide-panel-footer .btn-default.active,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:active:hover,.ide-dark .ide-panel-header .btn-default:active:focus,.ide-dark .ide-panel-header .btn-default:active.focus,.ide-dark .ide-panel-header .btn-default.active:hover,.ide-dark .ide-panel-header .btn-default.active:focus,.ide-dark .ide-panel-header .btn-default.active.focus,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle:hover,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle:focus,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle.focus,.ide-dark .ide-panel-footer .btn-default:active:hover,.ide-dark .ide-panel-footer .btn-default:active:focus,.ide-dark .ide-panel-footer .btn-default:active.focus,.ide-dark .ide-panel-footer .btn-default.active:hover,.ide-dark .ide-panel-footer .btn-default.active:focus,.ide-dark .ide-panel-footer .btn-default.active.focus,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle:hover,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle:focus,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle.focus{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:active,.ide-dark .ide-panel-header .btn-default.active,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle,.ide-dark .ide-panel-footer .btn-default:active,.ide-dark .ide-panel-footer .btn-default.active,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle{background-image:none}.ide-dark .ide-panel-header .btn-default.disabled:hover,.ide-dark .ide-panel-header .btn-default.disabled:focus,.ide-dark .ide-panel-header .btn-default.disabled.focus,.ide-dark .ide-panel-header .btn-default[disabled]:hover,.ide-dark .ide-panel-header .btn-default[disabled]:focus,.ide-dark .ide-panel-header .btn-default[disabled].focus,fieldset[disabled] .ide-dark .ide-panel-header .btn-default:hover,fieldset[disabled] .ide-dark .ide-panel-header .btn-default:focus,fieldset[disabled] .ide-dark .ide-panel-header .btn-default.focus,.ide-dark .ide-panel-footer .btn-default.disabled:hover,.ide-dark .ide-panel-footer .btn-default.disabled:focus,.ide-dark .ide-panel-footer .btn-default.disabled.focus,.ide-dark .ide-panel-footer .btn-default[disabled]:hover,.ide-dark .ide-panel-footer .btn-default[disabled]:focus,.ide-dark .ide-panel-footer .btn-default[disabled].focus,fieldset[disabled] .ide-dark .ide-panel-footer .btn-default:hover,fieldset[disabled] .ide-dark .ide-panel-footer .btn-default:focus,fieldset[disabled] .ide-dark .ide-panel-footer .btn-default.focus{background-color:#005e7a;border-color:#005e7a}.ide-dark .ide-panel-header .btn-default .badge,.ide-dark .ide-panel-footer .btn-default .badge{color:#005e7a;background-color:#fff}.ide-dark .ide-panel-scroll::-webkit-scrollbar{background:#00475c;width:7px;height:7px}.ide-dark .ide-panel-scroll::-webkit-scrollbar-button{display:none}.ide-dark .ide-panel-scroll::-webkit-scrollbar-track{background:transparent}.ide-dark .ide-panel-scroll::-webkit-scrollbar-track-piece{background:transparent}.ide-dark .ide-panel-scroll::-webkit-scrollbar-thumb{background:#065b74;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-dark .ide-panel-scroll::-webkit-scrollbar-corner{background:#00475c}.ide-dark .ide-panel-scroll::-webkit-resizer{background:transparent}.ide-dark .ide-panel-scroll:hover::-webkit-scrollbar-thumb{background:#087291}.ide-dark .ace_scrollbar::-webkit-scrollbar{background:#00475c;width:7px;height:7px}.ide-dark .ace_scrollbar::-webkit-scrollbar-button{display:none}.ide-dark .ace_scrollbar::-webkit-scrollbar-track{background:transparent}.ide-dark .ace_scrollbar::-webkit-scrollbar-track-piece{background:transparent}.ide-dark .ace_scrollbar::-webkit-scrollbar-thumb{background:#065b74;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-dark .ace_scrollbar::-webkit-scrollbar-corner{background:#00475c}.ide-dark .ace_scrollbar::-webkit-resizer{background:transparent}.ide-dark .ace_scrollbar:hover::-webkit-scrollbar-thumb{background:#087291}.ide-dark .ide-code::-webkit-scrollbar{background:#00475c;width:7px;height:7px}.ide-dark .ide-code::-webkit-scrollbar-button{display:none}.ide-dark .ide-code::-webkit-scrollbar-track{background:transparent}.ide-dark .ide-code::-webkit-scrollbar-track-piece{background:transparent}.ide-dark .ide-code::-webkit-scrollbar-thumb{background:#065b74;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-dark .ide-code::-webkit-scrollbar-corner{background:#00475c}.ide-dark .ide-code::-webkit-resizer{background:transparent}.ide-dark .ide-code:hover::-webkit-scrollbar-thumb{background:#087291}.menu{margin:0 -5px;font-size:.9285714286rem}.menu ul{margin:0;padding:0;border:0;list-style-type:none;display:none}.menu ul li{margin:0;padding:0;list-style-type:none}.menu ul ul{margin-left:23px}.menu a{color:#3f464e;display:block;padding:3px 5px;border-radius:4px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu a.menu-tree{color:#8b969e}.menu a.menu-main{font-size:1rem;margin-bottom:.25em;font-weight:bold;color:#313539}.menu a.active:not(.not-active){color:#313539}.menu a:hover,.menu a:focus{background:#f0f2f4;color:#313539}.menu a.menu-node.active:not(.not-active),.menu a.menu-link.active:not(.not-active){background:#e9ebef;color:#313539}.menu .icn{margin-right:8px}.menu>ul,.menu .active+ul{display:block}a:not(.active) .menu-icon-on{display:none}a.active .menu-icon-off{display:none}.results{font-size:.9285714286rem}.results .result{display:block;color:inherit;text-decoration:none !important;padding:15px 20px;margin:0 -20px;border-radius:4px}.results .result:hover,.results .result:focus{color:inherit}.results .result:hover,.results .result:focus{background:#f0f2f4}.results .result-content{display:flex;flex-direction:row}.results .result-content .result-icn{flex:0 0 auto;color:#8b969e;opacity:.5;padding:2px 20px 0 0}.results .result-content .result-body{flex:1 1 auto}.results .result-content .result-body>*{margin-top:.25em;margin-bottom:.25em}.results .result-content .result-body>*:first-child{margin-top:0}.results .result-content .result-body>*:last-child{margin-bottom:0}.filename{display:flex;flex-direction:row}.filename .filename-ellip{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filename .filename-normal{flex:0 0 auto}.launcher{z-index:30;position:fixed;bottom:30px;right:30px}.launcher:not(.on) .launcher-content{display:none}.launcher.on .launcher-btn{display:none}.launcher-btn{font-size:0}.launcher-btn .btn{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2)}.launcher-btn .btn:not(:last-child){margin-right:10px}.launcher-btn .btn:hover,.launcher-btn .btn:focus{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 40px 40px -20px rgba(0,0,0,0.4)}.launcher-content{position:fixed;height:100%;border:20px solid transparent;top:0;right:0}@media (min-width: 961px){.launcher[data-launcher="sidebar"] .launcher-content{width:340px;border-left:0}}@media (max-width: 960px){.launcher[data-launcher="sidebar"] .launcher-content{width:100vw}}.launcher[data-launcher="sidebar"] .launcher-content .launcher-hide-sidebar:not(.visible){display:none}.launcher[data-launcher="fullscreen"] .launcher-content{width:100vw}.launcher[data-launcher="fullscreen"] .launcher-content .launcher-hide-fullscreen:not(.visible){display:none}.launcher-window{display:flex;flex-direction:column;overflow:auto;width:100%;height:100%;color:white;background:#005e7a;border-radius:4px;box-shadow:-10px 5px 20px 5px rgba(0,0,0,0.1),0 20px 20px -10px rgba(0,0,0,0.3)}.launcher-window h1,.launcher-window .h1,.launcher-window h2,.launcher-window .h2,.launcher-window h3,.launcher-window .h3,.launcher-window h4,.launcher-window .h4,.launcher-window h5,.launcher-window .h5,.launcher-window h6,.launcher-window .h6{color:inherit}html.touch .launcher-window{overflow:scroll;-webkit-overflow-scrolling:touch}.launcher-window .launcher-header,.launcher-window .launcher-footer{flex:0 0 auto;display:flex;flex-direction:row;-ms-flex-align:center;align-items:center}.launcher-window .launcher-header .launcher-spacer,.launcher-window .launcher-footer .launcher-spacer{flex:1 0 0px}.launcher-window .launcher-header .launcher-cell,.launcher-window .launcher-footer .launcher-cell{flex:1 1 auto;min-width:0;padding:20px}.launcher-window .launcher-header .launcher-cell.launcher-flush,.launcher-window .launcher-footer .launcher-cell.launcher-flush{padding:0}.launcher-window .launcher-header .launcher-cell .field-label,.launcher-window .launcher-header .launcher-cell .field-input,.launcher-window .launcher-footer .launcher-cell .field-label,.launcher-window .launcher-footer .launcher-cell .field-input{padding-left:20px;padding-right:20px;border-radius:0 !important;box-shadow:none !important}.launcher-window .launcher-header .launcher-cell .field-input,.launcher-window .launcher-footer .launcher-cell .field-input{background-position:calc(100% - 1.25rem - 5px) 50%}.launcher-window .launcher-header .launcher-actions,.launcher-window .launcher-footer .launcher-actions{flex:0 0 auto}.launcher-window .launcher-footer{flex-wrap:wrap}.launcher-window .launcher-body{flex:1 1 0px}.launcher-window .launcher-body .launcher-scroll{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.launcher-window .launcher-body .launcher-scroll .launcher[data-launcher="sidebar"]{overflow:auto}html.touch .launcher-window .launcher-body .launcher-scroll .launcher[data-launcher="sidebar"]{overflow:scroll;-webkit-overflow-scrolling:touch}.launcher-window .launcher-body .launcher-embed,.launcher-window .launcher-body .launcher-embed iframe,.launcher-window .launcher-body .launcher-embed canvas{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.field{display:block;margin:0}.field .field-input{height:4.6071428571rem;border-top:1.75rem solid transparent !important}.field .field-input:hover+.field-label,.field .field-input:focus+.field-label{color:#5e666c}.field .field-label{pointer-events:none;z-index:4;font-family:"Monaco",monospace;font-size:.8571428571rem;position:absolute;top:0;left:0;margin:0;padding:.6785714286rem 1.25rem 0}.field .field-text{height:4.6071428571rem;border-top:1.75rem solid transparent !important;border-radius:0 !important;box-shadow:none !important;padding:.6785714286rem 1.25rem 0}.field .field-text-label{pointer-events:none;z-index:0;position:absolute;top:0;left:0;margin:0;padding:.6785714286rem 1.25rem 0;font-variant:small-caps}.fields{display:flex;flex-direction:row;flex-wrap:wrap}.fields .field{flex:1 0 160px}.fields:not(.fields-flush){margin:-5px}.fields:not(.fields-flush) .field{border:5px solid transparent}.switches{margin:1.5em 0;display:flex;flex-direction:row;flex-wrap:wrap;background:#edeff2;box-shadow:inset 0 0 5px rgba(0,0,0,0.05);border-radius:4px;font-size:.9285714286rem}.switches .switch{flex:1 1 auto}.switches .switch .switch-label{padding:.4464285714rem 1.25rem;color:#8b969e;display:block;text-align:center;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.switches .switch .switch-label:hover,.switches .switch .switch-label:focus{color:#313539}.switches .switch .switch-label.active{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px;font-weight:bold;color:#313539}.details .details-content{margin:-1em 0}@media (min-width: 961px){.details .details-content{display:table;width:100%}.details .details-content .detail-group{display:table-row}.details .details-content .detail-group>*{display:table-cell;vertical-align:top}.details .details-content .detail-group:not(:last-child)>*{border-bottom:1px solid rgba(0,30,60,0.075)}}.detail-group{padding-bottom:1em}.detail-group:not(:last-child){border-bottom:1px solid rgba(0,30,60,0.075)}.detail-group .detail-header{white-space:nowrap;width:1px;padding:1em;padding-left:0}@media (max-width: 960px){.detail-group .detail-header .detail-label{color:#313539}}.detail-group .detail-body{padding:.5em}@media (max-width: 960px){.detail-group .detail-body{padding:0;margin:0 -1em}}.detail-group .detail-body .detail{margin:0;display:inline-block;vertical-align:top;padding:.5em 1em}.detail-label{margin:0;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;color:#8b969e}.detail-value{color:#313539}.controls{display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;margin:-7px}.controls:not(.controls-block){display:inline-flex}.controls-nowrap{flex-wrap:nowrap}.controls .control{padding:7px;flex:0 0 auto}.controls .control .btn{text-align:center}.controls .control .btn,.controls .control .form-control{width:100%}.controls .control-grow{flex:1 0 auto}.controls .control-full{flex:0 0 100%}.token{display:flex;flex-direction:row;display:inline-flex}.token-element{flex:0 0 auto}.token-element:not(:first-child) .btn,.token-element:not(:first-child) .form-control{border-top-left-radius:0;border-bottom-left-radius:0}.token-element:not(:last-child) .btn,.token-element:not(:last-child) .form-control{border-top-right-radius:0;border-bottom-right-radius:0}.tokens{margin-left:-5px;margin-right:-5px}.tokens:after{display:table;content:\'\';clear:both}.tokens-actions{float:right}.tokens .token{float:left;margin:5px}.setting{display:flex;flex-direction:row;margin:0 -30px}.setting>*{padding:15px 30px}.setting-header{flex:1 0 28.5714285714%;min-width:200px}.setting-header-text>*{margin-top:.5rem;margin-bottom:.5rem}.setting-header-text>*:first-child{margin-top:0}.setting-header-text>*:last-child{margin-bottom:0}.setting-header-text h1,.setting-header-text .h1,.setting-header-text h2,.setting-header-text .h2,.setting-header-text h3,.setting-header-text .h3,.setting-header-text h4,.setting-header-text .h4,.setting-header-text h5,.setting-header-text .h5,.setting-header-text h6,.setting-header-text .h6{display:inline}.setting-header-text h1 a,.setting-header-text .h1 a,.setting-header-text h2 a,.setting-header-text .h2 a,.setting-header-text h3 a,.setting-header-text .h3 a,.setting-header-text h4 a,.setting-header-text .h4 a,.setting-header-text h5 a,.setting-header-text .h5 a,.setting-header-text h6 a,.setting-header-text .h6 a{font-size:.9285714286rem;font-weight:bold;margin-left:.75em}.setting-body{flex:1 0 71.4285714286%;min-width:600px}.setting-row{display:flex;flex-direction:row;margin:0 -4px}.setting-row:not(:last-child){border-bottom:1px solid rgba(0,30,60,0.075)}.setting-row>*{padding:4px}.setting-row-label{flex:0 0 25%;min-width:120px;padding-top:8px}.setting-row-response{flex:1 1 auto}.setting-row-edit{flex:0 0 auto}.setting-row-actions{flex:1 1 auto}body:not(.editing) .setting-form:not(.editing) [setting-active]{display:none}.editing [setting-static]{display:none}body.editing [setting-old]{display:none}body:not(.editing) [setting-new]{display:none}.editing .setting-row:not(.setting-row-border){border-color:transparent}.logo{display:block;overflow:hidden;color:#313539}.logo,.logo svg{height:25px;width:88px}.logo svg{fill:currentColor;top:-1px}@media (max-width: 540px){.logo{width:25px}}.kpi{color:#313539;padding:20px 32px}.kpi-lg .kpi-value{font-weight:bold;font-size:1.7142857143rem}.kpi-content{display:table;width:100%}.kpi-content>*{display:table-cell;vertical-align:baseline}.kpi-graphic{white-space:nowrap;width:1px;padding-right:.5em}.kpis{display:table;width:100%;width:auto}.kpis>*{display:table-cell;vertical-align:middle}.kpis .kpi:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.kpis .kpi:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.navigation{color:#313539}.navigation-row{height:52px;margin:0 -15px;display:flex;flex-direction:row;-ms-flex-align:center;align-items:center}.navigation-item{flex:0 0 auto;padding:10px 15px}.navigation-grow{flex:1 0 auto}.navigation-link{color:#bec5c9}.navigation-link:hover,.navigation-link:focus{color:#313539}.navigation-pad{padding:0 20px}.sidenav{z-index:20}.sidenav-overlay,.sidenav-content{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.sidenav-content{overflow:auto;-webkit-transform:translateX(-120%);transform:translateX(-120%);top:0;bottom:0;left:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);position:fixed;width:320px}html.touch .sidenav-content{overflow:scroll;-webkit-overflow-scrolling:touch}.navigating .sidenav-content{-webkit-transform:translateX(0);transform:translateX(0)}.sidenav-overlay{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed;background:#f0f2f4;pointer-events:none;opacity:0}.navigating .sidenav-overlay{pointer-events:auto;opacity:.5}.sidenav-body{padding:0 24px}.sidenav-region{padding-bottom:.25em}.sidenav-divider{display:flex;flex-direction:row;-ms-flex-align:center;align-items:center}.sidenav-divider:after{content:\'\';display:block;border-top:1px solid rgba(0,30,60,0.075);flex:1 1 auto}.sidenav-divider-heading{flex:0 0 auto;padding-right:1em}.sidenav-section{padding:24px 0}.sidenav-section+.sidenav-section{border-top:1px solid rgba(0,30,60,0.075)}.sidenav-link{color:#8b969e;display:block;padding:.25em 0;padding-left:40px}.sidenav-link .glyph{position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.sidenav-link:hover,.sidenav-link:focus{color:#313539}.sidenav-link:not(.active) .glyph{opacity:.3333333333}.sidenav-link.active{color:#ff694b}.sidenav-link-main{color:inherit;padding-top:.5em;padding-bottom:.5em;font-weight:bold}body.navigating{overflow:hidden}body.navigating .navigating-hide{display:none}body:not(.navigating) .navigating-show{display:none}.navigating-overlay{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:#f0f2f4;opacity:.5;display:none;z-index:9}.navigating .navigating-overlay{display:block}.navigating .navigating-blur{pointer-events:none;-webkit-filter:blur(5px);filter:blur(5px)}a.help{line-height:inherit}\n',""])},function(e,t){e.exports=function(e){return"string"!=typeof e?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),/["'() \t\n]/.test(e)?'"'+e.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':e)}},function(e,t){e.exports="data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAx8AAoAAAAADDQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgcMR/82NtYXAAAAFUAAABUgAAAVIcdx1qZ2x5ZgAAAqgAAAaMAAAGjFUyrzBoZWFkAAAJNAAAADYAAAA2FVU8pmhoZWEAAAlsAAAAJAAAACQM5gWHaG10eAAACZAAAAA4AAAAODwoBKlsb2NhAAAJyAAAAB4AAAAeDW4Ltm1heHAAAAnoAAAAIAAAACAEVARLbmFtZQAACggAAAJSAAACUpr8+SVwb3N0AAAMXAAAACAAAAAg/7gAQAAEBGMBkAAFAAgEEAPAAAAAeAQQA8AAAAIwADICHAAAAAAFAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABVS1dOAEAAIABmBRT+1AAABfABkAAAAAEAAAAAA4QEsAAAACAAAAAAAAMAAAADAAAAHAABAAAAAABMAAMAAQAAABwABAAwAAAACAAIAAIAAAAgAEYAZv//AAAAIABBAGH////t/8D/pgABAAAAAAAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwgJCgsMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAB9AK8AAMABgAJAAwADwAANyERIRMnIQM3EQU3FwEXBwAB9P4M+qoBVIyq/o6qqv6OqqoAArz+z//+1P/+Ai3//wIr//8AAAEAFADcBWUD1AAkAAABIgcGBwEGFRQXFhcWMzI3NjcJARYXFjMyNzY3NjU0JwEmJyYjArwQDg8M/agXFwwPDhAPDw8LAiACIAwPDhAPDw8LGBj9pwsPDw8D1AYGDP2oGCAgGQwFBgYFDAIf/eEMBQYGBQwZICAYAlgMBgYAAAAAAQFA/68EOAUAACAAAAEiBwYHBhUUFwkBBhUUFxYXFjMyNzY3ATY1NCcBJicmIwGQEA4PDBcXAiD94BcXDA8OEA8PDwsCWBgY/agLDw8PBQAGBgsZICAZ/eH94BkgIBkLBgYGBgsCWRkgIBkCWAsGBgAAAAABABQA3AVlA9QAJAAAASIHBgcJASYnJiMiBwYHBhUUFwEWFxYzMjc2NwE2NTQnJicmIwUVEA4PDP3h/d8LDw8PEA4PDBcXAlkMDw4QDw8PCwJYGBgLDw8PA9QGBgz94QIfDAYGBgYMGCAgGf2oDAUGBgUMAlgZICAYDAYGAAAAAAEBQP+vBDgFAAAgAAABIgcGBwEGFRQXARYXFjMyNzY3NjU0JwkBNjU0JyYnJiMD6BAODwz9qBcXAlgMDw4QDw8PCxgY/eECHxgYCw8PDwUABgYL/acZICAZ/agLBgYGBgsZICAZAh8CIBkgIBkLBgYAAAAAAQAU/7AFZAUAADgAAAEiBwYHCQEmJyYjIgcGBwYVFBcJAQYVFBcWFxYzMjc2NwkBFhcWMzI3Njc2NTQnCQE2NTQnJicmIwUUEA4PDP3h/eALDw8PEA4PDBcXAiD94BcXDA8OEA8PDwsCIAIfDA8OEA8PDwsYGP3hAh8YGAsPDw8FAAYGC/3gAiALBgYGBgsZICAZ/eH94RkgIBkLBgYGBgsCIP3gCwYGBgYLGSAgGQIfAh8ZICAZCwYGAAABABQAFAb0BQAAJAAAASIHBgcJASYnJiMiBwYHBhUUFwEWFxYzMjc2NwE2NTQnJicmIwakEA4PDPvt/kQLDw8PEA4PDBcXAfQMDw4QDw8PCwRMGBgLDw8PBQAGBgv77AG8CwYGBgYLGSAgGf4MCwYGBgYLBEwZICAZCwYGAAAAAAEAFQGkAwwDcAAkAAABIgcGBwEGFRQXFhcWMzI3Nj8BFxYXFjMyNzY3NjU0JwEmJyYjAZAQDg8M/tUXFwwPDhAPDw8L8/MMDw4QDw8PCxgY/tQLDw8PA3AGBgz+1RggIBkMBgYGBgzy8gwGBgYGDBkgIBgBKwwGBgAAAAABANwA3AKoA9QAIAAAASIHBgcGFRQfAQcGFRQXFhcWMzI3NjcBNjU0JwEmJyYjASwQDg8MFxf08xcXDA8OEA8PDwsBKxgY/tQLDw8PA9QGBgsZICAZ8/QYICAZCwYGBgYMASwYICAZASwLBgYAAAAAAQAVAUEDDAMLACQAAAEiBwYPAScmJyYjIgcGBwYVFBcBFhcWMzI3NjcBNjU0JyYnJiMCvBAODwzy9AsPDw8QDg8MFxcBLAwPDhAPDw8LASsYGAsPDw8DCwUGDPLyDAYFBQYMGCAgGf7VDAUGBgUMASsZICAYDAYFAAAAAAEAeQDdAkUD1AAmAAABIgcGBwEGBwYVFBcWFwEWFxYzMDEyNzY3NjU0LwE3NjU0JyYnJiMB9Q8PDwz+1AsGBgYGDAEsCw8PDxAODwwXGPP0FxcMDw8PA9QGBgv+1AsPDxAQDw8L/tULBgYGBgwYICAZ8vMZICAZCwYGAAABAEYAqgOiBAYAOAAAASIHBgcJASYnJiMiBwYHBhUUFwkBBhUUFxYXFjMyNzY3CQEWFxYzMjc2NzY1NCcJATY1NCcmJyYjA1IQDg8M/tv+2gsPDw8QDg8MFxcBJv7aFxcMDw4QDw8PCwEmASUMDw4QDw8PCxgY/tsBJRgYCw8PDwQGBgYL/toBJgsGBgYGCxkgIBn+2/7bGSAgGQsGBgYGCwEm/toLBgYGBgsZICAZASUBJRkgIBkLBgYAAAEAFADcBDgD1AAkAAABIgcGBwEnJicmIyIHBgcGFRQXARYXFjMyNzY3ATY1NCcmJyYjA+gQDg8M/eH0Cw8PDxAODwwXFwEsDA8OEA8PDwsCWBgYCw8PDwPUBgYL/eD0CwYGBgYLGSAgGf7UCwYGBgYLAlgZICAZCwYGAAABAAAAAQAAywcftV8PPPUAAwZAAAAAANfNTDoAAAAA13yohQAA/68G9AUAAAAAAwACAAAAAAAAAAEAAAXw/nAAAAcIAAAAAAb0AAEAAAAAAAAAAAAAAAAAAAAOAfQAAAV4ABQFeAFABXgAFAV4AUAFeAAUBwgAFAMgABUDIADcAyAAFQMgAHkD6ABGBEwAFAMgAAAAAAAmAGYAoADgARoBeAG4AfYCLgJsAqoDCANGA0YAAAABAAAADgA5AAUAAAAAAAIACAQQA8AAAAB4AAAAAAAAAAAADACWAAEAAAAAAAEADgAAAAEAAAAAAAIABwAOAAEAAAAAAAMAIAAVAAEAAAAAAAQADgA1AAEAAAAAAAUAPABDAAEAAAAAAAYAFQB/AAMAAQQJAAEAHACUAAMAAQQJAAIADgCwAAMAAQQJAAMAQAC+AAMAAQQJAAQAHAD+AAMAAQQJAAUAeAEaAAMAAQQJAAYAKgGSVmVsbGx1bSBBcnJvd3NSZWd1bGFyMS4wMDA7VUtXTjtWZWxsbHVtQXJyb3dzLVJlZ3VsYXJWZWxsbHVtIEFycm93c1ZlcnNpb24gMS4wMDA7UFMgMDAxLjAwMDtob3Rjb252IDEuMC43MDttYWtlb3RmLmxpYjIuNS41ODMyOVZlbGxsdW1BcnJvd3MtUmVndWxhcgBWAGUAbABsAGwAdQBtACAAQQByAHIAbwB3AHMAUgBlAGcAdQBsAGEAcgAxAC4AMAAwADAAOwBVAEsAVwBOADsAVgBlAGwAbABsAHUAbQBBAHIAcgBvAHcAcwAtAFIAZQBnAHUAbABhAHIAVgBlAGwAbABsAHUAbQAgAEEAcgByAG8AdwBzAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBQAFMAIAAwADAAMQAuADAAMAAwADsAaABvAHQAYwBvAG4AdgAgADEALgAwAC4ANwAwADsAbQBhAGsAZQBvAHQAZgAuAGwAaQBiADIALgA1AC4ANQA4ADMAMgA5AFYAZQBsAGwAbAB1AG0AQQByAHIAbwB3AHMALQBSAGUAZwB1AGwAYQByAAAAAwAAAAAAAP+1ADIAAAAAAAAAAAAAAAAAAAAAAAAADg=="},function(e,t){e.exports="data:font/woff;charset=utf-8;base64,d09GRgABAAAAAK4wABEAAAAA/GwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABgAAAABwAAAAcfg3B8kdERUYAAAGcAAAAHgAAAB4AJwE1T1MvMgAAAbwAAABLAAAAYHN/dWZjbWFwAAACCAAAAjgAAAS+1h8aA2N2dCAAAARAAAAAFAAAABQDqgVBZnBnbQAABFQAAAGxAAACZVO0L6dnYXNwAAAGCAAAAAgAAAAIAAAAEGdseWYAAAYQAACaMQAA3UhCB8sWaGVhZAAAoEQAAAA0AAAANhEbVxxoaGVhAACgeAAAACEAAAAkDwIHkGhtdHgAAKCcAAACIwAABLqV4QERbG9jYQAAosAAAAJWAAACYL9F9WRtYXhwAAClGAAAACAAAAAgAlUBsW5hbWUAAKU4AAABMAAAAkQJm1bMcG9zdAAApmgAAAeOAAAMErscz7VwcmVwAACt+AAAAC4AAAAusPIrFHdlYmYAAK4oAAAABgAAAAb3vVi5AAAAAQAAAADUUbVqAAAAANTcZEsAAAAA1N+oPAABAAAADAAAABYAAAACAAEAAQEuAAEABAAAAAIAAAAAeNpjYGYrY5zAwMrAwmrMcpaBgWEWhGY6y5DGlAbkA6UQgAmJHeod7sfgwKD9/z/b2X9AHWyXGWOAwowgOcYvTHuAlAIDIwCMvw7BAHjazZPNS1RRGMafV0ebrxydUeeoOF5nnA+bwFqYu2hnEoh/gCCE4VoU20a0cNVeXIirkjEkFxEUiIuCaCOuxsEaxc07iyAxk0CYnnuOLQoCFy068Lu/55x77+G+55wLoAlAI7lOwoBMQuAPveao2PHGi/GA3GD/Lu7wnSCKXtgb8qa89XQ8ncr0ZArZxex5TvIxbdaw9mqf5nVYR3Vcp3VW53VJV3RNN3RLd7Ssh3pcC9W663XOWPTwl5mgQY1ypn4d1BEd0wmd0Tld0GVd1ZJu6rbuakWP9KQWqdfr5YNA9aD6svrgMz6d7v/Y/1J5WumpJPfCptt0GWOSptN0mHaTMHHTamKmxVw1URMxIRM0V0yzaTIB42r+Ny3qXxomL3o3/Uov4Hp7lMd1RYAeciBGTznQSq870Aak4w74TjmQADI9DrTTBQc6gOyiA530uQNJICcOGCAfc6ALUEqbeemmg8T/tn6aVWgv8wDd58At2r+XZx6hB8kw823a748y36PHyDgz10AnyDTzfXqGzDI/pOfIPPNjeoEsMT+hl8kK83N6lawxv6BLZIP5Fb1Jtpjf0Ntkh/kDvUvKzHt0hRwyH9BH5Bi2WD0BaiHmMzpCWLe0QE5KFkiKfm+B9EG+iQXi0c8skH76rQWSpt9ZIBn6owUyQH+1QLL0mQWSg5xGLJA83Ua4t1Kg2y2Qa3SnBVKEfH9kgfBfFe7Vr6MqDf5B++P0/X6OG/EftMTlH227zEM/AZQ63VMAAAIRAJcAmgC4AQQBeQC2AOIA3HjaXVG7TltBEN0NDwOBxNggOdoUs5mQxnuhBQnE1Y1iZDuF5QhpN3KRi3EBH0CBRA3arxmgoaRImwYhF0h8Qj4hEjNriKI0Ozuzc86ZM0vKkap36WvPU+ckkMLdBs02/U5ItbMA96Tr642MtIMHWmxm9Mp1+/4LBpvRlDtqAOU9bykPGU07gVq0p/7R/AqG+/wf8zsYtDTT9NQ6CekhBOabcUuD7xnNussP+oLV4WIwMKSYpuIuP6ZS/rc052rLsLWR0byDMxH5yTRAU2ttBJr+1CHV83EUS5DLprE2mJiy/iQTwYXJdFVTtcz42sFdsrPoYIMqzYEH2MNWeQweDg8mFNK3JMosDRH2YqvECBGTHAo55dzJ/qRA+UgSxrxJSjvjhrUGxpHXwKA2T7P/PJtNbW8dwvhZHMF3vxlLOvjIhtoYEWI7YimACURCRlX5hhrPvSwG5FL7z0CUgOXxj3+dCLTu2EQ8l7V1DjFWCHp+29zyy4q7VrnOi0J3b6pqqNIpzftezr7HA54eC8NBY8Gbz/v+SoH6PCyuNGgOBEN6N3r/orXqiKu8Fz6yJ9O/sVoAAAAAAQAB//8AD3jaxL0JeBRV1j9ct6q6ujvpdHpfknTSe6ezddJrFtIECCEEAtghEVmCAiaIQmSRAFFRkcUVFEVBxgUzGh3E6oCKCoq7KDWO44Cvvjq+OOPMuIyjjDISui/fuVUdCA7O+/2f//N8H0m6qrq6quvee875/c5yLxSiKKqP7ZcVUUbKTfF0gFeEeIPA5wQRbwrw7DFeF+TlAq8OJs2olKqs0hpCDq0hGNE6gpGwy6ENO41ah7MePX0E7YnHceIIvqieFrpxor4e7enukt6kKNmZn87cIXuPa4bvCVP11ESqjbqC4isDvB1uHuDHCHxrgE8I/IQAXy3w9fDVAuKnB/hJx/hpQrIdlSanTdLqnlMX2Surx0xg3eYaKqm2a3WDJnNJTU0NP0Y7aHX7YC+ZaNXqko1x2Kuv1up4qqayiglH3aEgazIbaDnHupwVtM9L6yPhkLmQDcbp0SgaCprkRs5ITrp9YZ2BDQXdYbedMZhCwWgk7HU5OZO4T3YVh9GMd95FHW8zs+wGvOvMum8emCtzznrJZpLb5i3h9++5ZqbRyGmylLKQFv/362/i/84tQoa33kYm/BW+2rFx3vxbNi2Yt/Gaxsrg+PHBStm0xuVjxi5rzEu/l5y2tWz8FPdB2psKyQsVnD7oKyosKc3NVehU8rS1bcWKNrksPqOubkZtumrexlvnLti0qXTeuHHzGmEcYSzpLrafCVFKSieNJfRhViCZfXbkxDFz1rP+ePz0h2ScursoioFLsxQUu5kqoLxUJXURxcsCfHaI9wh8RZAvCvAlId4q8HqQiaoAj47xNoG3aZJlqJRXC8kgjE2ZTat7Rpattzp94sgUebS6fRRSmxRwWFmlMRTS0KExEyv2ZgXtcrJyr9vlVCO9BgbGTPodkTHSamAAxqy4b+aDqHHVdWjcg89+M3b5vTMexs/39uIDD828b0XfV9cj9dxO/G3fV8xzs5B27VdfrcX/YBo+f3px9aObbtn1t0+X7rky+vDGTQ9Fr8SfIfW2Vb33o9ze+/AJ/P39pK1YYPs4gQpRq6j11K8oPhrgbxL4awPQKsRvCPDUMd4R5OcI/Cp41SQvgVa2C3xTcO/i9ksUpXy5wJcH+MUC365JNmWX8jqB12mS0+BT1UHocN4STG6EHimfAz3gq5y1YCX0AL9YO3hFz3Iip+26Z21R9uIl195E3tdpk/FJ8O403V6NsbVN7LtrbwL5rQ7XQL8ZDWaQuVi0HoWJyPq8kXAsCj+RsA/EUM7ZEHSsGX5NRoOck3NGPfm43JCL1DK5GhkNRchURJtsyOurQDD0TqNBxsnhJoao2TSaJreKRoI+r9kUYLwRXwzUwGyScw67z8snP/k0yZdePropR75gwR3lS9Dgvv/6cN9g2eyJcY7LYhcsuLNqUe+RodNH2AOjtBa1Rm7g8nUmq8rqmXFAftON66IRjG+S7W+imcJCq4Gh1WpLYaFK5XL5Zu9nPU/9+F9vjMp/Dv9whnpBO2X8NPg3/kTJnGWjx+Zwc0Y3zLklfEPbibFTp02bOvZE8eyrJo2SyZXsnIbRczZUr2lnDyxZ0hU/UKM15+oVVoVzlD9a7DdYfdMPxDfKSooXjKuvv7atjNk4dj8DX+90FNo4WYE1VBVkmLJS34z9Yw8X9PQUG7uvVFNq0JsuBSULUbmUnjJT+VQR5aJ8VCkVAAmJUXXUaGocRUVA9x0gulpQf4cT+jkSMjKZP23EYURn93++PXeuvZb7vLa9o+ZUYU2HAP+6BZZKUbARuo4IXQLajsl7J+vb2uqZPTUdHTWpzYJAdx85go8IApw7u4/CF96Sz0BzRBk/Kd/D9VMmyk75qfHUYDFFlfKcwBcEeA1IeYko5WaBN2uSbpDcbCFZCjLrNoPMyjhNoUMUxIJirW5vNlXkFHVYa9AVItbujiNdJExTRHlZc1gHSms3I68SmbQGmnXZFzx7ApWjBlT2/TPzH8BDeOvh9Wc+fHbthG+veRMZt6PcI6f/PIB0rG3gbfzYEfwP+r2H8Qcnnl0gXvbw2+hKJH+gae0zH+JN25Hp7ZUDp//8Jn6Ptb2Hf3gHP3FYtHHn/lVJxxEYv4WUFdrKM1L78gK84RjAVjIfWiU3AAqYakQLSEaRAgOEQHsk+wMq5nNyn2xnHxJQ0c2fb7CFg/h/nrvn9F2s/4GP0cP3HkPmt2/+dK1i4A93/nhXhZ39AxhZijqzh6vnWCobJIYyepSgW6CcciUyj0bmoMlsMuciL/ornaDZcaO29qRT6T1WT7ktr7N0IVPVH0pcSbfSrMN786itlvTp9N43+qvYWOnCS6o8XZRkx8/I2cPcZsoBaIl4J5gm0ho+P5h0iaYcVD4WRz5tISLqajbBQQXyVTARl9YLeu/Pv+/QFRt2yS69Q1/pZBiVP1Zc0FBZ29pZ1X/v0zsfbZk8S+GuOjSfbdGun/7BaKPKO2Hqr+9aXVU3feXl/qHDkfro9xQ6cwZ/zclAhvIoylyI4BsiWo94d/HAp5WJBy7X8zctXk8fvXLJ6kXNL65bsl52+oWrlq7q6p03qsz/4MXMNwMpbPBXvfX26Er/wx2yXd+ebjT4K98S+zAk28F1gd5VUDXiyJXDyAUCvA8kM8i7Bd6tSdpAOBVCspIIpw/A3mp3ECNq0ybz82rIkFb9TDEpLzycWRsCy1eIwCK6nMTGeX1ag5r2+voSLNW+qrcjRbWtQbeUl5e/0L4mvMDtU5XkqrKVDEMnmsLTLpvpSvStaZPt6FjZ2346euP4CaPt9Al/08bKnk01RqM7WNudnf5rpKOikFWI7biJWyT7CSTBQ00RkdMJIxXgjdAar4iWFgAFTbIImqIRkj5oSpEFFEtuMMoIBGi0vBqUzSkDKZXX8PnavYCbGlHlLIjAZgyZgKD4kAicdkDMMBUKFoLgUkBk0CL+uxufuA+tH9PSWVWP+zqvHPwe468G5iB638o/3IjxMyv/cAODMf6OX9SB+8aM6axpQjfe+9yNcHz5k/iefYi+/g+9z2J8w1GwG+iMVz6BW0xZwAaGgUMgPhLgy47xKiEZFQUvaiKygEzRGAKRYzk5UiMzouKAQGrGR0XNhYzZxPmIMCIfCrdMfMTNNM5/yYn0BWzprGs3X9tlwV85i1Wpg/RvchLzbFYuMHZCPq3RBMJbl7WrVaqq2PbaaHv2bTsntYS9zDhVsRPpLF1w4ZwypgB/6XxpfuoA+v3chNZW0NoQRGZmh0aV07FsW6QyN0s1vTa6Iwr6eQZTffJJwGl1YMnLKZ4N8DkCMQpeGJPiQNIPbUnm5QDMZueCNHm1e7M0Sq3Y5bGz8iRHIDw+5DXSoM85iACrx02EyUckjR3v4Lod4/2pb73VtZ7Ut34ur8SElqMV3rpaJ7oGLTc5DAVVWepTdY5P7WPHEgEy4m6jEW03+lFF1Jz11ttG49tvZelcASXIkChHS7n9nB9QqIiiLOissdXQFchtZ9VIScfAwCgRmJmLH/oAyZEFyT946GLYx6fw3/CpDx5CeagOv7EPBmgUj18XX/Bh5hLp5MU/uygdhc/V8fgwivH4DXw4iarx2+JzgFZyFOhl/r/j3ohnAF0S2ntXdpwOgS41X+CLuxJrVrexQkfvqvbU/F/6rnNtHkvxXIAvBEySbLhd1B1wRQwaYsYJRjlAd/LBmu/lcjUyEaLMhXCEsrKpjL78e6+hiEMb0jqMDq1L+0vdhtCD7wP8dr//S32FuffRg3je+3g++hX1v/XRyG88r5NCaAdB+W5hRM+kQwLagbsE3I22U9T599Zf8N7G8+/JUuffTchgJHdc9iClhXsgXhdIUtkE/pP6jCMAIxjVEAqZi8gru5n+nD6+efO6fc9dt3L5umdfwD8yfz24IT2b7t+A1qzr7b3yyt70+TJqBg+OjBeMj1EaL8uI8TJL42WF8TKfN14GDpQOZYFvpjES9aNqfnnYjL84XKziPwzU++Q5xfbvgOf0gB0jEmULwUPyWUHRJlPDzwkCRbqF2GQHPOdgloapqak520USzZb6COxcGOhxEZJIsgY0wHu2255Zt6z3umd731/b/9DNPfM+OnrlonVTWjvSd6bvmMn86cA60pHrDhyUOnLpu9fdvH3ewYPzpkzAP7Wln6MnTslgfrM8i0uA70ZpEaNEDHJkI9r6Cl1Olx+iLemlJ08yu/CSdDV6EnfQb6O7aT49TcJRth9w1A989WKK+CZBgaAQsXXhAF96jK8U9uoqS8F1AcJXqUkqodFOIRkhg6ODRqtkXuI2KysBgGw1vFPLF8JIyYJwijI4a8gIaR1hqdlGAwe+BQJfQ3Qm4ywgU0zsJwe4IxQHpjKOvC4vml4Tuf3GusjUQLB6bWGl0oE4B0PnGEvtcx+wdvC/wT+8dtenaIbimtmz1ihWzprFRha1zWxpbQuvdRa4r/KH3rUUOA3hoqr8eJ//2ptOX7+mY8vQly+soume/X0yieOyZwrlC7jrgOOOolqI9YA2Nwt8Q4C4rXmSTE4K8KOO8SGBD0lUAmRyMjQ7NAp4rjvPO66RALBNyzvJmOtNOhWMLhFDn5f2uuVqmSeicwRF3yoXgbPlikBjRwPykb9zPhgTR3UoaAIHqBRoGMc8AAZl7svbke2L38yimR1n8KMv3/DP3+5eNYYeq0Kz93wQ0V1WM/ZTZUGOqVSeLy8vqHBYLpridKhkrTVsvJWdUs/WttKvvIwfO3UXQy8Y/BrZt7+MLvlpC40mXJf83Y/zFOjSR3ZcMqGw2VPZptCsLNHonTKjrMgw3hny+auqY4r0dTUtU+prp8imivIxLFf6kZIll+Ujj0wPv+fL2HF0xZLlaCH+aC0Gh2Ltv4vcFgUxhYov8VaM0eJhvhqSrwcZjBEOTgf4POj76gAfOkbIWw30uCIEwpVHejlidETCHuKNip4s+QmD40lCAnI1C64s8WMJgxZ/QN7krHw97jx4Z6AyV16co8llPFbOP/uJxX+babbrlQzHqRilUpnN5WhyiuWmsvI7Xsadqo8+6t46fktfeSQ6rziHsRfWTsjdV7vyinErbbWBOu9o+/hcBWMyzCyyMznFl0WiFdduHr+V9BUWmD2cANbNRThpFpEiwuUc0B53gLccA3xKeqA9hcDg9qm1RkO+aNbyNWDkFDlqo+QpmeMoZOLkjBjz8BEOqteBlUXcuWBSpO6pghyk7usUFqNrHqnfNrvCubnj4R68EGnoRfOWPbL40tX30jtnFregWG36X/iet36d6FtHO9Dkd+jtnVfuWDhj8Y7zdKAM+r5M1AFJ+iMCia1ppHEIHiOST8YhG7T6F6VdBo8dlDMcMB0zMHt46igMip6YPRgHl9P7n0S7a+mJ0fMiHcbCwALP/D829kVaLJbyK4/Ov6hvbuvYpv8gzn2zV7+B909pqZq/7CiKNTXRtro5veMuGSvhTbOCAtmtouZRXRRPBfgxIaDTiJ8v0lJwieSaZC0odovAt2iSY2BvrJBcQJy+MmiopYav1T7H5mr1wVGd84iut+gGaTSDmLuxY2AEmydflJgujqCFgs/PICEXh/Y88RSFkyHCSYvCaRwhmeBunD2Sk1etI0LCNORyci24ScOSzcDFsjvw7TuX+3wqxmlXFhgYfXDSignPtVoKcxCbQyuMSruTUfl8y3buZrey1jxGlZ+XSI+uR++qc71/XtEeVTF5VtaqYa3V3WNvi+WalDIZrUL7Ud7ch8auW15SGZhttJjm1GsGSi5uH1u82NUcafXO0LDG8ByTxTg7UFmyfN3YpksY00qtRjve5XD11F9XE+vBwjwUM06YE7ysw9E0Hk6tVPX5ExMrEuaSQGFEH5eLfKKLE2QhSkMsCNAb+BkmJRG0h6WGBNl64jOd3sO8hjcfxwl8vC9BJ9pXHR/mNCEYxy4qCnZ6vDiOxEKMC/BV4iD67ce0vD3Ea4VkI4xdlR/Gwl3Dy7VgMniAIZneSGA5mQeDlKwZLUbGLmxFmOG+FqNhI4dKjkRWFiGszMF14S2vbA1UGOV+lUbDeAoYS7zz7plfz8lza5RyWS6jyFJmKUvKmNyqwJZDrbNYAQFPC2ExxvLRypvH37WmrDo216emHfZqMC0VnbOby1Y64mMCTZ6pWjAt5sL5efmWS6sj5X1bxhsc6F48fAepPyhK/iHwEx9VAj+DDInO+AReESQBGp0k4qUBEmClkgXg9yaL/aTRGTZYD0AUigz/SczQhkJGlzHz59GioF0esgcF8V+V4yfBUSXtM1k0lbAHg/Y+4Qgc9rkrKtx9sAMHdBc8HQIfcJt8HKcgzFZnqkNizEQccDEEAAYMfCKnHCFD+W57FN2BdqFHHLk5st3lBntKcMx0pAR6S0V6fbmbXpPeoMq2Oui+CjsTczhSh0fwWwUgxXjQauL3qwXeE+DHCYSuVEDLm0SGphV4rSY5ClS6REhOALEYpdXqnqU5a57DUyXqrEdNKIpSSyIC47R8Qw0f1u0zFpSYRxFVr9Dy1WLYymQn7rNI5IgRA5FBUbMpFgX8ZsHJ80gxVontueEz5BCukLQaceRK7gs0alnHmDFuT0lBR3TS5EURFBjomjDR4ViC37sTv7+c7rN1X7/zPtS4bNkKfHRJV1OTze/2dNddH66txQfv6bKVltQi24NfLEu0NBUUJKILW6cA/xqY39DgSDgWeW6DW6wttnXfg8Yte+jBZb2qJd0Tm2y2rrCmumrypFp86J75tnqKOYPP0AoNt4dSU4WUl6LykRaMswPpQ4wXnhT9W5BSr0Qevdbwx19dga5Gz+Ejv8ufPLSlEe2usMvetZeX24ci9opPD4LbmIWm38NWpXeh5kUPEymlxzSbMFsw9AdHVZWDeYu8pvbx6FncD5iFn8f7RNw/8z0+Lt/IfUnVUZTXJHUjiUSJYYEKOko6upCGI9A/nxeOKhA5A58kp0iIgDx27oQFt71/dID5ycBZPZX6lGL+a/23B2svZv65pGdUW74zmIqWhayW4Cx6wJnf4krPqK20+Me+nmDefTRivXPWq7tSiuWv/+PSe8gdKp0muT6V0x6r2tT/5uXMPy/P10xftDqYipQpmdwI3KHoIkNhenrsluWOsUZyhzdm3WmNPJpSXAftYYmdY4mdyxYZQIBqkNhMiFcKvD1I8lTeEG8U+DLwIypFKVUFeRkIKrxqkhaQVXeQJEf8wWRVxtUCZliPwqXIaRy5j37h/f79/Wd/aWHkEcrq73/+0Udpg3ic6ht5NMzBxHiaCywKb5PiT8BZrMfA1vJ5UvxJJ7GXojwwsMZM+KwIEakRGS0ITimKaCRzEgnbSWaPM9b4+7rn0Yk53X3+2oT/edz99u/BZ00dKY6XtKr8Dodf1VrCFPkTP6IPf/iTP/H55/jz1opMHJoSZDtYgcoBa+IHmSXang3dFSDppKIA2DwSiyax57PR2WjGoP2no3o/K/jjdWWnQ6V15/bLake+j0L++np/SX09utofj/tLRo1CPZl3JM4KPSa7XLaLsGIdZ4ZOiBEj4PV5QV6ZCqTV2NHV5U1si58WbNaqaI89veuEezV9aGkQF9SwY9m+6BI7nEhF0KgqjdjWzQpKlkXZwOesphopXiFyMUcA3C7E14jSUgSt1pAYLp8rEN6SdBVpdc8oTGa5t1Q0aQ4PEMlcqjiWCbmbSYQXXGOwvaKbRVQG/GM5ccFYDdhQ+KMNJugZL1ExUDKAQpfTXz64eDWaja5Cs1cvHiz3+0sHe1bjfnwP7l/dM1jqp2tA49egLHwSb3CvO7BRWbLaqZEbNLlKpa2TFgriYwcmTF2wYOqEgbHxgvwxY3/dPHX+/KnNvx475ndoCUL4DL4bTJFh/9q1M/OVhSzN5YWrAoGML0AdYF5jj8OzURowrcGYEol5Ux841IT6EscZ3CYj8bAd7oVuMAi57nCoxYO/QPmeFgA1/D0+4VrkcjhQHv4LumKhG/Zi+LCjqcuDGtA4T1eTHb+Nqu12dyTsxgfxIQlX8G75a9wn0P+BzIjCcAKFDSCR4so5sw6JoTs5oqCTzPKMoTfJOa8vJ8eK9lS0M8+GzPNMTk/v9uqgakytsQc/XuMdhQ/UhVMt7E5rzSXzq2osRk92zlhVIrrBgz6Z4U7f3VRPP+yuRY3RmqqZ/4O0d1bnWmrxq/iHRMSTvgy1bfJMmGAzxD0Kx4IGjyV6Hh/Sg7ZSINsAs0gCdrlD1DnkQARqz5ryvkQXCtFU+yqFKh3CfW1raIEGOtElBrO7SRwo0Ucoxpq2gyy9prcdH5GO6G4SxCbfeebMmR0KJUeJ2GGk+NwAny+IRqIokLSLCpgvWgLSZ+KXxhwgbrATQOKhnO1QLuKWxctkHTJP/KcDcU+Se8OoaPGnm3vGxJsWYd4/RsE8mJrXVRllHoyUlx8AntFS31Tjl2wBwu/IePCtjFQEPPZx1GCUsJ4a0VvRwWPUixoSFpJx0IswML19RuBRFlEtojXAgWJ1gPN52r1MFucV1UPP6cwmndEhckBfBS0GjszemM6uN6lpQHL4lbu8AdobIYpB/vRGU8wUi6iyV106bxPt/3Vn8XZ11rzd+EfM4x+euux3CoWLedDFZMl0WpfaE94bHAgNNhTkm/UMk6tm2MObt9yzme29Ff+jeyH++pb//mBl9bvHrz/6687OXx97zqFAd+Ml/lHmsoJR5mDzd6++9MNMnxf5ijh5YUFW9umjR9sZpv2opCOC/EOwixzh04RcadE3sq+HjLSAKTQZ1Lb5rP1UUPA5DWWgLKKkSAAfGUZ4uNIDl69p47pI/O/UjkSfwHUNUSSmiHYQ6aCprrY1fYn0DrorvaMLbRNxO32mlGngFlHFFKUnFLlQpmbA8TObFEh0X/S6WJQwaOlHr2kfY7E3ubyqLFmOvki9a5oiG61A3TLlwUPco7fmKJTqORej37y51uCm/2pw5mXlFGQbOava7xhvx7c/r1CgR9ALFt/UaTq0HNWWFiDUfSl68fud9piEW7dwmzmDGJ0wmSlH0B3VRTTI6zPpaIp1N7QBsbnmOdT63R146JIr59k34T/jW/C1aNqSNjx053do0rNwV25u+HF8Lb4d/3mjXcTxkf1W8B96Dv1S79H/oQ/xIqkfzxtHh1YJQyn7Dv0VW4c0tBXvo0HT8X7pcx/TCfZ1wEHob0J9ELFHSsRFIhXolqoq3FsRCYdRIz4QQWrYuTMYRnfAuTB+GPdHhu3quXuAbYsSeyrypyp0S0UkEsGHUEM4HKnAvVX0TrwsHK6IAAJcCpsIXh4m98giL7Id4HcooLdt4H0EqVrwyFqo6dQc6q2MRtYKe021UUUpMQ8AXlUCoUAXh4ifNisIXgnvFQjriQfA1UZ8p6i1rMCzEsPwA/nRJMOwVxckhTyj4VWTrCDMSEzotcPeJUJyLmEhLND3XIuVeOPVYcA9R2kVUexkuxtONE6aLPp8jnxQ/bbp8Bm6Ct4uchUTug+uYUUNX6obLHT7yfVxL3xKOV6MVRpCQRhlJ6czFCIx9+eV603EGQdk53QaAkYawCGaxDVMYmBDRxAULqEzW4ozkQvlJPNDbgAKMXzTru54ov5FZ6jOalTYWmoUhik2F1M6yTXxy1du2XTwwG0bW/pmXLyqd2YHG2wIDv+iVcqKVlvLspZC5GiqtyptrpabFlweT9TQQoI4Y+j5ukoPbYR7tdSmcuDGrkmljGsiPQ1/99JBpDuE5/J9fTMuWYPvS9TXJ+LsZnGD061BhW3SsqbUfZNcTbXik6CLyQ2rCJflzuyQfwmCaaHcVAVYXCfFW0kki/haZaK9JZYWOtgKXWfQkq4D1DTpwaaGHEA3AAUCCNxsYgE8DjHB7XKokTHmGN4lRRAO+JNDHzqcaoVaPbZRlXuVbI8tLt+pto6rPzUt4ac5pJPdHTZl6U+7CoICkyK7qecLgl2304bNbHVJesd85qcxtgl4JV4c7ZLVFDM7mhsb4v39CQ8rb+wurqVpWbVfkLapNUJ/v1CQH8jEFbDAdgGmKCkTqXjKklivOUCoOGGUoJGivhsRGWpt5giFUKjejxMJmhL89Zl9wMur8Rauyx/vJu+czoKDI/74cHxzoXwUFwONyaNIBpFkOmiB5BGTNAIuzYg5AxRiiJiJFTliTAK6EGgayA8D6CTGIFYLzz+6JtBWM8Zd5IyObynpuO3WN7X2wvvwv14eXTa1rbjUXjt1QXzt87LSoXr6/Y1+Dad05uUVuPLo3MIdO1C+tUBVH1a7LPEZFWFvFQisf6OIE/B8h7kIpRItHmXmRGsHVgbollimog1pzeYKr9zl9xtTPbmBityq48ePVxU1T7BzYzyeIY8goMuJdcvgDshOCGRHKWZ6wLadNZvDdtRBEjTykNt6aoLV3dVRK5tQ23FqO1i8blY4aXW7rUNdo9raRrH1uFssSskiYwWcRwDfygIMuQp8xglUGzWfupq6lvqKGpxAbM8YYW/+hDEK0ViUBMAUEduzXHS/VgdJLrpSIDH9i4S9losmKUj1GeKvEy0QOGHggfnAugQFPqghos03B0lQoRVeNckYkiq3NMmlsLdSSF4PY+eTgUXRaEmOgw9qk0UG2MZ1eyv94Vpih2LjwCgFSiI1JJxQrk22X00MkhsMEj+zhi8haQO+Vpe0XwaX0dqkrwy2Sl0yGINtRJv0lsO2Ujeo1V1OvkCt5TU1GY8wQhwtsFAi9gKzD4DTzJjE1IJXhFxKowPWr9MQTqMPR+3ETtm9lA0RCwW+otfJnN3jjGLeBW5ENLYC+LReLBiAPRrAe8T3dXV31fu7/fVfKmyaWtsUQ/3EFluraHZsCjBQUcNElLUN0SiI2Pvvxyn8W4zRCTTtxAnMn0DNIwxakF7I6g2qWtFONRnK3XY6Pr6ppdZYXVlhlU083jUfvmi+vz5j3+g3Wm2qWpvCWDtxok156q9WMJ221mCWPZo7kbkUuGp62zbEoDBitm3D85/8/vsnn/jHP9KPkEcVn5ejyE4X8eOG7J4yg6bWgcDmjjfoWQ07OQLfXGNEBSWFionpR8QvJDqbh15mfsf8i8oFb6CQpK1NcZrgLspjimMFAI2z80Y5FXm4B1B2Ce2qdSgtBICNrDdSgDaEw3hNRvfxcTCm+zMYTygDMLSFaDKm2PeHNATvRVj9N85h/19Yx//CPP43/nGOg5zJUhi5zSRepw3FHEwIOWJxOhIl3mAA/AiX3uFz6YUv0FIwce/Q2imRBZON0Yp8/eSJ6d/iqIDx5i+EfrT0SEpgQjKmqMHvL7Do1UoFE0oJAu7P+CtcF3cNWIMQ+PFiXhF0DrRSqUkaQJ8KpHSiQQkKI+Ny1IS0k3AlyGQo6POCG0O8UlKRiAwqeCtPKpjyhWNxBrYZqs4ZG+t7xlmNi7pstvIxE69FO5ABPXyodmDloY0rmIQ34GeLvIaGPUu6O2+fe93D17c2+o2LF9K39XTZ9KZHV6T3jLp+GvoN+mtX9URNrortjbYtmdc7yjz56IYJo+e2Xl5/rjZuPPc4NRWsz8VUK7RmRoCXHeOnC/y0ID9dk0xAgzqCYC1I6WdyOtiI51Rqjd40rmUyMQQJ7V7z6LF5ok3QPZfvcIcisdq41GIdV4RMpPoSmUj9EVBqoonwnqjaZAvOlLgP2/DojMISqJXLOHGfXAvnOKPZBH2CMrZbo/Hzfj+fr7Q7PgpWaXu0pWVDS5q67E3WTsPCMr58LKtgG4IPBzX+pNudLNFGv4pUGddonWX4y/I51m7rRGun9fJgf1lcxTaGHqJPCYLAeibYH3DNc+00lhTKrLKLqjAftNs2185/yC8r21fmtM40llQNRGaqKlRN9p2OLscD9jrWwk4pR7ODDtvugoJyvpwp6y9zGKYYSyIDkVmq8tSJo0fRBNqY/lrCkNc4g+xDSg5S4yD5WSaQzLGGRCKpCPB6gTdIiTUngdOkwhAMZqx4jlhXzKs1pICAzxMyRW+aDDtjgix4fSGxBjFiZymdNhTOQlQZct360m23vXTrEyj8x5tPPIGP42X/jVTor+jS331/9WE4fBIv/gBlHdq48dBGtPjmP+LfPv4xug0VPfH9e3gXzsc/fIC2og5UdPjqC+IVielMoy6lFlOrqc+owUaCV3HAq8b4WbyKinh1tYhXK4fxqjnATwG8mtKcwas1F8SrqIRPdSQTMj7ENwh8S5Cg1RJ4f7mQ7PsFtKrTJSuBACfLoyClJYH4uObWxGLRZRZh6uJhmIoCTHWeB1N88GcgNe//FqRCWuf/Lwh1kk/++P8dOv3mu5TwbXrX/x02IeoTufOcLyc6ckriE0aY0nAA/sLhQJpLZ0eCYbY89WlFBeMiflzaR38UDFYM59Teli+QvQOMVIq0ycwoCiaHQ3JSnhclLjzckJIjQyxajqxo/Rdsl0zNsVzqs3K6xlrFcnffwSnsNu0po47u8jgQjfczdXblAzOZmEyulnGpByNYyDEWaOleer7Fmi9n03coUruL8x1fDEALVGeOyXdwMpKHiHES4WU9UfhWHQm1eNwyVh91x8hvCEgwPIlBoS8uL1XO34BOIutlT9REP787RxnDj6UXgt9+VWADWvrQOlQ7wRPoWYkfffYVPBDReq252XrhgQOvN6Kce+9A+lalKhZo+/hbrH3wp1gFeAT+8pdX3YBvJP2RdeY1+SmuhSoChJIy4b6zlc52gbdrSOibxF1JpbOdZBKLZGKtjx5EnEz3IOnaCpoEWs0Zx5GScSyNwtGgSUx/G7K630HRF75C66aOV4asVgtttKx/rXpspcpww21Ylk4+jD88wAxccsPMmfGxl9Abt+L0yz13dExqm+gurq8c49k60cgGqjtTs9G03eUY78XPjLn44ptmzRweTwdgbBdVDL4awdj6ERFjMtMiIkXGyooAY0cFKuskxNGSCQAms0GuJs4qKJX4G2djJHYIJtGZRSPwfAxyktUXQ/wkqOesu3xx/VLmosqo2xYARL3qisZm1XSjy5nrlzXir/Glh0r7FrbIAlfOL7BMnV87YVx9T6OFXmQLuixyQNaV46/YdEeLafLRm5vLq5R1uVab2iOLV9EH6tcm8Cn8GH6auXxJd3pFT1dBzH7LXPTd2snj/CJHOnMX2FSVyI7c0NIyijIaTISbSVFi8akJSSPKgAhf8gD6yeBP2jbZ0YvoJacbvYBeNObqch0O7IC/sbjJ6Ya9jWgG/N6MZq9DM2zg6ZD5NgYDeVWpDH52dwlwFYMBf4nM8HrUUHL6PVZ19PQPP3uRciniWJSQiipVgOQimSBJXvgFPi9IIpZ2MUPLu47xnJjxUQfJICVtLpArvYX4CVoV7HJ6MKp+7V6ZwUwmxvB2XdLirRFnxIjZMgNnNAwHJOQoCm0/VyICZ4zEg9u3truDNrD71t6wd+8NS1rSf2VZ2jplETlau49NfzN56VpmMt43Br+Sa9DfsHcfokFQGgxxA2oYu+/GG5L71qoNufiVetIutJTtZ9tJHh8sBjKRjEc4Y3sc6DPPTA/6zOFobcM9uKetlflrlwNHPR70DsB/aytei25sbc1wKEFWBNhYDqg4jpotet6AaBqxj3QhUgEdJPO4kpYSQPWaAD8auqtRFGifwPs0yQIQaKOQHA9dRvLbDUp5jlbHVERrakXwqg5C3xX4pHAOJdM6nIArQKUBTVwOrZsCKZEyZ2rGWcFkjlBmskxEzPJnqrOMyINYfNLvp4/7/fgkYpHHH/d7pl3z1O+fumaax1/vR7ObGx8faGxOb6e7mxsHHm9spvvfwMct+IS/zw+/SG1BRW+gPLj8L7Er5jaXlDTPvSImHddFQ6FoHRq3BQ1KuyLvaZbruDWUGlhPWJTvs9llEGkdbSal+l4wMiZzjJTdID1L6oppn1yq5ic5nrFeh48ba7e3NJ162fFfbg/tDzfJGLnhslnXLnoO/6l5/J3voSbUjqquabxye/eYWQpljr6qct8liZJRBXBdid8+Zsypl/OYKfi/bqP9k3aWVqgMRbapXevbGsZ/fvqFa3bddc0kNP6lrkv2hQImBcfNHENlcgTrZWs5A2UExmMR6ztdYv2TVqxlJ3RFShOYJYMppgpI6R+YdxNQfOABZhOYGmAFPsU9TONkpLzlVpTdMpa5h+ucfxgfeQcnO9p+Na4F5SATUrWMGzcR/4D/hv85UaY+3ZAfCLZOqarMYw9VzvS3JUbXdQedvtpanzPoKa6tLZaeb6HCwkXAfrhI9hu8i0y+wudxIYczFzlIZAq5ZBySXDVDrXxSObexfJK8RuVx4/2H0Ry8VaFJpLcnstR4K5r9Nj5wMUqj6Wg9mpb+GjDwDX806kd1nlmGT/GPmuPHNSj70yD9x/Q/6Rz0z0z9AkucQR08RQVFJkmSKivbiKpSkgdWCclCEG4LqSrN1SiGq0pJwoIMfFRHJqHY1UhH0EUMQi5sGbU7UJy79u5/bPoG/+2bTd8++LdHH12xnKXW4qfvXIFPjI5qd79Jl7x9x983wQdSf3vwoeUrHiUPcmaHgsrUC0vzlyKk5tUe4A0hPgyPFg3wFcf4EmFvsKQCOKhXIMGQpJdUgpWBroXtYknY2eqSc+UDorMaOfuDHIS7kYobaSaZWB/h7EtwYhbq1I62NcSF7aYpTJ39O0JTivKqRE3t8/tj1btzRpQqnw6xwunQR8/37e/bnzq+RZPT6HVNS8w7fnxeos1+ScVw3G0BtxPaFiAco4gxeaIKFNOBfxQQQ1tiIaoaFTLgWSFKTI6SYzlN2zyhwHxU/BrqR1Obe+aXBpkqp9VjdY6pvFgto7OyCi1W7Uy8D/MzG1zh0OLOWATdbyirCpXPX9oC7v2vX0Ml88uDtDufRrGaxROsHrfFY7VqMpfkmU2VkyrGOTPPOIb5iptzgbg846oAIpd20Z/CpiL1aRW9M/UR7IXpk/QQbMJwNNzO9fL1oHeOzNzLLDFHXjTsHGW8IdNZbyhpUpOZWnJzYRFBlTwtb4GRzMpMIdFqn0GUwmLNGy6KB221i3WIblqjc4eCQBkcSuQiZX92llt/HEWeQJ7Ptjx09An82RNPIPvA9X95opvFH6HVaPUQu/Ez4MB78LvHmVXgQr39P+v37ex7AjlBZ5xPzN11/Do8Ez32OKr4+Iabj0v6MZs7ztWDPPqpBCVVIvOuICnCzgvxORIngzZpyIRSXqMhyUfeFgSfSWJmGjKTVJXDagulCn8vHCOFkrK4zzXH7o6C2yE+vR4kM6pzx4AfmCizw+gAyqt1ab1u+vZvwEZ2oaavb7/9a/wC3oFf+KYA3YGXawZR3uObMVpoxb3oFiu+H29+HP9lkLlB/MjtIy9Lv7LlMWRN6vEydKcN35feksb32cg99ElkBaU7V39JWGeQqgMfcZfYZvDqKkS64BLDmBHJSowfMe+OQKBD4B2apBcRT5KPa5JjpRrlJgKLZoBAayHQB4c2mWcj01R0e0srQ6QygI9rk6NGw1tjdcmGRkI2KghgllaKZCNZFoCtS7fXWtggFjjXapPVJHca0SVDMYKpF6j9NIdjZk5jlnvdGioUBNSi7LQvBgTBzAEvCUXhjF1OJg3ETEYAqV8uBF3b+X5Nzfuz0BLEHTiIOKCDm9RPr702de3aXe/gNU+/9Pu9a3vwVz00rq09OpOZ858KQ3/3zNpV+KdVawfVaCWS4aEXXsQn8ZbOo/H40XYlp4Krj9bUpOk1iF2z9ulXX39FLPs/W3Oioqzgm4SoBqqV1PEw4ixmUKwqELoAHwuRYYgHieFuDBH/fVIQ8VPI+CRz8oJkzntSD95acupwbQo4qVHJSf3lA2pkmQr9iwf1Ge+RVK9Ie6R2Zfg9mqr302IdS1qsYbngvljekohL1S2Jeqm4BY5TRxJikQuanRCrXmArHks+Bn1mPbcN7IwO8L2bIgEYvTj7PvfsXDUppkfmRVileRFKkt9giRQ2ZMnkjDpXb8i3iVbHquMLQPT0AHFJViYGD55h5Fy+ZJNygcDZxKQSrTPLZVq5Vx9nYj5gCsgMzCEPgXh59DETo2Y4tveaZ+jot08z9OxtL3Ur8Wfv9DKlwNTe6r0OTu1Lv8t+Rc7de4Dpxa/jt/p4B93x9xcRuvaTB7o0v3O9s/r07qPF76wm049QTR9vTz/57Yv4DDkr1jM2MN9wncQ+m8lUyeHsKyBZOFLBOIPB1B9J9pX+1E98bMYXDDM+kntNc+fVauRTpeJszLIArwSkD5Kp7+WZwFQRoURkXQQSychwUzIhIhchvSMYI+WEkTBBT5fhZH5enh0t9Hf64RffX56Tl3+SeTFBLyrKl1WeMBhOeIqdzBdl2QNGJicFBJQjvLVPwRgH0L3Yr7IOZJuM2QOGHOr/jA8paUKI/l/SIdpAGzGP+36RDr2BVegHWpX+YcScoEqqlloieks1YiWnC2SqLsAHjpEUcpUU4TILpKAzWRUg8x+9PrI4AB/V7s1xuLPIrlm3V5Mrig+VrAH3aS9D6/TkRFi7lzJay8ku2LWC/JJSqT7KZI4WMnJ4tZujMcKp4RUIitdHyg3h1e7j5CY1TV6NBs/ZPIrLNebaWeNy1XVLO9GlnStj/iWbNpfm9ffnlW7etMR/0ey5eNfcS9oMFV13tzg8A2j0xyj68cf4nY/RSwvGaQwNl/aOtZUNDFTkP9y71jNtRtc993fNmOZZ2/tQGdzDWj51x8Iq3ZjuK7f29+/89NOdD3z8cUaOHuM6ZD+BhYKxMzp8iPyYkVnrMNMbh1C1gI8KzF0CKhXSq4dmwvYIPjyEPhRQNaY3ktJZiqWUZyoUbm4mNUqMRa4gmQ0SVY6RJSyChJkRF0KsdgUyFJcBU/O6vC5ORibCEmbkJHyJRSRKHUM+JjOxlMTfPeaYWBQL14lFH6R+U6om88pZUirFyZU0x202uZgsncLF2sIdbfUK206Dhms2GbKt9aMXzmnKQ4qmr67C311ZpGZVSnm8Iye7kNMrclhkCQQ63SXop50dzDRH+bxid2p/bt5WDfrstoGZy49dPs7JAmMqK86xTWmKe2mmYKJRmW/Gpyw5DG2vYHXKbG6nK59RauRFpnE2Bz1qvEKzRaWhL7NFg2WVxeGSwiyWZlX7pxSpVcGqmpxsI6uWZ3On/6fY2+ksQd/xqC5V68rrcJYx7xk0a622hx6aaYnsW/d+kdzEjq7Jr3SaymuMQdNmo9qRvXxZcPxFyyoyui8Pge6LY1YlDRaShk4cqEc+YsL0zKOoTsAfHRFQw0d0p0D3Cch3BL9xlOSgqE/k+exrZJWBTA4qFj2Xg6J/pIcqwmB/jlaEU0fRxbWOLAv9adpVURGMMIVADz+X6j66ZD+INalSPkksM9E6VrUzdegbbEib8XG6q201PoJeQ6/hI3TfiPoXqe5yNGgmwb9ASCq+TJYFQ2RBj2SsPhiUyjD5WkC/BtFRGBUkClsdJLMp/o+qMtGFV4bx0wBsdaXp7QTtyH5tWXo7wbtz77OqOJp2BM2pr8ePHsF8/D/UbuL6btwPJ2Z3d6HZ8ThJT5H2ntkh/xDMtUL0yjzUpaL/A6BuEqvcMhEcaT0UwLnCY2QCHEE3ZyHwaEZryleJRsfkJrUQlhpxGrZan2UlFkelSyrJNGEtGCFwLDNTfCiHHcUoO2OOOuzmGBzBXigILv3ZchKXczO6HP2E/oUu34znnV508+YTaAqa+s1m/DGejWdmb+kdeLx3y76h08GVT16zsiPBztyMFuL7N6PH0rHNJ05sRoH03nt6e+/Zl/7myWuueXKNKAvHOYHdL8qCNA9DmoKxgzWgojVtp3cws/H+57GBjrevOiL6FX+SNcteEHOXStElpvvpfrwy/S79bepHJps+kg5n8v3inFOFVC0leoJkpoTsAi5hX4JkIQW0Y02CCZN5qKkjHSuPMGHw7Y7Q3QKZBsKEOnpXtqUOkwwiNXKNBsewDLvA/dBeYCkGEvf6ZDsCbViAFn6E1v98TQaNNbMow3r0IQZc/LfFGch3GeQh2XqQBGkuGold6MGlItyGJCuppJbOLAukRdpgIWsmmVIfPIKW/mLb5x899sCNdSrrsms+XYpf3kufSE9HL2n8TT07FtYu/ezPe2ddhW4ZjtfO5v7MNQEnIJV5Mn2M0pPYsVRwJHqmrF6JmKyejejPtyncMpdFqdA7qgrK6mr9mJPTS2AQPlqeOnmCuQHZdROV48YWFegdOXKDvdD4TzyJrj/95+FaDNG/NwD/CFO3ilU8INmBAJnXyEl+RUT0KxiQcSlWLCEuYXGF4sz9JEPi3WQWDV+mHWS9Yg1VFaCt1c0REXdoB7MUYmKpUDeYU6ASK68CRBmM8FE+pH2G1RcUOsksa54DdciRJoUGY2TJHlLjS6KIDjsld5EgHOzoQxFxQqjLKYXhkMFkj2q8dg41X5Vfhmrf/elB1yKX3f4vnMT/xBclTqAd7u/RRUiLnmw7gff3WMrxm+98O+AJBZ1uVPgKUr9yCH93iBb63kgP2O1w6bf41TNpexguqkfUyb5X8ZkBj8eBntv4yqtIc/CgGGuWeBtoKvRckIoSb1ROIrfJkhDYvfxA0hMOkcWuEB8L8OZjYBEHreas0r0NVk4J/FdDIjgkAObSJIthD7qbDSaroTeLXVLsJBMzkSZEGUcqiilTXOZyRs/u6cWPKUnhzJo2Mg+cW4S70b3D+f8DFXZH+RT7Q9KmHYXA+w5jDV7Evi+0rzrMDKamHO7tYIW21WsSc+PlJfYp5eJr6nYSuURfo21r10q65pd9KFs6oraU4ej30wFaSM9Gt9C1aP1wjc9C6J8I9E4AEOIicVaW6I/y1SQJCQ6sEyADBE3Da8kb2QJBCBEVkg4iTpWRGjJbuEEJnD/HUxIVk+B8QJdUl4qTlUJ2sWo9RmbHGpXIKE7wzJCLUlLebJbmyMW8DhcyOULSZ3wGOWfkjiLV4cuu6JmRGP+7rha0Bydann6obu6YjmCNMXtGovFo19GjL20r0smC2pDia/yno8wP/0I26YPP/0ar0i0f7Fi1Zdn8qWsEtBRdfXKmc3xsfsOk/FzyFt33kKdANtpYn/VpyvHtSfjAUmEfMuay1gyWSHJDap/yKDeZB5pZkcAzotaRrEhQJBDXPZnPAlPNyjZYRQjREL9dLZbTVYmF3S6xnFvrioADbQRjTVCC1KNFpekWa9q6uhJ96DV2zfE38R/ePI5mL1+yYjH6RqwL6WpfxVF9iSGBo452dh7dGAxuHKJACLra1kh2FX2DXmP2wLNaqWF8y5Jm+8uEs8t+mUSIdnI3v7D+5gPr6PfmbNgwZ/a6dRK3AFsZImu8aEeaeqnQhQyIVHwu205CfGBuQ6ez0R4iu5iSis7XtNGJjl58HCfQnuOkr4+vah+uVz0nhxJpoQUmK3UyHUKDuFfEoT4pJzQcv8yjCsWc0DSKTIOzCLwvOGgpIApp8YNC6gNJZwkorAoaWQ4+KwkhDWpyyXlNPpzXSBGyc7k+v0AKT6l/j2yaz+qklyAadfYwJurmuZqcjE5WaLlFQwlp/2n2/S6CeqCIa/oS9bYyv31KxektzJ5Ugu2JkyNNX5+kXxJ3tFJOsD/14pwcT4iomD8oxfhEXzJv5KyQYtGlFOfnPMPQar1BlcnyhfRGKf/hcHrJ3CmS4wiLhY2ZoghONrxz+FO/rM5/+sZYhaOSXeIZAi/zFT8KrXlyZe9AH0tJW9mOFLXT799pdeWgRmUZXcX7/adeA9R+EholbYgusPgH+X7uMdAEJ2DP6Mws+0KBLPaQK9qDc1FvohFZArEP0hodrlKxcI5KWgrFo5p6qWjfpKNYwA2KhJ4ot5xjKdrs1ZUhNg/RYB7cXpqEpkgWOSbmjWkwFwhcGw9NVvPxKuhHUDbqeesdtAjR22j2EXwSb33rHXwvTm07yryLLkOPoYXHuCP4wd8/hP/4++tRVd8tqPnhWy25yr5b8UvTp91qYXVoTPnlyNKyyBev66BfeQtvw6n7afZhuPGSd95CVyBmG00/BDe+640/oIUfcO/gX+EZ+P4PGHqlgArxJ1bzhodR27K2sNG8Yfo0/NQyy2x0qM53ZQv++6LyS8T5nQbgO+tBuk3iKjpmUVzVwnBdKiL6wBD2wQD7oDPkA09Bg1/QX6za3b9hwwSFYu6kKfjF34oMJA/djW5EuvRiwkbM9Ut3r+3uRr6tD7whkpFznEcLRCvOuEPk9k6x77gJu577EcmfpY+ni/6O51y74GmL1nDdU1ePNuOx9G56K+49smUFfmrG6OF6WnH+O030UqukHQh9iD5MJZg92I9eSOvpv9N++isJPzjw+78Dv5/kHIrJ2pGc6EgUBcTZq/5AsoQghaVIqxsscEjLSJC5BnqiijG9WJ7mIiEKAARzzGGWhXShoD5EwMFllyOaedVSy/Kjc99W1vr3u6em/FPcy7u1xQ8fZz77/PQdB1q33996UN1S9tRSfJA9lZMbOc3V18sCE8Ke2xyOGVM1vjl///vzJGO55rXlmT4awYUzdXy30BF0a3o2zadDxDZleB1lhbG7RfL5JJYd0Uu2EHg2laKOsGJpXopiy4Fso0LhdPN+NAHNPjLMC6VYvhN6ZboYY8sVCO+wib3CO4d5WpYUYysh7MwJfALV8FnaZ2idwebyiHqTS9Yt05Fa9+copLVYnW6f5HsAk4/q3HZWZzSoaUBMuUmcNEEC4i4nC4MuQzHAHRK9x5/KnkSFaBqyDywY+Ovad5/c8jdk+w2KfrZu3Wf4nd88jn/72SaWHkKhLnxyM0jgTPTYY8jyyBP4j0+u/fKJBX07960/DjfrQLHjN9/wMf794xEsdIGaPJJpK/qG3SzijxZaSxBIJRY/aYJk1RkST+SAo2oIEpHKC/1wHZeU43ayGZu1rnMOIBPdsm7/xnUHmNID60R8OrBu4/51Ga6CvpHPznxPPjA5UkumMgAWKISkxhqEbysYUVUlfRufq0nqpJiT7WdAaM98r+zn0ChseHbDOniQm1+4ed0IpNy/EZ7ks2HYHLEuAcm2GSleKWa/1eKiRYR1S19mlolTzEDawwHkkaZXnvWiVrahVyduR6idpdrgIdFLbSvPloGiovYt2pm2uFWvz7FOmand0s6K9Z+nd7HLT98h6fsslpKNI34gYJuYxCc1g01VzFU2W+qeqqZX6v122mGuNtMOu78+wxVCzB62izw9SBDRa7aLlHxKWFUkn831iesZOalmajCPVLfJxBI9krFxiWMpzcgma/uAJ+Umy8doM7maAilXY8jL5Gps9gvmanQaUWw1NLypFz1A7bYUmoOuR3NS27al8KP4JvxoKvYWakN3ora33sK78Qq8+1r0IHrwL3gLc7t4etvIS9KFaAtqe/11/BS+Gv/mzTdpGkjKevQYnpmpUxjiDNwA2CgvFaFiFF8oZqNY0VJVBUkmSiNmSElKlEqyZBaJxV1Tkywhi83pVSFp9RvwaeziIpykopYE+qVq1fMS4Zw9H0XrUJCsxunyueRffE2v+PqLdTe81uFddODSQMfrN6zr6mEmTEWa2+9AhtZGpudfqcfKPjJUvO/JU1T2VO5eO7COHVqdmD49sdrQNLnFOz8Sme9tmdyEd6Zs+YHQtIuCgXzmT5tpDaIdjqza9TUbN2bslZ/zAM+yUFXECgOLt5IFBEjz1NBOUR+doCHBQDIksaFgzK2P6mjiaxNVNBciNeuSXfDdseORr39qcfMbd/XxfN8cpwYVRi6au3o0M/uXzvg1E9El/WgSYh99Bu+b6Jo1b8GM8cWbL/hu5vlngL2dDrJXROytSVxZJ7P4kpziSCmWUqwZNJmViN5c0lTmwAr0k8MRr6enKGzl9Vb6tvQ11vpym8KKUpgFP2fQpxuV7zWj99C7Zm9xXn396d/VlRVyZnoK3WLmCsvqzDiCq85bg1APlmVQA1KPQOaTRrGjqi4Y/Ti3gqDAUucWChzqku0Y6jovZlhI7lkg3vPsHMsMq/75VH2yNAXgjIvZQch1qotmV13EbM/M7lx5mNme6j5MUyeBBtxxMiUMf+vKDnwEhYe6hJE6rAGPrpiaQA3aMjpsCoimyT9Ch/MkHSbYkyfqcI6adUqoY7KJK/cqXcXnq3AknMm3ikt+BkUtdjmBrXkkiNyWRrMzWpnG/aCp/enYyjeR5t63JE1+8x78jzdXonFoA3oEz2U24xvwrvS9RJdffgWuuuee0+nj9yHtGyuGdRku1t6D532Bln6V4TgnmRDbL9ovIE+A2NgPkJA5J83bVxF7SBam0obFbt3JbL//fujBid9u2sS8uq6uWbQJx9l+br845gXgcwyaST/pxfhgvljJQfx+iiy+++/Dzw4XA/YlmCxxeE62relnZqdfa191UaK+JkGGhouLArFG1jy0/0d4syMu5mrwSfkR7gn4XhfJRMXc0swyaYol4sSZ3iR8pCBJWQW8r1A+hTx7mo0d7S9NbbFYrlLRqlx741qvRjs4eRVqRa7n8tzYnf7v/tajEYv3N5NeakvoGyc8tadPRf/FlG1fO8GWc8vklegm1It8eU78Bh7/iNj+M6O5zYBdVniOUsSK6GWSfJGzCKoC+dCKvggfzXvh0MRTP1LG0iw10BY+/1CSRad456EXRj83/LZbw+ccSvrh7dxDe9X+XH3pC4daT/0WTmbDJXvzmHx9KTjNe12sE06NfnHIK57ya/aWkA/D9XtL3Tn60kH4gP1W+60uTq3V1QzCdWQDp0a8CVfAhiyZ2ZDDsDnq3Lx8p8vtLymtGPkP/aeTfEMeSqpkJLplGl7tTe9hImRsbYiR6aPDwk7ng6LGPMGoj0GGkMwU03tYB61xgA0jG/bm4/iwVBNR4yixoHttDpkd/XcN2lGtdKS/Yeo8dtxfjmZbegcGei3irt3zCHIfve76P+BPUt/j3UY7a/dY0TTMx+3KWjRdnCutOKvL2YDHPipEjaOmUp3UFdQiigxTEEZrkThaZEXfICFYc2CkZgjJK0GhOQqgi84iMTx+jrZBzyrUljxfobO4IhiOVscbm6bNJnGaGbqGLHvtqOaWKYnKuZeJqh8sgyuL8yol0NOcS6YBb4+K4ZrMMWMy6zxuD1kfk0Znz7mcDKkIYmXRGE2KTch1Yj0eGHIfqzeRu8CRBrDTaEBRPRF8A1yxsfhav6ZzStf+tkW+QF7RVTcpc9Y9s7X8jue+QTcBA/iostaquQO19i4PhhORZ+770w8Pbi9QIAVqMRdOf6naFI+sYXtWfpK0sd4CfN9BYf5NwXUbFVj47D106Y9zr1rqmgyQgE9+/N03kfHWyOU3voEm373CoOjpcmbbPJ0tFw89s30iuurV8OECFn/H/r4+YYtMzlubDtRXWN17gyVmZPgvrb/zdMjScef26mCu6Sm24gQ+qlym8k6tRo8gs6XDWDF05mlUZlNcmm8P2ruk9X3YetkOka8WiCswnoscEd6fM8yFI2ReqZaUUyGDHXbsxv3PP7+fFucibty4kd2ybt3pq6Xtz2xgRIlIeP0kIXLU+RzODjLTfM7+GyUOVzzC/lsl+0/mL1qHOZzDLQqB0ZbhcKIXckEOR+r8TOB8SAAQkxDtQkTumjeRDpUh7evEqL+9DX/75p/QLrQe9+HOC5K5adKHV7yB/3HfW/ipt6558+9fAPnb9dXIXJxZwtXs83G16uzSSEbi3IXOLpgpPR2Y61D7qsOpw0zsMBhtoW0NzQLW3ouvTHURky0Ish0ES4nhTnVJOEsxYLMPK4q4o+DF5wEvFuu7PGR1Opm0gI2HAfst48welINiHjASMmRAzcYEurpK4bAzDY5aOQrlTk5zG+W1jlTn1OcZF/KlPkUvR9BdU4076Xn4hGzp6cAk4/yDhTXy44rCInb5RKOAfigqVAxZO4+e3vPRp+8vsjbRYwZS2sy608CVvqEMVAnhegVn65CNx0i0S1wvyl4AWpyjKqypGVnTJyfdAvAi9klcNhwhUCMxVVHv5yh/XBgSUJZx/Lr0YFkt7aibv6xn+0AvPZCe8TD+qmPydY48F00bSB4O3TSwnNluTcyrLUvT8zctqi/OwVtpI03hQ7MmjH5++rgnfbrhda7geXdceC1TiU6dVz0oMhuWEpeMpYiv/Z/k2jBSrjUCif+NlOvhOjKHV/JNiFxTCvA6fBeuIwvrxP8iAo5J/SrwGkLJQijDa2anR/AaQmlErgJy/Q/8B5Dra9C4v6Cr/4LnDRObe9OoE92A5pwmxOZPb4OPcu6zRC1247lgPG79mV/mQGKkJUS8ssw6ruJ8feKXDcpIu0mLNYEkyhYbqhVl/+dNWfoyykJelPXy0qUv45P4Y3zyZeYy/An+16vLlr2KlMiNFIeWLj0kytNw31oysT2zQJJl5FusI/rVKPUr0MakkSx1SPpV7FW9may/C9bign2KSMWFhrN7L2Ac0Bf7EM3vPUPtvaAp+PMNe3mM9+3L1CWDHDmgHzQkO6lHI+VIjrgRixLX0M+PnsZ8IDKz8mmj0xNqmfsQh4e2IqBY9+Ah8QUP0fenH6mRJC2a3lWLzyAacWQ9S3ornMb3k0uI/CJEK2zsTnE1KJ2YedOKqyqR8LJYCX224kb0DIfjWZ6YwzxcfaM5V3JjTOSMOVlef/qzePmPDVkXIfQ+u/x9vDU3K5HekchS0zvx68XRaDEaFW/Xxb8rLz/RoL5I8+WXWkHQirrUBxzXBZzASObyq0ntlvh/tKjIKIn/O0tSrybLINCS03ouLoDOokxtGf2XgoJ0Xlkts2P7jvsfQFlRtw19YAqa0Ac2dyw1t7eXeaG3NxMv4wzn5Y6ZLCYL96bwyNwxWSf+oOyP3HFqvDg3vkn8P2MU0optCnZ4brye1tPiQvX6TM6HlLnDDhPjxCoT2ImS8l2yTo+cc8E2GhNt09ma+Hnzf9upZNx+1ZbK61e5QzdXz1vc7A831264/97YqZ5ah/X9rtvbSnP0OdM6r3JPaRzXudXqVGYXB+Z9U5qfx2Rl52q1FeWzmKX4GfwaPiNUqy3F6F15ljJH03eFM+6PFcpYb9OaKbXzqwwqry46pb2+uWtyeVipr6n+1Ulm9Jg3Zpb+9uLGXS/f0r1LoWxqOijN+R3hP0q112e9yLORoKpfKKsmsxRI8erPPMrUcTqefpX8seTl5w7mF8/QS/alX9xPDeeqzvt+quoC60UP/523+H0RMzsFfktqgJkxYrH7Sc88w7j27cM9+/cP5wjlH3L/D2VvAthUlbaP33Nzs7Vpm5u1W9rsadq0afambdJ9X6AtLVCgQMGCZV+kQNGyiIgsRXFh6QhqdXCG0ZsWER2cKSouo1HRD9BRZgaXGfUDPsUd2uv/nHPTUlDm7w/a5N6bm7Y55z3vedfn8cCfjvIySbja3RBmUpwofpLoRHmYSIoFl0HydLzxoEVyAUYh0FuMGSgRadDzBQYBkOvk1dbXWgXK1jet5eXWn6Kt1a1iryCspw3ULPan9Lbh71qz2J9mUTSo7eXN6AWf2CagavL6THBLZv0EG0jM9NOGWQilbpYh6uoQXMvzub2G4/HAnAzQAEAjgTAfAXrE9Qbwzzq1upn3AHtl5L0wux/cAgSk4xS4FcwNr23iPTzyABoXMgFaBedHLqDeaxLuTaN6WACHH+oALk8GaN114ExgL9gH9o2CcpPEKBgTiUvdR/vIL8O5GoR7mIzDkIhHPDoYix4On1yhVhHqay1QCKEKN25xAwqXMWqVlHh1vARldIoq2mQafiG+taaIlxc/U+s0DXekb9q4IlnD33D17VSLjJXGikSSTGpeehx4z2G1KtlyScLV96ozNVRPRhz4UC11N2dhXBlhxK7qwtk3PWGGlkUW4US7tRpRWcBfz7Wv0KN9QkiCAQ34HhMNv+ERnQk8fNrk4Rfz7AqBCDquAqDg2Ysybc7hy8NfO22Z/WTvyAUU2EDf5PnxZ+fLEthjFPwHKuPL+akFap2SPQnylDp1wdVYqpu9cnUz+LF/Wz9IhQ9X36O6geDq5vrRC2gNRv0cI5wl+BNcey6iiKgnZiCMHTiUQRLpFQHSKgRWK7E8BEcI1NfabFDmhVBF8B5xHzqKyzhxAR1U5HIBPkFtgQCeKhQg+9Sct4Z2TIhL0Wo9Kp1IFKOWz2YLPvqoOb8uu7JOB04pJ0wZWbjkYKIyTjlh8s9LFh1IUIKTKmO8Ji9piVJlbPEuBvZCs1V3sqiounpI932M3ysxnTTFKxSN8AlknGJPKaJ0tZXZYplcbkpIN/vya20fgROzZzbnr5+wY+gt8rE4ZeLBJQuHp0yEvyPhwKIlxM+TJ4DaRoXEc9LUqHBOO8n+K71AN1RdXVR0MpF9yjZZugT+cKNKuUT5Cz/B/Ct+guWX9lTadfaU4Xo/QW+6mT3F+QnInkKdByaclPjvbgK2/F9hD79K7gczOtjwr8d8//0gvnfMnnoFND/J9ncAN/gGr9Vu8l9wn5RHetzQkuJ6MnAhig68rXNko3a2O8G6ujqdy5NIsi6SbdOxGp2ueirYCe5trdbpSDZ11AbrJs/BnwcNcF+kYQ43n2D8pmpduw68pdOxzkSvS1ddDW5nN1X36XTgE10betBVt7JL2OVTI1hRLuo8qgX0cXkBrEGg/SKRyBQ2QaBkdqP/pwfM36vEUbNKSbYs0zQ8Rxn5G0AV1U9ZOf2j5homkV+NkVgFuromcC+4t6kOt0O2owfwhRN+RLCB7YEf0QkV1hvwNY+O+1lP8i7xfviV3mNwnzsL3It6VTDslNPDm8V2ZWWBrW67243gpZxO+y8wMTyRujLU73OE3RNmFRyUGXGjDTGac+ORYOvw9+Nzbui+l/hn+Wd/rVaglu3Cdkf3jfddX9sy/D38yQKutuWarYRwgfS4CkyIcYE4LxxnYUNCEhVqyDkv6ZoXDiVmdF727d27D8zVkF9Yc3OtI2rNZc44YnUqNZupMXp5W70mDZupHv2ddwmj+PG47yCSlfGMml/jToqs5MfQAkuxFvG2FtjIK/BYYCs4n2NIAcNSTZIKDKcYc4ZN488N/l/8fHr838kff6IhWWtRkXWE1PAeTSY/xscpyWRYI2WpFEMO78McYwpLqROvP1eNfoZrGCa/jl5yA2LJr+CTcD9nlJMpD2oYwORjPiaMQ8q4UDEREUaJChcGJs2ASkYYDgVQMJqjagpluKBbITWYcbOLkGZi/jt7k8mNYPm9qCHNIFSpXRE2NESXVkAiw/wm9E48MkFV/rxRL5XMk+WLgprKv+mNUopaUCwRB36N+mlGvFFb+7pREZVovUSmxlsTTLf8LU0hVYoU9BeJQiqOs8ki3FtyYjLRQdyF6ocEduYWKH9bsPzVhJkaaWgh1+lzN/zQNQh6XOFnFtLPxgm86vopc+aP9nYjXgyX00hAJYoItygC7mlQe3BFVPgJipZXpXZicAVUpI1wNVVCDufYEvn2RbBgskhkVuBuBGhdCHRwt/dRBC0VmjF8IjTUsgDeNb0WuN1ZxlNycUxer7L3sz/2vd4Ibvk02pYu1iRSCmGcSCLmC10dZUr54lSxsbHenhEb55v2oFDI4ylSHpTS9XVGs5hSWIN+sTKapPTRmnh626yptuPe19krt4MFAj3xMyhgau1OJS85x9hTLqVorVEu5Nnt1iJjIvnGQfZ/EJcYEMK/ZBdYBER9feyP7O5bzoJkjSIpUZwg48XyJSJJrCja2ZEbEIkoiSjOEh/MC8z3TnlbWFORlvmHJHJKW6bV68kLFpXGy8RK6JuS4OrRpKhEntag5SmnbeP/T6t7MlvNfsN+/nnx1HWP2VvLeJt0RW63VSHkZTmpBEniaH7/beFE/tvQXkonFhBcLnEUrRtFy0/Iv23gwuKElAFDoSTyJyZ96PkCz3ffcpcNUkY/FBLxfmLEQ8SzBNxDk/SG9LHI9S+uoHD1Dc4mSkLKdVDzylHbuEBthpuPU4WwY+BCNVuk5fxyG3/AVs4vUzrYIUfHKRNQjXw78iOQWU/fksUezzzGd2fwLRlufjxVYbtaml5GgafYLTi2s6Z1AdwN4f9G8BR4tG2EnHYks7g48yFbQYHteg6YBNQjDD8/wTGuSTHLQBJnz6pkUHCDlMdNGi20QmAw6WgBRWq+BivOrjr/lwOLgy+zT74bSB/uIy+/yD53imw/zf7+peDSg3/5521nwW1fJw0ftOWdJi8r32afhTZL9M/TRbmCcgKhhjsRuqsqFfgsZgEP4Qvh3RBtYwJuH0NI2Ny+jyFG0EU7NDCMum0LXtfnKIU5yV41GQbf1jlJylOvrVGwTlZkNmbEjpAq8uhisjopxZRAUuXFCXUa1j/yiSi+mnwmxy7S9TtEScMnDFZoV7NDzhryszpnQox2ZC4oiI+OSr1amwz+oWGDygTwdmGJhkpg2wF0FaWRWjCMJyCCVkQi6v7ApX96VBd448G+PNv5RhIq1lzbx40ktJFz4XmYJNID81gCGvT5HVf3CsLwCfvePz8l/FAgRNoaQb5h0io76i/AIEJCAGIShEd1rNWU9m+bnn1BkqXYk57GWj0aqDJtw1ey007b3Gy8gk9vSc8aGRjFHP0e7gH9XH6IWIZnWBcO0aiTX4MBsNUIABInjMB4cGmuDCwOHpnCjEmKPBtkPI4WtDFQlStoRuYPmeLgGY1aFRkJtCQ1Oi7jGKcYJT1Dco7SwIRBT0B9pvPiQ2hSjiJxaLkj/foP7qAaN3xwO3vx5RPsl43ssUb20kvr/17f91Ff3+JFv6Ma0cFHvAk/E3/v6fn7+peAjL3w0pZNXbtfBvLb2ScW9+3/+4EDf98PHyO9gz8v46di2Ub46rlEKfQn9nE5XKbEhQp3rE5UFluBGlkZFxyECVinxznRp091ogFANrMBQxlFYVRw1PdkcTJlYYSIWcaRVFQ5GRvK0CPa0FAC3PSeJXkiSQwtEyLcuaIyeMGabne5c/xZ2NjWJ9OyQgn0deJUJovN4Q3W4qHycPUrFporYoFDRQvUYw3lZmlklMCv3MYVKKPbeGOj2vtW7/33w4fduzsbVza3+HMb4VPzSrJr9IX771/Q6M9tbs71NzasxE8d83bunHeggieo2Devt3fe/vLhK+UP5zc2oUwoFV7V1LSq8epfrr9nX8XwlYoPVjfCl/hTAuiOxkjt2ShnZSlc42jPLOQ6ZnUINAL3xFp0CFJDiorTCwW07CgRnWrwBUpvSk9pwgXIHAkEhj+B2iDIg/tjLE8o4MJNFjMu1b8ZayUYtjrucZYaEuMkVFZyxhQF0OemCbKrF+XekRTXvn5TbmadVykLFon51tRoieimbJbJDl9HdOykwJJyydBhc0WaKNHaXKmLjX9y2ksH7rCoZU5r2jvvx0lEMUKxCNu5Twl7+BegDKLskQXH9yN+mBjzZtE4bzkuOW/B27bRhJgOhbHIY/V5jWoakXsJbn8PGOFnM753hyj+mZa8UvYSu4fWVdQOb9m+sLAIOPbULXyEPfcubxl7nD17Zv36s8DyiMMvCvxuHk/yj9jYkaNbl65caTIP3719uwe8qrzjTGQfJIX7BPuhPvMiTyIFFACzRY4R3zAAEPK6ffxYwFfxKTXiYjRBRxrNAF+l5nHY/wIJyKfb/f3bt+3x+P6x0GffGKdkw++yP0gkW9hNOQU8lwTkAEFXbXZmHlDnFtHsSXg7e/GVx7p0xueWFGX2UP1XTvuDEqu9FEw3ZdUpHd1/XF0LeH0f726VdKx7YFHL/rn/eaOhXDI/h5/hD0iKzM3sMY02l+LJrRG8f1z/zCeioW+VwFUPYPgQVFrLAV16uCabRlKB7dsLjTwXb58tF+UnAtbhjvA8koDqGWrlPBvYGwb7rIFrnEgoX5WMarMjOXYNV5stDUdKDGhFigDad0ESEZ+RyMKLJUnaVrzgrr98dN9LIPZMT1NKStP6M+zXL73IfnN2fXMq+cZ9H72weUFRBp0yqecM1PN3gdiz6yelpk5Cd+GYZGQdKaH0uIlCaH+7CES1UjGG5FFlD1UjD6iiBIpSkRh3OxWKCYFEm27PySe55SSVBxHhjXd0NUHb02iGMmakcPTEbETJI69v7JQ746MTI18gV+mcPigDlxs+uDjy73cqX/kU2WwPvPY3aEFe2Q8WxpuNj4AwOP9EtdVVu5OdxM7ZZlTH2YCInHI+YDQVvTxy/tMsRZyFtIMehybJxz7KRhkl/wBg3apl7LdhMszex/6nYYlL0fx0993gj9++Du1CAbZS799bWS70x85tR2Aik1qiHJLhppgJFdv0ZUXWVYGy6K9Ko9d9mZjjSD6zOnrklR7d52JeBL8xwpOlICyEB6MiuwmkfqrGsYkh9jAiVAX1c6hEhNHIC6MIfrTO5sgNVl8bOGCkVOpIyQyuyDRFRi4FxJJ46AQyFPYeGzuB+bqxgysIKqZzrd8DKRB/NeHo271fswPPPscOfL0DlIq0mgfBIXBsb6JManAnbWJXsZvXNwQS4gr/l7S/HjQZc4+w9JkssTIRsKDdoUvIZl9mMxMF4S8mbV30zXNw6J76mWhdosx/essGcNc/nwX1X/fugD//aV2B0B09vZV2Z5kEcRMmRmcp2fPFZcqKgjvMgfy0Jf7iHyxpoq4P9DZb8okl1Mj/LU8+IxGPyvp7wun8N4hMQkOgojpTeMCUjgrzTWpxBmCy7CE7l+6mdFqTV0Z7vNCJQd8czpHaCNCj2aJUqNSocgD6MtA9AVGgEkwAvCvsirrFS3qs61ctfuLxjyVsKvui5/CcqsNbHC6P3PRyzyn2cm7P4T88Dj4HckfzSntc3d0l6q5/PZJtjgMbZ85+c7U4jdp2WiMRde2m+iMxsJegf8oSSYSDKCGyCQxO5DnDFISZgJMpkDK+MOOzY3gijw8aK24/U0AP0N6SMXZAZHKiAggz2kfV/Eg0BpmeyA+LaEEfl+woAGJ0DTH1YmAxvO84eJO6u0nTyB/kvsYlSxq32smugw7H8OHu7uHDDjBJ23N/a3XTLH2qI/7WyXUFGo2ZnzzyBnkwOUUcZeTBSbXwjSpFrCSG12dNYnVFRcC3TVTcXlx9qjXJmpYE/llYyOqSWMP9DxabbU63KjrPYYhXyj2qQ+wXpC4zZ/3uj1V0DE+n/5R5JMvK8VeY4Jish/rcSuQTRQRCSVCO4fJHh5lorrcsh8MhiyY4XAAb/axIrkw2pts56CaUH2TknHGi5KiCoQuKa8ZwcyQliAKUIAXjrBG40AkxR6OkOtqhSY8UMVvwi6zpORS1/u8g+8ncqt51Dz7JvnL1eAfPSFmLWpqbkkvBgFrGbma7sngT+ynKaxNnJMqlJPtZpuJ7nTMZvpdfkJGV/Ryo+7/tIsa0+G/s1+zTS9trgwk8j2MtNTE6ms1jiXrw1Lfs27lGa7EokfZmloCXQfA2P6cLXhKZ+GfhWGiIdmIh0QWSCWYZAngEzOpxdVKoQWxOmJkjRQp1oLZtvhMayaXhgZySRfAotIbzCF8curicc/2SpdDnCykoVCj1vOi7oUfQZYppy4pliqVMmzRUR/5EwcNQDvnT8y9OvPQtrpNKlg6KksVyaGFLB6WKOHnGoAw9ousadJ1i6qSDJXXF8IVa9DgAX75WMcVI/QPwNnQk8hOFEuiSyBTJmpyS2rq260qmno28UnddnVQKQp2MTUhC5URzaKbBHyqthjN8K2JlWAYPZuKpRrgHXrkuAuVoMfNIC0JBEBIgCfAVmPDH60vBzJGIb8YrgwZABvCYvBa32QNtAj3f4zbA5aRUKfkI10etQIF6UqnyOU1q1CHgDpI+OdSVJrmTI6mPBSImhpwL5s+TMKKGuP1tcYqTMh77B5C7+35w78aFS8J1d5WkR+Xe0SLkFVPKof6gczgUD+bTYimIEarZ15TSVppiTwhFPEDyBCQPwQIBkE5tntvdm1ZUbhaX+2eCqZRAIlhXFZei7RaJRCRoZA+LBFFX7FDVWDKk0qtHwEkyeeTTrJX3SehprQ8/4n/00O/zhbF11Baw4dCm3aeCPKWkXhQl4meellJSyT/8FJR3XmxqnFQTA2JId9gw986nChZVZcewVfESSSZ4lDJJKmsGrrOHfcQUbA/7cHdFhC4jB4shRy3t5oJJiODPjailBXyZDUXOoulQZhayllOhEjsSrSYcBg4uaCDekhkpbR5nNWdReJsnpLhFLUL1DU0gjkbNGSnXEmjnPPM1sEGDMhNauhU9R8/+vPl1djfc1smEL/qzsyZXVRfl9pb1wFkT/PF+rdq6gLrIHrveMr6LPftMT/l+9if2AfY+UHtR8llSmnb7HWaTZw/I4PNIwWJx5lR9nELWf+kG36AE9VQIEPcAQpiTjsHKGcJMmhN1aga4sUCq20BwXmeAflbAlyaa3TnFeFRkIW8uGhVn8RgF7a95D0iF6y1oM84CASi0KJKmUrvtwM0VvHE7GNeDcTP/gUzI3DF3m1VBxxrKJpu80zQP/kCSS5sm+Yv96oKMUn1g4o531+67qdvAFjXczRdLOsup+Pw5WZ4Tktgo5YRl/hhtqZmX4M5KWPDqvhkRW5Pi+GQicXbUHuZFpqye1AAd8IHpYBG725YCDOy5wW/Y18njw128rSD7HVsBKGB/OMGM9oTahUfhz1ERJsJO5OGKEI4BUx9GKUvE0J5tx9xWmPMyFKPAPaCDSrUEtQAwabJQqilCJRAJwZgtcAXjSjGPjw9SSOjZ+3iIXhJ6CyotMnQMeqFIVE+erl66rJp8p55qZHsy+exznz3I/vxgJtsDBvg9715+t4e/QnFyw8bXFG154K68BqV6wx1KsGyBFd6cCTbY5mv7utu3FSwu7O4DBtdkp3OyC5T6q6v9QNDa+s/SsrIIbqFws+B1qNc9RC2xBO77dXA1jeJrJeHuwUG+NkmUEYlQ88ODVnyKsOMRntOgF5/m4SbDCviG0nCoHrW84coLnt8f8lrhUYoeHlUg+cvxM3k0EzEbVFpM4sS3uFEzLD/SF33zS3quQOskiD1ZKqpPKdTqBVESnkCfWpTcICglu+ALL5eIa7UFoy/Ao1pxCdn1MnxHSeQdKp60Iz8wkffolhMntty2NGade82kLr9I5O9qWpe9IWrp1ZEtQ0NbVi+OXetZ3bwKvbCqebVnbexingq9o2vx2Dvu/Laq5tkb+wL9RAOxcbQv0Gxngi40WKVOtD6rXEhp1TtH+wUbx/ULon7HbExIjAg8oXdSMdZD2AQHNDcbKjJzugelAEJJFfAkWFRbz9WpZtKywqh0Q4bbk1tUXFP7W/sKfRiK0YuR0OBijhgkKH2C0tw3XBYK/l87DS/s3TChqMCywtTgL+4uN/bUDqzZS2rrazbW3WnqSpqSX9JTYeyuPtxdX///3HL4+3v2Wg0VwcaW+kPVxVse3npPTf3EkmDj1Bp0Wj/5Oh0ZB+fEhOdDh2v/uf4d1K9DhFS6G8q1CKjzuOyCliIAYpP05qEubEwnSRvo/dCgXQTuG/OudrOLkaondX3drfffb3ruOYb3ELsUXvqxrw+I4G27IumCn0Zeeqh1zpaD/gUPsX7wKpSZqp9lULf0EDT86yYRtyJ0hil2Zh5XyzzrDNOOy5eJ0LwpcNXEwD8vEaXqsf3IM8tQ0oNE/YOUDfg4ljb83yhXQaWMO1Z8Lo5nzOtTYRsbriEPh3YrQCzN6AsV2qsiuRIZqkaOAkb4o6qiGjSbSspcycWq2Md/b3X8aeQ1Vc7vwEowC5QsSUspCGxN099595dL2Xd7lSaJw1Pp60iQxi30VXocElNCmsekpSl+95z2NSK+VG/0gCRRY1lGdf1Xs5b+2cKPlnZ9yg78tXI6byG7+U9FZp1uVfGDQDEA1j8kUTawn12doLIsqQ+8sj8IFVlsvnfd+joLn3RL/N40Zb7Z6zXnK03+3Jj4pQ0xEvh7YiTzN6y/NS6KSlRLYhpW8p6pWULxpNLOykns3wflE/4K5gPZMzJqaiQXFeZfEIRxD7INxWloBICllqsRZBAcKC/0r+UWFB/nocFGgaMk4IscyX3yyNH3W7eyrSvObXrk/o6Hs4Jn2lum7d90rottdW29EgaCTR2+3NyTnS+wop55Of7clzuHKDZyjTzSW68c0ReBNdWtpoQnP7tDPLgNuKZVgdvLRwxrmnaN7ACv1vvfap/jymd14HlxdeD19jnufLJLAv5czx1H6pw4TEElYYQ+Zi5xJ+41jIvsSUxmBLMgCQq8M8Jyo5MyDg6BSnkGXZWFB2RK5JLKssQZjIxD3UsPM+lcv6AIV9KLpIg42WPHKFVmGTYfQtFK+JwE9U5mGrKiZAqlaDT6GuFCgVZRLNBibEyERqjTqnWjtUGEFGtzs9bkcUPbWAMU0Cw2H1hBvbDiALtHsut79l/f7RSxfeAvDwINkB8Afzmw4mrJyodJ6wkQO/RX9ityheN+h+N+hWbFysceW0kOOTw7v7/33u93ZvrD58+DjBUHDqxgbexXL57Ycs8Lp9GdjtG6hZ8r4ZhZ4czLMCpXyjU9EPnb4frmFjyNFzwixh1X1bRxGtl3+vSbe04yuV9+CWqnbdw47coH0zaapm0ku4Fsy8Fz7OvBXvbSyOaN0/gZrT09reNynyjrng3t1k5sq8HZcGHrNWmMkXrMdHVgZGvGw/lSESPWAY3Yo/xEncFoykZWhQeh0jMpsmcESVpzmhVvAvDPlz0THa8hTLabxn/H9xsC1/iycB/mc9LezGw78j5YBo6AZe+/z+5k69mdoGg5yF5u1LCLNcZNW7axl25usR1E7ztzhu1la9kd778PnoaC/U9wH6LEYbdv38bZWaafzwrvFABoY80mNkA7ayAWZRgK7MxUO7PUzqyFg7TRHtqE1GEBNCwYs5+ZSg/UNU1GXFdrl0KPbP7iDmzAewUqTkuiNDCFXGgBVpm4rBuzRWITgiKv3QeV39iNiKv1F3eOu5GrnsHVU8BswXdkUNHSlKaUmW0Nk97aBYhXF05LsmWp3TElIp1YU1w/p7XBc899s+9kr8yqPe7nZSptynjuHfAV79bdswB5Er4l05Zol+dLUmI02SUps6c1olci76FsqgylSqRJmaiLvPDDO//+qa6wuH5BjWPX+8vYBz9dekfnXn26QifSNOQnJPom9lqi5ckx1ii/MGVKSn3xxJxkJe331lZAhy2d1ErNieAzg1UB/z70itTv3WWJViRKTXHuqIQSn4VMmMBd5t7AS5WaEsFPU1JTRZrIC73nixprC2ZkJse4i96aYKmbGuER4WTdTTQRa7CkO8IoWA9t5Qo7MyHM1DqRrCORnzQO+DPioTRDQQ+ooUaBvkmWB8u0xYGontOxST1gyshCPncFNHWg55ZgzAwUVDWh1TCBDnmq4Ss5MqbuJoKvdvv4qSSXBrIIVS6lywMnlM8VYsm9XKG7UiE0IW5EzuKxeAxKwX/JhBzJBN/2LZ+ZXO65bf6WrY+umLuXBovms3f98wN25/ubloL2tx4D1rPrNSx9sKVbtLylpadz24pZhWUJN10qd+9ae77YY00w2t2tW7oeeki0dnr/Xz95Hywne//w0h2n2dOPL555rtzkF9F1/k0N4j17eFnumtG610phhqARV/w1EDOgnhkoiFSxifCYZ2M+jgk4dKsJMxopNDAxWZ3yDOKeI0I5BXDkAREzqRnZl+nQ2HyGjmtsapnMjTAjRyP/jFk5pXX6DHSHhsPWxd3reFWgcJWXjtRXIDYbr8uL4Dk4ix1VYeQB6C+rkSUpN8PRdzlVuEDDLEfBYBTDQAsPmpzjiclXztyzlKLEosNbLp7uqN+WP0HpP8BaeU7bfn/Z7D0zN2ooQwp1z58X1PIn72nWbXhUJHpy+65XF2gqGhTK40G1cqJfqqzfQh4CrhOoQPYEGwb5lw/rPBRVtgSkDjw/U2+oX/HO+l1pkiS7iOL7LfZjSy62BpN1HdZcHfuPsk1NvI0LOh8Qim6jEle+kUCda35omZS6m30Z1bMOATf7ZiRWngFlfwVcBcJI3TNBiwU8MfCgT2QRI6JtOxALwb1kObti5BOyGMwfed5IdpILLsVFycXsMfa4mJbEfU12gkVkEds3cpSsBjtGnucLWAasAaXDJnYLyAALh6+gfu62A3wxiGUvi/kHQD57Gt6QAtbAGyaCRaN+q0uQBv1WPtFMLIQWwoAWSYMT+yPpcOIXYWQ7fRjRqYT0WdAIltGG8kiVDYKr8wEEzU25uOAS6uHGBD5qWRzApLqoDtSiRxOmRpkNhE7CyyI98AvhzJtwOgthYqei/d0MzFB/OnHENwJUzcsCwOIXsQe7g2awaqEjnk/JFAZVfrozWjA3rYBSTmDKo0WJMXSWVlTmaKvgxbmbQO6iuvKgJCYJAMDjk46yINsu4mcZCo82QlfhUhclEotFNZ0tCqlErMzVJ6UYRckiqSiK+j4z5+oIM431BM1Flwxmc3xKlIgEtDAjhf1GLBK4LcmxVC+lq3F9kua5dTYwfvgdWCgSxwgstTrSrc+M1xgqpcmHSnwLdovZVRK7Z8rsoFciFislIpJPkjwqki8Z038IYbeV6CBOYR2YH0YhmZowssPg0ptoZ1rwPCA1OC+iBgfUBDLF1DpoikGNCB1oRL9UhGw46AhOkoZc0RnMtDAzjSNusziZW8LMDOeA7xb0Np9dnBGaD2eyogg6gtH8pMSMTEeyp6YVqcfQpHqoRBtaoIKcRoek6SjQU1MKZ9ynnnsLXskJ0LiIJjzT2ud0oMU+kQ45XPDuFtkzOvv0tlmoF5Ix00zmzcJCbp3L7EPAZtB28iF3SYGaPnDNWQQUXQBtPJSB5dwXFOlEjDd5qJKYgy1HnhZUykqD0uC5aehIBJKodLGkMqO+y5eRcKlRKaWqyqyeBd0lzVKrxXPrraCzoryZ4jcU0bWT/eZmhc1CG6bQlNUIlva19/W139xIWT7kdWidy6d0R4nFajGc0rSumWVJ8Up7e+v2gE4k7qj2BAWCao+vVDgJ/L5bsji4gpK0sxfRT+3ru8ajxc2/n2iB/hyae++oRV5nZxrDKHWAZn3yuM0vgnA9Bc5ecWTzc3GJA2Rdh9LRTNTRhTHRhNpgzEhwOItLJ7Rg2i1ZKHei/7/sdwalSwF9PPikwmsUt6CaLbpf2fVcHp2F08Gcp//fNj1S0Ua1dsZX3AOEO5aZZk3fWqtVIVjHBew9/0JbX89ScMvbeOtLGPlcyn65QqKs2TB7kmNB7+f3ZsTefPPbvnbF8jhFXHLXuqnHA8esjab6cy/+C29+T76MN7+OeZeWO0zKVutxx+/duPZMfF0/HepJshAZhIMIwF3wV7vrcOeHC8ka3NyRrMFnNfzOA5GjsVfQ1RtKO3/ah9D81wYD3QH471h3d3cg2B3oRufB5wKBMCr8pAhU9zlMoLpP3t5580byA8FAIBgMHAtw3+hrHL5kDNelMva3AtyjgoCJEYOo2QR9kO5GKtzcxf7j6tamtWAfzxW0juyzBkjizTc58oBpoGB1M4tZBhA2KNhLXOd3ZBElRAX8j6QxYyxGXDlOAn2cBFZBCfRBCTwKJTDNXlrBRZYykFNBJPhLy2/qVERkTQ2HDdlVOs+vCJjHINfxLDydGnig2rmZcJnAt0v+Hc+ylwEJfAvY+84ieepaADrPYnnSsV19V9grh9r62CtLwD8lH9xcmHoWn3vIWbXn3Llt246+h4Soe/AtLEQrVoTKwBvsJiuY9PrIhaqEds43FLFhQbngArSd9hFMsR0H5uwIiAyF3lDKKrj38lNcysotZbKHQvl81PJPDabmow7+wNOXvkaZqUEtOh3UoUd446DTnS3PGICP4/r14Yso9aT1E89mO935qVqdfizjdBRduXYB55tS7dDQCmIyPbgLB0muTAcVsyB3BIGBZYEIuDEmVUW4IAIhiZ+DpI/LVaiCfAtpwiUKIip38yw6TiiNVhjFyTNmAPuxIx8qlVM73T2dEyUCHpAIVVFJlEFM5U+al57jitVLdeUaqUgQ1byq2kLleaMCLdP/uG11g1cYY2Z/ZodHnjhVOpeyvfrEOlW632hT6fLsQ30HDkokf386xP5lntMq86XJ7Wn5xsqUiZJFzRllqSqr77HHK1tWsj88NGn/vA2Fr349RFrNfKNYaJt252PPvzYfpO3dU/JK4TORuhpurSgxauUoLgMIM4DjDEjgSuoAgUulmWQ6FJfhx2jsMoxICWh3kKd2qpwuGgfgdVpartMmAIDYcix6s95AY7KhZcm+hvmFcpU+ThwnlpA9w6tGXj3E20z62V3XXomN45WDpeCp6asLNNAMYa8oJGT3yIPDFLmYNxH6uI2RF4BAKYnEIKfDdagnVhJ34aqXpRipNC+MGgMT4Uq8DfcHFsHNXhoJsVNSlLwpkoY6MScQwp1YBT9fEfp8pJ/ppI/GJKaYxc6laBdQotwyEVoqhi9G+xk7jeoI82SDcoO5E71eTg8SlHIOznIheHqcq4fbMmb48sHxwOgy3khlBio/iCW5fI4qkrXHcAV2ZPUZcHkYtA2DIPJ6xKEyR6iFFFgkR/9zNecGtPFXK3u/BnXHHCvW3L79q+0exY6v2CPHWspu39d5YlsjeKImJy3dEAvc6gU1i3aYzDkZVG4O7565U0pyg4FPH5jXOdft1ifXeW36mLT8J+d5/Aq5w5cxybdzQm2pQRfMXbv2kRc3TF9G9T64bubUF9hDP9wnLdr1w71r1sye+wKYDM8aJ/WeHH7RWZVssIMZOseM8rwksyIKxMUl2Q0Tahfd2tQwWWNMdzhKLN66+JjANqvJoVMkJculMdHpidnZwfK2xTObcx1lnj9cH1cuIvKgPBaP6w9ScSWeJXC+pIgnoMjPqOhCMYaEcuYWFKJ5EKMgGvEr0WYUYqCQFwQHlBQip8hnDpIotYuozIIAoaPE8vC0CM03CUSDP1Jvbv8DoBTSqicWWmZ7OoUiXaokSWissdbpFQlinaV0sV1mty1fuqDeLOYpFEC+52YRa3bBPa/JlAfu7T63MZpXwP5vTe/K1St8aXOa02lrg33SlHxR7KJHGLvNEOtvXlWg1Gv1LsN1dpCeKCA2j0a8PBg8NQ3bw5G4V+G4uJcTjlwBRto2OxFWL2qC8IcZ/1gcDOEoOuPhmBr8jIMe0CUaUTQgQ/YsX5CklZo8+XjDSrOjwtBodbwmhTAYHU5/wW8KhsnVPgOHeYkl1sCVq3BVtsLfGhSrOfFydfwrC1YFizreknwX//WT7+/Zzl769x+/1Pzm6Bh5ZmiI6d+7f2oLcyS8Z8/5CyDttWegzMX+HBQSgnsIH1GNqr0x/WREtafwgjwcuOKqN71YhlCMikdyzcMYNBIKFxfkx30guNVPRilTHi8Rl6V5/TG5+ZLUFJvWpy+iDUkxqao0cZqPzs19GKgrnpjeLpOtvqP/0JzW2JgDdeyDV61UMl/nL3jY4/XzeXRsftFBj9dLqpZl18yO58fniMQJd9ybqJcBSh6XIpSYzIaYeOWUuzIKRNKAb31a2g/fg0SgHXw2zfS7nW/N/fc8OfnshDhf4MLtd7A/VJdEibO9H93eA+QEcUP8FHViVoxKU0SCMsZJUEROEOtcSjxnxxiMljQsFkk4OEpAx9T62+QhQvH0W6f+P+RrIzn4+zfHQRsO7T4UiUunUt2CbgIKLN4hEDZVKsZBTQgzCifG8wjFcgoeIZ/SnJqFAkpHlK+Hy3CjuQ4nK+9aOPf2L070bp+YZ1NJwfNsOfu9xDn777w1IwvvLCxdlabtBJY2q9qV9iT4BFjAh+sXn6gibojf9RCv4pGGnos1zOTameWYZ7wtjADjsKrDm9d6PPxwzaoxvvYcFLt2MpVhZnWYqZSGlsDzwjBTKA3p8dww0VKENme2hzbASZrjgB/J5WdW0yF+ot8fWlKJnNdkaUZmbmnKxLZblyNlWUgPCqwN2OHRyxgjnMrcTPi2DD+znEZR4Bq02vVGh8tTSDS1zFmHbmyjUZFDyuh29ytl0FzBgsuZAn1VYWQTg984YWGWK8aq1TBSD97z8M1c2fTYVY7AWYGuIr4T9MMiEzK6I960ivrVw91NpUbn1s+3SLR/7JoQiC+/6993i60XddaujvrGWpWp3r0r12cpdaW7FbSEVscnpUmizek2Z1FzYWGZNt1Wl5sdl2w01RRaDIlxMXHRMjoxOUl5U+lb1c1kUvdc2u7Jza/pZkwieFhiqGaP25w5eRpLhqN4vt2oj1XT5oQMVSJcPTFWTZJBbk6NksYntOYFM9LVyTHRPGjw6UwuSZwsJk0fTSuVo7EmC7RxuiJYlMhCG489eQ1xMsRHFkyUn5HRIYnUj9hNEGoVrhD1EnJaQJC4QsLII+VSgi+j4XRZzl8FTuof7N4wuPD2N9+9y+5sbv4aeABxLszu/Qd5mv0T+103GAFOssUMN6ylV/+1YsX/gna2j/co+wbLWwc3ydZPQC8QmYkb6ma80C9CEp4VxiCkUISdGPbccAZ180M9gnDNow2oeEibwTUdWLMwyjmKRUcTGf6b+d58DwZ04MIZikipvZKTDChh9E3jG32ZjgyTbNPHH8fwEtL05VXtXZllviRjyk1n1bkl1mKcOPXyQ5cnJiqlSsdDHqkqSVudC2pvXM81xNbReLweRQCR0VIVHg3G197AwoUziKNh+box7i0Eb55JhxJr4HMAxZkEUr05y5FTWFGFxycdOjYhcxai4aJxjD45wZIZKECeI1MlG/BU1Pj/W7wC2o8pPK4eAYeBLeAXfiTgDFOf2aD9byGK/BjvtO4tVQ/1RCX1xuRVzl7C593yK+GJ4e68W4M2aczBO55hL9/53yIT20ry5/1hxURjCy09HOPp72J7bgxNgB3zdJKY/iWnRtdEJX8frp1OI3IQkgyFs7MJWNIy7YwHjrrfjgo9iFBCHM7vo6ohCR0t43jUoX/IeOjBVKM5ZTS3ihofgyAA3ByfpFmgpBW42yGAmrzQpSyArl3D5tRCm/wkmPDnHUB8YqWmhN3I6tmNJRL6RVAN7gKVQ2JpMdvDprA9QXGM8L2zZPnZ9947PXL09HsfzH1+RdmS+2rC2bYF27YtkPNlIHXaQy0tD027aDS2dXW1xURFxYA4Dpxz05IJEydOWHJDDFSP2d8qiQ2jOza0/IrCEQrwyO5dNW73NnKEAi5pqAAe2cKMbWxHr4YS6ELcCzq4TTAF0J4W8C1p9mxpTiUaLJsspE1CUU1P0ZjtZzBm2IjcwG/a62UKVINFurNIfSyQS3ExJc+slquUUhS0d8N1+1vNgKOZMw6eOdiWmdkGn2YcY6RKS9IHovbLEkYioiVU+W+3A1/99tWHp0x5+LXLr6En9gUwV2R0siumvAoenTKJPUiSFKXHvvEbwib+G4Qc2g5c76V2DI/n13ovFeRPjGF872UyBjAc33sJHR/D9b2X46/8au8lhzr0y6ZLqiqda7qMd6Omy+Hjv9JqWWmroMAfRlstF00h2ba2EbL5+XEtlng9lQpdglYiiogljAg7Ph590lGEf5OdiT7DEE5GArccJ+YgkEQj0D8e5hkNaVENaGxcjD4iD6j7C5fByHW0FYGK6Gg3in4mAB0tJaFuMVhWHl3NXzp9xkoJuIddRS4QgR0xeTteB1u/OwU3HJGCv6dl2fKmKQsX/TSZ+jr82nA/+UFl4m720kgpeRE6UdBwG+2hmC78URAgNISV8BDlxFToEaFZysS93tV2Zgr881vtTN0ZpikcmobUQSaFcp42zDLCiP1MtexodILeGSibOCrNnCJAVojPC82MOKDHNFWxQEjIzF4boFKAQAKM8tFoO7RSCAFX48NdgLrDggqEOC5epCtQq80lsOGDY2DShR2XMyWuGXf07NYliD3Vafc9/foM9vTZ+B24+0DDxO9gv2ePsZ9MpPvbO7rk8sfaO1byNgBNYv1yWlqu0YoSDq9KzKCt2hNAZdWk2B5nP32iCuzoY6/uWvTHM/PfqJWYNu4qo5L7q9NA2dYZ7Jts0fsnN2vrn8CPQNw4VUE/2AQfFbt5szNMQnp5fYmY8mi6mASh4mNtOnvhJY3VqqGeAAmPRWRjuuAzOMYJhB/6B6eJAT/KdWnCcBmgjJfEjloNA1y/USVUQqO+ehbHiFAVCfBlfBUeWykJQyGh4Ccmb+j5wOOX3kSXGY+UcQ+FtMKfGN0QI5QOioR58ozBXPQ4AI/HlZfn+onCKEIoStDq3J7cvPEYnL96GUf5sqQR9lmjH0NEhQJlUGat0iyumMMnwKSKPjniDtFyeVYMFy/k4VfGvWCHAi0ldND85CFaESBHIMzIxkV1NiKR2XhOW0zVU8W6IvDA388frF7VuYf1tCiNIqvxg6b4KmGJLgD2fXD+MTqT9bG3BVqUVcJS7TaQWqRsKdtw+8shv85yQuf1aUGB1tnfD6LOLsxMkDb89IrO0wIKtc7HHgOS/0wXTVzJfsc+18gOab28D0FSY2Prxl0O4gafLhVqLT9xG94htOFQptfpZHR2xuhClZO4x2ggUYoSXIlW1DWTO0pdr3aiYlPURwqttywphmWF+0QeXPdeLS17li9NTEnm0OGZLDoksCIloNOiYiXCbHHcdFfAgS/MTAO9LLlL7cIhAdqAkDDgVooObl7XHLQtWNApennFYQkV3HLrutfm1MeLXr+pwgdKa+6c9hE72TOygexpmXffZnYLuGVbfbSZ7QUDPTfupYjfrpKovcH7rfql91sd8X7RHik12AMFZRVjDvCz0GrNCQTLyn+bC4wArMZB/mYADHsBPR45rVMa4HCgjMpv3Rnv1ClP6+JJRbxeH39aqxz5VKNcAJ465+gET/12l7kzXn9aqdUqSfh4Ol4vTEwYuYXsOBhnZpewX5MLRh7A+gBAnbsA6oN0Ihva+HqCiUZ064j12YCr41EpPBEqgBtEyJqJWRiQZjT6OC8Pdf4KKIt6PKU3onJCiW41pTb75FmYfQNTe6NwEbJRLWap6PM37gTy2cqWvPzGhtwudvD3Il7VRGDu+x1In1jFOx736cfsHvZ3H38aF61nQwfE4eKV9wBDfQvIhqPnbK6vb2b/9vDv2Lea68kldx5XiNbfpk/LbW5e3dB3SBIwevOnT8/3Gqkjy2+ZO/eW5QuYOy5tmMK2xS8iB5Jt9vJyuy05yZZVAZ9H/Zww1SgIQ9kxwlFAta+GMb4ezs7XcpFKtFdqUd6RT42Rq3g4gwhKhYVLninpWKB2exGlMHZyteYp94f/Fb5/yr7NASvb37h5X7h3SbhzU5j9OPz9Ungdvrx0L/FzDW+HNThveEXNz3tXPKclvx6J0h5ZsfOttyK95dfZirlEENrJDTdIeMkvJbx0VMKjkYRbXb68QEHRmIxDv4NIy3Ln5Afxxf9/MeepfWq+2kTbgcfEp9VCvocPHTeLkudTC9Uen/K3Cngpy8KfJwHRypdHHme/py6SHvAin7+4b/dBHfPbRXzn4k7RaWoFUIkaL19ZwX5JzTnNHKMYigKGokDx+cPVh6/DQ0aYVVYik/ARhcREopVYgefai9mydThwg6qdp42LUFdy8z4djmIl3HMKpSg2rdSlpWeiUStqmIyHkvaioRQBZWp6prOycWqEE01eU4uCrrmyZ8SEsaCo/FeBrngerUml1o9CqQrNcq8MxyopHnSFHT6ZySeTCwxaudelVQsFfBJBIBYAFY3q6dC2psaFdmqST/4KOFY0OAG60tXSmFUfV+Wv1UjiwrT1i0OCjN/NYHd3iCiK/wJ4jlrjOrif/WrS9FnAeoF/J/vJttce3trspY/EVrLD70XxBbGTaphVrgpxHvuJ69fRNpNXVBeJLFvLc++1yhL+DT48BiyNguBnT7QPX4S/BEx7gGJfZD8qFjgSXqcGFgGS3VTYWVyg/JD9hB+dlqSKEej/FkvFRksF7KN/BqqILcjNmZCIIZSYVyJjrKfQYGeSMe+RhiOS0CRjCJxI92AUl7YBhEVAyGVqWigAKrg5ET6dHKDcFUCAEKQlgZfBnkm8xF4qX3jh1BLw9rqnD38B7lx5tbKDPPj8G/tJBsz1fDBEhtvmkf8GopRuNjiyj/3uMfKz43NGPg8oEwAI8ytHHiX9jVeT7n/sS/DwRm6dgigRQfVinE0dlDU/UUM8RTD59sHYBBPcTF2oRKWYCyNAMYvGUA9CDPUQgzJYTiR5MsxsjqgydE5UlqyBj1zLQybGTkQwEqjaJS3MWKSoORbZxx4n48YuYS4OJOJQRAyCKRdI/P6QGvXb0Cp4pE+iOerl4nxo9fPEpbhOkB7M8PlTI+yU0M71+HBLSSpQwEOeW6+Uq1HRKzw03HisGj0WyhUuPsddiQGWoBWgEUejPShazMQ7k5Odzyg0yQkJyZpjtE6rVGp1xyU8o4GmTUlRJzTkuc6+vs4cO81+PzirNgEM94rFvbvF4t3naPocmCSVsofP0coPwKsKBev/QAmP3oBHntMJCadJiUYzYtBQe97Zozh8MVmsiOCgj9OZWYQb2wVNxDRi/aje9OHcYrqdyXIhJzqiRqf/Uo3OGFWjcUiNZtgdHn+gqGzipCl4/ef5oPWpTjHhwGs6De2mSVNaI8525UTcIP9svMbuKiipaLypmiWkQaBNAdJYoDXzFGqu89ciMPicHIa6yzmKpY6qTuSqVACNLwye7kYExdzlm4ZQf+z5CIj+sWHDP9gfP3K0SywZfY0izQsfSZ56fkLp04vmbWssl5R/VjU7a3vRsgeCfbwoCUUZvfWdLZWTA5K79B2BrJsr5R8BdW7jxnPsMHwEM3q7VA73bYmU39/ouGdy88ifWnTLn2skdfdM9rS0saeilIkCIUVJNyya8dYjq9oOKbl6zKeE0/kXCDvRSEwnbkHRtyjo5YWZFjsz04UqueY6mSDiXgFMB54crvNnEoatZ6ZIQ23wqD3MtEsR0AeTGA7NgxM2ZRKUb38uZqtsowclMXkIy5lplw0UFRuxqzutBS6KcsR7H6RDiQR8NsuOJhvTsry41w/rkQjko0utchYAhALCfaE8MFS/SGkjcTdaUJupQO7GaLSoABD5GV6c2I3lQWcii+eN0AUZRomLDHqDfn5D3caWrrnV1rXW6gKN84lA+R53TslDdFycx5P7v2taDve3sRf+6o6Lo/ewnY5iuSE90RdfK51RJ/L37dufszi386m3e0W9b/3pVv9ndUvr671+Mli3tK4OPvc9tHbVnrwcX6ycxP+08cm3VdZ/u/vzx6P27b0rRrS4MT5+SLmpb1/UE2zG3hkZsXwBD/CAAIgkMQme9vtvubctR6XKabv3wb7Ozvq6hQvgU98Cbr6i+KmCXtwTEoR++jvYagyGGRFmhM8d7forx0xvBhw/hY5INqqpAai4Gc4gFzXlcUl7k5NRcklNqNHSpKh/gilBFOlQ86E9OMSLpDGU9IA9240m1Clj0v2h/DRsxEhlCUlavdhXgJejKMiFCOX0oC8nD2U64R7MxPpD8eXwBY2fMdBHVAWFJQj5hSmWMSn+UDZydwjSnOYenXYamnUuHW4JQvOr03to1XXnAcDh4ajHAHCICGAOGXnendmybTKYGHwM4dY8FmSZg6XTrztFoDgdLRgKZzLP3YzQcrgv/r6+8uHqknVzA3sQbs5BsEPLHXxRsR/B4eQ3Na5qarrSsaqxcVUjLxU/XecDIVyCWmIy8TTWdNk4ktgcZqqdqJBiggvlmfKcaB9F+m7KOEPXiXsSmVLO9IFLsE4aaoRHCNFgzHWcipLLajyWoUpUHMl363Cyvo4eNASCUq7gblDgMeWhkslMhIFggRNT3gyXm8/pR4kqqCQz1YEIJXuCzpRxU8XIdyNudtRWFKGKQJWx0GvXQaMo0uyI+vD0HKqmG/mk8MTkdo0CGd0cnadeJBAka3S3+RyN09J6pyULBKJ6tucI29PzOFj8uCdzYux27fbYiZmerqJic44JVBSjYEqy+abK8JHlk0W1FdVUlM8kkbRJqitqRZOXQ1+VXDd16rpyj0kkMkE12GbOyTG3ec0Wf06kZgfhSZwlUqAGdOLeJJ0LIWPBbV7M4XSPds2KE5G882NiVZoUU2aWPTJo0K6FTifmH1H7EMIhwjak0TB4aB3gXtZFzoUWEAvWgtiilsCuU+ve+/G9dUWNxexBqpO7zPYXtxSd2gV2vMB+A2JeIDehqOLa8vK1695ds+bddSO3I0hIEMd+zb2OjmxBeEVeXIw/i/rnKFGeoA9aPxUYSZeCbjH0C2WWLNKGsBmiAKBdSi4zgRxIlAhEoQKLe6wwBp9mkbi0En2OzCQQB578sR3kX/zPqRR6yxn2MvvXJ95h936zBnxwpHVLXbGfbtuVtyI1y3BMJI1RxKc3ZmYeS6Cllvi0tBS1UkGeeJsdeOGc6Y2TJLiy9bvnbs9SJg2yLPsMG+TJAvUac1KbJj6jpmTkDTCsNCqlKp4k01jDasBwWq5ELFFGpST7JKyGs++ITBGfvwyz/5jhGptIzCB6CCbLzuSEGQIZZYow02xnNC64jnDPQCImWjGgl+IwnZ0FrqL8MJPPdd7PcCLjLehEjQUhQSJOXIfyEYFY3cQGpOncdKi0Ge1WzQpUeqx0ufMDDWjhlNKhOAMGINUhayEA4JjhnQl6oYDW4RSrYfRAYAAKXKIEtyePAdEkWqA06DgWIVS3gbwPJcrky3HFEhcBVZLHly8snMBzL65y+qac7B9ZBAxgqckU3AN9saXKpAxPLvjQnpH17s7FviWzA+f4/EUt3oL5ZC/FN5rSXt96R9idkUuSH5CSkW89MTFdDa4GeZyKJMslReYnljbmLpogirlz1qHnrr4IZlH8mbWHyUxgofiVuVNL2F3uByonzKFIe+PmiSZTEbV2XjDvUOPU5fOq8v9kU2vJtoMjS515s9I16jJ5VMz1OTwHUUQ8NKr7CjDomiw8oJeh8Jg+XpwBtR8uRRrTe4mY7JpJ4XScE5HHMk4uamZ0MrlwUxtL8aFypUSk/bKhakuB88TX2fGOhNDpGK9sQKAvRI1WgVx4TwGCX8vGsbRkV84vdVwENAF4XEoORRYvYqHFg0xrvGJNHrUPvRYALqzYbgafAN4+4vFuO76ls9zjv/v4NjJQ3pnjY7YM3X1z7ISHt2/3eEDljLu3tAWNxqDHwx5r23L3jO06Hby+fXsbpojDPI0uoYvqgL5YXISnMcrFCMNMrBOxSSA3hsteizlumlFaCY6zm5JyzxdA9cX/ZQd45oug+sKX8GANe/jyZTDp4sXI82hvDoehlw09pxKinriXGMhBEWoe7orKx/CB1jHkPBuugcrFNVBoroLYnbJgdyphbCurxvCCGC3P60DRPpJnNFnTs+wYLy8B+kiDMbFaHTqpRtuZSi1LwpZERQ5Wt4QiwWJzGYuuh80btQS50gcOGY9bRvD/LzD10NTRY6aCaQw/D8Hm7RI5Pa4JMxcurXo4Hu3zu8SuzMmrpaLXG6/h6TWvxHB6uf4mnnsURQ/D5/UHa2enpui0ertzwdeccfG7wln5XpuJzwsGwKM3QOtBW4Ev4HDz8rjT0dxLlHAztOkqsQ3eQSwFZsyTqTS5XExDODRtidPJxGC9VgRNOSczy874oYJbhuehGtoWHKABFAsh15LByUQePJI7mRlhpgk+SpFwIJCkRIR/iKAfp8Dz2U7kbXmdyOFCTu78MDOf45/nOmwXcdzGy1HPRjVX1ymkB2pqsXqsxwmAPG4SC1EYK0TPQORcfoyw9Uxzy7SZs+ZynFUhVQ5cmAaU4NKkZKPQdkg3H/5AE3LbQp1L4DsWoXZJIhTTAGc+hk/Q8vhEQ1p6RU0zLhAtokPSJHjXLNmAN2+uP0LTjcUBV3oio5+Gsx5BTFThnt2xc7jcSegKeMYJB+rnjSXhPaox4EXj2BFvvGkZkRdkBgqEzcHwjODu3rd27q6Y+mbf7p1QSjKb72l+8yA+3B+evK0lcxSGkeweB8cI5YcMQ/lpacn1I7l4uOLLxCRjRTzbVvEwdw4ejT/45ejJl8gGXQBSyvuQqPWVsx8vCMxdV/JlxdlVjU35fmR3oieBKdCILdJbVjcgU/Q6XZxCWIgWrIvNOJKRiM0bKce9M+ZoJ49xbxs5NYtYeJJRBSPfz2hxB69Rxgjg1CSa/yvuSoRjjxtGNGI3TUJQ3f3d3f3gga5DXV0tjTe16f5+qLv7UPfaP6yFX6OY7r3QXosiSoAURxC1LiYqzOQ4kTK0ulD4PMs5iiwTE2ZiuD5lCw7WIC2V4USFDTYniq1jhKdPoPLD2bREnGDOE/3E+Iee/9p54jh32YnTaSYxSkcPGk0GOdyipIMup1ue8fxL8RemYJynPOlgbp5fnjEAH8dV0MPbx53B98An4lk46SaX+1piDfziCk60OWLQ/iYsQPuZF9kk2qwc7DlHcQ2NjJR+lhDpLRk2hzeyuUG3yTkKhoHMvBRBKkjhubS01GSJdIuSqG9DwceA21oeNvViyeZ7hxa+v6l8W/fmPw9tv7c4ShorjhMq+NX62bvf2Qr+w4b3bDn0ZNyXSezmv34MZAcPfMeenFPtXP/yvsWvPTiVPH7HezvrF4RXvPPI869OiYnX0BZ5TuyljvsXe0EliK7S6W/p6YUi1n/4qwqTaXE3yLh4YKCh5aF/RXBbuVijGseHXXDnqSKGiAEH2neoMOO2IwMgCeG3cD1Jg1ppQAQNAyjC1ZwIO5Gm0mNlZR6zJFCrSFkYgbZG2pZqoEijsp8BrcGKtJMZlawkoZpLJkU2oFDa0EUffYSyO9yoq4kpkw0IpQE84G4HJqAS2nxl2KGlB5TRxdjMsCJtloB5qkJGlA6PT/FfS337vMYxJEG0N5EcfzLUP2REz+jlbp+KUONeUmjzZQEeKiFKIaHdLMzi/R6kPvlXUFR2HPgHb3uF/d+9vexPJ3skAx/eMbm1u5vRFLeXl7dnhm3AdWbZN4cvgyf6L1J7P9JqgeG5W4e2N33xDNnefx7s+D378ZP/HIh5G9T89SEge/W2ziMjO8rZl3gHnlrXzaxl2VmlZfbssuHOb5afYd+0vfk1Wc2/0K/9ECw4cqlx24nO4+x50+3n+9uvz4nGERqoWxzQz0WFlhZcNYNQG5zw5AwCdELlQ3BeOPMO70wo2qDEVLYhJSrAUsejwbVAM45J9DNpNL7AOGSMcjxEwygdDq3DRc9KrJ4tkeLGDGi84fJnePS3nRS7829/23mV3Pk3shsc7dy+7eWnH2cWzK31WCq7yqckWss7PI294XAvdQXft4P36pq5j9qptFc2Pn7EVVlgoA8pDL5c6w31d9XEUaxBK6Eb7kR5HqhyAkjNQCFkAlJksCZi3SPDQJPX7NpC+ME56zV7rFDIw6kgKJC1CCmnEDnwiWW4OiibPiqQaVIs/nIufPmM1mS0unwRFAU9HKqSSjhU5VAZ0wMef5mfK26TRKuJFA3UAtmuXBQICCU64V15NzF2+XgzQ0BuTo/bDjilIIw0wCKdoLcD7JPgggsflsybW739y29bZrI69/U0Ntx96oSkizetsbiu7/srRaakYGHV7OkldbmmoiXLfndTM/jdTYdmrO7aU+xRSg1rDu+RlAV8cVLzXf2nuiaVzJndMD93nmf/KCbGPmGrQMAhoSBkYLkM9xdA74tMBD6EShdLCoMghRQISdzKYQe4GQTxtFLCausyX9K6Hp3RnTZthW/a62ef2ZZg7y/o79/dSTunFdtiFclPNymltDU2Q0wnaBzJs3Jnsh9VUuXzNDXpZnYG21xU7k6z8Y3BwW+BEHjvA/yZJkHB4j/OTaHjc2rnONnDKtVSf795zt7nGrMd0bIPm0br65aBCxiXGvmsLcRAUsSi1o5xtoyhUGvGUKh1ERRqjr/lBpRpIqRNQowuCFPa+N/RpK+3fK9Hib5m1d4MCnqcvRr5LAJop24jdIQJ6mqChiITaUVQc4BhUKK4zcdnwfQmJrFA91BBWktXQp8uzaqjOjSa/Xb35DXxDyVPT766TwdkvFJSOnyC3Q0WkX3w8S9puj7N2sk56X06dHerZn98V4vL3pecfHWvrpxXOPJ/wydIKXs/uZ/rH6fw/uGC+wfquColahC3Yg4Xra61M+IzjIpLxqjEUPWbcwojKKBSLrSsAVxZtJbDAfC4I04FVjoolQ41j1onU2eRJnekL1yJMJr1ZosZeOW6WPLw1NtXMd0PPr/lLrB60+bn7yu4bcWq26cetqWw/XPZFezyuezBFNtuwJO0r9o1C6wypZ34aijNZEob+upEmomXNEcCyOhZu/hr2BPPzuyoWbW1fYtsdlFVjs+XU1U0W7aldPGc2pqOmc+CAk3aCy+kzWOfO9W0869/TNZb/H6LPjmJex555z1QtvqvOzm99SJ1RPAloYD6mUgCAlItTyFRDAiYjUKeWSggzHCRIDwlzcurb7V+oGE+v3PoOT/7vZ899fhr5kAOKDE7l3eYnX6/oJ3d1MRevmf44sL7LIYykN/PExzos4GtxabE4aPLO83e5QsVNKcrqW6oK9XQc6zBVWNZcPwd4yxMG87lDsrENrh3x4VRqDMUH2mDs9FwO4C6TCYbkBtwwiCOZqgIiwaiIsD5fTOJMNUEJPxSw7kQFHAVtnGARErL3AdEe1f8z74ZW2+9dTDJzEsavPXWrf2mKLkqVhuXGd0YFSuNEfKULasc5cC+l72yb9re95b3geCdm8HB8zR9np21+U72xcPz5qdkZSVmqwqkq2Ji6Ohy9rWhbeWj63i+iBB4iHgo+5lEIoFqsREuWgQgNxQHTQFGhrSuzuNS6nhIgFB0B0oQ6jHX6YVJAPFbIyJPpcHD86ESxFTAe+IY71GF+GX22DRtgtXD5vpNGrtfzh57WaxTHhMQhyViyXDvsVP+pDyQk5fkB2+Hw2TLuT/lOJPjvdMXas6NlLCHDx/uO/bmm7x9SzyeJRFuuQjfahKuXKKJgXjMbDdGf+gYXy2j1Hl08Nsw2nrsog0At/PyMY15K/vcyFPssbamtWH+3qupvb28fb29mO0z3NIVhv9WN191IUJbfhSYzvaD6aN1Hfx9gjD83QkEMZ6Pm6fjwV9kUut8BotO2JxLdee2TPZ3D3d3+1sA2Uqen/lxFXusuj+/qSlfoPS3IPiKFn8v+kUEETXGx3CNt4/rpbZD23GMwc9tRxvtf2Hww/9dHgOCCwfw2Be5JofXuDZmjg8uTIWHCfTZUNPym28iYA7gQscdYB+Lv+GfdSPRX7hjXgf8AvtG9s6Dz+HhcMeortonQiYvYobOJvKIB3E8xxweMPNQcMzsF2egPiE73hxkYY5vJ5or+M/HqwkDomB6Bi6Hgzx2R3g0AiPiqHisGuSCK3AN/KDWZE7lIv2h2DhkXiHmBsaLIp1EyJ4B7Y9kvUGD7nDRIYfXf73pBT3kMXJMeIxAsa5lSmVcdMmgHxfvH2WF/d4fH1QERyrhQ7z/e0Ssd/cFEH/h7rsvsJ9fKBsExGBoYw/PUK1JS9Ok2HB/OG9fS1fgBb//hcD/t4rQv7fgijs6GH/8Z9gM1LJFwU1TVk5bC3rXBeTOQDnw2m07hg3soPoUlCshdxUJQ1ad2Vzb4AxZa+ZsAwwVER5Qk1OTF3QDgYCBkZm9K6znxAy6uILJHNJ1smbUYwZ6mg90bro4K+jSHTtGYNnPCDrmW5WdD7yzGXQ4LmilIziQ2HRjGzenszCEFYVYKHZE9/VHdShahBSF/WFouNrmxVjAqK7CqK8nwCzILSMj4ccopy4uYPrvqiEXl4CEkmzMv9esPo66fnqurnp+eg5Mp2M2zC13FdS1Nv51cO9fY2tdwewNt2Q1ufnai1XYhbgZefkt/r2QkZKR6CmXFhFl5uJzYOQpjiwp3VBYCBkzZPx3iy2S7TiwBjBhYJAHn+9vZi5sLgxaVAtqKKmwgzdnMrKBTzuRY4TufgWWV0ygFpOAIquG5GxXqav9nxo72/e4ykjs+Pelr+RIq42QtNHfDxrMTdxqdmfWqNjyiEgY8EhL8LPwinJ2WrIrnpBVYJflMmcMkWTsFZGQOMuoMn/a03RpkbxZJ7L6Mv68MmFlVjKLVq+7ES0sIizIz8nMyc+WoiMGnYfJAJYXpsC8ocygwwDKACLg9eEbxK9tkDm7QQaS1gXOggqwjcoyoLgUtoSsAZMH3yprz4hY/KcAOk0CVMpAL4ZPqg4qZwoqCqpODtTaefFfwaWzGnZMDPl78k2TVFUVFVVVk5jldfz7H3/58rjfV696R2ZFReYOSLnP9V+frZUtCdjesQXNqgiBryDkAzYzxVlUzVRAi5SBnWh20Fnw4JudGIVAG96BCHRfIXg/I4uaujko4IFNI3YWLg5DA2kHGTEx94mZjCKMPrMZBTeGionHxCXKGfuHuIcGpucBE4FOBhubaVhGv6QhsK90vJ2ReaNDmJi1y7+bywv//d7rYVt8tLxelkXK5N8dFsmbH5fmlxjGx/tYcEmXW67bstHeNVjAzzF3zqSEEAMlHkZmDU0VG0t916m/re08/I55GVmw8Ek4+0VcsdXSZubZmu6luSGIhZ8vH3oWLdNDYNnKCSyxORmhK+oYCxkLrHT+Xg86y1j4rx96fw0wjf2PZPvL1ggsdW0ZGITZxOwZgd4VM1cFj8mCdgADvQ1iC4F2Y8Nuq1YHb0RjB9eIDLBmqbqkhI3VTUauIFFzB0Y79QpWDiEeVlZOJkYvv7Nx6bkinPKz/i1rz/9owK/GNinLQIVPg1VaUldSjsUjsiUqyslBj/Gyo5Vk0L+PD63tJbqF/MUUjJSC3T0FOK1sbjd0MyYt1BAvTgn66CBsxs4jxSXNImweY+XN+LclLq4lTo+BAQBViFnvAAAAeNpjYGRgYADiovRLZvH8Nl8Z5DkYQODKnRRvMH1/hc3/j//WcFizvQFyORiYQKIAX2sNeXjaY2BkYGC7/G8JAwMH2/+P/7dzWDMARZABox4ApBAGpAAAAHjaTVQxaBVBEJ29v7d7nmIhgiGFCCFVyiOIxW8NFiI2qU7R5oOtZbCT1L9KkdoiYPGRIBJS/jpY2BzaSEoJKUIKBUk2M2/mbu/DMLszO2/evtn7Femv+EzkPxFN3hGFH9kXT4ncV7Y1NfrF/hX7t+olVy7TP6mtOOx31McFr0nXYcrrAz53llK5z/sXnH9MLjbpOhzxfsbWe7FT27OPtfKKLXlZx13mttA9sE+sX8fWkJP6itJ1/JguPOekH2ybnJybLJWbrKsCfJzUItekqzDPeMVDNamPPyn4GXpQPFSPmm+02t8TfOTMJvv7tj9n/NfgfYcxa+Wn5+ReJePHe+zfp8S8kx/hTI70vtCB7wvt5lRw3Gm/lKDTNmpuCafwh1bLy3wH0afcUjzEGsXr+ZZdXrul5vsY7rpQnWUtuoffFAQPMebm5+Cms6dhNrh/WLEe+4bVisZ87sRmesj8rd5PNSdraFuIHtanVVzgSC+fUrwiJzjSp9zTd4V8l/Ub+m5RLXXFMZtoumFv/Vg5A6NTE0y8szrrIu8FM+XaKtBtzLhTfpif5HXG2q+xWJ210fdmcfs24herYY0Rf0PPyu/2/k/t7JTW4Td0Hx5ljOG9SfwJU5uZfpZnjLvotWOxUQ7aLPAdKt+/mO2Qj89Z35ejunakRZvvjdh/ejDkGsvtjvKjvqKjO8ta+Q+j/4xGefVv1f47nMXqQnXB3IluAP7dou4AeNpjYIACEzzwGSMTYwVTA9Mr5gjmBOZZzKdYeFhsWBawsrFmsR5h42CzY5vFdoLtFbsYexb7EfYHHDEcHziVONs473H5cQtxG3Hv4uHgseC5xivH28b7hE+Pr4ZvCb8Gfwr/Lv4vAiYCuwTOCfwSdBDMEpwnuEnwiuA3oTfCccKThB+JcImYiOaIThBdIvpATEisQlxHvEdil8QdSRnJFMkjUmZSXVLfpKWkV8iwyYTJzJB5IOsnu0D2kJyG3Dz5DPlvCgUKExTuKSooblG8ptSntE7pgtIr5STla8rvVJhUjFQyVOaoXFDNUX2h+ketQ+2e2j91HXUH9TUafBqrNB5psmnKaJZodmiu0JLTCtKapXVL64s2k3ae9gMdB506nRU6T3RDdJN0K3S36P7QO6W/Sv+a/hODEIM+g2uGeoYBhgcMzxn+Mwoy6jO6YsxjrGA8z/ieCZ9Jiskkky2mDKYJpj/MMswmmG0xu2T2w1zKXM/cyTzMPMt8ifkVCzYLLYsVljOsJKyCrDZZ3bPmsG6zcbE5ZStjW2e7xvaFXYu9kn2VA4tDl+MZpyCnR85szmUuUi5PXE1c37kFub1xV3Pf5THHM8pLyivJW8ZHxuear5Fvku8vvxP+agECAQsCvQKPBVkE1QTPCH4XkhKqFDovLCzsVLha+I2IDZEukQ+ikqK2RAfF6MR0xPrFKcX9ij+WsCiRI7EiyS3pU7JG8pNUntSqtKR0q/R1GWUZlzItMpuyuLJcsrZl82T7ZVdl38ipy+XJTcvdlKeRZ5e3BAQBAjvJsQAAAAEAAAEvAIcADgAAAAAAAgABAAIAFgAAAQABJgAAAAB42n2Qy04CQRBFTztoojEsXRAWE/ZOUFRAXQobEY2orEXlEQcGcTQx8QtcuTB+k48v8G+807ZkZGE6PTlVdevWVAPLvOJhMotAQfeHjfIFx3NkCRx7rLPrOEOekeN5nnlyvEDe5By/sWK2HL9TNA3HH2TNo+NPlozr/fLImRcuiBjzwIQBPfrE+AzFtzoDzexxpW8sxVjKY0U97gg5V8ea/rVozw6n7NOmKUrrV2c60jV/pnamaGKnRlL5f9yPaCmTcDrblzK2G4y4n3YElG11KNdreSaarrKhnDt604BNeyuUFFXVt0dN02s0ONSkA1GTk3/3aCvqyDWymt/JdfuKvhwSja9TsrUK26pW9d0Q+5qa7FHmUi5daRPXWF4Tt3t96tviRtWBKsnbhd+FY1J3eNptVgWY5LYV3l9jGM/M3l4uzIxtk7u9XKCcpr2UmVmWNbZubMsnyzs7V2amlJkZUmZmZmbmNmVu2iePvUm/r/PtWrIe6MH/3vMKW2l/V1y2Ml35Pz+c4x4rbGUbGAbw4CNAiCEijDDGBKvYhrWVy1cuxXYchB04GIfgUByGw3EEjsRROBrH4Fgch+NxAk7ESTgZp+BUnIbTcQbOxFm4Gq6Oa+BsnIOd2IV17Ma52IPzcD4uwIW4Jq6Fa+M6uC6uh+vjItwAF+OGuBH24hLcGDfBTXEz3By3wC1xK9wat8FtcTvcHnfAHXEn3Bl3wV1xN9wd98A9cS/cGxwxBBJITJEig8I+zJCjQAmNCvthUMOiwQbm2MQCB3Af3Bf3w/3xADwQD8KD8RA8FA/Dw/EIPBKPwqPxGDwWj8Pj8QQ8EU/CpXgynoKn4ml4Op6BZ+JZeDaeg+fieXg+XoAX4kV4MV6Cl+JleDlegVfiVXg1XoPX4nW4DK/HG/BGvAlvxlvwVrwNb8c78E68C+/Ge/BevA/vxwfwQXwIH8ZH8FF8DB/HJ/BJfAqfxmfwWXwOn8cX8EV8CV/GV/BVfA1fxzfwTXwL38Z38F18D9/HD/BD/Ag/xk/wU/wMP8cv8Ev8Cr/Gb/BbXI7f4ff4A/6IP+HP+Av+ir/h7/gH/ol/4d+4Av9hKwyMsQHzmM8CFrIhi9iIjdmErbJtbI1tZwexHexgdgg7lB3GDmdHsCPZUexodgw7lh3HjmcnsBPZSexkdgo7lZ3GTmdnsDPZWWFTqvWdO3d2665uXe/W3d16brfu6dbzuvX8br2gWy/s1ouW6/re5bpnrycbo6NMNybNeV0PZ3IRa24SP861mLVce/Ze7ItcN0lQyVKo3Cu1lSP3iCUvZOIXTa1EUEtuRDaakposV2lmvYKrfFXwUshcKCNymXRv9f6GG5mMq7ypO0q7784nhSq3XvyM9NrlUcc7ao9kUdmFV1tuvEzm1dg9OobInS7pTS2Np8qpHrtHR/fdae3F3HlIW54k/oZKpPYyXUgvV+UsrJSwjZEBt5aLLMj5Qjd26IKiKQxeIcvGF5kUs4FcyGDp18Dy1BMZt8FU5wldnPOiGuZyam2myqgyOjWyrnf5bZC8QusrD9cj44LmGFfbnbuGvFYTJ9+/RG1kEz0vQxdttSGjWOtZwc2s9khrGpG9srRKl4NYb4Yte1ONmqrXEDTV/xizO5i2TEObNUVcN5XPc2nswNR1wJN9TW3H7jonHqt0VPFKmirnJYVJ8mlYETfdOFpKO85BwSu/zigBw15wUCjhFY2VA9FUZECueeJCyZ2d/oZweKsyXcpx7ytdxcQ8oDSmkqKupjJu9IIyU9uIG6PntRDzyVaciD2kJDp/2kvdBQOh0xGdqANy2uS5b7XO6/HyoC54nkfLoJBslMsNmbdRdTeQpqBWacnzsCU0ledoPrE31XhpflsQvpFVvogSZaRwrkSt2zzOZVg1ManKPOdQWGfNdJrLYd0oK3gtB4m2Xq515bceBHNV0gVBzOuZtKHQReVKsVVOdoZTbeYUolHrOFFjPYh5yiiU9ZwUZiMHZEVJJ+yS5nX32B0WulRWG4+StQid/WRmm8q+CKwhEPr7GypkT+jEWSX8XKeqbNPQsYVuT6JUaboKCh2rXPqxaeosKHhakr30P9dm5lecamnYekT8y+R0SgJSS+VDhok6kJuVpoqmPcEoqQUhilKxVZoVCQcUUG0SJhKfqrOWvioJzZRCWSZtgmOqr3Aquc2kIeeElZt21K2q3PArQ/EIDVkmlxGlerWeK5Whe7i8+7VuysR1NjEb9riLtiAVbOi8KWSwBMmkh7IrodYCV0REdIYshdyu1dPaZrXrQXY85bXt8jdxe5cq97JVfzsnLZSofkrqGH6a61iGqiTpPB9SLzG2UjJqN9SX5PIo5mZ55ODmWYrgZJrrecUNScl8skFQ6JudZxKlh4T4mixOCTIykWWYxITVSm6rK23VdNEnu3sNLQHLSrOaUm9s2jKlNPkpb1I5pKylDU/l2CnuBLd1At3rcMqFdIEeE8imUyUEFbc/58TBhFjrqR0327+/BUgSR63jdGmxxdONAU+IeDHghEMhSuGnblyEidGUgM0hFalx82iSXmWiBI5RNiNB0q7sTEKdTlfVoiXsq6KKICIpBdStc+qaxq9ni0pu3zru4ydEzaNCprxtUe7+JLDU7XIzaSX6+4ws6W91SbpSuCLEcsupuGlMiAPSaD8x1LiHbsyQadQ1VMnnUsU6qPiCGupaT+mzQha4xhLEjaAGMXagL2hQkZlEokGnNoekMo6p8QQ0t3jNRy24W2St9aTezlQR2OKxAwyxCp7I1eVRP4rr1gVJyKc5pzZVGMvMzbcdVyH0ymh4iJkZOWWxIaZs6LbWSLm6JG11AFcIxWqqddqbUkcbM11aPrNydUnum0CL31aTw3xglfM7sJTubOEXmvpMm3saPVFslJy6pjoUNIrKxFVGrqr2IyYq5bxuJxYN6II6SRi78WgWA/rM8Vzhe7GkMutHaGC0u2hIYpfkiyqb9Juz6Qvsv6ZkCG0AALgB/4WwAY0AS7AIUFixAQGOWbFGBitYIbAQWUuwFFJYIbCAWR2wBitcWFmwFCsAAAABWLn3vAAA"},function(e,t){e.exports="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' width='10' height='10'%3E%3Cpolyline points='1.5 3.5 5 7 8.5 3.5' stroke='currentColor' stroke-width='2' fill='transparent' stroke-linecap='round' stroke-linejoin='round' opacity='.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var i,o=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o)?e:(i=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:r+o.replace(/^\.\//,""),"url("+JSON.stringify(i)+")")}))}},function(e,t){!function(e){"use strict";var t=["sanitize","whiteList","sanitizeFn"],n=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],r={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},i=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,o=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function a(t,r){var a=t.nodeName.toLowerCase();if(-1!==e.inArray(a,r))return-1===e.inArray(a,n)||Boolean(t.nodeValue.match(i)||t.nodeValue.match(o));for(var s=e(r).filter((function(e,t){return t instanceof RegExp})),l=0,c=s.length;l<c;l++)if(a.match(s[l]))return!0;return!1}function s(t,n,r){if(0===t.length)return t;if(r&&"function"==typeof r)return r(t);if(!document.implementation||!document.implementation.createHTMLDocument)return t;var i=document.implementation.createHTMLDocument("sanitization");i.body.innerHTML=t;for(var o=e.map(n,(function(e,t){return t})),s=e(i.body).find("*"),l=0,c=s.length;l<c;l++){var u=s[l],d=u.nodeName.toLowerCase();if(-1!==e.inArray(d,o))for(var p=e.map(u.attributes,(function(e){return e})),f=[].concat(n["*"]||[],n[d]||[]),h=0,g=p.length;h<g;h++)a(p[h],f)||u.removeAttribute(p[h].nodeName);else u.parentNode.removeChild(u)}return i.body.innerHTML}var l=function(e,t){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",e,t)};l.VERSION="3.4.1",l.TRANSITION_DURATION=150,l.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:r},l.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var a=i[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},l.prototype.getDefaults=function(){return l.DEFAULTS},l.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=s(n.template,n.whiteList,n.sanitizeFn)),n},l.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},l.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},l.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},l.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},l.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,s=/\s?auto?\s?/i,c=s.test(a);c&&(a=a.replace(s,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var u=this.getPosition(),d=i[0].offsetWidth,p=i[0].offsetHeight;if(c){var f=a,h=this.getPosition(this.$viewport);a="bottom"==a&&u.bottom+p>h.bottom?"top":"top"==a&&u.top-p<h.top?"bottom":"right"==a&&u.right+d>h.width?"left":"left"==a&&u.left-d<h.left?"right":a,i.removeClass(f).addClass(a)}var g=this.getCalculatedOffset(a,u,d,p);this.applyPlacement(g,a);var m=function(){var e=r.hoverState;r.$element.trigger("shown.bs."+r.type),r.hoverState=null,"out"==e&&r.leave(r)};e.support.transition&&this.$tip.hasClass("fade")?i.one("bsTransitionEnd",m).emulateTransitionEnd(l.TRANSITION_DURATION):m()}},l.prototype.applyPlacement=function(t,n){var r=this.tip(),i=r[0].offsetWidth,o=r[0].offsetHeight,a=parseInt(r.css("margin-top"),10),s=parseInt(r.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(s)&&(s=0),t.top+=a,t.left+=s,e.offset.setOffset(r[0],e.extend({using:function(e){r.css({top:Math.round(e.top),left:Math.round(e.left)})}},t),0),r.addClass("in");var l=r[0].offsetWidth,c=r[0].offsetHeight;"top"==n&&c!=o&&(t.top=t.top+o-c);var u=this.getViewportAdjustedDelta(n,t,l,c);u.left?t.left+=u.left:t.top+=u.top;var d=/top|bottom/.test(n),p=d?2*u.left-i+l:2*u.top-o+c,f=d?"offsetWidth":"offsetHeight";r.offset(t),this.replaceArrow(p,r[0][f],d)},l.prototype.replaceArrow=function(e,t,n){this.arrow().css(n?"left":"top",50*(1-e/t)+"%").css(n?"top":"left","")},l.prototype.setContent=function(){var e=this.tip(),t=this.getTitle();this.options.html?(this.options.sanitize&&(t=s(t,this.options.whiteList,this.options.sanitizeFn)),e.find(".tooltip-inner").html(t)):e.find(".tooltip-inner").text(t),e.removeClass("fade in top bottom left right")},l.prototype.hide=function(t){var n=this,r=e(this.$tip),i=e.Event("hide.bs."+this.type);function o(){"in"!=n.hoverState&&r.detach(),n.$element&&n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),t&&t()}if(this.$element.trigger(i),!i.isDefaultPrevented())return r.removeClass("in"),e.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",o).emulateTransitionEnd(l.TRANSITION_DURATION):o(),this.hoverState=null,this},l.prototype.fixTitle=function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},l.prototype.hasContent=function(){return this.getTitle()},l.prototype.getPosition=function(t){var n=(t=t||this.$element)[0],r="BODY"==n.tagName,i=n.getBoundingClientRect();null==i.width&&(i=e.extend({},i,{width:i.right-i.left,height:i.bottom-i.top}));var o=window.SVGElement&&n instanceof window.SVGElement,a=r?{top:0,left:0}:o?null:t.offset(),s={scroll:r?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},l=r?{width:e(window).width(),height:e(window).height()}:null;return e.extend({},i,s,l,a)},l.prototype.getCalculatedOffset=function(e,t,n,r){return"bottom"==e?{top:t.top+t.height,left:t.left+t.width/2-n/2}:"top"==e?{top:t.top-r,left:t.left+t.width/2-n/2}:"left"==e?{top:t.top+t.height/2-r/2,left:t.left-n}:{top:t.top+t.height/2-r/2,left:t.left+t.width}},l.prototype.getViewportAdjustedDelta=function(e,t,n,r){var i={top:0,left:0};if(!this.$viewport)return i;var o=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(e)){var s=t.top-o-a.scroll,l=t.top+o-a.scroll+r;s<a.top?i.top=a.top-s:l>a.top+a.height&&(i.top=a.top+a.height-l)}else{var c=t.left-o,u=t.left+o+n;c<a.left?i.left=a.left-c:u>a.right&&(i.left=a.left+a.width-u)}return i},l.prototype.getTitle=function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},l.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},l.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},l.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},l.prototype.enable=function(){this.enabled=!0},l.prototype.disable=function(){this.enabled=!1},l.prototype.toggleEnabled=function(){this.enabled=!this.enabled},l.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},l.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},l.prototype.sanitizeHtml=function(e){return s(e,this.options.whiteList,this.options.sanitizeFn)};var c=e.fn.tooltip;e.fn.tooltip=function(t){return this.each((function(){var n=e(this),r=n.data("bs.tooltip"),i="object"==typeof t&&t;!r&&/destroy|hide/.test(t)||(r||n.data("bs.tooltip",r=new l(this,i)),"string"==typeof t&&r[t]())}))},e.fn.tooltip.Constructor=l,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=c,this}}(jQuery)},function(e,t){!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),(t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype)).constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=e.fn.popover;e.fn.popover=function(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))},e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(jQuery)},function(e,t,n){"use strict";n.r(t);var r=n(133);for(var i in r)["default","core"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(114);n.d(t,"watchDigests",(function(){return o.b})),n.d(t,"getLocals",(function(){return o.a}));var a=n(55);n.d(t,"getNg1ViewConfigFactory",(function(){return a.b})),n.d(t,"ng1ViewsBuilder",(function(){return a.c})),n.d(t,"Ng1ViewConfig",(function(){return a.a}));var s=n(112);n.d(t,"StateProvider",(function(){return s.a}));var l=n(113);n.d(t,"UrlRouterProvider",(function(){return l.a}));n(220),n(221),n(222),n(223),n(224);var c=n(2);for(var i in n.d(t,"core",(function(){return c})),c)["default","core","watchDigests","getLocals","getNg1ViewConfigFactory","ng1ViewsBuilder","Ng1ViewConfig","StateProvider","UrlRouterProvider"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return c[e]}))}(i);t.default="ui.router"},function(e,t){},function(e,t,n){"use strict";var r,i,o,a=n(12),s=n(2);function l(e){var t=e.match(/^\s*({[^}]*})\s*$/);t&&(e="("+t[1]+")");var n=e.replace(/\n/g," ").match(/^\s*([^(]*?)\s*(\((.*)\))?\s*$/);if(!n||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1]||null,paramExpr:n[3]||null}}function c(e){var t=e.parent().inheritedData("$uiView"),n=Object(s.parse)("$cfg.path")(t);return n?Object(s.tail)(n).state.name:void 0}function u(e,t,n){var r=n.uiState||e.current.name,i=Object(s.extend)(function(e,t){return{relative:c(e)||t.$current,inherit:!0,source:"sref"}}(t,e),n.uiStateOpts||{}),o=e.href(r,n.uiStateParams,i);return{uiState:r,uiStateParams:n.uiStateParams,uiStateOpts:i,href:o}}function d(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function p(e,t,n,r,i){return function(o){var a=o.which||o.button,s=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||o.altKey||e.attr("target"))){var l=n((function(){e.attr("disabled")||t.go(s.uiState,s.uiStateParams,s.uiStateOpts)}));o.preventDefault();var c=r.isAnchor&&!s.href?1:0;o.preventDefault=function(){c--<=0&&n.cancel(l)}}}}function f(e,t,n,r){var i;r&&(i=r.events),Object(s.isArray)(i)||(i=["click"]);for(var o=e.on?"on":"bind",a=0,l=i;a<l.length;a++){var c=l[a];e[o](c,n)}t.$on("$destroy",(function(){for(var t=e.off?"off":"unbind",r=0,o=i;r<o.length;r++){var a=o[r];e[t](a,n)}}))}r=["$uiRouter","$timeout",function(e,t){var n=e.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var c=d(i),h=a[1]||a[0],g=null,m={},v=function(){return u(n,i,m)},b=l(o.uiSref);function y(){var e=v();g&&g(),h&&(g=h.$$addStateInfo(e.uiState,e.uiStateParams)),null!=e.href&&o.$set(c.attr,e.href)}if(m.uiState=b.state,m.uiStateOpts=o.uiSrefOpts?r.$eval(o.uiSrefOpts):{},b.paramExpr&&(r.$watch(b.paramExpr,(function(e){m.uiStateParams=Object(s.extend)({},e),y()}),!0),m.uiStateParams=Object(s.extend)({},r.$eval(b.paramExpr))),y(),r.$on("$destroy",e.stateRegistry.onStatesChanged(y)),r.$on("$destroy",e.transitionService.onSuccess({},y)),c.clickable){var x=p(i,n,t,c,v);f(i,r,x,m.uiStateOpts)}}}}],i=["$uiRouter","$timeout",function(e,t){var n=e.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var l,c=d(i),h=a[1]||a[0],g=null,m={},v=function(){return u(n,i,m)},b=["uiState","uiStateParams","uiStateOpts"],y=b.reduce((function(e,t){return e[t]=s.noop,e}),{});function x(){var e=v();g&&g(),h&&(g=h.$$addStateInfo(e.uiState,e.uiStateParams)),null!=e.href&&o.$set(c.attr,e.href)}b.forEach((function(e){m[e]=o[e]?r.$eval(o[e]):null,o.$observe(e,(function(t){y[e](),y[e]=r.$watch(t,(function(t){m[e]=t,x()}),!0)}))})),x(),r.$on("$destroy",e.stateRegistry.onStatesChanged(x)),r.$on("$destroy",e.transitionService.onSuccess({},x)),c.clickable&&(l=p(i,n,t,c,v),f(i,r,l,m.uiStateOpts))}}}],o=["$state","$stateParams","$interpolate","$uiRouter",function(e,t,n,r){return{restrict:"A",controller:["$scope","$element","$attrs",function(t,i,o){var a,u,d,p,f,h=[];a=n(o.uiSrefActiveEq||"",!1)(t);try{u=t.$eval(o.uiSrefActive)}catch(e){}function g(e){e.promise.then(y,s.noop)}function m(){v(u)}function v(e){Object(s.isObject)(e)&&(h=[],Object(s.forEach)(e,(function(e,n){var r=function(e,n){var r=l(e);b(r.state,t.$eval(r.paramExpr),n)};Object(s.isString)(e)?r(e,n):Object(s.isArray)(e)&&Object(s.forEach)(e,(function(e){r(e,n)}))})))}function b(t,n,r){var o={state:e.get(t,c(i))||{name:t},params:n,activeClass:r};return h.push(o),function(){Object(s.removeFrom)(h)(o)}}function y(){var n=function(e){return e.split(/\s/).filter(s.identity)},r=function(e){return e.map((function(e){return e.activeClass})).map(n).reduce(s.unnestR,[])},o=r(h).concat(n(a)).reduce(s.uniqR,[]),l=r(h.filter((function(t){return e.includes(t.state.name,t.params)}))),c=!!h.filter((function(t){return e.is(t.state.name,t.params)})).length?n(a):[],u=l.concat(c).reduce(s.uniqR,[]),d=o.filter((function(e){return!Object(s.inArray)(u,e)}));t.$evalAsync((function(){u.forEach((function(e){return i.addClass(e)})),d.forEach((function(e){return i.removeClass(e)}))}))}v(u=u||n(o.uiSrefActive||"",!1)(t)),this.$$addStateInfo=function(e,t){if(!(Object(s.isObject)(u)&&h.length>0)){var n=b(e,t,u);return y(),n}},t.$on("$destroy",(d=r.stateRegistry.onStatesChanged(m),p=r.transitionService.onStart({},g),f=t.$on("$stateChangeSuccess",y),function(){d(),p(),f()})),r.globals.transition&&g(r.globals.transition),y()}]}}],a.a.module("ui.router.state").directive("uiSref",r).directive("uiSrefActive",o).directive("uiSrefActiveEq",o).directive("uiState",i)},function(e,t,n){"use strict";var r=n(12);function i(e){var t=function(t,n,r){return e.is(t,n,r)};return t.$stateful=!0,t}function o(e){var t=function(t,n,r){return e.includes(t,n,r)};return t.$stateful=!0,t}i.$inject=["$state"],o.$inject=["$state"],r.a.module("ui.router.state").filter("isState",i).filter("includedByState",o)},function(e,t,n){"use strict";var r,i=n(2),o=n(12),a=n(114),s=n(55);function l(e,t,n,r,s){var l=Object(i.parse)("viewDecl.controllerAs"),c=Object(i.parse)("viewDecl.resolveAs");return{restrict:"ECA",priority:-400,compile:function(r){var u=r.html();return r.empty(),function(r,p){var f=p.data("$uiView");if(!f)return p.html(u),void e(p.contents())(r);var h=f.$cfg||{viewDecl:{},getTemplate:i.noop},g=h.path&&new i.ResolveContext(h.path);p.html(h.getTemplate(p,g)||u),i.trace.traceUIViewFill(f.$uiView,p.html());var m=e(p.contents()),v=h.controller,b=l(h),y=c(h),x=g&&Object(a.a)(g);if(r[y]=x,v){var w=t(v,Object(i.extend)({},x,{$scope:r,$element:p}));b&&(r[b]=w,r[b][y]=x),p.data("$ngControllerController",w),p.children().data("$ngControllerController",w),d(s,n,w,r,h)}if(Object(i.isString)(h.component))var k=Object(i.kebobString)(h.component),A=new RegExp("^(x-|data-)?"+k+"$","i"),E=r.$watch((function(){var e=[].slice.call(p[0].children).filter((function(e){return e&&e.tagName&&A.exec(e.tagName)}));return e&&o.a.element(e).data("$"+h.component+"Controller")}),(function(e){e&&(d(s,n,e,r,h),E())}));m(r)}}}}r=["$view","$animate","$uiViewScroll","$interpolate","$q",function(e,t,n,r,a){var l={$cfg:{viewDecl:{$context:e._pluginapi._rootViewContext()}},$uiView:{}},c={count:0,restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(u,d,p){return function(u,d,f){var h,g,m,v,b=f.onload||"",y=f.autoscroll,x={enter:function(e,n,r){o.a.version.minor>2?t.enter(e,null,n).then(r):t.enter(e,null,n,r)},leave:function(e,n){o.a.version.minor>2?t.leave(e).then(n):t.leave(e,n)}},w=d.inheritedData("$uiView")||l,k=r(f.uiView||f.name||"")(u)||"$default",A={$type:"ng1",id:c.count++,name:k,fqn:w.$uiView.fqn?w.$uiView.fqn+"."+k:k,config:null,configUpdated:function(e){if(e&&!(e instanceof s.a))return;if(t=v,n=e,t===n)return;var t,n;i.trace.traceUIViewConfigUpdated(A,e&&e.viewDecl&&e.viewDecl.$context),v=e,S(e)},get creationContext(){var e=Object(i.parse)("$cfg.viewDecl.$context")(w),t=Object(i.parse)("$uiView.creationContext")(w);return e||t}};i.trace.traceUIViewEvent("Linking",A),d.data("$uiView",{$uiView:A}),S();var E=e.registerUIView(A);function S(e){var t=u.$new(),r=a.defer(),o=a.defer(),s={$cfg:e,$uiView:A},l={$animEnter:r.promise,$animLeave:o.promise,$$animLeave:o};t.$emit("$viewContentLoading",k);var c=p(t,(function(e){e.data("$uiViewAnim",l),e.data("$uiView",s),x.enter(e,d,(function(){r.resolve(),m&&m.$emit("$viewContentAnimationEnded"),(Object(i.isDefined)(y)&&!y||u.$eval(y))&&n(e)})),function(){if(h&&(i.trace.traceUIViewEvent("Removing (previous) el",h.data("$uiView")),h.remove(),h=null),m&&(i.trace.traceUIViewEvent("Destroying scope",A),m.$destroy(),m=null),g){var e=g.data("$uiViewAnim");i.trace.traceUIViewEvent("Animate out",e),x.leave(g,(function(){e.$$animLeave.resolve(),h=null})),h=g,g=null}}()}));g=c,(m=t).$emit("$viewContentLoaded",e||v),m.$eval(b)}u.$on("$destroy",(function(){i.trace.traceUIViewEvent("Destroying/Unregistering",A),E()}))}}};return c}],l.$inject=["$compile","$controller","$transitions","$view","$q"];var c="function"==typeof o.a.module("ui.router").component,u=0;function d(e,t,n,r,o){!Object(i.isFunction)(n.$onInit)||(o.viewDecl.component||o.viewDecl.componentProvider)&&c||n.$onInit();var a=Object(i.tail)(o.path).state.self,s={bind:n};if(Object(i.isFunction)(n.uiOnParamsChanged)){var l=new i.ResolveContext(o.path).getResolvable("$transition$").data;r.$on("$destroy",t.onSuccess({},(function(e){if(e!==l&&-1===e.exiting().indexOf(a)){var t=e.params("to"),r=e.params("from"),o=function(e){return e.paramSchema},s=e.treeChanges("to").map(o).reduce(i.unnestR,[]),c=e.treeChanges("from").map(o).reduce(i.unnestR,[]),u=s.filter((function(e){var n=c.indexOf(e);return-1===n||!c[n].type.equals(t[e.id],r[e.id])}));if(u.length){var d=u.map((function(e){return e.id})),p=Object(i.filter)(t,(function(e,t){return-1!==d.indexOf(t)}));n.uiOnParamsChanged(p,e)}}}),s))}if(Object(i.isFunction)(n.uiCanExit)){var d=u++,p=function(e){return!!e&&(e._uiCanExitIds&&!0===e._uiCanExitIds[d]||p(e.redirectedFrom()))},f={exiting:a.name};r.$on("$destroy",t.onBefore(f,(function(t){var r,i=t._uiCanExitIds=t._uiCanExitIds||{};return p(t)||(r=e.when(n.uiCanExit(t))).then((function(e){return i[d]=!1!==e})),r}),s))}}o.a.module("ui.router.state").directive("uiView",r),o.a.module("ui.router.state").directive("uiView",l)},function(e,t,n){"use strict";n(12).a.module("ui.router.state").provider("$uiViewScroll",(function(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n((function(){e[0].scrollIntoView()}),0,!1)}}]}))},function(e,t,n){n(226),e.exports="ngRoute"},function(e,t){ +!function(e){"use strict";var t={objectMaxDepth:5,urlErrorParamsEnabled:!0};function n(e){if(!L(e))return t;z(e.objectMaxDepth)&&(t.objectMaxDepth=r(e.objectMaxDepth)?e.objectMaxDepth:NaN),z(e.urlErrorParamsEnabled)&&Z(e.urlErrorParamsEnabled)&&(t.urlErrorParamsEnabled=e.urlErrorParamsEnabled)}function r(e){return q(e)&&e>0}function i(e,n){n=n||Error;var r="https://errors.angularjs.org/1.8.3/",i=r.replace(".","\\.")+"[\\s\\S]*",o=new RegExp(i,"g");return function(){var i,a,s=arguments[0],l=arguments[1],c="["+(e?e+":":"")+s+"] ",u=de(arguments,2).map((function(e){return Ve(e,t.objectMaxDepth)}));if(c+=l.replace(/\{\d+\}/g,(function(e){var t=+e.slice(1,-1);return t<u.length?u[t].replace(o,""):e})),c+="\n"+r+(e?e+"/":"")+s,t.urlErrorParamsEnabled)for(a=0,i="?";a<u.length;a++,i="&")c+=i+"p"+a+"="+encodeURIComponent(u[a]);return new n(c)}}var o,a,s,l,c=/^\/(.+)\/([a-z]*)$/,u=Object.prototype.hasOwnProperty,d=function(e){return F(e)?e.toLowerCase():e},p=function(e){return F(e)?e.toUpperCase():e},f=[].slice,h=[].splice,g=[].push,m=Object.prototype.toString,v=Object.getPrototypeOf,b=i("ng"),y=e.angular||(e.angular={}),x=0;function w(e){if(null==e||Y(e))return!1;if(U(e)||F(e)||a&&e instanceof a)return!0;var t="length"in Object(e)&&e.length;return q(t)&&(t>=0&&t-1 in e||"function"==typeof e.item)}function k(e,t,n){var r,i;if(e)if(G(e))for(r in e)"prototype"!==r&&"length"!==r&&"name"!==r&&e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else if(U(e)||w(e)){var o="object"!=typeof e;for(r=0,i=e.length;r<i;r++)(o||r in e)&&t.call(n,e[r],r,e)}else if(e.forEach&&e.forEach!==k)e.forEach(t,n,e);else if(B(e))for(r in e)t.call(n,e[r],r,e);else if("function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else for(r in e)u.call(e,r)&&t.call(n,e[r],r,e);return e}function A(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function E(e){return function(t,n){e(n,t)}}function S(){return++x}function $(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function C(e,t,n){for(var r=e.$$hashKey,i=0,o=t.length;i<o;++i){var a=t[i];if(L(a)||G(a))for(var s=Object.keys(a),l=0,c=s.length;l<c;l++){var u=s[l],d=a[u];n&&L(d)?V(d)?e[u]=new Date(d.valueOf()):W(d)?e[u]=new RegExp(d):d.nodeName?e[u]=d.cloneNode(!0):te(d)?e[u]=d.clone():"__proto__"!==u&&(L(e[u])||(e[u]=U(d)?[]:{}),C(e[u],[d],!0)):e[u]=d}}return $(e,r),e}function _(e){return C(e,f.call(arguments,1),!1)}function O(e){return C(e,f.call(arguments,1),!0)}function T(e){return parseInt(e,10)}o=e.document.documentMode;var j=Number.isNaN||function(e){return e!=e};function P(e,t){return _(Object.create(e),t)}function D(){}function R(e){return e}function I(e){return function(){return e}}function N(e){return G(e.toString)&&e.toString!==m}function M(e){return void 0===e}function z(e){return void 0!==e}function L(e){return null!==e&&"object"==typeof e}function B(e){return null!==e&&"object"==typeof e&&!v(e)}function F(e){return"string"==typeof e}function q(e){return"number"==typeof e}function V(e){return"[object Date]"===m.call(e)}function U(e){return Array.isArray(e)||e instanceof Array}function H(e){switch(m.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return e instanceof Error}}function G(e){return"function"==typeof e}function W(e){return"[object RegExp]"===m.call(e)}function Y(e){return e&&e.window===e}function X(e){return e&&e.$evalAsync&&e.$watch}function Z(e){return"boolean"==typeof e}function Q(e){return e&&G(e.then)}D.$inject=[],R.$inject=[];var J=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;var K=function(e){return F(e)?e.trim():e},ee=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function te(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function ne(e){return d(e.nodeName||e[0]&&e[0].nodeName)}function re(e,t){return-1!==Array.prototype.indexOf.call(e,t)}function ie(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function oe(e,t,n){var i,o,a=[],s=[];if(n=r(n)?n:NaN,t){if((o=t)&&q(o.length)&&J.test(m.call(o))||(i=t,"[object ArrayBuffer]"===m.call(i)))throw b("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw b("cpi","Can't copy! Source and destination are identical.");return U(t)?t.length=0:k(t,(function(e,n){"$$hashKey"!==n&&delete t[n]})),a.push(e),s.push(t),l(e,t,n)}return c(e,n);function l(e,t,n){if(--n<0)return"...";var r,i=t.$$hashKey;if(U(e))for(var o=0,a=e.length;o<a;o++)t.push(c(e[o],n));else if(B(e))for(r in e)t[r]=c(e[r],n);else if(e&&"function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&(t[r]=c(e[r],n));else for(r in e)u.call(e,r)&&(t[r]=c(e[r],n));return $(t,i),t}function c(e,t){if(!L(e))return e;var n=a.indexOf(e);if(-1!==n)return s[n];if(Y(e)||X(e))throw b("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var r=!1,i=function(e){switch(m.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(c(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(G(e.cloneNode))return e.cloneNode(!0)}(e);return void 0===i&&(i=U(e)?[]:Object.create(v(e)),r=!0),a.push(e),s.push(i),r?l(e,i,t):i}}function ae(e,t){return e===t||e!=e&&t!=t}function se(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,r,i,o=typeof e;if(o===typeof t&&"object"===o){if(!U(e)){if(V(e))return!!V(t)&&ae(e.getTime(),t.getTime());if(W(e))return!!W(t)&&e.toString()===t.toString();if(X(e)||X(t)||Y(e)||Y(t)||U(t)||V(t)||W(t))return!1;for(r in i=Le(),e)if("$"!==r.charAt(0)&&!G(e[r])){if(!se(e[r],t[r]))return!1;i[r]=!0}for(r in t)if(!(r in i)&&"$"!==r.charAt(0)&&z(t[r])&&!G(t[r]))return!1;return!0}if(!U(t))return!1;if((n=e.length)===t.length){for(r=0;r<n;r++)if(!se(e[r],t[r]))return!1;return!0}}return!1}var le=function(){if(!z(le.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");le.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else le.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return le.rules},ce=function(){if(z(ce.name_))return ce.name_;var t,n,r,i,o=Se.length;for(n=0;n<o;++n)if(r=Se[n],t=e.document.querySelector("["+r.replace(":","\\:")+"jq]")){i=t.getAttribute(r+"jq");break}return ce.name_=i};function ue(e,t,n){return e.concat(f.call(t,n))}function de(e,t){return f.call(e,t||0)}function pe(e,t){var n=arguments.length>2?de(arguments,2):[];return!G(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,ue(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function fe(t,n){var r=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?r=void 0:Y(n)?r="$WINDOW":n&&e.document===n?r="$DOCUMENT":X(n)&&(r="$SCOPE"),r}function he(e,t){if(!M(e))return q(t)||(t=t?2:null),JSON.stringify(e,fe,t)}function ge(e){return F(e)?JSON.parse(e):e}var me=/:/g;function ve(e,t){e=e.replace(me,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return j(n)?t:n}function be(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}function ye(e,t,n){n=n?-1:1;var r=e.getTimezoneOffset();return be(e,n*(ve(t,r)-r))}function xe(e){e=a(e).clone().empty();var t=a("<div></div>").append(e).html();try{return e[0].nodeType===Fe?d(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,(function(e,t){return"<"+d(t)}))}catch(e){return d(t)}}function we(e){try{return decodeURIComponent(e)}catch(e){}}function ke(e){var t={};return k((e||"").split("&"),(function(e){var n,r,i;e&&(r=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&&(r=e.substring(0,n),i=e.substring(n+1)),z(r=we(r))&&(i=!z(i)||we(i),u.call(t,r)?U(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i))})),t}function Ae(e){return Ee(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ee(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var Se=["ng-","data-ng-","ng:","x-ng-"];var $e=function(t){var n=t.currentScript;if(!n)return!0;if(!(n instanceof e.HTMLScriptElement||n instanceof e.SVGScriptElement))return!1;var r=n.attributes;return[r.getNamedItem("src"),r.getNamedItem("href"),r.getNamedItem("xlink:href")].every((function(e){if(!e)return!0;if(!e.value)return!1;var n=t.createElement("a");if(n.href=e.value,t.location.origin===n.origin)return!0;switch(n.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}))}(e.document);function Ce(t,n){var r,i,o={};if(k(Se,(function(e){var n=e+"app";!r&&t.hasAttribute&&t.hasAttribute(n)&&(r=t,i=t.getAttribute(n))})),k(Se,(function(e){var n,o=e+"app";!r&&(n=t.querySelector("["+o.replace(":","\\:")+"]"))&&(r=n,i=n.getAttribute(o))})),r){if(!$e)return void e.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");o.strictDi=null!==function(e,t){var n,r,i=Se.length;for(r=0;r<i;++r)if(n=Se[r]+t,F(n=e.getAttribute(n)))return n;return null}(r,"strict-di"),n(r,i?[i]:[],o)}}function _e(t,n,r){L(r)||(r={});r=_({strictDi:!1},r);var i=function(){if((t=a(t)).injector()){var i=t[0]===e.document?"document":xe(t);throw b("btstrpd","App already bootstrapped with this element '{0}'",i.replace(/</,"<").replace(/>/,">"))}(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),r.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=Qt(n,r.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply((function(){t.data("$injector",r),n(t)(e)}))}]),o},o=/^NG_ENABLE_DEBUG_INFO!/,s=/^NG_DEFER_BOOTSTRAP!/;if(e&&o.test(e.name)&&(r.debugInfoEnabled=!0,e.name=e.name.replace(o,"")),e&&!s.test(e.name))return i();e.name=e.name.replace(s,""),y.resumeBootstrap=function(e){return k(e,(function(e){n.push(e)})),i()},G(y.resumeDeferredBootstrap)&&y.resumeDeferredBootstrap()}function Oe(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function Te(e){var t=y.element(e).injector();if(!t)throw b("test","no injector found for element argument to getTestability");return t.get("$$testability")}var je=/[A-Z]/g;function Pe(e,t){return t=t||"_",e.replace(je,(function(e,n){return(n?t:"")+e.toLowerCase()}))}var De=!1;function Re(){pt.legacyXHTMLReplacement=!0}function Ie(e,t,n){if(!e)throw b("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function Ne(e,t,n){return n&&U(e)&&(e=e[e.length-1]),Ie(G(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function Me(e,t){if("hasOwnProperty"===e)throw b("badname","hasOwnProperty is not a valid {0} name",t)}function ze(e){for(var t,n=e[0],r=e[e.length-1],i=1;n!==r&&(n=n.nextSibling);i++)(t||e[i]!==n)&&(t||(t=a(f.call(e,0,i))),t.push(n));return t||e}function Le(){return Object.create(null)}function Be(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=!N(e)||U(e)||V(e)?he(e):e.toString()}return e}var Fe=3;function qe(e,t){if(U(e)){t=t||[];for(var n=0,r=e.length;n<r;n++)t[n]=e[n]}else if(L(e))for(var i in t=t||{},e)"$"===i.charAt(0)&&"$"===i.charAt(1)||(t[i]=e[i]);return t||e}function Ve(e,t){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):M(e)?"undefined":"string"!=typeof e?function(e,t){var n=[];return r(t)&&(e=y.copy(e,null,t)),JSON.stringify(e,(function(e,t){if(L(t=fe(e,t))){if(n.indexOf(t)>=0)return"...";n.push(t)}return t}))}(e,t):e}var Ue={full:"1.8.3",major:1,minor:8,dot:3,codeName:"ultimate-farewell"};pt.expando="ng339";var He=pt.cache={},Ge=1;pt._data=function(e){return this.cache[e[this.expando]]||{}};var We=/-([a-z])/g,Ye=/^-ms-/,Xe={mouseleave:"mouseout",mouseenter:"mouseover"},Ze=i("jqLite");function Qe(e,t){return t.toUpperCase()}function Je(e){return e.replace(We,Qe)}var Ke=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,et=/<|&#?\w+;/,tt=/<([\w:-]+)/,nt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,rt={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr","tbody","table"]};rt.tbody=rt.tfoot=rt.colgroup=rt.caption=rt.thead,rt.th=rt.td;var it={option:[1,'<select multiple="multiple">',"</select>"],_default:[0,"",""]};for(var ot in rt){var at=rt[ot],st=at.slice().reverse();it[ot]=[st.length,"<"+st.join("><")+">","</"+at.join("></")+">"]}function lt(e){return!et.test(e)}function ct(e){var t=e.nodeType;return 1===t||!t||9===t}function ut(t,n){var r,i,a,s,l,c=n.createDocumentFragment(),u=[];if(lt(t))u.push(n.createTextNode(t));else{if(r=c.appendChild(n.createElement("div")),i=(tt.exec(t)||["",""])[1].toLowerCase(),s=pt.legacyXHTMLReplacement?t.replace(nt,"<$1></$2>"):t,o<10)for(a=it[i]||it._default,r.innerHTML=a[1]+s+a[2],l=a[0];l--;)r=r.firstChild;else{for(l=(a=rt[i]||[]).length;--l>-1;)r.appendChild(e.document.createElement(a[l])),r=r.firstChild;r.innerHTML=s}u=ue(u,r.childNodes),(r=c.firstChild).textContent=""}return c.textContent="",c.innerHTML="",k(u,(function(e){c.appendChild(e)})),c}it.optgroup=it.option;var dt=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))};function pt(t){if(t instanceof pt)return t;var n,r,i,o;if(F(t)&&(t=K(t),n=!0),!(this instanceof pt)){if(n&&"<"!==t.charAt(0))throw Ze("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new pt(t)}n?Et(this,(r=t,i=i||e.document,(o=Ke.exec(r))?[i.createElement(o[1])]:(o=ut(r,i))?o.childNodes:[])):G(t)?Ot(t):Et(this,t)}function ft(e){return e.cloneNode(!0)}function ht(e,t){!t&&ct(e)&&a.cleanData([e]),e.querySelectorAll&&a.cleanData(e.querySelectorAll("*"))}function gt(e){var t;for(t in e)return!1;return!0}function mt(e){var t=e.ng339,n=t&&He[t],r=n&&n.events,i=n&&n.data;i&&!gt(i)||r&&!gt(r)||(delete He[t],e.ng339=void 0)}function vt(e,t,n,r){if(z(r))throw Ze("offargs","jqLite#off() does not support the `selector` argument");var i=yt(e),o=i&&i.events,a=i&&i.handle;if(a){if(t){var s=function(t){var r=o[t];z(n)&&ie(r||[],n),z(n)&&r&&r.length>0||(e.removeEventListener(t,a),delete o[t])};k(t.split(" "),(function(e){s(e),Xe[e]&&s(Xe[e])}))}else for(t in o)"$destroy"!==t&&e.removeEventListener(t,a),delete o[t];mt(e)}}function bt(e,t){var n=e.ng339,r=n&&He[n];r&&(t?delete r.data[t]:r.data={},mt(e))}function yt(e,t){var n=e.ng339,r=n&&He[n];return t&&!r&&(e.ng339=n=++Ge,r=He[n]={events:{},data:{},handle:void 0}),r}function xt(e,t,n){if(ct(e)){var r,i=z(n),o=!i&&t&&!L(t),a=!t,s=yt(e,!o),l=s&&s.data;if(i)l[Je(t)]=n;else{if(a)return l;if(o)return l&&l[Je(t)];for(r in t)l[Je(r)]=t[r]}}}function wt(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function kt(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),r=n;k(t.split(" "),(function(e){e=K(e),r=r.replace(" "+e+" "," ")})),r!==n&&e.setAttribute("class",K(r))}}function At(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),r=n;k(t.split(" "),(function(e){e=K(e),-1===r.indexOf(" "+e+" ")&&(r+=e+" ")})),r!==n&&e.setAttribute("class",K(r))}}function Et(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var r=0;r<n;r++)e[e.length++]=t[r]}else e[e.length++]=t}}function St(e,t){return $t(e,"$"+(t||"ngController")+"Controller")}function $t(e,t,n){9===e.nodeType&&(e=e.documentElement);for(var r=U(t)?t:[t];e;){for(var i=0,o=r.length;i<o;i++)if(z(n=a.data(e,r[i])))return n;e=e.parentNode||11===e.nodeType&&e.host}}function Ct(e){for(ht(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function _t(e,t){t||ht(e);var n=e.parentNode;n&&n.removeChild(e)}function Ot(t){function n(){e.document.removeEventListener("DOMContentLoaded",n),e.removeEventListener("load",n),t()}"complete"===e.document.readyState?e.setTimeout(t):(e.document.addEventListener("DOMContentLoaded",n),e.addEventListener("load",n))}var Tt=pt.prototype={ready:Ot,toString:function(){var e=[];return k(this,(function(t){e.push(""+t)})),"["+e.join(", ")+"]"},eq:function(e){return a(e>=0?this[e]:this[this.length+e])},length:0,push:g,sort:[].sort,splice:[].splice},jt={};k("multiple,selected,checked,disabled,readOnly,required,open".split(","),(function(e){jt[d(e)]=e}));var Pt={};k("input,select,option,textarea,button,form,details".split(","),(function(e){Pt[e]=!0}));var Dt={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};function Rt(e,t){var n=jt[t.toLowerCase()];return n&&Pt[ne(e)]&&n}function It(e,t,n){n.call(e,t)}function Nt(e,t,n){var r=t.relatedTarget;r&&(r===e||dt.call(e,r))||n.call(e,t)}function Mt(){this.$get=function(){return _(pt,{hasClass:function(e,t){return e.attr&&(e=e[0]),wt(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),At(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),kt(e,t)}})}}function zt(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var r=typeof e;return n="function"===r||"object"===r&&null!==e?e.$$hashKey=r+":"+(t||S)():r+":"+e}k({data:xt,removeData:bt,hasData:function(e){for(var t in He[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t<n;t++)bt(e[t]),vt(e[t])}},(function(e,t){pt[t]=e})),k({data:xt,inheritedData:$t,scope:function(e){return a.data(e,"$scope")||$t(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return a.data(e,"$isolateScope")||a.data(e,"$isolateScopeNoTemplate")},controller:St,injector:function(e){return $t(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:wt,css:function(e,t,n){if(t=function(e){return Je(e.replace(Ye,"ms-"))}(t),!z(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var r,i=e.nodeType;if(i!==Fe&&2!==i&&8!==i&&e.getAttribute){var o=d(t),a=jt[o];if(!z(n))return r=e.getAttribute(t),a&&null!==r&&(r=o),null===r?void 0:r;null===n||!1===n&&a?e.removeAttribute(t):e.setAttribute(t,a?o:n)}},prop:function(e,t,n){if(!z(n))return e[t];e[t]=n},text:function(){return e.$dv="",e;function e(e,t){if(M(t)){var n=e.nodeType;return 1===n||n===Fe?e.textContent:""}e.textContent=t}}(),val:function(e,t){if(M(t)){if(e.multiple&&"select"===ne(e)){var n=[];return k(e.options,(function(e){e.selected&&n.push(e.value||e.text)})),n}return e.value}e.value=t},html:function(e,t){if(M(t))return e.innerHTML;ht(e,!0),e.innerHTML=t},empty:Ct},(function(e,t){pt.prototype[t]=function(t,n){var r,i,o=this.length;if(e!==Ct&&M(2===e.length&&e!==wt&&e!==St?t:n)){if(L(t)){for(r=0;r<o;r++)if(e===xt)e(this[r],t);else for(i in t)e(this[r],i,t[i]);return this}for(var a=e.$dv,s=M(a)?Math.min(o,1):o,l=0;l<s;l++){var c=e(this[l],t,n);a=a?a+c:c}return a}for(r=0;r<o;r++)e(this[r],t,n);return this}})),k({removeData:bt,on:function(e,t,n,r){if(z(r))throw Ze("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(ct(e)){var i=yt(e,!0),o=i.events,a=i.handle;a||(a=i.handle=function(e,t){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[r||n.type],o=i?i.length:0;if(o){if(M(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=i.specialHandlerWrapper||It;o>1&&(i=qe(i));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,i[l])}};return n.elem=e,n}(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,c=function(t,r,i){var s=o[t];s||((s=o[t]=[]).specialHandlerWrapper=r,"$destroy"===t||i||e.addEventListener(t,a)),s.push(n)};l--;)t=s[l],Xe[t]?(c(Xe[t],Nt),c(t,void 0,!0)):c(t)}},off:vt,one:function(e,t,n){(e=a(e)).on(t,(function r(){e.off(t,n),e.off(t,r)})),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;ht(e),k(new pt(t),(function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t}))},children:function(e){var t=[];return k(e.childNodes,(function(e){1===e.nodeType&&t.push(e)})),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(1===n||11===n)for(var r=0,i=(t=new pt(t)).length;r<i;r++){var o=t[r];e.appendChild(o)}},prepend:function(e,t){if(1===e.nodeType){var n=e.firstChild;k(new pt(t),(function(t){e.insertBefore(t,n)}))}},wrap:function(e,t){var n,r,i;n=e,r=a(t).eq(0).clone()[0],(i=n.parentNode)&&i.replaceChild(r,n),r.appendChild(n)},remove:_t,detach:function(e){_t(e,!0)},after:function(e,t){var n=e,r=e.parentNode;if(r)for(var i=0,o=(t=new pt(t)).length;i<o;i++){var a=t[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:At,removeClass:kt,toggleClass:function(e,t,n){t&&k(t.split(" "),(function(t){var r=n;M(r)&&(r=!wt(e,t)),(r?At:kt)(e,t)}))},parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:ft,triggerHandler:function(e,t,n){var r,i,o,a=t.type||t,s=yt(e),l=s&&s.events,c=l&&l[a];c&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:D,type:a,target:e},t.type&&(r=_(r,t)),i=qe(c),o=n?[r].concat(n):[r],k(i,(function(t){r.isImmediatePropagationStopped()||t.apply(e,o)})))}},(function(e,t){pt.prototype[t]=function(t,n,r){for(var i,o=0,s=this.length;o<s;o++)M(i)?z(i=e(this[o],t,n,r))&&(i=a(i)):Et(i,e(this[o],t,n,r));return z(i)?i:this}})),pt.prototype.bind=pt.prototype.on,pt.prototype.unbind=pt.prototype.off;var Lt=Object.create(null);function Bt(){this._keys=[],this._values=[],this._lastKey=NaN,this._lastIndex=-1}Bt.prototype={_idx:function(e){return e!==this._lastKey&&(this._lastKey=e,this._lastIndex=this._keys.indexOf(e)),this._lastIndex},_transformKey:function(e){return j(e)?Lt:e},get:function(e){e=this._transformKey(e);var t=this._idx(e);if(-1!==t)return this._values[t]},has:function(e){return e=this._transformKey(e),-1!==this._idx(e)},set:function(e,t){e=this._transformKey(e);var n=this._idx(e);-1===n&&(n=this._lastIndex=this._keys.length),this._keys[n]=e,this._values[n]=t},delete:function(e){e=this._transformKey(e);var t=this._idx(e);return-1!==t&&(this._keys.splice(t,1),this._values.splice(t,1),this._lastKey=NaN,this._lastIndex=-1,!0)}};var Ft=Bt,qt=[function(){this.$get=[function(){return Ft}]}],Vt=/^([^(]+?)=>/,Ut=/^[^(]*\(\s*([^)]*)\)/m,Ht=/,/,Gt=/^\s*(_?)(\S+?)\1\s*$/,Wt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yt=i("$injector");function Xt(e){return Function.prototype.toString.call(e)}function Zt(e){var t=Xt(e).replace(Wt,"");return t.match(Vt)||t.match(Ut)}function Qt(e,t){t=!0===t;var n={},r=[],i=new Ft,a={$provide:{provider:f(h),factory:f(m),service:f((function(e,t){return m(e,["$injector",function(e){return e.instantiate(t)}])})),value:f((function(e,t){return m(e,I(t),!1)})),constant:f((function(e,t){Me(e,"constant"),a[e]=t,c[e]=t})),decorator:function(e,t){var n=s.get(e+"Provider"),r=n.$get;n.$get=function(){var e=d.invoke(r,n);return d.invoke(t,null,{$delegate:e})}}}},s=a.$injector=b(a,(function(e,t){throw y.isString(t)&&r.push(t),Yt("unpr","Unknown provider: {0}",r.join(" <- "))})),c={},u=b(c,(function(e,t){var n=s.get(e+"Provider",t);return d.invoke(n.$get,n,void 0,e)})),d=u;a.$injectorProvider={$get:I(u)},d.modules=s.modules=Le();var p=v(e);return(d=u.get("$injector")).strictDi=t,k(p,(function(e){e&&d.invoke(e)})),d.loadNewModules=function(e){k(v(e),(function(e){e&&d.invoke(e)}))},d;function f(e){return function(t,n){if(!L(t))return e(t,n);k(t,E(e))}}function h(e,t){if(Me(e,"service"),(G(t)||U(t))&&(t=s.instantiate(t)),!t.$get)throw Yt("pget","Provider '{0}' must define $get factory method.",e);return a[e+"Provider"]=t}function g(e,t){return function(){var n=d.invoke(t,this);if(M(n))throw Yt("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function m(e,t,n){return h(e,{$get:!1!==n?g(e,t):t})}function v(e){Ie(M(e)||U(e),"modulesToLoad","not an array");var t,n=[];return k(e,(function(e){if(!i.get(e)){i.set(e,!0);try{F(e)?(t=l(e),d.modules[e]=t,n=n.concat(v(t.requires)).concat(t._runBlocks),r(t._invokeQueue),r(t._configBlocks)):G(e)||U(e)?n.push(s.invoke(e)):Ne(e,"module")}catch(t){throw U(e)&&(e=e[e.length-1]),t.message&&t.stack&&-1===t.stack.indexOf(t.message)&&(t=t.message+"\n"+t.stack),Yt("modulerr","Failed to instantiate module {0} due to:\n{1}",e,t.stack||t.message||t)}}function r(e){var t,n;for(t=0,n=e.length;t<n;t++){var r=e[t],i=s.get(r[0]);i[r[1]].apply(i,r[2])}}})),n}function b(e,i){function s(t,o){if(e.hasOwnProperty(t)){if(e[t]===n)throw Yt("cdep","Circular dependency found: {0}",t+" <- "+r.join(" <- "));return e[t]}try{return r.unshift(t),e[t]=n,e[t]=i(t,o),e[t]}catch(r){throw e[t]===n&&delete e[t],r}finally{r.shift()}}function l(e,n,r){for(var i=[],o=Qt.$$annotate(e,t,r),a=0,l=o.length;a<l;a++){var c=o[a];if("string"!=typeof c)throw Yt("itkn","Incorrect injection token! Expected service name as string, got {0}",c);i.push(n&&n.hasOwnProperty(c)?n[c]:s(c,r))}return i}return{invoke:function(e,t,n,r){"string"==typeof n&&(r=n,n=null);var i=l(e,n,r);return U(e)&&(e=e[e.length-1]),function(e){if(o||"function"!=typeof e)return!1;var t=e.$$ngIsClass;return Z(t)||(t=e.$$ngIsClass=/^class\b/.test(Xt(e))),t}(e)?(i.unshift(null),new(Function.prototype.bind.apply(e,i))):e.apply(t,i)},instantiate:function(e,t,n){var r=U(e)?e[e.length-1]:e,i=l(e,t,n);return i.unshift(null),new(Function.prototype.bind.apply(r,i))},get:s,annotate:Qt.$$annotate,has:function(t){return a.hasOwnProperty(t+"Provider")||e.hasOwnProperty(t)}}}}function Jt(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(n,r,i){var o=n.document;function s(e){if(e){e.scrollIntoView();var t=function(){var e=l.yOffset;if(G(e))e=e();else if(te(e)){var t=e[0];e="fixed"!==n.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom}else q(e)||(e=0);return e}();if(t){var r=e.getBoundingClientRect().top;n.scrollBy(0,r-t)}}else n.scrollTo(0,0)}function l(e){var t,n,i;(e=F(e)?e:q(e)?e.toString():r.hash())?(t=o.getElementById(e))?s(t):(n=o.getElementsByName(e),i=null,Array.prototype.some.call(n,(function(e){if("a"===ne(e))return i=e,!0})),(t=i)?s(t):"top"===e&&s(null)):s(null)}return t&&i.$watch((function(){return r.hash()}),(function(t,n){var r,o;t===n&&""===t||(r=function(){i.$evalAsync(l)},"complete"===(o=o||e).document.readyState?o.setTimeout(r):a(o).on("load",r))})),l}]}Qt.$$annotate=function(e,t,n){var r,i;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw F(n)&&n||(n=e.name||function(e){var t=Zt(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),Yt("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);k(Zt(e)[1].split(Ht),(function(e){e.replace(Gt,(function(e,t,n){r.push(n)}))}))}e.$inject=r}}else U(e)?(Ne(e[i=e.length-1],"fn"),r=e.slice(0,i)):Ne(e,"fn",!0);return r};var Kt=i("$animate");function en(e,t){return e||t?e?t?(U(e)&&(e=e.join(" ")),U(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function tn(e){return L(e)?e:{}}var nn=function(){this.$get=D},rn=function(){var e=new Ft,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){return{enabled:D,on:D,off:D,pin:D,push:function(a,s,l,c){c&&c(),(l=l||{}).from&&a.css(l.from),l.to&&a.css(l.to),(l.addClass||l.removeClass)&&function(n,a,s){var l=e.get(n)||{},c=i(l,a,!0),u=i(l,s,!1);(c||u)&&(e.set(n,l),t.push(n),1===t.length&&r.$$postDigest(o))}(a,l.addClass,l.removeClass);var u=new n;return u.complete(),u}};function i(e,t,n){var r=!1;return t&&k(t=F(t)?t.split(" "):U(t)?t:[],(function(t){t&&(r=!0,e[t]=n)})),r}function o(){k(t,(function(t){var n=e.get(t);if(n){var r=function(e){F(e)&&(e=e.split(" "));var t=Le();return k(e,(function(e){e.length&&(t[e]=!0)})),t}(t.attr("class")),i="",o="";k(n,(function(e,t){e!==!!r[t]&&(e?i+=(i.length?" ":"")+t:o+=(o.length?" ":"")+t)})),k(t,(function(e){i&&At(e,i),o&&kt(e,o)})),e.delete(t)}})),t.length=0}}]},on=["$provide",function(e){var t=this,n=null,r=null;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&"."!==n.charAt(0))throw Kt("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,r)},this.customFilter=function(e){return 1===arguments.length&&(r=G(e)?e:null),r},this.classNameFilter=function(e){if(1===arguments.length&&(n=e instanceof RegExp?e:null)){var t=new RegExp("[(\\s|\\/)]ng-animate[(\\s|\\/)]");if(t.test(n.toString()))throw n=null,Kt("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate")}return n},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var r=function(e){for(var t=0;t<e.length;t++){var n=e[t];if(1===n.nodeType)return n}}(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.cancel&&e.cancel()},enter:function(n,r,i,o){return r=r&&a(r),i=i&&a(i),t(n,r=r||i.parent(),i),e.push(n,"enter",tn(o))},move:function(n,r,i,o){return r=r&&a(r),i=i&&a(i),t(n,r=r||i.parent(),i),e.push(n,"move",tn(o))},leave:function(t,n){return e.push(t,"leave",tn(n),(function(){t.remove()}))},addClass:function(t,n,r){return(r=tn(r)).addClass=en(r.addclass,n),e.push(t,"addClass",r)},removeClass:function(t,n,r){return(r=tn(r)).removeClass=en(r.removeClass,n),e.push(t,"removeClass",r)},setClass:function(t,n,r,i){return(i=tn(i)).addClass=en(i.addClass,n),i.removeClass=en(i.removeClass,r),e.push(t,"setClass",i)},animate:function(t,n,r,i,o){return(o=tn(o)).from=o.from?_(o.from,n):n,o.to=o.to?_(o.to,r):r,i=i||"ng-inline-animate",o.tempClasses=en(o.tempClasses,i),e.push(t,"animate",o)}}}]}],an=function(){this.$get=["$$rAF",function(e){var t=[];function n(n){t.push(n),t.length>1||e((function(){for(var e=0;e<t.length;e++)t[e]();t=[]}))}return function(){var e=!1;return n((function(){e=!0})),function(t){e?t():n(t)}}}]},sn=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(e,t,n,r,i){function o(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){r()?function(e){i(e,0,!1)}(e):t(e)},this._state=0}return o.chain=function(e,t){var n=0;!function r(){if(n===e.length)return void t(!0);e[n]((function(e){!1!==e?(n++,r()):t(!1)}))}()},o.all=function(e,t){var n=0,r=!0;function i(i){r=r&&i,++n===e.length&&t(r)}k(e,(function(e){e.done(i)}))},o.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:D,getPromise:function(){if(!this.promise){var t=this;this.promise=e((function(e,n){t.done((function(t){!1===t?n():e()}))}))}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick((function(){t._resolve(e)})))},_resolve:function(e){2!==this._state&&(k(this._doneCallbacks,(function(t){t(e)})),this._doneCallbacks.length=0,this._state=2)}},o}]},ln=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,r){var i=r||{};i.$$prepared||(i=oe(i)),i.cleanupStyles&&(i.from=i.to=null),i.from&&(t.css(i.from),i.from=null);var o,a=new n;return{start:s,end:s};function s(){return e((function(){!function(){i.addClass&&(t.addClass(i.addClass),i.addClass=null);i.removeClass&&(t.removeClass(i.removeClass),i.removeClass=null);i.to&&(t.css(i.to),i.to=null)}(),o||a.complete(),o=!0})),a}}}]};function cn(e,t,n,r,i){var o=this,s=e.location,l=e.history,c=e.setTimeout,u=e.clearTimeout,d={},p=i(n);o.isMock=!1,o.$$completeOutstandingRequest=p.completeTask,o.$$incOutstandingRequestCount=p.incTaskCount,o.notifyWhenNoOutstandingRequests=p.notifyWhenNoPendingTasks;var f,h,g=s.href,m=t.find("base"),v=null,b=r.history?function(){try{return l.state}catch(e){}}:D;E(),o.url=function(t,n,i){if(M(i)&&(i=null),s!==e.location&&(s=e.location),l!==e.history&&(l=e.history),t){var a=h===i;if(t=li(t).href,g===t&&(!r.history||a))return o;var c=g&&sr(g)===sr(t);return g=t,h=i,!r.history||c&&a?(c||(v=t),n?s.replace(t):c?s.hash=function(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}(t):s.href=t,s.href!==t&&(v=t)):(l[n?"replaceState":"pushState"](i,"",t),E()),v&&(v=t),o}return function(e){return e.replace(/#$/,"")}(v||s.href)},o.state=function(){return f};var y=[],x=!1;function w(){v=null,S()}var A=null;function E(){se(f=M(f=b())?null:f,A)&&(f=A),A=f,h=f}function S(){var e=h;E(),g===o.url()&&e===f||(g=o.url(),h=f,k(y,(function(e){e(o.url(),f)})))}o.onUrlChange=function(t){return x||(r.history&&a(e).on("popstate",w),a(e).on("hashchange",w),x=!0),y.push(t),t},o.$$applicationDestroyed=function(){a(e).off("hashchange popstate",w)},o.$$checkUrlChange=S,o.baseHref=function(){var e=m.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},o.defer=function(e,t,n){var r;return t=t||0,n=n||p.DEFAULT_TASK_TYPE,p.incTaskCount(n),r=c((function(){delete d[r],p.completeTask(e,n)}),t),d[r]=n,r},o.defer.cancel=function(e){if(d.hasOwnProperty(e)){var t=d[e];return delete d[e],u(e),p.completeTask(D,t),!0}return!1}}function un(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(e,t,n,r,i){return new cn(e,r,t,n,i)}]}function dn(){this.$get=function(){var e={};function t(t,n){if(t in e)throw i("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var r=0,o=_({},n,{id:t}),a=Le(),s=n&&n.capacity||Number.MAX_VALUE,l=Le(),c=null,u=null;return e[t]={put:function(e,t){if(!M(t)){if(s<Number.MAX_VALUE)d(l[e]||(l[e]={key:e}));return e in a||r++,a[e]=t,r>s&&this.remove(u.key),t}},get:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;d(t)}return a[e]},remove:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;t===c&&(c=t.p),t===u&&(u=t.n),p(t.n,t.p),delete l[e]}e in a&&(delete a[e],r--)},removeAll:function(){a=Le(),r=0,l=Le(),c=u=null},destroy:function(){a=null,o=null,l=null,delete e[t]},info:function(){return _({},o,{size:r})}};function d(e){e!==c&&(u?u===e&&(u=e.n):u=e,p(e.n,e.p),p(e,c),(c=e).n=null)}function p(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}}return t.info=function(){var t={};return k(e,(function(e,n){t[n]=e.info()})),t},t.get=function(t){return e[t]},t}}function pn(){this.$get=["$cacheFactory",function(e){return e("templates")}]}var fn=i("$compile");var hn=new function(){};function gn(t,n){var r={},i=/^\s*directive:\s*([\w-]+)\s+(.*)$/,s=/(([\w-]+)(?::([^;]+))?;?)/,l=function(e){var t,n={},r=e.split(",");for(t=0;t<r.length;t++)n[r[t]]=!0;return n}("ngSrc,ngSrcset,src,srcset"),c=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,p=/^(on[a-z]+|formaction)$/,f=Le();function h(e,t,n){var r=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,i=Le();return k(e,(function(e,o){if((e=e.trim())in f)i[o]=f[e];else{var a=e.match(r);if(!a)throw fn("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,o,e,n?"controller bindings definition":"isolate scope definition");i[o]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||o},a[4]&&(f[e]=i[o])}})),i}function g(e,t){var n={isolateScope:null,bindToController:null};if(L(e.scope)&&(!0===e.bindToController?(n.bindToController=h(e.scope,t,!0),n.isolateScope={}):n.isolateScope=h(e.scope,t,!1)),L(e.bindToController)&&(n.bindToController=h(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw fn("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}this.directive=function e(n,i){return Ie(n,"name"),Me(n,"directive"),F(n)?(!function(e){var t=e.charAt(0);if(!t||t!==d(t))throw fn("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw fn("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}(n),Ie(i,"directiveFactory"),r.hasOwnProperty(n)||(r[n]=[],t.factory(n+"Directive",["$injector","$exceptionHandler",function(e,t){var i=[];return k(r[n],(function(r,o){try{var a=e.invoke(r);G(a)?a={compile:I(a)}:!a.compile&&a.link&&(a.compile=I(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||n,a.require=function(e){var t=e.require||e.controller&&e.name;return!U(t)&&L(t)&&k(t,(function(e,n){var r=e.match(c);e.substring(r[0].length)||(t[n]=r[0]+n)})),t}(a),a.restrict=function(e,t){if(e&&(!F(e)||!/[EACM]/.test(e)))throw fn("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}(a.restrict,n),a.$$moduleName=r.$$moduleName,i.push(a)}catch(e){t(e)}})),i}])),r[n].push(i)):k(n,E(e)),this},this.component=function e(t,n){if(!F(t))return k(t,E(pe(this,e))),this;var r=n.controller||function(){};function i(e){function t(t){return G(t)||U(t)?function(n,r){return e.invoke(t,this,{$element:n,$attrs:r})}:t}var i=n.template||n.templateUrl?n.template:"",o={controller:r,controllerAs:En(n.controller)||n.controllerAs||"$ctrl",template:t(i),templateUrl:t(n.templateUrl),transclude:n.transclude,scope:{},bindToController:n.bindings||{},restrict:"E",require:n.require};return k(n,(function(e,t){"$"===t.charAt(0)&&(o[t]=e)})),o}return k(n,(function(e,t){"$"===t.charAt(0)&&(i[t]=e,G(r)&&(r[t]=e))})),i.$inject=["$injector"],this.directive(t,i)},this.aHrefSanitizationTrustedUrlList=function(e){return z(e)?(n.aHrefSanitizationTrustedUrlList(e),this):n.aHrefSanitizationTrustedUrlList()},Object.defineProperty(this,"aHrefSanitizationWhitelist",{get:function(){return this.aHrefSanitizationTrustedUrlList},set:function(e){this.aHrefSanitizationTrustedUrlList=e}}),this.imgSrcSanitizationTrustedUrlList=function(e){return z(e)?(n.imgSrcSanitizationTrustedUrlList(e),this):n.imgSrcSanitizationTrustedUrlList()},Object.defineProperty(this,"imgSrcSanitizationWhitelist",{get:function(){return this.imgSrcSanitizationTrustedUrlList},set:function(e){this.imgSrcSanitizationTrustedUrlList=e}});var v=!0;this.debugInfoEnabled=function(e){return z(e)?(v=e,this):v};var b=!1;this.strictComponentBindingsEnabled=function(e){return z(e)?(b=e,this):b};var y=10;this.onChangesTtl=function(e){return arguments.length?(y=e,this):y};var x=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(x=e,this):x};var w=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(w=e,this):w};var A=Le();this.addPropertySecurityContext=function(e,t,n){var r=e.toLowerCase()+"|"+t.toLowerCase();if(r in A&&A[r]!==n)throw fn("ctxoverride","Property context '{0}.{1}' already set to '{2}', cannot override to '{3}'.",e,t,A[r],n);return A[r]=n,this},function(){function e(e,t){k(t,(function(t){A[t.toLowerCase()]=e}))}e(Ur.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),e(Ur.CSS,["*|style"]),e(Ur.URL,["area|href","area|ping","a|href","a|ping","blockquote|cite","body|background","del|cite","input|src","ins|cite","q|cite"]),e(Ur.MEDIA_URL,["audio|src","img|src","img|srcset","source|src","source|srcset","track|src","video|src","video|poster"]),e(Ur.RESOURCE_URL,["*|formAction","applet|code","applet|codebase","base|href","embed|src","frame|src","form|action","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])}(),this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(t,n,f,h,E,S,$,C,O){var T,j=/^\w/,I=e.document.createElement("div"),N=x,z=w,B=y;function q(){try{if(!--B)throw T=void 0,fn("infchng","{0} $onChanges() iterations reached. Aborting!\n",y);$.$apply((function(){for(var e=0,t=T.length;e<t;++e)try{T[e]()}catch(e){f(e)}T=void 0}))}finally{B++}}function V(e,t){if(!e)return e;if(!F(e))throw fn("srcset",'Can\'t pass trusted values to `{0}`: "{1}"',t,e.toString());for(var n="",r=K(e),i=/\s/.test(r)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,o=r.split(i),a=Math.floor(o.length/2),s=0;s<a;s++){var l=2*s;n+=C.getTrustedMediaUrl(K(o[l])),n+=" "+K(o[l+1])}var c=K(o[2*s]).split(/\s/);return n+=C.getTrustedMediaUrl(K(c[0])),2===c.length&&(n+=" "+K(c[1])),n}function W(e,t){if(t){var n,r,i,o=Object.keys(t);for(n=0,r=o.length;n<r;n++)this[i=o[n]]=t[i]}else this.$attr={};this.$$element=e}function Y(e,t){try{e.addClass(t)}catch(e){}}W.prototype={$normalize:yn,$addClass:function(e){e&&e.length>0&&O.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&O.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=xn(e,t);n&&n.length&&O.addClass(this.$$element,n);var r=xn(t,e);r&&r.length&&O.removeClass(this.$$element,r)},$set:function(e,t,n,r){var i=Rt(this.$$element[0],e),o=Dt[e],a=e;i?(this.$$element.prop(e,t),r=i):o&&(this[o]=t,a=o),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e])||(this.$attr[e]=r=Pe(e,"-")),"img"===ne(this.$$element)&&"srcset"===e&&(this[e]=t=V(t,"$set('srcset', value)")),!1!==n&&(null===t||M(t)?this.$$element.removeAttr(r):j.test(r)?i&&!1===t?this.$$element.removeAttr(r):this.$$element.attr(r,t):function(e,t,n){I.innerHTML="<span "+t+">";var r=I.firstChild.attributes,i=r[0];r.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}(this.$$element[0],r,t));var s=this.$$observers;s&&k(s[a],(function(e){try{e(t)}catch(e){f(e)}}))},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers=Le()),i=r[e]||(r[e]=[]);return i.push(t),$.$evalAsync((function(){i.$$inter||!n.hasOwnProperty(e)||M(n[e])||t(n[e])})),function(){ie(i,t)}}};var Q=n.startSymbol(),J=n.endSymbol(),ee="{{"===Q&&"}}"===J?R:function(e){return e.replace(/\{\{/g,Q).replace(/}}/g,J)},te=/^ng(Attr|Prop|On)([A-Z].*)$/,re=/^(.+)Start$/;return oe.$$addBindingInfo=v?function(e,t){var n=e.data("$binding")||[];U(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:D,oe.$$addBindingClass=v?function(e){Y(e,"ng-binding")}:D,oe.$$addScopeInfo=v?function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:D,oe.$$addScopeClass=v?function(e,t){Y(e,t?"ng-isolate-scope":"ng-scope")}:D,oe.$$createComment=function(t,n){var r="";return v&&(r=" "+(t||"")+": ",n&&(r+=n+" ")),e.document.createComment(r)},oe;function oe(e,t,n,r,i){e instanceof a||(e=a(e));var o=le(e,t,e,n,r,i);oe.$$addScopeClass(e);var s=null;return function(t,n,r){if(!e)throw fn("multilink","This element has already been linked.");Ie(t,"scope"),i&&i.needsNewScope&&(t=t.$parent.$new());var l,c,u,d=(r=r||{}).parentBoundTranscludeFn,p=r.transcludeControllers,f=r.futureParentElement;if(d&&d.$$boundTransclude&&(d=d.$$boundTransclude),s||(c=(l=f)&&l[0],s=c&&"foreignobject"!==ne(c)&&m.call(c).match(/SVG/)?"svg":"html"),u="html"!==s?a(Ce(s,a("<div></div>").append(e).html())):n?Tt.clone.call(e):e,p)for(var h in p)u.data("$"+h+"Controller",p[h].instance);return oe.$$addScopeInfo(u,t),n&&n(u,t),o&&o(t,u,u,d),n||(e=o=null),u}}function le(e,t,n,r,i,s){for(var l,c,u,d,p,f,h,g=[],m=U(e)||e instanceof a,v=0;v<e.length;v++)l=new W,11===o&&ce(e,v,m),(u=(c=fe(e[v],[],l,0===v?r:void 0,i)).length?ve(c,e[v],l,t,n,null,[],[],s):null)&&u.scope&&oe.$$addScopeClass(l.$$element),p=u&&u.terminal||!(d=e[v].childNodes)||!d.length?null:le(d,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&&u.transclude:t),(u||p)&&(g.push(v,u,p),f=!0,h=h||u),s=null;return f?function(e,n,r,i){var o,s,l,c,u,d,p,f,m;if(h){var v=n.length;for(m=new Array(v),u=0;u<g.length;u+=3)p=g[u],m[p]=n[p]}else m=n;for(u=0,d=g.length;u<d;)l=m[g[u++]],o=g[u++],s=g[u++],o?(o.scope?(c=e.$new(),oe.$$addScopeInfo(a(l),c)):c=e,f=o.transcludeOnThisElement?ue(e,o.transclude,i):!o.templateOnThisElement&&i?i:!i&&t?ue(e,t):null,o(s,c,l,r,f)):s&&s(e,l.childNodes,void 0,i)}:null}function ce(e,t,n){var r,i=e[t],o=i.parentNode;if(i.nodeType===Fe)for(;(r=o?i.nextSibling:e[t+1])&&r.nodeType===Fe;)i.nodeValue=i.nodeValue+r.nodeValue,r.parentNode&&r.parentNode.removeChild(r),n&&r===e[t+1]&&e.splice(t+1,1)}function ue(e,t,n){function r(r,i,o,a,s){return r||((r=e.$new(!1,s)).$$transcluded=!0),t(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var i=r.$$slots=Le();for(var o in t.$$slots)t.$$slots[o]?i[o]=ue(e,t.$$slots[o],n):i[o]=null;return r}function fe(e,t,r,o,a){var l,c,u,d=e.nodeType,p=r.$attr;switch(d){case 1:we(t,yn(c=ne(e)),"E",o,a);for(var f,h,g,m,v,b=e.attributes,y=0,x=b&&b.length;y<x;y++){var w,k=!1,A=!1,E=!1,S=!1,$=!1;h=(f=b[y]).name,m=f.value,(v=(g=yn(h.toLowerCase())).match(te))?(E="Attr"===v[1],S="Prop"===v[1],$="On"===v[1],h=h.replace(vn,"").toLowerCase().substr(4+v[1].length).replace(/_(.)/g,(function(e,t){return t.toUpperCase()}))):(w=g.match(re))&&ke(w[1])&&(k=h,A=h.substr(0,h.length-5)+"end",h=h.substr(0,h.length-6)),S||$?(r[g]=m,p[g]=f.name,S?Oe(e,t,g,h):Te(t,g,h)):(p[g=yn(h.toLowerCase())]=h,!E&&r.hasOwnProperty(g)||(r[g]=m,Rt(e,g)&&(r[g]=!0)),je(e,t,m,g,E),we(t,g,"A",o,a,k,A))}if("input"===c&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!z)break;if(L(u=e.className)&&(u=u.animVal),F(u)&&""!==u)for(;l=s.exec(u);)we(t,g=yn(l[2]),"C",o,a)&&(r[g]=K(l[3])),u=u.substr(l.index+l[0].length);break;case Fe:!function(e,t){var r=n(t,!0);r&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&oe.$$addBindingClass(t),function(e,t){var i=t.parent();n||oe.$$addBindingClass(i),oe.$$addBindingInfo(i,r.expressions),e.$watch(r,(function(e){t[0].nodeValue=e}))}}})}(t,e.nodeValue);break;case 8:if(!N)break;!function(e,t,n,r,o){try{var a=i.exec(e.nodeValue);if(a){var s=yn(a[1]);we(t,s,"M",r,o)&&(n[s]=K(a[2]))}}catch(e){}}(e,t,r,o,a)}return t.sort(Se),t}function he(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw fn("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);1===e.nodeType&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0);else r.push(e);return a(r)}function ge(e,t,n){return function(r,i,o,a,s){return i=he(i[0],t,n),e(r,i,o,a,s)}}function me(e,t,n,r,i,o){var a;return e?oe(t,n,r,i,o):function(){return a||(a=oe(t,n,r,i,o),t=n=o=null),a.apply(this,arguments)}}function ve(t,n,r,i,o,s,l,c,u){u=u||{};for(var d,p,h,g,m,v=-Number.MAX_VALUE,b=u.newScopeDirective,y=u.controllerDirectives,x=u.newIsolateScopeDirective,w=u.templateDirective,A=u.nonTlbTranscludeDirective,E=!1,$=!1,C=u.hasElementTranscludeDirective,O=r.$$element=a(n),T=s,j=i,P=!1,D=!1,R=0,I=t.length;R<I;R++){var N=(d=t[R]).$$start,z=d.$$end;if(N&&(O=he(n,N,z)),h=void 0,v>d.priority)break;if((m=d.scope)&&(d.templateUrl||(L(m)?($e("new/isolated scope",x||b,d,O),x=d):$e("new/isolated scope",x,d,O)),b=b||d),p=d.name,!P&&(d.replace&&(d.templateUrl||d.template)||d.transclude&&!d.$$tlb)){for(var B,F=R+1;B=t[F++];)if(B.transclude&&!B.$$tlb||B.replace&&(B.templateUrl||B.template)){D=!0;break}P=!0}if(!d.templateUrl&&d.controller&&(y=y||Le(),$e("'"+p+"' controller",y[p],d,O),y[p]=d),m=d.transclude)if(E=!0,d.$$tlb||($e("transclusion",A,d,O),A=d),"element"===m)C=!0,v=d.priority,h=O,O=r.$$element=a(oe.$$createComment(p,r[p])),n=O[0],De(o,de(h),n),j=me(D,h,i,v,T&&T.name,{nonTlbTranscludeDirective:A});else{var q=Le();if(L(m)){h=e.document.createDocumentFragment();var V=Le(),H=Le();for(var Y in k(m,(function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,V[e]=t,q[t]=null,H[t]=n})),k(O.contents(),(function(t){var n=V[yn(ne(t))];n?(H[n]=!0,q[n]=q[n]||e.document.createDocumentFragment(),q[n].appendChild(t)):h.appendChild(t)})),k(H,(function(e,t){if(!e)throw fn("reqslot","Required transclusion slot `{0}` was not filled.",t)})),q)if(q[Y]){var Z=a(q[Y].childNodes);q[Y]=me(D,Z,i)}h=a(h.childNodes)}else h=a(ft(n)).contents();O.empty(),(j=me(D,h,i,void 0,void 0,{needsNewScope:d.$$isolateScope||d.$$newScope})).$$slots=q}if(d.template)if($=!0,$e("template",w,d,O),w=d,m=G(d.template)?d.template(O,r):d.template,m=ee(m),d.replace){if(T=d,h=lt(m)?[]:wn(Ce(d.templateNamespace,K(m))),n=h[0],1!==h.length||1!==n.nodeType)throw fn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",p,"");De(o,O,n);var Q={$attr:{}},J=fe(n,[],Q),te=t.splice(R+1,t.length-(R+1));(x||b)&&ye(J,x,b),t=t.concat(J).concat(te),Ae(r,Q),I=t.length}else O.html(m);if(d.templateUrl)$=!0,$e("template",w,d,O),w=d,d.replace&&(T=d),ae=Ee(t.splice(R,t.length-R),O,r,o,E&&j,l,c,{controllerDirectives:y,newScopeDirective:b!==d&&b,newIsolateScopeDirective:x,templateDirective:w,nonTlbTranscludeDirective:A}),I=t.length;else if(d.compile)try{g=d.compile(O,r,j);var re=d.$$originalDirective||d;G(g)?ie(null,pe(re,g),N,z):g&&ie(pe(re,g.pre),pe(re,g.post),N,z)}catch(e){f(e,xe(O))}d.terminal&&(ae.terminal=!0,v=Math.max(v,d.priority))}return ae.scope=b&&!0===b.scope,ae.transcludeOnThisElement=E,ae.templateOnThisElement=$,ae.transclude=j,u.hasElementTranscludeDirective=C,ae;function ie(e,t,n,r){e&&(n&&(e=ge(e,n,r)),e.require=d.require,e.directiveName=p,(x===d||d.$$isolateScope)&&(e=Re(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=ge(t,n,r)),t.require=d.require,t.directiveName=p,(x===d||d.$$isolateScope)&&(t=Re(t,{isolateScope:!0})),c.push(t))}function ae(e,t,i,o,s){var u,d,p,h,g,m,v,A,E,$;for(var O in n===i?(E=r,A=r.$$element):E=new W(A=a(i),r),g=t,x?h=t.$new(!0):b&&(g=t.$parent),s&&((v=function(e,t,n,r){var i;X(e)||(r=n,n=t,t=e,e=void 0);C&&(i=m);n||(n=C?A.parent():A);if(!r)return s(e,t,i,n,D);var o=s.$$slots[r];if(o)return o(e,t,i,n,D);if(M(o))throw fn("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',r,xe(A))}).$$boundTransclude=s,v.isSlotFilled=function(e){return!!s.$$slots[e]}),y&&(m=function(e,t,n,r,i,o,a){var s=Le();for(var l in r){var c=r[l],u={$scope:c===a||c.$$isolateScope?i:o,$element:e,$attrs:t,$transclude:n},d=c.controller;"@"===d&&(d=t[c.name]);var p=S(d,u,!0,c.controllerAs);s[c.name]=p,e.data("$"+c.name+"Controller",p.instance)}return s}(A,E,v,y,h,t,x)),x&&(oe.$$addScopeInfo(A,h,!0,!(w&&(w===x||w===x.$$originalDirective))),oe.$$addScopeClass(A,!0),h.$$isolateBindings=x.$$isolateBindings,($=ze(t,E,h,h.$$isolateBindings,x)).removeWatches&&h.$on("$destroy",$.removeWatches)),m){var T=y[O],j=m[O],P=T.$$bindings.bindToController;j.instance=j(),A.data("$"+T.name+"Controller",j.instance),j.bindingInfo=ze(g,E,j.instance,P,T)}for(k(y,(function(e,t){var n=e.require;e.bindToController&&!U(n)&&L(n)&&_(m[t].instance,be(t,n,A,m))})),k(m,(function(e){var t=e.instance;if(G(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){f(e)}if(G(t.$onInit))try{t.$onInit()}catch(e){f(e)}G(t.$doCheck)&&(g.$watch((function(){t.$doCheck()})),t.$doCheck()),G(t.$onDestroy)&&g.$on("$destroy",(function(){t.$onDestroy()}))})),u=0,d=l.length;u<d;u++)Ne(p=l[u],p.isolateScope?h:t,A,E,p.require&&be(p.directiveName,p.require,A,m),v);var D=t;for(x&&(x.template||null===x.templateUrl)&&(D=h),e&&e(D,i.childNodes,void 0,s),u=c.length-1;u>=0;u--)Ne(p=c[u],p.isolateScope?h:t,A,E,p.require&&be(p.directiveName,p.require,A,m),v);k(m,(function(e){var t=e.instance;G(t.$postLink)&&t.$postLink()}))}}function be(e,t,n,r){var i;if(F(t)){var o=t.match(c),a=t.substring(o[0].length),s=o[1]||o[3],l="?"===o[2];if("^^"===s?n=n.parent():i=(i=r&&r[a])&&i.instance,!i){var u="$"+a+"Controller";i="^^"===s&&n[0]&&9===n[0].nodeType?null:s?n.inheritedData(u):n.data(u)}if(!i&&!l)throw fn("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(U(t)){i=[];for(var d=0,p=t.length;d<p;d++)i[d]=be(e,t[d],n,r)}else L(t)&&(i={},k(t,(function(t,o){i[o]=be(e,t,n,r)})));return i||null}function ye(e,t,n){for(var r=0,i=e.length;r<i;r++)e[r]=P(e[r],{$$isolateScope:t,$$newScope:n})}function we(e,n,i,o,a,s,l){if(n===a)return null;var c=null;if(r.hasOwnProperty(n))for(var u,d=t.get(n+"Directive"),p=0,f=d.length;p<f;p++)if(u=d[p],(M(o)||o>u.priority)&&-1!==u.restrict.indexOf(i)){if(s&&(u=P(u,{$$start:s,$$end:l})),!u.$$bindings){var h=u.$$bindings=g(u,u.name);L(h.isolateScope)&&(u.$$isolateBindings=h.isolateScope)}e.push(u),c=u}return c}function ke(e){if(r.hasOwnProperty(e))for(var n=t.get(e+"Directive"),i=0,o=n.length;i<o;i++)if(n[i].multiElement)return!0;return!1}function Ae(e,t){var n=t.$attr,r=e.$attr;k(e,(function(r,i){"$"!==i.charAt(0)&&(t[i]&&t[i]!==r&&(r.length?r+=("style"===i?";":" ")+t[i]:r=t[i]),e.$set(i,r,!0,n[i]))})),k(t,(function(t,i){e.hasOwnProperty(i)||"$"===i.charAt(0)||(e[i]=t,"class"!==i&&"style"!==i&&(r[i]=n[i]))}))}function Ee(e,t,n,r,i,o,s,l){var c,u,d=[],p=t[0],g=e.shift(),m=P(g,{templateUrl:null,transclude:null,replace:null,$$originalDirective:g}),v=G(g.templateUrl)?g.templateUrl(t,n):g.templateUrl,b=g.templateNamespace;return t.empty(),h(v).then((function(f){var h,y,x,w;if(f=ee(f),g.replace){if(x=lt(f)?[]:wn(Ce(b,K(f))),h=x[0],1!==x.length||1!==h.nodeType)throw fn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",g.name,v);y={$attr:{}},De(r,t,h);var A=fe(h,[],y);L(g.scope)&&ye(A,!0),e=A.concat(e),Ae(n,y)}else h=p,t.html(f);for(e.unshift(m),c=ve(e,h,n,i,t,g,o,s,l),k(r,(function(e,n){e===h&&(r[n]=t[0])})),u=le(t[0].childNodes,i);d.length;){var E=d.shift(),S=d.shift(),$=d.shift(),C=d.shift(),_=t[0];if(!E.$$destroyed){if(S!==p){var O=S.className;l.hasElementTranscludeDirective&&g.replace||(_=ft(h)),De($,a(S),_),Y(a(_),O)}w=c.transcludeOnThisElement?ue(E,c.transclude,C):C,c(u,E,_,r,w)}}d=null})).catch((function(e){H(e)&&f(e)})),function(e,t,n,r,i){var o=i;t.$$destroyed||(d?d.push(t,n,r,o):(c.transcludeOnThisElement&&(o=ue(t,c.transclude,i)),c(u,t,n,r,o)))}}function Se(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function $e(e,t,n,r){function i(e){return e?" (module: "+e+")":""}if(t)throw fn("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,xe(r))}function Ce(t,n){switch(t=d(t||"html")){case"svg":case"math":var r=e.document.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function _e(e){return V(C.valueOf(e),"ng-prop-srcset")}function Oe(e,t,n,r){if(p.test(r))throw fn("nodomevents","Property bindings for HTML DOM event properties are disallowed");var i=ne(e),o=function(e,t){var n=t.toLowerCase();return A[e+"|"+n]||A["*|"+n]}(i,r),a=R;"srcset"!==r||"img"!==i&&"source"!==i?o&&(a=C.getTrusted.bind(C,o)):a=_e,t.push({priority:100,compile:function(e,t){var i=E(t[n]),o=E(t[n],(function(e){return C.valueOf(e)}));return{pre:function(e,t){function n(){var n=i(e);t[0][r]=a(n)}n(),e.$watch(o,n)}}}})}function Te(e,t,n){e.push(Po(E,$,f,t,n,!1))}function je(e,t,r,i,o){var a=ne(e),s=function(e,t){return"srcdoc"===t?C.HTML:"src"===t||"ngSrc"===t?-1===["img","video","audio","source","track"].indexOf(e)?C.RESOURCE_URL:C.MEDIA_URL:"xlinkHref"===t?"image"===e?C.MEDIA_URL:"a"===e?C.URL:C.RESOURCE_URL:"form"===e&&"action"===t||"base"===e&&"href"===t||"link"===e&&"href"===t?C.RESOURCE_URL:"a"!==e||"href"!==t&&"ngHref"!==t?void 0:C.URL}(a,i),c=!o,u=l[i]||o,d=n(r,c,s,u);if(d){if("multiple"===i&&"select"===a)throw fn("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",xe(e));if(p.test(i))throw fn("nodomevents","Interpolations for HTML DOM event attributes are disallowed");t.push({priority:100,compile:function(){return{pre:function(e,t,o){var a=o.$$observers||(o.$$observers=Le()),l=o[i];l!==r&&(d=l&&n(l,!0,s,u),r=l),d&&(o[i]=d(e),(a[i]||(a[i]=[])).$$inter=!0,(o.$$observers&&o.$$observers[i].$$scope||e).$watch(d,(function(e,t){"class"===i&&e!==t?o.$updateClass(e,t):o.$set(i,e)})))}}}})}}function De(t,n,r){var i,o,s=n[0],l=n.length,c=s.parentNode;if(t)for(i=0,o=t.length;i<o;i++)if(t[i]===s){t[i++]=r;for(var u=i,d=u+l-1,p=t.length;u<p;u++,d++)d<p?t[u]=t[d]:delete t[u];t.length-=l-1,t.context===s&&(t.context=r);break}c&&c.replaceChild(r,s);var f=e.document.createDocumentFragment();for(i=0;i<l;i++)f.appendChild(n[i]);for(a.hasData(s)&&(a.data(r,a.data(s)),a(s).off("$destroy")),a.cleanData(f.querySelectorAll("*")),i=1;i<l;i++)delete n[i];n[0]=r,n.length=1}function Re(e,t){return _((function(){return e.apply(null,arguments)}),e,t)}function Ne(e,t,n,r,i,o){try{e(t,n,r,i,o)}catch(e){f(e,xe(n))}}function Me(e,t){if(b)throw fn("missingattr","Attribute '{0}' of '{1}' is non-optional and must be set!",e,t)}function ze(e,t,r,i,o){var a,s=[],l={};function c(t,n,i){G(r.$onChanges)&&!ae(n,i)&&(T||(e.$$postDigest(q),T=[]),a||(a={},T.push(d)),a[t]&&(i=a[t].previousValue),a[t]=new mn(i,n))}function d(){r.$onChanges(a),a=void 0}return k(i,(function(i,a){var d,p,f,h,g,m=i.attrName,v=i.optional;switch(i.mode){case"@":v||u.call(t,m)||(Me(m,o.name),r[a]=t[m]=void 0),g=t.$observe(m,(function(e){if(F(e)||Z(e)){var t=r[a];c(a,e,t),r[a]=e}})),t.$$observers[m].$$scope=e,F(d=t[m])?r[a]=n(d)(e):Z(d)&&(r[a]=d),l[a]=new mn(hn,r[a]),s.push(g);break;case"=":if(!u.call(t,m)){if(v)break;Me(m,o.name),t[m]=void 0}if(v&&!t[m])break;p=E(t[m]),h=p.literal?se:ae,f=p.assign||function(){throw d=r[a]=p(e),fn("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[m],m,o.name)},d=r[a]=p(e);var b=function(t){return h(t,r[a])||(h(t,d)?f(e,t=r[a]):r[a]=t),d=t};b.$stateful=!0,g=i.collection?e.$watchCollection(t[m],b):e.$watch(E(t[m],b),null,p.literal),s.push(g);break;case"<":if(!u.call(t,m)){if(v)break;Me(m,o.name),t[m]=void 0}if(v&&!t[m])break;var y=(p=E(t[m])).literal,x=r[a]=p(e);l[a]=new mn(hn,r[a]),g=e[i.collection?"$watchCollection":"$watch"](p,(function(e,t){if(t===e){if(t===x||y&&se(t,x))return;t=x}c(a,e,t),r[a]=e})),s.push(g);break;case"&":if(v||u.call(t,m)||Me(m,o.name),(p=t.hasOwnProperty(m)?E(t[m]):D)===D&&v)break;r[a]=function(t){return p(e,t)}}})),{initialChanges:l,removeWatches:s.length&&function(){for(var e=0,t=s.length;e<t;++e)s[e]()}}}}]}function mn(e,t){this.previousValue=e,this.currentValue=t}gn.$inject=["$provide","$$sanitizeUriProvider"],mn.prototype.isFirstChange=function(){return this.previousValue===hn};var vn=/^((?:x|data)[:\-_])/i,bn=/[:\-_]+(.)/g;function yn(e){return e.replace(vn,"").replace(bn,(function(e,t,n){return n?t.toUpperCase():t}))}function xn(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a===i[s])continue e;n+=(n.length>0?" ":"")+a}return n}function wn(e){var t=(e=a(e)).length;if(t<=1)return e;for(;t--;){var n=e[t];(8===n.nodeType||n.nodeType===Fe&&""===n.nodeValue.trim())&&h.call(e,t,1)}return e}var kn=i("$controller"),An=/^(\S+)(\s+as\s+([\w$]+))?$/;function En(e,t){if(t&&F(t))return t;if(F(e)){var n=An.exec(e);if(n)return n[3]}}function Sn(){var e={};this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Me(t,"controller"),L(t)?_(e,t):e[t]=n},this.$get=["$injector",function(t){return function(r,i,o,a){var s,l,c,u;if(o=!0===o,a&&F(a)&&(u=a),F(r)){if(!(l=r.match(An)))throw kn("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);if(c=l[1],u=u||l[3],!(r=e.hasOwnProperty(c)?e[c]:function(e,t,n){if(!t)return e;for(var r,i=t.split("."),o=e,a=i.length,s=0;s<a;s++)r=i[s],e&&(e=(o=e)[r]);return!n&&G(e)?pe(o,e):e}(i.$scope,c,!0)))throw kn("ctrlreg","The controller with the name '{0}' is not registered.",c);Ne(r,c,!0)}if(o){var d=(U(r)?r[r.length-1]:r).prototype;return s=Object.create(d||null),u&&n(i,u,s,c||r.name),_((function(){var e=t.invoke(r,s,i,c);return e!==s&&(L(e)||G(e))&&(s=e,u&&n(i,u,s,c||r.name)),s}),{instance:s,identifier:u})}return s=t.instantiate(r,i,c),u&&n(i,u,s,c||r.name),s};function n(e,t,n,r){if(!e||!L(e.$scope))throw i("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,t);e.$scope[t]=n}}]}function $n(){this.$get=["$window",function(e){return a(e.document)}]}function Cn(){this.$get=["$document","$rootScope",function(e,t){var n=e[0],r=n&&n.hidden;function i(){r=n.hidden}return e.on("visibilitychange",i),t.$on("$destroy",(function(){e.off("visibilitychange",i)})),function(){return r}}]}function _n(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}var On=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof a&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},Tn={"Content-Type":"application/json;charset=utf-8"},jn=/^\[|^\{(?!\{)/,Pn={"[":/]$/,"{":/}$/},Dn=/^\)]\}',?\n/,Rn=i("$http");function In(e){return L(e)?V(e)?e.toISOString():he(e):e}function Nn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return A(e,(function(e,n){null===e||M(e)||G(e)||(U(e)?k(e,(function(e){t.push(Ee(n)+"="+Ee(In(e)))})):t.push(Ee(n)+"="+Ee(In(e))))})),t.join("&")}}}function Mn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function e(n,r,i){U(n)?k(n,(function(t,n){e(t,r+"["+(L(t)?n:"")+"]")})):L(n)&&!V(n)?A(n,(function(t,n){e(t,r+(i?"":"[")+n+(i?"":"]"))})):(G(n)&&(n=n()),t.push(Ee(r)+"="+(null==n?"":Ee(In(n)))))}(e,"",!0),t.join("&")}}}function zn(e,t){if(F(e)){var n=e.replace(Dn,"").trim();if(n){var r=t("Content-Type"),i=r&&0===r.indexOf("application/json");if(i||(a=(o=n).match(jn))&&Pn[a[0]].test(o))try{e=ge(n)}catch(t){if(!i)return e;throw Rn("baddata",'Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"',e,t)}}}var o,a;return e}function Ln(e){var t,n=Le();function r(e,t){e&&(n[e]=n[e]?n[e]+", "+t:t)}return F(e)?k(e.split("\n"),(function(e){t=e.indexOf(":"),r(d(K(e.substr(0,t))),K(e.substr(t+1)))})):L(e)&&k(e,(function(e,t){r(d(t),K(e))})),n}function Bn(e){var t;return function(n){if(t||(t=Ln(e)),n){var r=t[d(n)];return void 0===r&&(r=null),r}return t}}function Fn(e,t,n,r){return G(r)?r(e,t,n):(k(r,(function(r){e=r(e,t,n)})),e)}function qn(e){return 200<=e&&e<300}function Vn(){var e=this.defaults={transformResponse:[zn],transformRequest:[function(e){return!L(e)||(t=e,"[object File]"===m.call(t))||function(e){return"[object Blob]"===m.call(e)}(e)||function(e){return"[object FormData]"===m.call(e)}(e)?e:he(e);var t}],headers:{common:{Accept:"application/json, text/plain, */*"},post:qe(Tn),put:qe(Tn),patch:qe(Tn)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},t=!1;this.useApplyAsync=function(e){return z(e)?(t=!!e,this):t};var n=this.interceptors=[],r=this.xsrfTrustedOrigins=[];Object.defineProperty(this,"xsrfWhitelistedOrigins",{get:function(){return this.xsrfTrustedOrigins},set:function(e){this.xsrfTrustedOrigins=e}}),this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(o,a,s,l,c,u,f,h){var g=l("$http");e.paramSerializer=F(e.paramSerializer)?f.get(e.paramSerializer):e.paramSerializer;var m=[];k(n,(function(e){m.unshift(F(e)?f.get(e):f.invoke(e))}));var v,b=(v=[ai].concat(r.map(li)),function(e){var t=li(e);return v.some(ci.bind(null,t))});function y(n){if(!L(n))throw i("$http")("badreq","Http request configuration must be an object. Received: {0}",n);if(!F(h.valueOf(n.url)))throw i("$http")("badreq","Http request configuration url must be a string or a $sce trusted object. Received: {0}",n.url);var r=_({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer,jsonpCallbackParam:e.jsonpCallbackParam},n);r.headers=function(t){var n,r,i,o=e.headers,a=_({},t.headers);o=_({},o.common,o[d(t.method)]);e:for(n in o){for(i in r=d(n),a)if(d(i)===r)continue e;a[n]=o[n]}return function(e,t){var n,r={};return k(e,(function(e,i){G(e)?null!=(n=e(t))&&(r[i]=n):r[i]=e})),r}(a,qe(t))}(n),r.method=p(r.method),r.paramSerializer=F(r.paramSerializer)?f.get(r.paramSerializer):r.paramSerializer,o.$$incOutstandingRequestCount("$http");var l=[],v=[],x=u.resolve(r);return k(m,(function(e){(e.request||e.requestError)&&l.unshift(e.request,e.requestError),(e.response||e.responseError)&&v.push(e.response,e.responseError)})),x=w(x,l),x=(x=w(x=x.then((function(n){var r=n.headers,i=Fn(n.data,Bn(r),void 0,n.transformRequest);M(i)&&k(r,(function(e,t){"content-type"===d(t)&&delete r[t]}));M(n.withCredentials)&&!M(e.withCredentials)&&(n.withCredentials=e.withCredentials);return function(n,r){var i,o,l=u.defer(),p=l.promise,f=n.headers,m="jsonp"===d(n.method),v=n.url;m?v=h.getTrustedResourceUrl(v):F(v)||(v=h.valueOf(v));v=function(e,t){t.length>0&&(e+=(-1===e.indexOf("?")?"?":"&")+t);return e}(v,n.paramSerializer(n.params)),m&&(v=function(e,t){var n=e.split("?");if(n.length>2)throw Rn("badjsonp",'Illegal use more than one "?", in url, "{1}"',e);return k(ke(n[1]),(function(n,r){if("JSON_CALLBACK"===n)throw Rn("badjsonp",'Illegal use of JSON_CALLBACK in url, "{0}"',e);if(r===t)throw Rn("badjsonp",'Illegal use of callback param, "{0}", in url, "{1}"',t,e)})),e+=(-1===e.indexOf("?")?"?":"&")+t+"=JSON_CALLBACK"}(v,n.jsonpCallbackParam));y.pendingRequests.push(n),p.then(S,S),!n.cache&&!e.cache||!1===n.cache||"GET"!==n.method&&"JSONP"!==n.method||(i=L(n.cache)?n.cache:L(e.cache)?e.cache:g);i&&(z(o=i.get(v))?Q(o)?o.then(E,E):U(o)?A(o[1],o[0],qe(o[2]),o[3],o[4]):A(o,200,{},"OK","complete"):i.put(v,p));if(M(o)){var x=b(n.url)?s()[n.xsrfCookieName||e.xsrfCookieName]:void 0;x&&(f[n.xsrfHeaderName||e.xsrfHeaderName]=x),a(n.method,v,r,(function(e,n,r,o,a){i&&(qn(e)?i.put(v,[e,n,Ln(r),o,a]):i.remove(v));function s(){A(n,e,r,o,a)}t?c.$applyAsync(s):(s(),c.$$phase||c.$apply())}),f,n.timeout,n.withCredentials,n.responseType,w(n.eventHandlers),w(n.uploadEventHandlers))}return p;function w(e){if(e){var n={};return k(e,(function(e,r){n[r]=function(n){function r(){e(n)}t?c.$applyAsync(r):c.$$phase?r():c.$apply(r)}})),n}}function A(e,t,r,i,o){(qn(t=t>=-1?t:0)?l.resolve:l.reject)({data:e,status:t,headers:Bn(r),config:n,statusText:i,xhrStatus:o})}function E(e){A(e.data,e.status,qe(e.headers()),e.statusText,e.xhrStatus)}function S(){var e=y.pendingRequests.indexOf(n);-1!==e&&y.pendingRequests.splice(e,1)}}(n,i).then(A,A)})),v)).finally((function(){o.$$completeOutstandingRequest(D,"$http")}));function w(e,t){for(var n=0,r=t.length;n<r;){var i=t[n++],o=t[n++];e=e.then(i,o)}return t.length=0,e}function A(e){var t=_({},e);return t.data=Fn(e.data,e.headers,e.status,r.transformResponse),qn(e.status)?t:u.reject(t)}}return y.pendingRequests=[],function(e){k(arguments,(function(e){y[e]=function(t,n){return y(_({},n||{},{method:e,url:t}))}}))}("get","delete","head","jsonp"),function(e){k(arguments,(function(e){y[e]=function(t,n,r){return y(_({},r||{},{method:e,url:t,data:n}))}}))}("post","put","patch"),y.defaults=e,y}]}function Un(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Hn(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,r){return function(e,t,n,r,i){return function(o,a,s,l,c,u,p,f,h,g){if(a=a||e.url(),"jsonp"===d(o))var m=r.createCallback(a),v=function(e,t,n){e=e.replace("JSON_CALLBACK",t);var o=i.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){o.removeEventListener("load",a),o.removeEventListener("error",a),i.body.removeChild(o),o=null;var s=-1,l="unknown";e&&("load"!==e.type||r.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},o.addEventListener("load",a),o.addEventListener("error",a),i.body.appendChild(o),a}(a,m,(function(e,t){var n=200===e&&r.getResponse(m);A(l,e,n,"",t,"complete"),r.removeCallback(m)}));else{var b=t(o,a),y=!1;b.open(o,a,!0),k(c,(function(e,t){z(e)&&b.setRequestHeader(t,e)})),b.onload=function(){var e=b.statusText||"",t="response"in b?b.response:b.responseText,n=1223===b.status?204:b.status;0===n&&(n=t?200:"file"===li(a).protocol?404:0),A(l,n,t,b.getAllResponseHeaders(),e,"complete")};if(b.onerror=function(){A(l,-1,null,null,"","error")},b.ontimeout=function(){A(l,-1,null,null,"","timeout")},b.onabort=function(){A(l,-1,null,null,"",y?"timeout":"abort")},k(h,(function(e,t){b.addEventListener(t,e)})),k(g,(function(e,t){b.upload.addEventListener(t,e)})),p&&(b.withCredentials=!0),f)try{b.responseType=f}catch(e){if("json"!==f)throw e}b.send(M(s)?null:s)}if(u>0)var x=n((function(){w("timeout")}),u);else Q(u)&&u.then((function(){w(z(u.$$timeoutId)?"timeout":"abort")}));function w(e){y="timeout"===e,v&&v(),b&&b.abort()}function A(e,t,r,i,o,a){z(x)&&n.cancel(x),v=b=null,e(t,r,i,o,a)}}}(e,r,e.defer,t,n[0])}]}var Gn=y.$interpolateMinErr=i("$interpolate");function Wn(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){var o=e.length,a=t.length,s=new RegExp(e.replace(/./g,c),"g"),l=new RegExp(t.replace(/./g,c),"g");function c(e){return"\\\\\\"+e}function u(n){return n.replace(s,e).replace(l,t)}function d(e,t,n,r){var i=e.$watch((function(e){return i(),r(e)}),t,n);return i}function p(s,l,c,p){var f=c===i.URL||c===i.MEDIA_URL;if(!s.length||-1===s.indexOf(e)){if(l)return;var h=u(s);f&&(h=i.getTrusted(c,h));var g=I(h);return g.exp=s,g.expressions=[],g.$$watchDelegate=d,g}p=!!p;for(var m,v,b,y,x,w=0,k=[],A=s.length,E=[],S=[];w<A;){if(-1===(m=s.indexOf(e,w))||-1===(v=s.indexOf(t,m+o))){w!==A&&E.push(u(s.substring(w)));break}w!==m&&E.push(u(s.substring(w,m))),y=s.substring(m+o,v),k.push(y),w=v+a,S.push(E.length),E.push("")}x=1===E.length&&1===S.length;var $=f&&x?void 0:function(e){try{return e=c&&!f?i.getTrusted(c,e):i.valueOf(e),p&&!z(e)?e:Be(e)}catch(e){r(Gn.interr(s,e))}};if(b=k.map((function(e){return n(e,$)})),!l||k.length){var C=function(e){for(var t=0,n=k.length;t<n;t++){if(p&&M(e[t]))return;E[S[t]]=e[t]}return f?i.getTrusted(c,x?E[0]:E.join("")):(c&&E.length>1&&Gn.throwNoconcat(s),E.join(""))};return _((function(e){var t=0,n=k.length,i=new Array(n);try{for(;t<n;t++)i[t]=b[t](e);return C(i)}catch(e){r(Gn.interr(s,e))}}),{exp:s,expressions:k,$$watchDelegate:function(e,t){var n;return e.$watchGroup(b,(function(r,i){var o=C(r);t.call(this,o,r!==i?n:o,e),n=o}))}})}}return p.startSymbol=function(){return e},p.endSymbol=function(){return t},p}]}Gn.throwNoconcat=function(e){throw Gn("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},Gn.interr=function(e,t){return Gn("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var Yn=i("$interval");function Xn(){this.$get=["$$intervalFactory","$window",function(e,t){var n={},r=function(e){t.clearInterval(e),delete n[e]},i=e((function(e,r,i){var o=t.setInterval(e,r);return n[o]=i,o}),r);return i.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$intervalId"))throw Yn("badprom","`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!n.hasOwnProperty(e.$$intervalId))return!1;var t=e.$$intervalId,i=n[t];return Lr(i.promise),i.reject("canceled"),r(t),!0},i}]}function Zn(){this.$get=["$browser","$q","$$q","$rootScope",function(e,t,n,r){return function(i,o){return function(a,s,l,c){var u=arguments.length>4,d=u?de(arguments,4):[],p=0,f=z(c)&&!c,h=(f?n:t).defer(),g=h.promise;function m(){u?a.apply(null,d):a(p)}function v(){f?e.defer(m):r.$evalAsync(m),h.notify(p++),l>0&&p>=l&&(h.resolve(p),o(g.$$intervalId)),f||r.$apply()}return l=z(l)?l:0,g.$$intervalId=i(v,s,h,f),g}}}]}var Qn=function(){this.$get=function(){var e=y.callbacks,t={};return{createCallback:function(n){var r="_"+(e.$$counter++).toString(36),i="angular.callbacks."+r,o=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(r);return t[i]=e[r]=o,i},wasCalled:function(e){return t[e].called},getResponse:function(e){return t[e].data},removeCallback:function(n){var r=t[n];delete e[r.id],delete t[n]}}}},Jn=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Kn={http:80,https:443,ftp:21},er=i("$location");function tr(e,t,n){var r,i=(r=[],k(t,(function(e,t){U(e)?k(e,(function(e){r.push(Ee(t,!0)+(!0===e?"":"="+Ee(e,!0)))})):r.push(Ee(t,!0)+(!0===e?"":"="+Ee(e,!0)))})),r.length?r.join("&"):""),o=n?"#"+Ae(n):"";return function(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=Ae(t[n].replace(/%2F/g,"/"));return t.join("/")}(e)+(i?"?"+i:"")+o}function nr(e,t){var n=li(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=T(n.port)||Kn[n.protocol]||null}var rr=/^\s*[\\/]{2,}/;function ir(e,t,n){if(rr.test(e))throw er("badpath",'Invalid url "{0}".',e);var r="/"!==e.charAt(0);r&&(e="/"+e);var i=li(e),o=r&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname;t.$$path=function(e,t){for(var n=e.split("/"),r=n.length;r--;)n[r]=decodeURIComponent(n[r]),t&&(n[r]=n[r].replace(/\//g,"%2F"));return n.join("/")}(o,n),t.$$search=ke(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function or(e,t){return e.slice(0,t.length)===t}function ar(e,t){if(or(t,e))return t.substr(e.length)}function sr(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function lr(e,t,n){this.$$html5=!0,n=n||"",nr(e,this),this.$$parse=function(e){var n=ar(t,e);if(!F(n))throw er("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);ir(n,this,!0),this.$$path||(this.$$path="/"),this.$$compose()},this.$$normalizeUrl=function(e){return t+e.substr(1)},this.$$parseLinkUrl=function(r,i){return i&&"#"===i[0]?(this.hash(i.slice(1)),!0):(z(o=ar(e,r))?(a=o,s=n&&z(o=ar(n,o))?t+(ar("/",o)||o):e+a):z(o=ar(t,r))?s=t+o:t===r+"/"&&(s=t),s&&this.$$parse(s),!!s);var o,a,s}}function cr(e,t,n){nr(e,this),this.$$parse=function(r){var i,o=ar(e,r)||ar(t,r);M(o)||"#"!==o.charAt(0)?this.$$html5?i=o:(i="",M(o)&&(e=r,this.replace())):M(i=ar(n,o))&&(i=o),ir(i,this,!1),this.$$path=function(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;or(t,n)&&(t=t.replace(n,""));if(i.exec(t))return e;return(r=i.exec(e))?r[1]:e}(this.$$path,i,e),this.$$compose()},this.$$normalizeUrl=function(t){return e+(t?n+t:"")},this.$$parseLinkUrl=function(t,n){return sr(e)===sr(t)&&(this.$$parse(t),!0)}}function ur(e,t,n){this.$$html5=!0,cr.apply(this,arguments),this.$$parseLinkUrl=function(r,i){return i&&"#"===i[0]?(this.hash(i.slice(1)),!0):(e===sr(r)?o=r:(a=ar(t,r))?o=e+n+a:t===r+"/"&&(o=t),o&&this.$$parse(o),!!o);var o,a},this.$$normalizeUrl=function(t){return e+n+t}}var dr={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){this.$$url=tr(this.$$path,this.$$search,this.$$hash),this.$$absUrl=this.$$normalizeUrl(this.$$url),this.$$urlUpdatedByLocation=!0},absUrl:pr("$$absUrl"),url:function(e){if(M(e))return this.$$url;var t=Jn.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:pr("$$protocol"),host:pr("$$host"),port:pr("$$port"),path:fr("$$path",(function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e})),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(F(e)||q(e))e=e.toString(),this.$$search=ke(e);else{if(!L(e))throw er("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");k(e=oe(e,{}),(function(t,n){null==t&&delete e[n]})),this.$$search=e}break;default:M(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:fr("$$hash",(function(e){return null!==e?e.toString():""})),replace:function(){return this.$$replace=!0,this}};function pr(e){return function(){return this[e]}}function fr(e,t){return function(n){return M(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function hr(){var e="!",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return z(t)?(e=t,this):e},this.html5Mode=function(e){return Z(e)?(t.enabled=e,this):L(e)?(Z(e.enabled)&&(t.enabled=e.enabled),Z(e.requireBase)&&(t.requireBase=e.requireBase),(Z(e.rewriteLinks)||F(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,s){var l,c,u,d,p=r.baseHref(),f=r.url();if(t.enabled){if(!p&&t.requireBase)throw er("nobase","$location in HTML5 mode requires a <base> tag to be present!");u=(d=f).substring(0,d.indexOf("/",d.indexOf("//")+2))+(p||"/"),c=i.history?lr:ur}else u=sr(f),c=cr;var h=function(e){return e.substr(0,sr(e).lastIndexOf("/")+1)}(u);(l=new c(u,h,"#"+e)).$$parseLinkUrl(f,f),l.$$state=r.state();var g=/^\s*(javascript|mailto):/i;function m(e,t,n){var i=l.url(),o=l.$$state;try{r.url(e,t,n),l.$$state=r.state()}catch(e){throw l.url(i),l.$$state=o,e}}o.on("click",(function(e){var i=t.rewriteLinks;if(i&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var s=a(e.target);"a"!==ne(s[0]);)if(s[0]===o[0]||!(s=s.parent())[0])return;if(!F(i)||!M(s.attr(i))){var c=s.prop("href"),u=s.attr("href")||s.attr("xlink:href");L(c)&&"[object SVGAnimatedString]"===c.toString()&&(c=li(c.animVal).href),g.test(c)||!c||s.attr("target")||e.isDefaultPrevented()||l.$$parseLinkUrl(c,u)&&(e.preventDefault(),l.absUrl()!==r.url()&&n.$apply())}}})),l.absUrl()!==f&&r.url(l.absUrl(),!0);var v=!0;return r.onUrlChange((function(e,t){or(e,h)?(n.$evalAsync((function(){var r,i=l.absUrl(),o=l.$$state;l.$$parse(e),l.$$state=t,r=n.$broadcast("$locationChangeStart",e,i,t,o).defaultPrevented,l.absUrl()===e&&(r?(l.$$parse(i),l.$$state=o,m(i,!1,o)):(v=!1,b(i,o)))})),n.$$phase||n.$digest()):s.location.href=e})),n.$watch((function(){if(v||l.$$urlUpdatedByLocation){l.$$urlUpdatedByLocation=!1;var e=r.url(),t=l.absUrl(),o=r.state(),a=l.$$replace,s=!((c=e)===(u=t)||li(c).href===li(u).href)||l.$$html5&&i.history&&o!==l.$$state;(v||s)&&(v=!1,n.$evalAsync((function(){var t=l.absUrl(),r=n.$broadcast("$locationChangeStart",t,e,l.$$state,o).defaultPrevented;l.absUrl()===t&&(r?(l.$$parse(e),l.$$state=o):(s&&m(t,a,o===l.$$state?null:l.$$state),b(e,o)))})))}var c,u;l.$$replace=!1})),l;function b(e,t){n.$broadcast("$locationChangeSuccess",l.absUrl(),e,l.$$state,t)}}]}function gr(){var e=!0,t=this;this.debugEnabled=function(t){return z(t)?(e=t,this):e},this.$get=["$window",function(n){var r,i=o||/\bEdge\//.test(n.navigator&&n.navigator.userAgent);return{log:s("log"),info:s("info"),warn:s("warn"),error:s("error"),debug:(r=s("debug"),function(){e&&r.apply(t,arguments)})};function a(e){return H(e)&&(e.stack&&i?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function s(e){var t=n.console||{},r=t[e]||t.log||D;return function(){var e=[];return k(arguments,(function(t){e.push(a(t))})),Function.prototype.apply.call(r,t,e)}}}]}k([ur,cr,lr],(function(e){e.prototype=Object.create(dr),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==lr||!this.$$html5)throw er("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=M(t)?null:t,this.$$urlUpdatedByLocation=!0,this}}));var mr=i("$parse"),vr={}.constructor.prototype.valueOf;function br(e){return e+""}var yr=Le();k("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),(function(e){yr[e]=!0}));var xr={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},wr=function(e){this.options=e};wr.prototype={constructor:wr,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=yr[t],o=yr[n],a=yr[r];if(i||o||a){var s=a?r:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),r=t.charCodeAt(0);return n>=55296&&n<=56319&&r>=56320&&r<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=z(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw mr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=d(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"===n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{n+=xr[o]||o}i=!1}else if("\\"===o)i=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var kr=function(e,t){this.lexer=e,this.options=t};function Ar(e,t){return void 0!==e?e:t}function Er(e,t){return void 0===e?t:void 0===t?e:e+t}kr.Program="Program",kr.ExpressionStatement="ExpressionStatement",kr.AssignmentExpression="AssignmentExpression",kr.ConditionalExpression="ConditionalExpression",kr.LogicalExpression="LogicalExpression",kr.BinaryExpression="BinaryExpression",kr.UnaryExpression="UnaryExpression",kr.CallExpression="CallExpression",kr.MemberExpression="MemberExpression",kr.Identifier="Identifier",kr.Literal="Literal",kr.ArrayExpression="ArrayExpression",kr.Property="Property",kr.ObjectExpression="ObjectExpression",kr.ThisExpression="ThisExpression",kr.LocalsExpression="LocalsExpression",kr.NGValueParameter="NGValueParameter",kr.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:kr.Program,body:e}},expressionStatement:function(){return{type:kr.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Cr(e))throw mr("lval","Trying to assign a value to a non l-value");e={type:kr.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:kr.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:kr.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:kr.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:kr.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:kr.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=oe(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:kr.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:kr.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:kr.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:kr.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:kr.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:kr.Identifier,name:e.text}},constant:function(){return{type:kr.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:kr.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:kr.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:kr.ObjectExpression,properties:t}},throwError:function(e,t){throw mr("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw mr("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw mr("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===r||a===i||!t&&!n&&!r&&!i)return o}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return!!i&&(this.tokens.shift(),i)},selfReferential:{this:{type:kr.ThisExpression},$locals:{type:kr.LocalsExpression}}};function Sr(e,t,n){var r,i,o,a=e.isPure=function(e,t){switch(e.type){case kr.MemberExpression:if(e.computed)return!1;break;case kr.UnaryExpression:return 1;case kr.BinaryExpression:return"+"!==e.operator&&1;case kr.CallExpression:return!1}return void 0===t?2:t}(e,n);switch(e.type){case kr.Program:r=!0,k(e.body,(function(e){Sr(e.expression,t,a),r=r&&e.expression.constant})),e.constant=r;break;case kr.Literal:e.constant=!0,e.toWatch=[];break;case kr.UnaryExpression:Sr(e.argument,t,a),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case kr.BinaryExpression:Sr(e.left,t,a),Sr(e.right,t,a),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case kr.LogicalExpression:Sr(e.left,t,a),Sr(e.right,t,a),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case kr.ConditionalExpression:Sr(e.test,t,a),Sr(e.alternate,t,a),Sr(e.consequent,t,a),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case kr.Identifier:e.constant=!1,e.toWatch=[e];break;case kr.MemberExpression:Sr(e.object,t,a),e.computed&&Sr(e.property,t,a),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=e.constant?[]:[e];break;case kr.CallExpression:o=!!e.filter&&function(e,t){return!e(t).$stateful}(t,e.callee.name),r=o,i=[],k(e.arguments,(function(e){Sr(e,t,a),r=r&&e.constant,i.push.apply(i,e.toWatch)})),e.constant=r,e.toWatch=o?i:[e];break;case kr.AssignmentExpression:Sr(e.left,t,a),Sr(e.right,t,a),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case kr.ArrayExpression:r=!0,i=[],k(e.elements,(function(e){Sr(e,t,a),r=r&&e.constant,i.push.apply(i,e.toWatch)})),e.constant=r,e.toWatch=i;break;case kr.ObjectExpression:r=!0,i=[],k(e.properties,(function(e){Sr(e.value,t,a),r=r&&e.value.constant,i.push.apply(i,e.value.toWatch),e.computed&&(Sr(e.key,t,!1),r=r&&e.key.constant,i.push.apply(i,e.key.toWatch))})),e.constant=r,e.toWatch=i;break;case kr.ThisExpression:case kr.LocalsExpression:e.constant=!1,e.toWatch=[]}}function $r(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length||n[0]!==t?n:void 0}}function Cr(e){return e.type===kr.Identifier||e.type===kr.MemberExpression}function _r(e){if(1===e.body.length&&Cr(e.body[0].expression))return{type:kr.AssignmentExpression,left:e.body[0].expression,right:{type:kr.NGValueParameter},operator:"="}}function Or(e){this.$filter=e}function Tr(e){this.$filter=e}function jr(e,t,n){this.ast=new kr(e,n),this.astCompiler=n.csp?new Tr(t):new Or(t)}function Pr(e){return G(e.valueOf)?e.valueOf():vr.call(e)}function Dr(){var e,t,n=Le(),r={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){r[e]=t},this.setIdentifierFns=function(n,r){return e=n,t=r,this},this.$get=["$filter",function(i){var o={csp:le().noUnsafeEval,literals:oe(r),isIdentifierStart:G(e)&&e,isIdentifierContinue:G(t)&&t};return a.$$getAst=function(e){return new jr(new wr(o),i,o).getAst(e).ast},a;function a(e,t){var r,a;switch(typeof e){case"string":if(e=e.trim(),!(r=n[a=e]))r=new jr(new wr(o),i,o).parse(e),n[a]=p(r);return f(r,t);case"function":return f(e,t);default:return f(D,t)}}function s(e,t,n){return null==e||null==t?e===t:!("object"==typeof e&&"object"==typeof(e=Pr(e))&&!n)&&(e===t||e!=e&&t!=t)}function l(e,t,n,r,i){var o,a=r.inputs;if(1===a.length){var l=s;return a=a[0],e.$watch((function(e){var t=a(e);return s(t,l,a.isPure)||(o=r(e,void 0,void 0,[t]),l=t&&Pr(t)),o}),t,n,i)}for(var c=[],u=[],d=0,p=a.length;d<p;d++)c[d]=s,u[d]=null;return e.$watch((function(e){for(var t=!1,n=0,i=a.length;n<i;n++){var l=a[n](e);(t||(t=!s(l,c[n],a[n].isPure)))&&(u[n]=l,c[n]=l&&Pr(l))}return t&&(o=r(e,void 0,void 0,u)),o}),t,n,i)}function c(e,t,n,r,i){var o,a,s=r.literal?u:z,l=r.$$intercepted||r,c=r.$$interceptor||R,d=r.inputs&&!l.inputs;return h.literal=r.literal,h.constant=r.constant,h.inputs=r.inputs,p(h),o=e.$watch(h,t,n,i);function f(){s(a)&&o()}function h(e,t,n,r){return a=d&&r?r[0]:l(e,t,n,r),s(a)&&e.$$postDigest(f),c(a)}}function u(e){var t=!0;return k(e,(function(e){z(e)||(t=!1)})),t}function d(e,t,n,r){var i=e.$watch((function(e){return i(),r(e)}),t,n);return i}function p(e){return e.constant?e.$$watchDelegate=d:e.oneTime?e.$$watchDelegate=c:e.inputs&&(e.$$watchDelegate=l),e}function f(e,t){if(!t)return e;e.$$interceptor&&(t=function(e,t){function n(n){return t(e(n))}return n.$stateful=e.$stateful||t.$stateful,n.$$pure=e.$$pure&&t.$$pure,n}(e.$$interceptor,t),e=e.$$intercepted);var n=!1,r=function(r,i,o,a){var s=n&&a?a[0]:e(r,i,o,a);return t(s)};return r.$$intercepted=e,r.$$interceptor=t,r.literal=e.literal,r.oneTime=e.oneTime,r.constant=e.constant,t.$stateful||(n=!e.inputs,r.inputs=e.inputs?e.inputs:[e],t.$$pure||(r.inputs=r.inputs.map((function(e){return 2===e.isPure?function(t){return e(t)}:e})))),p(r)}}]}function Rr(){var e=!0;this.$get=["$rootScope","$exceptionHandler",function(t,n){return Nr((function(e){t.$evalAsync(e)}),n,e)}],this.errorOnUnhandledRejections=function(t){return z(t)?(e=t,this):e}}function Ir(){var e=!0;this.$get=["$browser","$exceptionHandler",function(t,n){return Nr((function(e){t.defer(e)}),n,e)}],this.errorOnUnhandledRejections=function(t){return z(t)?(e=t,this):e}}function Nr(e,t,n){var r=i("$q",TypeError),o=0,a=[];function s(){return new l}function l(){var e=this.promise=new c;this.resolve=function(t){p(e,t)},this.reject=function(t){f(e,t)},this.notify=function(t){g(e,t)}}function c(){this.$$state={status:0}}function u(){for(;!o&&a.length;){var e=a.shift();if(!Mr(e)){zr(e);var n="Possibly unhandled rejection: "+Ve(e.value);H(e.value)?t(e.value,n):t(n)}}}function d(r){!n||r.pending||2!==r.status||Mr(r)||(0===o&&0===a.length&&e(u),a.push(r)),!r.processScheduled&&r.pending&&(r.processScheduled=!0,++o,e((function(){!function(r){var i,a,s;s=r.pending,r.processScheduled=!1,r.pending=void 0;try{for(var l=0,c=s.length;l<c;++l){zr(r),a=s[l][0],i=s[l][r.status];try{G(i)?p(a,i(r.value)):1===r.status?p(a,r.value):f(a,r.value)}catch(e){f(a,e),e&&!0===e.$$passToExceptionHandler&&t(e)}}}finally{--o,n&&0===o&&e(u)}}(r)})))}function p(e,t){e.$$state.status||(t===e?h(e,r("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):function e(t,n){var r,i=!1;try{(L(n)||G(n))&&(r=n.then),G(r)?(t.$$state.status=-1,r.call(n,o,a,(function(e){g(t,e)}))):(t.$$state.value=n,t.$$state.status=1,d(t.$$state))}catch(e){a(e)}function o(n){i||(i=!0,e(t,n))}function a(e){i||(i=!0,h(t,e))}}(e,t))}function f(e,t){e.$$state.status||h(e,t)}function h(e,t){e.$$state.value=t,e.$$state.status=2,d(e.$$state)}function g(n,r){var i=n.$$state.pending;n.$$state.status<=0&&i&&i.length&&e((function(){for(var e,n,o=0,a=i.length;o<a;o++){n=i[o][0],e=i[o][3];try{g(n,G(e)?e(r):r)}catch(e){t(e)}}}))}function m(e){var t=new c;return f(t,e),t}function v(e,t,n){var r=null;try{G(n)&&(r=n())}catch(e){return m(e)}return Q(r)?r.then((function(){return t(e)}),m):t(e)}function b(e,t,n,r){var i=new c;return p(i,e),i.then(t,n,r)}_(c.prototype,{then:function(e,t,n){if(M(e)&&M(t)&&M(n))return this;var r=new c;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),this.$$state.status>0&&d(this.$$state),r},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then((function(t){return v(t,y,e)}),(function(t){return v(t,m,e)}),t)}});var y=b;function x(e){if(!G(e))throw r("norslvr","Expected resolverFn, got '{0}'",e);var t=new c;return e((function(e){p(t,e)}),(function(e){f(t,e)})),t}return x.prototype=c.prototype,x.defer=s,x.reject=m,x.when=b,x.resolve=y,x.all=function(e){var t=new c,n=0,r=U(e)?[]:{};return k(e,(function(e,i){n++,b(e).then((function(e){r[i]=e,--n||p(t,r)}),(function(e){f(t,e)}))})),0===n&&p(t,r),t},x.race=function(e){var t=s();return k(e,(function(e){b(e).then(t.resolve,t.reject)})),t.promise},x}function Mr(e){return!!e.pur}function zr(e){e.pur=!0}function Lr(e){e.$$state&&zr(e.$$state)}function Br(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function Fr(){var e=10,t=i("$rootScope"),n=null,r=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$exceptionHandler","$parse","$browser",function(i,a,s){function l(e){e.currentScope.$$destroyed=!0}function c(){this.$id=S(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$suspended=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}c.prototype={constructor:c,$new:function(e,t){var n;return t=t||this,e?(n=new c).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=S(),this.$$ChildScope=null,this.$$suspended=!1}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&&n.$on("$destroy",l),n},$watch:function(e,t,r,i){var o=a(e),s=G(t)?t:D;if(o.$$watchDelegate)return o.$$watchDelegate(this,s,r,o,e);var l=this,c=l.$$watchers,u={fn:s,last:x,get:o,exp:i||e,eq:!!r};return n=null,c||((c=l.$$watchers=[]).$$digestWatchIndex=-1),c.unshift(u),c.$$digestWatchIndex++,b(this,1),function(){var e=ie(c,u);e>=0&&(b(l,-1),e<c.$$digestWatchIndex&&c.$$digestWatchIndex--),n=null}},$watchGroup:function(e,t){var n=new Array(e.length),r=new Array(e.length),i=[],o=this,a=!1,s=!0;if(!e.length){var l=!0;return o.$evalAsync((function(){l&&t(r,r,o)})),function(){l=!1}}if(1===e.length)return this.$watch(e[0],(function(e,i,o){r[0]=e,n[0]=i,t(r,e===i?r:n,o)}));function c(){a=!1;try{s?(s=!1,t(r,r,o)):t(r,n,o)}finally{for(var i=0;i<e.length;i++)n[i]=r[i]}}return k(e,(function(e,t){var n=o.$watch(e,(function(e){r[t]=e,a||(a=!0,o.$evalAsync(c))}));i.push(n)})),function(){for(;i.length;)i.shift()()}},$watchCollection:function(e,t){g.$$pure=a(e).literal,g.$stateful=!g.$$pure;var n,r,i,o=this,s=t.length>1,l=0,c=a(e,g),d=[],p={},f=!0,h=0;function g(e){var t,i,o,a;if(!M(n=e)){if(L(n))if(w(n)){r!==d&&(h=(r=d).length=0,l++),t=n.length,h!==t&&(l++,r.length=h=t);for(var s=0;s<t;s++)a=r[s],o=n[s],a!=a&&o!=o||a===o||(l++,r[s]=o)}else{for(i in r!==p&&(r=p={},h=0,l++),t=0,n)u.call(n,i)&&(t++,o=n[i],a=r[i],i in r?a!=a&&o!=o||a===o||(l++,r[i]=o):(h++,r[i]=o,l++));if(h>t)for(i in l++,r)u.call(n,i)||(h--,delete r[i])}else r!==n&&(r=n,l++);return l}}return this.$watch(c,(function(){if(f?(f=!1,t(n,n,o)):t(n,i,o),s)if(L(n))if(w(n)){i=new Array(n.length);for(var e=0;e<n.length;e++)i[e]=n[e]}else for(var r in i={},n)u.call(n,r)&&(i[r]=n[r]);else i=n}))},$digest:function(){var o,a,l,c,u,h,b,y,w,k=e,E=p.length?d:this,S=[];m("$digest"),s.$$checkUrlChange(),this===d&&null!==r&&(s.defer.cancel(r),A()),n=null;do{u=!1,b=E;for(var $=0;$<p.length;$++){try{(0,(w=p[$]).fn)(w.scope,w.locals)}catch(e){i(e)}n=null}p.length=0;e:do{if(c=!b.$$suspended&&b.$$watchers)for(c.$$digestWatchIndex=c.length;c.$$digestWatchIndex--;)try{if(o=c[c.$$digestWatchIndex])if((a=(0,o.get)(b))===(l=o.last)||(o.eq?se(a,l):j(a)&&j(l))){if(o===n){u=!1;break e}}else u=!0,n=o,o.last=o.eq?oe(a,null):a,(0,o.fn)(a,l===x?a:l,b),k<5&&(S[y=4-k]||(S[y]=[]),S[y].push({msg:G(o.exp)?"fn: "+(o.exp.name||o.exp.toString()):o.exp,newVal:a,oldVal:l}))}catch(e){i(e)}if(!(h=!b.$$suspended&&b.$$watchersCount&&b.$$childHead||b!==E&&b.$$nextSibling))for(;b!==E&&!(h=b.$$nextSibling);)b=b.$parent}while(b=h);if((u||p.length)&&!k--)throw v(),t("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,S)}while(u||p.length);for(v();g<f.length;)try{f[g++]()}catch(e){i(e)}f.length=g=0,s.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===d&&s.$$applicationDestroyed(),b(this,-this.$$watchersCount),this.$$listenerCount)y(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=D,this.$on=this.$watch=this.$watchGroup=function(){return D},this.$$listeners={},this.$$nextSibling=null,function e(t){9===o&&(t.$$childHead&&e(t.$$childHead),t.$$nextSibling&&e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return a(e)(this,t)},$evalAsync:function(e,t){d.$$phase||p.length||s.defer((function(){p.length&&d.$digest()}),null,"$evalAsync"),p.push({scope:this,fn:a(e),locals:t})},$$postDigest:function(e){f.push(e)},$apply:function(e){try{m("$apply");try{return this.$eval(e)}finally{v()}}catch(e){i(e)}finally{try{d.$digest()}catch(e){throw i(e),e}}},$applyAsync:function(e){var t=this;e&&h.push((function(){t.$eval(e)})),e=a(e),null===r&&(r=s.defer((function(){d.$apply(A)}),null,"$applyAsync"))},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do{r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++}while(r=r.$parent);var i=this;return function(){var r=n.indexOf(t);-1!==r&&(delete n[r],y(i,1,e))}},$emit:function(e,t){var n,r,o,a=[],s=this,l=!1,c={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},u=ue([c],arguments,1);do{for(n=s.$$listeners[e]||a,c.currentScope=s,r=0,o=n.length;r<o;r++)if(n[r])try{n[r].apply(null,u)}catch(e){i(e)}else n.splice(r,1),r--,o--;if(l)break;s=s.$parent}while(s);return c.currentScope=null,c},$broadcast:function(e,t){var n=this,r=n,o=n,a={name:e,targetScope:n,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[e])return a;for(var s,l,c,u=ue([a],arguments,1);r=o;){for(a.currentScope=r,l=0,c=(s=r.$$listeners[e]||[]).length;l<c;l++)if(s[l])try{s[l].apply(null,u)}catch(e){i(e)}else s.splice(l,1),l--,c--;if(!(o=r.$$listenerCount[e]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(o=r.$$nextSibling);)r=r.$parent}return a.currentScope=null,a}};var d=new c,p=d.$$asyncQueue=[],f=d.$$postDigestQueue=[],h=d.$$applyAsyncQueue=[],g=0;return d;function m(e){if(d.$$phase)throw t("inprog","{0} already in progress",d.$$phase);d.$$phase=e}function v(){d.$$phase=null}function b(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function y(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function x(){}function A(){for(;h.length;)try{h.shift()()}catch(e){i(e)}r=null}}]}function qr(){var e=/^\s*(https?|s?ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationTrustedUrlList=function(t){return z(t)?(e=t,this):e},this.imgSrcSanitizationTrustedUrlList=function(e){return z(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i=r?t:e,o=li(n&&n.trim()).href;return""===o||o.match(i)?n:"unsafe:"+o}}}Or.prototype={compile:function(e){var t=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Sr(e,t.$filter);var n,r="";if(this.stage="assign",n=_r(e)){this.state.computing="assign";var i=this.nextId();this.recurse(n,i),this.return_(i),r="fn.assign="+this.generateFunction("assign","s,v,l")}var o=$r(e.body);t.stage="inputs",k(o,(function(e,n){var r="fn"+n;t.state[r]={vars:[],body:[],own:{}},t.state.computing=r;var i=t.nextId();t.recurse(e,i),t.return_(i),t.state.inputs.push({name:r,isPure:e.isPure}),e.watchId=n})),this.state.computing="fn",this.stage="main",this.recurse(e);var a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+r+this.watchFns()+"return fn;",s=new Function("$filter","getStringValue","ifDefined","plus",a)(this.$filter,br,Ar,Er);return this.state=this.stage=void 0,s},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return k(t,(function(t){e.push("var "+t.name+"="+n.generateFunction(t.name,"s")),t.isPure&&e.push(t.name,".isPure="+JSON.stringify(t.isPure)+";")})),t.length&&e.push("fn.inputs=["+t.map((function(e){return e.name})).join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return k(this.state.filters,(function(n,r){e.push(n+"=$filter("+t.escape(r)+")")})),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,r,i,o){var a,s,l,c,u,d=this;if(r=r||D,!o&&z(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,r,i,!0));switch(e.type){case kr.Program:k(e.body,(function(t,n){d.recurse(t.expression,void 0,void 0,(function(e){s=e})),n!==e.body.length-1?d.current().body.push(s,";"):d.return_(s)}));break;case kr.Literal:c=this.escape(e.value),this.assign(t,c),r(t||c);break;case kr.UnaryExpression:this.recurse(e.argument,void 0,void 0,(function(e){s=e})),c=e.operator+"("+this.ifDefined(s,0)+")",this.assign(t,c),r(c);break;case kr.BinaryExpression:this.recurse(e.left,void 0,void 0,(function(e){a=e})),this.recurse(e.right,void 0,void 0,(function(e){s=e})),c="+"===e.operator?this.plus(a,s):"-"===e.operator?this.ifDefined(a,0)+e.operator+this.ifDefined(s,0):"("+a+")"+e.operator+"("+s+")",this.assign(t,c),r(c);break;case kr.LogicalExpression:t=t||this.nextId(),d.recurse(e.left,t),d.if_("&&"===e.operator?t:d.not(t),d.lazyRecurse(e.right,t)),r(t);break;case kr.ConditionalExpression:t=t||this.nextId(),d.recurse(e.test,t),d.if_(t,d.lazyRecurse(e.alternate,t),d.lazyRecurse(e.consequent,t)),r(t);break;case kr.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",e.name)),(function(){d.if_("inputs"===d.stage||"s",(function(){i&&1!==i&&d.if_(d.isNull(d.nonComputedMember("s",e.name)),d.lazyAssign(d.nonComputedMember("s",e.name),"{}")),d.assign(t,d.nonComputedMember("s",e.name))}))}),t&&d.lazyAssign(t,d.nonComputedMember("l",e.name))),r(t);break;case kr.MemberExpression:a=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(e.object,a,void 0,(function(){d.if_(d.notNull(a),(function(){e.computed?(s=d.nextId(),d.recurse(e.property,s),d.getStringValue(s),i&&1!==i&&d.if_(d.not(d.computedMember(a,s)),d.lazyAssign(d.computedMember(a,s),"{}")),c=d.computedMember(a,s),d.assign(t,c),n&&(n.computed=!0,n.name=s)):(i&&1!==i&&d.if_(d.isNull(d.nonComputedMember(a,e.property.name)),d.lazyAssign(d.nonComputedMember(a,e.property.name),"{}")),c=d.nonComputedMember(a,e.property.name),d.assign(t,c),n&&(n.computed=!1,n.name=e.property.name))}),(function(){d.assign(t,"undefined")})),r(t)}),!!i);break;case kr.CallExpression:t=t||this.nextId(),e.filter?(s=d.filter(e.callee.name),l=[],k(e.arguments,(function(e){var t=d.nextId();d.recurse(e,t),l.push(t)})),c=s+"("+l.join(",")+")",d.assign(t,c),r(t)):(s=d.nextId(),a={},l=[],d.recurse(e.callee,s,a,(function(){d.if_(d.notNull(s),(function(){k(e.arguments,(function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(e)}))})),c=a.name?d.member(a.context,a.name,a.computed)+"("+l.join(",")+")":s+"("+l.join(",")+")",d.assign(t,c)}),(function(){d.assign(t,"undefined")})),r(t)})));break;case kr.AssignmentExpression:s=this.nextId(),a={},this.recurse(e.left,void 0,a,(function(){d.if_(d.notNull(a.context),(function(){d.recurse(e.right,s),c=d.member(a.context,a.name,a.computed)+e.operator+s,d.assign(t,c),r(t||c)}))}),1);break;case kr.ArrayExpression:l=[],k(e.elements,(function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(e)}))})),c="["+l.join(",")+"]",this.assign(t,c),r(t||c);break;case kr.ObjectExpression:l=[],u=!1,k(e.properties,(function(e){e.computed&&(u=!0)})),u?(t=t||this.nextId(),this.assign(t,"{}"),k(e.properties,(function(e){e.computed?(a=d.nextId(),d.recurse(e.key,a)):a=e.key.type===kr.Identifier?e.key.name:""+e.key.value,s=d.nextId(),d.recurse(e.value,s),d.assign(d.member(t,a,e.computed),s)}))):(k(e.properties,(function(t){d.recurse(t.value,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(d.escape(t.key.type===kr.Identifier?t.key.name:""+t.key.value)+":"+e)}))})),c="{"+l.join(",")+"}",this.assign(t,c)),r(t||c);break;case kr.ThisExpression:this.assign(t,"s"),r(t||"s");break;case kr.LocalsExpression:this.assign(t,"l"),r(t||"l");break;case kr.NGValueParameter:this.assign(t,"v"),r(t||"v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),r[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var r=this.current().body;r.push("if(",e,"){"),t(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(e){return"!("+e+")"},isNull:function(e){return e+"==null"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},lazyRecurse:function(e,t,n,r,i,o){var a=this;return function(){a.recurse(e,t,n,r,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(F(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(q(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw mr("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},Tr.prototype={compile:function(e){var t,n,r=this;Sr(e,r.$filter),(t=_r(e))&&(n=this.recurse(t));var i,o=$r(e.body);o&&(i=[],k(o,(function(e,t){var n=r.recurse(e);n.isPure=e.isPure,e.input=n,i.push(n),e.watchId=t})));var a=[];k(e.body,(function(e){a.push(r.recurse(e.expression))}));var s=0===e.body.length?D:1===e.body.length?a[0]:function(e,t){var n;return k(a,(function(r){n=r(e,t)})),n};return n&&(s.assign=function(e,t,r){return n(e,r,t)}),i&&(s.inputs=i),s},recurse:function(e,t,n){var r,i,o,a=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case kr.Literal:return this.value(e.value,t);case kr.UnaryExpression:return i=this.recurse(e.argument),this["unary"+e.operator](i,t);case kr.BinaryExpression:case kr.LogicalExpression:return r=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](r,i,t);case kr.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case kr.Identifier:return a.identifier(e.name,t,n);case kr.MemberExpression:return r=this.recurse(e.object,!1,!!n),e.computed||(i=e.property.name),e.computed&&(i=this.recurse(e.property)),e.computed?this.computedMember(r,i,t,n):this.nonComputedMember(r,i,t,n);case kr.CallExpression:return o=[],k(e.arguments,(function(e){o.push(a.recurse(e))})),e.filter&&(i=this.$filter(e.callee.name)),e.filter||(i=this.recurse(e.callee,!0)),e.filter?function(e,n,r,a){for(var s=[],l=0;l<o.length;++l)s.push(o[l](e,n,r,a));var c=i.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:c}:c}:function(e,n,r,a){var s,l=i(e,n,r,a);if(null!=l.value){for(var c=[],u=0;u<o.length;++u)c.push(o[u](e,n,r,a));s=l.value.apply(l.context,c)}return t?{value:s}:s};case kr.AssignmentExpression:return r=this.recurse(e.left,!0,1),i=this.recurse(e.right),function(e,n,o,a){var s=r(e,n,o,a),l=i(e,n,o,a);return s.context[s.name]=l,t?{value:l}:l};case kr.ArrayExpression:return o=[],k(e.elements,(function(e){o.push(a.recurse(e))})),function(e,n,r,i){for(var a=[],s=0;s<o.length;++s)a.push(o[s](e,n,r,i));return t?{value:a}:a};case kr.ObjectExpression:return o=[],k(e.properties,(function(e){e.computed?o.push({key:a.recurse(e.key),computed:!0,value:a.recurse(e.value)}):o.push({key:e.key.type===kr.Identifier?e.key.name:""+e.key.value,computed:!1,value:a.recurse(e.value)})})),function(e,n,r,i){for(var a={},s=0;s<o.length;++s)o[s].computed?a[o[s].key(e,n,r,i)]=o[s].value(e,n,r,i):a[o[s].key]=o[s].value(e,n,r,i);return t?{value:a}:a};case kr.ThisExpression:return function(e){return t?{value:e}:e};case kr.LocalsExpression:return function(e,n){return t?{value:n}:n};case kr.NGValueParameter:return function(e,n,r){return t?{value:r}:r}}},"unary+":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=z(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=z(a)?-a:-0,t?{value:a}:a}},"unary!":function(e,t){return function(n,r,i,o){var a=!e(n,r,i,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(r,i,o,a){var s=Er(e(r,i,o,a),t(r,i,o,a));return n?{value:s}:s}},"binary-":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),l=t(r,i,o,a),c=(z(s)?s:0)-(z(l)?l:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)*t(r,i,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)/t(r,i,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)%t(r,i,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)===t(r,i,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!==t(r,i,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)==t(r,i,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!=t(r,i,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<t(r,i,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>t(r,i,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<=t(r,i,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>=t(r,i,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)&&t(r,i,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)||t(r,i,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,r){return function(i,o,a,s){var l=e(i,o,a,s)?t(i,o,a,s):n(i,o,a,s);return r?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n){return function(r,i,o,a){var s=i&&e in i?i:r;n&&1!==n&&s&&null==s[e]&&(s[e]={});var l=s?s[e]:void 0;return t?{context:s,name:e,value:l}:l}},computedMember:function(e,t,n,r){return function(i,o,a,s){var l,c,u=e(i,o,a,s);return null!=u&&(l=br(l=t(i,o,a,s)),r&&1!==r&&u&&!u[l]&&(u[l]={}),c=u[l]),n?{context:u,name:l,value:c}:c}},nonComputedMember:function(e,t,n,r){return function(i,o,a,s){var l=e(i,o,a,s);r&&1!==r&&l&&null==l[t]&&(l[t]={});var c=null!=l?l[t]:void 0;return n?{context:l,name:t,value:c}:c}},inputs:function(e,t){return function(n,r,i,o){return o?o[t]:e(n,r,i)}}},jr.prototype={constructor:jr,parse:function(e){var t=this.getAst(e),n=this.astCompiler.compile(t.ast);return n.literal=function(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===kr.Literal||e.body[0].expression.type===kr.ArrayExpression||e.body[0].expression.type===kr.ObjectExpression)}(t.ast),n.constant=function(e){return e.constant}(t.ast),n.oneTime=t.oneTime,n},getAst:function(e){var t=!1;return":"===(e=e.trim()).charAt(0)&&":"===e.charAt(1)&&(t=!0,e=e.substring(2)),{ast:this.ast.ast(e),oneTime:t}}};var Vr=i("$sce"),Ur={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Hr=/_([a-z])/g;function Gr(e){return e.replace(Hr,Qe)}function Wr(e){var t=[];return z(e)&&k(e,(function(e){t.push(function(e){if("self"===e)return e;if(F(e)){if(e.indexOf("***")>-1)throw Vr("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=ee(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(W(e))return new RegExp("^"+e.source+"$");throw Vr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}(e))})),t}function Yr(){this.SCE_CONTEXTS=Ur;var t=["self"],n=[];this.trustedResourceUrlList=function(e){return arguments.length&&(t=Wr(e)),t},Object.defineProperty(this,"resourceUrlWhitelist",{get:function(){return this.trustedResourceUrlList},set:function(e){this.trustedResourceUrlList=e}}),this.bannedResourceUrlList=function(e){return arguments.length&&(n=Wr(e)),n},Object.defineProperty(this,"resourceUrlBlacklist",{get:function(){return this.bannedResourceUrlList},set:function(e){this.bannedResourceUrlList=e}}),this.$get=["$injector","$$sanitizeUri",function(r,i){var o=function(e){throw Vr("unsafe","Attempting to use an unsafe value in a safe context.")};function a(t,n){return"self"===t?ci(n,ai)||function(t){return ci(t,function(){if(e.document.baseURI)return e.document.baseURI;ii||((ii=e.document.createElement("a")).href=".",ii=ii.cloneNode(!1));return ii.href}())}(n):!!t.exec(n.href)}function s(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}r.has("$sanitize")&&(o=r.get("$sanitize"));var l=s(),c={};return c[Ur.HTML]=s(l),c[Ur.CSS]=s(l),c[Ur.MEDIA_URL]=s(l),c[Ur.URL]=s(c[Ur.MEDIA_URL]),c[Ur.JS]=s(l),c[Ur.RESOURCE_URL]=s(c[Ur.URL]),{trustAs:function(e,t){var n=c.hasOwnProperty(e)?c[e]:null;if(!n)throw Vr("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||M(t)||""===t)return t;if("string"!=typeof t)throw Vr("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)},getTrusted:function(e,r){if(null===r||M(r)||""===r)return r;var s=c.hasOwnProperty(e)?c[e]:null;if(s&&r instanceof s)return r.$$unwrapTrustedValue();if(G(r.$$unwrapTrustedValue)&&(r=r.$$unwrapTrustedValue()),e===Ur.MEDIA_URL||e===Ur.URL)return i(r.toString(),e===Ur.MEDIA_URL);if(e===Ur.RESOURCE_URL){if(function(e){var r,i,o=li(e.toString()),s=!1;for(r=0,i=t.length;r<i;r++)if(a(t[r],o)){s=!0;break}if(s)for(r=0,i=n.length;r<i;r++)if(a(n[r],o)){s=!1;break}return s}(r))return r;throw Vr("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",r.toString())}if(e===Ur.HTML)return o(r);throw Vr("unsafe","Attempting to use an unsafe value in a safe context.")},valueOf:function(e){return e instanceof l?e.$$unwrapTrustedValue():e}}}]}function Xr(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&o<8)throw Vr("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=qe(Ur);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=R),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,(function(t){return r.getTrusted(e,t)}))};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return k(Ur,(function(e,t){var n=d(t);r[Gr("parse_as_"+n)]=function(t){return i(e,t)},r[Gr("get_trusted_"+n)]=function(t){return a(e,t)},r[Gr("trust_as_"+n)]=function(t){return s(e,t)}})),r}]}function Zr(){this.$get=["$window","$document",function(e,t){var n={},r=!(!(e.nw&&e.nw.process)&&e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,i=T((/android (\d+)/.exec(d((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},l=s.body&&s.body.style,c=!1,u=!1;return l&&(c=!(!("transition"in l)&&!("webkitTransition"in l)),u=!(!("animation"in l)&&!("webkitAnimation"in l))),{history:!(!r||i<4||a),hasEvent:function(e){if("input"===e&&o)return!1;if(M(n[e])){var t=s.createElement("div");n[e]="on"+e in t}return n[e]},csp:le(),transitions:c,animations:u,android:i}}]}function Qr(){this.$get=I((function(e){return new Jr(e)}))}function Jr(e){var t={},n=[],r=this.ALL_TASKS_TYPE="$$all$$",i=this.DEFAULT_TASK_TYPE="$$default$$";function o(){var e=n.pop();return e&&e.cb}function a(e){for(var t=n.length-1;t>=0;--t){var r=n[t];if(r.type===e)return n.splice(t,1),r.cb}}this.completeTask=function(n,s){s=s||i;try{n()}finally{!function(e){t[e=e||i]&&(t[e]--,t[r]--)}(s);var l=t[s],c=t[r];if(!c||!l)for(var u,d=c?a:o;u=d(s);)try{u()}catch(t){e.error(t)}}},this.incTaskCount=function(e){t[e=e||i]=(t[e]||0)+1,t[r]=(t[r]||0)+1},this.notifyWhenNoPendingTasks=function(e,i){t[i=i||r]?n.push({type:i,cb:e}):e()}}var Kr=i("$templateRequest");function ei(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(t,n,r,i,o){function a(s,l){a.totalPendingRequests++,F(s)&&!M(n.get(s))||(s=o.getTrustedResourceUrl(s));var c=r.defaults&&r.defaults.transformResponse;return U(c)?c=c.filter((function(e){return e!==zn})):c===zn&&(c=null),r.get(s,_({cache:n,transformResponse:c},e)).finally((function(){a.totalPendingRequests--})).then((function(e){return n.put(s,e.data)}),(function(e){l||(e=Kr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,e.status,e.statusText),t(e));return i.reject(e)}))}return a.totalPendingRequests=0,a}]}function ti(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var r={findBindings:function(e,t,n){var r=e.getElementsByClassName("ng-binding"),i=[];return k(r,(function(e){var r=y.element(e).data("$binding");r&&k(r,(function(r){n?new RegExp("(^|\\s)"+ee(t)+"(\\s|\\||$)").test(r)&&i.push(e):-1!==r.indexOf(t)&&i.push(e)}))})),i},findModels:function(e,t,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o="["+r[i]+"model"+(n?"=":"*=")+'"'+t+'"]',a=e.querySelectorAll(o);if(a.length)return a}},getLocation:function(){return n.url()},setLocation:function(t){t!==n.url()&&(n.url(t),e.$digest())},whenStable:function(e){t.notifyWhenNoOutstandingRequests(e)}};return r}]}var ni=i("$timeout");function ri(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,r,i){var o={};function a(a,s,l){G(a)||(l=s,s=a,a=D);var c,u=de(arguments,3),d=z(l)&&!l,p=(d?r:n).defer(),f=p.promise;return c=t.defer((function(){try{p.resolve(a.apply(null,u))}catch(e){p.reject(e),i(e)}finally{delete o[f.$$timeoutId]}d||e.$apply()}),s,"$timeout"),f.$$timeoutId=c,o[c]=p,f}return a.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$timeoutId"))throw ni("badprom","`$timeout.cancel()` called with a promise that was not generated by `$timeout()`.");if(!o.hasOwnProperty(e.$$timeoutId))return!1;var n=e.$$timeoutId,r=o[n];return Lr(r.promise),r.reject("canceled"),delete o[n],t.defer.cancel(n)},a}]}var ii,oi=e.document.createElement("a"),ai=li(e.location.href);oi.href="http://[::1]";var si="[::1]"===oi.hostname;function li(e){if(!F(e))return e;var t=e;o&&(oi.setAttribute("href",t),t=oi.href),oi.setAttribute("href",t);var n=oi.hostname;return!si&&n.indexOf(":")>-1&&(n="["+n+"]"),{href:oi.href,protocol:oi.protocol?oi.protocol.replace(/:$/,""):"",host:oi.host,search:oi.search?oi.search.replace(/^\?/,""):"",hash:oi.hash?oi.hash.replace(/^#/,""):"",hostname:n,port:oi.port,pathname:"/"===oi.pathname.charAt(0)?oi.pathname:"/"+oi.pathname}}function ci(e,t){return e=li(e),t=li(t),e.protocol===t.protocol&&e.host===t.host}function ui(){this.$get=I(e)}function di(e){var t=e[0]||{},n={},r="";function i(e){try{return decodeURIComponent(e)}catch(t){return e}}return function(){var e,o,a,s,l,c=function(e){try{return e.cookie||""}catch(e){return""}}(t);if(c!==r)for(e=(r=c).split("; "),n={},a=0;a<e.length;a++)(s=(o=e[a]).indexOf("="))>0&&(l=i(o.substring(0,s)),M(n[l])&&(n[l]=i(o.substring(s+1))));return n}}function pi(){this.$get=di}function fi(e){function t(n,r){if(L(n)){var i={};return k(n,(function(e,n){i[n]=t(n,e)})),i}return e.factory(n+"Filter",r)}this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+"Filter")}}],t("currency",vi),t("date",Oi),t("filter",hi),t("json",Ti),t("limitTo",Di),t("lowercase",ji),t("number",bi),t("orderBy",Ii),t("uppercase",Pi)}function hi(){return function(e,t,n,r){if(!w(e)){if(null==e)return e;throw i("filter")("notarray","Expected array but received: {0}",e)}var o,a;switch(r=r||"$",mi(t)){case"function":o=t;break;case"boolean":case"null":case"number":case"string":a=!0;case"object":o=function(e,t,n,r){var i=L(e)&&n in e;!0===t?t=se:G(t)||(t=function(e,t){return!M(e)&&(null===e||null===t?e===t:!(L(t)||L(e)&&!N(e))&&(e=d(""+e),t=d(""+t),-1!==e.indexOf(t)))});return function(o){return i&&!L(o)?gi(o,e[n],t,n,!1):gi(o,e,t,n,r)}}(t,n,r,a);break;default:return e}return Array.prototype.filter.call(e,o)}}function gi(e,t,n,r,i,o){var a=mi(e),s=mi(t);if("string"===s&&"!"===t.charAt(0))return!gi(e,t.substring(1),n,r,i);if(U(e))return e.some((function(e){return gi(e,t,n,r,i)}));switch(a){case"object":var l;if(i){for(l in e)if(l.charAt&&"$"!==l.charAt(0)&&gi(e[l],t,n,r,!0))return!0;return!o&&gi(e,t,n,r,!1)}if("object"===s){for(l in t){var c=t[l];if(!G(c)&&!M(c)){var u=l===r;if(!gi(u?e:e[l],c,n,r,u,u))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function mi(e){return null===e?"null":typeof e}di.$inject=["$document"],fi.$inject=["$provide"];function vi(e){var t=e.NUMBER_FORMATS;return function(e,n,r){M(n)&&(n=t.CURRENCY_SYM),M(r)&&(r=t.PATTERNS[1].maxFrac);var i=n?/\u00A4/g:/\s*\u00A4\s*/g;return null==e?e:yi(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,r).replace(i,n)}}function bi(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:yi(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function yi(e,t,n,r,i){if(!F(e)&&!q(e)||isNaN(e))return"";var o,a=!isFinite(e),s=!1,l=Math.abs(e)+"",c="";if(a)c="∞";else{(function(e,t,n,r){var i=e.d,o=i.length-e.i,a=(t=M(t)?Math.min(Math.max(n,o),r):+t)+e.i,s=i[a];if(a>0){i.splice(Math.max(e.i,a));for(var l=a;l<i.length;l++)i[l]=0}else{o=Math.max(0,o),e.i=1,i.length=Math.max(1,a=t+1),i[0]=0;for(var c=1;c<a;c++)i[c]=0}if(s>=5)if(a-1<0){for(var u=0;u>a;u--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[a-1]++;for(;o<Math.max(0,t);o++)i.push(0);var d=i.reduceRight((function(e,t,n,r){return t+=e,r[n]=t%10,Math.floor(t/10)}),0);d&&(i.unshift(d),e.i++)})(o=function(e){var t,n,r,i,o,a=0;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;"0"===e.charAt(r);r++);if(r===(o=e.length))t=[0],n=1;else{for(o--;"0"===e.charAt(o);)o--;for(n-=r,t=[],i=0;r<=o;r++,i++)t[i]=+e.charAt(r)}return n>22&&(t=t.splice(0,21),a=n-1,n=1),{d:t,e:a,i:n}}(l),i,t.minFrac,t.maxFrac);var u=o.d,d=o.i,p=o.e,f=[];for(s=u.reduce((function(e,t){return e&&!t}),!0);d<0;)u.unshift(0),d++;d>0?f=u.splice(d,u.length):(f=u,u=[0]);var h=[];for(u.length>=t.lgSize&&h.unshift(u.splice(-t.lgSize,u.length).join(""));u.length>t.gSize;)h.unshift(u.splice(-t.gSize,u.length).join(""));u.length&&h.unshift(u.join("")),c=h.join(n),f.length&&(c+=r+f.join("")),p&&(c+="e+"+p)}return e<0&&!s?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function xi(e,t,n,r){var i="";for((e<0||r&&e<=0)&&(r?e=1-e:(e=-e,i="-")),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),i+e}function wi(e,t,n,r,i){return n=n||0,function(o){var a=o["get"+e]();return(n>0||a>-n)&&(a+=n),0===a&&-12===n&&(a=12),xi(a,t,r,i)}}function ki(e,t,n){return function(r,i){var o=r["get"+e]();return i[p((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function Ai(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Ei(e){return function(t){var n,r=Ai(t.getFullYear()),i=+(n=t,new Date(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay())))-+r;return xi(1+Math.round(i/6048e5),e)}}function Si(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}vi.$inject=["$locale"],bi.$inject=["$locale"];var $i={yyyy:wi("FullYear",4,0,!1,!0),yy:wi("FullYear",2,0,!0,!0),y:wi("FullYear",1,0,!1,!0),MMMM:ki("Month"),MMM:ki("Month",!0),MM:wi("Month",2,1),M:wi("Month",1,1),LLLL:ki("Month",!1,!0),dd:wi("Date",2),d:wi("Date",1),HH:wi("Hours",2),H:wi("Hours",1),hh:wi("Hours",2,-12),h:wi("Hours",1,-12),mm:wi("Minutes",2),m:wi("Minutes",1),ss:wi("Seconds",2),s:wi("Seconds",1),sss:wi("Milliseconds",3),EEEE:ki("Day"),EEE:ki("Day",!0),a:function(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){var r=-1*n,i=r>=0?"+":"";return i+=xi(Math[r>0?"floor":"ceil"](r/60),2)+xi(Math.abs(r%60),2)},ww:Ei(2),w:Ei(1),G:Si,GG:Si,GGG:Si,GGGG:function(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}},Ci=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,_i=/^-?\d+$/;function Oi(e){var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var o,a,s="",l=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,F(n)&&(n=_i.test(n)?T(n):function(e){var n;if(n=e.match(t)){var r=new Date(0),i=0,o=0,a=n[8]?r.setUTCFullYear:r.setFullYear,s=n[8]?r.setUTCHours:r.setHours;n[9]&&(i=T(n[9]+n[10]),o=T(n[9]+n[11])),a.call(r,T(n[1]),T(n[2])-1,T(n[3]));var l=T(n[4]||0)-i,c=T(n[5]||0)-o,u=T(n[6]||0),d=Math.round(1e3*parseFloat("0."+(n[7]||0)));return s.call(r,l,c,u,d),r}return e}(n)),q(n)&&(n=new Date(n)),!V(n)||!isFinite(n.getTime()))return n;for(;r;)(a=Ci.exec(r))?r=(l=ue(l,a,1)).pop():(l.push(r),r=null);var c=n.getTimezoneOffset();return i&&(c=ve(i,c),n=ye(n,i,!0)),k(l,(function(t){s+=(o=$i[t])?o(n,e.DATETIME_FORMATS,c):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),s}}function Ti(){return function(e,t){return M(t)&&(t=2),he(e,t)}}Oi.$inject=["$locale"];var ji=I(d),Pi=I(p);function Di(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):T(t),j(t)?e:(q(e)&&(e=e.toString()),w(e)?(n=(n=!n||isNaN(n)?0:T(n))<0?Math.max(0,e.length+n):n,t>=0?Ri(e,n,n+t):0===n?Ri(e,t,e.length):Ri(e,Math.max(0,n+t),n)):e)}}function Ri(e,t,n){return F(e)?e.slice(t,n):f.call(e,t,n)}function Ii(e){return function(r,o,a,s){if(null==r)return r;if(!w(r))throw i("orderBy")("notarray","Expected array but received: {0}",r);U(o)||(o=[o]),0===o.length&&(o=["+"]);var l=o.map((function(t){var n=1,r=R;if(G(t))r=t;else if(F(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(r=e(t)).constant)){var i=r();r=function(e){return e[i]}}return{get:r,descending:n}})),c=a?-1:1,u=G(s)?s:n,d=Array.prototype.map.call(r,(function(e,n){return{value:e,tieBreaker:{value:n,type:"number",index:n},predicateValues:l.map((function(r){return function(e,n){var r=typeof e;null===e?r="null":"object"===r&&(e=function(e){if(G(e.valueOf)&&t(e=e.valueOf()))return e;if(N(e)&&t(e=e.toString()))return e;return e}(e));return{value:e,type:r,index:n}}(r.get(e),n)}))}}));return d.sort((function(e,t){for(var r=0,i=l.length;r<i;r++){var o=u(e.predicateValues[r],t.predicateValues[r]);if(o)return o*l[r].descending*c}return(u(e.tieBreaker,t.tieBreaker)||n(e.tieBreaker,t.tieBreaker))*c})),r=d.map((function(e){return e.value}))};function t(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function n(e,t){var n=0,r=e.type,i=t.type;if(r===i){var o=e.value,a=t.value;"string"===r?(o=o.toLowerCase(),a=a.toLowerCase()):"object"===r&&(L(o)&&(o=e.index),L(a)&&(a=t.index)),o!==a&&(n=o<a?-1:1)}else n="undefined"===r?1:"undefined"===i?-1:"null"===r?1:"null"===i||r<i?-1:1;return n}}function Ni(e){return G(e)&&(e={link:e}),e.restrict=e.restrict||"AC",I(e)}Ii.$inject=["$parse"];var Mi=I({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===m.call(t.prop("href"))?"xlink:href":"href";t.on("click",(function(e){t.attr(n)||e.preventDefault()}))}}}}),zi={};k(jt,(function(e,t){if("multiple"!==e){var n=yn("ng-"+t),r=i;"checked"===e&&(r=function(e,t,r){r.ngModel!==r[n]&&i(e,0,r)}),zi[n]=function(){return{restrict:"A",priority:100,link:r}}}function i(e,r,i){e.$watch(i[n],(function(e){i.$set(t,!!e)}))}})),k(Dt,(function(e,t){zi[t]=function(){return{priority:100,link:function(e,n,r){if("ngPattern"===t&&"/"===r.ngPattern.charAt(0)){var i=r.ngPattern.match(c);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(r[t],(function(e){r.$set(t,e)}))}}}})),k(["src","srcset","href"],(function(e){var t=yn("ng-"+e);zi[t]=["$sce",function(n){return{priority:99,link:function(r,i,a){var s=e,l=e;"href"===e&&"[object SVGAnimatedString]"===m.call(i.prop("href"))&&(l="xlinkHref",a.$attr[l]="xlink:href",s=null),a.$set(t,n.getTrustedMediaUrl(a[t])),a.$observe(t,(function(t){t?(a.$set(l,t),o&&s&&i.prop(s,a[l])):"href"===e&&a.$set(l,null)}))}}}]}));var Li={$addControl:D,$getControls:I([]),$$renameControl:function(e,t){e.$name=t},$removeControl:D,$setValidity:D,$setDirty:D,$setPristine:D,$setSubmitted:D,$$setSubmitted:D};function Bi(e,t,n,r,i){this.$$controls=[],this.$error={},this.$$success={},this.$pending=void 0,this.$name=i(t.name||t.ngForm||"")(n),this.$dirty=!1,this.$pristine=!0,this.$valid=!0,this.$invalid=!1,this.$submitted=!1,this.$$parentForm=Li,this.$$element=e,this.$$animate=r,Ui(this)}Bi.$inject=["$element","$attrs","$scope","$animate","$interpolate"],Bi.prototype={$rollbackViewValue:function(){k(this.$$controls,(function(e){e.$rollbackViewValue()}))},$commitViewValue:function(){k(this.$$controls,(function(e){e.$commitViewValue()}))},$addControl:function(e){Me(e.$name,"input"),this.$$controls.push(e),e.$name&&(this[e.$name]=e),e.$$parentForm=this},$getControls:function(){return qe(this.$$controls)},$$renameControl:function(e,t){var n=e.$name;this[n]===e&&delete this[n],this[t]=e,e.$name=t},$removeControl:function(e){e.$name&&this[e.$name]===e&&delete this[e.$name],k(this.$pending,(function(t,n){this.$setValidity(n,null,e)}),this),k(this.$error,(function(t,n){this.$setValidity(n,null,e)}),this),k(this.$$success,(function(t,n){this.$setValidity(n,null,e)}),this),ie(this.$$controls,e),e.$$parentForm=Li},$setDirty:function(){this.$$animate.removeClass(this.$$element,Bo),this.$$animate.addClass(this.$$element,Fo),this.$dirty=!0,this.$pristine=!1,this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Bo,Fo+" ng-submitted"),this.$dirty=!1,this.$pristine=!0,this.$submitted=!1,k(this.$$controls,(function(e){e.$setPristine()}))},$setUntouched:function(){k(this.$$controls,(function(e){e.$setUntouched()}))},$setSubmitted:function(){for(var e=this;e.$$parentForm&&e.$$parentForm!==Li;)e=e.$$parentForm;e.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,"ng-submitted"),this.$submitted=!0,k(this.$$controls,(function(e){e.$$setSubmitted&&e.$$setSubmitted()}))}},Hi({clazz:Bi,set:function(e,t,n){var r=e[t];r?-1===r.indexOf(n)&&r.push(n):e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(ie(r,n),0===r.length&&delete e[t])}});var Fi=function(e){return["$timeout","$parse",function(t,n){return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:Bi,compile:function(n,i){n.addClass(Bo).addClass(zo);var o=i.name?"name":!(!e||!i.ngForm)&&"ngForm";return{pre:function(e,n,i,a){var s=a[0];if(!("action"in i)){var l=function(t){e.$apply((function(){s.$commitViewValue(),s.$setSubmitted()})),t.preventDefault()};n[0].addEventListener("submit",l),n.on("$destroy",(function(){t((function(){n[0].removeEventListener("submit",l)}),0,!1)}))}(a[1]||s.$$parentForm).$addControl(s);var c=o?r(s.$name):D;o&&(c(e,s),i.$observe(o,(function(t){s.$name!==t&&(c(e,void 0),s.$$parentForm.$$renameControl(s,t),(c=r(s.$name))(e,s))}))),n.on("$destroy",(function(){s.$$parentForm.$removeControl(s),c(e,void 0),_(s,Li)}))}}}};function r(e){return""===e?n('this[""]').assign:n(e).assign||D}}]},qi=Fi(),Vi=Fi(!0);function Ui(e){e.$$classCache={},e.$$classCache[Lo]=!(e.$$classCache[zo]=e.$$element.hasClass(zo))}function Hi(e){var t=e.clazz,n=e.set,r=e.unset;function i(e,t,n){n&&!e.$$classCache[t]?(e.$$animate.addClass(e.$$element,t),e.$$classCache[t]=!0):!n&&e.$$classCache[t]&&(e.$$animate.removeClass(e.$$element,t),e.$$classCache[t]=!1)}function o(e,t,n){t=t?"-"+Pe(t,"-"):"",i(e,zo+t,!0===n),i(e,Lo+t,!1===n)}t.prototype.$setValidity=function(e,t,a){var s;M(t)?function(e,t,r,i){e[t]||(e[t]={});n(e[t],r,i)}(this,"$pending",e,a):function(e,t,n,i){e[t]&&r(e[t],n,i);Gi(e[t])&&(e[t]=void 0)}(this,"$pending",e,a),Z(t)?t?(r(this.$error,e,a),n(this.$$success,e,a)):(n(this.$error,e,a),r(this.$$success,e,a)):(r(this.$error,e,a),r(this.$$success,e,a)),this.$pending?(i(this,"ng-pending",!0),this.$valid=this.$invalid=void 0,o(this,"",null)):(i(this,"ng-pending",!1),this.$valid=Gi(this.$error),this.$invalid=!this.$valid,o(this,"",this.$valid)),o(this,e,s=this.$pending&&this.$pending[e]?void 0:!this.$error[e]&&(!!this.$$success[e]||null)),this.$$parentForm.$setValidity(e,s,this)}}function Gi(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var Wi=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Yi=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Xi=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Zi=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Qi=/^(\d{4,})-(\d{2})-(\d{2})$/,Ji=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Ki=/^(\d{4,})-W(\d\d)$/,eo=/^(\d{4,})-(\d\d)$/,to=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,no=Le();k("date,datetime-local,month,time,week".split(","),(function(e){no[e]=!0}));var ro={text:function(e,t,n,r,i,o){oo(e,t,n,r,i,o),io(r)},date:so("date",Qi,ao(Qi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":so("datetimelocal",Ji,ao(Ji,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:so("time",to,ao(to,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:so("week",Ki,(function(e,t){if(V(e))return e;if(F(e)){Ki.lastIndex=0;var n=Ki.exec(e);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,l=0,c=Ai(r),u=7*(i-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(r,0,c.getDate()+u,o,a,s,l)}}return NaN}),"yyyy-Www"),month:so("month",eo,ao(eo,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,r,i,o,a,s){var l;if(lo(e,t,n,r,"number"),co(r),oo(e,t,n,r,i,o),z(n.min)||n.ngMin){var c=n.min||s(n.ngMin)(e);l=uo(c),r.$validators.min=function(e,t){return r.$isEmpty(t)||M(l)||t>=l},n.$observe("min",(function(e){e!==c&&(l=uo(e),c=e,r.$validate())}))}if(z(n.max)||n.ngMax){var u=n.max||s(n.ngMax)(e),d=uo(u);r.$validators.max=function(e,t){return r.$isEmpty(t)||M(d)||t<=d},n.$observe("max",(function(e){e!==u&&(d=uo(e),u=e,r.$validate())}))}if(z(n.step)||n.ngStep){var p=n.step||s(n.ngStep)(e),f=uo(p);r.$validators.step=function(e,t){return r.$isEmpty(t)||M(f)||ho(t,l||0,f)},n.$observe("step",(function(e){e!==p&&(f=uo(e),p=e,r.$validate())}))}},url:function(e,t,n,r,i,o){oo(e,t,n,r,i,o),io(r),r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||Yi.test(n)}},email:function(e,t,n,r,i,o){oo(e,t,n,r,i,o),io(r),r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||Xi.test(n)}},radio:function(e,t,n,r){var i=!n.ngTrim||"false"!==K(n.ngTrim);M(n.name)&&t.attr("name",S());t.on("change",(function(e){var o;t[0].checked&&(o=n.value,i&&(o=K(o)),r.$setViewValue(o,e&&e.type))})),r.$render=function(){var e=n.value;i&&(e=K(e)),t[0].checked=e===r.$viewValue},n.$observe("value",r.$render)},range:function(e,t,n,r,i,o){lo(e,t,n,r,"range"),co(r),oo(e,t,n,r,i,o);var a=r.$$hasNativeValidators&&"range"===t[0].type,s=a?0:void 0,l=a?100:void 0,c=a?1:void 0,u=t[0].validity,d=z(n.min),p=z(n.max),f=z(n.step),h=r.$render;r.$render=a&&z(u.rangeUnderflow)&&z(u.rangeOverflow)?function(){h(),r.$setViewValue(t.val())}:h,d&&(s=uo(n.min),r.$validators.min=a?function(){return!0}:function(e,t){return r.$isEmpty(t)||M(s)||t>=s},g("min",(function(e){if(s=uo(e),j(r.$modelValue))return;if(a){var n=t.val();s>n&&(n=s,t.val(n)),r.$setViewValue(n)}else r.$validate()})));p&&(l=uo(n.max),r.$validators.max=a?function(){return!0}:function(e,t){return r.$isEmpty(t)||M(l)||t<=l},g("max",(function(e){if(l=uo(e),j(r.$modelValue))return;if(a){var n=t.val();l<n&&(t.val(l),n=l<s?s:l),r.$setViewValue(n)}else r.$validate()})));f&&(c=uo(n.step),r.$validators.step=a?function(){return!u.stepMismatch}:function(e,t){return r.$isEmpty(t)||M(c)||ho(t,s||0,c)},g("step",(function(e){if(c=uo(e),j(r.$modelValue))return;a?r.$viewValue!==t.val()&&r.$setViewValue(t.val()):r.$validate()})));function g(e,r){t.attr(e,n[e]);var i=n[e];n.$observe(e,(function(e){e!==i&&(i=e,r(e))}))}},checkbox:function(e,t,n,r,i,o,a,s){var l=go(s,e,"ngTrueValue",n.ngTrueValue,!0),c=go(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("change",(function(e){r.$setViewValue(t[0].checked,e&&e.type)})),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return!1===e},r.$formatters.push((function(e){return se(e,l)})),r.$parsers.push((function(e){return e?l:c}))},hidden:D,button:D,submit:D,reset:D,file:D};function io(e){e.$formatters.push((function(t){return e.$isEmpty(t)?t:t.toString()}))}function oo(e,t,n,r,i,o){var a,s=d(t[0].type);if(!i.android){var l=!1;t.on("compositionstart",(function(){l=!0})),t.on("compositionupdate",(function(e){(M(e.data)||""===e.data)&&(l=!1)})),t.on("compositionend",(function(){l=!1,c()}))}var c=function(e){if(a&&(o.defer.cancel(a),a=null),!l){var i=t.val(),c=e&&e.type;"password"===s||n.ngTrim&&"false"===n.ngTrim||(i=K(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,c)}};if(i.hasEvent("input"))t.on("input",c);else{var u=function(e,t,n){a||(a=o.defer((function(){a=null,t&&t.value===n||c(e)})))};t.on("keydown",(function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||u(e,this,this.value)})),i.hasEvent("paste")&&t.on("paste cut drop",u)}t.on("change",c),no[s]&&r.$$hasNativeValidators&&s===n.type&&t.on("keydown wheel mousedown",(function(e){if(!a){var t=this.validity,n=t.badInput,r=t.typeMismatch;a=o.defer((function(){a=null,t.badInput===n&&t.typeMismatch===r||c(e)}))}})),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function ao(e,t){return function(n,r){var i,o;if(V(n))return n;if(F(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Wi.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n)){i.shift(),o=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},k(i,(function(e,n){n<t.length&&(o[t[n]]=+e)}));var a=new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0);return o.yyyy<100&&a.setFullYear(o.yyyy),a}}return NaN}}function so(e,t,n,r){return function(i,o,a,s,l,c,u,d){lo(i,o,a,s,e),oo(0,o,a,s,l,c);var p,f,h="time"===e||"datetimelocal"===e;if(s.$parsers.push((function(n){return s.$isEmpty(n)?null:t.test(n)?w(n,p):void(s.$$parserName=e)})),s.$formatters.push((function(e){if(e&&!V(e))throw qo("datefmt","Expected `{0}` to be a date",e);if(y(e)){p=e;var t=s.$options.getOption("timezone");return t&&(f=t,p=ye(p,t,!0)),function(e,t){var n=r;h&&F(s.$options.getOption("timeSecondsFormat"))&&(n=r.replace("ss.sss",s.$options.getOption("timeSecondsFormat")).replace(/:$/,""));var i=u("date")(e,n,t);h&&s.$options.getOption("timeStripZeroSeconds")&&(i=i.replace(/(?::00)?(?:\.000)?$/,""));return i}(e,t)}return p=null,f=null,""})),z(a.min)||a.ngMin){var g=a.min||d(a.ngMin)(i),m=x(g);s.$validators.min=function(e){return!y(e)||M(m)||n(e)>=m},a.$observe("min",(function(e){e!==g&&(m=x(e),g=e,s.$validate())}))}if(z(a.max)||a.ngMax){var v=a.max||d(a.ngMax)(i),b=x(v);s.$validators.max=function(e){return!y(e)||M(b)||n(e)<=b},a.$observe("max",(function(e){e!==v&&(b=x(e),v=e,s.$validate())}))}function y(e){return e&&!(e.getTime&&e.getTime()!=e.getTime())}function x(e){return z(e)&&!V(e)?w(e)||void 0:e}function w(e,t){var r=s.$options.getOption("timezone");f&&f!==r&&(t=be(t,ve(f)));var i=n(e,t);return!isNaN(i)&&r&&(i=ye(i,r)),i}}}function lo(e,t,n,r,i){var o=t[0];(r.$$hasNativeValidators=L(o.validity))&&r.$parsers.push((function(e){var n=t.prop("validity")||{};if(!n.badInput&&!n.typeMismatch)return e;r.$$parserName=i}))}function co(e){e.$parsers.push((function(t){return e.$isEmpty(t)?null:Zi.test(t)?parseFloat(t):void(e.$$parserName="number")})),e.$formatters.push((function(t){if(!e.$isEmpty(t)){if(!q(t))throw qo("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}))}function uo(e){return z(e)&&!q(e)&&(e=parseFloat(e)),j(e)?void 0:e}function po(e){return(0|e)===e}function fo(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1<e&&e<1){var r=/e-(\d+)$/.exec(t);if(r)return Number(r[1])}return 0}return t.length-n-1}function ho(e,t,n){var r=Number(e),i=!po(r),o=!po(t),a=!po(n);if(i||o||a){var s=i?fo(r):0,l=o?fo(t):0,c=a?fo(n):0,u=Math.max(s,l,c),d=Math.pow(10,u);r*=d,t*=d,n*=d,i&&(r=Math.round(r)),o&&(t=Math.round(t)),a&&(n=Math.round(n))}return(r-t)%n==0}function go(e,t,n,r,i){var o;if(z(r)){if(!(o=e(r)).constant)throw qo("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(t)}return i}var mo=["$browser","$sniffer","$filter","$parse",function(e,t,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(ro[d(a.type)]||ro.text)(i,o,a,s[0],t,e,n,r)}}}}],vo=function(){var e={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(e){this.setAttribute("value",e)}};return{restrict:"E",priority:200,compile:function(t,n){if("hidden"===d(n.type))return{pre:function(t,n,r,i){var o=n[0];o.parentNode&&o.parentNode.insertBefore(o,o.nextSibling),Object.defineProperty&&Object.defineProperty(o,"value",e)}}}}},bo=/^(true|false|\d+)$/,yo=function(){function e(e,t,n){var r=z(n)?n:9===o?"":null;e.prop("value",r),t.$set("value",n)}return{restrict:"A",priority:100,compile:function(t,n){return bo.test(n.ngValue)?function(t,n,r){e(n,r,t.$eval(r.ngValue))}:function(t,n,r){t.$watch(r.ngValue,(function(t){e(n,r,t)}))}}}},xo=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,r){e.$$addBindingInfo(n,r.ngBind),n=n[0],t.$watch(r.ngBind,(function(e){n.textContent=Be(e)}))}}}}],wo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,r,i){var o=e(r.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(r,o.expressions),r=r[0],i.$observe("ngBindTemplate",(function(e){r.textContent=M(e)?"":e}))}}}}],ko=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(r,i){var o=t(i.ngBindHtml),a=t(i.ngBindHtml,(function(t){return e.valueOf(t)}));return n.$$addBindingClass(r),function(t,r,i){n.$$addBindingInfo(r,i.ngBindHtml),t.$watch(a,(function(){var n=o(t);r.html(e.getTrustedHtml(n)||"")}))}}}}],Ao=I({restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push((function(){e.$eval(n.ngChange)}))}});function Eo(e,t){var n;return e="ngClass"+e,["$parse",function(a){return{restrict:"AC",link:function(s,l,c){var u,d=l.data("$classCounts"),p=!0;function f(e,t){var n=[];return k(e,(function(e){(t>0||d[e])&&(d[e]=(d[e]||0)+t,d[e]===+(t>0)&&n.push(e))})),n.join(" ")}d||(d=Le(),l.data("$classCounts",d)),"ngClass"!==e&&(n||(n=a("$index",(function(e){return 1&e}))),s.$watch(n,(function(e){e===t?(n=f(i(n=u),1),c.$addClass(n)):function(e){e=f(i(e),-1),c.$removeClass(e)}(u);var n;p=e}))),s.$watch(a(c[e],o),(function(e){p===t&&function(e,t){var n=i(e),o=i(t),a=r(n,o),s=r(o,n),l=f(a,-1),u=f(s,1);c.$addClass(u),c.$removeClass(l)}(u,e);u=e}))}}}];function r(e,t){if(!e||!e.length)return[];if(!t||!t.length)return e;var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],o=0;o<t.length;o++)if(i===t[o])continue e;n.push(i)}return n}function i(e){return e&&e.split(" ")}function o(e){if(!e)return e;var t=e;return U(e)?t=e.map(o).join(" "):L(e)?t=Object.keys(e).filter((function(t){return e[t]})).join(" "):F(e)||(t=e+""),t}}var So=Eo("",!0),$o=Eo("Odd",0),Co=Eo("Even",1),_o=Ni({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Oo=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],To={},jo={blur:!0,focus:!0};function Po(e,t,n,r,i,o){return{restrict:"A",compile:function(a,s){var l=e(s[r]);return function(e,r){r.on(i,(function(r){var i=function(){l(e,{$event:r})};if(t.$$phase)if(o)e.$evalAsync(i);else try{i()}catch(e){n(e)}else e.$apply(i)}))}}}}k("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),(function(e){var t=yn("ng-"+e);To[t]=["$parse","$rootScope","$exceptionHandler",function(n,r,i){return Po(n,r,i,t,e,jo[e])}]}));var Do=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,l,c;n.$watch(i.ngIf,(function(n){n?l||a((function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",i.ngIf),s={clone:n},e.enter(n,r.parent(),r)})):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),s&&(c=ze(s.clone),e.leave(c).done((function(e){!1!==e&&(c=null)})),s=null))}))}}}],Ro=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:y.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,l,c,u){var d,p,f,h=0,g=function(){p&&(p.remove(),p=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).done((function(e){!1!==e&&(p=null)})),p=f,f=null)};r.$watch(o,(function(o){var l=function(e){!1===e||!z(s)||s&&!r.$eval(s)||t()},p=++h;o?(e(o,!0).then((function(e){if(!r.$$destroyed&&p===h){var t=r.$new();c.template=e;var s=u(t,(function(e){g(),n.enter(e,null,i).done(l)}));f=s,(d=t).$emit("$includeContentLoaded",o),r.$eval(a)}}),(function(){r.$$destroyed||p===h&&(g(),r.$emit("$includeContentError",o))})),r.$emit("$includeContentRequested",o)):(g(),c.template=null)}))}}}}],Io=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){if(m.call(r[0]).match(/SVG/))return r.empty(),void t(ut(o.template,e.document).childNodes)(n,(function(e){r.append(e)}),{futureParentElement:r});r.html(o.template),t(r.contents())(n)}}}],No=Ni({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Mo=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,r){var i=n.ngList||", ",o="false"!==n.ngTrim,a=o?K(i):i;r.$parsers.push((function(e){if(!M(e)){var t=[];return e&&k(e.split(a),(function(e){e&&t.push(o?K(e):e)})),t}})),r.$formatters.push((function(e){if(U(e))return e.join(i)})),r.$isEmpty=function(e){return!e||!e.length}}}},zo="ng-valid",Lo="ng-invalid",Bo="ng-pristine",Fo="ng-dirty",qo=i("ngModel");function Vo(e,t,n,r,i,o,a,s,l){var c;this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=l(n.name||"",!1)(e),this.$$parentForm=Li,this.$options=Uo,this.$$updateEvents="",this.$$updateEventHandler=this.$$updateEventHandler.bind(this),this.$$parsedNgModel=i(n.ngModel),this.$$parsedNgModelAssign=this.$$parsedNgModel.assign,this.$$ngModelGet=this.$$parsedNgModel,this.$$ngModelSet=this.$$parsedNgModelAssign,this.$$pendingDebounce=null,this.$$parserValid=void 0,this.$$parserName="parse",this.$$currentValidationRunId=0,this.$$scope=e,this.$$rootScope=e.$root,this.$$attr=n,this.$$element=r,this.$$animate=o,this.$$timeout=a,this.$$parse=i,this.$$q=s,this.$$exceptionHandler=t,Ui(this),(c=this).$$scope.$watch((function(e){var t=c.$$ngModelGet(e);return t===c.$modelValue||c.$modelValue!=c.$modelValue&&t!=t||c.$$setModelValue(t),t}))}Vo.$inject=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$q","$interpolate"],Vo.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var e=this.$$parse(this.$$attr.ngModel+"()"),t=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(t){var n=this.$$parsedNgModel(t);return G(n)&&(n=e(t)),n},this.$$ngModelSet=function(e,n){G(this.$$parsedNgModel(e))?t(e,{$$$p:n}):this.$$parsedNgModelAssign(e,n)}}else if(!this.$$parsedNgModel.assign)throw qo("nonassign","Expression '{0}' is non-assignable. Element: {1}",this.$$attr.ngModel,xe(this.$$element))},$render:D,$isEmpty:function(e){return M(e)||""===e||null===e||e!=e},$$updateEmptyClasses:function(e){this.$isEmpty(e)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,"ng-not-empty"))},$setPristine:function(){this.$dirty=!1,this.$pristine=!0,this.$$animate.removeClass(this.$$element,Fo),this.$$animate.addClass(this.$$element,Bo)},$setDirty:function(){this.$dirty=!0,this.$pristine=!1,this.$$animate.removeClass(this.$$element,Bo),this.$$animate.addClass(this.$$element,Fo),this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1,this.$untouched=!0,this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=!0,this.$untouched=!1,this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce),this.$viewValue=this.$$lastCommittedViewValue,this.$render()},$validate:function(){if(!j(this.$modelValue)){var e=this.$$lastCommittedViewValue,t=this.$$rawModelValue,n=this.$valid,r=this.$modelValue,i=this.$options.getOption("allowInvalid"),o=this;this.$$runValidators(t,e,(function(e){i||n===e||(o.$modelValue=e?t:void 0,o.$modelValue!==r&&o.$$writeModelToScope())}))}},$$runValidators:function(e,t,n){this.$$currentValidationRunId++;var r,i,o=this.$$currentValidationRunId,a=this;(function(){var e=a.$$parserName;if(!M(a.$$parserValid))return a.$$parserValid||(k(a.$validators,(function(e,t){s(t,null)})),k(a.$asyncValidators,(function(e,t){s(t,null)}))),s(e,a.$$parserValid),a.$$parserValid;s(e,null);return!0})()?!function(){var n=!0;if(k(a.$validators,(function(r,i){var o=Boolean(r(e,t));n=n&&o,s(i,o)})),!n)return k(a.$asyncValidators,(function(e,t){s(t,null)})),!1;return!0}()?l(!1):(r=[],i=!0,k(a.$asyncValidators,(function(n,o){var a=n(e,t);if(!Q(a))throw qo("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",a);s(o,void 0),r.push(a.then((function(){s(o,!0)}),(function(){i=!1,s(o,!1)})))})),r.length?a.$$q.all(r).then((function(){l(i)}),D):l(!0)):l(!1);function s(e,t){o===a.$$currentValidationRunId&&a.$setValidity(e,t)}function l(e){o===a.$$currentValidationRunId&&n(e)}},$commitViewValue:function(){var e=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce),(this.$$lastCommittedViewValue!==e||""===e&&this.$$hasNativeValidators)&&(this.$$updateEmptyClasses(e),this.$$lastCommittedViewValue=e,this.$pristine&&this.$setDirty(),this.$$parseAndValidate())},$$parseAndValidate:function(){var e=this.$$lastCommittedViewValue,t=this;if(this.$$parserValid=!M(e)||void 0,this.$setValidity(this.$$parserName,null),this.$$parserName="parse",this.$$parserValid)for(var n=0;n<this.$parsers.length;n++)if(M(e=this.$parsers[n](e))){this.$$parserValid=!1;break}j(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));var r=this.$modelValue,i=this.$options.getOption("allowInvalid");function o(){t.$modelValue!==r&&t.$$writeModelToScope()}this.$$rawModelValue=e,i&&(this.$modelValue=e,o()),this.$$runValidators(e,this.$$lastCommittedViewValue,(function(n){i||(t.$modelValue=n?e:void 0,o())}))},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue),k(this.$viewChangeListeners,(function(e){try{e()}catch(e){this.$$exceptionHandler(e)}}),this)},$setViewValue:function(e,t){this.$viewValue=e,this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(t)},$$debounceViewValueCommit:function(e){var t=this.$options.getOption("debounce");q(t[e])?t=t[e]:q(t.default)&&-1===this.$options.getOption("updateOn").indexOf(e)?t=t.default:q(t["*"])&&(t=t["*"]),this.$$timeout.cancel(this.$$pendingDebounce);var n=this;t>0?this.$$pendingDebounce=this.$$timeout((function(){n.$commitViewValue()}),t):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply((function(){n.$commitViewValue()}))},$overrideModelOptions:function(e){this.$options=this.$options.createChild(e),this.$$setUpdateOnEvents()},$processModelValue:function(){var e=this.$$format();this.$viewValue!==e&&(this.$$updateEmptyClasses(e),this.$viewValue=this.$$lastCommittedViewValue=e,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,D))},$$format:function(){for(var e=this.$formatters,t=e.length,n=this.$modelValue;t--;)n=e[t](n);return n},$$setModelValue:function(e){this.$modelValue=this.$$rawModelValue=e,this.$$parserValid=void 0,this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler),this.$$updateEvents=this.$options.getOption("updateOn"),this.$$updateEvents&&this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(e){this.$$debounceViewValueCommit(e&&e.type)}},Hi({clazz:Vo,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]}});var Uo,Ho=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Vo,priority:1,compile:function(t){return t.addClass(Bo).addClass("ng-untouched").addClass(zo),{pre:function(e,t,n,r){var i=r[0],o=r[1]||i.$$parentForm,a=r[2];a&&(i.$options=a.$options),i.$$initGetterSetters(),o.$addControl(i),n.$observe("name",(function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)})),e.$on("$destroy",(function(){i.$$parentForm.$removeControl(i)}))},post:function(t,n,r,i){var o=i[0];function a(){o.$setTouched()}o.$$setUpdateOnEvents(),n.on("blur",(function(){o.$touched||(e.$$phase?t.$evalAsync(a):t.$apply(a))}))}}}}}],Go=/(\s+|^)default(\s+|$)/;function Wo(e){this.$$options=e}Wo.prototype={getOption:function(e){return this.$$options[e]},createChild:function(e){var t=!1;return k(e=_({},e),(function(n,r){"$inherit"===n?"*"===r?t=!0:(e[r]=this.$$options[r],"updateOn"===r&&(e.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===r&&(e.updateOnDefault=!1,e[r]=K(n.replace(Go,(function(){return e.updateOnDefault=!0," "}))))}),this),t&&(delete e["*"],Xo(e,this.$$options)),Xo(e,Uo.$$options),new Wo(e)}},Uo=new Wo({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var Yo=function(){function e(e,t){this.$$attrs=e,this.$$scope=t}return e.$inject=["$attrs","$scope"],e.prototype={$onInit:function(){var e=this.parentCtrl?this.parentCtrl.$options:Uo,t=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=e.createChild(t)}},{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:e}};function Xo(e,t){k(t,(function(t,n){z(e[n])||(e[n]=t)}))}var Zo=Ni({terminal:!0,priority:1e3}),Qo=i("ngOptions"),Jo=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Ko=["$compile","$document","$parse",function(t,n,r){var i=e.document.createElement("option"),o=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,r){r[0].registerOption=D},post:function(e,s,l,c){for(var u=c[0],d=c[1],p=l.multiple,f=0,h=s.children(),g=h.length;f<g;f++)if(""===h[f].value){u.hasEmptyOption=!0,u.emptyOption=h.eq(f);break}s.empty();var m,v=!!u.emptyOption;a(i.cloneNode(!1)).val("?");var b=function(e,t,n){var i=e.match(Jo);if(!i)throw Qo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,xe(t));var o=i[5]||i[7],a=i[6],s=/ as /.test(i[0])&&i[1],l=i[9],c=r(i[2]?i[1]:o),u=s&&r(s)||c,d=l&&r(l),p=l?function(e,t){return d(n,t)}:function(e){return zt(e)},f=function(e,t){return p(e,y(e,t))},h=r(i[2]||i[1]),g=r(i[3]||""),m=r(i[4]||""),v=r(i[8]),b={},y=a?function(e,t){return b[a]=t,b[o]=e,b}:function(e){return b[o]=e,b};function x(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function k(e){var t;if(!a&&w(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n);return t}return{trackBy:l,getTrackByValue:f,getWatchables:r(v,(function(e){for(var t=[],r=k(e=e||[]),o=r.length,a=0;a<o;a++){var s=e===r?a:r[a],l=e[s],c=y(l,s),u=p(l,c);if(t.push(u),i[2]||i[1]){var d=h(n,c);t.push(d)}if(i[4]){var f=m(n,c);t.push(f)}}return t})),getOptions:function(){for(var e=[],t={},r=v(n)||[],i=k(r),o=i.length,a=0;a<o;a++){var s=r===i?a:i[a],c=r[s],d=y(c,s),b=u(n,d),w=p(b,d),A=new x(w,b,h(n,d),g(n,d),m(n,d));e.push(A),t[w]=A}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[f(e)]},getViewValueFromOption:function(e){return l?oe(e.viewValue):e.viewValue}}}}}(l.ngOptions,s,e),y=n[0].createDocumentFragment();function x(e,t){var n=i.cloneNode(!1);t.appendChild(n),function(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label);t.value=e.selectValue}(e,n)}function A(e){var t=m.getOptionFromViewValue(e),n=t&&t.element;return n&&!n.selected&&(n.selected=!0),t}u.generateUnknownOptionValue=function(e){return"?"},p?(u.writeValue=function(e){if(m){var t=e&&e.map(A)||[];m.items.forEach((function(e){e.element.selected&&!re(t,e)&&(e.element.selected=!1)}))}},u.readValue=function(){var e=s.val()||[],t=[];return k(e,(function(e){var n=m.selectValueMap[e];n&&!n.disabled&&t.push(m.getViewValueFromOption(n))})),t},b.trackBy&&e.$watchCollection((function(){if(U(d.$viewValue))return d.$viewValue.map((function(e){return b.getTrackByValue(e)}))}),(function(){d.$render()}))):(u.writeValue=function(e){if(m){var t=s[0].options[s[0].selectedIndex],n=m.getOptionFromViewValue(e);t&&t.removeAttribute("selected"),n?(s[0].value!==n.selectValue&&(u.removeUnknownOption(),s[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):u.selectUnknownOrEmptyOption(e)}},u.readValue=function(){var e=m.selectValueMap[s.val()];return e&&!e.disabled?(u.unselectEmptyOption(),u.removeUnknownOption(),m.getViewValueFromOption(e)):null},b.trackBy&&e.$watch((function(){return b.getTrackByValue(d.$viewValue)}),(function(){d.$render()}))),v&&(t(u.emptyOption)(e),s.prepend(u.emptyOption),8===u.emptyOption[0].nodeType?(u.hasEmptyOption=!1,u.registerOption=function(e,t){""===t.val()&&(u.hasEmptyOption=!0,u.emptyOption=t,u.emptyOption.removeClass("ng-scope"),d.$render(),t.on("$destroy",(function(){var e=u.$isEmptyOptionSelected();u.hasEmptyOption=!1,u.emptyOption=void 0,e&&d.$render()})))}):u.emptyOption.removeClass("ng-scope")),e.$watchCollection(b.getWatchables,(function(){var e=m&&u.readValue();if(m)for(var t=m.items.length-1;t>=0;t--){var n=m.items[t];z(n.group)?_t(n.element.parentNode):_t(n.element)}m=b.getOptions();var r={};if(m.items.forEach((function(e){var t;z(e.group)?((t=r[e.group])||(t=o.cloneNode(!1),y.appendChild(t),t.label=null===e.group?"null":e.group,r[e.group]=t),x(e,t)):x(e,y)})),s[0].appendChild(y),d.$render(),!d.$isEmpty(e)){var i=u.readValue();(b.trackBy||p?se(e,i):e===i)||(d.$setViewValue(i),d.$render())}}))}}}}],ea=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(o,a,s){var l,c=s.count,u=s.$attr.when&&a.attr(s.$attr.when),p=s.offset||0,f=o.$eval(u)||{},h={},g=t.startSymbol(),m=t.endSymbol(),v=g+c+"-"+p+m,b=y.noop;function x(e){a.text(e||"")}k(s,(function(e,t){var n=i.exec(t);if(n){var r=(n[1]?"-":"")+d(n[2]);f[r]=a.attr(s.$attr[t])}})),k(f,(function(e,n){h[n]=t(e.replace(r,v))})),o.$watch(c,(function(t){var r=parseFloat(t),i=j(r);if(i||r in f||(r=e.pluralCat(r-p)),!(r===l||i&&j(l))){b();var a=h[r];M(a)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+r+"' in "+u),b=D,x()):b=o.$watch(a,x),l=r}}))}}}],ta=i("ngRef"),na=["$parse",function(e){return{priority:-1,restrict:"A",compile:function(t,n){var r=yn(ne(t)),i=e(n.ngRef),o=i.assign||function(){throw ta("nonassign",'Expression in ngRef="{0}" is non-assignable!',n.ngRef)};return function(e,t,a){var s;if(a.hasOwnProperty("ngRefRead")){if("$element"===a.ngRefRead)s=t;else if(!(s=t.data("$"+a.ngRefRead+"Controller")))throw ta("noctrl",'The controller for ngRefRead="{0}" could not be found on ngRef="{1}"',a.ngRefRead,n.ngRef)}else s=t.data("$"+r+"Controller");o(e,s=s||t),t.on("$destroy",(function(){i(e)===s&&o(e,null)}))}}}}],ra=["$parse","$animate","$compile",function(e,t,n){var r=i("ngRepeat"),o=function(e,t,n,r,i,o,a){e[n]=r,i&&(e[i]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))},a=function(e){return e.clone[0]},s=function(e){return e.clone[e.clone.length-1]},l=function(e,t,n){return zt(n)},c=function(e,t){return t};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,d){var p=d.ngRepeat,f=n.$$createComment("end ngRepeat",p),h=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!h)throw r("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var g=h[1],m=h[2],v=h[3],b=h[4];if(!(h=g.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw r("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",g);var y,x=h[3]||h[1],A=h[2];if(v&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw r("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",v);if(b){var E={$id:zt},S=e(b);y=function(e,t,n,r){return A&&(E[A]=t),E[x]=n,E.$index=r,S(e,E)}}return function(e,n,i,d,h){var g=Le();e.$watchCollection(m,(function(i){var d,m,b,S,$,C,_,O,T,j,P,D,R=n[0],I=Le();if(v&&(e[v]=i),w(i))T=i,O=y||l;else for(var N in O=y||c,T=[],i)u.call(i,N)&&"$"!==N.charAt(0)&&T.push(N);for(S=T.length,P=new Array(S),d=0;d<S;d++)if($=i===T?d:T[d],C=i[$],_=O(e,$,C,d),g[_])j=g[_],delete g[_],I[_]=j,P[d]=j;else{if(I[_])throw k(P,(function(e){e&&e.scope&&(g[e.id]=e)})),r("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,_,C);P[d]={id:_,scope:void 0,clone:void 0},I[_]=!0}for(var M in E&&(E[x]=void 0),g){if(D=ze((j=g[M]).clone),t.leave(D),D[0].parentNode)for(d=0,m=D.length;d<m;d++)D[d].$$NG_REMOVED=!0;j.scope.$destroy()}for(d=0;d<S;d++)if($=i===T?d:T[d],C=i[$],(j=P[d]).scope){b=R;do{b=b.nextSibling}while(b&&b.$$NG_REMOVED);a(j)!==b&&t.move(ze(j.clone),null,R),R=s(j),o(j.scope,d,x,C,A,$,S)}else h((function(e,n){j.scope=n;var r=f.cloneNode(!1);e[e.length++]=r,t.enter(e,null,R),R=r,j.clone=e,I[j.id]=j,o(j.scope,d,x,C,A,$,S)}));g=I}))}}}}],ia=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngShow,(function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],oa=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngHide,(function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],aa=Ni((function(e,t,n){e.$watchCollection(n.ngStyle,(function(e,n){n&&e!==n&&k(n,(function(e,n){t.css(n,"")})),e&&t.css(e)}))})),sa=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,o){var a=i.ngSwitch||i.on,s=[],l=[],c=[],u=[],d=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(a,(function(n){for(var r,i;c.length;)e.cancel(c.pop());for(r=0,i=u.length;r<i;++r){var a=ze(l[r].clone);u[r].$destroy(),(c[r]=e.leave(a)).done(d(c,r))}l.length=0,u.length=0,(s=o.cases["!"+n]||o.cases["?"])&&k(s,(function(n){n.transclude((function(r,i){u.push(i);var o=n.element;r[r.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:r};l.push(a),e.enter(r,o.parent(),o)}))}))}))}}}],la=Ni({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){k(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter((function(e,t,n){return n[t-1]!==e})),(function(e){r.cases["!"+e]=r.cases["!"+e]||[],r.cases["!"+e].push({transclude:i,element:t})}))}}),ca=Ni({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),ua=i("ngTransclude"),da=["$compile",function(e){return{restrict:"EAC",compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,r,i,o){if(!o)throw ua("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",xe(t));r.ngTransclude===r.$attr.ngTransclude&&(r.ngTransclude="");var a=r.ngTransclude||r.ngTranscludeSlot;function s(){n(e,(function(e){t.append(e)}))}o((function(e,n){e.length&&function(e){for(var t=0,n=e.length;t<n;t++){var r=e[t];if(r.nodeType!==Fe||r.nodeValue.trim())return!0}}(e)?t.append(e):(s(),n.$destroy())}),null,a),a&&!o.isSlotFilled(a)&&s()}}}}],pa=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var r=n.id,i=t[0].text;e.put(r,i)}}}}],fa={$setViewValue:D,$render:D};function ha(e,t){e.prop("selected",t),e.attr("selected",t)}var ga=["$element","$scope",function(t,n){var r=this,i=new Ft;r.selectValueMap={},r.ngModelCtrl=fa,r.multiple=!1,r.unknownOption=a(e.document.createElement("option")),r.hasEmptyOption=!1,r.emptyOption=void 0,r.renderUnknownOption=function(e){var n=r.generateUnknownOptionValue(e);r.unknownOption.val(n),t.prepend(r.unknownOption),ha(r.unknownOption,!0),t.val(n)},r.updateUnknownOption=function(e){var n=r.generateUnknownOptionValue(e);r.unknownOption.val(n),ha(r.unknownOption,!0),t.val(n)},r.generateUnknownOptionValue=function(e){return"? "+zt(e)+" ?"},r.removeUnknownOption=function(){r.unknownOption.parent()&&r.unknownOption.remove()},r.selectEmptyOption=function(){r.emptyOption&&(t.val(""),ha(r.emptyOption,!0))},r.unselectEmptyOption=function(){r.hasEmptyOption&&ha(r.emptyOption,!1)},n.$on("$destroy",(function(){r.renderUnknownOption=D})),r.readValue=function(){var e=t.val(),n=e in r.selectValueMap?r.selectValueMap[e]:e;return r.hasOption(n)?n:null},r.writeValue=function(e){var n=t[0].options[t[0].selectedIndex];if(n&&ha(a(n),!1),r.hasOption(e)){r.removeUnknownOption();var i=zt(e);t.val(i in r.selectValueMap?i:e);var o=t[0].options[t[0].selectedIndex];ha(a(o),!0)}else r.selectUnknownOrEmptyOption(e)},r.addOption=function(e,t){if(8!==t[0].nodeType){Me(e,'"option value"'),""===e&&(r.hasEmptyOption=!0,r.emptyOption=t);var n=i.get(e)||0;i.set(e,n+1),s()}},r.removeOption=function(e){var t=i.get(e);t&&(1===t?(i.delete(e),""===e&&(r.hasEmptyOption=!1,r.emptyOption=void 0)):i.set(e,t-1))},r.hasOption=function(e){return!!i.get(e)},r.$hasEmptyOption=function(){return r.hasEmptyOption},r.$isUnknownOptionSelected=function(){return t[0].options[0]===r.unknownOption[0]},r.$isEmptyOptionSelected=function(){return r.hasEmptyOption&&t[0].options[t[0].selectedIndex]===r.emptyOption[0]},r.selectUnknownOrEmptyOption=function(e){null==e&&r.emptyOption?(r.removeUnknownOption(),r.selectEmptyOption()):r.unknownOption.parent().length?r.updateUnknownOption(e):r.renderUnknownOption(e)};var o=!1;function s(){o||(o=!0,n.$$postDigest((function(){o=!1,r.ngModelCtrl.$render()})))}var l=!1;function c(e){l||(l=!0,n.$$postDigest((function(){n.$$destroyed||(l=!1,r.ngModelCtrl.$setViewValue(r.readValue()),e&&r.ngModelCtrl.$render())})))}r.registerOption=function(e,t,n,i,o){var a,l;n.$attr.ngValue?n.$observe("value",(function(e){var n,i=t.prop("selected");z(l)&&(r.removeOption(a),delete r.selectValueMap[l],n=!0),l=zt(e),a=e,r.selectValueMap[l]=e,r.addOption(e,t),t.attr("value",l),n&&i&&c()})):i?n.$observe("value",(function(e){var n;r.readValue();var i=t.prop("selected");z(a)&&(r.removeOption(a),n=!0),a=e,r.addOption(e,t),n&&i&&c()})):o?e.$watch(o,(function(e,i){n.$set("value",e);var o=t.prop("selected");i!==e&&r.removeOption(i),r.addOption(e,t),i&&o&&c()})):r.addOption(n.value,t);n.$observe("disabled",(function(e){("true"===e||e&&t.prop("selected"))&&(r.multiple?c(!0):(r.ngModelCtrl.$setViewValue(null),r.ngModelCtrl.$render()))})),t.on("$destroy",(function(){var e=r.readValue(),t=n.value;r.removeOption(t),s(),(r.multiple&&e&&-1!==e.indexOf(t)||e===t)&&c(!0)}))}}],ma=function(){return{restrict:"E",require:["select","?ngModel"],controller:ga,priority:1,link:{pre:function(e,t,n,r){var i=r[0],o=r[1];if(!o)return void(i.registerOption=D);if(i.ngModelCtrl=o,t.on("change",(function(){i.removeUnknownOption(),e.$apply((function(){o.$setViewValue(i.readValue())}))})),n.multiple){i.multiple=!0,i.readValue=function(){var e=[];return k(t.find("option"),(function(t){if(t.selected&&!t.disabled){var n=t.value;e.push(n in i.selectValueMap?i.selectValueMap[n]:n)}})),e},i.writeValue=function(e){k(t.find("option"),(function(t){var n=!!e&&(re(e,t.value)||re(e,i.selectValueMap[t.value]));n!==t.selected&&ha(a(t),n)}))};var s,l=NaN;e.$watch((function(){l!==o.$viewValue||se(s,o.$viewValue)||(s=qe(o.$viewValue),o.$render()),l=o.$viewValue})),o.$isEmpty=function(e){return!e||0===e.length}}},post:function(e,t,n,r){var i=r[1];if(!i)return;var o=r[0];i.$render=function(){o.writeValue(i.$viewValue)}}}}},va=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var r,i;return z(n.ngValue)||(z(n.value)?r=e(n.value,!0):(i=e(t.text(),!0))||n.$set("value",t.text())),function(e,t,n){var o=t.parent(),a=o.data("$selectController")||o.parent().data("$selectController");a&&a.registerOption(e,t,n,r,i)}}}}],ba=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,i){if(i){var o=r.hasOwnProperty("required")||e(r.ngRequired)(t);r.ngRequired||(r.required=!0),i.$validators.required=function(e,t){return!o||!i.$isEmpty(t)},r.$observe("required",(function(e){o!==e&&(o=e,i.$validate())}))}}}}],ya=["$parse",function(e){return{restrict:"A",require:"?ngModel",compile:function(t,n){var r,i;return n.ngPattern&&(r=n.ngPattern,i="/"===n.ngPattern.charAt(0)&&c.test(n.ngPattern)?function(){return n.ngPattern}:e(n.ngPattern)),function(e,t,n,o){if(o){var a=n.pattern;n.ngPattern?a=i(e):r=n.pattern;var s=ka(a,r,t);n.$observe("pattern",(function(e){var n=s;s=ka(e,r,t),(n&&n.toString())!==(s&&s.toString())&&o.$validate()})),o.$validators.pattern=function(e,t){return o.$isEmpty(t)||M(s)||s.test(t)}}}}}}],xa=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,i){if(i){var o=r.maxlength||e(r.ngMaxlength)(t),a=Aa(o);r.$observe("maxlength",(function(e){o!==e&&(a=Aa(e),o=e,i.$validate())})),i.$validators.maxlength=function(e,t){return a<0||i.$isEmpty(t)||t.length<=a}}}}}],wa=["$parse",function(e){return{restrict:"A",require:"?ngModel",link:function(t,n,r,i){if(i){var o=r.minlength||e(r.ngMinlength)(t),a=Aa(o)||-1;r.$observe("minlength",(function(e){o!==e&&(a=Aa(e)||-1,o=e,i.$validate())})),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=a}}}}}];function ka(e,t,n){if(e){if(F(e)&&(e=new RegExp("^"+e+"$")),!e.test)throw i("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",t,e,xe(n));return e}}function Aa(e){var t=T(e);return j(t)?-1:t}e.angular.bootstrap?e.console&&console.log("WARNING: Tried to load AngularJS more than once."):(!function(){var t;if(!De){var n=ce();(s=M(n)?e.jQuery:n?e[n]:void 0)&&s.fn.on?(a=s,_(s.fn,{scope:Tt.scope,isolateScope:Tt.isolateScope,controller:Tt.controller,injector:Tt.injector,inheritedData:Tt.inheritedData})):a=pt,t=a.cleanData,a.cleanData=function(e){for(var n,r,i=0;null!=(r=e[i]);i++)(n=(a._data(r)||{}).events)&&n.$destroy&&a(r).triggerHandler("$destroy");t(e)},y.element=a,De=!0}}(),function(t){_(t,{errorHandlingConfig:n,bootstrap:_e,copy:oe,extend:_,merge:O,equals:se,element:a,forEach:k,injector:Qt,noop:D,bind:pe,toJson:he,fromJson:ge,identity:R,isUndefined:M,isDefined:z,isString:F,isFunction:G,isObject:L,isNumber:q,isElement:te,isArray:U,version:Ue,isDate:V,callbacks:{$$counter:0},getTestability:Te,reloadWithDebugInfo:Oe,UNSAFE_restoreLegacyJqLiteXHTMLReplacement:Re,$$minErr:i,$$csp:le,$$encodeUriSegment:Ae,$$encodeUriQuery:Ee,$$lowercase:d,$$stringify:Be,$$uppercase:p}),(l=function(e){var t=i("$injector"),n=i("ng");function r(e,t,n){return e[t]||(e[t]=n())}var o=r(e,"angular",Object);return o.$$minErr=o.$$minErr||i,r(o,"module",(function(){var e={};return function(i,o,a){var s={};return function(e,t){if("hasOwnProperty"===e)throw n("badname","hasOwnProperty is not a valid {0} name",t)}(i,"module"),o&&e.hasOwnProperty(i)&&(e[i]=null),r(e,i,(function(){if(!o)throw t("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var e=[],r=[],l=[],c=d("$injector","invoke","push",r),u={_invokeQueue:e,_configBlocks:r,_runBlocks:l,info:function(e){if(z(e)){if(!L(e))throw n("aobj","Argument '{0}' must be an object","value");return s=e,this}return s},requires:o,name:i,provider:p("$provide","provider"),factory:p("$provide","factory"),service:p("$provide","service"),value:d("$provide","value"),constant:d("$provide","constant","unshift"),decorator:p("$provide","decorator",r),animation:p("$animateProvider","register"),filter:p("$filterProvider","register"),controller:p("$controllerProvider","register"),directive:p("$compileProvider","directive"),component:p("$compileProvider","component"),config:c,run:function(e){return l.push(e),this}};return a&&c(a),u;function d(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),u}}function p(t,n,r){return r||(r=e),function(e,o){return o&&G(o)&&(o.$$moduleName=i),r.push([t,n,arguments]),u}}}))}}))}(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:qr}),e.provider("$compile",gn).directive({a:Mi,input:mo,textarea:mo,form:qi,script:pa,select:ma,option:va,ngBind:xo,ngBindHtml:ko,ngBindTemplate:wo,ngClass:So,ngClassEven:Co,ngClassOdd:$o,ngCloak:_o,ngController:Oo,ngForm:Vi,ngHide:oa,ngIf:Do,ngInclude:Ro,ngInit:No,ngNonBindable:Zo,ngPluralize:ea,ngRef:na,ngRepeat:ra,ngShow:ia,ngStyle:aa,ngSwitch:sa,ngSwitchWhen:la,ngSwitchDefault:ca,ngOptions:Ko,ngTransclude:da,ngModel:Ho,ngList:Mo,ngChange:Ao,pattern:ya,ngPattern:ya,required:ba,ngRequired:ba,minlength:wa,ngMinlength:wa,maxlength:xa,ngMaxlength:xa,ngValue:yo,ngModelOptions:Yo}).directive({ngInclude:Io,input:vo}).directive(zi).directive(To),e.provider({$anchorScroll:Jt,$animate:on,$animateCss:ln,$$animateJs:nn,$$animateQueue:rn,$$AnimateRunner:sn,$$animateAsyncRun:an,$browser:un,$cacheFactory:dn,$controller:Sn,$document:$n,$$isDocumentHidden:Cn,$exceptionHandler:_n,$filter:fi,$$forceReflow:On,$interpolate:Wn,$interval:Xn,$$intervalFactory:Zn,$http:Vn,$httpParamSerializer:Nn,$httpParamSerializerJQLike:Mn,$httpBackend:Hn,$xhrFactory:Un,$jsonpCallbacks:Qn,$location:hr,$log:gr,$parse:Dr,$rootScope:Fr,$q:Rr,$$q:Ir,$sce:Xr,$sceDelegate:Yr,$sniffer:Zr,$$taskTrackerFactory:Qr,$templateCache:pn,$templateRequest:ei,$$testability:ti,$timeout:ri,$window:ui,$$rAF:Br,$$jqLite:Mt,$$Map:qt,$$cookieReader:pi})}]).info({angularVersion:"1.8.3"})}(y),y.module("ngLocale",[],["$provide",function(e){var t="one",n="other";e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,r){var i=0|e,o=function(e,t){var n=t;void 0===n&&(n=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3));var r=Math.pow(10,n);return{v:n,f:(e*r|0)%r}}(e,r);return 1==i&&0==o.v?t:n}})}]),a((function(){Ce(e.document,_e)})))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(window.angular.element("<style>").text('@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}'))},function(e,t,n){"use strict";n(210);const r=n(33),i=n(8);window.jQuery=r,n(217),n(218),n(219),n(225),n(227),i.module("dbt",["ngRoute","ui.router","hc.marked"]).config(["markedProvider","$locationProvider",function(e,t){e.setOptions({gfm:!0,sanitize:!0}),e.setRenderer({table:function(e,t){return"<table class='table'><thead>"+e+"</thead><tbody>"+t+"</tbody></table>"}}),t.html5Mode({enabled:!1}),r(document).tooltip({selector:'[data-toggle="tooltip"]',placement:function(e,t){return r(t).attr("data-placement")?r(t).attr("data-placement"):"auto"},container:"body"}),r(document).ready((function(){r("[data-toggle=popover]").popover({container:"body",html:!0})}))}])},function(e,t,n){var r=n(211);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){var r=n(212);(e.exports=n(39)(!1)).push([e.i,'@media (max-width: 960px){[data-large]{display:none !important}}@media (min-width: 961px){[data-small]{display:none !important}}@media screen{[data-print]{display:none !important}}@media print{[data-screen]{display:none !important}}html.touchevents [data-click]{display:none !important}html.no-touchevents [data-touch]{display:none !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.6;color:#5e666c;background-color:#f9fafb}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#0bb;text-decoration:none}a:hover,a:focus{color:#009595;text-decoration:none}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:4px}.img-thumbnail{padding:0;line-height:1.6;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:1.6rem;margin-bottom:1.6rem;border:0;border-top:1px solid rgba(0,30,60,0.075)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:normal;line-height:false;color:#313539}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#8b969e}h1,.h1,h2,.h2,h3,.h3{margin-top:1.6rem;margin-bottom:.8rem}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:.8rem;margin-bottom:.8rem}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:1.7142857143rem}h2,.h2{font-size:1.7142857143rem}h3,.h3{font-size:1.2857142857rem}h4,.h4{font-size:1.1428571429rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}p{margin:0 0 .8rem}.lead{margin-bottom:1.6rem;font-size:1rem;font-weight:300;line-height:1.4}@media (min-width: 540px){.lead{font-size:1.5rem}}small,.small{font-size:92%}mark,.mark{background-color:#fff6ec;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase,.initialism{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#8b969e}.text-primary{color:#0bb}a.text-primary:hover,a.text-primary:focus{color:#088}.text-success{color:#48a71c}a.text-success:hover,a.text-success:focus{color:#357b15}.text-info{color:#0aa}a.text-info:hover,a.text-info:focus{color:#077}.text-warning{color:#ff6316}a.text-warning:hover,a.text-warning:focus{color:#e24b00}.text-danger{color:#ff694b}a.text-danger:hover,a.text-danger:focus{color:#ff3f18}.bg-primary{color:#fff}.bg-primary{background-color:#0bb}a.bg-primary:hover,a.bg-primary:focus{background-color:#088}.bg-success{background-color:#f3faec}a.bg-success:hover,a.bg-success:focus{background-color:#daefc4}.bg-info{background-color:#edfafa}a.bg-info:hover,a.bg-info:focus{background-color:#c5efef}.bg-warning{background-color:#fff6ec}a.bg-warning:hover,a.bg-warning:focus{background-color:#ffdeb9}.bg-danger{background-color:#fff5f4}a.bg-danger:hover,a.bg-danger:focus{background-color:#ffc7c1}.page-header{padding-bottom:-.2rem;margin:3.2rem 0 1.6rem;border-bottom:1px solid #f7f7f8}ul,ol{margin-top:0;margin-bottom:.8rem}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:1.6rem}dt,dd{line-height:1.6}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 260px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted rgba(0,30,60,0.075)}.initialism{font-size:90%}blockquote{padding:.8rem 1.6rem;margin:0 0 1.6rem;font-size:1rem;border-left:5px solid transparent}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.6;color:#8b969e}blockquote footer:before,blockquote small:before,blockquote .small:before{content:\'\\2014 \\A0\'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid transparent;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:\'\'}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:\'\\A0 \\2014\'}address{margin-bottom:1.6rem;font-style:normal;line-height:1.6}code,kbd,pre,samp{font-family:"Monaco",monospace}code{padding:2px 4px;font-size:90%;color:#313539;background-color:transparent;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#313539;background-color:transparent;border-radius:4px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:.3rem;margin:0 0 .8rem;font-size:0rem;line-height:1.6;word-break:break-all;word-wrap:break-word;color:#fff;background-color:#005e7a;border:1px solid transparent;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:30px;padding-right:30px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 540px){.container{width:780px}}@media (min-width: 768px){.container{width:1000px}}@media (min-width: 960px){.container{width:1200px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:30px;padding-right:30px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-30px;margin-right:-30px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:30px;padding-right:30px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 540px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 768px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 960px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:.6785714286rem 1.25rem;padding-bottom:.6785714286rem 1.25rem;color:#8b969e;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:1.6rem}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:.6785714286rem 1.25rem;line-height:1.6;vertical-align:top;border-top:1px solid rgba(0,30,60,0.075)}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid rgba(0,30,60,0.075)}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid rgba(0,30,60,0.075)}.table .table{background-color:#f9fafb}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:.4464285714rem .875rem}.table-bordered{border:1px solid rgba(0,30,60,0.075)}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid rgba(0,30,60,0.075)}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9fafb}.table-hover>tbody>tr:hover{background-color:#f9fafb}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f9fafb}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#eaedf1}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#f3faec}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#e6f5d8}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#edfafa}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#d9f4f4}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fff6ec}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ffead3}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#fff5f4}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ffdedb}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 539px){.table-responsive{width:100%;margin-bottom:1.2rem;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid rgba(0,30,60,0.075)}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:1.6rem;font-size:1.5rem;line-height:inherit;color:#8b969e;border:0;border-bottom:1px solid rgba(0,30,60,0.075)}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \\9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:1.6785714286rem;font-size:1rem;line-height:1.6;color:#484e53}.form-control{display:block;width:100%;height:2.8571428571rem;padding:.6785714286rem 1.25rem;font-size:1rem;line-height:1.6;color:#484e53;background-color:#f0f2f4;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus{border-color:transparent;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6)}.form-control::-moz-placeholder{color:#a8b1b7;opacity:1}.form-control:-ms-input-placeholder{color:#a8b1b7}.form-control::-webkit-input-placeholder{color:#a8b1b7}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#e4e6eb;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:2.8571428571rem}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,.input-group-sm input[type="date"],input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,.input-group-sm input[type="time"],input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,.input-group-sm input[type="datetime-local"],input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn,.input-group-sm input[type="month"]{line-height:2.2857142857rem}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,.input-group-lg input[type="date"],input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,.input-group-lg input[type="time"],input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,.input-group-lg input[type="datetime-local"],input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn,.input-group-lg input[type="month"]{line-height:4.2857142857rem}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:1.6rem;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \\9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static,.form-grid .form-row .form-label label{padding-top:1.6785714286rem;padding-bottom:1.6785714286rem;margin-bottom:0;min-height:2.6rem}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-lg>label.form-control,.input-group-lg>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-lg>label.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-lg>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-lg,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-sm>label.form-control,.input-group-sm>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-sm>label.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-sm>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-sm{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:2.2857142857rem;padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6;border-radius:4px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:2.2857142857rem;line-height:2.2857142857rem}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.form-group-sm .form-control{height:2.2857142857rem;padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6;border-radius:4px}.form-group-sm select.form-control{height:2.2857142857rem;line-height:2.2857142857rem}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static,.form-group-sm .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-sm label{height:2.2857142857rem;min-height:2.5285714286rem;padding:1.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:4.2857142857rem;padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6;border-radius:4px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:4.2857142857rem;line-height:4.2857142857rem}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.form-group-lg .form-control{height:4.2857142857rem;padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6;border-radius:4px}.form-group-lg select.form-control{height:4.2857142857rem;line-height:4.2857142857rem}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static,.form-group-lg .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-lg label{height:4.2857142857rem;min-height:2.7428571429rem;padding:2.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6}.has-feedback{position:relative}.has-feedback .form-control{padding-right:3.5714285714rem}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:2.8571428571rem;height:2.8571428571rem;line-height:2.8571428571rem;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:4.2857142857rem;height:4.2857142857rem;line-height:4.2857142857rem}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:2.2857142857rem;height:2.2857142857rem;line-height:2.2857142857rem}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#48a71c}.has-success .form-control{border-color:#48a71c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#357b15;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #79e049;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #79e049}.has-success .input-group-addon{color:#48a71c;border-color:#48a71c;background-color:#f3faec}.has-success .form-control-feedback{color:#48a71c}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ff6316}.has-warning .form-control{border-color:#ff6316;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e24b00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffa77c;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffa77c}.has-warning .input-group-addon{color:#ff6316;border-color:#ff6316;background-color:#fff6ec}.has-warning .form-control-feedback{color:#ff6316}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ff694b}.has-error .form-control{border-color:#ff694b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#ff3f18;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffbeb1;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffbeb1}.has-error .input-group-addon{color:#ff694b;border-color:#ff694b;background-color:#fff5f4}.has-error .form-control-feedback{color:#ff694b}.has-feedback label ~ .form-control-feedback{top:6.6rem}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#9ea6ab}@media (min-width: 540px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.form-inline .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-inline label{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:1.6785714286rem}.form-horizontal .radio,.form-horizontal .checkbox{min-height:3.2785714286rem}.form-horizontal .form-group{margin-left:-30px;margin-right:-30px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 540px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:1.6785714286rem}}.form-horizontal .has-feedback .form-control-feedback{right:30px}@media (min-width: 540px){.form-horizontal .form-group-lg .control-label{padding-top:2.2857142857rem;font-size:1.1428571429rem}}@media (min-width: 540px){.form-horizontal .form-group-sm .control-label{padding-top:1.4464285714rem;font-size:.9285714286rem}}.btn{display:inline-block;margin-bottom:0;font-weight:bold;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:.6785714286rem 1.25rem;font-size:1rem;line-height:1.6;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#484e53;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#484e53;background-color:#f0f2f4;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#484e53;background-color:#e9ebef}.btn-default:hover{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#484e53;background-color:#e9ebef}.btn-default:active:hover,.btn-default:active:focus,.btn-default:active.focus,.btn-default.active:hover,.btn-default.active:focus,.btn-default.active.focus,.open>.btn-default.dropdown-toggle:hover,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle.focus{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus{background-color:#f0f2f4;border-color:transparent}.btn-default .badge{color:#f0f2f4;background-color:#484e53}.btn-primary{color:#fff;background-color:#0bb;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#009595}.btn-primary:hover{color:#fff;background-color:#009595}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#009595}.btn-primary:active:hover,.btn-primary:active:focus,.btn-primary:active.focus,.btn-primary.active:hover,.btn-primary.active:focus,.btn-primary.active.focus,.open>.btn-primary.dropdown-toggle:hover,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle.focus{color:#fff;background-color:#009595}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus{background-color:#0bb;border-color:transparent}.btn-primary .badge{color:#0bb;background-color:#fff}.btn-success{color:#fff;background-color:#7ec631;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#48a71c}.btn-success:hover{color:#fff;background-color:#48a71c}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#48a71c}.btn-success:active:hover,.btn-success:active:focus,.btn-success:active.focus,.btn-success.active:hover,.btn-success.active:focus,.btn-success.active.focus,.open>.btn-success.dropdown-toggle:hover,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle.focus{color:#fff;background-color:#48a71c}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus{background-color:#7ec631;border-color:transparent}.btn-success .badge{color:#7ec631;background-color:#fff}.btn-info{color:#fff;background-color:#0bb;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#009595}.btn-info:hover{color:#fff;background-color:#009595}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#009595}.btn-info:active:hover,.btn-info:active:focus,.btn-info:active.focus,.btn-info.active:hover,.btn-info.active:focus,.btn-info.active.focus,.open>.btn-info.dropdown-toggle:hover,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle.focus{color:#fff;background-color:#009595}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus{background-color:#0bb;border-color:transparent}.btn-info .badge{color:#0bb;background-color:#fff}.btn-warning{color:#fff;background-color:#ff9b26;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ff6316}.btn-warning:hover{color:#fff;background-color:#ff6316}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ff6316}.btn-warning:active:hover,.btn-warning:active:focus,.btn-warning:active.focus,.btn-warning.active:hover,.btn-warning.active:focus,.btn-warning.active.focus,.open>.btn-warning.dropdown-toggle:hover,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle.focus{color:#fff;background-color:#ff6316}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus{background-color:#ff9b26;border-color:transparent}.btn-warning .badge{color:#ff9b26;background-color:#fff}.btn-danger{color:#fff;background-color:#ff694b;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#ff3c2b}.btn-danger:hover{color:#fff;background-color:#ff3c2b}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff3c2b}.btn-danger:active:hover,.btn-danger:active:focus,.btn-danger:active.focus,.btn-danger.active:hover,.btn-danger.active:focus,.btn-danger.active.focus,.open>.btn-danger.dropdown-toggle:hover,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle.focus{color:#fff;background-color:#ff3c2b}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus{background-color:#ff694b;border-color:transparent}.btn-danger .badge{color:#ff694b;background-color:#fff}.btn-link{color:#0bb;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#009595;text-decoration:none;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#8b969e;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6;border-radius:4px}.btn-sm,.btn-group-sm>.btn{padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6;border-radius:4px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:.9285714286rem;line-height:1.6;border-radius:4px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \\9 ;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:1rem;text-align:left;background-color:#fff;border:1px solid transparent;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:-.2rem 0;overflow:hidden;background-color:rgba(0,30,60,0.075)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.6;color:#5e666c;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#313539;background-color:#f9fafb}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#0bb}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#8b969e}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:.9285714286rem;line-height:1.6;color:#8b969e;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \\9 ;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 960px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:.6785714286rem 1.25rem;font-size:1rem;font-weight:normal;line-height:1;color:#484e53;text-align:center;background-color:#f0f2f4;border:1px solid transparent;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.4464285714rem .875rem;font-size:.9285714286rem;border-radius:4px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;border-radius:4px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:.6785714286rem .875rem}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#f9fafb}.nav>li.disabled>a{color:#8b969e}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#8b969e;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#f9fafb;border-color:#0bb}.nav .nav-divider{height:1px;margin:-.2rem 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid rgba(0,30,60,0.075)}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.6;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#ff694b #ff694b rgba(0,30,60,0.075)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:inherit;background-color:transparent;border:1px solid #ff694b;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:1000px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#0bb}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 540px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 540px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#f9fafb}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.breadcrumb{padding:1.2857142857rem 1.875rem;margin-bottom:1.6rem;list-style:none;background-color:#f9fafb;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\\A0";padding:0 5px;color:#8b969e}.breadcrumb>.active{color:#313539}.pagination{display:inline-block;padding-left:0;margin:1.6rem 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:.6785714286rem 1.25rem;line-height:1.6;text-decoration:none;color:#0bb;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{z-index:2;color:#009595;background-color:#f7f7f8;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:3;color:#fff;background-color:#0bb;border-color:#0bb;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#bec5c9;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:1.2857142857rem 1.875rem;font-size:1.1428571429rem;line-height:1.6}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination-sm>li>a,.pagination-sm>li>span{padding:.4464285714rem .875rem;font-size:.9285714286rem;line-height:1.6}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pager{padding-left:0;margin:1.6rem 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f7f7f8}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#bec5c9;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#8b969e;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:transparent}.label-default[href]:hover,.label-default[href]:focus{background-color:transparent}.label-primary{background-color:transparent}.label-primary[href]:hover,.label-primary[href]:focus{background-color:transparent}.label-success{background-color:transparent}.label-success[href]:hover,.label-success[href]:focus{background-color:transparent}.label-info{background-color:transparent}.label-info[href]:hover,.label-info[href]:focus{background-color:transparent}.label-warning{background-color:transparent}.label-warning[href]:hover,.label-warning[href]:focus{background-color:transparent}.label-danger{background-color:transparent}.label-danger[href]:hover,.label-danger[href]:focus{background-color:transparent}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:.9285714286rem;font-weight:bold;color:#8b969e;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#f0f2f4;border-radius:100px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#0bb;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.thumbnail{display:block;padding:0;margin-bottom:1.6rem;line-height:1.6;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:20px 30px;color:#8b969e}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0bb}.alert{padding:1.2857142857rem 1.875rem;margin-bottom:1.6rem;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:1.2857142857rem 1.875rem20}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#f3faec;border-color:transparent;color:#48a71c}.alert-success hr{border-top-color:transparent}.alert-success .alert-link{color:#357b15}.alert-info{background-color:#edfafa;border-color:transparent;color:#0aa}.alert-info hr{border-top-color:transparent}.alert-info .alert-link{color:#077}.alert-warning{background-color:#fff6ec;border-color:transparent;color:#ff6316}.alert-warning hr{border-top-color:transparent}.alert-warning .alert-link{color:#e24b00}.alert-danger{background-color:#fff5f4;border-color:transparent;color:#ff694b}.alert-danger hr{border-top-color:transparent}.alert-danger .alert-link{color:#ff3f18}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:1.6rem;margin-bottom:1.6rem;background-color:#f0f2f4;border-radius:100px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:.9285714286rem;line-height:1.6rem;color:#8b969e;text-align:center;background-color:#0bb;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#7ec631}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#0bb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff9b26}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff694b}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,30,60,0.075)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#5e666c}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#313539}a.list-group-item:hover,a.list-group-item:focus,button.list-group-item:hover,button.list-group-item:focus{text-decoration:none;color:#313539;background-color:#f9fafb}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#f9fafb;color:#8b969e;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#8b969e}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#0bb;border-color:rgba(0,30,60,0.03)}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fff}.list-group-item-success{color:#48a71c;background-color:#f3faec}a.list-group-item-success,button.list-group-item-success{color:#48a71c}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:hover,button.list-group-item-success:focus{color:#48a71c;background-color:#e6f5d8}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active,button.list-group-item-success.active:hover,button.list-group-item-success.active:focus{color:#fff;background-color:#48a71c;border-color:#48a71c}.list-group-item-info{color:#0aa;background-color:#edfafa}a.list-group-item-info,button.list-group-item-info{color:#0aa}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:hover,button.list-group-item-info:focus{color:#0aa;background-color:#d9f4f4}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active,button.list-group-item-info.active:hover,button.list-group-item-info.active:focus{color:#fff;background-color:#0aa;border-color:#0aa}.list-group-item-warning{color:#ff6316;background-color:#fff6ec}a.list-group-item-warning,button.list-group-item-warning{color:#ff6316}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:hover,button.list-group-item-warning:focus{color:#ff6316;background-color:#ffead3}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active,button.list-group-item-warning.active:hover,button.list-group-item-warning.active:focus{color:#fff;background-color:#ff6316;border-color:#ff6316}.list-group-item-danger{color:#ff694b;background-color:#fff5f4}a.list-group-item-danger,button.list-group-item-danger{color:#ff694b}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:hover,button.list-group-item-danger:focus{color:#ff694b;background-color:#ffdedb}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active,button.list-group-item-danger.active:hover,button.list-group-item-danger.active:focus{color:#fff;background-color:#ff694b;border-color:#ff694b}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:1.6rem;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:2rem;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:transparent;border-top:1px solid transparent;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid rgba(0,30,60,0.075)}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:1.6rem}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#5e666c;background-color:transparent;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:transparent;background-color:#5e666c}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#0bb}.panel-primary>.panel-heading{color:#fff;background-color:#0bb;border-color:#0bb}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#0bb}.panel-primary>.panel-heading .badge{color:#0bb;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#0bb}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#48a71c;background-color:#f3faec;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#f3faec;background-color:#48a71c}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#0aa;background-color:#edfafa;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#edfafa;background-color:#0aa}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ff6316;background-color:#fff6ec;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#fff6ec;background-color:#ff6316}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ff694b;background-color:#fff5f4;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#fff5f4;background-color:#ff694b}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f0f2f4;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:4px}.well-sm{padding:9px;border-radius:4px}.close{float:right;font-size:1.5rem;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:transparent;border:1px solid transparent;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#f0f2f4}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.75;filter:alpha(opacity=75)}.modal-header{padding:0;border-bottom:1px solid transparent}.modal-header:before,.modal-header:after{content:" ";display:table}.modal-header:after{clear:both}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.6}.modal-body{position:relative;padding:0}.modal-footer{padding:0;text-align:right;border-top:1px solid transparent}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 540px){.modal-dialog{width:768px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:400px}}@media (min-width: 768px){.modal-lg{width:960px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:.9285714286rem;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:1;filter:alpha(opacity=100)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:300px;padding:3px 8px;color:#fff;text-align:center;background-color:#007699;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#007699}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#007699}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#007699}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#007699}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#007699}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#007699}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#007699}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#007699}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:400px;padding:1px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:1rem;background-color:#ff694b;background-clip:padding-box;border:1px solid transparent;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:1rem;background-color:transparent;border-bottom:1px solid transparent;border-radius:3px 3px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:0}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:0;border-bottom-width:0;border-top-color:transparent;border-top-color:transparent;bottom:0}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ff694b}.popover.right>.arrow{top:50%;left:0;margin-top:0;border-left-width:0;border-right-color:transparent;border-right-color:transparent}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ff694b}.popover.bottom>.arrow{left:50%;margin-left:0;border-top-width:0;border-bottom-color:transparent;border-bottom-color:transparent;top:0}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ff694b}.popover.left>.arrow{top:50%;right:0;margin-top:0;border-right-width:0;border-left-color:transparent;border-left-color:transparent}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ff694b;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-moz-transition:-moz-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:120px;opacity:1;filter:alpha(opacity=100);font-size:20px;color:#fff;text-align:center;text-shadow:none;background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#80000000\', endColorstr=\'#00000000\', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#00000000\', endColorstr=\'#80000000\', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:\'\\2039\'}.carousel-control .icon-next:before{content:\'\\203A\'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid transparent;border-radius:10px;cursor:pointer;background-color:#000 \\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:none}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 540px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@font-face{font-family:"arrows";font-weight:normal;font-style:normal;src:url('+r(n(213))+') format("woff")}[class*="arrow-"]:not(.arrow-before):after,[class*="arrow-"].arrow-before:before{font-family:"arrows";text-transform:none;font-style:normal;font-weight:normal;line-height:.5}.arrow-large:not(.arrow-before):after,.arrow-large.arrow-before:before{text-transform:uppercase}.arrow-up:not(.arrow-before):after,.arrow-up.arrow-before:before{content:" a "}.arrow-right:not(.arrow-before):after,.arrow-right.arrow-before:before{content:" b "}.arrow-down:not(.arrow-before):after,.arrow-down.arrow-before:before{content:" c "}.arrow-left:not(.arrow-before):after,.arrow-left.arrow-before:before{content:" d "}.arrow-close:not(.arrow-before):after,.arrow-close.arrow-before:before{content:" e "}.arrow-check:not(.arrow-before):after,.arrow-check.arrow-before:before{content:" f "}@font-face{font-family:"entypo";font-weight:normal;font-style:normal;src:url('+r(n(214))+') format("woff")}[data-icon]{width:24px;height:10px;display:inline-block;vertical-align:middle}[data-icon]:before{display:block;position:relative;margin-top:-1px;top:-5px;speak:none;font-family:"entypo";font-style:normal;font-weight:normal;font-variant:normal;font-size:18px;line-height:1;text-align:center;text-transform:none;text-decoration:inherit}[data-icon].md:before{font-size:20px}[data-icon].lg{width:32px}[data-icon].lg:before{font-size:32px;top:-11px}[data-icon="note"]:before{content:"\\E800"}[data-icon="logo-db"]:before{content:"\\E8DE"}[data-icon="music"]:before{content:"\\E802"}[data-icon="search"]:before{content:"\\E803"}[data-icon="flashlight"]:before{content:"\\E804"}[data-icon="mail"]:before{content:"\\E805"}[data-icon="heart"]:before{content:"\\E80D"}[data-icon="heart-empty"]:before{content:"\\E80F"}[data-icon="star"]:before{content:"\\E810"}[data-icon="star-empty"]:before{content:"\\E813"}[data-icon="user"]:before{content:"\\E814"}[data-icon="users"]:before{content:"\\E817"}[data-icon="user-add"]:before{content:"\\E819"}[data-icon="video"]:before{content:"\\E81A"}[data-icon="picture"]:before{content:"\\E81D"}[data-icon="camera"]:before{content:"\\1F4F7"}[data-icon="layout"]:before{content:"\\E821"}[data-icon="menu"]:before{content:"\\E823"}[data-icon="check"]:before{content:"\\E824"}[data-icon="close"]:before{content:"\\E826"}[data-icon="cancel"]:before{content:"\\E826"}[data-icon="cancel-circled"]:before{content:"\\E806"}[data-icon="cancel-squared"]:before{content:"\\E808"}[data-icon="plus"]:before{content:"+"}[data-icon="plus-circled"]:before{content:"\\E809"}[data-icon="plus-squared"]:before{content:"\\E80A"}[data-icon="minus"]:before{content:"\\2212"}[data-icon="minus-circled"]:before{content:"\\E80E"}[data-icon="minus-squared"]:before{content:"\\E80C"}[data-icon="help"]:before{content:"\\E811"}[data-icon="help-circled"]:before{content:"\\E812"}[data-icon="info"]:before{content:"\\E815"}[data-icon="info-circled"]:before{content:"\\E816"}[data-icon="back"]:before{content:"\\E818"}[data-icon="home"]:before{content:"\\E81B"}[data-icon="link"]:before{content:"\\E81C"}[data-icon="attach"]:before{content:"\\E81F"}[data-icon="lock"]:before{content:"\\1F512"}[data-icon="lock-open"]:before{content:"\\E822"}[data-icon="eye"]:before{content:"\\E825"}[data-icon="tag"]:before{content:"\\E827"}[data-icon="bookmark"]:before{content:"\\1F516"}[data-icon="bookmarks"]:before{content:"\\E837"}[data-icon="flag"]:before{content:"\\E838"}[data-icon="thumbs-up"]:before{content:"\\E840"}[data-icon="thumbs-down"]:before{content:"\\E849"}[data-icon="download"]:before{content:"\\E85D"}[data-icon="upload"]:before{content:"\\E851"}[data-icon="upload-cloud"]:before{content:"\\E86B"}[data-icon="reply"]:before{content:"\\E86C"}[data-icon="reply-all"]:before{content:"\\E87B"}[data-icon="forward"]:before{content:"\\E87C"}[data-icon="quote"]:before{content:"\\E889"}[data-icon="code"]:before{content:"\\E88A"}[data-icon="export"]:before{content:"\\E899"}[data-icon="pencil"]:before{content:"\\270F"}[data-icon="feather"]:before{content:"\\E8A5"}[data-icon="print"]:before{content:"\\E8A8"}[data-icon="retweet"]:before{content:"\\E8A9"}[data-icon="keyboard"]:before{content:"\\2328"}[data-icon="comment"]:before{content:"\\E8AB"}[data-icon="chat"]:before{content:"\\E829"}[data-icon="bell"]:before{content:"\\1F514"}[data-icon="attention"]:before{content:"\\E839"}[data-icon="alert"]:before{content:"\\E841"}[data-icon="vcard"]:before{content:"\\E853"}[data-icon="address"]:before{content:"\\E85C"}[data-icon="location"]:before{content:"\\E852"}[data-icon="map"]:before{content:"\\E84A"}[data-icon="direction"]:before{content:"\\E86D"}[data-icon="compass"]:before{content:"\\E87A"}[data-icon="cup"]:before{content:"\\E850"}[data-icon="trash"]:before{content:"\\E888"}[data-icon="doc"]:before{content:"\\E88B"}[data-icon="docs"]:before{content:"\\E898"}[data-icon="doc-landscape"]:before{content:"\\E89B"}[data-icon="doc-text"]:before{content:"\\E8A6"}[data-icon="doc-text-inv"]:before{content:"\\E8A7"}[data-icon="newspaper"]:before{content:"\\1F4F0"}[data-icon="book-open"]:before{content:"\\E8AD"}[data-icon="book"]:before{content:"\\E8AC"}[data-icon="folder"]:before{content:"\\E82A"}[data-icon="archive"]:before{content:"\\E835"}[data-icon="box"]:before{content:"\\E83A"}[data-icon="rss"]:before{content:"\\E842"}[data-icon="phone"]:before{content:"\\E854"}[data-icon="cog"]:before{content:"\\E85E"}[data-icon="tools"]:before{content:"\\E860"}[data-icon="share"]:before{content:"\\E84B"}[data-icon="shareable"]:before{content:"\\E86E"}[data-icon="basket"]:before{content:"\\E879"}[data-icon="bag"]:before{content:"\\E87E"}[data-icon="calendar"]:before{content:"\\1F4C5"}[data-icon="login"]:before{content:"\\E88C"}[data-icon="logout"]:before{content:"\\E897"}[data-icon="mic"]:before{content:"\\E84D"}[data-icon="mute"]:before{content:"\\E84E"}[data-icon="sound"]:before{content:"\\E8AE"}[data-icon="volume"]:before{content:"\\E8B4"}[data-icon="clock"]:before{content:"\\E8AF"}[data-icon="hourglass"]:before{content:"\\231B"}[data-icon="lamp"]:before{content:"\\E82B"}[data-icon="light-down"]:before{content:"\\E834"}[data-icon="light-up"]:before{content:"\\E83B"}[data-icon="adjust"]:before{content:"\\E843"}[data-icon="block"]:before{content:"\\2588"}[data-icon="resize-full"]:before{content:"\\E85F"}[data-icon="resize-small"]:before{content:"\\E861"}[data-icon="popup"]:before{content:"\\E86A"}[data-icon="publish"]:before{content:"\\E86F"}[data-icon="window"]:before{content:"\\E878"}[data-icon="arrow-combo"]:before{content:"\\E87D"}[data-icon="down-circled"]:before{content:"\\E887"}[data-icon="left-circled"]:before{content:"\\E88D"}[data-icon="right-circled"]:before{content:"\\E896"}[data-icon="up-circled"]:before{content:"\\E89C"}[data-icon="down-open"]:before{content:"\\E84C"}[data-icon="left-open"]:before{content:"\\E8B2"}[data-icon="right-open"]:before{content:"\\E8B3"}[data-icon="up-open"]:before{content:"\\E8B5"}[data-icon="down-open-mini"]:before{content:"\\E8B6"}[data-icon="left-open-mini"]:before{content:"\\E833"}[data-icon="right-open-mini"]:before{content:"\\E832"}[data-icon="up-open-mini"]:before{content:"\\E83C"}[data-icon="down-open-big"]:before{content:"\\E844"}[data-icon="left-open-big"]:before{content:"\\E855"}[data-icon="right-open-big"]:before{content:"\\E85B"}[data-icon="up-open-big"]:before{content:"\\E862"}[data-icon="down"]:before{content:"\\E869"}[data-icon="left"]:before{content:"\\E870"}[data-icon="right"]:before{content:"\\E877"}[data-icon="up"]:before{content:"\\E87F"}[data-icon="down-dir"]:before{content:"\\E886"}[data-icon="left-dir"]:before{content:"\\E88E"}[data-icon="right-dir"]:before{content:"\\E895"}[data-icon="up-dir"]:before{content:"\\E89D"}[data-icon="down-bold"]:before{content:"\\E8A4"}[data-icon="left-bold"]:before{content:"\\E8BA"}[data-icon="right-bold"]:before{content:"\\E8B9"}[data-icon="up-bold"]:before{content:"\\E8B8"}[data-icon="down-thin"]:before{content:"\\E8B7"}[data-icon="left-thin"]:before{content:"\\E82C"}[data-icon="note-beamed"]:before{content:"\\E801"}[data-icon="up-thin"]:before{content:"\\E83D"}[data-icon="cw"]:before{content:"\\E856"}[data-icon="arrows-ccw"]:before{content:"\\E85A"}[data-icon="level-down"]:before{content:"\\E863"}[data-icon="level-up"]:before{content:"\\E868"}[data-icon="shuffle"]:before{content:"\\E871"}[data-icon="loop"]:before{content:"\\E876"}[data-icon="switch"]:before{content:"\\E880"}[data-icon="play"]:before{content:"\\E885"}[data-icon="stop"]:before{content:"\\E88F"}[data-icon="pause"]:before{content:"\\E894"}[data-icon="record"]:before{content:"\\E89E"}[data-icon="to-end"]:before{content:"\\E8A3"}[data-icon="to-start"]:before{content:"\\E8BB"}[data-icon="fast-forward"]:before{content:"\\E8BC"}[data-icon="fast-backward"]:before{content:"\\E8BD"}[data-icon="progress-0"]:before{content:"\\E8BE"}[data-icon="progress-1"]:before{content:"\\E82D"}[data-icon="progress-2"]:before{content:"\\E830"}[data-icon="progress-3"]:before{content:"\\E83E"}[data-icon="target"]:before{content:"\\E857"}[data-icon="palette"]:before{content:"\\E847"}[data-icon="list"]:before{content:"\\E859"}[data-icon="list-add"]:before{content:"\\E864"}[data-icon="signal"]:before{content:"\\E867"}[data-icon="trophy"]:before{content:"\\1F3C6"}[data-icon="battery"]:before{content:"\\1F50B"}[data-icon="back-in-time"]:before{content:"\\E881"}[data-icon="monitor"]:before{content:"\\E884"}[data-icon="mobile"]:before{content:"\\E890"}[data-icon="network"]:before{content:"\\E893"}[data-icon="cd"]:before{content:"\\E89F"}[data-icon="inbox"]:before{content:"\\E8A2"}[data-icon="install"]:before{content:"\\E8C2"}[data-icon="globe"]:before{content:"\\E8C1"}[data-icon="cloud"]:before{content:"\\2601"}[data-icon="cloud-thunder"]:before{content:"\\E8BF"}[data-icon="flash"]:before{content:"\\E82E"}[data-icon="moon"]:before{content:"\\E82F"}[data-icon="flight"]:before{content:"\\E83F"}[data-icon="paper-plane"]:before{content:"\\E845"}[data-icon="leaf"]:before{content:"\\E846"}[data-icon="lifebuoy"]:before{content:"\\E858"}[data-icon="mouse"]:before{content:"\\1F401"}[data-icon="briefcase"]:before{content:"\\1F4BC"}[data-icon="suitcase"]:before{content:"\\E873"}[data-icon="dot"]:before{content:"\\E874"}[data-icon="dot-2"]:before{content:"\\E882"}[data-icon="dot-3"]:before{content:"\\E883"}[data-icon="brush"]:before{content:"\\E891"}[data-icon="magnet"]:before{content:"\\E892"}[data-icon="infinity"]:before{content:"\\221E"}[data-icon="erase"]:before{content:"\\E8A1"}[data-icon="chart-pie"]:before{content:"\\E8C3"}[data-icon="chart-line"]:before{content:"\\E8C4"}[data-icon="chart-bar"]:before{content:"\\E8C5"}[data-icon="chart-area"]:before{content:"\\E8C6"}[data-icon="tape"]:before{content:"\\E8C7"}[data-icon="graduation-cap"]:before{content:"\\E8D2"}[data-icon="language"]:before{content:"\\E8D4"}[data-icon="ticket"]:before{content:"\\1F3AB"}[data-icon="water"]:before{content:"\\E8DA"}[data-icon="droplet"]:before{content:"\\1F4A7"}[data-icon="air"]:before{content:"\\E8E3"}[data-icon="credit-card"]:before{content:"\\E8EA"}[data-icon="floppy"]:before{content:"\\E8EB"}[data-icon="clipboard"]:before{content:"\\1F4CB"}[data-icon="megaphone"]:before{content:"\\E8F3"}[data-icon="database"]:before{content:"\\E8FA"}[data-icon="drive"]:before{content:"\\E8FC"}[data-icon="bucket"]:before{content:"\\E902"}[data-icon="thermometer"]:before{content:"\\E903"}[data-icon="key"]:before{content:"\\1F511"}[data-icon="flow-cascade"]:before{content:"\\E90B"}[data-icon="flow-branch"]:before{content:"\\E912"}[data-icon="flow-tree"]:before{content:"\\E913"}[data-icon="flow-line"]:before{content:"\\E91A"}[data-icon="flow-parallel"]:before{content:"\\E8C8"}[data-icon="rocket"]:before{content:"\\1F680"}[data-icon="gauge"]:before{content:"\\E8D3"}[data-icon="traffic-cone"]:before{content:"\\E8D8"}[data-icon="cc"]:before{content:"\\E8DB"}[data-icon="cc-by"]:before{content:"\\E8E1"}[data-icon="cc-nc"]:before{content:"\\E8E4"}[data-icon="cc-nc-eu"]:before{content:"\\E8E9"}[data-icon="cc-nc-jp"]:before{content:"\\E8EC"}[data-icon="cc-sa"]:before{content:"\\E8F1"}[data-icon="cc-nd"]:before{content:"\\E8F4"}[data-icon="cc-pd"]:before{content:"\\E8F9"}[data-icon="cc-zero"]:before{content:"\\E8FB"}[data-icon="cc-share"]:before{content:"\\E901"}[data-icon="cc-remix"]:before{content:"\\E904"}[data-icon="github"]:before{content:"\\E909"}[data-icon="github-circled"]:before{content:"\\E90C"}[data-icon="flickr"]:before{content:"\\E911"}[data-icon="flickr-circled"]:before{content:"\\E914"}[data-icon="vimeo"]:before{content:"\\E919"}[data-icon="vimeo-circled"]:before{content:"\\E8C9"}[data-icon="twitter"]:before{content:"\\E8D0"}[data-icon="twitter-circled"]:before{content:"\\E8D6"}[data-icon="facebook"]:before{content:"\\E8D7"}[data-icon="facebook-circled"]:before{content:"\\E8DC"}[data-icon="facebook-squared"]:before{content:"\\E8E0"}[data-icon="gplus"]:before{content:"\\E8E5"}[data-icon="gplus-circled"]:before{content:"\\E8E8"}[data-icon="pinterest"]:before{content:"\\E8ED"}[data-icon="pinterest-circled"]:before{content:"\\E8F0"}[data-icon="tumblr"]:before{content:"\\E8F5"}[data-icon="tumblr-circled"]:before{content:"\\E8F8"}[data-icon="linkedin"]:before{content:"\\E8FD"}[data-icon="linkedin-circled"]:before{content:"\\E900"}[data-icon="dribbble"]:before{content:"\\E905"}[data-icon="dribbble-circled"]:before{content:"\\E908"}[data-icon="stumbleupon"]:before{content:"\\E90D"}[data-icon="stumbleupon-circled"]:before{content:"\\E910"}[data-icon="lastfm"]:before{content:"\\E915"}[data-icon="lastfm-circled"]:before{content:"\\E918"}[data-icon="rdio"]:before{content:"\\E8CA"}[data-icon="rdio-circled"]:before{content:"\\E8D5"}[data-icon="spotify"]:before{content:"\\E8CF"}[data-icon="spotify-circled"]:before{content:"\\E8CE"}[data-icon="qq"]:before{content:"\\E8DD"}[data-icon="instagram"]:before{content:"\\E8DF"}[data-icon="dropbox"]:before{content:"\\E8E6"}[data-icon="evernote"]:before{content:"\\E8E7"}[data-icon="flattr"]:before{content:"\\E8EE"}[data-icon="skype"]:before{content:"\\E8EF"}[data-icon="skype-circled"]:before{content:"\\E8F6"}[data-icon="renren"]:before{content:"\\E8F7"}[data-icon="sina-weibo"]:before{content:"\\E8FE"}[data-icon="paypal"]:before{content:"\\E8FF"}[data-icon="picasa"]:before{content:"\\E906"}[data-icon="soundcloud"]:before{content:"\\E907"}[data-icon="mixi"]:before{content:"\\E90E"}[data-icon="behance"]:before{content:"\\E90F"}[data-icon="google-circles"]:before{content:"\\E916"}[data-icon="vkontakte"]:before{content:"\\E917"}[data-icon="smashing"]:before{content:"\\E8CB"}[data-icon="sweden"]:before{content:"\\E8CC"}[data-icon="db-shape"]:before{content:"\\E8CD"}[data-icon="bitbucket"]:before{content:"\\20AC"}*,*:before,*:after{position:relative;outline:none !important;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:grayscale}html{-webkit-text-size-adjust:100%;font-size:14px}body{min-width:960px}.block{display:block !important}.inline{display:inline !important}.inline-block{display:inline-block !important}.invisible{visibility:hidden}.hidden{display:none}.blocklink{display:block;color:inherit;text-decoration:none !important}.blocklink:hover,.blocklink:focus{color:inherit}.fill{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.full{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed}.cover{display:block;position:absolute;left:0;top:0;bottom:0;right:0}.clear:after{display:table;content:\'\';clear:both}.clean{margin:0;padding:0;border:0;list-style-type:none}.clean li{margin:0;padding:0;list-style-type:none}.trim>*:first-child{margin-top:0}.trim>*:last-child{margin-bottom:0}.snug>*{margin-top:.5rem;margin-bottom:.5rem}.snug>*:first-child{margin-top:0}.snug>*:last-child{margin-bottom:0}.compact *{margin-top:0;margin-bottom:0}.component{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.transitions{-webkit-transition:all .5s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .5s cubic-bezier(0.25, 0, 0, 1);transition:all .5s cubic-bezier(0.25, 0, 0, 1)}.margin,.margin-top{margin-top:2em}.margin,.margin-bottom{margin-bottom:2em}.margin-small,.margin-small-top{margin-top:1em}.margin-small,.margin-small-bottom{margin-bottom:1em}.padding,.padding-top{padding-top:2em}.padding,.padding-bottom{margin-bottom:2em}.flush,.flush-top{margin-top:0 !important}.flush,.flush-bottom{margin-bottom:0 !important}@media print{html{font-size:9pt}html body{-webkit-print-color-adjust:exact}html a{white-space:nowrap}html,body{background:white !important}font-size:9pt;body{-webkit-print-color-adjust:exact}a{white-space:nowrap}@page{margin:0.75in 1in}}@media screen{html.print{font-size:9pt;font-size:9pt;background:#f9fafb}html.print body{-webkit-print-color-adjust:exact}html.print a{white-space:nowrap}html.print body{-webkit-print-color-adjust:exact}html.print a{white-space:nowrap}html.print body{padding:0.75in 1in;margin:.5in auto;max-width:8.5in;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);height:auto}}.text-red{color:#ff694b !important}.text-red-dark{color:#ff4f39 !important}.text-red-darker{color:#ff3c2b !important}.text-red-darkest{color:#ff2d21 !important}.text-red-light{color:#ff845e !important}.text-red-lighter{color:#ffa376 !important}.text-red-lightest{color:#ffba94 !important}.text-red-highlight{color:#fff5f4 !important}.bg-red{background-color:#ff694b !important}.bg-red-dark{background-color:#ff4f39 !important}.bg-red-darker{background-color:#ff3c2b !important}.bg-red-darkest{background-color:#ff2d21 !important}.bg-red-light{background-color:#ff845e !important}.bg-red-lighter{background-color:#ffa376 !important}.bg-red-lightest{background-color:#ffba94 !important}.bg-red-highlight{background-color:#fff5f4 !important}.text-orange{color:#ff694b !important}.text-orange-dark{color:#ff4f39 !important}.text-orange-darker{color:#ff3c2b !important}.text-orange-darkest{color:#ff2d21 !important}.text-orange-light{color:#ff845e !important}.text-orange-lighter{color:#ffa376 !important}.text-orange-lightest{color:#ffba94 !important}.text-orange-highlight{color:#fff5f4 !important}.bg-orange{background-color:#ff694b !important}.bg-orange-dark{background-color:#ff4f39 !important}.bg-orange-darker{background-color:#ff3c2b !important}.bg-orange-darkest{background-color:#ff2d21 !important}.bg-orange-light{background-color:#ff845e !important}.bg-orange-lighter{background-color:#ffa376 !important}.bg-orange-lightest{background-color:#ffba94 !important}.bg-orange-highlight{background-color:#fff5f4 !important}.text-yellow{color:#fc0 !important}.text-yellow-dark{color:#ffc000 !important}.text-yellow-darker{color:#ffb100 !important}.text-yellow-darkest{color:#ff9e00 !important}.text-yellow-light{color:#ffd900 !important}.text-yellow-lighter{color:#ffe300 !important}.text-yellow-lightest{color:#ffea00 !important}.text-yellow-highlight{color:#fff8db !important}.bg-yellow{background-color:#fc0 !important}.bg-yellow-dark{background-color:#ffc000 !important}.bg-yellow-darker{background-color:#ffb100 !important}.bg-yellow-darkest{background-color:#ff9e00 !important}.bg-yellow-light{background-color:#ffd900 !important}.bg-yellow-lighter{background-color:#ffe300 !important}.bg-yellow-lightest{background-color:#ffea00 !important}.bg-yellow-highlight{background-color:#fff8db !important}.text-green{color:#7ec631 !important}.text-green-dark{color:#5fb825 !important}.text-green-darker{color:#48a71c !important}.text-green-darkest{color:#369115 !important}.text-green-light{color:#9ed53e !important}.text-green-lighter{color:#b7e04e !important}.text-green-lightest{color:#c9e862 !important}.text-green-highlight{color:#f3faec !important}.bg-green{background-color:#7ec631 !important}.bg-green-dark{background-color:#5fb825 !important}.bg-green-darker{background-color:#48a71c !important}.bg-green-darkest{background-color:#369115 !important}.bg-green-light{background-color:#9ed53e !important}.bg-green-lighter{background-color:#b7e04e !important}.bg-green-lightest{background-color:#c9e862 !important}.bg-green-highlight{background-color:#f3faec !important}.text-blue{color:#0bb !important}.text-blue-dark{color:#0aa !important}.text-blue-darker{color:#009595 !important}.text-blue-darkest{color:#007b7b !important}.text-blue-light{color:#0cc !important}.text-blue-lighter{color:#00d9d9 !important}.text-blue-lightest{color:#00e3e3 !important}.text-blue-highlight{color:#edfafa !important}.bg-blue{background-color:#0bb !important}.bg-blue-dark{background-color:#0aa !important}.bg-blue-darker{background-color:#009595 !important}.bg-blue-darkest{background-color:#007b7b !important}.bg-blue-light{background-color:#0cc !important}.bg-blue-lighter{background-color:#00d9d9 !important}.bg-blue-lightest{background-color:#00e3e3 !important}.bg-blue-highlight{background-color:#edfafa !important}.text-purple{color:#7f6cc5 !important}.text-purple-dark{color:#6051b7 !important}.text-purple-darker{color:#483da5 !important}.text-purple-darkest{color:#362e8f !important}.text-purple-light{color:#9f87d4 !important}.text-purple-lighter{color:#b7a5df !important}.text-purple-lightest{color:#c9bce7 !important}.text-purple-highlight{color:#f8f7fc !important}.bg-purple{background-color:#7f6cc5 !important}.bg-purple-dark{background-color:#6051b7 !important}.bg-purple-darker{background-color:#483da5 !important}.bg-purple-darkest{background-color:#362e8f !important}.bg-purple-light{background-color:#9f87d4 !important}.bg-purple-lighter{background-color:#b7a5df !important}.bg-purple-lightest{background-color:#c9bce7 !important}.bg-purple-highlight{background-color:#f8f7fc !important}.text-navy{color:#005e7a !important}.text-navy-dark{color:#00475c !important}.text-navy-darker{color:#003645 !important}.text-navy-darkest{color:#002934 !important}.text-navy-light{color:#007699 !important}.text-navy-lighter{color:#0094b3 !important}.text-navy-lightest{color:#00afc6 !important}.text-navy-highlight{color:#f4f8f9 !important}.bg-navy{background-color:#005e7a !important}.bg-navy-dark{background-color:#00475c !important}.bg-navy-darker{background-color:#003645 !important}.bg-navy-darkest{background-color:#002934 !important}.bg-navy-light{background-color:#007699 !important}.bg-navy-lighter{background-color:#0094b3 !important}.bg-navy-lightest{background-color:#00afc6 !important}.bg-navy-highlight{background-color:#f4f8f9 !important}.text-gray{color:#8b969e !important}.text-gray-dark{color:#6e7c86 !important}.text-gray-darker{color:#535d68 !important}.text-gray-darkest{color:#3f464e !important}.text-gray-light{color:#a8b1b7 !important}.text-gray-lighter{color:#bec5c9 !important}.text-gray-lightest{color:#cfd4d7 !important}.text-gray-highlight{color:#f7f7f8 !important}.bg-gray{background-color:#8b969e !important}.bg-gray-dark{background-color:#6e7c86 !important}.bg-gray-darker{background-color:#535d68 !important}.bg-gray-darkest{background-color:#3f464e !important}.bg-gray-light{background-color:#a8b1b7 !important}.bg-gray-lighter{background-color:#bec5c9 !important}.bg-gray-lightest{background-color:#cfd4d7 !important}.bg-gray-highlight{background-color:#f7f7f8 !important}.text-success{color:#5fb825 !important}.text-danger{color:#ff4f39 !important}.text-warning{color:#ff821d !important}.text-info{color:#0aa !important}.text-white{color:white !important}.text-light{color:#8b969e !important}.text-lighter{color:#bec5c9 !important}.text-dark{color:#313539 !important}.text-inherit{color:inherit}.text-inherit:hover,.text-inherit:focus{color:inherit}.text-silver{color:#f0f2f4 !important}.text-silver-light{color:#f9fafb !important}.text-silver-dark{color:#e9ebef !important}.text-silver-darker{color:#e4e6eb !important}.text-silver-darkest{color:#dee0e6 !important}.bg-silver{background-color:#f0f2f4}.bg-silver-light{background-color:#f9fafb !important}.bg-silver-dark{background-color:#e9ebef !important}.bg-silver-darker{background-color:#e4e6eb !important}.bg-silver-darkest{background-color:#dee0e6 !important}.bg-transparent{background-color:transparent !important}.faint{opacity:.5}.fainter{opacity:.3}.inherit{color:inherit}::selection{background:#0bb;color:#fff}::-moz-selection{background:#0bb;color:#fff}img{display:block;max-width:100%}[data-bg]{background:transparent no-repeat 50% 50%/cover}body{font-size:1rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;background:#f9fafb;color:#5e666c}*,dt,dd{line-height:calc(1em + .15 * (5rem - 1em));text-align:inherit}a,.a{cursor:pointer;color:#0bb;text-decoration:none}a:hover,a:focus,.a:hover,.a:focus{text-decoration:none;color:#009595}i,.i,em,.em{font-style:oblique}b,.b,strong,.strong{font-weight:bold}mark{background:#edfafa;color:#313539;padding:.1em 0;border-radius:4px}.normal{font-weight:normal !important}iframe{margin:0;display:block}label{margin:.5em 0;font-weight:normal}hr{margin:3em 0;border-top:1px solid rgba(0,30,60,0.075)}blockquote,ul,ol,p,.field,.table{margin:1.5em 0}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{margin:1.5em 0 .5em}ul,ol{padding-left:1.25em}dl dt+dd{margin-bottom:1em}blockquote{padding:0;font-size:inherit}small,.small,.text-small{font-size:.9285714286rem}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{font-weight:bold;letter-spacing:.01em}h5,.h5,h6,.h6,.text-base{font-size:1rem}h4,.h4,.text-large{font-size:1.1428571429rem}h3,.h3,.text-larger{font-size:1.2857142857rem}h1,.h1,h2,.h2,.text-largest{font-size:1.7142857143rem}.text-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.text-mono{font-family:"Monaco",monospace;font-size:.8571428571rem !important}.text-smallcaps{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#8b969e;font-weight:bold;font-style:normal}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 961px){.text-center-large{text-align:center !important}.text-right-large{text-align:right !important}.text-left-large{text-align:left !important}}@media (max-width: 960px){.text-center-small{text-align:center !important}.text-right-small{text-align:right !important}.text-left-small{text-align:left !important}}@media (min-width: 401px){.nowrap{white-space:nowrap}}.condensed{white-space:nowrap;width:1px}.ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wrap{white-space:normal}.break{word-break:break-word}.buffer,.card,.title,.tokens,.settings{margin-top:20px;margin-bottom:20px}*:first-child{margin-top:0}*:last-child{margin-bottom:0}.margin-right{margin-right:.75em !important}.margin-left{margin-left:.75em !important}.margin-right-small{margin-right:.375em !important}.margin-left-small{margin-left:.375em !important}.icn{font-size:16px;top:-1px;width:1em;height:1em;margin:auto;display:inline-block;vertical-align:middle;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.icn use{fill:currentColor}.icn-md{width:1.5em;height:1.5em;-webkit-transform:scale(1.5);transform:scale(1.5);-webkit-transform-origin:0 0;transform-origin:0 0}.icn-lg{width:2em;height:2em;-webkit-transform:scale(2);transform:scale(2);-webkit-transform-origin:0 0;transform-origin:0 0}.glyph{top:-1px;margin:auto;font-size:24px;display:inline-block;vertical-align:middle;transform:translate(0, 0);width:1em;height:1em}.glyph use{fill:none;stroke-width:2;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;transform-origin:0 0;shape-rendering:geometricPrecision}.glyph-solid use{fill:currentColor;stroke-width:0 !important}.glyph-middle,.btn .glyph{margin-top:-10px;margin-bottom:-8px}.glyph-before{margin-right:.25em;margin-left:-.125em}.glyph-after{margin-left:.25em;margin-right:-.125em}.glyph-sm{font-size:16px}.glyph-sm use{stroke-width:3}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-sm use{stroke-width:2.25}}.glyph-md{font-size:36px}.glyph-md use{stroke-width:1.3333333333}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-md use{stroke-width:1}}.glyph-lg{font-size:48px}.glyph-lg use{stroke-width:1}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-lg use{stroke-width:.75}}.glyph-xl{font-size:72px}.glyph-xl use{stroke-width:.6666666667}@media (-webkit-min-device-pixel-ratio: 1.25), (min-device-pixel-ratio: 1.25){.glyph-xl use{stroke-width:.5}}.glyph-check,.glyph-radio{font-size:18px;border:2px solid currentColor;opacity:.25}.glyph-check use,.glyph-radio use{opacity:0}:hover>.glyph-check,:focus ~ .glyph-check,:hover>.glyph-radio,:focus ~ .glyph-radio{opacity:.5}:checked ~ .glyph-check,:disabled ~ .glyph-check,[type="checkbox"]:indeterminate ~ .glyph-check,:checked ~ .glyph-radio,:disabled ~ .glyph-radio,[type="checkbox"]:indeterminate ~ .glyph-radio{border-color:transparent !important}:checked ~ .glyph-check,[type="checkbox"]:indeterminate ~ .glyph-check,:checked ~ .glyph-radio,[type="checkbox"]:indeterminate ~ .glyph-radio{opacity:1;background:#0bb}:checked ~ .glyph-check use,[type="checkbox"]:indeterminate ~ .glyph-check use,:checked ~ .glyph-radio use,[type="checkbox"]:indeterminate ~ .glyph-radio use{opacity:1;color:white}:checked:hover ~ .glyph-check,:checked:focus ~ .glyph-check,[type="checkbox"]:indeterminate:hover ~ .glyph-check,[type="checkbox"]:indeterminate:focus ~ .glyph-check,:hover>:checked ~ .glyph-check,:focus>:checked ~ .glyph-check,:checked:hover ~ .glyph-radio,:checked:focus ~ .glyph-radio,[type="checkbox"]:indeterminate:hover ~ .glyph-radio,[type="checkbox"]:indeterminate:focus ~ .glyph-radio,:hover>:checked ~ .glyph-radio,:focus>:checked ~ .glyph-radio{background:#009595}[type="checkbox"]:indeterminate ~ .glyph-check use,[type="checkbox"]:indeterminate ~ .glyph-radio use{fill:currentColor;stroke:transparent}:disabled ~ .glyph-check,:checked:disabled ~ .glyph-check,[type="checkbox"]:indeterminate:disabled ~ .glyph-check,:disabled ~ .glyph-radio,:checked:disabled ~ .glyph-radio,[type="checkbox"]:indeterminate:disabled ~ .glyph-radio{opacity:.5;background:#dee0e6;color:inherit}:disabled ~ .glyph-check use,:checked:disabled ~ .glyph-check use,[type="checkbox"]:indeterminate:disabled ~ .glyph-check use,:disabled ~ .glyph-radio use,:checked:disabled ~ .glyph-radio use,[type="checkbox"]:indeterminate:disabled ~ .glyph-radio use{color:inherit}.glyph-radio{border-radius:50%}.glyph-radio use{fill:currentColor}.glyph-check{border-radius:4px}select:not([multiple]).form-control{background-size:.75em .75em;background-repeat:no-repeat;background-image:url('+r(n(215))+');background-position:calc( 100% - .875em ) 50%;padding-top:0;padding-bottom:0;padding-right:2.25em}select:not([multiple]).form-control::-ms-value{background:transparent !important}.bootstrap-select button{background-repeat:no-repeat;background-size:auto 1em;background-position:calc(100% - 1.25rem + 5px) 50%;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cG9seWxpbmUgcG9pbnRzPSI0LjUgNiA4IDkuNSAxMS41IDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwOTRiMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==");padding-right:2em !important;-moz-appearance:none}.bootstrap-select button.input-sm,.bootstrap-select .input-group-sm>button.form-control,.bootstrap-select .input-group-sm>button.input-group-addon,.bootstrap-select .input-group-sm>.input-group-btn>button.btn,.bootstrap-select button.sm{background-position:calc(100% - .875rem + 5px) 50%}.bootstrap-select button.input-lg,.bootstrap-select .input-group-lg>button.form-control,.bootstrap-select .input-group-lg>button.input-group-addon,.bootstrap-select .input-group-lg>.input-group-btn>button.btn,.bootstrap-select button.lg{background-position:calc(100% - 1.875rem + 5px) 50%}.bootstrap-select button::-ms-expand{display:none}.btn input,.form-control input,.option input{position:absolute;opacity:0}.option{margin:0}.option:not(.input-group-addon){padding-left:0 !important}.option-flush{padding-left:0 !important;padding-right:0 !important}.option.input-group-addon{padding-left:.875rem;padding-right:.875rem}.option .glyph{margin-right:.375em}/*! jQuery UI - v1.12.1 - 2017-01-20\n* http://jqueryui.com\n* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item:focus,.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-widget{font-size:1rem;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);background:#fff;border-radius:4px;z-index:1050 !important;border-width:0}.ui-widget .ui-state-active,.ui-widget .ui-state-focus{margin:0;background:#0bb}.ui-widget .ui-state-active,.ui-widget .ui-state-active *,.ui-widget .ui-state-focus,.ui-widget .ui-state-focus *{color:#fff}.ui-widget.ui-datepicker{padding-left:10px;padding-right:10px;-webkit-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);-o-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);-webkit-transform:scale(0.75);transform:scale(0.75);-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, transform}.ui-widget.ui-datepicker.ui-widget-active{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}.ui-widget.ui-datepicker .ui-datepicker-prev{top:2px !important;left:2px !important}.ui-widget.ui-datepicker .ui-datepicker-next{top:2px !important;right:2px !important}.ui-widget.ui-datepicker .ui-datepicker-month{font-weight:bold}.ui-widget.ui-datepicker tr>* a{text-align:center}.ui-widget.ui-datepicker td a{padding:.3em}.ui-widget.ui-autocomplete{padding:5px 0;max-height:240px;overflow:auto}.ui-widget.ui-autocomplete li{border:0;padding:0}.ui-widget.ui-autocomplete li .ui-menu-item-wrapper{padding:.4464285714rem 1.25rem}.ui-widget.ui-autocomplete li *{margin-top:0;margin-bottom:0}.ui-widget.ui-autocomplete li+li.ui-separator{margin-top:5px;padding-top:6px;border-top:1px solid rgba(0,30,60,0.075)}.ui-widget .ui-icon{overflow:visible}.ui-widget .ui-icon-circle-triangle-w:after,.ui-widget .ui-icon-circle-triangle-e:after{content:\'\';display:block;border:5px solid;border-top-color:transparent;border-bottom-color:transparent;position:absolute;width:0;height:0;top:5px;left:0}.ui-widget .ui-icon-circle-triangle-w:after{border-left-color:transparent}.ui-widget .ui-icon-circle-triangle-e:after{border-right-color:transparent;left:5px}.ui-sortable-handle,.ui-draggable-handle{cursor:move}tr.ui-sortable-helper{box-shadow:0 7px 10px rgba(0,0,0,0.2);border-radius:4px;display:table;z-index:2}tr.ui-sortable-helper>td,tr.ui-sortable-helper th{border:0 !important}tr.ui-sortable-helper>td:first-child,tr.ui-sortable-helper th:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}tr.ui-sortable-helper>td:last-child,tr.ui-sortable-helper th:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.ui-draggable-dragging,.ui-sortable-sorting{z-index:5001 !important}.ui-resizable-n,.ui-resizable-s{cursor:ns-resize}.ui-resizable-e,.ui-resizable-w{cursor:ew-resize}.caret,.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border:0 !important;margin-left:0;width:auto;height:auto;display:inline}.caret:after,.dropup .caret:after,.navbar-fixed-bottom .dropdown .caret:after{font-family:"arrows";text-transform:none;font-style:normal;font-weight:normal;line-height:.5;content:" c "}.dropdown-menu{-webkit-transform:scale(0.75);transform:scale(0.75);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);-o-transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);transition:all 0.1875s cubic-bezier(0.25, 0, 0, 1.375);font-size:1rem;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);border-radius:4px !important;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, transform;padding:5px 0 !important;pointer-events:none;font-style:normal;border-width:0;display:block;left:-9999px;max-height:50vh;min-width:100%;max-width:240px;overflow:auto;opacity:0;margin:0}.dropdown-menu>li>a{margin:0;display:block;padding:.25em 15px}.dropdown-menu>li>a>*{margin:0}.dropdown-menu>li>a em{font-style:oblique;color:#8b969e}.dropdown-menu>li>a [data-icon]{margin-right:.25em}.dropdown-menu .divider{margin:5px 0}.dropdown-menu .dropdown-header{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;padding:.5em 15px !important}.dropdown-menu-lg>li>*{padding-top:.5em;padding-bottom:.5em}.dropdown-menu-right{left:auto;right:9999px}.dropdown.open>.dropdown-menu{pointer-events:auto;-webkit-transform:scale(1);transform:scale(1);opacity:1;left:0}.dropdown.open>.dropdown-menu-right{right:0;left:auto}.dropdown{cursor:pointer}.dropdown-inline{display:inline-block}.form-group>*:not(:last-child),.form-inline>*:not(:last-child){margin-right:1em}.form-horizontal .form-group>*:not(:last-child),.form-horizontal .form-inline>*:not(:last-child){margin-right:0}.form-group>* label,.form-inline>* label{vertical-align:middle;margin:.6785714286rem 0}.help-block{display:block;color:#8b969e;font-style:oblique;font-weight:normal;font-size:.9285714286rem;margin:.25em 0}.help-block:empty{display:none}.help-block p{margin:0;display:inline}.help-block-inline{display:inline}.form-group-lg{font-size:1.1428571429rem}.form-footer{margin:2em 0}.form-footer:first-child{margin-top:0}.form-footer:last-child{margin-bottom:0}.btn{border-width:0;margin:0;cursor:pointer;overflow:hidden;text-overflow:ellipsis;font-size:1rem;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);height:2.8571428571rem;line-height:1.5 !important;font-weight:bold;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03)}.btn-red{color:#fff;background-color:#ff694b;border-color:#ff694b}.btn-red:focus,.btn-red.focus{color:#fff;background-color:#ff3c2b}.btn-red:hover{color:#fff;background-color:#ff3c2b}.btn-red:active,.btn-red.active,.open>.btn-red.dropdown-toggle{color:#fff;background-color:#ff3c2b}.btn-red:active:hover,.btn-red:active:focus,.btn-red:active.focus,.btn-red.active:hover,.btn-red.active:focus,.btn-red.active.focus,.open>.btn-red.dropdown-toggle:hover,.open>.btn-red.dropdown-toggle:focus,.open>.btn-red.dropdown-toggle.focus{color:#fff;background-color:#ff3c2b}.btn-red:active,.btn-red.active,.open>.btn-red.dropdown-toggle{background-image:none}.btn-red.disabled:hover,.btn-red.disabled:focus,.btn-red.disabled.focus,.btn-red[disabled]:hover,.btn-red[disabled]:focus,.btn-red[disabled].focus,fieldset[disabled] .btn-red:hover,fieldset[disabled] .btn-red:focus,fieldset[disabled] .btn-red.focus{background-color:#ff694b;border-color:#ff694b}.btn-red .badge{color:#ff694b;background-color:#fff}.btn-blue{color:#fff;background-color:#0bb;border-color:#0bb}.btn-blue:focus,.btn-blue.focus{color:#fff;background-color:#009595}.btn-blue:hover{color:#fff;background-color:#009595}.btn-blue:active,.btn-blue.active,.open>.btn-blue.dropdown-toggle{color:#fff;background-color:#009595}.btn-blue:active:hover,.btn-blue:active:focus,.btn-blue:active.focus,.btn-blue.active:hover,.btn-blue.active:focus,.btn-blue.active.focus,.open>.btn-blue.dropdown-toggle:hover,.open>.btn-blue.dropdown-toggle:focus,.open>.btn-blue.dropdown-toggle.focus{color:#fff;background-color:#009595}.btn-blue:active,.btn-blue.active,.open>.btn-blue.dropdown-toggle{background-image:none}.btn-blue.disabled:hover,.btn-blue.disabled:focus,.btn-blue.disabled.focus,.btn-blue[disabled]:hover,.btn-blue[disabled]:focus,.btn-blue[disabled].focus,fieldset[disabled] .btn-blue:hover,fieldset[disabled] .btn-blue:focus,fieldset[disabled] .btn-blue.focus{background-color:#0bb;border-color:#0bb}.btn-blue .badge{color:#0bb;background-color:#fff}.btn-navy{color:#fff;background-color:#005e7a;border-color:#005e7a}.btn-navy:focus,.btn-navy.focus{color:#fff;background-color:#003645}.btn-navy:hover{color:#fff;background-color:#003645}.btn-navy:active,.btn-navy.active,.open>.btn-navy.dropdown-toggle{color:#fff;background-color:#003645}.btn-navy:active:hover,.btn-navy:active:focus,.btn-navy:active.focus,.btn-navy.active:hover,.btn-navy.active:focus,.btn-navy.active.focus,.open>.btn-navy.dropdown-toggle:hover,.open>.btn-navy.dropdown-toggle:focus,.open>.btn-navy.dropdown-toggle.focus{color:#fff;background-color:#003645}.btn-navy:active,.btn-navy.active,.open>.btn-navy.dropdown-toggle{background-image:none}.btn-navy.disabled:hover,.btn-navy.disabled:focus,.btn-navy.disabled.focus,.btn-navy[disabled]:hover,.btn-navy[disabled]:focus,.btn-navy[disabled].focus,fieldset[disabled] .btn-navy:hover,fieldset[disabled] .btn-navy:focus,fieldset[disabled] .btn-navy.focus{background-color:#005e7a;border-color:#005e7a}.btn-navy .badge{color:#005e7a;background-color:#fff}.btn-green{color:#fff;background-color:#7ec631;border-color:#7ec631}.btn-green:focus,.btn-green.focus{color:#fff;background-color:#48a71c}.btn-green:hover{color:#fff;background-color:#48a71c}.btn-green:active,.btn-green.active,.open>.btn-green.dropdown-toggle{color:#fff;background-color:#48a71c}.btn-green:active:hover,.btn-green:active:focus,.btn-green:active.focus,.btn-green.active:hover,.btn-green.active:focus,.btn-green.active.focus,.open>.btn-green.dropdown-toggle:hover,.open>.btn-green.dropdown-toggle:focus,.open>.btn-green.dropdown-toggle.focus{color:#fff;background-color:#48a71c}.btn-green:active,.btn-green.active,.open>.btn-green.dropdown-toggle{background-image:none}.btn-green.disabled:hover,.btn-green.disabled:focus,.btn-green.disabled.focus,.btn-green[disabled]:hover,.btn-green[disabled]:focus,.btn-green[disabled].focus,fieldset[disabled] .btn-green:hover,fieldset[disabled] .btn-green:focus,fieldset[disabled] .btn-green.focus{background-color:#7ec631;border-color:#7ec631}.btn-green .badge{color:#7ec631;background-color:#fff}.btn-orange{color:#fff;background-color:#ff694b;border-color:#ff694b}.btn-orange:focus,.btn-orange.focus{color:#fff;background-color:#ff3c2b}.btn-orange:hover{color:#fff;background-color:#ff3c2b}.btn-orange:active,.btn-orange.active,.open>.btn-orange.dropdown-toggle{color:#fff;background-color:#ff3c2b}.btn-orange:active:hover,.btn-orange:active:focus,.btn-orange:active.focus,.btn-orange.active:hover,.btn-orange.active:focus,.btn-orange.active.focus,.open>.btn-orange.dropdown-toggle:hover,.open>.btn-orange.dropdown-toggle:focus,.open>.btn-orange.dropdown-toggle.focus{color:#fff;background-color:#ff3c2b}.btn-orange:active,.btn-orange.active,.open>.btn-orange.dropdown-toggle{background-image:none}.btn-orange.disabled:hover,.btn-orange.disabled:focus,.btn-orange.disabled.focus,.btn-orange[disabled]:hover,.btn-orange[disabled]:focus,.btn-orange[disabled].focus,fieldset[disabled] .btn-orange:hover,fieldset[disabled] .btn-orange:focus,fieldset[disabled] .btn-orange.focus{background-color:#ff694b;border-color:#ff694b}.btn-orange .badge{color:#ff694b;background-color:#fff}.btn-yellow{color:#fff;background-color:#fc0;border-color:#fc0}.btn-yellow:focus,.btn-yellow.focus{color:#fff;background-color:#ffb100}.btn-yellow:hover{color:#fff;background-color:#ffb100}.btn-yellow:active,.btn-yellow.active,.open>.btn-yellow.dropdown-toggle{color:#fff;background-color:#ffb100}.btn-yellow:active:hover,.btn-yellow:active:focus,.btn-yellow:active.focus,.btn-yellow.active:hover,.btn-yellow.active:focus,.btn-yellow.active.focus,.open>.btn-yellow.dropdown-toggle:hover,.open>.btn-yellow.dropdown-toggle:focus,.open>.btn-yellow.dropdown-toggle.focus{color:#fff;background-color:#ffb100}.btn-yellow:active,.btn-yellow.active,.open>.btn-yellow.dropdown-toggle{background-image:none}.btn-yellow.disabled:hover,.btn-yellow.disabled:focus,.btn-yellow.disabled.focus,.btn-yellow[disabled]:hover,.btn-yellow[disabled]:focus,.btn-yellow[disabled].focus,fieldset[disabled] .btn-yellow:hover,fieldset[disabled] .btn-yellow:focus,fieldset[disabled] .btn-yellow.focus{background-color:#fc0;border-color:#fc0}.btn-yellow .badge{color:#fc0;background-color:#fff}.btn-purple{color:#fff;background-color:#7f6cc5;border-color:#7f6cc5}.btn-purple:focus,.btn-purple.focus{color:#fff;background-color:#483da5}.btn-purple:hover{color:#fff;background-color:#483da5}.btn-purple:active,.btn-purple.active,.open>.btn-purple.dropdown-toggle{color:#fff;background-color:#483da5}.btn-purple:active:hover,.btn-purple:active:focus,.btn-purple:active.focus,.btn-purple.active:hover,.btn-purple.active:focus,.btn-purple.active.focus,.open>.btn-purple.dropdown-toggle:hover,.open>.btn-purple.dropdown-toggle:focus,.open>.btn-purple.dropdown-toggle.focus{color:#fff;background-color:#483da5}.btn-purple:active,.btn-purple.active,.open>.btn-purple.dropdown-toggle{background-image:none}.btn-purple.disabled:hover,.btn-purple.disabled:focus,.btn-purple.disabled.focus,.btn-purple[disabled]:hover,.btn-purple[disabled]:focus,.btn-purple[disabled].focus,fieldset[disabled] .btn-purple:hover,fieldset[disabled] .btn-purple:focus,fieldset[disabled] .btn-purple.focus{background-color:#7f6cc5;border-color:#7f6cc5}.btn-purple .badge{color:#7f6cc5;background-color:#fff}.btn-white{color:#484e53;background-color:#fff;border-color:#fff}.btn-white:focus,.btn-white.focus{color:#484e53;background-color:#f9fafb}.btn-white:hover{color:#484e53;background-color:#f9fafb}.btn-white:active,.btn-white.active,.open>.btn-white.dropdown-toggle{color:#484e53;background-color:#f9fafb}.btn-white:active:hover,.btn-white:active:focus,.btn-white:active.focus,.btn-white.active:hover,.btn-white.active:focus,.btn-white.active.focus,.open>.btn-white.dropdown-toggle:hover,.open>.btn-white.dropdown-toggle:focus,.open>.btn-white.dropdown-toggle.focus{color:#484e53;background-color:#f9fafb}.btn-white:active,.btn-white.active,.open>.btn-white.dropdown-toggle{background-image:none}.btn-white.disabled:hover,.btn-white.disabled:focus,.btn-white.disabled.focus,.btn-white[disabled]:hover,.btn-white[disabled]:focus,.btn-white[disabled].focus,fieldset[disabled] .btn-white:hover,fieldset[disabled] .btn-white:focus,fieldset[disabled] .btn-white.focus{background-color:#fff;border-color:#fff}.btn-white .badge{color:#fff;background-color:#484e53}.btn-default{color:#484e53;background-color:#f0f2f4;border-color:#f0f2f4}.btn-default:focus,.btn-default.focus{color:#484e53;background-color:#e9ebef}.btn-default:hover{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#484e53;background-color:#e9ebef}.btn-default:active:hover,.btn-default:active:focus,.btn-default:active.focus,.btn-default.active:hover,.btn-default.active:focus,.btn-default.active.focus,.open>.btn-default.dropdown-toggle:hover,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle.focus{color:#484e53;background-color:#e9ebef}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus{background-color:#f0f2f4;border-color:#f0f2f4}.btn-default .badge{color:#f0f2f4;background-color:#484e53}.btn-clear,.btn-text,.btn-link{background:transparent !important}.btn-text,.btn.text-inherit{color:inherit}.btn-text:hover,.btn-text:focus,.btn.text-inherit:hover,.btn.text-inherit:focus{color:inherit}.btn[class*="btn-highlight"],.btn-default,.btn-clear,.btn-text,.btn-link{box-shadow:none}.btn-highlight-info{color:#0aa;background-color:#edfafa;border-color:transparent}.btn-highlight-info:focus,.btn-highlight-info.focus{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:hover{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:active,.btn-highlight-info.active,.open>.btn-highlight-info.dropdown-toggle{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:active:hover,.btn-highlight-info:active:focus,.btn-highlight-info:active.focus,.btn-highlight-info.active:hover,.btn-highlight-info.active:focus,.btn-highlight-info.active.focus,.open>.btn-highlight-info.dropdown-toggle:hover,.open>.btn-highlight-info.dropdown-toggle:focus,.open>.btn-highlight-info.dropdown-toggle.focus{color:#0aa;background-color:#e4f8f8}.btn-highlight-info:active,.btn-highlight-info.active,.open>.btn-highlight-info.dropdown-toggle{background-image:none}.btn-highlight-info.disabled:hover,.btn-highlight-info.disabled:focus,.btn-highlight-info.disabled.focus,.btn-highlight-info[disabled]:hover,.btn-highlight-info[disabled]:focus,.btn-highlight-info[disabled].focus,fieldset[disabled] .btn-highlight-info:hover,fieldset[disabled] .btn-highlight-info:focus,fieldset[disabled] .btn-highlight-info.focus{background-color:#edfafa;border-color:transparent}.btn-highlight-info .badge{color:#edfafa;background-color:#0aa}.btn-highlight-success{color:#48a71c;background-color:#f3faec;border-color:transparent}.btn-highlight-success:focus,.btn-highlight-success.focus{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:hover{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:active,.btn-highlight-success.active,.open>.btn-highlight-success.dropdown-toggle{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:active:hover,.btn-highlight-success:active:focus,.btn-highlight-success:active.focus,.btn-highlight-success.active:hover,.btn-highlight-success.active:focus,.btn-highlight-success.active.focus,.open>.btn-highlight-success.dropdown-toggle:hover,.open>.btn-highlight-success.dropdown-toggle:focus,.open>.btn-highlight-success.dropdown-toggle.focus{color:#48a71c;background-color:#edf8e3}.btn-highlight-success:active,.btn-highlight-success.active,.open>.btn-highlight-success.dropdown-toggle{background-image:none}.btn-highlight-success.disabled:hover,.btn-highlight-success.disabled:focus,.btn-highlight-success.disabled.focus,.btn-highlight-success[disabled]:hover,.btn-highlight-success[disabled]:focus,.btn-highlight-success[disabled].focus,fieldset[disabled] .btn-highlight-success:hover,fieldset[disabled] .btn-highlight-success:focus,fieldset[disabled] .btn-highlight-success.focus{background-color:#f3faec;border-color:transparent}.btn-highlight-success .badge{color:#f3faec;background-color:#48a71c}.btn-highlight-danger{color:#ff694b;background-color:#fff5f4;border-color:transparent}.btn-highlight-danger:focus,.btn-highlight-danger.focus{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:hover{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:active,.btn-highlight-danger.active,.open>.btn-highlight-danger.dropdown-toggle{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:active:hover,.btn-highlight-danger:active:focus,.btn-highlight-danger:active.focus,.btn-highlight-danger.active:hover,.btn-highlight-danger.active:focus,.btn-highlight-danger.active.focus,.open>.btn-highlight-danger.dropdown-toggle:hover,.open>.btn-highlight-danger.dropdown-toggle:focus,.open>.btn-highlight-danger.dropdown-toggle.focus{color:#ff694b;background-color:#fff0ef}.btn-highlight-danger:active,.btn-highlight-danger.active,.open>.btn-highlight-danger.dropdown-toggle{background-image:none}.btn-highlight-danger.disabled:hover,.btn-highlight-danger.disabled:focus,.btn-highlight-danger.disabled.focus,.btn-highlight-danger[disabled]:hover,.btn-highlight-danger[disabled]:focus,.btn-highlight-danger[disabled].focus,fieldset[disabled] .btn-highlight-danger:hover,fieldset[disabled] .btn-highlight-danger:focus,fieldset[disabled] .btn-highlight-danger.focus{background-color:#fff5f4;border-color:transparent}.btn-highlight-danger .badge{color:#fff5f4;background-color:#ff694b}.btn-highlight-warning{color:#ff6316;background-color:#fff6ec;border-color:transparent}.btn-highlight-warning:focus,.btn-highlight-warning.focus{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:hover{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:active,.btn-highlight-warning.active,.open>.btn-highlight-warning.dropdown-toggle{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:active:hover,.btn-highlight-warning:active:focus,.btn-highlight-warning:active.focus,.btn-highlight-warning.active:hover,.btn-highlight-warning.active:focus,.btn-highlight-warning.active.focus,.open>.btn-highlight-warning.dropdown-toggle:hover,.open>.btn-highlight-warning.dropdown-toggle:focus,.open>.btn-highlight-warning.dropdown-toggle.focus{color:#ff6316;background-color:#fff2e3}.btn-highlight-warning:active,.btn-highlight-warning.active,.open>.btn-highlight-warning.dropdown-toggle{background-image:none}.btn-highlight-warning.disabled:hover,.btn-highlight-warning.disabled:focus,.btn-highlight-warning.disabled.focus,.btn-highlight-warning[disabled]:hover,.btn-highlight-warning[disabled]:focus,.btn-highlight-warning[disabled].focus,fieldset[disabled] .btn-highlight-warning:hover,fieldset[disabled] .btn-highlight-warning:focus,fieldset[disabled] .btn-highlight-warning.focus{background-color:#fff6ec;border-color:transparent}.btn-highlight-warning .badge{color:#fff6ec;background-color:#ff6316}.btn-lg,.btn-group-lg>.btn{height:4.2857142857rem;font-size:1.1428571429rem}.btn-sm,.btn-group-sm>.btn{height:2.2857142857rem;font-size:.9285714286rem}.btn-xs,.btn-group-xs>.btn{padding:.1607142857rem .625rem;height:1.7142857143rem;font-size:.9285714286rem}.btn-md{padding:.3928571429rem 1.5rem;height:3.7142857143rem;font-size:1rem}.btn-pill{border-radius:200px }.btn-icon{padding-left:0;padding-right:0;width:2.8571428571rem;min-width:2.8571428571rem}.btn-icon.btn-xs,.btn-group-xs>.btn-icon.btn{width:1.7142857143rem;min-width:1.7142857143rem}.btn-icon.btn-sm,.btn-group-sm>.btn-icon.btn{width:2.2857142857rem;min-width:2.2857142857rem}.btn-icon.btn-md{width:3.7142857143rem;min-width:3.7142857143rem}.btn-icon.btn-lg,.btn-group-lg>.btn-icon.btn{width:4.2857142857rem;min-width:4.2857142857rem}.btn-icon .icon,.btn-icon .glyph{margin:0;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.btn-icon-slim{min-width:0}.btn-block,.btn-slim,.btn-link,.btn-text{padding-left:0;padding-right:0}.btn.active,.btn:active{-webkit-box-shadow:none;box-shadow:none}.btn.disabled,.btn[disabled]{opacity:.375}.btn-file:before{content:attr(data-placeholder)}.btn-file[data-value]:before{content:attr(data-placeholder) " "}.btn-file[data-value]:after{content:"(" attr(data-value) ")"}.btn-file input{position:absolute;opacity:0}.btn-inliner .btn{margin-bottom:.3rem}.btn-toolbar{margin-left:-2px;margin-right:-2px;font-size:0}.btn-toolbar .btn-group{margin-left:2px;margin-right:2px;float:none}.form-control,.input-group-addon,.form-control-static,.form-grid .form-row .form-label label,.option{line-height:1.5 !important;border-width:0 !important;font-size:1rem}.form-group-lg .form-control,.input-group-lg .form-control,.form-group-lg .input-group-addon,.input-group-lg .input-group-addon,.form-group-lg .form-control-static,.form-group-lg .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-lg label,.input-group-lg .form-control-static,.input-group-lg .form-grid .form-row .form-label label,.form-grid .form-row .form-label .input-group-lg label,.form-group-lg .option,.input-group-lg .option{font-size:1.1428571429rem}.form-group-sm .form-control,.input-group-sm .form-control,.form-group-sm .input-group-addon,.input-group-sm .input-group-addon,.form-group-sm .form-control-static,.form-group-sm .form-grid .form-row .form-label label,.form-grid .form-row .form-label .form-group-sm label,.input-group-sm .form-control-static,.input-group-sm .form-grid .form-row .form-label label,.form-grid .form-row .form-label .input-group-sm label,.form-group-sm .option,.input-group-sm .option{font-size:.9285714286rem}.form-control.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-btn>.form-control.btn,.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn,.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-lg>label.form-control,.input-group-lg>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-lg>label.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-lg>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-lg,.option.input-lg,.input-group-lg>.option.form-control,.input-group-lg>.option.input-group-addon,.input-group-lg>.input-group-btn>.option.btn{font-size:1.1428571429rem}.form-control.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-btn>.form-control.btn,.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-sm>label.form-control,.input-group-sm>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-sm>label.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-sm>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-sm,.option.input-sm,.input-group-sm>.option.form-control,.input-group-sm>.option.input-group-addon,.input-group-sm>.input-group-btn>.option.btn{font-size:.9285714286rem}.form-control::-ms-expand,.input-group-addon::-ms-expand,.form-control-static::-ms-expand,.form-grid .form-row .form-label label::-ms-expand,.option::-ms-expand{display:none}.form-control::-ms-clear,.input-group-addon::-ms-clear,.form-control-static::-ms-clear,.form-grid .form-row .form-label label::-ms-clear,.option::-ms-clear{display:none}.form-control::-ms-value,.input-group-addon::-ms-value,.form-control-static::-ms-value,.form-grid .form-row .form-label label::-ms-value,.option::-ms-value{background:transparent !important}.form-control,.form-control-static,.form-grid .form-row .form-label label,textarea.form-control,.option{height:2.8571428571rem;line-height:1.5 !important;padding:.6785714286rem 1.25rem;border:0}.form-control.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-btn>.form-control.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-sm>label.form-control,.input-group-sm>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-sm>label.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-sm>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-sm,textarea.form-control.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>.input-group-btn>textarea.form-control.btn,.option.input-sm,.input-group-sm>.option.form-control,.input-group-sm>.option.input-group-addon,.input-group-sm>.input-group-btn>.option.btn{height:2.2857142857rem;min-height:2.2857142857rem;padding:.4464285714rem .875rem}.form-control.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-btn>.form-control.btn,.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.form-grid .form-row .form-label .input-group-lg>label.form-control,.input-group-lg>.form-control-static.input-group-addon,.form-grid .form-row .form-label .input-group-lg>label.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-grid .form-row .form-label .input-group-lg>.input-group-btn>label.btn,.form-grid .form-row .form-label label.input-lg,textarea.form-control.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>.input-group-btn>textarea.form-control.btn,.option.input-lg,.input-group-lg>.option.form-control,.input-group-lg>.option.input-group-addon,.input-group-lg>.input-group-btn>.option.btn{height:4.2857142857rem;min-height:4.2857142857rem;padding:1.2857142857rem 1.875rem}.form-control.input-md,.form-control-static.input-md,.form-grid .form-row .form-label label.input-md,textarea.form-control.input-md,.option.input-md{height:2.2857142857rem;min-height:2.2857142857rem;padding:.3928571429rem .875rem}textarea.form-control:not(.form-control-height){height:6em}.form-control{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-transition-property:color,background-color,box-shadow;transition-property:color,background-color,box-shadow;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;text-overflow:ellipsis;box-shadow:none;color:#484e53}.form-control::-moz-placeholder{color:#a8b1b7;opacity:1}.form-control:-ms-input-placeholder{color:#a8b1b7}.form-control::-webkit-input-placeholder{color:#a8b1b7}.form-control.input-short{width:64px}.form-control.input-medium{width:240px}.form-control.input-long{width:100%}.form-control.input-pill{border-radius:200px !important}.form-control.input-dark{background-color:#00475c;color:white}.form-control.input-dark:hover,.form-control.input-dark:focus{background-color:white;color:#313539}.form-control.input-dark::-moz-placeholder{color:#00afc6;opacity:1}.form-control.input-dark:-ms-input-placeholder{color:#00afc6}.form-control.input-dark::-webkit-input-placeholder{color:#00afc6}.form-control.input-transparent{background-color:transparent}.form-control.input-white{background-color:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03)}.form-control:not(:disabled):not(.disabled):hover{background-color:#e9ebef}.form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#5e666c;opacity:1}.form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#5e666c}.form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#5e666c}.form-control:not(:disabled):not(.disabled):hover.input-white{background-color:#f9fafb}.form-control:focus{color:#484e53 !important;background-color:white !important;box-shadow:0 0 0 1px #0bb,0 15px 15px -7.5px rgba(0,0,0,0.15);border-radius:4px !important;z-index:3}.form-control:focus::-moz-placeholder{color:#8b969e !important;opacity:1}.form-control:focus:-ms-input-placeholder{color:#8b969e !important}.form-control:focus::-webkit-input-placeholder{color:#8b969e !important}.form-control[type="number"]:not(.spinner){-moz-appearance:textfield}.form-control[type="number"]:not(.spinner)::-webkit-inner-spin-button,.form-control[type="number"]:not(.spinner)::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-control-static,.form-grid .form-row .form-label label{display:block;height:auto !important;padding-left:0 !important;padding-right:0 !important;color:#484e53}.has-info .input-group-addon,.has-info .form-control{border-color:transparent !important;background-color:#edfafa;box-shadow:none}.has-info .input-group-addon::-moz-placeholder,.has-info .form-control::-moz-placeholder{color:#80d5d5;opacity:1}.has-info .input-group-addon:-ms-input-placeholder,.has-info .form-control:-ms-input-placeholder{color:#80d5d5}.has-info .input-group-addon::-webkit-input-placeholder,.has-info .form-control::-webkit-input-placeholder{color:#80d5d5}.has-info .input-group-addon,.has-info .form-control{color:#0aa}.has-info .form-control:not(:disabled):not(.disabled):hover{background-color:#def7f7;color:#007b7b}.has-info .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#40bfbf;opacity:1}.has-info .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#40bfbf}.has-info .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#40bfbf}.has-info .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #0bb,0 15px 15px -7.5px rgba(0,0,0,0.15)}.has-success .input-group-addon,.has-success .form-control{border-color:transparent !important;background-color:#f3faec;box-shadow:none}.has-success .input-group-addon::-moz-placeholder,.has-success .form-control::-moz-placeholder{color:#a4d38e;opacity:1}.has-success .input-group-addon:-ms-input-placeholder,.has-success .form-control:-ms-input-placeholder{color:#a4d38e}.has-success .input-group-addon::-webkit-input-placeholder,.has-success .form-control::-webkit-input-placeholder{color:#a4d38e}.has-success .input-group-addon,.has-success .form-control{color:#48a71c}.has-success .form-control:not(:disabled):not(.disabled):hover{background-color:#e9f7dc;color:#297610}.has-success .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#76bd55;opacity:1}.has-success .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#76bd55}.has-success .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#76bd55}.has-success .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #7ec631,0 15px 15px -7.5px rgba(0,0,0,0.15)}.has-warning .input-group-addon,.has-warning .form-control{border-color:transparent !important;background-color:#fff6ec;box-shadow:none}.has-warning .input-group-addon::-moz-placeholder,.has-warning .form-control::-moz-placeholder{color:#ffb18b;opacity:1}.has-warning .input-group-addon:-ms-input-placeholder,.has-warning .form-control:-ms-input-placeholder{color:#ffb18b}.has-warning .input-group-addon::-webkit-input-placeholder,.has-warning .form-control::-webkit-input-placeholder{color:#ffb18b}.has-warning .input-group-addon,.has-warning .form-control{color:#ff6316}.has-warning .form-control:not(:disabled):not(.disabled):hover{background-color:#ffefdc;color:#ff390d}.has-warning .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#ff8a50;opacity:1}.has-warning .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#ff8a50}.has-warning .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#ff8a50}.has-warning .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #ff9b26,0 15px 15px -7.5px rgba(0,0,0,0.15)}.has-danger .input-group-addon,.has-danger .form-control,.has-error .input-group-addon,.has-error .form-control{border-color:transparent !important;background-color:#fff5f4;box-shadow:none}.has-danger .input-group-addon::-moz-placeholder,.has-danger .form-control::-moz-placeholder,.has-error .input-group-addon::-moz-placeholder,.has-error .form-control::-moz-placeholder{color:#ffb4a5;opacity:1}.has-danger .input-group-addon:-ms-input-placeholder,.has-danger .form-control:-ms-input-placeholder,.has-error .input-group-addon:-ms-input-placeholder,.has-error .form-control:-ms-input-placeholder{color:#ffb4a5}.has-danger .input-group-addon::-webkit-input-placeholder,.has-danger .form-control::-webkit-input-placeholder,.has-error .input-group-addon::-webkit-input-placeholder,.has-error .form-control::-webkit-input-placeholder{color:#ffb4a5}.has-danger .input-group-addon,.has-danger .form-control,.has-error .input-group-addon,.has-error .form-control{color:#ff694b}.has-danger .form-control:not(:disabled):not(.disabled):hover,.has-error .form-control:not(:disabled):not(.disabled):hover{background-color:#ffedeb;color:#ff3c2b}.has-danger .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder,.has-error .form-control:not(:disabled):not(.disabled):hover::-moz-placeholder{color:#ff8f78;opacity:1}.has-danger .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder,.has-error .form-control:not(:disabled):not(.disabled):hover:-ms-input-placeholder{color:#ff8f78}.has-danger .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder,.has-error .form-control:not(:disabled):not(.disabled):hover::-webkit-input-placeholder{color:#ff8f78}.has-danger .form-control:not(:disabled):not(.disabled):focus,.has-error .form-control:not(:disabled):not(.disabled):focus{box-shadow:0 0 0 1px #ff694b,0 15px 15px -7.5px rgba(0,0,0,0.15)}.input-group-rounded>*:first-child,.input-group-rounded>*:first-child.input-group-btn .btn{border-top-left-radius:100px;border-bottom-left-radius:100px}.input-group-rounded>*:last-child,.input-group-rounded>*:last-child.input-group-btn .btn{border-top-right-radius:100px;border-bottom-right-radius:100px}.input-group-addon{color:#8b969e}.table tr.success{box-shadow:inset rgba(0,30,60,0.03) 0 0 #7ec631}.table tr.info{box-shadow:inset rgba(0,30,60,0.03) 0 0 #0bb}.table tr.warning{box-shadow:inset rgba(0,30,60,0.03) 0 0 #fc0}.table tr.danger{box-shadow:inset rgba(0,30,60,0.03) 0 0 #ff694b}.table-flush th:first-child,.table-flush td:first-child{padding-left:0}.table-flush th:last-child,.table-flush td:last-child{padding-right:0}.table-justified th:last-child,.table-justified td:last-child{text-align:right}th.sm,td.sm{width:1px;white-space:nowrap}th.flush-left,td.flush-left{padding-left:0 !important}th.flush-right,td.flush-right{padding-right:0 !important}.table:not(.table-borderless)>thead>tr>*{border-width:1px}thead>tr>*,.table-label{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;color:#8b969e}.table-borderless tr *{border-width:0 !important}.table tbody+tbody{border-top-width:1px}.table-compact th *,.table-compact td *{margin-top:0;margin-bottom:0}.table-middle th,.table-middle td{vertical-align:middle !important}.table-large{font-size:1rem}.table-large tbody th,.table-large tbody td,.table-large>td,.table-large>th{padding-top:1rem !important;padding-bottom:1rem !important}.card .table th,.card .table td{padding-left:1.875rem;padding-right:1.875rem}.table-condensed{font-size:.9285714286rem}.table-responsive{border-radius:4px}@media (min-width: 961px){.table-responsive{overflow:visible}}@media (max-width: 960px){.table-responsive{overflow:auto}html.touch .table-responsive{overflow:scroll;-webkit-overflow-scrolling:touch}}@media (min-width: 961px){.table-alignment{margin-left:-1.25rem;margin-right:-1.25rem}}.table-linked{overflow:hidden}.table-linked a{z-index:3}.table-linked .table-link{width:0 !important;padding:0 !important;vertical-align:top !important}.table-linked .table-link .table-anchor{position:absolute;display:block;height:100%;width:1000vw;z-index:2}.table{display:table}.table-caption{display:table-caption}.table-colgroup{display:table-column-group}.table-thead{display:table-header-group}.table-tfoot{display:table-footer-group}.table-tbody{display:table-row-group}.table-td{display:table-cell}.table-col{display:table-column}.table-tr{display:table-row}.table-sticky{box-shadow:0 1px 0 #ecedee;z-index:2;position:sticky;top:0;background:#f9fafb}tbody .table-sticky{top:28px;background:white}.table .secondary td,.table .secondary th{background:#f9fafb;color:#8b969e}.nav-stacked .nav-stacked{font-size:.9285714286rem}.nav-stacked .nav-stacked>li{margin-left:1em}.nav-stacked .nav-stacked>li>a{color:#8b969e}.nav-tabs{border:0;box-shadow:0 1px 0 rgba(0,30,60,0.075);color:#313539;display:flex;flex-direction:row;flex-wrap:wrap}.nav-tabs:before,.nav-tabs:after{display:none}.nav-tabs>li{float:none;flex:0 0 auto;background:transparent !important;margin:0}.nav-tabs>li:not(:first-child){margin-left:.75em}.nav-tabs>li:not(:last-child){margin-right:.75em}.nav-tabs>li>a,.nav-tabs>li>span{display:block;line-height:1.5;background:transparent !important;padding:1.2857142857rem 0;margin:0 !important;border:0 !important;border-radius:0}.nav-tabs>li.active{box-shadow:0 1px 0 #0bb}.nav-tabs>li.active a{color:#313539}.nav-tabs-sm>li>a,.nav-tabs-sm>li>span{font-size:.9285714286rem;padding:.6785714286rem 0}.nav-tabs-fill>li{flex:1 0 auto;margin:0 !important}.nav-tabs-fill>li>a,.nav-tabs-fill>li>span{text-align:center;padding-left:20px;padding-right:20px}html.touch .nav-tabs{flex-wrap:nowrap;overflow:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch}.card-tabs .nav-tabs{background:#f0f2f4;border-radius:4px 4px 0 0}.card-tabs .nav-tabs>li:first-child{border-top-left-radius:4px}.card-tabs .nav-tabs>li:last-child{border-top-right-radius:4px}.card-tabs .nav-tabs>li.active{box-shadow:0 1px 0 white !important;background:white !important}.tab-content>.tab-pane{height:0;display:block;overflow:hidden}.tab-content>.tab-pane:not(.active){padding:0}.tab-content>.tab-pane.active{height:auto;overflow:visible}.nav-pills>li>a{font-size:.9285714286rem;padding:.4464285714rem 1em}.alert{border:0;margin:1.5em 0}.alert:first-child{margin-top:0}.alert:last-child{margin-bottom:0}.alert strong{color:inherit;font-style:normal}.alert-default{background:#f9fafb;color:#8b969e}.alert-flush{margin:0}.alert-trim{padding-left:0;padding-right:0}.alert-link{font-weight:bold !important}.avatar{display:inline-block;vertical-align:middle}.avatar img{display:block;border-radius:50%;height:28px;width:28px}.avatar-square img{border-radius:4px}.avatar-sm img{height:20px;width:20px}kbd,code,pre{font-size:.8571428571rem}pre{padding:0;overflow:auto;border-width:0;resize:vertical;white-space:pre;padding:1.2857142857rem 1.875rem;border-radius:4px;font-size:.8571428571rem;-moz-tab-size:2;-o-tab-size:2;tab-size:2;margin:1em 0}pre:first-child{margin-top:0}pre:last-child{margin-bottom:0}.panel-code pre{border-radius:0;padding:40px 50px}@media (max-width: 960px){.panel-code pre{padding-left:7.5vw;padding-right:7.5vw}}.panel-footer .panel-code pre,.panel-body:last-child .panel-code pre{border-bottom-right-radius:4px;border-bottom-left-radius:4px}kbd{box-shadow:none}figure.highlight{tab-size:2}.code,code{font-family:"Monaco",monospace;font-size:.8571428571rem;font-weight:normal;padding:0}.highlight pre{background:#005e7a;color:white;overflow:auto}html.touch .highlight pre{overflow:scroll;-webkit-overflow-scrolling:touch}.highlight code{white-space:pre;display:block}.highlight code *{font-style:normal}.highlight .c{color:#00afc6;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .gd .x{color:#000000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .gi .x{color:#000000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kt{color:#445588}.highlight .m{color:#b7a5df}.highlight .n{color:#00d9d9}.highlight .s{color:#9ed53e}.highlight .na{color:#00afc6}.highlight .nb{color:#00d9d9}.highlight .nl{color:#00afc6}.highlight .nc{color:#fc0}.highlight .nd{color:#fc0}.highlight .no{color:#00afc6}.highlight .ni{color:#fc0}.highlight .ne{color:#990000}.highlight .nf{color:#990000}.highlight .nn{color:#555}.highlight .nt{color:#00d9d9}.highlight .nv{color:teal}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#ff694b}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}.highlight .lineno{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none}.highlight .lineno::-moz-selection{background-color:transparent}.highlight .lineno::selection{background-color:transparent}.label{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);display:inline-block;text-align:inherit;padding:0;border:0}.label-default{color:#8b969e}.label-success{color:#5fb825}.label-info{color:#0aa}.label-warning{color:#ff821d}.label-danger{color:#ff4f39}.label-inherit{color:inherit}.label+.label:not(.block){margin-left:1.5em}a.label:hover.label-default,a.label:focus.label-default{color:#3f464e}a.label:hover.label-success,a.label:focus.label-success{color:#369115}a.label:hover.label-info,a.label:focus.label-info{color:#007b7b}a.label:hover.label-warning,a.label:focus.label-warning{color:#ff4b11}a.label:hover.label-danger,a.label:focus.label-danger{color:#ff2d21}.badge{border-radius:200px ;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;line-height:1.8em;height:1.8em;min-width:1.8em;text-align:center;padding:0 7px;text-indent:1px;border:0}.badge-success{background:#7ec631;color:white}.badge-warning{background:#ff9b26;color:white}.badge-danger{background:#ff694b;color:white}.list-group-item .badge{float:right}.active .badge{color:#fff;background:#009797}.badge-digit{padding:0 2px}.badge-corner{position:absolute;top:0;right:0;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}.badges{font-size:0;display:block}.badges .badge{margin:2px 4px 2px 0}.progress{height:6px;overflow:visible;margin:1em 0}.progress:first-child{margin-top:0}.progress:last-child{margin-bottom:0}.progress,.progress .progress-bar{border-radius:100px;box-shadow:none}.tooltip{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);padding:0 !important}.tooltip,.tooltip .tooltip-inner,.tooltip .tooltip-arrow{border-radius:4px}.tooltip .tooltip-arrow{-webkit-transform:rotate(45deg);transform:rotate(45deg);background:#007699;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);border-width:0;height:12px;width:12px}.tooltip.top .tooltip-arrow{margin-bottom:-3px}.tooltip.bottom .tooltip-arrow{margin-top:-3px}.tooltip.left .tooltip-arrow{margin-right:-3px}.tooltip.right .tooltip-arrow{margin-left:-3px}.tooltip .tooltip-inner{font-size:.9285714286rem;padding:.6785714286rem 1.25rem;margin:0 !important;font-style:normal}.popover{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);font-size:1rem;border-width:0 !important;color:#fff;padding:0}.popover,.popover .popover-content,.popover .arrow{border-radius:4px}.popover .popover-content{border-radius:4px;margin:0 !important}.popover .popover-title,.popover .popover-content{padding:1.2857142857rem 1.875rem;background:#ff694b}.popover .arrow{width:20px;height:20px;background:#ff694b;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.popover .arrow:after{display:none}.popover.top .arrow{margin:-10px;margin-bottom:-4px}.popover.bottom .arrow{margin:-10px;margin-top:-4px}.popover.left .arrow{margin:-10px;margin-right:-4px}.popover.right .arrow{margin:-10px;margin-left:-4px}.modal .modal-dialog{margin:auto;display:table;width:768px;max-width:100vw;height:100vh}.modal .modal-dialog.modal-sm{width:400px}.modal .modal-dialog.modal-lg{width:960px}.modal .modal-content{display:table-cell;vertical-align:middle;box-shadow:none}.modal.fade .modal-dialog{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-transform:translate(0, -20px);transform:translate(0, -20px)}.modal.fade.in .modal-dialog{-webkit-transform:translate(0, 0);transform:translate(0, 0)}.modal-backdrop{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed;z-index:1040}@media (max-width: 960px){.modal-content:not(.modal-content-flush){padding:7.5vw}}.panel{border-width:0;display:flex;flex-direction:column;display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px;margin:1em 0}.panel:first-child{margin-top:0}.panel:last-child{margin-bottom:0}.panel>*{border-color:transparent !important;flex:0 0 auto}.panel>*:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.panel>*:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.panel>*,.panel>*>.panel-fill{padding:20px 30px}.panel>*.panel-flush,.panel>*>.panel-fill.panel-flush{padding:0 !important}.panel>*.panel-flush-top,.panel>*>.panel-fill.panel-flush-top{padding-top:0 !important}.panel>*.panel-flush-bottom,.panel>*>.panel-fill.panel-flush-bottom{padding-bottom:0 !important}.panel-large>*,.panel-large>*>.panel-fill{padding:40px 50px}@media (max-width: 960px){.panel-large>*,.panel-large>*>.panel-fill{padding:5vw 7.5vw}}.panel>.panel-body{flex:1 0 auto}.panel>.panel-body>*:first-child{margin-top:0}.panel>.panel-body>*:last-child{margin-bottom:0}.panel>.panel-body>.panel-fill{display:block;position:absolute;width:100%;height:100%;top:0;left:0;overflow:auto}html.touch .panel>.panel-body>.panel-fill{overflow:scroll;-webkit-overflow-scrolling:touch}h1.panel-title,.h1.panel-title{font-size:1.7142857143rem}h2.panel-title,.h2.panel-title{font-size:1.7142857143rem}h3.panel-title,.h3.panel-title{font-size:1.2857142857rem}h4.panel-title,.h4.panel-title{font-size:1.1428571429rem}h5.panel-title,.h5.panel-title{font-size:1rem}h6.panel-title,.h6.panel-title{font-size:1rem}.list-group{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.list-group .list-group-item{margin:0;border-width:0 0 1px 0}.list-group .list-group-item *{margin-top:0;margin-bottom:0}.list-group .list-group-item:last-child{border-width:0}.well{padding:1.2857142857rem 1.875rem;box-shadow:none;border:0}.well>*:first-child{margin-top:0}.well>*:last-child{margin-bottom:0}.row{margin:0}.container{padding-left:0;padding-right:0}@media (min-width: 961px){.container{width:90%;max-width:1320px}}@media (max-width: 960px){.container{width:auto}}@media (min-width: 961px){.row-reverse>[class*="col-lg-"]{float:right}}@media (max-width: 960px){[class*="col-lg-"]+[class*="col-lg-"]{margin-top:30px;margin-bottom:30px}[class*="col-lg-"]+[class*="col-lg-"]:first-child{margin-top:0}[class*="col-lg-"]+[class*="col-lg-"]:last-child{margin-bottom:0}}@media (max-width: 768px){[class*="col-md-"]+[class*="col-md-"]{margin-top:30px;margin-bottom:30px}[class*="col-md-"]+[class*="col-md-"]:first-child{margin-top:0}[class*="col-md-"]+[class*="col-md-"]:last-child{margin-bottom:0}}@media (max-width: 540px){[class*="col-sm-"]+[class*="col-sm-"]{margin-top:30px;margin-bottom:30px}[class*="col-sm-"]+[class*="col-sm-"]:first-child{margin-top:0}[class*="col-sm-"]+[class*="col-sm-"]:last-child{margin-bottom:0}}.carousel .carousel-control{background:transparent}.carousel .carousel-control:after{width:1em;display:block;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto;height:1.6em;font-size:2rem}.carousel .carousel-indicators{bottom:10px}.carousel .carousel-indicators li{background:#fff;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);margin:0 2px;opacity:.25;height:8px;width:8px;border:0}.carousel .carousel-indicators li.active{opacity:1}.carousel .carousel-inner .item img{width:100%}.thumbnail{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.thumbnail img{width:100%}.thumbnail .caption *{margin-top:0;margin-bottom:0}.range{-webkit-appearance:none;margin:0;width:100%;outline:none !important}.range::-moz-focus-outer{border:0}.range::-webkit-slider-runnable-track{width:100%;height:6px;cursor:pointer;box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-moz-range-track{width:100%;height:6px;cursor:pointer;box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-ms-track{width:100%;height:6px;cursor:pointer;box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);background:transparent;border-width:5px 0}.range::-ms-fill-lower{box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-ms-fill-upper{box-shadow:none;background:#f0f2f4;border-radius:200px;border:0 solid transparent;color:transparent;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-webkit-slider-thumb{box-shadow:none;border:0;height:16px;width:16px;border-radius:200px;background:#0bb;cursor:pointer;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-appearance:none;margin-top:-5px}.range::-moz-range-thumb{box-shadow:none;border:0;height:16px;width:16px;border-radius:200px;background:#0bb;cursor:pointer;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.range::-ms-thumb{box-shadow:none;border:0;height:16px;width:16px;border-radius:200px;background:#0bb;cursor:pointer;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}@supports (-ms-ime-align: auto){.range::-ms-thumb{margin-top:1px}}.range:hover::-webkit-slider-thumb{background:#0aa}.range:focus::-webkit-slider-thumb{background:#0aa}.range:hover::-moz-range-thumb{background:#0aa}.range:focus::-moz-range-thumb{background:#0aa}.range:hover::-ms-thumb{background:#0aa}.range:focus::-ms-thumb{background:#0aa}.range:hover::-webkit-slider-runnable-track{background:#e9ebef}.range:focus::-webkit-slider-runnable-track{background:#e9ebef}.range:hover::-moz-range-track{background:#e9ebef}.range:focus::-moz-range-track{background:#e9ebef}.range:hover::-ms-fill-lower{background:#e9ebef}.range:focus::-ms-fill-lower{background:#e9ebef}.range:hover::-ms-fill-upper{background:#e9ebef}.range:focus::-ms-fill-upper{background:#e9ebef}.breadcrumb-flush{padding:0}.breadcrumb>li:first-child .glyph{position:absolute;right:100%;top:50%;-webkit-transform:translate(-33%, -50%);transform:translate(-33%, -50%)}.breadcrumb>li:before{font-weight:normal;padding:0 .5em;opacity:.5}.card{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px;display:flex;flex-direction:column}.card>.card-header,.card>.card-footer{flex:0 0 auto}.card>.card-body{flex:1 0 auto}.card.active{box-shadow:0 0 0 1px #0bb,0 15px 15px -7.5px rgba(0,0,0,0.15)}.card-footer,.card-header,.card-body,.card-padding{padding:20px 30px}.card-expand{margin:-20px -30px}.card-header h1,.card-header .h1,.card-header h2,.card-header .h2,.card-header h3,.card-header .h3,.card-header h4,.card-header .h4,.card-header h5,.card-header .h5,.card-header h6,.card-header .h6{margin:0}.card-flush-top{padding-top:0}.card-flush-bottom{padding-bottom:0}.card-flush-vertical{padding-top:0;padding-bottom:0}.card-flush{padding:0}.card-sm{padding:8px 12px}.card-control{display:block}.card-control .btn,.card-control .form-control,.card-control .input-group-addon,.card-control .form-control-static,.card-control .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-control label{display:block;margin:0 !important;height:4.2857142857rem;padding:1.3928571429rem 30px;border-radius:0;width:100%}.card-control .form-control{background:white}.card-control .form-control:not(:disabled):not(.disabled):hover{background-color:#f0f2f4}.card-control .btn,.card-control .input-group-addon{text-align:center}.card-footer .card-control:first-child .btn,.card-footer .card-control:first-child .form-control,.card-footer .card-control:first-child .input-group-addon,.card-footer .card-control:first-child .form-control-static,.card-footer .card-control:first-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-footer .card-control:first-child label{border-bottom-left-radius:4px}.card-footer .card-control:last-child .btn,.card-footer .card-control:last-child .form-control,.card-footer .card-control:last-child .input-group-addon,.card-footer .card-control:last-child .form-control-static,.card-footer .card-control:last-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-footer .card-control:last-child label{border-bottom-right-radius:4px}.card-body .card-control:first-child .btn,.card-body .card-control:first-child .form-control,.card-body .card-control:first-child .input-group-addon,.card-body .card-control:first-child .form-control-static,.card-body .card-control:first-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-body .card-control:first-child label{border-top-left-radius:4px}.card-body .card-control:last-child .btn,.card-body .card-control:last-child .form-control,.card-body .card-control:last-child .input-group-addon,.card-body .card-control:last-child .form-control-static,.card-body .card-control:last-child .form-grid .form-row .form-label label,.form-grid .form-row .form-label .card-body .card-control:last-child label{border-top-right-radius:4px}.card-toolbar{display:flex;flex-direction:row;flex-wrap:wrap;padding:0}.card-toolbar .card-control{display:block;flex:1 0 auto}.card-form{padding:0;display:table;width:100%}.card-form .card-formrow{display:table-row}.card-form .card-formrow .card-control{display:table-cell;vertical-align:middle}.card-form .card-formrow:not(:last-child) .card-control{border-bottom:1px solid rgba(0,30,60,0.075)}.card-list:not(:first-child){border-top:1px solid rgba(0,30,60,0.075)}.preview{margin:60px 0;background:white;border-radius:4px;display:flex;flex-direction:column;flex:1 0 auto;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.preview:first-child{margin-top:0}.preview:last-child{margin-bottom:0}.preview .preview-header{background-position:50% 50%;background-size:cover}.preview .preview-header:before{content:\'\';display:block;padding-bottom:50%}.preview .preview-body{display:flex;flex-direction:column;flex:1 0 auto}.preview .preview-body .preview-footer{flex:0 0 auto;padding:20px 30px}.preview .preview-body .preview-text{flex:1 0 auto;padding:20px 30px}.preview .preview-body .preview-text *{margin-top:0;margin-bottom:0}.preview .preview-body .preview-text h1,.preview .preview-body .preview-text .h1,.preview .preview-body .preview-text h2,.preview .preview-body .preview-text .h2,.preview .preview-body .preview-text h3,.preview .preview-body .preview-text .h3,.preview .preview-body .preview-text h4,.preview .preview-body .preview-text .h4,.preview .preview-body .preview-text h5,.preview .preview-body .preview-text .h5,.preview .preview-body .preview-text h6,.preview .preview-body .preview-text .h6{margin-bottom:20px}.preview .preview-body .preview-text ~ .preview-footer{padding-top:0}.preview.preview-link:hover,.preview.preview-link:focus{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 15px 15px -7.5px rgba(0,0,0,0.15)}.preview.preview-vertical .preview-header{flex:0 0 auto}.preview.preview-vertical .preview-body{flex:1 0 auto}.preview.preview-vertical .preview-header-grow{flex:1 0 auto}.preview.preview-vertical .preview-header-grow ~ .preview-body{flex:0 0 auto}.preview.preview-horizontal{display:flex;flex-direction:row}.preview.preview-horizontal .preview-header{flex:1 1 120px}.preview.preview-horizontal .preview-body{flex:3 1 260px}.preview:not(.preview-vertical):not(.preview-horizontal){display:flex;flex-direction:row;flex-wrap:wrap}.preview:not(.preview-vertical):not(.preview-horizontal) .preview-header{flex:1 0 120px}.preview:not(.preview-vertical):not(.preview-horizontal) .preview-body{flex:3 1 260px}.loading{text-align:center;margin:20px 0}.loading:after{margin:0 auto;content:\'\';display:block;font-size:30px;width:1em;height:1em;border-radius:50%;border:1px solid;border-top-color:rgba(0,30,60,0.03);border-right-color:rgba(0,30,60,0.03);-webkit-animation:spin .5s 0s linear infinite;-o-animation:spin .5s 0s linear infinite;animation:spin .5s 0s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.loading.loading-inline{height:10px;display:inline-block;margin:0 .375em 0 0;vertical-align:middle}.loading.loading-inline-after{margin:0 0 0 .375em}.loading.loading-inline:after{margin:-10px 0}.loading.loading-small.loading-inline{top:-1px}.loading.loading-small:after{font-size:12px;margin:-1px auto}.btn .loading:after{color:inherit}.loading-overlay{background:#f9fafb;border-radius:4px}.loading-overlay>*{pointer-events:none;opacity:.15}.loading-overlay .loading{display:block;position:absolute;width:100%;height:100%;top:0;left:0;margin:0;opacity:1}.loading-overlay .loading:after{display:block;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto}.message{margin:20px 0}.message .message-content{display:flex;flex-direction:row}.message .message-content>*{padding:0 .5rem}.message:not(.message-secondary) .message-content .message-header{padding-left:0}.message:not(.message-secondary) .message-content .message-body{padding-right:4rem}.message:not(.message-secondary) .message-content .message-body .message-text{border-top-left-radius:4px}.message.message-secondary .message-content{-ms-flex-pack:end;justify-content:flex-end}.message.message-secondary .message-content .message-header{padding-right:0}.message.message-secondary .message-content .message-body{padding-left:4rem}.message.message-secondary .message-content .message-body .message-text{border-top-right-radius:4px}.message-header{flex:0 0 auto}.message-secondary .message-header{order:2}.message-header .message-avatar .avatar{font-size:2.5rem}.message-body{flex:0 1 auto}.message-body .message-text{background:#f0f2f4;padding:1.2857142857rem 1.875rem;border-radius:1.333em}.message-blue .message-body .message-text{background:#0bb;color:white}.message-green .message-body .message-text{background:#7ec631;color:white}.message-purple .message-body .message-text{background:#7f6cc5;color:white}.toolbar a{display:block}.toolbar .toolbar-content{display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-align:center;align-items:center}.toolbar .toolbar-content .toolbar-item{flex:0 0 auto}.toolbar .toolbar-content .toolbar-item>.btn{width:100%}.toolbar .toolbar-content .toolbar-item>.toolbar-link{padding:1rem 1.5rem}.toolbar .toolbar-content .toolbar-gap{flex:1000 1 auto}.toolbar-fill .btn{border-radius:0}.toolbar-fill .toolbar-content>.btn,.toolbar-fill .toolbar-content .toolbar-item{flex:1 0 auto}.toolbar-separate .toolbar-content{margin:-.375rem}.toolbar-separate .toolbar-content .toolbar-item{margin:.375rem}.toolbar-fixed .toolbar-content>.btn,.toolbar-fixed .toolbar-content .toolbar-item{flex:1 0 0px}.title{margin-left:-10px;margin-right:-10px;display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.title-buffer{margin-top:60px;margin-bottom:60px}.title>*{padding:5px 0;margin:0 10px}.title-header{flex:0 1 auto}.title-body{flex:1 1 auto}.title-actions{flex:0 1 auto}.title-fix{min-height:50px}.title:first-child{margin-top:-5px}.title:last-child{margin-bottom:-5px}.list{color:#8b969e}.list-item:not(:first-child){border-top:1px solid rgba(0,30,60,0.075)}.list-item:first-child .list-row{border-top-right-radius:4px;border-top-left-radius:4px}.list-item:last-child .list-row{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-link{display:block;position:absolute;width:100%;height:100%;top:0;left:0;z-index:2}.list-link:hover+.list-row,.list-link:focus+.list-row{background:#f9fafb}.list-item.active .list-row{background:#0bb}.list-item.active .list-row h1,.list-item.active .list-row .h1,.list-item.active .list-row h2,.list-item.active .list-row .h2,.list-item.active .list-row h3,.list-item.active .list-row .h3,.list-item.active .list-row h4,.list-item.active .list-row .h4,.list-item.active .list-row h5,.list-item.active .list-row .h5,.list-item.active .list-row h6,.list-item.active .list-row .h6,.list-item.active .list-row{color:#fff}.list-row{display:flex;flex-direction:row;-ms-flex-align:center;align-items:center;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.list-row>*{flex:1 1 0px;padding:1.5rem 2rem}.list-row>* *{margin-top:0;margin-bottom:0}.list-row>* a{z-index:3}.list-row-group{padding-left:0;padding-right:1rem}.list-row-graphic,.list-row-arrow{flex:0 0 auto}.list-row-graphic>.glyph,.list-row-arrow>.glyph{opacity:.3333333333}.list-row-sm>*{padding-top:12px;padding-bottom:12px}.list-row-xs>*{padding-top:7px;padding-bottom:7px}.card-list .list .list-row>*{padding-left:30px;paddign-right:30px}.list-clean{margin:0;padding:0;border:0;list-style-type:none}.list-clean li{margin:0;padding:0;list-style-type:none}.list-columns-2{columns:2}.status{display:flex;flex-direction:row}.status-text{flex:1 1 auto;white-space:nowrap;min-width:0}.status-icon{flex:0 0 auto}.dot{display:inline-block;background:currentColor;width:8px;height:8px;border-radius:50%}.dot-default{color:#8b969e}.dot-success{color:#5fb825}.dot-info{color:#0aa}.dot-warning{color:#ff821d}.dot-danger{color:#ff4f39}.table-master-detail-toggle{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.table-master-detail:not(.open) .table-detail{display:none}.table-master-detail.open .table-master td,.table-master-detail.open .table-master th{background:white !important}.table-master-detail.open .table-master-detail-toggle{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.form-grid{display:table;width:100%}.form-grid .form-row-group{display:table-row-group}.form-grid .form-row{display:table-row}.form-grid .form-row .form-row{display:table;width:100%}.form-grid .form-row .form-label,.form-grid .form-row .form-response{display:table-cell;padding:7px;vertical-align:top}.form-grid .form-row .form-label:first-child,.form-grid .form-row .form-response:first-child{padding-left:0}.form-grid .form-row .form-label:last-child,.form-grid .form-row .form-response:last-child{padding-right:0}.form-grid .form-row .form-label .form-row>*,.form-grid .form-row .form-response .form-row>*{padding-top:0;padding-bottom:0}.form-grid .form-row .form-label{white-space:nowrap;width:1px}.form-grid .form-row .form-response .help-block{margin:0;top:3px}.form-grid .form-row .form-response.form-response-short{width:1px;white-space:nowrap}.form-grid .form-row .form-response .form-response,.form-grid .form-row .form-response .form-label{padding-top:0;padding-bottom:0}.form-grid .form-row>.form-label:first-child{padding-right:7px}.form-grid:not(.form-grid-left) .form-label{text-align:right}.matrix{margin:0 -15px;display:flex;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;flex-wrap:wrap}.matrix.matrix-nowrap{flex-wrap:nowrap}.matrix .matrix-item{padding:15px;display:flex;flex-direction:column;flex:1 1 260px}.matrix .matrix-item>*{flex:1 1 auto;margin:0}.waterfall{margin:0 -15px;-webkit-column-count:4;column-count:4;-webkit-column-gap:0;column-gap:0;-webkit-column-width:320px;column-width:320px}.waterfall .waterfall-item{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid-column;padding:15px}.waterfall .waterfall-item>*{margin:0}.mosaic{display:flex;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.mosaic-buffer{margin:0 -15px}.mosaic-row{display:flex;flex-direction:row;flex-wrap:wrap;flex:1 1 auto}.mosaic-column{display:flex;flex-direction:column;flex:1 1 320px}.mosaic-column-1{flex:1 1 320px}.mosaic-column-2{flex:1 1 640px}.mosaic-column-3{flex:1 1 960px}.mosaic-column-4{flex:1 1 1280px}.mosaic-column-5{flex:1 1 1600px}.mosaic-column-6{flex:1 1 1920px}.mosaic-column-7{flex:1 1 2240px}.mosaic-column-8{flex:1 1 2560px}.mosaic-column-9{flex:1 1 2880px}.mosaic-column-10{flex:1 1 3200px}.mosaic-column-11{flex:1 1 3520px}.mosaic-column-12{flex:1 1 3840px}.mosaic-item{display:flex;flex-direction:column}.mosaic-item>*{flex:1 0 auto;margin:0}.mosaic-column>.mosaic-item{flex:1 1 auto}.mosaic-row>.mosaic-item{flex:1 0 260px}.mosaic-buffer .mosaic-item{margin:15px}.flex-row{display:flex;flex-direction:row;flex-wrap:wrap}.flex-column{display:flex;flex-direction:column;flex:1 1 320px}.flex-column-1{flex:1 1 320px}.flex-column-2{flex:1 1 640px}.flex-column-3{flex:1 1 960px}.flex-column-4{flex:1 1 1280px}.flex-column-5{flex:1 1 1600px}.flex-column-6{flex:1 1 1920px}.flex-column-7{flex:1 1 2240px}.flex-column-8{flex:1 1 2560px}.flex-column-9{flex:1 1 2880px}.flex-column-10{flex:1 1 3200px}.flex-column-11{flex:1 1 3520px}.flex-column-12{flex:1 1 3840px}.flex-nowrap{flex-wrap:nowrap}.flex-buffer{margin:0 -15px}.flex-flush{margin-top:-15px;margin-bottom:-15px}.flex-column>.flex-item{flex:1 1 auto}.flex-row>.flex-item{flex:1 0 260px}.flex-buffer .flex-item{margin:15px}.flex-column>.flex-item-sm{flex:1 1 auto}.flex-row>.flex-item-sm{flex:1 0 130px}.flex-buffer .flex-item-sm{margin:7.5px}.flex-grow{flex:1 0 auto}.flex-auto{flex:0 0 auto}.flex-shrink{flex:0 1 auto}.album{margin:0 -30px;visibility:hidden}.album.album-ready{visibility:visible}.album .album-content{display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch}.album .album-content .album-image{flex:1 1 auto;margin:30px}.album .album-content .album-image img{margin:0;display:block;width:100%;height:auto;display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px}.limit-1>*:nth-child(n+2){display:none !important}.limit-2>*:nth-child(n+3){display:none !important}.limit-3>*:nth-child(n+4){display:none !important}.limit-4>*:nth-child(n+5){display:none !important}.limit-5>*:nth-child(n+6){display:none !important}.limit-6>*:nth-child(n+7){display:none !important}.limit-7>*:nth-child(n+8){display:none !important}.limit-8>*:nth-child(n+9){display:none !important}.limit-9>*:nth-child(n+10){display:none !important}.limit-10>*:nth-child(n+11){display:none !important}.limit-11>*:nth-child(n+12){display:none !important}.limit-12>*:nth-child(n+13){display:none !important}.grid{display:grid;grid-gap:2em;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr))}html.cssgridlegacy .grid{display:flex;flex-direction:row;flex-wrap:wrap;padding:1em}html.cssgridlegacy .grid>*{flex:1 0 200px;max-width:320px;padding:1em}.section-target{position:absolute;visibility:hidden;top:-4em}.section{padding:.75em 0}.section-target:target+.section-content .panel{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 30px 30px -15px rgba(0,0,0,0.3)}.framework{-ms-display:grid;display:grid;height:100%}.framework>*{padding:1em 1.5em}.framework .framework-header{background:#0bb;color:white}.framework .framework-nav{background:#f0f2f4}.framework .framework-menu{background:#f9fafb}.framework .framework-content{background:white}.framework .framework-content{padding:0;overflow:auto;display:flex;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.framework .framework-content>*{padding:1em 1.5em}.framework .framework-content .framework-actions{position:sticky;top:0;z-index:2;background:white}@media (min-width: 961px){.framework{-ms-grid-rows:60px auto;grid-template-rows:60px auto;-ms-grid-columns:60px 240px auto;grid-template-columns:60px 240px auto}.framework .framework-header{-ms-grid-row:1;grid-row:1;-ms-grid-column:1;-ms-grid-column-span:3;grid-column:1 / 4}.framework .framework-nav{-ms-grid-row:2;grid-row:2;-ms-grid-column:1;grid-column:1}.framework .framework-menu{-ms-grid-row:2;grid-row:2;-ms-grid-column:2;grid-column:2}.framework .framework-content{-ms-grid-row:2;grid-row:2;-ms-grid-column:3;grid-column:3}}@media (max-width: 960px){.framework{-ms-grid-rows:60px auto;grid-template-rows:60px auto;-ms-grid-columns:auto;grid-template-columns:auto}.framework .framework-header{-ms-grid-row:1;grid-row:1;-ms-grid-column:1;grid-column:1}.framework .framework-nav{display:none}.framework .framework-menu{display:none}.framework .framework-content{-ms-grid-row:2;grid-row:2;-ms-grid-column:1;grid-column:1}.framework .framework-content .framework-actions{order:-1}}.app{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed;min-width:960px}.app-row{display:flex;flex-direction:row;-ms-flex-align:stretch;align-items:stretch}.app-column{display:flex;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.app-middle{-ms-flex-align:center;align-items:center}.app-header,.app-footer{flex:0 0 auto}.app-body{flex:1 0 0px}.app-navbar{height:calc( 2.8571428571rem + 40px );z-index:3;background:white}.app-menu,.app-sidebar,.app-content{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);background:#f9fafb}.app-menu,.app-sidebar{width:20%;min-width:300px;flex:0 0 auto}.app-content{flex:1 0 0px}.app-content a,.app-content .a{color:#0bb}.app-content a:hover,.app-content a:focus,.app-content .a:hover,.app-content .a:focus{color:#0aa}.app-overlay{background:#f0f2f4;position:absolute;display:none;z-index:2;right:-100vw;left:-100vw;bottom:0;top:0;opacity:.9}.app-menu .app-overlay{left:100%;box-shadow:inset 5px 0 10px -5px rgba(0,0,0,0.2)}.app-sidebar .app-overlay{right:100%;box-shadow:inset -5px 0 10px -5px rgba(0,0,0,0.2)}.app-icn:not(:first-child){padding-left:20px}.app-icn:not(:last-child){padding-right:20px}.app-scroll{display:block;position:absolute;width:100%;height:100%;top:0;left:0;overflow:auto}html.touch .app-scroll{overflow:scroll;-webkit-overflow-scrolling:touch}.app-pad{padding:20px 30px}.app-pad,.app-pad-v{padding-top:20px;padding-bottom:20px}.app-pad,.app-pad-h{padding-left:30px;padding-right:30px}.app-sticky{top:0;z-index:2;position:sticky;background:#f9fafb}.app-frame{margin:auto}@media (min-width: 961px){.app-frame{width:90%}}.app-shadow{box-shadow:0 1px 0 rgba(0,16,32,0.05)}.app-flush,.app-flush-top{padding-top:0}.app-flush,.app-flush-bottom{padding-bottom:0}.app-flush,.app-flush-left{padding-left:0}.app-flush,.app-flush-right{padding-right:0}.app-logo{width:100px}.layout{width:100vw;height:100vh;min-width:960px;overflow:auto}html.touch .layout{overflow:scroll;-webkit-overflow-scrolling:touch}.layout-pad{padding-top:20px;padding-bottom:20px}.layout-ide{height:calc(100vh - 53px)}.layout-pad-l,.layout-pad-x{padding-left:20px}.layout-pad-r,.layout-pad-x{padding-right:20px}.layout-sticky{position:sticky;z-index:20;top:0}.layout-frame{margin:auto;width:90%;padding-left:20px;padding-right:20px}.layout-menu .layout-frame{padding-right:0}.layout-navigation{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);background:white;height:52px;position:absolute;top:0;left:0;right:0}.layout-content{position:absolute;top:53px;bottom:0;left:0;right:0;overflow:auto}html.touch .layout-content{overflow:scroll;-webkit-overflow-scrolling:touch}.layout-row{display:flex;flex-direction:row}.layout-alert{flex:0 0 100%}.layout-menu{flex:0 0 25%;max-width:300px;min-width:0}.layout-body{flex:1 1 auto;box-shadow:0 -1px 0 rgba(0,30,60,0.03)}.ide{overflow:hidden;font-size:.9285714286rem;display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:white}.ide-pad{padding:14px 16px !important}.ide-pad-l,.ide-pad-x{padding-left:16px !important}.ide-pad-r,.ide-pad-x{padding-right:16px !important}.ide-panels{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.ide-panels,.ide-panel-group{display:flex;flex-direction:row;background:inherit}.ide-panels.ide-vertical,.ide-panel-group.ide-vertical{display:flex;flex-direction:column}@media (max-width: 960px){.ide-panels,.ide-panel-group{display:flex;flex-direction:column}}.ide-panel,.ide-panel-group{flex:1 0 0px}.ide-panel{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1);-webkit-transition-property:box-shadow,transform;transition-property:box-shadow,transform;box-shadow:0 0 0 2px transparent;min-height:200px;min-width:200px;background:inherit;display:flex;flex-direction:column}.ide-horizontal .ide-panel{height:auto !important}.ide-horizontal .ide-panel[style*="width"]{flex:0 0 auto}.ide-vertical .ide-panel{width:auto !important}.ide-vertical .ide-panel[style*="height"]{flex:0 0 auto}@media (max-width: 960px){.ide-panel{width:auto !important}}.ide-panel-sm{flex:0 0 280px}.ide-panel:before{content:\'\';display:block;position:absolute;left:0;top:0;bottom:0;right:0;box-shadow:0 0 0 1px currentColor;opacity:.125}.ide-panel:focus{z-index:3;box-shadow:0 0 0 2px #0bb,0 10px 20px rgba(0,30,60,0.3);-webkit-transform:translate(10px, -10px);transform:translate(10px, -10px);border-radius:4px}.ide-panel>*:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.ide-panel>*:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.ide-panel-header,.ide-panel-footer{flex:0 0 auto;background:rgba(0,30,60,0.03)}.ide-panel-header:before,.ide-panel-header:after,.ide-panel-footer:before,.ide-panel-footer:after{content:\'\';display:block;position:absolute;left:0;top:0;bottom:0;right:0;background:currentColor;opacity:.0075}.ide-panel-header:after,.ide-panel-footer:after{height:1px;opacity:.06}.ide-panel-header .btn:focus,.ide-panel-header .btn:active,.ide-panel-footer .btn:focus,.ide-panel-footer .btn:active{z-index:auto}.ide-panel-header:after{top:auto}.ide-panel-footer:before{display:none}.ide-panel-footer:after{bottom:auto}.ide-panel-body{color:#313539;background:inherit;flex:1 1 auto}.ide-panel-scroll{display:block;position:absolute;width:100%;height:100%;top:0;left:0;overflow:auto}html.touch .ide-panel-scroll{overflow:scroll;-webkit-overflow-scrolling:touch}.ide-panel-scroll::-webkit-scrollbar{background:#e9ebef;width:7px;height:7px}.ide-panel-scroll::-webkit-scrollbar-button{display:none}.ide-panel-scroll::-webkit-scrollbar-track{background:transparent}.ide-panel-scroll::-webkit-scrollbar-track-piece{background:transparent}.ide-panel-scroll::-webkit-scrollbar-thumb{background:#d7dbdf;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-panel-scroll::-webkit-scrollbar-corner{background:#e9ebef}.ide-panel-scroll::-webkit-resizer{background:transparent}.ide-panel-scroll:hover::-webkit-scrollbar-thumb{background:#c1c7cd}.ide-panel-handle{display:block;position:absolute;top:0;bottom:0;right:0;background:white;width:10px}.ide-controls{display:table;width:100%;height:44px}.ide-controls>*{display:table-cell;vertical-align:middle}.ide-control{white-space:nowrap}.ide-control-sm{width:1px}.ide-control-link,.ide-control-text{display:block;padding:.6785714286rem 0}.ide-control-link{padding-left:1.25rem;padding-right:1.25rem;text-align:center}.ide-control-inline-link{display:inline-block;padding:.6785714286rem 0;text-align:center}.ide-control.active{box-shadow:inset 0 -1px 0 #0bb}.ide-control.active .ide-control-link,.ide-control.active .ide-control-inline-link{color:inherit;font-weight:bold}.ide-list{padding:7px 0}.ide-list-item{display:block;padding:7px 16px;color:inherit;box-shadow:0 1px 0 rgba(0,30,60,0.03);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide-list-item:hover,.ide-list-item:focus{color:inherit}.ide-list-item-footer{padding:.375em 0;display:flex;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}.ide-interactive:hover,.ide-interactive:focus{background:#f9fafb}.ide-active{background:#e4e6eb !important}.ide-code{color:inherit;resize:none;padding:0;background:transparent}.ide table{white-space:nowrap}.ide table td:first-child,.ide table th:first-child{padding-left:16px}.ide table td:last-child,.ide table th:last-child{padding-right:16px}.ide table td{max-width:300px;overflow:hidden;text-overflow:ellipsis}.ide-table-heading{color:inherit;position:sticky;top:0;z-index:3;background:white;box-shadow:0 1px 0 rgba(0,30,60,0.03)}.ide-dark{color:white}.ide-dark,.ide-dark .ide-table-heading{background:#002934}.ide-dark .ide-panel-body{color:inherit}.ide-dark .ide-panel:focus,.ide-dark .ide-panel-header,.ide-dark .ide-panel-footer,.ide-dark .table-striped>tbody>tr:nth-of-type(odd){background:#00303d}.ide-dark .ide-active{background:#005e7a !important;color:white !important}.ide-dark .ide-table-heading,.ide-dark .ide-list-item{box-shadow:0 1px 0 rgba(255,255,255,0.1)}.ide-dark .ide-panel-header .btn-default,.ide-dark .ide-panel-footer .btn-default{color:#fff;background-color:#005e7a;border-color:#005e7a}.ide-dark .ide-panel-header .btn-default:focus,.ide-dark .ide-panel-header .btn-default.focus,.ide-dark .ide-panel-footer .btn-default:focus,.ide-dark .ide-panel-footer .btn-default.focus{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:hover,.ide-dark .ide-panel-footer .btn-default:hover{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:active,.ide-dark .ide-panel-header .btn-default.active,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle,.ide-dark .ide-panel-footer .btn-default:active,.ide-dark .ide-panel-footer .btn-default.active,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:active:hover,.ide-dark .ide-panel-header .btn-default:active:focus,.ide-dark .ide-panel-header .btn-default:active.focus,.ide-dark .ide-panel-header .btn-default.active:hover,.ide-dark .ide-panel-header .btn-default.active:focus,.ide-dark .ide-panel-header .btn-default.active.focus,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle:hover,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle:focus,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle.focus,.ide-dark .ide-panel-footer .btn-default:active:hover,.ide-dark .ide-panel-footer .btn-default:active:focus,.ide-dark .ide-panel-footer .btn-default:active.focus,.ide-dark .ide-panel-footer .btn-default.active:hover,.ide-dark .ide-panel-footer .btn-default.active:focus,.ide-dark .ide-panel-footer .btn-default.active.focus,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle:hover,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle:focus,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle.focus{color:#fff;background-color:#007699}.ide-dark .ide-panel-header .btn-default:active,.ide-dark .ide-panel-header .btn-default.active,.open>.ide-dark .ide-panel-header .btn-default.dropdown-toggle,.ide-dark .ide-panel-footer .btn-default:active,.ide-dark .ide-panel-footer .btn-default.active,.open>.ide-dark .ide-panel-footer .btn-default.dropdown-toggle{background-image:none}.ide-dark .ide-panel-header .btn-default.disabled:hover,.ide-dark .ide-panel-header .btn-default.disabled:focus,.ide-dark .ide-panel-header .btn-default.disabled.focus,.ide-dark .ide-panel-header .btn-default[disabled]:hover,.ide-dark .ide-panel-header .btn-default[disabled]:focus,.ide-dark .ide-panel-header .btn-default[disabled].focus,fieldset[disabled] .ide-dark .ide-panel-header .btn-default:hover,fieldset[disabled] .ide-dark .ide-panel-header .btn-default:focus,fieldset[disabled] .ide-dark .ide-panel-header .btn-default.focus,.ide-dark .ide-panel-footer .btn-default.disabled:hover,.ide-dark .ide-panel-footer .btn-default.disabled:focus,.ide-dark .ide-panel-footer .btn-default.disabled.focus,.ide-dark .ide-panel-footer .btn-default[disabled]:hover,.ide-dark .ide-panel-footer .btn-default[disabled]:focus,.ide-dark .ide-panel-footer .btn-default[disabled].focus,fieldset[disabled] .ide-dark .ide-panel-footer .btn-default:hover,fieldset[disabled] .ide-dark .ide-panel-footer .btn-default:focus,fieldset[disabled] .ide-dark .ide-panel-footer .btn-default.focus{background-color:#005e7a;border-color:#005e7a}.ide-dark .ide-panel-header .btn-default .badge,.ide-dark .ide-panel-footer .btn-default .badge{color:#005e7a;background-color:#fff}.ide-dark .ide-panel-scroll::-webkit-scrollbar{background:#00475c;width:7px;height:7px}.ide-dark .ide-panel-scroll::-webkit-scrollbar-button{display:none}.ide-dark .ide-panel-scroll::-webkit-scrollbar-track{background:transparent}.ide-dark .ide-panel-scroll::-webkit-scrollbar-track-piece{background:transparent}.ide-dark .ide-panel-scroll::-webkit-scrollbar-thumb{background:#065b74;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-dark .ide-panel-scroll::-webkit-scrollbar-corner{background:#00475c}.ide-dark .ide-panel-scroll::-webkit-resizer{background:transparent}.ide-dark .ide-panel-scroll:hover::-webkit-scrollbar-thumb{background:#087291}.ide-dark .ace_scrollbar::-webkit-scrollbar{background:#00475c;width:7px;height:7px}.ide-dark .ace_scrollbar::-webkit-scrollbar-button{display:none}.ide-dark .ace_scrollbar::-webkit-scrollbar-track{background:transparent}.ide-dark .ace_scrollbar::-webkit-scrollbar-track-piece{background:transparent}.ide-dark .ace_scrollbar::-webkit-scrollbar-thumb{background:#065b74;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-dark .ace_scrollbar::-webkit-scrollbar-corner{background:#00475c}.ide-dark .ace_scrollbar::-webkit-resizer{background:transparent}.ide-dark .ace_scrollbar:hover::-webkit-scrollbar-thumb{background:#087291}.ide-dark .ide-code::-webkit-scrollbar{background:#00475c;width:7px;height:7px}.ide-dark .ide-code::-webkit-scrollbar-button{display:none}.ide-dark .ide-code::-webkit-scrollbar-track{background:transparent}.ide-dark .ide-code::-webkit-scrollbar-track-piece{background:transparent}.ide-dark .ide-code::-webkit-scrollbar-thumb{background:#065b74;border-radius:200px ;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.ide-dark .ide-code::-webkit-scrollbar-corner{background:#00475c}.ide-dark .ide-code::-webkit-resizer{background:transparent}.ide-dark .ide-code:hover::-webkit-scrollbar-thumb{background:#087291}.menu{margin:0 -5px;font-size:.9285714286rem}.menu ul{margin:0;padding:0;border:0;list-style-type:none;display:none}.menu ul li{margin:0;padding:0;list-style-type:none}.menu ul ul{margin-left:23px}.menu a{color:#3f464e;display:block;padding:3px 5px;border-radius:4px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu a.menu-tree{color:#8b969e}.menu a.menu-main{font-size:1rem;margin-bottom:.25em;font-weight:bold;color:#313539}.menu a.active:not(.not-active){color:#313539}.menu a:hover,.menu a:focus{background:#f0f2f4;color:#313539}.menu a.menu-node.active:not(.not-active),.menu a.menu-link.active:not(.not-active){background:#e9ebef;color:#313539}.menu .icn{margin-right:8px}.menu>ul,.menu .active+ul{display:block}a:not(.active) .menu-icon-on{display:none}a.active .menu-icon-off{display:none}.results{font-size:.9285714286rem}.results .result{display:block;color:inherit;text-decoration:none !important;padding:15px 20px;margin:0 -20px;border-radius:4px}.results .result:hover,.results .result:focus{color:inherit}.results .result:hover,.results .result:focus{background:#f0f2f4}.results .result-content{display:flex;flex-direction:row}.results .result-content .result-icn{flex:0 0 auto;color:#8b969e;opacity:.5;padding:2px 20px 0 0}.results .result-content .result-body{flex:1 1 auto}.results .result-content .result-body>*{margin-top:.25em;margin-bottom:.25em}.results .result-content .result-body>*:first-child{margin-top:0}.results .result-content .result-body>*:last-child{margin-bottom:0}.filename{display:flex;flex-direction:row}.filename .filename-ellip{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filename .filename-normal{flex:0 0 auto}.launcher{z-index:30;position:fixed;bottom:30px;right:30px}.launcher:not(.on) .launcher-content{display:none}.launcher.on .launcher-btn{display:none}.launcher-btn{font-size:0}.launcher-btn .btn{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 20px 20px -10px rgba(0,0,0,0.2)}.launcher-btn .btn:not(:last-child){margin-right:10px}.launcher-btn .btn:hover,.launcher-btn .btn:focus{box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 40px 40px -20px rgba(0,0,0,0.4)}.launcher-content{position:fixed;height:100%;border:20px solid transparent;top:0;right:0}@media (min-width: 961px){.launcher[data-launcher="sidebar"] .launcher-content{width:340px;border-left:0}}@media (max-width: 960px){.launcher[data-launcher="sidebar"] .launcher-content{width:100vw}}.launcher[data-launcher="sidebar"] .launcher-content .launcher-hide-sidebar:not(.visible){display:none}.launcher[data-launcher="fullscreen"] .launcher-content{width:100vw}.launcher[data-launcher="fullscreen"] .launcher-content .launcher-hide-fullscreen:not(.visible){display:none}.launcher-window{display:flex;flex-direction:column;overflow:auto;width:100%;height:100%;color:white;background:#005e7a;border-radius:4px;box-shadow:-10px 5px 20px 5px rgba(0,0,0,0.1),0 20px 20px -10px rgba(0,0,0,0.3)}.launcher-window h1,.launcher-window .h1,.launcher-window h2,.launcher-window .h2,.launcher-window h3,.launcher-window .h3,.launcher-window h4,.launcher-window .h4,.launcher-window h5,.launcher-window .h5,.launcher-window h6,.launcher-window .h6{color:inherit}html.touch .launcher-window{overflow:scroll;-webkit-overflow-scrolling:touch}.launcher-window .launcher-header,.launcher-window .launcher-footer{flex:0 0 auto;display:flex;flex-direction:row;-ms-flex-align:center;align-items:center}.launcher-window .launcher-header .launcher-spacer,.launcher-window .launcher-footer .launcher-spacer{flex:1 0 0px}.launcher-window .launcher-header .launcher-cell,.launcher-window .launcher-footer .launcher-cell{flex:1 1 auto;min-width:0;padding:20px}.launcher-window .launcher-header .launcher-cell.launcher-flush,.launcher-window .launcher-footer .launcher-cell.launcher-flush{padding:0}.launcher-window .launcher-header .launcher-cell .field-label,.launcher-window .launcher-header .launcher-cell .field-input,.launcher-window .launcher-footer .launcher-cell .field-label,.launcher-window .launcher-footer .launcher-cell .field-input{padding-left:20px;padding-right:20px;border-radius:0 !important;box-shadow:none !important}.launcher-window .launcher-header .launcher-cell .field-input,.launcher-window .launcher-footer .launcher-cell .field-input{background-position:calc(100% - 1.25rem - 5px) 50%}.launcher-window .launcher-header .launcher-actions,.launcher-window .launcher-footer .launcher-actions{flex:0 0 auto}.launcher-window .launcher-footer{flex-wrap:wrap}.launcher-window .launcher-body{flex:1 1 0px}.launcher-window .launcher-body .launcher-scroll{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.launcher-window .launcher-body .launcher-scroll .launcher[data-launcher="sidebar"]{overflow:auto}html.touch .launcher-window .launcher-body .launcher-scroll .launcher[data-launcher="sidebar"]{overflow:scroll;-webkit-overflow-scrolling:touch}.launcher-window .launcher-body .launcher-embed,.launcher-window .launcher-body .launcher-embed iframe,.launcher-window .launcher-body .launcher-embed canvas{display:block;position:absolute;width:100%;height:100%;top:0;left:0}.field{display:block;margin:0}.field .field-input{height:4.6071428571rem;border-top:1.75rem solid transparent !important}.field .field-input:hover+.field-label,.field .field-input:focus+.field-label{color:#5e666c}.field .field-label{pointer-events:none;z-index:4;font-family:"Monaco",monospace;font-size:.8571428571rem;position:absolute;top:0;left:0;margin:0;padding:.6785714286rem 1.25rem 0}.field .field-text{height:4.6071428571rem;border-top:1.75rem solid transparent !important;border-radius:0 !important;box-shadow:none !important;padding:.6785714286rem 1.25rem 0}.field .field-text-label{pointer-events:none;z-index:0;position:absolute;top:0;left:0;margin:0;padding:.6785714286rem 1.25rem 0;font-variant:small-caps}.fields{display:flex;flex-direction:row;flex-wrap:wrap}.fields .field{flex:1 0 160px}.fields:not(.fields-flush){margin:-5px}.fields:not(.fields-flush) .field{border:5px solid transparent}.switches{margin:1.5em 0;display:flex;flex-direction:row;flex-wrap:wrap;background:#edeff2;box-shadow:inset 0 0 5px rgba(0,0,0,0.05);border-radius:4px;font-size:.9285714286rem}.switches .switch{flex:1 1 auto}.switches .switch .switch-label{padding:.4464285714rem 1.25rem;color:#8b969e;display:block;text-align:center;-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.switches .switch .switch-label:hover,.switches .switch .switch-label:focus{color:#313539}.switches .switch .switch-label.active{display:block;border-width:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);border-radius:4px;font-weight:bold;color:#313539}.details .details-content{margin:-1em 0}@media (min-width: 961px){.details .details-content{display:table;width:100%}.details .details-content .detail-group{display:table-row}.details .details-content .detail-group>*{display:table-cell;vertical-align:top}.details .details-content .detail-group:not(:last-child)>*{border-bottom:1px solid rgba(0,30,60,0.075)}}.detail-group{padding-bottom:1em}.detail-group:not(:last-child){border-bottom:1px solid rgba(0,30,60,0.075)}.detail-group .detail-header{white-space:nowrap;width:1px;padding:1em;padding-left:0}@media (max-width: 960px){.detail-group .detail-header .detail-label{color:#313539}}.detail-group .detail-body{padding:.5em}@media (max-width: 960px){.detail-group .detail-body{padding:0;margin:0 -1em}}.detail-group .detail-body .detail{margin:0;display:inline-block;vertical-align:top;padding:.5em 1em}.detail-label{margin:0;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:500;color:#8b969e}.detail-value{color:#313539}.controls{display:flex;flex-direction:row;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;margin:-7px}.controls:not(.controls-block){display:inline-flex}.controls-nowrap{flex-wrap:nowrap}.controls .control{padding:7px;flex:0 0 auto}.controls .control .btn{text-align:center}.controls .control .btn,.controls .control .form-control{width:100%}.controls .control-grow{flex:1 0 auto}.controls .control-full{flex:0 0 100%}.token{display:flex;flex-direction:row;display:inline-flex}.token-element{flex:0 0 auto}.token-element:not(:first-child) .btn,.token-element:not(:first-child) .form-control{border-top-left-radius:0;border-bottom-left-radius:0}.token-element:not(:last-child) .btn,.token-element:not(:last-child) .form-control{border-top-right-radius:0;border-bottom-right-radius:0}.tokens{margin-left:-5px;margin-right:-5px}.tokens:after{display:table;content:\'\';clear:both}.tokens-actions{float:right}.tokens .token{float:left;margin:5px}.setting{display:flex;flex-direction:row;margin:0 -30px}.setting>*{padding:15px 30px}.setting-header{flex:1 0 28.5714285714%;min-width:200px}.setting-header-text>*{margin-top:.5rem;margin-bottom:.5rem}.setting-header-text>*:first-child{margin-top:0}.setting-header-text>*:last-child{margin-bottom:0}.setting-header-text h1,.setting-header-text .h1,.setting-header-text h2,.setting-header-text .h2,.setting-header-text h3,.setting-header-text .h3,.setting-header-text h4,.setting-header-text .h4,.setting-header-text h5,.setting-header-text .h5,.setting-header-text h6,.setting-header-text .h6{display:inline}.setting-header-text h1 a,.setting-header-text .h1 a,.setting-header-text h2 a,.setting-header-text .h2 a,.setting-header-text h3 a,.setting-header-text .h3 a,.setting-header-text h4 a,.setting-header-text .h4 a,.setting-header-text h5 a,.setting-header-text .h5 a,.setting-header-text h6 a,.setting-header-text .h6 a{font-size:.9285714286rem;font-weight:bold;margin-left:.75em}.setting-body{flex:1 0 71.4285714286%;min-width:600px}.setting-row{display:flex;flex-direction:row;margin:0 -4px}.setting-row:not(:last-child){border-bottom:1px solid rgba(0,30,60,0.075)}.setting-row>*{padding:4px}.setting-row-label{flex:0 0 25%;min-width:120px;padding-top:8px}.setting-row-response{flex:1 1 auto}.setting-row-edit{flex:0 0 auto}.setting-row-actions{flex:1 1 auto}body:not(.editing) .setting-form:not(.editing) [setting-active]{display:none}.editing [setting-static]{display:none}body.editing [setting-old]{display:none}body:not(.editing) [setting-new]{display:none}.editing .setting-row:not(.setting-row-border){border-color:transparent}.logo{display:block;overflow:hidden;color:#313539}.logo,.logo svg{height:25px;width:88px}.logo svg{fill:currentColor;top:-1px}@media (max-width: 540px){.logo{width:25px}}.kpi{color:#313539;padding:20px 32px}.kpi-lg .kpi-value{font-weight:bold;font-size:1.7142857143rem}.kpi-content{display:table;width:100%}.kpi-content>*{display:table-cell;vertical-align:baseline}.kpi-graphic{white-space:nowrap;width:1px;padding-right:.5em}.kpis{display:table;width:100%;width:auto}.kpis>*{display:table-cell;vertical-align:middle}.kpis .kpi:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.kpis .kpi:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.navigation{color:#313539}.navigation-row{height:52px;margin:0 -15px;display:flex;flex-direction:row;-ms-flex-align:center;align-items:center}.navigation-item{flex:0 0 auto;padding:10px 15px}.navigation-grow{flex:1 0 auto}.navigation-link{color:#bec5c9}.navigation-link:hover,.navigation-link:focus{color:#313539}.navigation-pad{padding:0 20px}.sidenav{z-index:20}.sidenav-overlay,.sidenav-content{-webkit-transition:all .25s cubic-bezier(0.25, 0, 0, 1);-o-transition:all .25s cubic-bezier(0.25, 0, 0, 1);transition:all .25s cubic-bezier(0.25, 0, 0, 1)}.sidenav-content{overflow:auto;-webkit-transform:translateX(-120%);transform:translateX(-120%);top:0;bottom:0;left:0;background:white;box-shadow:0 0 0 1px rgba(0,30,60,0.03),0 3px 3px -1.5px rgba(0,0,0,0.03);position:fixed;width:320px}html.touch .sidenav-content{overflow:scroll;-webkit-overflow-scrolling:touch}.navigating .sidenav-content{-webkit-transform:translateX(0);transform:translateX(0)}.sidenav-overlay{display:block;position:absolute;width:100%;height:100%;top:0;left:0;position:fixed;background:#f0f2f4;pointer-events:none;opacity:0}.navigating .sidenav-overlay{pointer-events:auto;opacity:.5}.sidenav-body{padding:0 24px}.sidenav-region{padding-bottom:.25em}.sidenav-divider{display:flex;flex-direction:row;-ms-flex-align:center;align-items:center}.sidenav-divider:after{content:\'\';display:block;border-top:1px solid rgba(0,30,60,0.075);flex:1 1 auto}.sidenav-divider-heading{flex:0 0 auto;padding-right:1em}.sidenav-section{padding:24px 0}.sidenav-section+.sidenav-section{border-top:1px solid rgba(0,30,60,0.075)}.sidenav-link{color:#8b969e;display:block;padding:.25em 0;padding-left:40px}.sidenav-link .glyph{position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.sidenav-link:hover,.sidenav-link:focus{color:#313539}.sidenav-link:not(.active) .glyph{opacity:.3333333333}.sidenav-link.active{color:#ff694b}.sidenav-link-main{color:inherit;padding-top:.5em;padding-bottom:.5em;font-weight:bold}body.navigating{overflow:hidden}body.navigating .navigating-hide{display:none}body:not(.navigating) .navigating-show{display:none}.navigating-overlay{display:block;position:absolute;width:100%;height:100%;top:0;left:0;background:#f0f2f4;opacity:.5;display:none;z-index:9}.navigating .navigating-overlay{display:block}.navigating .navigating-blur{pointer-events:none;-webkit-filter:blur(5px);filter:blur(5px)}a.help{line-height:inherit}\n',""])},function(e,t){e.exports=function(e){return"string"!=typeof e?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),/["'() \t\n]/.test(e)?'"'+e.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':e)}},function(e,t){e.exports="data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAx8AAoAAAAADDQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgcMR/82NtYXAAAAFUAAABUgAAAVIcdx1qZ2x5ZgAAAqgAAAaMAAAGjFUyrzBoZWFkAAAJNAAAADYAAAA2FVU8pmhoZWEAAAlsAAAAJAAAACQM5gWHaG10eAAACZAAAAA4AAAAODwoBKlsb2NhAAAJyAAAAB4AAAAeDW4Ltm1heHAAAAnoAAAAIAAAACAEVARLbmFtZQAACggAAAJSAAACUpr8+SVwb3N0AAAMXAAAACAAAAAg/7gAQAAEBGMBkAAFAAgEEAPAAAAAeAQQA8AAAAIwADICHAAAAAAFAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABVS1dOAEAAIABmBRT+1AAABfABkAAAAAEAAAAAA4QEsAAAACAAAAAAAAMAAAADAAAAHAABAAAAAABMAAMAAQAAABwABAAwAAAACAAIAAIAAAAgAEYAZv//AAAAIABBAGH////t/8D/pgABAAAAAAAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwgJCgsMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAB9AK8AAMABgAJAAwADwAANyERIRMnIQM3EQU3FwEXBwAB9P4M+qoBVIyq/o6qqv6OqqoAArz+z//+1P/+Ai3//wIr//8AAAEAFADcBWUD1AAkAAABIgcGBwEGFRQXFhcWMzI3NjcJARYXFjMyNzY3NjU0JwEmJyYjArwQDg8M/agXFwwPDhAPDw8LAiACIAwPDhAPDw8LGBj9pwsPDw8D1AYGDP2oGCAgGQwFBgYFDAIf/eEMBQYGBQwZICAYAlgMBgYAAAAAAQFA/68EOAUAACAAAAEiBwYHBhUUFwkBBhUUFxYXFjMyNzY3ATY1NCcBJicmIwGQEA4PDBcXAiD94BcXDA8OEA8PDwsCWBgY/agLDw8PBQAGBgsZICAZ/eH94BkgIBkLBgYGBgsCWRkgIBkCWAsGBgAAAAABABQA3AVlA9QAJAAAASIHBgcJASYnJiMiBwYHBhUUFwEWFxYzMjc2NwE2NTQnJicmIwUVEA4PDP3h/d8LDw8PEA4PDBcXAlkMDw4QDw8PCwJYGBgLDw8PA9QGBgz94QIfDAYGBgYMGCAgGf2oDAUGBgUMAlgZICAYDAYGAAAAAAEBQP+vBDgFAAAgAAABIgcGBwEGFRQXARYXFjMyNzY3NjU0JwkBNjU0JyYnJiMD6BAODwz9qBcXAlgMDw4QDw8PCxgY/eECHxgYCw8PDwUABgYL/acZICAZ/agLBgYGBgsZICAZAh8CIBkgIBkLBgYAAAAAAQAU/7AFZAUAADgAAAEiBwYHCQEmJyYjIgcGBwYVFBcJAQYVFBcWFxYzMjc2NwkBFhcWMzI3Njc2NTQnCQE2NTQnJicmIwUUEA4PDP3h/eALDw8PEA4PDBcXAiD94BcXDA8OEA8PDwsCIAIfDA8OEA8PDwsYGP3hAh8YGAsPDw8FAAYGC/3gAiALBgYGBgsZICAZ/eH94RkgIBkLBgYGBgsCIP3gCwYGBgYLGSAgGQIfAh8ZICAZCwYGAAABABQAFAb0BQAAJAAAASIHBgcJASYnJiMiBwYHBhUUFwEWFxYzMjc2NwE2NTQnJicmIwakEA4PDPvt/kQLDw8PEA4PDBcXAfQMDw4QDw8PCwRMGBgLDw8PBQAGBgv77AG8CwYGBgYLGSAgGf4MCwYGBgYLBEwZICAZCwYGAAAAAAEAFQGkAwwDcAAkAAABIgcGBwEGFRQXFhcWMzI3Nj8BFxYXFjMyNzY3NjU0JwEmJyYjAZAQDg8M/tUXFwwPDhAPDw8L8/MMDw4QDw8PCxgY/tQLDw8PA3AGBgz+1RggIBkMBgYGBgzy8gwGBgYGDBkgIBgBKwwGBgAAAAABANwA3AKoA9QAIAAAASIHBgcGFRQfAQcGFRQXFhcWMzI3NjcBNjU0JwEmJyYjASwQDg8MFxf08xcXDA8OEA8PDwsBKxgY/tQLDw8PA9QGBgsZICAZ8/QYICAZCwYGBgYMASwYICAZASwLBgYAAAAAAQAVAUEDDAMLACQAAAEiBwYPAScmJyYjIgcGBwYVFBcBFhcWMzI3NjcBNjU0JyYnJiMCvBAODwzy9AsPDw8QDg8MFxcBLAwPDhAPDw8LASsYGAsPDw8DCwUGDPLyDAYFBQYMGCAgGf7VDAUGBgUMASsZICAYDAYFAAAAAAEAeQDdAkUD1AAmAAABIgcGBwEGBwYVFBcWFwEWFxYzMDEyNzY3NjU0LwE3NjU0JyYnJiMB9Q8PDwz+1AsGBgYGDAEsCw8PDxAODwwXGPP0FxcMDw8PA9QGBgv+1AsPDxAQDw8L/tULBgYGBgwYICAZ8vMZICAZCwYGAAABAEYAqgOiBAYAOAAAASIHBgcJASYnJiMiBwYHBhUUFwkBBhUUFxYXFjMyNzY3CQEWFxYzMjc2NzY1NCcJATY1NCcmJyYjA1IQDg8M/tv+2gsPDw8QDg8MFxcBJv7aFxcMDw4QDw8PCwEmASUMDw4QDw8PCxgY/tsBJRgYCw8PDwQGBgYL/toBJgsGBgYGCxkgIBn+2/7bGSAgGQsGBgYGCwEm/toLBgYGBgsZICAZASUBJRkgIBkLBgYAAAEAFADcBDgD1AAkAAABIgcGBwEnJicmIyIHBgcGFRQXARYXFjMyNzY3ATY1NCcmJyYjA+gQDg8M/eH0Cw8PDxAODwwXFwEsDA8OEA8PDwsCWBgYCw8PDwPUBgYL/eD0CwYGBgYLGSAgGf7UCwYGBgYLAlgZICAZCwYGAAABAAAAAQAAywcftV8PPPUAAwZAAAAAANfNTDoAAAAA13yohQAA/68G9AUAAAAAAwACAAAAAAAAAAEAAAXw/nAAAAcIAAAAAAb0AAEAAAAAAAAAAAAAAAAAAAAOAfQAAAV4ABQFeAFABXgAFAV4AUAFeAAUBwgAFAMgABUDIADcAyAAFQMgAHkD6ABGBEwAFAMgAAAAAAAmAGYAoADgARoBeAG4AfYCLgJsAqoDCANGA0YAAAABAAAADgA5AAUAAAAAAAIACAQQA8AAAAB4AAAAAAAAAAAADACWAAEAAAAAAAEADgAAAAEAAAAAAAIABwAOAAEAAAAAAAMAIAAVAAEAAAAAAAQADgA1AAEAAAAAAAUAPABDAAEAAAAAAAYAFQB/AAMAAQQJAAEAHACUAAMAAQQJAAIADgCwAAMAAQQJAAMAQAC+AAMAAQQJAAQAHAD+AAMAAQQJAAUAeAEaAAMAAQQJAAYAKgGSVmVsbGx1bSBBcnJvd3NSZWd1bGFyMS4wMDA7VUtXTjtWZWxsbHVtQXJyb3dzLVJlZ3VsYXJWZWxsbHVtIEFycm93c1ZlcnNpb24gMS4wMDA7UFMgMDAxLjAwMDtob3Rjb252IDEuMC43MDttYWtlb3RmLmxpYjIuNS41ODMyOVZlbGxsdW1BcnJvd3MtUmVndWxhcgBWAGUAbABsAGwAdQBtACAAQQByAHIAbwB3AHMAUgBlAGcAdQBsAGEAcgAxAC4AMAAwADAAOwBVAEsAVwBOADsAVgBlAGwAbABsAHUAbQBBAHIAcgBvAHcAcwAtAFIAZQBnAHUAbABhAHIAVgBlAGwAbABsAHUAbQAgAEEAcgByAG8AdwBzAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBQAFMAIAAwADAAMQAuADAAMAAwADsAaABvAHQAYwBvAG4AdgAgADEALgAwAC4ANwAwADsAbQBhAGsAZQBvAHQAZgAuAGwAaQBiADIALgA1AC4ANQA4ADMAMgA5AFYAZQBsAGwAbAB1AG0AQQByAHIAbwB3AHMALQBSAGUAZwB1AGwAYQByAAAAAwAAAAAAAP+1ADIAAAAAAAAAAAAAAAAAAAAAAAAADg=="},function(e,t){e.exports="data:font/woff;charset=utf-8;base64,d09GRgABAAAAAK4wABEAAAAA/GwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABgAAAABwAAAAcfg3B8kdERUYAAAGcAAAAHgAAAB4AJwE1T1MvMgAAAbwAAABLAAAAYHN/dWZjbWFwAAACCAAAAjgAAAS+1h8aA2N2dCAAAARAAAAAFAAAABQDqgVBZnBnbQAABFQAAAGxAAACZVO0L6dnYXNwAAAGCAAAAAgAAAAIAAAAEGdseWYAAAYQAACaMQAA3UhCB8sWaGVhZAAAoEQAAAA0AAAANhEbVxxoaGVhAACgeAAAACEAAAAkDwIHkGhtdHgAAKCcAAACIwAABLqV4QERbG9jYQAAosAAAAJWAAACYL9F9WRtYXhwAAClGAAAACAAAAAgAlUBsW5hbWUAAKU4AAABMAAAAkQJm1bMcG9zdAAApmgAAAeOAAAMErscz7VwcmVwAACt+AAAAC4AAAAusPIrFHdlYmYAAK4oAAAABgAAAAb3vVi5AAAAAQAAAADUUbVqAAAAANTcZEsAAAAA1N+oPAABAAAADAAAABYAAAACAAEAAQEuAAEABAAAAAIAAAAAeNpjYGYrY5zAwMrAwmrMcpaBgWEWhGY6y5DGlAbkA6UQgAmJHeod7sfgwKD9/z/b2X9AHWyXGWOAwowgOcYvTHuAlAIDIwCMvw7BAHjazZPNS1RRGMafV0ebrxydUeeoOF5nnA+bwFqYu2hnEoh/gCCE4VoU20a0cNVeXIirkjEkFxEUiIuCaCOuxsEaxc07iyAxk0CYnnuOLQoCFy068Lu/55x77+G+55wLoAlAI7lOwoBMQuAPveao2PHGi/GA3GD/Lu7wnSCKXtgb8qa89XQ8ncr0ZArZxex5TvIxbdaw9mqf5nVYR3Vcp3VW53VJV3RNN3RLd7Ssh3pcC9W663XOWPTwl5mgQY1ypn4d1BEd0wmd0Tld0GVd1ZJu6rbuakWP9KQWqdfr5YNA9aD6svrgMz6d7v/Y/1J5WumpJPfCptt0GWOSptN0mHaTMHHTamKmxVw1URMxIRM0V0yzaTIB42r+Ny3qXxomL3o3/Uov4Hp7lMd1RYAeciBGTznQSq870Aak4w74TjmQADI9DrTTBQc6gOyiA530uQNJICcOGCAfc6ALUEqbeemmg8T/tn6aVWgv8wDd58At2r+XZx6hB8kw823a748y36PHyDgz10AnyDTzfXqGzDI/pOfIPPNjeoEsMT+hl8kK83N6lawxv6BLZIP5Fb1Jtpjf0Ntkh/kDvUvKzHt0hRwyH9BH5Bi2WD0BaiHmMzpCWLe0QE5KFkiKfm+B9EG+iQXi0c8skH76rQWSpt9ZIBn6owUyQH+1QLL0mQWSg5xGLJA83Ua4t1Kg2y2Qa3SnBVKEfH9kgfBfFe7Vr6MqDf5B++P0/X6OG/EftMTlH227zEM/AZQ63VMAAAIRAJcAmgC4AQQBeQC2AOIA3HjaXVG7TltBEN0NDwOBxNggOdoUs5mQxnuhBQnE1Y1iZDuF5QhpN3KRi3EBH0CBRA3arxmgoaRImwYhF0h8Qj4hEjNriKI0Ozuzc86ZM0vKkap36WvPU+ckkMLdBs02/U5ItbMA96Tr642MtIMHWmxm9Mp1+/4LBpvRlDtqAOU9bykPGU07gVq0p/7R/AqG+/wf8zsYtDTT9NQ6CekhBOabcUuD7xnNussP+oLV4WIwMKSYpuIuP6ZS/rc052rLsLWR0byDMxH5yTRAU2ttBJr+1CHV83EUS5DLprE2mJiy/iQTwYXJdFVTtcz42sFdsrPoYIMqzYEH2MNWeQweDg8mFNK3JMosDRH2YqvECBGTHAo55dzJ/qRA+UgSxrxJSjvjhrUGxpHXwKA2T7P/PJtNbW8dwvhZHMF3vxlLOvjIhtoYEWI7YimACURCRlX5hhrPvSwG5FL7z0CUgOXxj3+dCLTu2EQ8l7V1DjFWCHp+29zyy4q7VrnOi0J3b6pqqNIpzftezr7HA54eC8NBY8Gbz/v+SoH6PCyuNGgOBEN6N3r/orXqiKu8Fz6yJ9O/sVoAAAAAAQAB//8AD3jaxL0JeBRV1j9ct6q6ujvpdHpfknTSe6ezddJrFtIECCEEAtghEVmCAiaIQmSRAFFRkcUVFEVBxgUzGh3E6oCKCoq7KDWO44Cvvjq+OOPMuIyjjDISui/fuVUdCA7O+/2f//N8H0m6qrq6quvee875/c5yLxSiKKqP7ZcVUUbKTfF0gFeEeIPA5wQRbwrw7DFeF+TlAq8OJs2olKqs0hpCDq0hGNE6gpGwy6ENO41ah7MePX0E7YnHceIIvqieFrpxor4e7enukt6kKNmZn87cIXuPa4bvCVP11ESqjbqC4isDvB1uHuDHCHxrgE8I/IQAXy3w9fDVAuKnB/hJx/hpQrIdlSanTdLqnlMX2Surx0xg3eYaKqm2a3WDJnNJTU0NP0Y7aHX7YC+ZaNXqko1x2Kuv1up4qqayiglH3aEgazIbaDnHupwVtM9L6yPhkLmQDcbp0SgaCprkRs5ITrp9YZ2BDQXdYbedMZhCwWgk7HU5OZO4T3YVh9GMd95FHW8zs+wGvOvMum8emCtzznrJZpLb5i3h9++5ZqbRyGmylLKQFv/362/i/84tQoa33kYm/BW+2rFx3vxbNi2Yt/Gaxsrg+PHBStm0xuVjxi5rzEu/l5y2tWz8FPdB2psKyQsVnD7oKyosKc3NVehU8rS1bcWKNrksPqOubkZtumrexlvnLti0qXTeuHHzGmEcYSzpLrafCVFKSieNJfRhViCZfXbkxDFz1rP+ePz0h2ScursoioFLsxQUu5kqoLxUJXURxcsCfHaI9wh8RZAvCvAlId4q8HqQiaoAj47xNoG3aZJlqJRXC8kgjE2ZTat7Rpattzp94sgUebS6fRRSmxRwWFmlMRTS0KExEyv2ZgXtcrJyr9vlVCO9BgbGTPodkTHSamAAxqy4b+aDqHHVdWjcg89+M3b5vTMexs/39uIDD828b0XfV9cj9dxO/G3fV8xzs5B27VdfrcX/YBo+f3px9aObbtn1t0+X7rky+vDGTQ9Fr8SfIfW2Vb33o9ze+/AJ/P39pK1YYPs4gQpRq6j11K8oPhrgbxL4awPQKsRvCPDUMd4R5OcI/Cp41SQvgVa2C3xTcO/i9ksUpXy5wJcH+MUC365JNmWX8jqB12mS0+BT1UHocN4STG6EHimfAz3gq5y1YCX0AL9YO3hFz3Iip+26Z21R9uIl195E3tdpk/FJ8O403V6NsbVN7LtrbwL5rQ7XQL8ZDWaQuVi0HoWJyPq8kXAsCj+RsA/EUM7ZEHSsGX5NRoOck3NGPfm43JCL1DK5GhkNRchURJtsyOurQDD0TqNBxsnhJoao2TSaJreKRoI+r9kUYLwRXwzUwGyScw67z8snP/k0yZdePropR75gwR3lS9Dgvv/6cN9g2eyJcY7LYhcsuLNqUe+RodNH2AOjtBa1Rm7g8nUmq8rqmXFAftON66IRjG+S7W+imcJCq4Gh1WpLYaFK5XL5Zu9nPU/9+F9vjMp/Dv9whnpBO2X8NPg3/kTJnGWjx+Zwc0Y3zLklfEPbibFTp02bOvZE8eyrJo2SyZXsnIbRczZUr2lnDyxZ0hU/UKM15+oVVoVzlD9a7DdYfdMPxDfKSooXjKuvv7atjNk4dj8DX+90FNo4WYE1VBVkmLJS34z9Yw8X9PQUG7uvVFNq0JsuBSULUbmUnjJT+VQR5aJ8VCkVAAmJUXXUaGocRUVA9x0gulpQf4cT+jkSMjKZP23EYURn93++PXeuvZb7vLa9o+ZUYU2HAP+6BZZKUbARuo4IXQLajsl7J+vb2uqZPTUdHTWpzYJAdx85go8IApw7u4/CF96Sz0BzRBk/Kd/D9VMmyk75qfHUYDFFlfKcwBcEeA1IeYko5WaBN2uSbpDcbCFZCjLrNoPMyjhNoUMUxIJirW5vNlXkFHVYa9AVItbujiNdJExTRHlZc1gHSms3I68SmbQGmnXZFzx7ApWjBlT2/TPzH8BDeOvh9Wc+fHbthG+veRMZt6PcI6f/PIB0rG3gbfzYEfwP+r2H8Qcnnl0gXvbw2+hKJH+gae0zH+JN25Hp7ZUDp//8Jn6Ptb2Hf3gHP3FYtHHn/lVJxxEYv4WUFdrKM1L78gK84RjAVjIfWiU3AAqYakQLSEaRAgOEQHsk+wMq5nNyn2xnHxJQ0c2fb7CFg/h/nrvn9F2s/4GP0cP3HkPmt2/+dK1i4A93/nhXhZ39AxhZijqzh6vnWCobJIYyepSgW6CcciUyj0bmoMlsMuciL/ornaDZcaO29qRT6T1WT7ktr7N0IVPVH0pcSbfSrMN786itlvTp9N43+qvYWOnCS6o8XZRkx8/I2cPcZsoBaIl4J5gm0ho+P5h0iaYcVD4WRz5tISLqajbBQQXyVTARl9YLeu/Pv+/QFRt2yS69Q1/pZBiVP1Zc0FBZ29pZ1X/v0zsfbZk8S+GuOjSfbdGun/7BaKPKO2Hqr+9aXVU3feXl/qHDkfro9xQ6cwZ/zclAhvIoylyI4BsiWo94d/HAp5WJBy7X8zctXk8fvXLJ6kXNL65bsl52+oWrlq7q6p03qsz/4MXMNwMpbPBXvfX26Er/wx2yXd+ebjT4K98S+zAk28F1gd5VUDXiyJXDyAUCvA8kM8i7Bd6tSdpAOBVCspIIpw/A3mp3ECNq0ybz82rIkFb9TDEpLzycWRsCy1eIwCK6nMTGeX1ag5r2+voSLNW+qrcjRbWtQbeUl5e/0L4mvMDtU5XkqrKVDEMnmsLTLpvpSvStaZPt6FjZ2346euP4CaPt9Al/08bKnk01RqM7WNudnf5rpKOikFWI7biJWyT7CSTBQ00RkdMJIxXgjdAar4iWFgAFTbIImqIRkj5oSpEFFEtuMMoIBGi0vBqUzSkDKZXX8PnavYCbGlHlLIjAZgyZgKD4kAicdkDMMBUKFoLgUkBk0CL+uxufuA+tH9PSWVWP+zqvHPwe468G5iB638o/3IjxMyv/cAODMf6OX9SB+8aM6axpQjfe+9yNcHz5k/iefYi+/g+9z2J8w1GwG+iMVz6BW0xZwAaGgUMgPhLgy47xKiEZFQUvaiKygEzRGAKRYzk5UiMzouKAQGrGR0XNhYzZxPmIMCIfCrdMfMTNNM5/yYn0BWzprGs3X9tlwV85i1Wpg/RvchLzbFYuMHZCPq3RBMJbl7WrVaqq2PbaaHv2bTsntYS9zDhVsRPpLF1w4ZwypgB/6XxpfuoA+v3chNZW0NoQRGZmh0aV07FsW6QyN0s1vTa6Iwr6eQZTffJJwGl1YMnLKZ4N8DkCMQpeGJPiQNIPbUnm5QDMZueCNHm1e7M0Sq3Y5bGz8iRHIDw+5DXSoM85iACrx02EyUckjR3v4Lod4/2pb73VtZ7Ut34ur8SElqMV3rpaJ7oGLTc5DAVVWepTdY5P7WPHEgEy4m6jEW03+lFF1Jz11ttG49tvZelcASXIkChHS7n9nB9QqIiiLOissdXQFchtZ9VIScfAwCgRmJmLH/oAyZEFyT946GLYx6fw3/CpDx5CeagOv7EPBmgUj18XX/Bh5hLp5MU/uygdhc/V8fgwivH4DXw4iarx2+JzgFZyFOhl/r/j3ohnAF0S2ntXdpwOgS41X+CLuxJrVrexQkfvqvbU/F/6rnNtHkvxXIAvBEySbLhd1B1wRQwaYsYJRjlAd/LBmu/lcjUyEaLMhXCEsrKpjL78e6+hiEMb0jqMDq1L+0vdhtCD7wP8dr//S32FuffRg3je+3g++hX1v/XRyG88r5NCaAdB+W5hRM+kQwLagbsE3I22U9T599Zf8N7G8+/JUuffTchgJHdc9iClhXsgXhdIUtkE/pP6jCMAIxjVEAqZi8gru5n+nD6+efO6fc9dt3L5umdfwD8yfz24IT2b7t+A1qzr7b3yyt70+TJqBg+OjBeMj1EaL8uI8TJL42WF8TKfN14GDpQOZYFvpjES9aNqfnnYjL84XKziPwzU++Q5xfbvgOf0gB0jEmULwUPyWUHRJlPDzwkCRbqF2GQHPOdgloapqak520USzZb6COxcGOhxEZJIsgY0wHu2255Zt6z3umd731/b/9DNPfM+OnrlonVTWjvSd6bvmMn86cA60pHrDhyUOnLpu9fdvH3ewYPzpkzAP7Wln6MnTslgfrM8i0uA70ZpEaNEDHJkI9r6Cl1Olx+iLemlJ08yu/CSdDV6EnfQb6O7aT49TcJRth9w1A989WKK+CZBgaAQsXXhAF96jK8U9uoqS8F1AcJXqUkqodFOIRkhg6ODRqtkXuI2KysBgGw1vFPLF8JIyYJwijI4a8gIaR1hqdlGAwe+BQJfQ3Qm4ywgU0zsJwe4IxQHpjKOvC4vml4Tuf3GusjUQLB6bWGl0oE4B0PnGEvtcx+wdvC/wT+8dtenaIbimtmz1ihWzprFRha1zWxpbQuvdRa4r/KH3rUUOA3hoqr8eJ//2ptOX7+mY8vQly+soume/X0yieOyZwrlC7jrgOOOolqI9YA2Nwt8Q4C4rXmSTE4K8KOO8SGBD0lUAmRyMjQ7NAp4rjvPO66RALBNyzvJmOtNOhWMLhFDn5f2uuVqmSeicwRF3yoXgbPlikBjRwPykb9zPhgTR3UoaAIHqBRoGMc8AAZl7svbke2L38yimR1n8KMv3/DP3+5eNYYeq0Kz93wQ0V1WM/ZTZUGOqVSeLy8vqHBYLpridKhkrTVsvJWdUs/WttKvvIwfO3UXQy8Y/BrZt7+MLvlpC40mXJf83Y/zFOjSR3ZcMqGw2VPZptCsLNHonTKjrMgw3hny+auqY4r0dTUtU+prp8imivIxLFf6kZIll+Ujj0wPv+fL2HF0xZLlaCH+aC0Gh2Ltv4vcFgUxhYov8VaM0eJhvhqSrwcZjBEOTgf4POj76gAfOkbIWw30uCIEwpVHejlidETCHuKNip4s+QmD40lCAnI1C64s8WMJgxZ/QN7krHw97jx4Z6AyV16co8llPFbOP/uJxX+babbrlQzHqRilUpnN5WhyiuWmsvI7Xsadqo8+6t46fktfeSQ6rziHsRfWTsjdV7vyinErbbWBOu9o+/hcBWMyzCyyMznFl0WiFdduHr+V9BUWmD2cANbNRThpFpEiwuUc0B53gLccA3xKeqA9hcDg9qm1RkO+aNbyNWDkFDlqo+QpmeMoZOLkjBjz8BEOqteBlUXcuWBSpO6pghyk7usUFqNrHqnfNrvCubnj4R68EGnoRfOWPbL40tX30jtnFregWG36X/iet36d6FtHO9Dkd+jtnVfuWDhj8Y7zdKAM+r5M1AFJ+iMCia1ppHEIHiOST8YhG7T6F6VdBo8dlDMcMB0zMHt46igMip6YPRgHl9P7n0S7a+mJ0fMiHcbCwALP/D829kVaLJbyK4/Ov6hvbuvYpv8gzn2zV7+B909pqZq/7CiKNTXRtro5veMuGSvhTbOCAtmtouZRXRRPBfgxIaDTiJ8v0lJwieSaZC0odovAt2iSY2BvrJBcQJy+MmiopYav1T7H5mr1wVGd84iut+gGaTSDmLuxY2AEmydflJgujqCFgs/PICEXh/Y88RSFkyHCSYvCaRwhmeBunD2Sk1etI0LCNORyci24ScOSzcDFsjvw7TuX+3wqxmlXFhgYfXDSignPtVoKcxCbQyuMSruTUfl8y3buZrey1jxGlZ+XSI+uR++qc71/XtEeVTF5VtaqYa3V3WNvi+WalDIZrUL7Ud7ch8auW15SGZhttJjm1GsGSi5uH1u82NUcafXO0LDG8ByTxTg7UFmyfN3YpksY00qtRjve5XD11F9XE+vBwjwUM06YE7ysw9E0Hk6tVPX5ExMrEuaSQGFEH5eLfKKLE2QhSkMsCNAb+BkmJRG0h6WGBNl64jOd3sO8hjcfxwl8vC9BJ9pXHR/mNCEYxy4qCnZ6vDiOxEKMC/BV4iD67ce0vD3Ea4VkI4xdlR/Gwl3Dy7VgMniAIZneSGA5mQeDlKwZLUbGLmxFmOG+FqNhI4dKjkRWFiGszMF14S2vbA1UGOV+lUbDeAoYS7zz7plfz8lza5RyWS6jyFJmKUvKmNyqwJZDrbNYAQFPC2ExxvLRypvH37WmrDo216emHfZqMC0VnbOby1Y64mMCTZ6pWjAt5sL5efmWS6sj5X1bxhsc6F48fAepPyhK/iHwEx9VAj+DDInO+AReESQBGp0k4qUBEmClkgXg9yaL/aTRGTZYD0AUigz/SczQhkJGlzHz59GioF0esgcF8V+V4yfBUSXtM1k0lbAHg/Y+4Qgc9rkrKtx9sAMHdBc8HQIfcJt8HKcgzFZnqkNizEQccDEEAAYMfCKnHCFD+W57FN2BdqFHHLk5st3lBntKcMx0pAR6S0V6fbmbXpPeoMq2Oui+CjsTczhSh0fwWwUgxXjQauL3qwXeE+DHCYSuVEDLm0SGphV4rSY5ClS6REhOALEYpdXqnqU5a57DUyXqrEdNKIpSSyIC47R8Qw0f1u0zFpSYRxFVr9Dy1WLYymQn7rNI5IgRA5FBUbMpFgX8ZsHJ80gxVontueEz5BCukLQaceRK7gs0alnHmDFuT0lBR3TS5EURFBjomjDR4ViC37sTv7+c7rN1X7/zPtS4bNkKfHRJV1OTze/2dNddH66txQfv6bKVltQi24NfLEu0NBUUJKILW6cA/xqY39DgSDgWeW6DW6wttnXfg8Yte+jBZb2qJd0Tm2y2rrCmumrypFp86J75tnqKOYPP0AoNt4dSU4WUl6LykRaMswPpQ4wXnhT9W5BSr0Qevdbwx19dga5Gz+Ejv8ufPLSlEe2usMvetZeX24ci9opPD4LbmIWm38NWpXeh5kUPEymlxzSbMFsw9AdHVZWDeYu8pvbx6FncD5iFn8f7RNw/8z0+Lt/IfUnVUZTXJHUjiUSJYYEKOko6upCGI9A/nxeOKhA5A58kp0iIgDx27oQFt71/dID5ycBZPZX6lGL+a/23B2svZv65pGdUW74zmIqWhayW4Cx6wJnf4krPqK20+Me+nmDefTRivXPWq7tSiuWv/+PSe8gdKp0muT6V0x6r2tT/5uXMPy/P10xftDqYipQpmdwI3KHoIkNhenrsluWOsUZyhzdm3WmNPJpSXAftYYmdY4mdyxYZQIBqkNhMiFcKvD1I8lTeEG8U+DLwIypFKVUFeRkIKrxqkhaQVXeQJEf8wWRVxtUCZliPwqXIaRy5j37h/f79/Wd/aWHkEcrq73/+0Udpg3ic6ht5NMzBxHiaCywKb5PiT8BZrMfA1vJ5UvxJJ7GXojwwsMZM+KwIEakRGS0ITimKaCRzEgnbSWaPM9b4+7rn0Yk53X3+2oT/edz99u/BZ00dKY6XtKr8Dodf1VrCFPkTP6IPf/iTP/H55/jz1opMHJoSZDtYgcoBa+IHmSXang3dFSDppKIA2DwSiyax57PR2WjGoP2no3o/K/jjdWWnQ6V15/bLake+j0L++np/SX09utofj/tLRo1CPZl3JM4KPSa7XLaLsGIdZ4ZOiBEj4PV5QV6ZCqTV2NHV5U1si58WbNaqaI89veuEezV9aGkQF9SwY9m+6BI7nEhF0KgqjdjWzQpKlkXZwOesphopXiFyMUcA3C7E14jSUgSt1pAYLp8rEN6SdBVpdc8oTGa5t1Q0aQ4PEMlcqjiWCbmbSYQXXGOwvaKbRVQG/GM5ccFYDdhQ+KMNJugZL1ExUDKAQpfTXz64eDWaja5Cs1cvHiz3+0sHe1bjfnwP7l/dM1jqp2tA49egLHwSb3CvO7BRWbLaqZEbNLlKpa2TFgriYwcmTF2wYOqEgbHxgvwxY3/dPHX+/KnNvx475ndoCUL4DL4bTJFh/9q1M/OVhSzN5YWrAoGML0AdYF5jj8OzURowrcGYEol5Ux841IT6EscZ3CYj8bAd7oVuMAi57nCoxYO/QPmeFgA1/D0+4VrkcjhQHv4LumKhG/Zi+LCjqcuDGtA4T1eTHb+Nqu12dyTsxgfxIQlX8G75a9wn0P+BzIjCcAKFDSCR4so5sw6JoTs5oqCTzPKMoTfJOa8vJ8eK9lS0M8+GzPNMTk/v9uqgakytsQc/XuMdhQ/UhVMt7E5rzSXzq2osRk92zlhVIrrBgz6Z4U7f3VRPP+yuRY3RmqqZ/4O0d1bnWmrxq/iHRMSTvgy1bfJMmGAzxD0Kx4IGjyV6Hh/Sg7ZSINsAs0gCdrlD1DnkQARqz5ryvkQXCtFU+yqFKh3CfW1raIEGOtElBrO7SRwo0Ucoxpq2gyy9prcdH5GO6G4SxCbfeebMmR0KJUeJ2GGk+NwAny+IRqIokLSLCpgvWgLSZ+KXxhwgbrATQOKhnO1QLuKWxctkHTJP/KcDcU+Se8OoaPGnm3vGxJsWYd4/RsE8mJrXVRllHoyUlx8AntFS31Tjl2wBwu/IePCtjFQEPPZx1GCUsJ4a0VvRwWPUixoSFpJx0IswML19RuBRFlEtojXAgWJ1gPN52r1MFucV1UPP6cwmndEhckBfBS0GjszemM6uN6lpQHL4lbu8AdobIYpB/vRGU8wUi6iyV106bxPt/3Vn8XZ11rzd+EfM4x+euux3CoWLedDFZMl0WpfaE94bHAgNNhTkm/UMk6tm2MObt9yzme29Ff+jeyH++pb//mBl9bvHrz/6687OXx97zqFAd+Ml/lHmsoJR5mDzd6++9MNMnxf5ijh5YUFW9umjR9sZpv2opCOC/EOwixzh04RcadE3sq+HjLSAKTQZ1Lb5rP1UUPA5DWWgLKKkSAAfGUZ4uNIDl69p47pI/O/UjkSfwHUNUSSmiHYQ6aCprrY1fYn0DrorvaMLbRNxO32mlGngFlHFFKUnFLlQpmbA8TObFEh0X/S6WJQwaOlHr2kfY7E3ubyqLFmOvki9a5oiG61A3TLlwUPco7fmKJTqORej37y51uCm/2pw5mXlFGQbOava7xhvx7c/r1CgR9ALFt/UaTq0HNWWFiDUfSl68fud9piEW7dwmzmDGJ0wmSlH0B3VRTTI6zPpaIp1N7QBsbnmOdT63R146JIr59k34T/jW/C1aNqSNjx053do0rNwV25u+HF8Lb4d/3mjXcTxkf1W8B96Dv1S79H/oQ/xIqkfzxtHh1YJQyn7Dv0VW4c0tBXvo0HT8X7pcx/TCfZ1wEHob0J9ELFHSsRFIhXolqoq3FsRCYdRIz4QQWrYuTMYRnfAuTB+GPdHhu3quXuAbYsSeyrypyp0S0UkEsGHUEM4HKnAvVX0TrwsHK6IAAJcCpsIXh4m98giL7Id4HcooLdt4H0EqVrwyFqo6dQc6q2MRtYKe021UUUpMQ8AXlUCoUAXh4ifNisIXgnvFQjriQfA1UZ8p6i1rMCzEsPwA/nRJMOwVxckhTyj4VWTrCDMSEzotcPeJUJyLmEhLND3XIuVeOPVYcA9R2kVUexkuxtONE6aLPp8jnxQ/bbp8Bm6Ct4uchUTug+uYUUNX6obLHT7yfVxL3xKOV6MVRpCQRhlJ6czFCIx9+eV603EGQdk53QaAkYawCGaxDVMYmBDRxAULqEzW4ozkQvlJPNDbgAKMXzTru54ov5FZ6jOalTYWmoUhik2F1M6yTXxy1du2XTwwG0bW/pmXLyqd2YHG2wIDv+iVcqKVlvLspZC5GiqtyptrpabFlweT9TQQoI4Y+j5ukoPbYR7tdSmcuDGrkmljGsiPQ1/99JBpDuE5/J9fTMuWYPvS9TXJ+LsZnGD061BhW3SsqbUfZNcTbXik6CLyQ2rCJflzuyQfwmCaaHcVAVYXCfFW0kki/haZaK9JZYWOtgKXWfQkq4D1DTpwaaGHEA3AAUCCNxsYgE8DjHB7XKokTHmGN4lRRAO+JNDHzqcaoVaPbZRlXuVbI8tLt+pto6rPzUt4ac5pJPdHTZl6U+7CoICkyK7qecLgl2304bNbHVJesd85qcxtgl4JV4c7ZLVFDM7mhsb4v39CQ8rb+wurqVpWbVfkLapNUJ/v1CQH8jEFbDAdgGmKCkTqXjKklivOUCoOGGUoJGivhsRGWpt5giFUKjejxMJmhL89Zl9wMur8Rauyx/vJu+czoKDI/74cHxzoXwUFwONyaNIBpFkOmiB5BGTNAIuzYg5AxRiiJiJFTliTAK6EGgayA8D6CTGIFYLzz+6JtBWM8Zd5IyObynpuO3WN7X2wvvwv14eXTa1rbjUXjt1QXzt87LSoXr6/Y1+Dad05uUVuPLo3MIdO1C+tUBVH1a7LPEZFWFvFQisf6OIE/B8h7kIpRItHmXmRGsHVgbollimog1pzeYKr9zl9xtTPbmBityq48ePVxU1T7BzYzyeIY8goMuJdcvgDshOCGRHKWZ6wLadNZvDdtRBEjTykNt6aoLV3dVRK5tQ23FqO1i8blY4aXW7rUNdo9raRrH1uFssSskiYwWcRwDfygIMuQp8xglUGzWfupq6lvqKGpxAbM8YYW/+hDEK0ViUBMAUEduzXHS/VgdJLrpSIDH9i4S9losmKUj1GeKvEy0QOGHggfnAugQFPqghos03B0lQoRVeNckYkiq3NMmlsLdSSF4PY+eTgUXRaEmOgw9qk0UG2MZ1eyv94Vpih2LjwCgFSiI1JJxQrk22X00MkhsMEj+zhi8haQO+Vpe0XwaX0dqkrwy2Sl0yGINtRJv0lsO2Ujeo1V1OvkCt5TU1GY8wQhwtsFAi9gKzD4DTzJjE1IJXhFxKowPWr9MQTqMPR+3ETtm9lA0RCwW+otfJnN3jjGLeBW5ENLYC+LReLBiAPRrAe8T3dXV31fu7/fVfKmyaWtsUQ/3EFluraHZsCjBQUcNElLUN0SiI2Pvvxyn8W4zRCTTtxAnMn0DNIwxakF7I6g2qWtFONRnK3XY6Pr6ppdZYXVlhlU083jUfvmi+vz5j3+g3Wm2qWpvCWDtxok156q9WMJ221mCWPZo7kbkUuGp62zbEoDBitm3D85/8/vsnn/jHP9KPkEcVn5ejyE4X8eOG7J4yg6bWgcDmjjfoWQ07OQLfXGNEBSWFionpR8QvJDqbh15mfsf8i8oFb6CQpK1NcZrgLspjimMFAI2z80Y5FXm4B1B2Ce2qdSgtBICNrDdSgDaEw3hNRvfxcTCm+zMYTygDMLSFaDKm2PeHNATvRVj9N85h/19Yx//CPP43/nGOg5zJUhi5zSRepw3FHEwIOWJxOhIl3mAA/AiX3uFz6YUv0FIwce/Q2imRBZON0Yp8/eSJ6d/iqIDx5i+EfrT0SEpgQjKmqMHvL7Do1UoFE0oJAu7P+CtcF3cNWIMQ+PFiXhF0DrRSqUkaQJ8KpHSiQQkKI+Ny1IS0k3AlyGQo6POCG0O8UlKRiAwqeCtPKpjyhWNxBrYZqs4ZG+t7xlmNi7pstvIxE69FO5ABPXyodmDloY0rmIQ34GeLvIaGPUu6O2+fe93D17c2+o2LF9K39XTZ9KZHV6T3jLp+GvoN+mtX9URNrortjbYtmdc7yjz56IYJo+e2Xl5/rjZuPPc4NRWsz8VUK7RmRoCXHeOnC/y0ID9dk0xAgzqCYC1I6WdyOtiI51Rqjd40rmUyMQQJ7V7z6LF5ok3QPZfvcIcisdq41GIdV4RMpPoSmUj9EVBqoonwnqjaZAvOlLgP2/DojMISqJXLOHGfXAvnOKPZBH2CMrZbo/Hzfj+fr7Q7PgpWaXu0pWVDS5q67E3WTsPCMr58LKtgG4IPBzX+pNudLNFGv4pUGddonWX4y/I51m7rRGun9fJgf1lcxTaGHqJPCYLAeibYH3DNc+00lhTKrLKLqjAftNs2185/yC8r21fmtM40llQNRGaqKlRN9p2OLscD9jrWwk4pR7ODDtvugoJyvpwp6y9zGKYYSyIDkVmq8tSJo0fRBNqY/lrCkNc4g+xDSg5S4yD5WSaQzLGGRCKpCPB6gTdIiTUngdOkwhAMZqx4jlhXzKs1pICAzxMyRW+aDDtjgix4fSGxBjFiZymdNhTOQlQZct360m23vXTrEyj8x5tPPIGP42X/jVTor+jS331/9WE4fBIv/gBlHdq48dBGtPjmP+LfPv4xug0VPfH9e3gXzsc/fIC2og5UdPjqC+IVielMoy6lFlOrqc+owUaCV3HAq8b4WbyKinh1tYhXK4fxqjnATwG8mtKcwas1F8SrqIRPdSQTMj7ENwh8S5Cg1RJ4f7mQ7PsFtKrTJSuBACfLoyClJYH4uObWxGLRZRZh6uJhmIoCTHWeB1N88GcgNe//FqRCWuf/Lwh1kk/++P8dOv3mu5TwbXrX/x02IeoTufOcLyc6ckriE0aY0nAA/sLhQJpLZ0eCYbY89WlFBeMiflzaR38UDFYM59Teli+QvQOMVIq0ycwoCiaHQ3JSnhclLjzckJIjQyxajqxo/Rdsl0zNsVzqs3K6xlrFcnffwSnsNu0po47u8jgQjfczdXblAzOZmEyulnGpByNYyDEWaOleer7Fmi9n03coUruL8x1fDEALVGeOyXdwMpKHiHES4WU9UfhWHQm1eNwyVh91x8hvCEgwPIlBoS8uL1XO34BOIutlT9REP787RxnDj6UXgt9+VWADWvrQOlQ7wRPoWYkfffYVPBDReq252XrhgQOvN6Kce+9A+lalKhZo+/hbrH3wp1gFeAT+8pdX3YBvJP2RdeY1+SmuhSoChJIy4b6zlc52gbdrSOibxF1JpbOdZBKLZGKtjx5EnEz3IOnaCpoEWs0Zx5GScSyNwtGgSUx/G7K630HRF75C66aOV4asVgtttKx/rXpspcpww21Ylk4+jD88wAxccsPMmfGxl9Abt+L0yz13dExqm+gurq8c49k60cgGqjtTs9G03eUY78XPjLn44ptmzRweTwdgbBdVDL4awdj6ERFjMtMiIkXGyooAY0cFKuskxNGSCQAms0GuJs4qKJX4G2djJHYIJtGZRSPwfAxyktUXQ/wkqOesu3xx/VLmosqo2xYARL3qisZm1XSjy5nrlzXir/Glh0r7FrbIAlfOL7BMnV87YVx9T6OFXmQLuixyQNaV46/YdEeLafLRm5vLq5R1uVab2iOLV9EH6tcm8Cn8GH6auXxJd3pFT1dBzH7LXPTd2snj/CJHOnMX2FSVyI7c0NIyijIaTISbSVFi8akJSSPKgAhf8gD6yeBP2jbZ0YvoJacbvYBeNObqch0O7IC/sbjJ6Ya9jWgG/N6MZq9DM2zg6ZD5NgYDeVWpDH52dwlwFYMBf4nM8HrUUHL6PVZ19PQPP3uRciniWJSQiipVgOQimSBJXvgFPi9IIpZ2MUPLu47xnJjxUQfJICVtLpArvYX4CVoV7HJ6MKp+7V6ZwUwmxvB2XdLirRFnxIjZMgNnNAwHJOQoCm0/VyICZ4zEg9u3truDNrD71t6wd+8NS1rSf2VZ2jplETlau49NfzN56VpmMt43Br+Sa9DfsHcfokFQGgxxA2oYu+/GG5L71qoNufiVetIutJTtZ9tJHh8sBjKRjEc4Y3sc6DPPTA/6zOFobcM9uKetlflrlwNHPR70DsB/aytei25sbc1wKEFWBNhYDqg4jpotet6AaBqxj3QhUgEdJPO4kpYSQPWaAD8auqtRFGifwPs0yQIQaKOQHA9dRvLbDUp5jlbHVERrakXwqg5C3xX4pHAOJdM6nIArQKUBTVwOrZsCKZEyZ2rGWcFkjlBmskxEzPJnqrOMyINYfNLvp4/7/fgkYpHHH/d7pl3z1O+fumaax1/vR7ObGx8faGxOb6e7mxsHHm9spvvfwMct+IS/zw+/SG1BRW+gPLj8L7Er5jaXlDTPvSImHddFQ6FoHRq3BQ1KuyLvaZbruDWUGlhPWJTvs9llEGkdbSal+l4wMiZzjJTdID1L6oppn1yq5ic5nrFeh48ba7e3NJ162fFfbg/tDzfJGLnhslnXLnoO/6l5/J3voSbUjqquabxye/eYWQpljr6qct8liZJRBXBdid8+Zsypl/OYKfi/bqP9k3aWVqgMRbapXevbGsZ/fvqFa3bddc0kNP6lrkv2hQImBcfNHENlcgTrZWs5A2UExmMR6ztdYv2TVqxlJ3RFShOYJYMppgpI6R+YdxNQfOABZhOYGmAFPsU9TONkpLzlVpTdMpa5h+ucfxgfeQcnO9p+Na4F5SATUrWMGzcR/4D/hv85UaY+3ZAfCLZOqarMYw9VzvS3JUbXdQedvtpanzPoKa6tLZaeb6HCwkXAfrhI9hu8i0y+wudxIYczFzlIZAq5ZBySXDVDrXxSObexfJK8RuVx4/2H0Ry8VaFJpLcnstR4K5r9Nj5wMUqj6Wg9mpb+GjDwDX806kd1nlmGT/GPmuPHNSj70yD9x/Q/6Rz0z0z9AkucQR08RQVFJkmSKivbiKpSkgdWCclCEG4LqSrN1SiGq0pJwoIMfFRHJqHY1UhH0EUMQi5sGbU7UJy79u5/bPoG/+2bTd8++LdHH12xnKXW4qfvXIFPjI5qd79Jl7x9x983wQdSf3vwoeUrHiUPcmaHgsrUC0vzlyKk5tUe4A0hPgyPFg3wFcf4EmFvsKQCOKhXIMGQpJdUgpWBroXtYknY2eqSc+UDorMaOfuDHIS7kYobaSaZWB/h7EtwYhbq1I62NcSF7aYpTJ39O0JTivKqRE3t8/tj1btzRpQqnw6xwunQR8/37e/bnzq+RZPT6HVNS8w7fnxeos1+ScVw3G0BtxPaFiAco4gxeaIKFNOBfxQQQ1tiIaoaFTLgWSFKTI6SYzlN2zyhwHxU/BrqR1Obe+aXBpkqp9VjdY6pvFgto7OyCi1W7Uy8D/MzG1zh0OLOWATdbyirCpXPX9oC7v2vX0Ml88uDtDufRrGaxROsHrfFY7VqMpfkmU2VkyrGOTPPOIb5iptzgbg846oAIpd20Z/CpiL1aRW9M/UR7IXpk/QQbMJwNNzO9fL1oHeOzNzLLDFHXjTsHGW8IdNZbyhpUpOZWnJzYRFBlTwtb4GRzMpMIdFqn0GUwmLNGy6KB221i3WIblqjc4eCQBkcSuQiZX92llt/HEWeQJ7Ptjx09An82RNPIPvA9X95opvFH6HVaPUQu/Ez4MB78LvHmVXgQr39P+v37ex7AjlBZ5xPzN11/Do8Ez32OKr4+Iabj0v6MZs7ztWDPPqpBCVVIvOuICnCzgvxORIngzZpyIRSXqMhyUfeFgSfSWJmGjKTVJXDagulCn8vHCOFkrK4zzXH7o6C2yE+vR4kM6pzx4AfmCizw+gAyqt1ab1u+vZvwEZ2oaavb7/9a/wC3oFf+KYA3YGXawZR3uObMVpoxb3oFiu+H29+HP9lkLlB/MjtIy9Lv7LlMWRN6vEydKcN35feksb32cg99ElkBaU7V39JWGeQqgMfcZfYZvDqKkS64BLDmBHJSowfMe+OQKBD4B2apBcRT5KPa5JjpRrlJgKLZoBAayHQB4c2mWcj01R0e0srQ6QygI9rk6NGw1tjdcmGRkI2KghgllaKZCNZFoCtS7fXWtggFjjXapPVJHca0SVDMYKpF6j9NIdjZk5jlnvdGioUBNSi7LQvBgTBzAEvCUXhjF1OJg3ETEYAqV8uBF3b+X5Nzfuz0BLEHTiIOKCDm9RPr702de3aXe/gNU+/9Pu9a3vwVz00rq09OpOZ858KQ3/3zNpV+KdVawfVaCWS4aEXXsQn8ZbOo/H40XYlp4Krj9bUpOk1iF2z9ulXX39FLPs/W3Oioqzgm4SoBqqV1PEw4ixmUKwqELoAHwuRYYgHieFuDBH/fVIQ8VPI+CRz8oJkzntSD95acupwbQo4qVHJSf3lA2pkmQr9iwf1Ge+RVK9Ie6R2Zfg9mqr302IdS1qsYbngvljekohL1S2Jeqm4BY5TRxJikQuanRCrXmArHks+Bn1mPbcN7IwO8L2bIgEYvTj7PvfsXDUppkfmRVileRFKkt9giRQ2ZMnkjDpXb8i3iVbHquMLQPT0AHFJViYGD55h5Fy+ZJNygcDZxKQSrTPLZVq5Vx9nYj5gCsgMzCEPgXh59DETo2Y4tveaZ+jot08z9OxtL3Ur8Wfv9DKlwNTe6r0OTu1Lv8t+Rc7de4Dpxa/jt/p4B93x9xcRuvaTB7o0v3O9s/r07qPF76wm049QTR9vTz/57Yv4DDkr1jM2MN9wncQ+m8lUyeHsKyBZOFLBOIPB1B9J9pX+1E98bMYXDDM+kntNc+fVauRTpeJszLIArwSkD5Kp7+WZwFQRoURkXQQSychwUzIhIhchvSMYI+WEkTBBT5fhZH5enh0t9Hf64RffX56Tl3+SeTFBLyrKl1WeMBhOeIqdzBdl2QNGJicFBJQjvLVPwRgH0L3Yr7IOZJuM2QOGHOr/jA8paUKI/l/SIdpAGzGP+36RDr2BVegHWpX+YcScoEqqlloieks1YiWnC2SqLsAHjpEUcpUU4TILpKAzWRUg8x+9PrI4AB/V7s1xuLPIrlm3V5Mrig+VrAH3aS9D6/TkRFi7lzJay8ku2LWC/JJSqT7KZI4WMnJ4tZujMcKp4RUIitdHyg3h1e7j5CY1TV6NBs/ZPIrLNebaWeNy1XVLO9GlnStj/iWbNpfm9ffnlW7etMR/0ey5eNfcS9oMFV13tzg8A2j0xyj68cf4nY/RSwvGaQwNl/aOtZUNDFTkP9y71jNtRtc993fNmOZZ2/tQGdzDWj51x8Iq3ZjuK7f29+/89NOdD3z8cUaOHuM6ZD+BhYKxMzp8iPyYkVnrMNMbh1C1gI8KzF0CKhXSq4dmwvYIPjyEPhRQNaY3ktJZiqWUZyoUbm4mNUqMRa4gmQ0SVY6RJSyChJkRF0KsdgUyFJcBU/O6vC5ORibCEmbkJHyJRSRKHUM+JjOxlMTfPeaYWBQL14lFH6R+U6om88pZUirFyZU0x202uZgsncLF2sIdbfUK206Dhms2GbKt9aMXzmnKQ4qmr67C311ZpGZVSnm8Iye7kNMrclhkCQQ63SXop50dzDRH+bxid2p/bt5WDfrstoGZy49dPs7JAmMqK86xTWmKe2mmYKJRmW/Gpyw5DG2vYHXKbG6nK59RauRFpnE2Bz1qvEKzRaWhL7NFg2WVxeGSwiyWZlX7pxSpVcGqmpxsI6uWZ3On/6fY2+ksQd/xqC5V68rrcJYx7xk0a622hx6aaYnsW/d+kdzEjq7Jr3SaymuMQdNmo9qRvXxZcPxFyyoyui8Pge6LY1YlDRaShk4cqEc+YsL0zKOoTsAfHRFQw0d0p0D3Cch3BL9xlOSgqE/k+exrZJWBTA4qFj2Xg6J/pIcqwmB/jlaEU0fRxbWOLAv9adpVURGMMIVADz+X6j66ZD+INalSPkksM9E6VrUzdegbbEib8XG6q201PoJeQ6/hI3TfiPoXqe5yNGgmwb9ASCq+TJYFQ2RBj2SsPhiUyjD5WkC/BtFRGBUkClsdJLMp/o+qMtGFV4bx0wBsdaXp7QTtyH5tWXo7wbtz77OqOJp2BM2pr8ePHsF8/D/UbuL6btwPJ2Z3d6HZ8ThJT5H2ntkh/xDMtUL0yjzUpaL/A6BuEqvcMhEcaT0UwLnCY2QCHEE3ZyHwaEZryleJRsfkJrUQlhpxGrZan2UlFkelSyrJNGEtGCFwLDNTfCiHHcUoO2OOOuzmGBzBXigILv3ZchKXczO6HP2E/oUu34znnV508+YTaAqa+s1m/DGejWdmb+kdeLx3y76h08GVT16zsiPBztyMFuL7N6PH0rHNJ05sRoH03nt6e+/Zl/7myWuueXKNKAvHOYHdL8qCNA9DmoKxgzWgojVtp3cws/H+57GBjrevOiL6FX+SNcteEHOXStElpvvpfrwy/S79bepHJps+kg5n8v3inFOFVC0leoJkpoTsAi5hX4JkIQW0Y02CCZN5qKkjHSuPMGHw7Y7Q3QKZBsKEOnpXtqUOkwwiNXKNBsewDLvA/dBeYCkGEvf6ZDsCbViAFn6E1v98TQaNNbMow3r0IQZc/LfFGch3GeQh2XqQBGkuGold6MGlItyGJCuppJbOLAukRdpgIWsmmVIfPIKW/mLb5x899sCNdSrrsms+XYpf3kufSE9HL2n8TT07FtYu/ezPe2ddhW4ZjtfO5v7MNQEnIJV5Mn2M0pPYsVRwJHqmrF6JmKyejejPtyncMpdFqdA7qgrK6mr9mJPTS2AQPlqeOnmCuQHZdROV48YWFegdOXKDvdD4TzyJrj/95+FaDNG/NwD/CFO3ilU8INmBAJnXyEl+RUT0KxiQcSlWLCEuYXGF4sz9JEPi3WQWDV+mHWS9Yg1VFaCt1c0REXdoB7MUYmKpUDeYU6ASK68CRBmM8FE+pH2G1RcUOsksa54DdciRJoUGY2TJHlLjS6KIDjsld5EgHOzoQxFxQqjLKYXhkMFkj2q8dg41X5Vfhmrf/elB1yKX3f4vnMT/xBclTqAd7u/RRUiLnmw7gff3WMrxm+98O+AJBZ1uVPgKUr9yCH93iBb63kgP2O1w6bf41TNpexguqkfUyb5X8ZkBj8eBntv4yqtIc/CgGGuWeBtoKvRckIoSb1ROIrfJkhDYvfxA0hMOkcWuEB8L8OZjYBEHreas0r0NVk4J/FdDIjgkAObSJIthD7qbDSaroTeLXVLsJBMzkSZEGUcqiilTXOZyRs/u6cWPKUnhzJo2Mg+cW4S70b3D+f8DFXZH+RT7Q9KmHYXA+w5jDV7Evi+0rzrMDKamHO7tYIW21WsSc+PlJfYp5eJr6nYSuURfo21r10q65pd9KFs6oraU4ej30wFaSM9Gt9C1aP1wjc9C6J8I9E4AEOIicVaW6I/y1SQJCQ6sEyADBE3Da8kb2QJBCBEVkg4iTpWRGjJbuEEJnD/HUxIVk+B8QJdUl4qTlUJ2sWo9RmbHGpXIKE7wzJCLUlLebJbmyMW8DhcyOULSZ3wGOWfkjiLV4cuu6JmRGP+7rha0Bydann6obu6YjmCNMXtGovFo19GjL20r0smC2pDia/yno8wP/0I26YPP/0ar0i0f7Fi1Zdn8qWsEtBRdfXKmc3xsfsOk/FzyFt33kKdANtpYn/VpyvHtSfjAUmEfMuay1gyWSHJDap/yKDeZB5pZkcAzotaRrEhQJBDXPZnPAlPNyjZYRQjREL9dLZbTVYmF3S6xnFvrioADbQRjTVCC1KNFpekWa9q6uhJ96DV2zfE38R/ePI5mL1+yYjH6RqwL6WpfxVF9iSGBo452dh7dGAxuHKJACLra1kh2FX2DXmP2wLNaqWF8y5Jm+8uEs8t+mUSIdnI3v7D+5gPr6PfmbNgwZ/a6dRK3AFsZImu8aEeaeqnQhQyIVHwu205CfGBuQ6ez0R4iu5iSis7XtNGJjl58HCfQnuOkr4+vah+uVz0nhxJpoQUmK3UyHUKDuFfEoT4pJzQcv8yjCsWc0DSKTIOzCLwvOGgpIApp8YNC6gNJZwkorAoaWQ4+KwkhDWpyyXlNPpzXSBGyc7k+v0AKT6l/j2yaz+qklyAadfYwJurmuZqcjE5WaLlFQwlp/2n2/S6CeqCIa/oS9bYyv31KxektzJ5Ugu2JkyNNX5+kXxJ3tFJOsD/14pwcT4iomD8oxfhEXzJv5KyQYtGlFOfnPMPQar1BlcnyhfRGKf/hcHrJ3CmS4wiLhY2ZoghONrxz+FO/rM5/+sZYhaOSXeIZAi/zFT8KrXlyZe9AH0tJW9mOFLXT799pdeWgRmUZXcX7/adeA9R+EholbYgusPgH+X7uMdAEJ2DP6Mws+0KBLPaQK9qDc1FvohFZArEP0hodrlKxcI5KWgrFo5p6qWjfpKNYwA2KhJ4ot5xjKdrs1ZUhNg/RYB7cXpqEpkgWOSbmjWkwFwhcGw9NVvPxKuhHUDbqeesdtAjR22j2EXwSb33rHXwvTm07yryLLkOPoYXHuCP4wd8/hP/4++tRVd8tqPnhWy25yr5b8UvTp91qYXVoTPnlyNKyyBev66BfeQtvw6n7afZhuPGSd95CVyBmG00/BDe+640/oIUfcO/gX+EZ+P4PGHqlgArxJ1bzhodR27K2sNG8Yfo0/NQyy2x0qM53ZQv++6LyS8T5nQbgO+tBuk3iKjpmUVzVwnBdKiL6wBD2wQD7oDPkA09Bg1/QX6za3b9hwwSFYu6kKfjF34oMJA/djW5EuvRiwkbM9Ut3r+3uRr6tD7whkpFznEcLRCvOuEPk9k6x77gJu577EcmfpY+ni/6O51y74GmL1nDdU1ePNuOx9G56K+49smUFfmrG6OF6WnH+O030UqukHQh9iD5MJZg92I9eSOvpv9N++isJPzjw+78Dv5/kHIrJ2pGc6EgUBcTZq/5AsoQghaVIqxsscEjLSJC5BnqiijG9WJ7mIiEKAARzzGGWhXShoD5EwMFllyOaedVSy/Kjc99W1vr3u6em/FPcy7u1xQ8fZz77/PQdB1q33996UN1S9tRSfJA9lZMbOc3V18sCE8Ke2xyOGVM1vjl///vzJGO55rXlmT4awYUzdXy30BF0a3o2zadDxDZleB1lhbG7RfL5JJYd0Uu2EHg2laKOsGJpXopiy4Fso0LhdPN+NAHNPjLMC6VYvhN6ZboYY8sVCO+wib3CO4d5WpYUYysh7MwJfALV8FnaZ2idwebyiHqTS9Yt05Fa9+copLVYnW6f5HsAk4/q3HZWZzSoaUBMuUmcNEEC4i4nC4MuQzHAHRK9x5/KnkSFaBqyDywY+Ovad5/c8jdk+w2KfrZu3Wf4nd88jn/72SaWHkKhLnxyM0jgTPTYY8jyyBP4j0+u/fKJBX07960/DjfrQLHjN9/wMf794xEsdIGaPJJpK/qG3SzijxZaSxBIJRY/aYJk1RkST+SAo2oIEpHKC/1wHZeU43ayGZu1rnMOIBPdsm7/xnUHmNID60R8OrBu4/51Ga6CvpHPznxPPjA5UkumMgAWKISkxhqEbysYUVUlfRufq0nqpJiT7WdAaM98r+zn0ChseHbDOniQm1+4ed0IpNy/EZ7ks2HYHLEuAcm2GSleKWa/1eKiRYR1S19mlolTzEDawwHkkaZXnvWiVrahVyduR6idpdrgIdFLbSvPloGiovYt2pm2uFWvz7FOmand0s6K9Z+nd7HLT98h6fsslpKNI34gYJuYxCc1g01VzFU2W+qeqqZX6v122mGuNtMOu78+wxVCzB62izw9SBDRa7aLlHxKWFUkn831iesZOalmajCPVLfJxBI9krFxiWMpzcgma/uAJ+Umy8doM7maAilXY8jL5Gps9gvmanQaUWw1NLypFz1A7bYUmoOuR3NS27al8KP4JvxoKvYWakN3ora33sK78Qq8+1r0IHrwL3gLc7t4etvIS9KFaAtqe/11/BS+Gv/mzTdpGkjKevQYnpmpUxjiDNwA2CgvFaFiFF8oZqNY0VJVBUkmSiNmSElKlEqyZBaJxV1Tkywhi83pVSFp9RvwaeziIpykopYE+qVq1fMS4Zw9H0XrUJCsxunyueRffE2v+PqLdTe81uFddODSQMfrN6zr6mEmTEWa2+9AhtZGpudfqcfKPjJUvO/JU1T2VO5eO7COHVqdmD49sdrQNLnFOz8Sme9tmdyEd6Zs+YHQtIuCgXzmT5tpDaIdjqza9TUbN2bslZ/zAM+yUFXECgOLt5IFBEjz1NBOUR+doCHBQDIksaFgzK2P6mjiaxNVNBciNeuSXfDdseORr39qcfMbd/XxfN8cpwYVRi6au3o0M/uXzvg1E9El/WgSYh99Bu+b6Jo1b8GM8cWbL/hu5vlngL2dDrJXROytSVxZJ7P4kpziSCmWUqwZNJmViN5c0lTmwAr0k8MRr6enKGzl9Vb6tvQ11vpym8KKUpgFP2fQpxuV7zWj99C7Zm9xXn396d/VlRVyZnoK3WLmCsvqzDiCq85bg1APlmVQA1KPQOaTRrGjqi4Y/Ti3gqDAUucWChzqku0Y6jovZlhI7lkg3vPsHMsMq/75VH2yNAXgjIvZQch1qotmV13EbM/M7lx5mNme6j5MUyeBBtxxMiUMf+vKDnwEhYe6hJE6rAGPrpiaQA3aMjpsCoimyT9Ch/MkHSbYkyfqcI6adUqoY7KJK/cqXcXnq3AknMm3ikt+BkUtdjmBrXkkiNyWRrMzWpnG/aCp/enYyjeR5t63JE1+8x78jzdXonFoA3oEz2U24xvwrvS9RJdffgWuuuee0+nj9yHtGyuGdRku1t6D532Bln6V4TgnmRDbL9ovIE+A2NgPkJA5J83bVxF7SBam0obFbt3JbL//fujBid9u2sS8uq6uWbQJx9l+br845gXgcwyaST/pxfhgvljJQfx+iiy+++/Dzw4XA/YlmCxxeE62relnZqdfa191UaK+JkGGhouLArFG1jy0/0d4syMu5mrwSfkR7gn4XhfJRMXc0swyaYol4sSZ3iR8pCBJWQW8r1A+hTx7mo0d7S9NbbFYrlLRqlx741qvRjs4eRVqRa7n8tzYnf7v/tajEYv3N5NeakvoGyc8tadPRf/FlG1fO8GWc8vklegm1It8eU78Bh7/iNj+M6O5zYBdVniOUsSK6GWSfJGzCKoC+dCKvggfzXvh0MRTP1LG0iw10BY+/1CSRad456EXRj83/LZbw+ccSvrh7dxDe9X+XH3pC4daT/0WTmbDJXvzmHx9KTjNe12sE06NfnHIK57ya/aWkA/D9XtL3Tn60kH4gP1W+60uTq3V1QzCdWQDp0a8CVfAhiyZ2ZDDsDnq3Lx8p8vtLymtGPkP/aeTfEMeSqpkJLplGl7tTe9hImRsbYiR6aPDwk7ng6LGPMGoj0GGkMwU03tYB61xgA0jG/bm4/iwVBNR4yixoHttDpkd/XcN2lGtdKS/Yeo8dtxfjmZbegcGei3irt3zCHIfve76P+BPUt/j3UY7a/dY0TTMx+3KWjRdnCutOKvL2YDHPipEjaOmUp3UFdQiigxTEEZrkThaZEXfICFYc2CkZgjJK0GhOQqgi84iMTx+jrZBzyrUljxfobO4IhiOVscbm6bNJnGaGbqGLHvtqOaWKYnKuZeJqh8sgyuL8yol0NOcS6YBb4+K4ZrMMWMy6zxuD1kfk0Znz7mcDKkIYmXRGE2KTch1Yj0eGHIfqzeRu8CRBrDTaEBRPRF8A1yxsfhav6ZzStf+tkW+QF7RVTcpc9Y9s7X8jue+QTcBA/iostaquQO19i4PhhORZ+770w8Pbi9QIAVqMRdOf6naFI+sYXtWfpK0sd4CfN9BYf5NwXUbFVj47D106Y9zr1rqmgyQgE9+/N03kfHWyOU3voEm373CoOjpcmbbPJ0tFw89s30iuurV8OECFn/H/r4+YYtMzlubDtRXWN17gyVmZPgvrb/zdMjScef26mCu6Sm24gQ+qlym8k6tRo8gs6XDWDF05mlUZlNcmm8P2ruk9X3YetkOka8WiCswnoscEd6fM8yFI2ReqZaUUyGDHXbsxv3PP7+fFucibty4kd2ybt3pq6Xtz2xgRIlIeP0kIXLU+RzODjLTfM7+GyUOVzzC/lsl+0/mL1qHOZzDLQqB0ZbhcKIXckEOR+r8TOB8SAAQkxDtQkTumjeRDpUh7evEqL+9DX/75p/QLrQe9+HOC5K5adKHV7yB/3HfW/ipt6558+9fAPnb9dXIXJxZwtXs83G16uzSSEbi3IXOLpgpPR2Y61D7qsOpw0zsMBhtoW0NzQLW3ouvTHURky0Ish0ES4nhTnVJOEsxYLMPK4q4o+DF5wEvFuu7PGR1Opm0gI2HAfst48welINiHjASMmRAzcYEurpK4bAzDY5aOQrlTk5zG+W1jlTn1OcZF/KlPkUvR9BdU4076Xn4hGzp6cAk4/yDhTXy44rCInb5RKOAfigqVAxZO4+e3vPRp+8vsjbRYwZS2sy608CVvqEMVAnhegVn65CNx0i0S1wvyl4AWpyjKqypGVnTJyfdAvAi9klcNhwhUCMxVVHv5yh/XBgSUJZx/Lr0YFkt7aibv6xn+0AvPZCe8TD+qmPydY48F00bSB4O3TSwnNluTcyrLUvT8zctqi/OwVtpI03hQ7MmjH5++rgnfbrhda7geXdceC1TiU6dVz0oMhuWEpeMpYiv/Z/k2jBSrjUCif+NlOvhOjKHV/JNiFxTCvA6fBeuIwvrxP8iAo5J/SrwGkLJQijDa2anR/AaQmlErgJy/Q/8B5Dra9C4v6Cr/4LnDRObe9OoE92A5pwmxOZPb4OPcu6zRC1247lgPG79mV/mQGKkJUS8ssw6ruJ8feKXDcpIu0mLNYEkyhYbqhVl/+dNWfoyykJelPXy0qUv45P4Y3zyZeYy/An+16vLlr2KlMiNFIeWLj0kytNw31oysT2zQJJl5FusI/rVKPUr0MakkSx1SPpV7FW9may/C9bign2KSMWFhrN7L2Ac0Bf7EM3vPUPtvaAp+PMNe3mM9+3L1CWDHDmgHzQkO6lHI+VIjrgRixLX0M+PnsZ8IDKz8mmj0xNqmfsQh4e2IqBY9+Ah8QUP0fenH6mRJC2a3lWLzyAacWQ9S3ornMb3k0uI/CJEK2zsTnE1KJ2YedOKqyqR8LJYCX224kb0DIfjWZ6YwzxcfaM5V3JjTOSMOVlef/qzePmPDVkXIfQ+u/x9vDU3K5HekchS0zvx68XRaDEaFW/Xxb8rLz/RoL5I8+WXWkHQirrUBxzXBZzASObyq0ntlvh/tKjIKIn/O0tSrybLINCS03ouLoDOokxtGf2XgoJ0Xlkts2P7jvsfQFlRtw19YAqa0Ac2dyw1t7eXeaG3NxMv4wzn5Y6ZLCYL96bwyNwxWSf+oOyP3HFqvDg3vkn8P2MU0optCnZ4brye1tPiQvX6TM6HlLnDDhPjxCoT2ImS8l2yTo+cc8E2GhNt09ma+Hnzf9upZNx+1ZbK61e5QzdXz1vc7A831264/97YqZ5ah/X9rtvbSnP0OdM6r3JPaRzXudXqVGYXB+Z9U5qfx2Rl52q1FeWzmKX4GfwaPiNUqy3F6F15ljJH03eFM+6PFcpYb9OaKbXzqwwqry46pb2+uWtyeVipr6n+1Ulm9Jg3Zpb+9uLGXS/f0r1LoWxqOijN+R3hP0q112e9yLORoKpfKKsmsxRI8erPPMrUcTqefpX8seTl5w7mF8/QS/alX9xPDeeqzvt+quoC60UP/523+H0RMzsFfktqgJkxYrH7Sc88w7j27cM9+/cP5wjlH3L/D2VvAthUlbaP33Nzs7Vpm5u1W9rsadq0afambdJ9X6AtLVCgQMGCZV+kQNGyiIgsRXFh6QhqdXCG0ZsWER2cKSouo1HRD9BRZgaXGfUDPsUd2uv/nHPTUlDm7w/a5N6bm7Y55z3vedfn8cCfjvIySbja3RBmUpwofpLoRHmYSIoFl0HydLzxoEVyAUYh0FuMGSgRadDzBQYBkOvk1dbXWgXK1jet5eXWn6Kt1a1iryCspw3ULPan9Lbh71qz2J9mUTSo7eXN6AWf2CagavL6THBLZv0EG0jM9NOGWQilbpYh6uoQXMvzub2G4/HAnAzQAEAjgTAfAXrE9Qbwzzq1upn3AHtl5L0wux/cAgSk4xS4FcwNr23iPTzyABoXMgFaBedHLqDeaxLuTaN6WACHH+oALk8GaN114ExgL9gH9o2CcpPEKBgTiUvdR/vIL8O5GoR7mIzDkIhHPDoYix4On1yhVhHqay1QCKEKN25xAwqXMWqVlHh1vARldIoq2mQafiG+taaIlxc/U+s0DXekb9q4IlnD33D17VSLjJXGikSSTGpeehx4z2G1KtlyScLV96ozNVRPRhz4UC11N2dhXBlhxK7qwtk3PWGGlkUW4US7tRpRWcBfz7Wv0KN9QkiCAQ34HhMNv+ERnQk8fNrk4Rfz7AqBCDquAqDg2Ysybc7hy8NfO22Z/WTvyAUU2EDf5PnxZ+fLEthjFPwHKuPL+akFap2SPQnylDp1wdVYqpu9cnUz+LF/Wz9IhQ9X36O6geDq5vrRC2gNRv0cI5wl+BNcey6iiKgnZiCMHTiUQRLpFQHSKgRWK7E8BEcI1NfabFDmhVBF8B5xHzqKyzhxAR1U5HIBPkFtgQCeKhQg+9Sct4Z2TIhL0Wo9Kp1IFKOWz2YLPvqoOb8uu7JOB04pJ0wZWbjkYKIyTjlh8s9LFh1IUIKTKmO8Ji9piVJlbPEuBvZCs1V3sqiounpI932M3ysxnTTFKxSN8AlknGJPKaJ0tZXZYplcbkpIN/vya20fgROzZzbnr5+wY+gt8rE4ZeLBJQuHp0yEvyPhwKIlxM+TJ4DaRoXEc9LUqHBOO8n+K71AN1RdXVR0MpF9yjZZugT+cKNKuUT5Cz/B/Ct+guWX9lTadfaU4Xo/QW+6mT3F+QnInkKdByaclPjvbgK2/F9hD79K7gczOtjwr8d8//0gvnfMnnoFND/J9ncAN/gGr9Vu8l9wn5RHetzQkuJ6MnAhig68rXNko3a2O8G6ujqdy5NIsi6SbdOxGp2ueirYCe5trdbpSDZ11AbrJs/BnwcNcF+kYQ43n2D8pmpduw68pdOxzkSvS1ddDW5nN1X36XTgE10betBVt7JL2OVTI1hRLuo8qgX0cXkBrEGg/SKRyBQ2QaBkdqP/pwfM36vEUbNKSbYs0zQ8Rxn5G0AV1U9ZOf2j5homkV+NkVgFuromcC+4t6kOt0O2owfwhRN+RLCB7YEf0QkV1hvwNY+O+1lP8i7xfviV3mNwnzsL3It6VTDslNPDm8V2ZWWBrW67243gpZxO+y8wMTyRujLU73OE3RNmFRyUGXGjDTGac+ORYOvw9+Nzbui+l/hn+Wd/rVaglu3Cdkf3jfddX9sy/D38yQKutuWarYRwgfS4CkyIcYE4LxxnYUNCEhVqyDkv6ZoXDiVmdF727d27D8zVkF9Yc3OtI2rNZc44YnUqNZupMXp5W70mDZupHv2ddwmj+PG47yCSlfGMml/jToqs5MfQAkuxFvG2FtjIK/BYYCs4n2NIAcNSTZIKDKcYc4ZN488N/l/8fHr838kff6IhWWtRkXWE1PAeTSY/xscpyWRYI2WpFEMO78McYwpLqROvP1eNfoZrGCa/jl5yA2LJr+CTcD9nlJMpD2oYwORjPiaMQ8q4UDEREUaJChcGJs2ASkYYDgVQMJqjagpluKBbITWYcbOLkGZi/jt7k8mNYPm9qCHNIFSpXRE2NESXVkAiw/wm9E48MkFV/rxRL5XMk+WLgprKv+mNUopaUCwRB36N+mlGvFFb+7pREZVovUSmxlsTTLf8LU0hVYoU9BeJQiqOs8ki3FtyYjLRQdyF6ocEduYWKH9bsPzVhJkaaWgh1+lzN/zQNQh6XOFnFtLPxgm86vopc+aP9nYjXgyX00hAJYoItygC7mlQe3BFVPgJipZXpXZicAVUpI1wNVVCDufYEvn2RbBgskhkVuBuBGhdCHRwt/dRBC0VmjF8IjTUsgDeNb0WuN1ZxlNycUxer7L3sz/2vd4Ibvk02pYu1iRSCmGcSCLmC10dZUr54lSxsbHenhEb55v2oFDI4ylSHpTS9XVGs5hSWIN+sTKapPTRmnh626yptuPe19krt4MFAj3xMyhgau1OJS85x9hTLqVorVEu5Nnt1iJjIvnGQfZ/EJcYEMK/ZBdYBER9feyP7O5bzoJkjSIpUZwg48XyJSJJrCja2ZEbEIkoiSjOEh/MC8z3TnlbWFORlvmHJHJKW6bV68kLFpXGy8RK6JuS4OrRpKhEntag5SmnbeP/T6t7MlvNfsN+/nnx1HWP2VvLeJt0RW63VSHkZTmpBEniaH7/beFE/tvQXkonFhBcLnEUrRtFy0/Iv23gwuKElAFDoSTyJyZ96PkCz3ffcpcNUkY/FBLxfmLEQ8SzBNxDk/SG9LHI9S+uoHD1Dc4mSkLKdVDzylHbuEBthpuPU4WwY+BCNVuk5fxyG3/AVs4vUzrYIUfHKRNQjXw78iOQWU/fksUezzzGd2fwLRlufjxVYbtaml5GgafYLTi2s6Z1AdwN4f9G8BR4tG2EnHYks7g48yFbQYHteg6YBNQjDD8/wTGuSTHLQBJnz6pkUHCDlMdNGi20QmAw6WgBRWq+BivOrjr/lwOLgy+zT74bSB/uIy+/yD53imw/zf7+peDSg3/5521nwW1fJw0ftOWdJi8r32afhTZL9M/TRbmCcgKhhjsRuqsqFfgsZgEP4Qvh3RBtYwJuH0NI2Ny+jyFG0EU7NDCMum0LXtfnKIU5yV41GQbf1jlJylOvrVGwTlZkNmbEjpAq8uhisjopxZRAUuXFCXUa1j/yiSi+mnwmxy7S9TtEScMnDFZoV7NDzhryszpnQox2ZC4oiI+OSr1amwz+oWGDygTwdmGJhkpg2wF0FaWRWjCMJyCCVkQi6v7ApX96VBd448G+PNv5RhIq1lzbx40ktJFz4XmYJNID81gCGvT5HVf3CsLwCfvePz8l/FAgRNoaQb5h0io76i/AIEJCAGIShEd1rNWU9m+bnn1BkqXYk57GWj0aqDJtw1ey007b3Gy8gk9vSc8aGRjFHP0e7gH9XH6IWIZnWBcO0aiTX4MBsNUIABInjMB4cGmuDCwOHpnCjEmKPBtkPI4WtDFQlStoRuYPmeLgGY1aFRkJtCQ1Oi7jGKcYJT1Dco7SwIRBT0B9pvPiQ2hSjiJxaLkj/foP7qAaN3xwO3vx5RPsl43ssUb20kvr/17f91Ff3+JFv6Ma0cFHvAk/E3/v6fn7+peAjL3w0pZNXbtfBvLb2ScW9+3/+4EDf98PHyO9gz8v46di2Ub46rlEKfQn9nE5XKbEhQp3rE5UFluBGlkZFxyECVinxznRp091ogFANrMBQxlFYVRw1PdkcTJlYYSIWcaRVFQ5GRvK0CPa0FAC3PSeJXkiSQwtEyLcuaIyeMGabne5c/xZ2NjWJ9OyQgn0deJUJovN4Q3W4qHycPUrFporYoFDRQvUYw3lZmlklMCv3MYVKKPbeGOj2vtW7/33w4fduzsbVza3+HMb4VPzSrJr9IX771/Q6M9tbs71NzasxE8d83bunHeggieo2Devt3fe/vLhK+UP5zc2oUwoFV7V1LSq8epfrr9nX8XwlYoPVjfCl/hTAuiOxkjt2ShnZSlc42jPLOQ6ZnUINAL3xFp0CFJDiorTCwW07CgRnWrwBUpvSk9pwgXIHAkEhj+B2iDIg/tjLE8o4MJNFjMu1b8ZayUYtjrucZYaEuMkVFZyxhQF0OemCbKrF+XekRTXvn5TbmadVykLFon51tRoieimbJbJDl9HdOykwJJyydBhc0WaKNHaXKmLjX9y2ksH7rCoZU5r2jvvx0lEMUKxCNu5Twl7+BegDKLskQXH9yN+mBjzZtE4bzkuOW/B27bRhJgOhbHIY/V5jWoakXsJbn8PGOFnM753hyj+mZa8UvYSu4fWVdQOb9m+sLAIOPbULXyEPfcubxl7nD17Zv36s8DyiMMvCvxuHk/yj9jYkaNbl65caTIP3719uwe8qrzjTGQfJIX7BPuhPvMiTyIFFACzRY4R3zAAEPK6ffxYwFfxKTXiYjRBRxrNAF+l5nHY/wIJyKfb/f3bt+3x+P6x0GffGKdkw++yP0gkW9hNOQU8lwTkAEFXbXZmHlDnFtHsSXg7e/GVx7p0xueWFGX2UP1XTvuDEqu9FEw3ZdUpHd1/XF0LeH0f726VdKx7YFHL/rn/eaOhXDI/h5/hD0iKzM3sMY02l+LJrRG8f1z/zCeioW+VwFUPYPgQVFrLAV16uCabRlKB7dsLjTwXb58tF+UnAtbhjvA8koDqGWrlPBvYGwb7rIFrnEgoX5WMarMjOXYNV5stDUdKDGhFigDad0ESEZ+RyMKLJUnaVrzgrr98dN9LIPZMT1NKStP6M+zXL73IfnN2fXMq+cZ9H72weUFRBp0yqecM1PN3gdiz6yelpk5Cd+GYZGQdKaH0uIlCaH+7CES1UjGG5FFlD1UjD6iiBIpSkRh3OxWKCYFEm27PySe55SSVBxHhjXd0NUHb02iGMmakcPTEbETJI69v7JQ746MTI18gV+mcPigDlxs+uDjy73cqX/kU2WwPvPY3aEFe2Q8WxpuNj4AwOP9EtdVVu5OdxM7ZZlTH2YCInHI+YDQVvTxy/tMsRZyFtIMehybJxz7KRhkl/wBg3apl7LdhMszex/6nYYlL0fx0993gj9++Du1CAbZS799bWS70x85tR2Aik1qiHJLhppgJFdv0ZUXWVYGy6K9Ko9d9mZjjSD6zOnrklR7d52JeBL8xwpOlICyEB6MiuwmkfqrGsYkh9jAiVAX1c6hEhNHIC6MIfrTO5sgNVl8bOGCkVOpIyQyuyDRFRi4FxJJ46AQyFPYeGzuB+bqxgysIKqZzrd8DKRB/NeHo271fswPPPscOfL0DlIq0mgfBIXBsb6JManAnbWJXsZvXNwQS4gr/l7S/HjQZc4+w9JkssTIRsKDdoUvIZl9mMxMF4S8mbV30zXNw6J76mWhdosx/essGcNc/nwX1X/fugD//aV2B0B09vZV2Z5kEcRMmRmcp2fPFZcqKgjvMgfy0Jf7iHyxpoq4P9DZb8okl1Mj/LU8+IxGPyvp7wun8N4hMQkOgojpTeMCUjgrzTWpxBmCy7CE7l+6mdFqTV0Z7vNCJQd8czpHaCNCj2aJUqNSocgD6MtA9AVGgEkwAvCvsirrFS3qs61ctfuLxjyVsKvui5/CcqsNbHC6P3PRyzyn2cm7P4T88Dj4HckfzSntc3d0l6q5/PZJtjgMbZ85+c7U4jdp2WiMRde2m+iMxsJegf8oSSYSDKCGyCQxO5DnDFISZgJMpkDK+MOOzY3gijw8aK24/U0AP0N6SMXZAZHKiAggz2kfV/Eg0BpmeyA+LaEEfl+woAGJ0DTH1YmAxvO84eJO6u0nTyB/kvsYlSxq32smugw7H8OHu7uHDDjBJ23N/a3XTLH2qI/7WyXUFGo2ZnzzyBnkwOUUcZeTBSbXwjSpFrCSG12dNYnVFRcC3TVTcXlx9qjXJmpYE/llYyOqSWMP9DxabbU63KjrPYYhXyj2qQ+wXpC4zZ/3uj1V0DE+n/5R5JMvK8VeY4Jish/rcSuQTRQRCSVCO4fJHh5lorrcsh8MhiyY4XAAb/axIrkw2pts56CaUH2TknHGi5KiCoQuKa8ZwcyQliAKUIAXjrBG40AkxR6OkOtqhSY8UMVvwi6zpORS1/u8g+8ncqt51Dz7JvnL1eAfPSFmLWpqbkkvBgFrGbma7sngT+ynKaxNnJMqlJPtZpuJ7nTMZvpdfkJGV/Ryo+7/tIsa0+G/s1+zTS9trgwk8j2MtNTE6ms1jiXrw1Lfs27lGa7EokfZmloCXQfA2P6cLXhKZ+GfhWGiIdmIh0QWSCWYZAngEzOpxdVKoQWxOmJkjRQp1oLZtvhMayaXhgZySRfAotIbzCF8curicc/2SpdDnCykoVCj1vOi7oUfQZYppy4pliqVMmzRUR/5EwcNQDvnT8y9OvPQtrpNKlg6KksVyaGFLB6WKOHnGoAw9ousadJ1i6qSDJXXF8IVa9DgAX75WMcVI/QPwNnQk8hOFEuiSyBTJmpyS2rq260qmno28UnddnVQKQp2MTUhC5URzaKbBHyqthjN8K2JlWAYPZuKpRrgHXrkuAuVoMfNIC0JBEBIgCfAVmPDH60vBzJGIb8YrgwZABvCYvBa32QNtAj3f4zbA5aRUKfkI10etQIF6UqnyOU1q1CHgDpI+OdSVJrmTI6mPBSImhpwL5s+TMKKGuP1tcYqTMh77B5C7+35w78aFS8J1d5WkR+Xe0SLkFVPKof6gczgUD+bTYimIEarZ15TSVppiTwhFPEDyBCQPwQIBkE5tntvdm1ZUbhaX+2eCqZRAIlhXFZei7RaJRCRoZA+LBFFX7FDVWDKk0qtHwEkyeeTTrJX3SehprQ8/4n/00O/zhbF11Baw4dCm3aeCPKWkXhQl4meellJSyT/8FJR3XmxqnFQTA2JId9gw986nChZVZcewVfESSSZ4lDJJKmsGrrOHfcQUbA/7cHdFhC4jB4shRy3t5oJJiODPjailBXyZDUXOoulQZhayllOhEjsSrSYcBg4uaCDekhkpbR5nNWdReJsnpLhFLUL1DU0gjkbNGSnXEmjnPPM1sEGDMhNauhU9R8/+vPl1djfc1smEL/qzsyZXVRfl9pb1wFkT/PF+rdq6gLrIHrveMr6LPftMT/l+9if2AfY+UHtR8llSmnb7HWaTZw/I4PNIwWJx5lR9nELWf+kG36AE9VQIEPcAQpiTjsHKGcJMmhN1aga4sUCq20BwXmeAflbAlyaa3TnFeFRkIW8uGhVn8RgF7a95D0iF6y1oM84CASi0KJKmUrvtwM0VvHE7GNeDcTP/gUzI3DF3m1VBxxrKJpu80zQP/kCSS5sm+Yv96oKMUn1g4o531+67qdvAFjXczRdLOsup+Pw5WZ4Tktgo5YRl/hhtqZmX4M5KWPDqvhkRW5Pi+GQicXbUHuZFpqye1AAd8IHpYBG725YCDOy5wW/Y18njw128rSD7HVsBKGB/OMGM9oTahUfhz1ERJsJO5OGKEI4BUx9GKUvE0J5tx9xWmPMyFKPAPaCDSrUEtQAwabJQqilCJRAJwZgtcAXjSjGPjw9SSOjZ+3iIXhJ6CyotMnQMeqFIVE+erl66rJp8p55qZHsy+exznz3I/vxgJtsDBvg9715+t4e/QnFyw8bXFG154K68BqV6wx1KsGyBFd6cCTbY5mv7utu3FSwu7O4DBtdkp3OyC5T6q6v9QNDa+s/SsrIIbqFws+B1qNc9RC2xBO77dXA1jeJrJeHuwUG+NkmUEYlQ88ODVnyKsOMRntOgF5/m4SbDCviG0nCoHrW84coLnt8f8lrhUYoeHlUg+cvxM3k0EzEbVFpM4sS3uFEzLD/SF33zS3quQOskiD1ZKqpPKdTqBVESnkCfWpTcICglu+ALL5eIa7UFoy/Ao1pxCdn1MnxHSeQdKp60Iz8wkffolhMntty2NGade82kLr9I5O9qWpe9IWrp1ZEtQ0NbVi+OXetZ3bwKvbCqebVnbexingq9o2vx2Dvu/Laq5tkb+wL9RAOxcbQv0Gxngi40WKVOtD6rXEhp1TtH+wUbx/ULon7HbExIjAg8oXdSMdZD2AQHNDcbKjJzugelAEJJFfAkWFRbz9WpZtKywqh0Q4bbk1tUXFP7W/sKfRiK0YuR0OBijhgkKH2C0tw3XBYK/l87DS/s3TChqMCywtTgL+4uN/bUDqzZS2rrazbW3WnqSpqSX9JTYeyuPtxdX///3HL4+3v2Wg0VwcaW+kPVxVse3npPTf3EkmDj1Bp0Wj/5Oh0ZB+fEhOdDh2v/uf4d1K9DhFS6G8q1CKjzuOyCliIAYpP05qEubEwnSRvo/dCgXQTuG/OudrOLkaondX3drfffb3ruOYb3ELsUXvqxrw+I4G27IumCn0Zeeqh1zpaD/gUPsX7wKpSZqp9lULf0EDT86yYRtyJ0hil2Zh5XyzzrDNOOy5eJ0LwpcNXEwD8vEaXqsf3IM8tQ0oNE/YOUDfg4ljb83yhXQaWMO1Z8Lo5nzOtTYRsbriEPh3YrQCzN6AsV2qsiuRIZqkaOAkb4o6qiGjSbSspcycWq2Md/b3X8aeQ1Vc7vwEowC5QsSUspCGxN099595dL2Xd7lSaJw1Pp60iQxi30VXocElNCmsekpSl+95z2NSK+VG/0gCRRY1lGdf1Xs5b+2cKPlnZ9yg78tXI6byG7+U9FZp1uVfGDQDEA1j8kUTawn12doLIsqQ+8sj8IFVlsvnfd+joLn3RL/N40Zb7Z6zXnK03+3Jj4pQ0xEvh7YiTzN6y/NS6KSlRLYhpW8p6pWULxpNLOykns3wflE/4K5gPZMzJqaiQXFeZfEIRxD7INxWloBICllqsRZBAcKC/0r+UWFB/nocFGgaMk4IscyX3yyNH3W7eyrSvObXrk/o6Hs4Jn2lum7d90rottdW29EgaCTR2+3NyTnS+wop55Of7clzuHKDZyjTzSW68c0ReBNdWtpoQnP7tDPLgNuKZVgdvLRwxrmnaN7ACv1vvfap/jymd14HlxdeD19jnufLJLAv5czx1H6pw4TEElYYQ+Zi5xJ+41jIvsSUxmBLMgCQq8M8Jyo5MyDg6BSnkGXZWFB2RK5JLKssQZjIxD3UsPM+lcv6AIV9KLpIg42WPHKFVmGTYfQtFK+JwE9U5mGrKiZAqlaDT6GuFCgVZRLNBibEyERqjTqnWjtUGEFGtzs9bkcUPbWAMU0Cw2H1hBvbDiALtHsut79l/f7RSxfeAvDwINkB8Afzmw4mrJyodJ6wkQO/RX9ityheN+h+N+hWbFysceW0kOOTw7v7/33u93ZvrD58+DjBUHDqxgbexXL57Ycs8Lp9GdjtG6hZ8r4ZhZ4czLMCpXyjU9EPnb4frmFjyNFzwixh1X1bRxGtl3+vSbe04yuV9+CWqnbdw47coH0zaapm0ku4Fsy8Fz7OvBXvbSyOaN0/gZrT09reNynyjrng3t1k5sq8HZcGHrNWmMkXrMdHVgZGvGw/lSESPWAY3Yo/xEncFoykZWhQeh0jMpsmcESVpzmhVvAvDPlz0THa8hTLabxn/H9xsC1/iycB/mc9LezGw78j5YBo6AZe+/z+5k69mdoGg5yF5u1LCLNcZNW7axl25usR1E7ztzhu1la9kd778PnoaC/U9wH6LEYbdv38bZWaafzwrvFABoY80mNkA7ayAWZRgK7MxUO7PUzqyFg7TRHtqE1GEBNCwYs5+ZSg/UNU1GXFdrl0KPbP7iDmzAewUqTkuiNDCFXGgBVpm4rBuzRWITgiKv3QeV39iNiKv1F3eOu5GrnsHVU8BswXdkUNHSlKaUmW0Nk97aBYhXF05LsmWp3TElIp1YU1w/p7XBc899s+9kr8yqPe7nZSptynjuHfAV79bdswB5Er4l05Zol+dLUmI02SUps6c1olci76FsqgylSqRJmaiLvPDDO//+qa6wuH5BjWPX+8vYBz9dekfnXn26QifSNOQnJPom9lqi5ckx1ii/MGVKSn3xxJxkJe331lZAhy2d1ErNieAzg1UB/z70itTv3WWJViRKTXHuqIQSn4VMmMBd5t7AS5WaEsFPU1JTRZrIC73nixprC2ZkJse4i96aYKmbGuER4WTdTTQRa7CkO8IoWA9t5Qo7MyHM1DqRrCORnzQO+DPioTRDQQ+ooUaBvkmWB8u0xYGontOxST1gyshCPncFNHWg55ZgzAwUVDWh1TCBDnmq4Ss5MqbuJoKvdvv4qSSXBrIIVS6lywMnlM8VYsm9XKG7UiE0IW5EzuKxeAxKwX/JhBzJBN/2LZ+ZXO65bf6WrY+umLuXBovms3f98wN25/ubloL2tx4D1rPrNSx9sKVbtLylpadz24pZhWUJN10qd+9ae77YY00w2t2tW7oeeki0dnr/Xz95Hywne//w0h2n2dOPL555rtzkF9F1/k0N4j17eFnumtG610phhqARV/w1EDOgnhkoiFSxifCYZ2M+jgk4dKsJMxopNDAxWZ3yDOKeI0I5BXDkAREzqRnZl+nQ2HyGjmtsapnMjTAjRyP/jFk5pXX6DHSHhsPWxd3reFWgcJWXjtRXIDYbr8uL4Dk4ix1VYeQB6C+rkSUpN8PRdzlVuEDDLEfBYBTDQAsPmpzjiclXztyzlKLEosNbLp7uqN+WP0HpP8BaeU7bfn/Z7D0zN2ooQwp1z58X1PIn72nWbXhUJHpy+65XF2gqGhTK40G1cqJfqqzfQh4CrhOoQPYEGwb5lw/rPBRVtgSkDjw/U2+oX/HO+l1pkiS7iOL7LfZjSy62BpN1HdZcHfuPsk1NvI0LOh8Qim6jEle+kUCda35omZS6m30Z1bMOATf7ZiRWngFlfwVcBcJI3TNBiwU8MfCgT2QRI6JtOxALwb1kObti5BOyGMwfed5IdpILLsVFycXsMfa4mJbEfU12gkVkEds3cpSsBjtGnucLWAasAaXDJnYLyAALh6+gfu62A3wxiGUvi/kHQD57Gt6QAtbAGyaCRaN+q0uQBv1WPtFMLIQWwoAWSYMT+yPpcOIXYWQ7fRjRqYT0WdAIltGG8kiVDYKr8wEEzU25uOAS6uHGBD5qWRzApLqoDtSiRxOmRpkNhE7CyyI98AvhzJtwOgthYqei/d0MzFB/OnHENwJUzcsCwOIXsQe7g2awaqEjnk/JFAZVfrozWjA3rYBSTmDKo0WJMXSWVlTmaKvgxbmbQO6iuvKgJCYJAMDjk46yINsu4mcZCo82QlfhUhclEotFNZ0tCqlErMzVJ6UYRckiqSiK+j4z5+oIM431BM1Flwxmc3xKlIgEtDAjhf1GLBK4LcmxVC+lq3F9kua5dTYwfvgdWCgSxwgstTrSrc+M1xgqpcmHSnwLdovZVRK7Z8rsoFciFislIpJPkjwqki8Z038IYbeV6CBOYR2YH0YhmZowssPg0ptoZ1rwPCA1OC+iBgfUBDLF1DpoikGNCB1oRL9UhGw46AhOkoZc0RnMtDAzjSNusziZW8LMDOeA7xb0Np9dnBGaD2eyogg6gtH8pMSMTEeyp6YVqcfQpHqoRBtaoIKcRoek6SjQU1MKZ9ynnnsLXskJ0LiIJjzT2ud0oMU+kQ45XPDuFtkzOvv0tlmoF5Ix00zmzcJCbp3L7EPAZtB28iF3SYGaPnDNWQQUXQBtPJSB5dwXFOlEjDd5qJKYgy1HnhZUykqD0uC5aehIBJKodLGkMqO+y5eRcKlRKaWqyqyeBd0lzVKrxXPrraCzoryZ4jcU0bWT/eZmhc1CG6bQlNUIlva19/W139xIWT7kdWidy6d0R4nFajGc0rSumWVJ8Up7e+v2gE4k7qj2BAWCao+vVDgJ/L5bsji4gpK0sxfRT+3ru8ajxc2/n2iB/hyae++oRV5nZxrDKHWAZn3yuM0vgnA9Bc5ecWTzc3GJA2Rdh9LRTNTRhTHRhNpgzEhwOItLJ7Rg2i1ZKHei/7/sdwalSwF9PPikwmsUt6CaLbpf2fVcHp2F08Gcp//fNj1S0Ua1dsZX3AOEO5aZZk3fWqtVIVjHBew9/0JbX89ScMvbeOtLGPlcyn65QqKs2TB7kmNB7+f3ZsTefPPbvnbF8jhFXHLXuqnHA8esjab6cy/+C29+T76MN7+OeZeWO0zKVutxx+/duPZMfF0/HepJshAZhIMIwF3wV7vrcOeHC8ka3NyRrMFnNfzOA5GjsVfQ1RtKO3/ah9D81wYD3QH471h3d3cg2B3oRufB5wKBMCr8pAhU9zlMoLpP3t5580byA8FAIBgMHAtw3+hrHL5kDNelMva3AtyjgoCJEYOo2QR9kO5GKtzcxf7j6tamtWAfzxW0juyzBkjizTc58oBpoGB1M4tZBhA2KNhLXOd3ZBElRAX8j6QxYyxGXDlOAn2cBFZBCfRBCTwKJTDNXlrBRZYykFNBJPhLy2/qVERkTQ2HDdlVOs+vCJjHINfxLDydGnig2rmZcJnAt0v+Hc+ylwEJfAvY+84ieepaADrPYnnSsV19V9grh9r62CtLwD8lH9xcmHoWn3vIWbXn3Llt246+h4Soe/AtLEQrVoTKwBvsJiuY9PrIhaqEds43FLFhQbngArSd9hFMsR0H5uwIiAyF3lDKKrj38lNcysotZbKHQvl81PJPDabmow7+wNOXvkaZqUEtOh3UoUd446DTnS3PGICP4/r14Yso9aT1E89mO935qVqdfizjdBRduXYB55tS7dDQCmIyPbgLB0muTAcVsyB3BIGBZYEIuDEmVUW4IAIhiZ+DpI/LVaiCfAtpwiUKIip38yw6TiiNVhjFyTNmAPuxIx8qlVM73T2dEyUCHpAIVVFJlEFM5U+al57jitVLdeUaqUgQ1byq2kLleaMCLdP/uG11g1cYY2Z/ZodHnjhVOpeyvfrEOlW632hT6fLsQ30HDkokf386xP5lntMq86XJ7Wn5xsqUiZJFzRllqSqr77HHK1tWsj88NGn/vA2Fr349RFrNfKNYaJt252PPvzYfpO3dU/JK4TORuhpurSgxauUoLgMIM4DjDEjgSuoAgUulmWQ6FJfhx2jsMoxICWh3kKd2qpwuGgfgdVpartMmAIDYcix6s95AY7KhZcm+hvmFcpU+ThwnlpA9w6tGXj3E20z62V3XXomN45WDpeCp6asLNNAMYa8oJGT3yIPDFLmYNxH6uI2RF4BAKYnEIKfDdagnVhJ34aqXpRipNC+MGgMT4Uq8DfcHFsHNXhoJsVNSlLwpkoY6MScQwp1YBT9fEfp8pJ/ppI/GJKaYxc6laBdQotwyEVoqhi9G+xk7jeoI82SDcoO5E71eTg8SlHIOznIheHqcq4fbMmb48sHxwOgy3khlBio/iCW5fI4qkrXHcAV2ZPUZcHkYtA2DIPJ6xKEyR6iFFFgkR/9zNecGtPFXK3u/BnXHHCvW3L79q+0exY6v2CPHWspu39d5YlsjeKImJy3dEAvc6gU1i3aYzDkZVG4O7565U0pyg4FPH5jXOdft1ifXeW36mLT8J+d5/Aq5w5cxybdzQm2pQRfMXbv2kRc3TF9G9T64bubUF9hDP9wnLdr1w71r1sye+wKYDM8aJ/WeHH7RWZVssIMZOseM8rwksyIKxMUl2Q0Tahfd2tQwWWNMdzhKLN66+JjANqvJoVMkJculMdHpidnZwfK2xTObcx1lnj9cH1cuIvKgPBaP6w9ScSWeJXC+pIgnoMjPqOhCMYaEcuYWFKJ5EKMgGvEr0WYUYqCQFwQHlBQip8hnDpIotYuozIIAoaPE8vC0CM03CUSDP1Jvbv8DoBTSqicWWmZ7OoUiXaokSWissdbpFQlinaV0sV1mty1fuqDeLOYpFEC+52YRa3bBPa/JlAfu7T63MZpXwP5vTe/K1St8aXOa02lrg33SlHxR7KJHGLvNEOtvXlWg1Gv1LsN1dpCeKCA2j0a8PBg8NQ3bw5G4V+G4uJcTjlwBRto2OxFWL2qC8IcZ/1gcDOEoOuPhmBr8jIMe0CUaUTQgQ/YsX5CklZo8+XjDSrOjwtBodbwmhTAYHU5/wW8KhsnVPgOHeYkl1sCVq3BVtsLfGhSrOfFydfwrC1YFizreknwX//WT7+/Zzl769x+/1Pzm6Bh5ZmiI6d+7f2oLcyS8Z8/5CyDttWegzMX+HBQSgnsIH1GNqr0x/WREtafwgjwcuOKqN71YhlCMikdyzcMYNBIKFxfkx30guNVPRilTHi8Rl6V5/TG5+ZLUFJvWpy+iDUkxqao0cZqPzs19GKgrnpjeLpOtvqP/0JzW2JgDdeyDV61UMl/nL3jY4/XzeXRsftFBj9dLqpZl18yO58fniMQJd9ybqJcBSh6XIpSYzIaYeOWUuzIKRNKAb31a2g/fg0SgHXw2zfS7nW/N/fc8OfnshDhf4MLtd7A/VJdEibO9H93eA+QEcUP8FHViVoxKU0SCMsZJUEROEOtcSjxnxxiMljQsFkk4OEpAx9T62+QhQvH0W6f+P+RrIzn4+zfHQRsO7T4UiUunUt2CbgIKLN4hEDZVKsZBTQgzCifG8wjFcgoeIZ/SnJqFAkpHlK+Hy3CjuQ4nK+9aOPf2L070bp+YZ1NJwfNsOfu9xDn777w1IwvvLCxdlabtBJY2q9qV9iT4BFjAh+sXn6gibojf9RCv4pGGnos1zOTameWYZ7wtjADjsKrDm9d6PPxwzaoxvvYcFLt2MpVhZnWYqZSGlsDzwjBTKA3p8dww0VKENme2hzbASZrjgB/J5WdW0yF+ot8fWlKJnNdkaUZmbmnKxLZblyNlWUgPCqwN2OHRyxgjnMrcTPi2DD+znEZR4Bq02vVGh8tTSDS1zFmHbmyjUZFDyuh29ytl0FzBgsuZAn1VYWQTg984YWGWK8aq1TBSD97z8M1c2fTYVY7AWYGuIr4T9MMiEzK6I960ivrVw91NpUbn1s+3SLR/7JoQiC+/6993i60XddaujvrGWpWp3r0r12cpdaW7FbSEVscnpUmizek2Z1FzYWGZNt1Wl5sdl2w01RRaDIlxMXHRMjoxOUl5U+lb1c1kUvdc2u7Jza/pZkwieFhiqGaP25w5eRpLhqN4vt2oj1XT5oQMVSJcPTFWTZJBbk6NksYntOYFM9LVyTHRPGjw6UwuSZwsJk0fTSuVo7EmC7RxuiJYlMhCG489eQ1xMsRHFkyUn5HRIYnUj9hNEGoVrhD1EnJaQJC4QsLII+VSgi+j4XRZzl8FTuof7N4wuPD2N9+9y+5sbv4aeABxLszu/Qd5mv0T+103GAFOssUMN6ylV/+1YsX/gna2j/co+wbLWwc3ydZPQC8QmYkb6ma80C9CEp4VxiCkUISdGPbccAZ180M9gnDNow2oeEibwTUdWLMwyjmKRUcTGf6b+d58DwZ04MIZikipvZKTDChh9E3jG32ZjgyTbNPHH8fwEtL05VXtXZllviRjyk1n1bkl1mKcOPXyQ5cnJiqlSsdDHqkqSVudC2pvXM81xNbReLweRQCR0VIVHg3G197AwoUziKNh+box7i0Eb55JhxJr4HMAxZkEUr05y5FTWFGFxycdOjYhcxai4aJxjD45wZIZKECeI1MlG/BU1Pj/W7wC2o8pPK4eAYeBLeAXfiTgDFOf2aD9byGK/BjvtO4tVQ/1RCX1xuRVzl7C593yK+GJ4e68W4M2aczBO55hL9/53yIT20ry5/1hxURjCy09HOPp72J7bgxNgB3zdJKY/iWnRtdEJX8frp1OI3IQkgyFs7MJWNIy7YwHjrrfjgo9iFBCHM7vo6ohCR0t43jUoX/IeOjBVKM5ZTS3ihofgyAA3ByfpFmgpBW42yGAmrzQpSyArl3D5tRCm/wkmPDnHUB8YqWmhN3I6tmNJRL6RVAN7gKVQ2JpMdvDprA9QXGM8L2zZPnZ9947PXL09HsfzH1+RdmS+2rC2bYF27YtkPNlIHXaQy0tD027aDS2dXW1xURFxYA4Dpxz05IJEydOWHJDDFSP2d8qiQ2jOza0/IrCEQrwyO5dNW73NnKEAi5pqAAe2cKMbWxHr4YS6ELcCzq4TTAF0J4W8C1p9mxpTiUaLJsspE1CUU1P0ZjtZzBm2IjcwG/a62UKVINFurNIfSyQS3ExJc+slquUUhS0d8N1+1vNgKOZMw6eOdiWmdkGn2YcY6RKS9IHovbLEkYioiVU+W+3A1/99tWHp0x5+LXLr6En9gUwV2R0siumvAoenTKJPUiSFKXHvvEbwib+G4Qc2g5c76V2DI/n13ovFeRPjGF872UyBjAc33sJHR/D9b2X46/8au8lhzr0y6ZLqiqda7qMd6Omy+Hjv9JqWWmroMAfRlstF00h2ba2EbL5+XEtlng9lQpdglYiiogljAg7Ph590lGEf5OdiT7DEE5GArccJ+YgkEQj0D8e5hkNaVENaGxcjD4iD6j7C5fByHW0FYGK6Gg3in4mAB0tJaFuMVhWHl3NXzp9xkoJuIddRS4QgR0xeTteB1u/OwU3HJGCv6dl2fKmKQsX/TSZ+jr82nA/+UFl4m720kgpeRE6UdBwG+2hmC78URAgNISV8BDlxFToEaFZysS93tV2Zgr881vtTN0ZpikcmobUQSaFcp42zDLCiP1MtexodILeGSibOCrNnCJAVojPC82MOKDHNFWxQEjIzF4boFKAQAKM8tFoO7RSCAFX48NdgLrDggqEOC5epCtQq80lsOGDY2DShR2XMyWuGXf07NYliD3Vafc9/foM9vTZ+B24+0DDxO9gv2ePsZ9MpPvbO7rk8sfaO1byNgBNYv1yWlqu0YoSDq9KzKCt2hNAZdWk2B5nP32iCuzoY6/uWvTHM/PfqJWYNu4qo5L7q9NA2dYZ7Jts0fsnN2vrn8CPQNw4VUE/2AQfFbt5szNMQnp5fYmY8mi6mASh4mNtOnvhJY3VqqGeAAmPRWRjuuAzOMYJhB/6B6eJAT/KdWnCcBmgjJfEjloNA1y/USVUQqO+ehbHiFAVCfBlfBUeWykJQyGh4Ccmb+j5wOOX3kSXGY+UcQ+FtMKfGN0QI5QOioR58ozBXPQ4AI/HlZfn+onCKEIoStDq3J7cvPEYnL96GUf5sqQR9lmjH0NEhQJlUGat0iyumMMnwKSKPjniDtFyeVYMFy/k4VfGvWCHAi0ldND85CFaESBHIMzIxkV1NiKR2XhOW0zVU8W6IvDA388frF7VuYf1tCiNIqvxg6b4KmGJLgD2fXD+MTqT9bG3BVqUVcJS7TaQWqRsKdtw+8shv85yQuf1aUGB1tnfD6LOLsxMkDb89IrO0wIKtc7HHgOS/0wXTVzJfsc+18gOab28D0FSY2Prxl0O4gafLhVqLT9xG94htOFQptfpZHR2xuhClZO4x2ggUYoSXIlW1DWTO0pdr3aiYlPURwqttywphmWF+0QeXPdeLS17li9NTEnm0OGZLDoksCIloNOiYiXCbHHcdFfAgS/MTAO9LLlL7cIhAdqAkDDgVooObl7XHLQtWNApennFYQkV3HLrutfm1MeLXr+pwgdKa+6c9hE72TOygexpmXffZnYLuGVbfbSZ7QUDPTfupYjfrpKovcH7rfql91sd8X7RHik12AMFZRVjDvCz0GrNCQTLyn+bC4wArMZB/mYADHsBPR45rVMa4HCgjMpv3Rnv1ClP6+JJRbxeH39aqxz5VKNcAJ465+gET/12l7kzXn9aqdUqSfh4Ol4vTEwYuYXsOBhnZpewX5MLRh7A+gBAnbsA6oN0Ihva+HqCiUZ064j12YCr41EpPBEqgBtEyJqJWRiQZjT6OC8Pdf4KKIt6PKU3onJCiW41pTb75FmYfQNTe6NwEbJRLWap6PM37gTy2cqWvPzGhtwudvD3Il7VRGDu+x1In1jFOx736cfsHvZ3H38aF61nQwfE4eKV9wBDfQvIhqPnbK6vb2b/9vDv2Lea68kldx5XiNbfpk/LbW5e3dB3SBIwevOnT8/3Gqkjy2+ZO/eW5QuYOy5tmMK2xS8iB5Jt9vJyuy05yZZVAZ9H/Zww1SgIQ9kxwlFAta+GMb4ezs7XcpFKtFdqUd6RT42Rq3g4gwhKhYVLninpWKB2exGlMHZyteYp94f/Fb5/yr7NASvb37h5X7h3SbhzU5j9OPz9Ungdvrx0L/FzDW+HNThveEXNz3tXPKclvx6J0h5ZsfOttyK95dfZirlEENrJDTdIeMkvJbx0VMKjkYRbXb68QEHRmIxDv4NIy3Ln5Afxxf9/MeepfWq+2kTbgcfEp9VCvocPHTeLkudTC9Uen/K3Cngpy8KfJwHRypdHHme/py6SHvAin7+4b/dBHfPbRXzn4k7RaWoFUIkaL19ZwX5JzTnNHKMYigKGokDx+cPVh6/DQ0aYVVYik/ARhcREopVYgefai9mydThwg6qdp42LUFdy8z4djmIl3HMKpSg2rdSlpWeiUStqmIyHkvaioRQBZWp6prOycWqEE01eU4uCrrmyZ8SEsaCo/FeBrngerUml1o9CqQrNcq8MxyopHnSFHT6ZySeTCwxaudelVQsFfBJBIBYAFY3q6dC2psaFdmqST/4KOFY0OAG60tXSmFUfV+Wv1UjiwrT1i0OCjN/NYHd3iCiK/wJ4jlrjOrif/WrS9FnAeoF/J/vJttce3trspY/EVrLD70XxBbGTaphVrgpxHvuJ69fRNpNXVBeJLFvLc++1yhL+DT48BiyNguBnT7QPX4S/BEx7gGJfZD8qFjgSXqcGFgGS3VTYWVyg/JD9hB+dlqSKEej/FkvFRksF7KN/BqqILcjNmZCIIZSYVyJjrKfQYGeSMe+RhiOS0CRjCJxI92AUl7YBhEVAyGVqWigAKrg5ET6dHKDcFUCAEKQlgZfBnkm8xF4qX3jh1BLw9rqnD38B7lx5tbKDPPj8G/tJBsz1fDBEhtvmkf8GopRuNjiyj/3uMfKz43NGPg8oEwAI8ytHHiX9jVeT7n/sS/DwRm6dgigRQfVinE0dlDU/UUM8RTD59sHYBBPcTF2oRKWYCyNAMYvGUA9CDPUQgzJYTiR5MsxsjqgydE5UlqyBj1zLQybGTkQwEqjaJS3MWKSoORbZxx4n48YuYS4OJOJQRAyCKRdI/P6QGvXb0Cp4pE+iOerl4nxo9fPEpbhOkB7M8PlTI+yU0M71+HBLSSpQwEOeW6+Uq1HRKzw03HisGj0WyhUuPsddiQGWoBWgEUejPShazMQ7k5Odzyg0yQkJyZpjtE6rVGp1xyU8o4GmTUlRJzTkuc6+vs4cO81+PzirNgEM94rFvbvF4t3naPocmCSVsofP0coPwKsKBev/QAmP3oBHntMJCadJiUYzYtBQe97Zozh8MVmsiOCgj9OZWYQb2wVNxDRi/aje9OHcYrqdyXIhJzqiRqf/Uo3OGFWjcUiNZtgdHn+gqGzipCl4/ef5oPWpTjHhwGs6De2mSVNaI8525UTcIP9svMbuKiipaLypmiWkQaBNAdJYoDXzFGqu89ciMPicHIa6yzmKpY6qTuSqVACNLwye7kYExdzlm4ZQf+z5CIj+sWHDP9gfP3K0SywZfY0izQsfSZ56fkLp04vmbWssl5R/VjU7a3vRsgeCfbwoCUUZvfWdLZWTA5K79B2BrJsr5R8BdW7jxnPsMHwEM3q7VA73bYmU39/ouGdy88ifWnTLn2skdfdM9rS0saeilIkCIUVJNyya8dYjq9oOKbl6zKeE0/kXCDvRSEwnbkHRtyjo5YWZFjsz04UqueY6mSDiXgFMB54crvNnEoatZ6ZIQ23wqD3MtEsR0AeTGA7NgxM2ZRKUb38uZqtsowclMXkIy5lplw0UFRuxqzutBS6KcsR7H6RDiQR8NsuOJhvTsry41w/rkQjko0utchYAhALCfaE8MFS/SGkjcTdaUJupQO7GaLSoABD5GV6c2I3lQWcii+eN0AUZRomLDHqDfn5D3caWrrnV1rXW6gKN84lA+R53TslDdFycx5P7v2taDve3sRf+6o6Lo/ewnY5iuSE90RdfK51RJ/L37dufszi386m3e0W9b/3pVv9ndUvr671+Mli3tK4OPvc9tHbVnrwcX6ycxP+08cm3VdZ/u/vzx6P27b0rRrS4MT5+SLmpb1/UE2zG3hkZsXwBD/CAAIgkMQme9vtvubctR6XKabv3wb7Ozvq6hQvgU98Cbr6i+KmCXtwTEoR++jvYagyGGRFmhM8d7forx0xvBhw/hY5INqqpAai4Gc4gFzXlcUl7k5NRcklNqNHSpKh/gilBFOlQ86E9OMSLpDGU9IA9240m1Clj0v2h/DRsxEhlCUlavdhXgJejKMiFCOX0oC8nD2U64R7MxPpD8eXwBY2fMdBHVAWFJQj5hSmWMSn+UDZydwjSnOYenXYamnUuHW4JQvOr03to1XXnAcDh4ajHAHCICGAOGXnendmybTKYGHwM4dY8FmSZg6XTrztFoDgdLRgKZzLP3YzQcrgv/r6+8uHqknVzA3sQbs5BsEPLHXxRsR/B4eQ3Na5qarrSsaqxcVUjLxU/XecDIVyCWmIy8TTWdNk4ktgcZqqdqJBiggvlmfKcaB9F+m7KOEPXiXsSmVLO9IFLsE4aaoRHCNFgzHWcipLLajyWoUpUHMl363Cyvo4eNASCUq7gblDgMeWhkslMhIFggRNT3gyXm8/pR4kqqCQz1YEIJXuCzpRxU8XIdyNudtRWFKGKQJWx0GvXQaMo0uyI+vD0HKqmG/mk8MTkdo0CGd0cnadeJBAka3S3+RyN09J6pyULBKJ6tucI29PzOFj8uCdzYux27fbYiZmerqJic44JVBSjYEqy+abK8JHlk0W1FdVUlM8kkbRJqitqRZOXQ1+VXDd16rpyj0kkMkE12GbOyTG3ec0Wf06kZgfhSZwlUqAGdOLeJJ0LIWPBbV7M4XSPds2KE5G882NiVZoUU2aWPTJo0K6FTifmH1H7EMIhwjak0TB4aB3gXtZFzoUWEAvWgtiilsCuU+ve+/G9dUWNxexBqpO7zPYXtxSd2gV2vMB+A2JeIDehqOLa8vK1695ds+bddSO3I0hIEMd+zb2OjmxBeEVeXIw/i/rnKFGeoA9aPxUYSZeCbjH0C2WWLNKGsBmiAKBdSi4zgRxIlAhEoQKLe6wwBp9mkbi0En2OzCQQB578sR3kX/zPqRR6yxn2MvvXJ95h936zBnxwpHVLXbGfbtuVtyI1y3BMJI1RxKc3ZmYeS6Cllvi0tBS1UkGeeJsdeOGc6Y2TJLiy9bvnbs9SJg2yLPsMG+TJAvUac1KbJj6jpmTkDTCsNCqlKp4k01jDasBwWq5ELFFGpST7JKyGs++ITBGfvwyz/5jhGptIzCB6CCbLzuSEGQIZZYow02xnNC64jnDPQCImWjGgl+IwnZ0FrqL8MJPPdd7PcCLjLehEjQUhQSJOXIfyEYFY3cQGpOncdKi0Ge1WzQpUeqx0ufMDDWjhlNKhOAMGINUhayEA4JjhnQl6oYDW4RSrYfRAYAAKXKIEtyePAdEkWqA06DgWIVS3gbwPJcrky3HFEhcBVZLHly8snMBzL65y+qac7B9ZBAxgqckU3AN9saXKpAxPLvjQnpH17s7FviWzA+f4/EUt3oL5ZC/FN5rSXt96R9idkUuSH5CSkW89MTFdDa4GeZyKJMslReYnljbmLpogirlz1qHnrr4IZlH8mbWHyUxgofiVuVNL2F3uByonzKFIe+PmiSZTEbV2XjDvUOPU5fOq8v9kU2vJtoMjS515s9I16jJ5VMz1OTwHUUQ8NKr7CjDomiw8oJeh8Jg+XpwBtR8uRRrTe4mY7JpJ4XScE5HHMk4uamZ0MrlwUxtL8aFypUSk/bKhakuB88TX2fGOhNDpGK9sQKAvRI1WgVx4TwGCX8vGsbRkV84vdVwENAF4XEoORRYvYqHFg0xrvGJNHrUPvRYALqzYbgafAN4+4vFuO76ls9zjv/v4NjJQ3pnjY7YM3X1z7ISHt2/3eEDljLu3tAWNxqDHwx5r23L3jO06Hby+fXsbpojDPI0uoYvqgL5YXISnMcrFCMNMrBOxSSA3hsteizlumlFaCY6zm5JyzxdA9cX/ZQd45oug+sKX8GANe/jyZTDp4sXI82hvDoehlw09pxKinriXGMhBEWoe7orKx/CB1jHkPBuugcrFNVBoroLYnbJgdyphbCurxvCCGC3P60DRPpJnNFnTs+wYLy8B+kiDMbFaHTqpRtuZSi1LwpZERQ5Wt4QiwWJzGYuuh80btQS50gcOGY9bRvD/LzD10NTRY6aCaQw/D8Hm7RI5Pa4JMxcurXo4Hu3zu8SuzMmrpaLXG6/h6TWvxHB6uf4mnnsURQ/D5/UHa2enpui0ertzwdeccfG7wln5XpuJzwsGwKM3QOtBW4Ev4HDz8rjT0dxLlHAztOkqsQ3eQSwFZsyTqTS5XExDODRtidPJxGC9VgRNOSczy874oYJbhuehGtoWHKABFAsh15LByUQePJI7mRlhpgk+SpFwIJCkRIR/iKAfp8Dz2U7kbXmdyOFCTu78MDOf45/nOmwXcdzGy1HPRjVX1ymkB2pqsXqsxwmAPG4SC1EYK0TPQORcfoyw9Uxzy7SZs+ZynFUhVQ5cmAaU4NKkZKPQdkg3H/5AE3LbQp1L4DsWoXZJIhTTAGc+hk/Q8vhEQ1p6RU0zLhAtokPSJHjXLNmAN2+uP0LTjcUBV3oio5+Gsx5BTFThnt2xc7jcSegKeMYJB+rnjSXhPaox4EXj2BFvvGkZkRdkBgqEzcHwjODu3rd27q6Y+mbf7p1QSjKb72l+8yA+3B+evK0lcxSGkeweB8cI5YcMQ/lpacn1I7l4uOLLxCRjRTzbVvEwdw4ejT/45ejJl8gGXQBSyvuQqPWVsx8vCMxdV/JlxdlVjU35fmR3oieBKdCILdJbVjcgU/Q6XZxCWIgWrIvNOJKRiM0bKce9M+ZoJ49xbxs5NYtYeJJRBSPfz2hxB69Rxgjg1CSa/yvuSoRjjxtGNGI3TUJQ3f3d3f3gga5DXV0tjTe16f5+qLv7UPfaP6yFX6OY7r3QXosiSoAURxC1LiYqzOQ4kTK0ulD4PMs5iiwTE2ZiuD5lCw7WIC2V4USFDTYniq1jhKdPoPLD2bREnGDOE/3E+Iee/9p54jh32YnTaSYxSkcPGk0GOdyipIMup1ue8fxL8RemYJynPOlgbp5fnjEAH8dV0MPbx53B98An4lk46SaX+1piDfziCk60OWLQ/iYsQPuZF9kk2qwc7DlHcQ2NjJR+lhDpLRk2hzeyuUG3yTkKhoHMvBRBKkjhubS01GSJdIuSqG9DwceA21oeNvViyeZ7hxa+v6l8W/fmPw9tv7c4ShorjhMq+NX62bvf2Qr+w4b3bDn0ZNyXSezmv34MZAcPfMeenFPtXP/yvsWvPTiVPH7HezvrF4RXvPPI869OiYnX0BZ5TuyljvsXe0EliK7S6W/p6YUi1n/4qwqTaXE3yLh4YKCh5aF/RXBbuVijGseHXXDnqSKGiAEH2neoMOO2IwMgCeG3cD1Jg1ppQAQNAyjC1ZwIO5Gm0mNlZR6zJFCrSFkYgbZG2pZqoEijsp8BrcGKtJMZlawkoZpLJkU2oFDa0EUffYSyO9yoq4kpkw0IpQE84G4HJqAS2nxl2KGlB5TRxdjMsCJtloB5qkJGlA6PT/FfS337vMYxJEG0N5EcfzLUP2REz+jlbp+KUONeUmjzZQEeKiFKIaHdLMzi/R6kPvlXUFR2HPgHb3uF/d+9vexPJ3skAx/eMbm1u5vRFLeXl7dnhm3AdWbZN4cvgyf6L1J7P9JqgeG5W4e2N33xDNnefx7s+D378ZP/HIh5G9T89SEge/W2ziMjO8rZl3gHnlrXzaxl2VmlZfbssuHOb5afYd+0vfk1Wc2/0K/9ECw4cqlx24nO4+x50+3n+9uvz4nGERqoWxzQz0WFlhZcNYNQG5zw5AwCdELlQ3BeOPMO70wo2qDEVLYhJSrAUsejwbVAM45J9DNpNL7AOGSMcjxEwygdDq3DRc9KrJ4tkeLGDGi84fJnePS3nRS7829/23mV3Pk3shsc7dy+7eWnH2cWzK31WCq7yqckWss7PI294XAvdQXft4P36pq5j9qptFc2Pn7EVVlgoA8pDL5c6w31d9XEUaxBK6Eb7kR5HqhyAkjNQCFkAlJksCZi3SPDQJPX7NpC+ME56zV7rFDIw6kgKJC1CCmnEDnwiWW4OiibPiqQaVIs/nIufPmM1mS0unwRFAU9HKqSSjhU5VAZ0wMef5mfK26TRKuJFA3UAtmuXBQICCU64V15NzF2+XgzQ0BuTo/bDjilIIw0wCKdoLcD7JPgggsflsybW739y29bZrI69/U0Ntx96oSkizetsbiu7/srRaakYGHV7OkldbmmoiXLfndTM/jdTYdmrO7aU+xRSg1rDu+RlAV8cVLzXf2nuiaVzJndMD93nmf/KCbGPmGrQMAhoSBkYLkM9xdA74tMBD6EShdLCoMghRQISdzKYQe4GQTxtFLCausyX9K6Hp3RnTZthW/a62ef2ZZg7y/o79/dSTunFdtiFclPNymltDU2Q0wnaBzJs3Jnsh9VUuXzNDXpZnYG21xU7k6z8Y3BwW+BEHjvA/yZJkHB4j/OTaHjc2rnONnDKtVSf795zt7nGrMd0bIPm0br65aBCxiXGvmsLcRAUsSi1o5xtoyhUGvGUKh1ERRqjr/lBpRpIqRNQowuCFPa+N/RpK+3fK9Hib5m1d4MCnqcvRr5LAJop24jdIQJ6mqChiITaUVQc4BhUKK4zcdnwfQmJrFA91BBWktXQp8uzaqjOjSa/Xb35DXxDyVPT766TwdkvFJSOnyC3Q0WkX3w8S9puj7N2sk56X06dHerZn98V4vL3pecfHWvrpxXOPJ/wydIKXs/uZ/rH6fw/uGC+wfquColahC3Yg4Xra61M+IzjIpLxqjEUPWbcwojKKBSLrSsAVxZtJbDAfC4I04FVjoolQ41j1onU2eRJnekL1yJMJr1ZosZeOW6WPLw1NtXMd0PPr/lLrB60+bn7yu4bcWq26cetqWw/XPZFezyuezBFNtuwJO0r9o1C6wypZ34aijNZEob+upEmomXNEcCyOhZu/hr2BPPzuyoWbW1fYtsdlFVjs+XU1U0W7aldPGc2pqOmc+CAk3aCy+kzWOfO9W0869/TNZb/H6LPjmJex555z1QtvqvOzm99SJ1RPAloYD6mUgCAlItTyFRDAiYjUKeWSggzHCRIDwlzcurb7V+oGE+v3PoOT/7vZ899fhr5kAOKDE7l3eYnX6/oJ3d1MRevmf44sL7LIYykN/PExzos4GtxabE4aPLO83e5QsVNKcrqW6oK9XQc6zBVWNZcPwd4yxMG87lDsrENrh3x4VRqDMUH2mDs9FwO4C6TCYbkBtwwiCOZqgIiwaiIsD5fTOJMNUEJPxSw7kQFHAVtnGARErL3AdEe1f8z74ZW2+9dTDJzEsavPXWrf2mKLkqVhuXGd0YFSuNEfKULasc5cC+l72yb9re95b3geCdm8HB8zR9np21+U72xcPz5qdkZSVmqwqkq2Ji6Ohy9rWhbeWj63i+iBB4iHgo+5lEIoFqsREuWgQgNxQHTQFGhrSuzuNS6nhIgFB0B0oQ6jHX6YVJAPFbIyJPpcHD86ESxFTAe+IY71GF+GX22DRtgtXD5vpNGrtfzh57WaxTHhMQhyViyXDvsVP+pDyQk5fkB2+Hw2TLuT/lOJPjvdMXas6NlLCHDx/uO/bmm7x9SzyeJRFuuQjfahKuXKKJgXjMbDdGf+gYXy2j1Hl08Nsw2nrsog0At/PyMY15K/vcyFPssbamtWH+3qupvb28fb29mO0z3NIVhv9WN191IUJbfhSYzvaD6aN1Hfx9gjD83QkEMZ6Pm6fjwV9kUut8BotO2JxLdee2TPZ3D3d3+1sA2Uqen/lxFXusuj+/qSlfoPS3IPiKFn8v+kUEETXGx3CNt4/rpbZD23GMwc9tRxvtf2Hww/9dHgOCCwfw2Be5JofXuDZmjg8uTIWHCfTZUNPym28iYA7gQscdYB+Lv+GfdSPRX7hjXgf8AvtG9s6Dz+HhcMeortonQiYvYobOJvKIB3E8xxweMPNQcMzsF2egPiE73hxkYY5vJ5or+M/HqwkDomB6Bi6Hgzx2R3g0AiPiqHisGuSCK3AN/KDWZE7lIv2h2DhkXiHmBsaLIp1EyJ4B7Y9kvUGD7nDRIYfXf73pBT3kMXJMeIxAsa5lSmVcdMmgHxfvH2WF/d4fH1QERyrhQ7z/e0Ssd/cFEH/h7rsvsJ9fKBsExGBoYw/PUK1JS9Ok2HB/OG9fS1fgBb//hcD/t4rQv7fgijs6GH/8Z9gM1LJFwU1TVk5bC3rXBeTOQDnw2m07hg3soPoUlCshdxUJQ1ad2Vzb4AxZa+ZsAwwVER5Qk1OTF3QDgYCBkZm9K6znxAy6uILJHNJ1smbUYwZ6mg90bro4K+jSHTtGYNnPCDrmW5WdD7yzGXQ4LmilIziQ2HRjGzenszCEFYVYKHZE9/VHdShahBSF/WFouNrmxVjAqK7CqK8nwCzILSMj4ccopy4uYPrvqiEXl4CEkmzMv9esPo66fnqurnp+eg5Mp2M2zC13FdS1Nv51cO9fY2tdwewNt2Q1ufnai1XYhbgZefkt/r2QkZKR6CmXFhFl5uJzYOQpjiwp3VBYCBkzZPx3iy2S7TiwBjBhYJAHn+9vZi5sLgxaVAtqKKmwgzdnMrKBTzuRY4TufgWWV0ygFpOAIquG5GxXqav9nxo72/e4ykjs+Pelr+RIq42QtNHfDxrMTdxqdmfWqNjyiEgY8EhL8LPwinJ2WrIrnpBVYJflMmcMkWTsFZGQOMuoMn/a03RpkbxZJ7L6Mv68MmFlVjKLVq+7ES0sIizIz8nMyc+WoiMGnYfJAJYXpsC8ocygwwDKACLg9eEbxK9tkDm7QQaS1gXOggqwjcoyoLgUtoSsAZMH3yprz4hY/KcAOk0CVMpAL4ZPqg4qZwoqCqpODtTaefFfwaWzGnZMDPl78k2TVFUVFVVVk5jldfz7H3/58rjfV696R2ZFReYOSLnP9V+frZUtCdjesQXNqgiBryDkAzYzxVlUzVRAi5SBnWh20Fnw4JudGIVAG96BCHRfIXg/I4uaujko4IFNI3YWLg5DA2kHGTEx94mZjCKMPrMZBTeGionHxCXKGfuHuIcGpucBE4FOBhubaVhGv6QhsK90vJ2ReaNDmJi1y7+bywv//d7rYVt8tLxelkXK5N8dFsmbH5fmlxjGx/tYcEmXW67bstHeNVjAzzF3zqSEEAMlHkZmDU0VG0t916m/re08/I55GVmw8Ek4+0VcsdXSZubZmu6luSGIhZ8vH3oWLdNDYNnKCSyxORmhK+oYCxkLrHT+Xg86y1j4rx96fw0wjf2PZPvL1ggsdW0ZGITZxOwZgd4VM1cFj8mCdgADvQ1iC4F2Y8Nuq1YHb0RjB9eIDLBmqbqkhI3VTUauIFFzB0Y79QpWDiEeVlZOJkYvv7Nx6bkinPKz/i1rz/9owK/GNinLQIVPg1VaUldSjsUjsiUqyslBj/Gyo5Vk0L+PD63tJbqF/MUUjJSC3T0FOK1sbjd0MyYt1BAvTgn66CBsxs4jxSXNImweY+XN+LclLq4lTo+BAQBViFnvAAAAeNpjYGRgYADiovRLZvH8Nl8Z5DkYQODKnRRvMH1/hc3/j//WcFizvQFyORiYQKIAX2sNeXjaY2BkYGC7/G8JAwMH2/+P/7dzWDMARZABox4ApBAGpAAAAHjaTVQxaBVBEJ29v7d7nmIhgiGFCCFVyiOIxW8NFiI2qU7R5oOtZbCT1L9KkdoiYPGRIBJS/jpY2BzaSEoJKUIKBUk2M2/mbu/DMLszO2/evtn7Femv+EzkPxFN3hGFH9kXT4ncV7Y1NfrF/hX7t+olVy7TP6mtOOx31McFr0nXYcrrAz53llK5z/sXnH9MLjbpOhzxfsbWe7FT27OPtfKKLXlZx13mttA9sE+sX8fWkJP6itJ1/JguPOekH2ybnJybLJWbrKsCfJzUItekqzDPeMVDNamPPyn4GXpQPFSPmm+02t8TfOTMJvv7tj9n/NfgfYcxa+Wn5+ReJePHe+zfp8S8kx/hTI70vtCB7wvt5lRw3Gm/lKDTNmpuCafwh1bLy3wH0afcUjzEGsXr+ZZdXrul5vsY7rpQnWUtuoffFAQPMebm5+Cms6dhNrh/WLEe+4bVisZ87sRmesj8rd5PNSdraFuIHtanVVzgSC+fUrwiJzjSp9zTd4V8l/Ub+m5RLXXFMZtoumFv/Vg5A6NTE0y8szrrIu8FM+XaKtBtzLhTfpif5HXG2q+xWJ210fdmcfs24herYY0Rf0PPyu/2/k/t7JTW4Td0Hx5ljOG9SfwJU5uZfpZnjLvotWOxUQ7aLPAdKt+/mO2Qj89Z35ejunakRZvvjdh/ejDkGsvtjvKjvqKjO8ta+Q+j/4xGefVv1f47nMXqQnXB3IluAP7dou4AeNpjYIACEzzwGSMTYwVTA9Mr5gjmBOZZzKdYeFhsWBawsrFmsR5h42CzY5vFdoLtFbsYexb7EfYHHDEcHziVONs473H5cQtxG3Hv4uHgseC5xivH28b7hE+Pr4ZvCb8Gfwr/Lv4vAiYCuwTOCfwSdBDMEpwnuEnwiuA3oTfCccKThB+JcImYiOaIThBdIvpATEisQlxHvEdil8QdSRnJFMkjUmZSXVLfpKWkV8iwyYTJzJB5IOsnu0D2kJyG3Dz5DPlvCgUKExTuKSooblG8ptSntE7pgtIr5STla8rvVJhUjFQyVOaoXFDNUX2h+ketQ+2e2j91HXUH9TUafBqrNB5psmnKaJZodmiu0JLTCtKapXVL64s2k3ae9gMdB506nRU6T3RDdJN0K3S36P7QO6W/Sv+a/hODEIM+g2uGeoYBhgcMzxn+Mwoy6jO6YsxjrGA8z/ieCZ9Jiskkky2mDKYJpj/MMswmmG0xu2T2w1zKXM/cyTzMPMt8ifkVCzYLLYsVljOsJKyCrDZZ3bPmsG6zcbE5ZStjW2e7xvaFXYu9kn2VA4tDl+MZpyCnR85szmUuUi5PXE1c37kFub1xV3Pf5THHM8pLyivJW8ZHxuear5Fvku8vvxP+agECAQsCvQKPBVkE1QTPCH4XkhKqFDovLCzsVLha+I2IDZEukQ+ikqK2RAfF6MR0xPrFKcX9ij+WsCiRI7EiyS3pU7JG8pNUntSqtKR0q/R1GWUZlzItMpuyuLJcsrZl82T7ZVdl38ipy+XJTcvdlKeRZ5e3BAQBAjvJsQAAAAEAAAEvAIcADgAAAAAAAgABAAIAFgAAAQABJgAAAAB42n2Qy04CQRBFTztoojEsXRAWE/ZOUFRAXQobEY2orEXlEQcGcTQx8QtcuTB+k48v8G+807ZkZGE6PTlVdevWVAPLvOJhMotAQfeHjfIFx3NkCRx7rLPrOEOekeN5nnlyvEDe5By/sWK2HL9TNA3HH2TNo+NPlozr/fLImRcuiBjzwIQBPfrE+AzFtzoDzexxpW8sxVjKY0U97gg5V8ea/rVozw6n7NOmKUrrV2c60jV/pnamaGKnRlL5f9yPaCmTcDrblzK2G4y4n3YElG11KNdreSaarrKhnDt604BNeyuUFFXVt0dN02s0ONSkA1GTk3/3aCvqyDWymt/JdfuKvhwSja9TsrUK26pW9d0Q+5qa7FHmUi5daRPXWF4Tt3t96tviRtWBKsnbhd+FY1J3eNptVgWY5LYV3l9jGM/M3l4uzIxtk7u9XKCcpr2UmVmWNbZubMsnyzs7V2amlJkZUmZmZmbmNmVu2iePvUm/r/PtWrIe6MH/3vMKW2l/V1y2Ml35Pz+c4x4rbGUbGAbw4CNAiCEijDDGBKvYhrWVy1cuxXYchB04GIfgUByGw3EEjsRROBrH4Fgch+NxAk7ESTgZp+BUnIbTcQbOxFm4Gq6Oa+BsnIOd2IV17Ma52IPzcD4uwIW4Jq6Fa+M6uC6uh+vjItwAF+OGuBH24hLcGDfBTXEz3By3wC1xK9wat8FtcTvcHnfAHXEn3Bl3wV1xN9wd98A9cS/cGxwxBBJITJEig8I+zJCjQAmNCvthUMOiwQbm2MQCB3Af3Bf3w/3xADwQD8KD8RA8FA/Dw/EIPBKPwqPxGDwWj8Pj8QQ8EU/CpXgynoKn4ml4Op6BZ+JZeDaeg+fieXg+XoAX4kV4MV6Cl+JleDlegVfiVXg1XoPX4nW4DK/HG/BGvAlvxlvwVrwNb8c78E68C+/Ge/BevA/vxwfwQXwIH8ZH8FF8DB/HJ/BJfAqfxmfwWXwOn8cX8EV8CV/GV/BVfA1fxzfwTXwL38Z38F18D9/HD/BD/Ag/xk/wU/wMP8cv8Ev8Cr/Gb/BbXI7f4ff4A/6IP+HP+Av+ir/h7/gH/ol/4d+4Av9hKwyMsQHzmM8CFrIhi9iIjdmErbJtbI1tZwexHexgdgg7lB3GDmdHsCPZUexodgw7lh3HjmcnsBPZSexkdgo7lZ3GTmdnsDPZWWFTqvWdO3d2665uXe/W3d16brfu6dbzuvX8br2gWy/s1ouW6/re5bpnrycbo6NMNybNeV0PZ3IRa24SP861mLVce/Ze7ItcN0lQyVKo3Cu1lSP3iCUvZOIXTa1EUEtuRDaakposV2lmvYKrfFXwUshcKCNymXRv9f6GG5mMq7ypO0q7784nhSq3XvyM9NrlUcc7ao9kUdmFV1tuvEzm1dg9OobInS7pTS2Np8qpHrtHR/fdae3F3HlIW54k/oZKpPYyXUgvV+UsrJSwjZEBt5aLLMj5Qjd26IKiKQxeIcvGF5kUs4FcyGDp18Dy1BMZt8FU5wldnPOiGuZyam2myqgyOjWyrnf5bZC8QusrD9cj44LmGFfbnbuGvFYTJ9+/RG1kEz0vQxdttSGjWOtZwc2s9khrGpG9srRKl4NYb4Yte1ONmqrXEDTV/xizO5i2TEObNUVcN5XPc2nswNR1wJN9TW3H7jonHqt0VPFKmirnJYVJ8mlYETfdOFpKO85BwSu/zigBw15wUCjhFY2VA9FUZECueeJCyZ2d/oZweKsyXcpx7ytdxcQ8oDSmkqKupjJu9IIyU9uIG6PntRDzyVaciD2kJDp/2kvdBQOh0xGdqANy2uS5b7XO6/HyoC54nkfLoJBslMsNmbdRdTeQpqBWacnzsCU0ledoPrE31XhpflsQvpFVvogSZaRwrkSt2zzOZVg1ManKPOdQWGfNdJrLYd0oK3gtB4m2Xq515bceBHNV0gVBzOuZtKHQReVKsVVOdoZTbeYUolHrOFFjPYh5yiiU9ZwUZiMHZEVJJ+yS5nX32B0WulRWG4+StQid/WRmm8q+CKwhEPr7GypkT+jEWSX8XKeqbNPQsYVuT6JUaboKCh2rXPqxaeosKHhakr30P9dm5lecamnYekT8y+R0SgJSS+VDhok6kJuVpoqmPcEoqQUhilKxVZoVCQcUUG0SJhKfqrOWvioJzZRCWSZtgmOqr3Aquc2kIeeElZt21K2q3PArQ/EIDVkmlxGlerWeK5Whe7i8+7VuysR1NjEb9riLtiAVbOi8KWSwBMmkh7IrodYCV0REdIYshdyu1dPaZrXrQXY85bXt8jdxe5cq97JVfzsnLZSofkrqGH6a61iGqiTpPB9SLzG2UjJqN9SX5PIo5mZ55ODmWYrgZJrrecUNScl8skFQ6JudZxKlh4T4mixOCTIykWWYxITVSm6rK23VdNEnu3sNLQHLSrOaUm9s2jKlNPkpb1I5pKylDU/l2CnuBLd1At3rcMqFdIEeE8imUyUEFbc/58TBhFjrqR0327+/BUgSR63jdGmxxdONAU+IeDHghEMhSuGnblyEidGUgM0hFalx82iSXmWiBI5RNiNB0q7sTEKdTlfVoiXsq6KKICIpBdStc+qaxq9ni0pu3zru4ydEzaNCprxtUe7+JLDU7XIzaSX6+4ws6W91SbpSuCLEcsupuGlMiAPSaD8x1LiHbsyQadQ1VMnnUsU6qPiCGupaT+mzQha4xhLEjaAGMXagL2hQkZlEokGnNoekMo6p8QQ0t3jNRy24W2St9aTezlQR2OKxAwyxCp7I1eVRP4rr1gVJyKc5pzZVGMvMzbcdVyH0ymh4iJkZOWWxIaZs6LbWSLm6JG11AFcIxWqqddqbUkcbM11aPrNydUnum0CL31aTw3xglfM7sJTubOEXmvpMm3saPVFslJy6pjoUNIrKxFVGrqr2IyYq5bxuJxYN6II6SRi78WgWA/rM8Vzhe7GkMutHaGC0u2hIYpfkiyqb9Juz6Qvsv6ZkCG0AALgB/4WwAY0AS7AIUFixAQGOWbFGBitYIbAQWUuwFFJYIbCAWR2wBitcWFmwFCsAAAABWLn3vAAA"},function(e,t){e.exports="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' width='10' height='10'%3E%3Cpolyline points='1.5 3.5 5 7 8.5 3.5' stroke='currentColor' stroke-width='2' fill='transparent' stroke-linecap='round' stroke-linejoin='round' opacity='.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var i,o=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o)?e:(i=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:r+o.replace(/^\.\//,""),"url("+JSON.stringify(i)+")")}))}},function(e,t){!function(e){"use strict";var t=["sanitize","whiteList","sanitizeFn"],n=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],r={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},i=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,o=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function a(t,r){var a=t.nodeName.toLowerCase();if(-1!==e.inArray(a,r))return-1===e.inArray(a,n)||Boolean(t.nodeValue.match(i)||t.nodeValue.match(o));for(var s=e(r).filter((function(e,t){return t instanceof RegExp})),l=0,c=s.length;l<c;l++)if(a.match(s[l]))return!0;return!1}function s(t,n,r){if(0===t.length)return t;if(r&&"function"==typeof r)return r(t);if(!document.implementation||!document.implementation.createHTMLDocument)return t;var i=document.implementation.createHTMLDocument("sanitization");i.body.innerHTML=t;for(var o=e.map(n,(function(e,t){return t})),s=e(i.body).find("*"),l=0,c=s.length;l<c;l++){var u=s[l],d=u.nodeName.toLowerCase();if(-1!==e.inArray(d,o))for(var p=e.map(u.attributes,(function(e){return e})),f=[].concat(n["*"]||[],n[d]||[]),h=0,g=p.length;h<g;h++)a(p[h],f)||u.removeAttribute(p[h].nodeName);else u.parentNode.removeChild(u)}return i.body.innerHTML}var l=function(e,t){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",e,t)};l.VERSION="3.4.1",l.TRANSITION_DURATION=150,l.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:r},l.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var a=i[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},l.prototype.getDefaults=function(){return l.DEFAULTS},l.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=s(n.template,n.whiteList,n.sanitizeFn)),n},l.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},l.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},l.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},l.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},l.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,s=/\s?auto?\s?/i,c=s.test(a);c&&(a=a.replace(s,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var u=this.getPosition(),d=i[0].offsetWidth,p=i[0].offsetHeight;if(c){var f=a,h=this.getPosition(this.$viewport);a="bottom"==a&&u.bottom+p>h.bottom?"top":"top"==a&&u.top-p<h.top?"bottom":"right"==a&&u.right+d>h.width?"left":"left"==a&&u.left-d<h.left?"right":a,i.removeClass(f).addClass(a)}var g=this.getCalculatedOffset(a,u,d,p);this.applyPlacement(g,a);var m=function(){var e=r.hoverState;r.$element.trigger("shown.bs."+r.type),r.hoverState=null,"out"==e&&r.leave(r)};e.support.transition&&this.$tip.hasClass("fade")?i.one("bsTransitionEnd",m).emulateTransitionEnd(l.TRANSITION_DURATION):m()}},l.prototype.applyPlacement=function(t,n){var r=this.tip(),i=r[0].offsetWidth,o=r[0].offsetHeight,a=parseInt(r.css("margin-top"),10),s=parseInt(r.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(s)&&(s=0),t.top+=a,t.left+=s,e.offset.setOffset(r[0],e.extend({using:function(e){r.css({top:Math.round(e.top),left:Math.round(e.left)})}},t),0),r.addClass("in");var l=r[0].offsetWidth,c=r[0].offsetHeight;"top"==n&&c!=o&&(t.top=t.top+o-c);var u=this.getViewportAdjustedDelta(n,t,l,c);u.left?t.left+=u.left:t.top+=u.top;var d=/top|bottom/.test(n),p=d?2*u.left-i+l:2*u.top-o+c,f=d?"offsetWidth":"offsetHeight";r.offset(t),this.replaceArrow(p,r[0][f],d)},l.prototype.replaceArrow=function(e,t,n){this.arrow().css(n?"left":"top",50*(1-e/t)+"%").css(n?"top":"left","")},l.prototype.setContent=function(){var e=this.tip(),t=this.getTitle();this.options.html?(this.options.sanitize&&(t=s(t,this.options.whiteList,this.options.sanitizeFn)),e.find(".tooltip-inner").html(t)):e.find(".tooltip-inner").text(t),e.removeClass("fade in top bottom left right")},l.prototype.hide=function(t){var n=this,r=e(this.$tip),i=e.Event("hide.bs."+this.type);function o(){"in"!=n.hoverState&&r.detach(),n.$element&&n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),t&&t()}if(this.$element.trigger(i),!i.isDefaultPrevented())return r.removeClass("in"),e.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",o).emulateTransitionEnd(l.TRANSITION_DURATION):o(),this.hoverState=null,this},l.prototype.fixTitle=function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},l.prototype.hasContent=function(){return this.getTitle()},l.prototype.getPosition=function(t){var n=(t=t||this.$element)[0],r="BODY"==n.tagName,i=n.getBoundingClientRect();null==i.width&&(i=e.extend({},i,{width:i.right-i.left,height:i.bottom-i.top}));var o=window.SVGElement&&n instanceof window.SVGElement,a=r?{top:0,left:0}:o?null:t.offset(),s={scroll:r?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},l=r?{width:e(window).width(),height:e(window).height()}:null;return e.extend({},i,s,l,a)},l.prototype.getCalculatedOffset=function(e,t,n,r){return"bottom"==e?{top:t.top+t.height,left:t.left+t.width/2-n/2}:"top"==e?{top:t.top-r,left:t.left+t.width/2-n/2}:"left"==e?{top:t.top+t.height/2-r/2,left:t.left-n}:{top:t.top+t.height/2-r/2,left:t.left+t.width}},l.prototype.getViewportAdjustedDelta=function(e,t,n,r){var i={top:0,left:0};if(!this.$viewport)return i;var o=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(e)){var s=t.top-o-a.scroll,l=t.top+o-a.scroll+r;s<a.top?i.top=a.top-s:l>a.top+a.height&&(i.top=a.top+a.height-l)}else{var c=t.left-o,u=t.left+o+n;c<a.left?i.left=a.left-c:u>a.right&&(i.left=a.left+a.width-u)}return i},l.prototype.getTitle=function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},l.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},l.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},l.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},l.prototype.enable=function(){this.enabled=!0},l.prototype.disable=function(){this.enabled=!1},l.prototype.toggleEnabled=function(){this.enabled=!this.enabled},l.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},l.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},l.prototype.sanitizeHtml=function(e){return s(e,this.options.whiteList,this.options.sanitizeFn)};var c=e.fn.tooltip;e.fn.tooltip=function(t){return this.each((function(){var n=e(this),r=n.data("bs.tooltip"),i="object"==typeof t&&t;!r&&/destroy|hide/.test(t)||(r||n.data("bs.tooltip",r=new l(this,i)),"string"==typeof t&&r[t]())}))},e.fn.tooltip.Constructor=l,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=c,this}}(jQuery)},function(e,t){!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),(t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype)).constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=e.fn.popover;e.fn.popover=function(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))},e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(jQuery)},function(e,t,n){"use strict";n.r(t);var r=n(133);for(var i in r)["default","core"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);var o=n(114);n.d(t,"watchDigests",(function(){return o.b})),n.d(t,"getLocals",(function(){return o.a}));var a=n(55);n.d(t,"getNg1ViewConfigFactory",(function(){return a.b})),n.d(t,"ng1ViewsBuilder",(function(){return a.c})),n.d(t,"Ng1ViewConfig",(function(){return a.a}));var s=n(112);n.d(t,"StateProvider",(function(){return s.a}));var l=n(113);n.d(t,"UrlRouterProvider",(function(){return l.a}));n(220),n(221),n(222),n(223),n(224);var c=n(2);for(var i in n.d(t,"core",(function(){return c})),c)["default","core","watchDigests","getLocals","getNg1ViewConfigFactory","ng1ViewsBuilder","Ng1ViewConfig","StateProvider","UrlRouterProvider"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return c[e]}))}(i);t.default="ui.router"},function(e,t){},function(e,t,n){"use strict";var r,i,o,a=n(12),s=n(2);function l(e){var t=e.match(/^\s*({[^}]*})\s*$/);t&&(e="("+t[1]+")");var n=e.replace(/\n/g," ").match(/^\s*([^(]*?)\s*(\((.*)\))?\s*$/);if(!n||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1]||null,paramExpr:n[3]||null}}function c(e){var t=e.parent().inheritedData("$uiView"),n=Object(s.parse)("$cfg.path")(t);return n?Object(s.tail)(n).state.name:void 0}function u(e,t,n){var r=n.uiState||e.current.name,i=Object(s.extend)(function(e,t){return{relative:c(e)||t.$current,inherit:!0,source:"sref"}}(t,e),n.uiStateOpts||{}),o=e.href(r,n.uiStateParams,i);return{uiState:r,uiStateParams:n.uiStateParams,uiStateOpts:i,href:o}}function d(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function p(e,t,n,r,i){return function(o){var a=o.which||o.button,s=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||o.altKey||e.attr("target"))){var l=n((function(){e.attr("disabled")||t.go(s.uiState,s.uiStateParams,s.uiStateOpts)}));o.preventDefault();var c=r.isAnchor&&!s.href?1:0;o.preventDefault=function(){c--<=0&&n.cancel(l)}}}}function f(e,t,n,r){var i;r&&(i=r.events),Object(s.isArray)(i)||(i=["click"]);for(var o=e.on?"on":"bind",a=0,l=i;a<l.length;a++){var c=l[a];e[o](c,n)}t.$on("$destroy",(function(){for(var t=e.off?"off":"unbind",r=0,o=i;r<o.length;r++){var a=o[r];e[t](a,n)}}))}r=["$uiRouter","$timeout",function(e,t){var n=e.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var c=d(i),h=a[1]||a[0],g=null,m={},v=function(){return u(n,i,m)},b=l(o.uiSref);function y(){var e=v();g&&g(),h&&(g=h.$$addStateInfo(e.uiState,e.uiStateParams)),null!=e.href&&o.$set(c.attr,e.href)}if(m.uiState=b.state,m.uiStateOpts=o.uiSrefOpts?r.$eval(o.uiSrefOpts):{},b.paramExpr&&(r.$watch(b.paramExpr,(function(e){m.uiStateParams=Object(s.extend)({},e),y()}),!0),m.uiStateParams=Object(s.extend)({},r.$eval(b.paramExpr))),y(),r.$on("$destroy",e.stateRegistry.onStatesChanged(y)),r.$on("$destroy",e.transitionService.onSuccess({},y)),c.clickable){var x=p(i,n,t,c,v);f(i,r,x,m.uiStateOpts)}}}}],i=["$uiRouter","$timeout",function(e,t){var n=e.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var l,c=d(i),h=a[1]||a[0],g=null,m={},v=function(){return u(n,i,m)},b=["uiState","uiStateParams","uiStateOpts"],y=b.reduce((function(e,t){return e[t]=s.noop,e}),{});function x(){var e=v();g&&g(),h&&(g=h.$$addStateInfo(e.uiState,e.uiStateParams)),null!=e.href&&o.$set(c.attr,e.href)}b.forEach((function(e){m[e]=o[e]?r.$eval(o[e]):null,o.$observe(e,(function(t){y[e](),y[e]=r.$watch(t,(function(t){m[e]=t,x()}),!0)}))})),x(),r.$on("$destroy",e.stateRegistry.onStatesChanged(x)),r.$on("$destroy",e.transitionService.onSuccess({},x)),c.clickable&&(l=p(i,n,t,c,v),f(i,r,l,m.uiStateOpts))}}}],o=["$state","$stateParams","$interpolate","$uiRouter",function(e,t,n,r){return{restrict:"A",controller:["$scope","$element","$attrs",function(t,i,o){var a,u,d,p,f,h=[];a=n(o.uiSrefActiveEq||"",!1)(t);try{u=t.$eval(o.uiSrefActive)}catch(e){}function g(e){e.promise.then(y,s.noop)}function m(){v(u)}function v(e){Object(s.isObject)(e)&&(h=[],Object(s.forEach)(e,(function(e,n){var r=function(e,n){var r=l(e);b(r.state,t.$eval(r.paramExpr),n)};Object(s.isString)(e)?r(e,n):Object(s.isArray)(e)&&Object(s.forEach)(e,(function(e){r(e,n)}))})))}function b(t,n,r){var o={state:e.get(t,c(i))||{name:t},params:n,activeClass:r};return h.push(o),function(){Object(s.removeFrom)(h)(o)}}function y(){var n=function(e){return e.split(/\s/).filter(s.identity)},r=function(e){return e.map((function(e){return e.activeClass})).map(n).reduce(s.unnestR,[])},o=r(h).concat(n(a)).reduce(s.uniqR,[]),l=r(h.filter((function(t){return e.includes(t.state.name,t.params)}))),c=!!h.filter((function(t){return e.is(t.state.name,t.params)})).length?n(a):[],u=l.concat(c).reduce(s.uniqR,[]),d=o.filter((function(e){return!Object(s.inArray)(u,e)}));t.$evalAsync((function(){u.forEach((function(e){return i.addClass(e)})),d.forEach((function(e){return i.removeClass(e)}))}))}v(u=u||n(o.uiSrefActive||"",!1)(t)),this.$$addStateInfo=function(e,t){if(!(Object(s.isObject)(u)&&h.length>0)){var n=b(e,t,u);return y(),n}},t.$on("$destroy",(d=r.stateRegistry.onStatesChanged(m),p=r.transitionService.onStart({},g),f=t.$on("$stateChangeSuccess",y),function(){d(),p(),f()})),r.globals.transition&&g(r.globals.transition),y()}]}}],a.a.module("ui.router.state").directive("uiSref",r).directive("uiSrefActive",o).directive("uiSrefActiveEq",o).directive("uiState",i)},function(e,t,n){"use strict";var r=n(12);function i(e){var t=function(t,n,r){return e.is(t,n,r)};return t.$stateful=!0,t}function o(e){var t=function(t,n,r){return e.includes(t,n,r)};return t.$stateful=!0,t}i.$inject=["$state"],o.$inject=["$state"],r.a.module("ui.router.state").filter("isState",i).filter("includedByState",o)},function(e,t,n){"use strict";var r,i=n(2),o=n(12),a=n(114),s=n(55);function l(e,t,n,r,s){var l=Object(i.parse)("viewDecl.controllerAs"),c=Object(i.parse)("viewDecl.resolveAs");return{restrict:"ECA",priority:-400,compile:function(r){var u=r.html();return r.empty(),function(r,p){var f=p.data("$uiView");if(!f)return p.html(u),void e(p.contents())(r);var h=f.$cfg||{viewDecl:{},getTemplate:i.noop},g=h.path&&new i.ResolveContext(h.path);p.html(h.getTemplate(p,g)||u),i.trace.traceUIViewFill(f.$uiView,p.html());var m=e(p.contents()),v=h.controller,b=l(h),y=c(h),x=g&&Object(a.a)(g);if(r[y]=x,v){var w=t(v,Object(i.extend)({},x,{$scope:r,$element:p}));b&&(r[b]=w,r[b][y]=x),p.data("$ngControllerController",w),p.children().data("$ngControllerController",w),d(s,n,w,r,h)}if(Object(i.isString)(h.component))var k=Object(i.kebobString)(h.component),A=new RegExp("^(x-|data-)?"+k+"$","i"),E=r.$watch((function(){var e=[].slice.call(p[0].children).filter((function(e){return e&&e.tagName&&A.exec(e.tagName)}));return e&&o.a.element(e).data("$"+h.component+"Controller")}),(function(e){e&&(d(s,n,e,r,h),E())}));m(r)}}}}r=["$view","$animate","$uiViewScroll","$interpolate","$q",function(e,t,n,r,a){var l={$cfg:{viewDecl:{$context:e._pluginapi._rootViewContext()}},$uiView:{}},c={count:0,restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(u,d,p){return function(u,d,f){var h,g,m,v,b=f.onload||"",y=f.autoscroll,x={enter:function(e,n,r){o.a.version.minor>2?t.enter(e,null,n).then(r):t.enter(e,null,n,r)},leave:function(e,n){o.a.version.minor>2?t.leave(e).then(n):t.leave(e,n)}},w=d.inheritedData("$uiView")||l,k=r(f.uiView||f.name||"")(u)||"$default",A={$type:"ng1",id:c.count++,name:k,fqn:w.$uiView.fqn?w.$uiView.fqn+"."+k:k,config:null,configUpdated:function(e){if(e&&!(e instanceof s.a))return;if(t=v,n=e,t===n)return;var t,n;i.trace.traceUIViewConfigUpdated(A,e&&e.viewDecl&&e.viewDecl.$context),v=e,S(e)},get creationContext(){var e=Object(i.parse)("$cfg.viewDecl.$context")(w),t=Object(i.parse)("$uiView.creationContext")(w);return e||t}};i.trace.traceUIViewEvent("Linking",A),d.data("$uiView",{$uiView:A}),S();var E=e.registerUIView(A);function S(e){var t=u.$new(),r=a.defer(),o=a.defer(),s={$cfg:e,$uiView:A},l={$animEnter:r.promise,$animLeave:o.promise,$$animLeave:o};t.$emit("$viewContentLoading",k);var c=p(t,(function(e){e.data("$uiViewAnim",l),e.data("$uiView",s),x.enter(e,d,(function(){r.resolve(),m&&m.$emit("$viewContentAnimationEnded"),(Object(i.isDefined)(y)&&!y||u.$eval(y))&&n(e)})),function(){if(h&&(i.trace.traceUIViewEvent("Removing (previous) el",h.data("$uiView")),h.remove(),h=null),m&&(i.trace.traceUIViewEvent("Destroying scope",A),m.$destroy(),m=null),g){var e=g.data("$uiViewAnim");i.trace.traceUIViewEvent("Animate out",e),x.leave(g,(function(){e.$$animLeave.resolve(),h=null})),h=g,g=null}}()}));g=c,(m=t).$emit("$viewContentLoaded",e||v),m.$eval(b)}u.$on("$destroy",(function(){i.trace.traceUIViewEvent("Destroying/Unregistering",A),E()}))}}};return c}],l.$inject=["$compile","$controller","$transitions","$view","$q"];var c="function"==typeof o.a.module("ui.router").component,u=0;function d(e,t,n,r,o){!Object(i.isFunction)(n.$onInit)||(o.viewDecl.component||o.viewDecl.componentProvider)&&c||n.$onInit();var a=Object(i.tail)(o.path).state.self,s={bind:n};if(Object(i.isFunction)(n.uiOnParamsChanged)){var l=new i.ResolveContext(o.path).getResolvable("$transition$").data;r.$on("$destroy",t.onSuccess({},(function(e){if(e!==l&&-1===e.exiting().indexOf(a)){var t=e.params("to"),r=e.params("from"),o=function(e){return e.paramSchema},s=e.treeChanges("to").map(o).reduce(i.unnestR,[]),c=e.treeChanges("from").map(o).reduce(i.unnestR,[]),u=s.filter((function(e){var n=c.indexOf(e);return-1===n||!c[n].type.equals(t[e.id],r[e.id])}));if(u.length){var d=u.map((function(e){return e.id})),p=Object(i.filter)(t,(function(e,t){return-1!==d.indexOf(t)}));n.uiOnParamsChanged(p,e)}}}),s))}if(Object(i.isFunction)(n.uiCanExit)){var d=u++,p=function(e){return!!e&&(e._uiCanExitIds&&!0===e._uiCanExitIds[d]||p(e.redirectedFrom()))},f={exiting:a.name};r.$on("$destroy",t.onBefore(f,(function(t){var r,i=t._uiCanExitIds=t._uiCanExitIds||{};return p(t)||(r=e.when(n.uiCanExit(t))).then((function(e){return i[d]=!1!==e})),r}),s))}}o.a.module("ui.router.state").directive("uiView",r),o.a.module("ui.router.state").directive("uiView",l)},function(e,t,n){"use strict";n(12).a.module("ui.router.state").provider("$uiViewScroll",(function(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n((function(){e[0].scrollIntoView()}),0,!1)}}]}))},function(e,t,n){n(226),e.exports="ngRoute"},function(e,t){ /** * @license AngularJS v1.8.2 * (c) 2010-2020 Google LLC. http://angularjs.org * License: MIT */ -!function(e,t){"use strict";function n(e,t){var n=[],r=e.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,(function(e,t,r,i){var o="?"===i||"*?"===i,a="*"===i||"*?"===i;return n.push({name:r,optional:o}),t=t||"",(o?"(?:"+t:t+"(?:")+(a?"(.+?)":"([^/]+)")+(o?"?)?":")")})).replace(/([/$*])/g,"\\$1");return t.ignoreTrailingSlashes&&(r=r.replace(/\/+$/,"")+"/*"),{keys:n,regexp:new RegExp("^"+r+"(?:[?#]|$)",t.caseInsensitiveMatch?"i":"")}}var r,i,o,a,s,l=t.module("ngRoute",[]).info({angularVersion:"1.8.2"}).provider("$route",(function(){function e(e,n){return t.extend(Object.create(e),n)}r=t.isArray,i=t.isObject,o=t.isDefined,a=t.noop;var l={};this.when=function(e,o){var a=function(e,t){if(r(e)){t=t||[];for(var n=0,o=e.length;n<o;n++)t[n]=e[n]}else if(i(e))for(var a in t=t||{},e)"$"===a.charAt(0)&&"$"===a.charAt(1)||(t[a]=e[a]);return t||e}(o);if(t.isUndefined(a.reloadOnUrl)&&(a.reloadOnUrl=!0),t.isUndefined(a.reloadOnSearch)&&(a.reloadOnSearch=!0),t.isUndefined(a.caseInsensitiveMatch)&&(a.caseInsensitiveMatch=this.caseInsensitiveMatch),l[e]=t.extend(a,{originalPath:e},e&&n(e,a)),e){var s="/"===e[e.length-1]?e.substr(0,e.length-1):e+"/";l[s]=t.extend({originalPath:e,redirectTo:e},n(s,a))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(e){return"string"==typeof e&&(e={redirectTo:e}),this.when(null,e),this},s=!0,this.eagerInstantiationEnabled=function(e){return o(e)?(s=e,this):s},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","$browser",function(n,r,i,o,s,u,d,p){var f,h,g=!1,m={routes:l,reload:function(){g=!0;var e={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0,g=!1}};n.$evalAsync((function(){v(e),e.defaultPrevented||b()}))},updateParams:function(e){if(!this.current||!this.current.$$route)throw c("norout","Tried updating route with no current route");e=t.extend({},this.current.params,e),r.path(k(this.current.$$route.originalPath,e)),r.search(e)}};return n.$on("$locationChangeStart",v),n.$on("$locationChangeSuccess",b),m;function v(i){var o,a,s,c,u=m.current;t.forEach(l,(function(n,i){!a&&(o=function(e,t){var n=t.keys,r={};if(!t.regexp)return null;var i=t.regexp.exec(e);if(!i)return null;for(var o=1,a=i.length;o<a;++o){var s=n[o-1],l=i[o];s&&l&&(r[s.name]=l)}return r}(r.path(),n))&&((a=e(n,{params:t.extend({},r.search(),o),pathParams:o})).$$route=n)})),f=a||l.null&&e(l.null,{params:{},pathParams:{}}),s=f,c=u,(h=!g&&s&&c&&s.$$route===c.$$route&&(!s.reloadOnUrl||!s.reloadOnSearch&&t.equals(s.pathParams,c.pathParams)))||!u&&!f||n.$broadcast("$routeChangeStart",f,u).defaultPrevented&&i&&i.preventDefault()}function b(){var e=m.current,r=f;if(h)e.params=r.params,t.copy(e.params,i),n.$broadcast("$routeUpdate",e);else if(r||e){g=!1,m.current=r;var s=o.resolve(r);p.$$incOutstandingRequestCount("$route"),s.then(y).then(x).then((function(o){return o&&s.then(w).then((function(o){r===m.current&&(r&&(r.locals=o,t.copy(r.params,i)),n.$broadcast("$routeChangeSuccess",r,e))}))})).catch((function(t){r===m.current&&n.$broadcast("$routeChangeError",r,e,t)})).finally((function(){p.$$completeOutstandingRequest(a,"$route")}))}}function y(e){var n={route:e,hasRedirection:!1};if(e)if(e.redirectTo)if(t.isString(e.redirectTo))n.path=k(e.redirectTo,e.params),n.search=e.params,n.hasRedirection=!0;else{var i=r.path(),a=r.search(),l=e.redirectTo(e.pathParams,i,a);t.isDefined(l)&&(n.url=l,n.hasRedirection=!0)}else if(e.resolveRedirectTo)return o.resolve(s.invoke(e.resolveRedirectTo)).then((function(e){return t.isDefined(e)&&(n.url=e,n.hasRedirection=!0),n}));return n}function x(e){var t=!0;if(e.route!==m.current)t=!1;else if(e.hasRedirection){var n=r.url(),i=e.url;i?r.url(i).replace():i=r.path(e.path).search(e.search).replace().url(),i!==n&&(t=!1)}return t}function w(e){if(e){var n=t.extend({},e.resolve);t.forEach(n,(function(e,r){n[r]=t.isString(e)?s.get(e):s.invoke(e,null,null,r)}));var r=function(e){var n,r;t.isDefined(n=e.template)?t.isFunction(n)&&(n=n(e.params)):t.isDefined(r=e.templateUrl)&&(t.isFunction(r)&&(r=r(e.params)),t.isDefined(r)&&(e.loadedTemplateUrl=d.valueOf(r),n=u(r)));return n}(e);return t.isDefined(r)&&(n.$template=r),o.all(n)}}function k(e,n){var r=[];return t.forEach((e||"").split(":"),(function(e,t){if(0===t)r.push(e);else{var i=e.match(/(\w+)(?:[?*])?(.*)/),o=i[1];r.push(n[o]),r.push(i[2]||""),delete n[o]}})),r.join("")}}]})).run(u),c=t.$$minErr("ngRoute");function u(e){s&&e.get("$route")}function d(e,n,r){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(i,o,a,s,l){var c,u,d,p=a.autoscroll,f=a.onload||"";function h(){d&&(r.cancel(d),d=null),c&&(c.$destroy(),c=null),u&&((d=r.leave(u)).done((function(e){!1!==e&&(d=null)})),u=null)}function g(){var a=e.current&&e.current.locals,s=a&&a.$template;if(t.isDefined(s)){var d=i.$new(),g=e.current,m=l(d,(function(e){r.enter(e,null,u||o).done((function(e){!1===e||!t.isDefined(p)||p&&!i.$eval(p)||n()})),h()}));u=m,(c=g.scope=d).$emit("$viewContentLoaded"),c.$eval(f)}else h()}i.$on("$routeChangeSuccess",g),g()}}}function p(e,t,n){return{restrict:"ECA",priority:-400,link:function(r,i){var o=n.current,a=o.locals;i.html(a.$template);var s=e(i.contents());if(o.controller){a.$scope=r;var l=t(o.controller,a);o.controllerAs&&(r[o.controllerAs]=l),i.data("$ngControllerController",l),i.children().data("$ngControllerController",l)}r[o.resolveAs||"$resolve"]=a,s(r)}}}u.$inject=["$injector"],l.provider("$routeParams",(function(){this.$get=function(){return{}}})),l.directive("ngView",d),l.directive("ngView",p),d.$inject=["$route","$anchorScroll","$animate"],p.$inject=["$compile","$controller","$route"]}(window,window.angular)},function(e,t,n){"use strict";var r=n(228);function i(e,t,n){return{restrict:"AE",replace:!0,scope:{opts:"=",marked:"=",compile:"@",src:"="},link:function(i,o,a){function s(t){t=r(String(t||"")),o.html(e(t,i.opts||null)),i.$eval(a.compile)&&n(o.contents())(i.$parent)}a.marked?(s(i.marked),i.$watch("marked",s)):a.src?i.$watch("src",(function(e){t(e,!0).then((function(e){s(e)}),(function(){s(""),i.$emit("$markedIncludeError",a.src)}))})):s(o.text())}}}i.$inject=["marked","$templateRequest","$compile"],e.exports=angular.module("hc.marked",[]).directive("marked",i).provider("marked",(function(){var e=this;e.setRenderer=function(e){this.renderer=e},e.setOptions=function(e){this.defaults=e},e.$get=["$log","$window",function(t,r){var i;try{i=n(229)}catch(e){i=r.marked||marked}if(!angular.isUndefined(i)){var o=new i.Renderer;if(e.renderer)for(var a=Object.keys(e.renderer),s=a.length;s--;)o[a[s]]=e.renderer[a[s]];var l=o.code.bind(o);o.code=function(e,t,n){return u(l(e,t,n))};var c=o.codespan.bind(o);return o.codespan=function(e){return u(c(e))},e.defaults=e.defaults||{},e.defaults.renderer=o,i.setOptions(e.defaults),i}function u(e){return"<span ng-non-bindable>"+e+"</span>"}t.error("angular-marked Error: marked not loaded. See installation instructions.")}]})).name},function(e,t){e.exports=function(e){if(!e)return e;var t,n=e.replace(/\t/g," ").split(/\r?\n/),r=null,i=n.length;for(t=0;t<i;t++){var o=n[t],a=o.match(/^(\s*)/)[0].length;a!==o.length&&(r=a<r||null===r?a:r)}if(null!==r&&r>0)for(t=0;t<i;t++)n[t]=n[t].substr(r);return n.join("\n")}},function(e,t,n){(function(t){!function(t){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:g,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:g,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:g,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n?(?!hr|heading|lheading| {0,3}>|tag)[^\n]+)+)/,text:/^[^\n]+/};function r(e){this.tokens=[],this.tokens.links={},this.options=e||v.defaults,this.rules=n.normal,this.options.gfm&&(this.options.tables?this.rules=n.tables:this.rules=n.gfm)}n._label=/(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"|[^"]|"[^"\n]*")*"|'\n?(?:[^'\n]+\n?)*'|\([^()]*\))/,n.def=d(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d+\.)/,n.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,n.item=d(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=d(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b",n.html=d(n.html).replace("comment",/<!--[\s\S]*?-->/).replace("closed",/<(tag)[\s\S]+?<\/\1>/).replace("closing",/<tag(?:"[^"]*"|'[^']*'|\s[^'"\/>\s]*)*?\/?>/).replace(/tag/g,n._tag).getRegex(),n.paragraph=d(n.paragraph).replace("hr",n.hr).replace("heading",n.heading).replace("lheading",n.lheading).replace("tag","<"+n._tag).getRegex(),n.blockquote=d(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=m({},n),n.gfm=m({},n.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),n.gfm.paragraph=d(n.paragraph).replace("(?!","(?!"+n.gfm.fences.source.replace("\\1","\\2")+"|"+n.list.source.replace("\\1","\\3")+"|").getRegex(),n.tables=m({},n.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),r.rules=n,r.lex=function(e,t){return new r(t).lex(e)},r.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},r.prototype.token=function(e,t){var r,i,o,a,s,l,c,u,d,p,f;for(e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(t&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),l={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},u=0;u<l.align.length;u++)/^ *-+: *$/.test(l.align[u])?l.align[u]="right":/^ *:-+: *$/.test(l.align[u])?l.align[u]="center":/^ *:-+ *$/.test(l.align[u])?l.align[u]="left":l.align[u]=null;for(u=0;u<l.cells.length;u++)l.cells[u]=l.cells[u].split(/ *\| */);this.tokens.push(l)}else if(o=this.rules.hr.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"hr"});else if(o=this.rules.blockquote.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"blockquote_start"}),o=o[0].replace(/^ *> ?/gm,""),this.token(o,t),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),f=(a=o[2]).length>1,this.tokens.push({type:"list_start",ordered:f,start:f?+a:""}),r=!1,p=(o=o[0].match(this.rules.item)).length,u=0;u<p;u++)c=(l=o[u]).length,~(l=l.replace(/^ *([*+-]|\d+\.) +/,"")).indexOf("\n ")&&(c-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,""):l.replace(new RegExp("^ {1,"+c+"}","gm"),"")),this.options.smartLists&&u!==p-1&&(a===(s=n.bullet.exec(o[u+1])[0])||a.length>1&&s.length>1||(e=o.slice(u+1).join("\n")+e,u=p-1)),i=r||/\n\n(?!\s*$)/.test(l),u!==p-1&&(r="\n"===l.charAt(l.length-1),i||(i=r)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(l,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),o[3]&&(o[3]=o[3].substring(1,o[3].length-1)),d=o[1].toLowerCase(),this.tokens.links[d]||(this.tokens.links[d]={href:o[2],title:o[3]});else if(t&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),l={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u<l.align.length;u++)/^ *-+: *$/.test(l.align[u])?l.align[u]="right":/^ *:-+: *$/.test(l.align[u])?l.align[u]="center":/^ *:-+ *$/.test(l.align[u])?l.align[u]="left":l.align[u]=null;for(u=0;u<l.cells.length;u++)l.cells[u]=l.cells[u].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(l)}else if(o=this.rules.lheading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:"="===o[2]?1:2,text:o[1]});else if(t&&(o=this.rules.paragraph.exec(e)))e=e.substring(o[0].length),this.tokens.push({type:"paragraph",text:"\n"===o[1].charAt(o[1].length-1)?o[1].slice(0,-1):o[1]});else if(o=this.rules.text.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"text",text:o[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var i={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:g,tag:/^<!--[\s\S]*?-->|^<\/?[a-zA-Z0-9\-]+(?:"[^"]*"|'[^']*'|\s[^<'">\/\s]*)*?\/?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:g,text:/^[\s\S]+?(?=[\\<!\[`*]|\b_| {2,}\n|$)/};function o(e,t){if(this.options=t||v.defaults,this.links=e,this.rules=i.normal,this.renderer=this.options.renderer||new a,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=i.breaks:this.rules=i.gfm:this.options.pedantic&&(this.rules=i.pedantic)}function a(e){this.options=e||{}}function s(){}function l(e){this.tokens=[],this.token=null,this.options=e||v.defaults,this.options.renderer=this.options.renderer||new a,this.renderer=this.options.renderer,this.renderer.options=this.options}function c(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function u(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}function d(e,t){return e=e.source,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function p(e,t){return f[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?f[" "+e]=e+"/":f[" "+e]=e.replace(/[^/]*$/,"")),e=f[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}i._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,i._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,i.autolink=d(i.autolink).replace("scheme",i._scheme).replace("email",i._email).getRegex(),i._inside=/(?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]]|\](?=[^\[]*\]))*/,i._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,i.link=d(i.link).replace("inside",i._inside).replace("href",i._href).getRegex(),i.reflink=d(i.reflink).replace("inside",i._inside).getRegex(),i.normal=m({},i),i.pedantic=m({},i.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),i.gfm=m({},i.normal,{escape:d(i.escape).replace("])","~|])").getRegex(),url:d(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",i._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:d(i.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),i.breaks=m({},i.gfm,{br:d(i.br).replace("{2,}","*").getRegex(),text:d(i.gfm.text).replace("{2,}","*").getRegex()}),o.rules=i,o.output=function(e,t,n){return new o(t,n).output(e)},o.prototype.output=function(e){for(var t,n,r,i,o="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),o+=i[1];else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),r="@"===i[2]?"mailto:"+(n=c(this.mangle(i[1]))):n=c(i[1]),o+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(i[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(i[0])&&(this.inLink=!1),e=e.substring(i[0].length),o+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):c(i[0]):i[0];else if(i=this.rules.link.exec(e))e=e.substring(i[0].length),this.inLink=!0,o+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){o+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,o+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),o+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),o+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),o+=this.renderer.codespan(c(i[2].trim(),!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),o+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),o+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),o+=this.renderer.text(c(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else i[0]=this.rules._backpedal.exec(i[0])[0],e=e.substring(i[0].length),"@"===i[2]?r="mailto:"+(n=c(i[0])):(n=c(i[0]),r="www."===i[1]?"http://"+n:n),o+=this.renderer.link(r,null,n);return o},o.prototype.outputLink=function(e,t){var n=c(t.href),r=t.title?c(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,c(e[1]))},o.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},o.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;i<r;i++)t=e.charCodeAt(i),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},a.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'<pre><code class="'+this.options.langPrefix+c(t,!0)+'">'+(n?e:c(e,!0))+"\n</code></pre>\n":"<pre><code>"+(n?e:c(e,!0))+"\n</code></pre>"},a.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},a.prototype.html=function(e){return e},a.prototype.heading=function(e,t,n){return"<h"+t+' id="'+this.options.headerPrefix+n.toLowerCase().replace(/[^\w]+/g,"-")+'">'+e+"</h"+t+">\n"},a.prototype.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},a.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+r+">\n"},a.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},a.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},a.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},a.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},a.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},a.prototype.strong=function(e){return"<strong>"+e+"</strong>"},a.prototype.em=function(e){return"<em>"+e+"</em>"},a.prototype.codespan=function(e){return"<code>"+e+"</code>"},a.prototype.br=function(){return this.options.xhtml?"<br/>":"<br>"},a.prototype.del=function(e){return"<del>"+e+"</del>"},a.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(u(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!h.test(e)&&(e=p(this.options.baseUrl,e));var i='<a href="'+e+'"';return t&&(i+=' title="'+t+'"'),i+=">"+n+"</a>"},a.prototype.image=function(e,t,n){this.options.baseUrl&&!h.test(e)&&(e=p(this.options.baseUrl,e));var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"},a.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return""+n},s.prototype.br=function(){return""},l.parse=function(e,t){return new l(t).parse(e)},l.prototype.parse=function(e){this.inline=new o(e.links,this.options),this.inlineText=new o(e.links,m({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},l.prototype.next=function(){return this.token=this.tokens.pop()},l.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},l.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},l.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,u(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i="",o="";for(n="",e=0;e<this.token.header.length;e++)n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(i+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n="",r=0;r<t.length;r++)n+=this.renderer.tablecell(this.inline.output(t[r]),{header:!1,align:this.token.align[r]});o+=this.renderer.tablerow(n)}return this.renderer.table(i,o);case"blockquote_start":for(o="";"blockquote_end"!==this.next().type;)o+=this.tok();return this.renderer.blockquote(o);case"list_start":o="";for(var a=this.token.ordered,s=this.token.start;"list_end"!==this.next().type;)o+=this.tok();return this.renderer.list(o,a,s);case"list_item_start":for(o="";"list_item_end"!==this.next().type;)o+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(o);case"loose_item_start":for(o="";"list_item_end"!==this.next().type;)o+=this.tok();return this.renderer.listitem(o);case"html":var l=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text);return this.renderer.html(l);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}};var f={},h=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function g(){}function m(e){for(var t,n,r=1;r<arguments.length;r++)for(n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function v(e,t,n){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(n||"function"==typeof t){n||(n=t,t=null);var i,o,a=(t=m({},v.defaults,t||{})).highlight,s=0;try{i=r.lex(e,t)}catch(e){return n(e)}o=i.length;var u=function(e){if(e)return t.highlight=a,n(e);var r;try{r=l.parse(i,t)}catch(t){e=t}return t.highlight=a,e?n(e):n(null,r)};if(!a||a.length<3)return u();if(delete t.highlight,!o)return u();for(;s<i.length;s++)!function(e){"code"!==e.type?--o||u():a(e.text,e.lang,(function(t,n){return t?u(t):null==n||n===e.text?--o||u():(e.text=n,e.escaped=!0,void(--o||u()))}))}(i[s])}else try{return t&&(t=m({},v.defaults,t)),l.parse(r.lex(e,t),t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(t||v.defaults).silent)return"<p>An error occurred:</p><pre>"+c(e.message+"",!0)+"</pre>";throw e}}g.exec=g,v.options=v.setOptions=function(e){return m(v.defaults,e),v},v.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new a,xhtml:!1,baseUrl:null},v.Parser=l,v.parser=l.parse,v.Renderer=a,v.TextRenderer=s,v.Lexer=r,v.lexer=r.lex,v.InlineLexer=o,v.inlineLexer=o.output,v.parse=v,e.exports=v}(this||"undefined"!=typeof window&&window)}).call(this,n(35))},function(e,t,n){n(231),n(233),n(422),n(424),n(428),n(431),n(435),n(437),n(441),n(443)},function(e,t,n){"use strict";const r=n(232),i=n(21),o=n(33);angular.module("dbt").directive("graphLauncher",["$state","$q","graph","selectorService","project","trackingService","locationService",function(e,t,n,a,s,l,c){return{restrict:"EA",replace:!0,scope:{},templateUrl:r,link:function(t,r){t.filters_visible=!1,t.graphService=n,t.selectorService=a,t.allSelected=!0;var s={tags:{visible:!1},packages:{visible:!1},resource_types:{visible:!1}};t.onWindowClick=function(e){o(e.target);var t=o(e.target).closest(".dropup");t.length||(s.tags.visible=!1,s.packages.visible=!1);var n=t.data("form-type");i.each(s,(function(e,t){t!=n&&(e.visible=!1)})),o(e.target).closest("#graph-viz-wrapper").length&&setTimeout((function(){o(":focus").blur()}))},t.onSelectClick=function(e){i.each(s,(function(t,n){n==e&&(t.visible=!t.visible,t.visible||o(":focus").blur())}))},t.isVisible=function(e){return s[e].visible},t.isSelected=function(e,t){return-1!=a.selection.dirty[e].indexOf(t)},t.onSelectAll=function(e,n,r){var i=a.selection.dirty;i[e]=n?[...a.options[e]]:[],t.allSelected=!t.allSelected,r.preventDefault()},t.onItemSelect=function(e,n,r){var o=a.selection.dirty;t.isSelected(e,n)?o[e]=i.without(o[e],n):o[e]=i.union(o[e],[n]),r.preventDefault()},t.onSelectBlur=function(e,n){n&&(n.relatedTarget&&"SELECT"!=n.relatedTarget.tagName||t.isVisible(e)&&o(n.target).focus())},t.resourceTypeTitle=function(e){return"analysis"==e?"Analyses":e[0].toUpperCase()+e.slice(1)+"s"},t.selectionLabel=function(e,t){var n=a.selection.dirty[e],r=a.options[e];return 0==n.length?"None selected":1==n.length?n[0]||t:n.length==r.length?"All selected":n.length+" selected"},t.onUpdateSelector=function(){var e=a.updateSelection(),t=n.updateGraph(e);l.track_graph_interaction("update-graph",t.length)},t.showExpanded=function(){var e=a.getViewNode(),t=e?e.name:null;if(e&&"source"==e.resource_type)var r=n.showFullGraph("source:"+e.source_name+"."+e.name);else if(e&&"exposure"==e.resource_type)r=n.showFullGraph("exposure:"+e.name);else if(e&&"metric"==e.resource_type)r=n.showFullGraph("metric:"+e.name);else if(e&&"semantic_model"==e.resource_type)r=n.showFullGraph("semantic_model:"+e.name);else r=n.showFullGraph(t);l.track_graph_interaction("show-expanded",r.length)},t.showContracted=function(){var e=a.getViewNode();if(e&&"source"==e.resource_type)var t=n.showVerticalGraph("source:"+e.source_name+"."+e.name,!0);else if(e&&"exposure"==e.resource_type)t=n.showVerticalGraph("exposure:"+e.name,!0);else if(e&&"metric"==e.resource_type)t=n.showVerticalGraph("metric:"+e.name,!0);else if(e&&"semantic_model"==e.resource_type)t=n.showVerticalGraph("semantic_model:"+e.name,!0);else t=n.showVerticalGraph(e.name,!0);c.clearState(),l.track_graph_interaction("show-contracted",t.length)},t.closeGraph=function(){n.hideGraph(),c.clearState()},t.onLauncherClick=function(){var r=a.getViewNode();if(r)a.resetSelection(r),t.showContracted();else if(e.params.source){a.resetSelection(),t.showExpanded();var i=a.selectSource(e.params.source,{children:!0});setTimeout((function(){n.updateGraph(i)}))}else a.resetSelection(),t.showExpanded()},t.$watch((function(){return a.selection.dirty}),(function(e,t){if(a.isDirty()){var r=n.graph.pristine.dag,o=n.graph.pristine.nodes,s=a.selection.clean,l=a.selection.dirty,c=a.selectNodes(r,o,s),u=a.selectNodes(r,o,l),d=i.difference(c.selected,u.selected);n.markDirty(d)}else n.markAllClean()}),!0)}}}])},function(e,t){var n="/components/graph/graph-launcher.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class="launcher" data-launcher="{{ graphService.orientation }}" ng-class="{on: graphService.expanded}">\n <style>\n .dirty-submit {\n background-color: #0094b3 !important;\n color: white !important;\n transition: .5s linear;\n }\n\n #submit-graph-selection:hover {\n background-color: #0094b3 !important;\n color: white !important;\n }\n\n .dropup select:hover~.field-label,\n .dropup select:focus~.field-label {\n color: #919599;\n }\n\n .dropup ul:hover~.field-label,\n .dropup ul:focus~.field-label {\n color: #919599;\n }\n\n .dropdown-menu {\n width: 100%;\n }\n\n .dropdown-menu li {\n padding: 2px 10px;\n }\n\n .dropdown-menu li:hover {\n background-color: #ededee !important;\n }\n\n li .checked {\n width: 10px;\n float: right;\n }\n\n </style>\n\n <div class="launcher-section">\n <div class="launcher-btn">\n <a\n class="btn btn-info btn-pill btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="View Lineage Graph"\n ng-click="onLauncherClick()">\n <svg class="icn icn-md"><use xlink:href="#icn-flow"></use></svg>\n </a>\n </div>\n <div class="launcher-content" ng-click="onWindowClick($event)">\n <div class="launcher-window">\n <div class="launcher-header">\n <div class="launcher-cell">\n <h6>\n Lineage Graph\n </h6>\n </div>\n <div class="launcher-actions">\n <a\n ng-click="showExpanded()"\n ng-show="graphService.orientation == \'sidebar\'"\n data-large\n class="btn btn-text btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="View Fullscreen">\n <svg class="icn icn-md"><use xlink:href="#icn-expand"></use></svg>\n </a>\n <a\n ng-click="showContracted()"\n ng-show="graphService.orientation == \'fullscreen\' && selectorService.getViewNode()"\n class="btn btn-text btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="View Fullscreen">\n <svg class="icn icn-md"><use xlink:href="#icn-contract"></use></svg>\n </a>\n </div>\n </div>\n <div class="launcher-body">\n <div class="launcher-embed">\n <div ng-controller="GraphCtrl" style="height: 100%" id="graph-viz-wrapper">\n <div graph-viz\n viz-options="graph.options"\n viz-elements="graph.elements"\n viz-style="graph.style"\n viz-layout="graph.layout"\n viz-ready="graph.ready"\n viz-rendered="graphRendered"\n viz-size="{size: graphService.orientation, expanded: graphService.expanded}"></div>\n </div>\n </div>\n </div>\n <div class="launcher-footer">\n <div class="launcher-cell launcher-flush">\n <div class="component bg-navy text-navy-lightest margin">\n <form class="fields fields-flush launcher-hide-sidebar"\n ng-class="{visible: filters_visible}"\n ng-submit="onUpdateSelector()">\n <label class="field">\n <div class="dropdown dropup"\n ng-class="{\'open\': isVisible(\'resource_types\')}"\n data-form-type="resource_types">\n <select\n data-toggle="dropdown"\n class=\'field-input form-control input-dark\'\n ng-click="onSelectClick(\'resource_types\')"\n ng-blur="onSelectBlur(\'resource_types\')">\n <option selected disabled hidden>\n <span>{{ selectionLabel(\'resource_types\') }}</span>\n </option>\n </select>\n <ul\n class="dropdown-menu"\n ng-show="isVisible(\'resource_types\')">\n <li ng-click="onSelectAll(\'resource_types\', !allSelected, $event)">\n <strong class="text-dark">Select All</strong>\n <span ng-show="allSelected">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n <li\n class=\'text-dark\'\n ng-repeat="item in selectorService.options.resource_types"\n ng-click="onItemSelect(\'resource_types\', item, $event)">\n {{ resourceTypeTitle(item) }}\n <span ng-show="isSelected(\'resource_types\', item)">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n </ul>\n <div class="field-label">resources</div>\n </div>\n </label>\n <label class="field">\n <div class="dropdown dropup"\n ng-class="{\'open\': isVisible(\'packages\')}"\n data-form-type="packages">\n <select\n data-toggle="dropdown"\n class=\'field-input form-control input-dark\'\n ng-click="onSelectClick(\'packages\')"\n ng-blur="onSelectBlur(\'packages\')">\n <option selected disabled hidden>\n <span>{{ selectionLabel(\'packages\') }}</span>\n </option>\n </select>\n <ul\n class="dropdown-menu"\n ng-show="isVisible(\'packages\')">\n <li ng-click="onSelectAll(\'packages\', !allSelected, $event)">\n <strong class="text-dark">Select All</strong>\n <span ng-show="allSelected">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n <li\n class=\'text-dark\'\n ng-repeat="item in selectorService.options.packages"\n ng-click="onItemSelect(\'packages\', item, $event)">\n {{ item }}\n <span ng-show="isSelected(\'packages\', item)">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n </ul>\n <div class="field-label">packages</div>\n </div>\n </label>\n <label class="field">\n <div class="dropdown dropup"\n ng-class="{\'open\': isVisible(\'tags\')}"\n data-form-type="tags">\n <select\n data-toggle="dropdown"\n class=\'field-input form-control input-dark\'\n ng-click="onSelectClick(\'tags\')"\n ng-blur="onSelectBlur(\'tags\', $event)">\n <option selected disabled hidden>\n <span>{{ selectionLabel(\'tags\', \'untagged\') }}</span>\n </option>\n </select>\n <ul\n class="dropdown-menu"\n ng-show="isVisible(\'tags\')">\n <li ng-click="onSelectAll(\'tags\', !allSelected, $event)">\n <strong class="text-dark">Select All</strong>\n <span ng-show="allSelected">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n <li\n class=\'text-dark\'\n ng-repeat="item in selectorService.options.tags"\n ng-click="onItemSelect(\'tags\', item, $event)">\n <span ng-if=\'item == null\'>untagged</span>\n <span ng-if=\'item != null\'>{{ item }}</span>\n <span ng-show="isSelected(\'tags\', item)">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n </ul>\n <div class="field-label">tags</div>\n </div>\n </label>\n <label class="field" style="flex: 4 0 160px">\n <input type="text"\n class="field-input form-control input-dark"\n ng-model="selectorService.selection.dirty.include"\n placeholder="..." />\n <div class="field-label">--select</div>\n </label>\n <label class="field" style="flex: 4 0 160px">\n <input type="text"\n class="field-input form-control input-dark"\n ng-model="selectorService.selection.dirty.exclude"\n placeholder="..." />\n <div class="field-label">--exclude</div>\n </label>\n <label class="field" style="flex: 0 0 80px">\n <input type="submit"\n id="submit-graph-selection"\n class="field-input form-control input-dark"\n ng-class="{\'dirty-submit\': selectorService.isDirty()}"\n value="Update Graph" />\n <div class="field-label text-center" style="width: 100%"></div>\n </label>\n <label class="field" style="flex: 0 0 80px">\n <button type="button"\n ng-click="closeGraph()"\n class="field-input form-control input-dark text-center"\n ><svg class="icn icn-md"><use xlink:href="#icn-close"></use></svg>\n </button>\n </label>\n </form>\n </div>\n </div>\n \x3c!--<div class="launcher-spacer"></div>--\x3e\n <div class="launcher-actions" ng-show="graphService.orientation == \'sidebar\'">\n <button type="button"\n ng-click="closeGraph()"\n class="btn btn-text btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="Close Graph"><svg class="icn icn-md"><use xlink:href="#icn-close"></use></svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";n(234);const r=n(236),i=n(21),o=n(33),a=n(237);n(244)(a,o);const s=n(245);a.use(s),angular.module("dbt").directive("graphViz",["$q","$state","graph","selectorService","project","$timeout",function(e,t,n,s,l,c){return{restrict:"EA",replace:!0,scope:{vizElements:"=",vizLayout:"=",vizOptions:"=",vizStyle:"=",vizReady:"=",vizExtensions:"=",vizHideOptions:"=",vizSize:"=",vizRendered:"="},link:function(e,r,d,p){var f=u;e.$watch("vizSize",(function(e,t){c((function(){h.resize(),"fullscreen"==e?h.fit(100):h.fit(25)}))})),o(".viz-option").on("changed.bs.select",(function(e){o(e.target).data("option"),o(e.target).val()}));var h=a(i.assign({},e.vizOptions,{container:document.getElementById("cy"),style:e.vizStyle||[],elements:e.vizElements||[],layout:e.vizLayout||{name:"circle"}}));window.graph||(window.graph=h);e.graphReady&&o(window).on("load",(function(){h.ready(e.graphReady)}));h.on("select",(function(t){var r=t.target;e.$apply((function(){n.selectNode(r.id()),h.forceRender()}))})),h.on("unselect",(function(t){t.target;e.$apply((function(){n.deselectNodes(),h.forceRender()}))})),e.$watch("vizElements",(function(t,n){h.remove(h.elements()),h.add(t),f(e,h)})),e.$watch("vizLayout",(function(t,n){t!==n&&f(e,h)}),!0),e.$watch("vizOptions",(function(e,t){e!==t&&i.each(e,(function(e,t){h[t],h[t](e)}))}),!0),e.$watch("vizStyle",(function(e,t){e!==t&&h.setStyle(e)}),!0),e.$on("$destroy",(function(){h.destroy()}));h.contextMenus({menuItems:[{id:"jump",content:"Refocus on Node",selector:"node",tooltipText:"Focus on the lineage for this node",onClickFunction:function(e){var n=e.target||e.cyTarget,r=n.id();t.go("dbt."+n.data("resource_type"),{unique_id:r})},show:!0},{id:"docs",content:"View documentation",selector:"node",tooltipText:"Jump to the documentation for this node",onClickFunction:function(e){var r=e.target||e.cyTarget,i=r.id();t.go("dbt."+r.data("resource_type"),{unique_id:i}),n.hideGraph()},show:!0},{id:"hide-before-here",content:"Hide this and parents",selector:"node",onClickFunction:function(e){var t=(e.target||e.cyTarget).id(),r=l.node(t);if(r){var i=s.excludeNode(r,{parents:!0});n.updateGraph(i)}},show:!0},{id:"hide-after-here",content:"Hide this and children",selector:"node",onClickFunction:function(e){var t=(e.target||e.cyTarget).id(),r=l.node(t);if(r){var i=s.excludeNode(r,{children:!0});n.updateGraph(i)}},show:!0},{id:"export-png",content:"Export PNG",selector:"node",coreAsWell:!0,onClickFunction:function(e){var t=h.png({bg:"#005e7a"}),n=document.createElement("a");n.download="dbt-dag.png",n.href=t,n.click()},show:!0}],menuItemClasses:["graph-node-context-menu-item"],contextMenuClasses:["graph-node-context-menu"]})},templateUrl:r};function u(e,t){if(e.vizLayout&&e.vizLayout.name){t.layout(e.vizLayout).run();e.vizRendered(t)}}}])},function(e,t,n){var r=n(235);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,'\n.cy-context-menus-cxt-menu {\n display:none;\n z-index:1000;\n position:absolute;\n border:1px solid #A0A0A0;\n padding: 0;\n margin: 0;\n width:auto;\n}\n\n.cy-context-menus-cxt-menuitem {\n display:block;\n z-index:1000;\n width: 100%;\n padding: 3px 20px;\n position:relative;\n margin:0;\n background-color:#f8f8f8;\n font-weight:normal;\n font-size: 12px;\n white-space:nowrap;\n border: 0;\n text-align: left;\n}\n\n.cy-context-menus-cxt-menuitem:enabled {\n color: #000000;\n}\n\n.cy-context-menus-ctx-operation:focus {\n outline: none;\n}\n\n.cy-context-menus-cxt-menuitem:hover {\n color: #ffffff;\n text-decoration: none;\n background-color: #0B9BCD;\n background-image: none;\n cursor: pointer;\n}\n\n.cy-context-menus-cxt-menuitem[content]:before {\n content:attr(content);\n}\n\n.cy-context-menus-divider {\n border-bottom:1px solid #A0A0A0;\n}\n\n\nselect:not([multiple]).form-control {\n background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cG9seWxpbmUgcG9pbnRzPSI0LjUgNiA4IDkuNSAxMS41IDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwOTRiMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==");\n background-size: 1.25em 1.25em;\n}\n',""])},function(e,t){var n="/components/graph/graph-viz.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div id='cy' style=\"width: 100%; height: 100%; \"></div>\n")}]),e.exports=n},function(e,t,n){(function(t){var r;"undefined"!=typeof self&&self,r=function(e,n){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=20)}([function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(3),o=i?i.navigator:null,a=i?i.document:null,s=r(""),l=r({}),c=r((function(){})),u="undefined"==typeof HTMLElement?"undefined":r(HTMLElement),d=function(e){return e&&e.instanceString&&p.fn(e.instanceString)?e.instanceString():null},p={defined:function(e){return null!=e},string:function(e){return null!=e&&(void 0===e?"undefined":r(e))==s},fn:function(e){return null!=e&&(void 0===e?"undefined":r(e))===c},array:function(e){return Array.isArray?Array.isArray(e):null!=e&&e instanceof Array},plainObject:function(e){return null!=e&&(void 0===e?"undefined":r(e))===l&&!p.array(e)&&e.constructor===Object},object:function(e){return null!=e&&(void 0===e?"undefined":r(e))===l},number:function(e){return null!=e&&(void 0===e?"undefined":r(e))===r(1)&&!isNaN(e)},integer:function(e){return p.number(e)&&Math.floor(e)===e},bool:function(e){return null!=e&&(void 0===e?"undefined":r(e))===r(!0)},htmlElement:function(e){return"undefined"===u?void 0:null!=e&&e instanceof HTMLElement},elementOrCollection:function(e){return p.element(e)||p.collection(e)},element:function(e){return"collection"===d(e)&&e._private.single},collection:function(e){return"collection"===d(e)&&!e._private.single},core:function(e){return"core"===d(e)},style:function(e){return"style"===d(e)},stylesheet:function(e){return"stylesheet"===d(e)},event:function(e){return"event"===d(e)},thread:function(e){return"thread"===d(e)},fabric:function(e){return"fabric"===d(e)},emptyString:function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},nonemptyString:function(e){return!(!e||!p.string(e)||""===e||e.match(/^\s+$/))},domElement:function(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement},boundingBox:function(e){return p.plainObject(e)&&p.number(e.x1)&&p.number(e.x2)&&p.number(e.y1)&&p.number(e.y2)},promise:function(e){return p.object(e)&&p.fn(e.then)},touch:function(){return i&&("ontouchstart"in i||i.DocumentTouch&&a instanceof DocumentTouch)},gecko:function(){return i&&("undefined"!=typeof InstallTrigger||"MozAppearance"in a.documentElement.style)},webkit:function(){return i&&("undefined"!=typeof webkitURL||"WebkitAppearance"in a.documentElement.style)},chromium:function(){return i&&"undefined"!=typeof chrome},khtml:function(){return o&&o.vendor.match(/kde/i)},khtmlEtc:function(){return p.khtml()||p.webkit()||p.chromium()},ms:function(){return o&&o.userAgent.match(/msie|trident|edge/i)},windows:function(){return o&&o.appVersion.match(/Win/i)},mac:function(){return o&&o.appVersion.match(/Mac/i)},linux:function(){return o&&o.appVersion.match(/Linux/i)},unix:function(){return o&&o.appVersion.match(/X11/i)}};e.exports=p},function(e,t,n){"use strict";var r=n(0),i=n(2),o={MAX_INT:Number.MAX_SAFE_INTEGER||9007199254740991,trueify:function(){return!0},falsify:function(){return!1},zeroify:function(){return 0},noop:function(){},error:function(e){console.error?(console.error.apply(console,arguments),console.trace&&console.trace()):(console.log.apply(console,arguments),console.trace&&console.trace())},clone:function(e){return this.extend({},e)},copy:function(e){return null==e?e:r.array(e)?e.slice():r.plainObject(e)?this.clone(e):e},copyArray:function(e){return e.slice()},clonePosition:function(e){return{x:e.x,y:e.y}},uuid:function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t}};o.makeBoundingBox=i.makeBoundingBox.bind(i),o._staticEmptyObject={},o.staticEmptyObject=function(){return o._staticEmptyObject},o.extend=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),o=0;o<i.length;o++){var a=i[o];e[a]=r[a]}}return e},o.assign=o.extend,o.default=function(e,t){return void 0===e?t:e},o.removeFromArray=function(e,t,n){for(var r=e.length;r>=0&&(e[r]!==t||(e.splice(r,1),n));r--);},o.clearArray=function(e){e.splice(0,e.length)},o.push=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},o.getPrefixedProperty=function(e,t,n){return n&&(t=this.prependCamel(n,t)),e[t]},o.setPrefixedProperty=function(e,t,n,r){n&&(t=this.prependCamel(n,t)),e[t]=r},[n(21),n(22),{memoize:n(13)},n(23),n(24),n(25),n(27)].forEach((function(e){o.extend(o,e)})),e.exports=o},function(e,t,n){"use strict";var r={arePositionsSame:function(e,t){return e.x===t.x&&e.y===t.y},copyPosition:function(e){return{x:e.x,y:e.y}},modelToRenderedPosition:function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},renderedToModelPosition:function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},array2point:function(e){return{x:e[0],y:e[1]}},deg2rad:function(e){return Math.PI*e/180},getAngleFromDisp:function(e,t){return Math.atan2(t,e)-Math.PI/2}};r.log2=Math.log2||function(e){return Math.log(e)/Math.log(2)},r.signum=function(e){return e>0?1:e<0?-1:0},r.dist=function(e,t){return Math.sqrt(r.sqdist(e,t))},r.sqdist=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},r.qbezierAt=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},r.qbezierPtAt=function(e,t,n,i){return{x:r.qbezierAt(e.x,t.x,n.x,i),y:r.qbezierAt(e.y,t.y,n.y,i)}},r.lineAt=function(e,t,n,i){var o=t.x-e.x,a=t.y-e.y,s=r.dist(e,t),l=o/s,c=a/s;return n=null==n?0:n,i=null!=i?i:n*s,{x:e.x+l*i,y:e.y+c*i}},r.lineAtDist=function(e,t,n){return r.lineAt(e,t,void 0,n)},r.triangleAngle=function(e,t,n){var i=r.dist(t,n),o=r.dist(e,n),a=r.dist(e,t);return Math.acos((i*i+o*o-a*a)/(2*i*o))},r.bound=function(e,t,n){return Math.max(e,Math.min(n,t))},r.makeBoundingBox=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},r.updateBoundingBox=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},r.expandBoundingBoxByPoint=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},r.expandBoundingBox=function(e,t){return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},r.boundingBoxesIntersect=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2<t.x1||t.x2<e.x1||e.y2<t.y1||t.y2<e.y1||e.y1>t.y2||t.y1>e.y2)},r.inBoundingBox=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},r.pointInBoundingBox=function(e,t){return this.inBoundingBox(e,t.x,t.y)},r.boundingBoxInBoundingBox=function(e,t){return r.inBoundingBox(e,t.x1,t.y1)&&r.inBoundingBox(e,t.x2,t.y2)},r.roundRectangleIntersectLine=function(e,t,n,r,i,o,a){var s=this.getRoundRectangleRadius(i,o),l=i/2,c=o/2,u=void 0,d=n-l+s-a,p=r-c-a,f=n+l-s+a,h=p;if((u=this.finiteLinesIntersect(e,t,n,r,d,p,f,h,!1)).length>0)return u;var g=n+l+a,m=r-c+s-a,v=g,b=r+c-s+a;if((u=this.finiteLinesIntersect(e,t,n,r,g,m,v,b,!1)).length>0)return u;var y=n-l+s-a,x=r+c+a,w=n+l-s+a,k=x;if((u=this.finiteLinesIntersect(e,t,n,r,y,x,w,k,!1)).length>0)return u;var A=n-l-a,E=r-c+s-a,S=A,$=r+c-s+a;if((u=this.finiteLinesIntersect(e,t,n,r,A,E,S,$,!1)).length>0)return u;var C=void 0,_=n-l+s,O=r-c+s;if((C=this.intersectLineCircle(e,t,n,r,_,O,s+a)).length>0&&C[0]<=_&&C[1]<=O)return[C[0],C[1]];var T=n+l-s,j=r-c+s;if((C=this.intersectLineCircle(e,t,n,r,T,j,s+a)).length>0&&C[0]>=T&&C[1]<=j)return[C[0],C[1]];var P=n+l-s,D=r+c-s;if((C=this.intersectLineCircle(e,t,n,r,P,D,s+a)).length>0&&C[0]>=P&&C[1]>=D)return[C[0],C[1]];var R=n-l+s,I=r+c-s;return(C=this.intersectLineCircle(e,t,n,r,R,I,s+a)).length>0&&C[0]<=R&&C[1]>=I?[C[0],C[1]]:[]},r.inLineVicinity=function(e,t,n,r,i,o,a){var s=a,l=Math.min(n,i),c=Math.max(n,i),u=Math.min(r,o),d=Math.max(r,o);return l-s<=e&&e<=c+s&&u-s<=t&&t<=d+s},r.inBezierVicinity=function(e,t,n,r,i,o,a,s,l){var c=Math.min(n,a,i)-l,u=Math.max(n,a,i)+l,d=Math.min(r,s,o)-l,p=Math.max(r,s,o)+l;return!(e<c||e>u||t<d||t>p)},r.solveQuadratic=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var o=Math.sqrt(i),a=2*e;return[(-t+o)/a,(-t-o)/a]},r.solveCubic=function(e,t,n,r,i){var o,a=void 0,s=void 0,l=void 0,c=void 0,u=void 0,d=void 0,p=void 0;return s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),o=(a=(3*n-t*t)/9)*a*a+(s/=54)*s,i[1]=0,d=t/3,o>0?(c=(c=s+Math.sqrt(o))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),u=(u=s-Math.sqrt(o))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-d+c+u,d+=(c+u)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-u+c)/2,i[3]=d,void(i[5]=-d)):(i[5]=i[3]=0,0===o?(p=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=2*p-d,void(i[4]=i[2]=-(p+d))):(l=(a=-a)*a*a,l=Math.acos(s/Math.sqrt(l)),p=2*Math.sqrt(a),i[0]=-d+p*Math.cos(l/3),i[2]=-d+p*Math.cos((l+2*Math.PI)/3),void(i[4]=-d+p*Math.cos((l+4*Math.PI)/3))))},r.sqdistToQuadraticBezier=function(e,t,n,r,i,o,a,s){var l=1*n*n-4*n*i+2*n*a+4*i*i-4*i*a+a*a+r*r-4*r*o+2*r*s+4*o*o-4*o*s+s*s,c=9*n*i-3*n*n-3*n*a-6*i*i+3*i*a+9*r*o-3*r*r-3*r*s-6*o*o+3*o*s,u=3*n*n-6*n*i+n*a-n*e+2*i*i+2*i*e-a*e+3*r*r-6*r*o+r*s-r*t+2*o*o+2*o*t-s*t,d=1*n*i-n*n+n*e-i*e+r*o-r*r+r*t-o*t,p=[];this.solveCubic(l,c,u,d,p);for(var f=[],h=0;h<6;h+=2)Math.abs(p[h+1])<1e-7&&p[h]>=0&&p[h]<=1&&f.push(p[h]);f.push(1),f.push(0);for(var g=-1,m=void 0,v=void 0,b=void 0,y=0;y<f.length;y++)m=Math.pow(1-f[y],2)*n+2*(1-f[y])*f[y]*i+f[y]*f[y]*a,v=Math.pow(1-f[y],2)*r+2*(1-f[y])*f[y]*o+f[y]*f[y]*s,b=Math.pow(m-e,2)+Math.pow(v-t,2),g>=0?b<g&&(g=b):g=b;return g},r.sqdistToFiniteLine=function(e,t,n,r,i,o){var a=[e-n,t-r],s=[i-n,o-r],l=s[0]*s[0]+s[1]*s[1],c=a[0]*a[0]+a[1]*a[1],u=a[0]*s[0]+a[1]*s[1],d=u*u/l;return u<0?c:d>l?(e-i)*(e-i)+(t-o)*(t-o):c-d},r.pointInsidePolygonPoints=function(e,t,n){for(var r=void 0,i=void 0,o=void 0,a=void 0,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(o=n[2*(l+1)],a=n[2*(l+1)+1]):(o=n[2*(l+1-n.length/2)],a=n[2*(l+1-n.length/2)+1]),r==e&&o==e);else{if(!(r>=e&&e>=o||r<=e&&e<=o))continue;(e-r)/(o-r)*(a-i)+i>t&&s++}return s%2!=0},r.pointInsidePolygon=function(e,t,n,i,o,a,s,l,c){var u=new Array(n.length),d=void 0;null!=l[0]?(d=Math.atan(l[1]/l[0]),l[0]<0?d+=Math.PI/2:d=-d-Math.PI/2):d=l;for(var p=Math.cos(-d),f=Math.sin(-d),h=0;h<u.length/2;h++)u[2*h]=a/2*(n[2*h]*p-n[2*h+1]*f),u[2*h+1]=s/2*(n[2*h+1]*p+n[2*h]*f),u[2*h]+=i,u[2*h+1]+=o;var g=void 0;if(c>0){var m=this.expandPolygon(u,-c);g=this.joinLines(m)}else g=u;return r.pointInsidePolygonPoints(e,t,g)},r.joinLines=function(e){for(var t=new Array(e.length/2),n=void 0,r=void 0,i=void 0,o=void 0,a=void 0,s=void 0,l=void 0,c=void 0,u=0;u<e.length/4;u++){n=e[4*u],r=e[4*u+1],i=e[4*u+2],o=e[4*u+3],u<e.length/4-1?(a=e[4*(u+1)],s=e[4*(u+1)+1],l=e[4*(u+1)+2],c=e[4*(u+1)+3]):(a=e[0],s=e[1],l=e[2],c=e[3]);var d=this.finiteLinesIntersect(n,r,i,o,a,s,l,c,!0);t[2*u]=d[0],t[2*u+1]=d[1]}return t},r.expandPolygon=function(e,t){for(var n=new Array(2*e.length),r=void 0,i=void 0,o=void 0,a=void 0,s=0;s<e.length/2;s++){r=e[2*s],i=e[2*s+1],s<e.length/2-1?(o=e[2*(s+1)],a=e[2*(s+1)+1]):(o=e[0],a=e[1]);var l=a-i,c=-(o-r),u=Math.sqrt(l*l+c*c),d=l/u,p=c/u;n[4*s]=r+d*t,n[4*s+1]=i+p*t,n[4*s+2]=o+d*t,n[4*s+3]=a+p*t}return n},r.intersectLineEllipse=function(e,t,n,r,i,o){var a=n-e,s=r-t;a/=i,s/=o;var l=Math.sqrt(a*a+s*s),c=l-1;if(c<0)return[];var u=c/l;return[(n-e)*u+e,(r-t)*u+t]},r.checkInEllipse=function(e,t,n,r,i,o,a){return e-=i,t-=o,(e/=n/2+a)*e+(t/=r/2+a)*t<=1},r.intersectLineCircle=function(e,t,n,r,i,o,a){var s=[n-e,r-t],l=[e-i,t-o],c=s[0]*s[0]+s[1]*s[1],u=2*(l[0]*s[0]+l[1]*s[1]),d=u*u-4*c*(l[0]*l[0]+l[1]*l[1]-a*a);if(d<0)return[];var p=(-u+Math.sqrt(d))/(2*c),f=(-u-Math.sqrt(d))/(2*c),h=Math.min(p,f),g=Math.max(p,f),m=[];if(h>=0&&h<=1&&m.push(h),g>=0&&g<=1&&m.push(g),0===m.length)return[];var v=m[0]*s[0]+e,b=m[0]*s[1]+t;return m.length>1?m[0]==m[1]?[v,b]:[v,b,m[1]*s[0]+e,m[1]*s[1]+t]:[v,b]},r.findCircleNearPoint=function(e,t,n,r,i){var o=r-e,a=i-t,s=Math.sqrt(o*o+a*a);return[e+o/s*n,t+a/s*n]},r.findMaxSqDistanceToOrigin=function(e){for(var t=1e-6,n=void 0,r=0;r<e.length/2;r++)(n=e[2*r]*e[2*r]+e[2*r+1]*e[2*r+1])>t&&(t=n);return t},r.midOfThree=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},r.finiteLinesIntersect=function(e,t,n,r,i,o,a,s,l){var c=e-i,u=n-e,d=a-i,p=t-o,f=r-t,h=s-o,g=d*p-h*c,m=u*p-f*c,v=h*u-d*f;if(0!==v){var b=g/v,y=m/v;return-.001<=b&&b<=1.001&&-.001<=y&&y<=1.001||l?[e+b*u,t+b*f]:[]}return 0===g||0===m?this.midOfThree(e,n,a)===a?[a,s]:this.midOfThree(e,n,i)===i?[i,o]:this.midOfThree(i,a,n)===n?[n,r]:[]:[]},r.polygonIntersectLine=function(e,t,n,i,o,a,s,l){var c=[],u=void 0,d=new Array(n.length),p=!0;5===arguments.length&&(p=!1);var f=void 0;if(p){for(var h=0;h<d.length/2;h++)d[2*h]=n[2*h]*a+i,d[2*h+1]=n[2*h+1]*s+o;if(l>0){var g=r.expandPolygon(d,-l);f=r.joinLines(g)}else f=d}else f=n;for(var m=void 0,v=void 0,b=void 0,y=void 0,x=0;x<f.length/2;x++)m=f[2*x],v=f[2*x+1],x<f.length/2-1?(b=f[2*(x+1)],y=f[2*(x+1)+1]):(b=f[0],y=f[1]),0!==(u=this.finiteLinesIntersect(e,t,i,o,m,v,b,y)).length&&c.push(u[0],u[1]);return c},r.shortenIntersection=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),o=(i-n)/i;return o<0&&(o=1e-5),[t[0]+o*r[0],t[1]+o*r[1]]},r.generateUnitNgonPointsFitToSquare=function(e,t){var n=r.generateUnitNgonPoints(e,t);return n=r.fitPolygonToSquare(n)},r.fitPolygonToSquare=function(e){for(var t=void 0,n=void 0,r=e.length/2,i=1/0,o=1/0,a=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),a=Math.max(a,t),o=Math.min(o,n),s=Math.max(s,n);for(var c=2/(a-i),u=2/(s-o),d=0;d<r;d++)t=e[2*d]=e[2*d]*c,n=e[2*d+1]=e[2*d+1]*u,i=Math.min(i,t),a=Math.max(a,t),o=Math.min(o,n),s=Math.max(s,n);if(o<-1)for(var p=0;p<r;p++)n=e[2*p+1]=e[2*p+1]+(-1-o);return e},r.generateUnitNgonPoints=function(e,t){var n=1/e*2*Math.PI,r=e%2==0?Math.PI/2+n/2:Math.PI/2;r+=t;for(var i=new Array(2*e),o=void 0,a=0;a<e;a++)o=a*n+r,i[2*a]=Math.cos(o),i[2*a+1]=Math.sin(-o);return i},r.getRoundRectangleRadius=function(e,t){return Math.min(e/4,t/4,8)},r.getCutRectangleCornerLength=function(){return 8},r.bezierPtsToQuadCoeff=function(e,t,n){return[e-2*t+n,2*(t-e),e]},r.getBarrelCurveConstants=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},e.exports=r},function(e,t,n){"use strict";e.exports="undefined"==typeof window?null:window},function(e,t,n){"use strict";var r=n(1),i={};[n(43),n(45),n(46)].forEach((function(e){r.assign(i,e)})),e.exports=i},function(e,n,r){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))}; +!function(e,t){"use strict";function n(e,t){var n=[],r=e.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,(function(e,t,r,i){var o="?"===i||"*?"===i,a="*"===i||"*?"===i;return n.push({name:r,optional:o}),t=t||"",(o?"(?:"+t:t+"(?:")+(a?"(.+?)":"([^/]+)")+(o?"?)?":")")})).replace(/([/$*])/g,"\\$1");return t.ignoreTrailingSlashes&&(r=r.replace(/\/+$/,"")+"/*"),{keys:n,regexp:new RegExp("^"+r+"(?:[?#]|$)",t.caseInsensitiveMatch?"i":"")}}var r,i,o,a,s,l=t.module("ngRoute",[]).info({angularVersion:"1.8.2"}).provider("$route",(function(){function e(e,n){return t.extend(Object.create(e),n)}r=t.isArray,i=t.isObject,o=t.isDefined,a=t.noop;var l={};this.when=function(e,o){var a=function(e,t){if(r(e)){t=t||[];for(var n=0,o=e.length;n<o;n++)t[n]=e[n]}else if(i(e))for(var a in t=t||{},e)"$"===a.charAt(0)&&"$"===a.charAt(1)||(t[a]=e[a]);return t||e}(o);if(t.isUndefined(a.reloadOnUrl)&&(a.reloadOnUrl=!0),t.isUndefined(a.reloadOnSearch)&&(a.reloadOnSearch=!0),t.isUndefined(a.caseInsensitiveMatch)&&(a.caseInsensitiveMatch=this.caseInsensitiveMatch),l[e]=t.extend(a,{originalPath:e},e&&n(e,a)),e){var s="/"===e[e.length-1]?e.substr(0,e.length-1):e+"/";l[s]=t.extend({originalPath:e,redirectTo:e},n(s,a))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(e){return"string"==typeof e&&(e={redirectTo:e}),this.when(null,e),this},s=!0,this.eagerInstantiationEnabled=function(e){return o(e)?(s=e,this):s},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","$browser",function(n,r,i,o,s,u,d,p){var f,h,g=!1,m={routes:l,reload:function(){g=!0;var e={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0,g=!1}};n.$evalAsync((function(){v(e),e.defaultPrevented||b()}))},updateParams:function(e){if(!this.current||!this.current.$$route)throw c("norout","Tried updating route with no current route");e=t.extend({},this.current.params,e),r.path(k(this.current.$$route.originalPath,e)),r.search(e)}};return n.$on("$locationChangeStart",v),n.$on("$locationChangeSuccess",b),m;function v(i){var o,a,s,c,u=m.current;t.forEach(l,(function(n,i){!a&&(o=function(e,t){var n=t.keys,r={};if(!t.regexp)return null;var i=t.regexp.exec(e);if(!i)return null;for(var o=1,a=i.length;o<a;++o){var s=n[o-1],l=i[o];s&&l&&(r[s.name]=l)}return r}(r.path(),n))&&((a=e(n,{params:t.extend({},r.search(),o),pathParams:o})).$$route=n)})),f=a||l.null&&e(l.null,{params:{},pathParams:{}}),s=f,c=u,(h=!g&&s&&c&&s.$$route===c.$$route&&(!s.reloadOnUrl||!s.reloadOnSearch&&t.equals(s.pathParams,c.pathParams)))||!u&&!f||n.$broadcast("$routeChangeStart",f,u).defaultPrevented&&i&&i.preventDefault()}function b(){var e=m.current,r=f;if(h)e.params=r.params,t.copy(e.params,i),n.$broadcast("$routeUpdate",e);else if(r||e){g=!1,m.current=r;var s=o.resolve(r);p.$$incOutstandingRequestCount("$route"),s.then(y).then(x).then((function(o){return o&&s.then(w).then((function(o){r===m.current&&(r&&(r.locals=o,t.copy(r.params,i)),n.$broadcast("$routeChangeSuccess",r,e))}))})).catch((function(t){r===m.current&&n.$broadcast("$routeChangeError",r,e,t)})).finally((function(){p.$$completeOutstandingRequest(a,"$route")}))}}function y(e){var n={route:e,hasRedirection:!1};if(e)if(e.redirectTo)if(t.isString(e.redirectTo))n.path=k(e.redirectTo,e.params),n.search=e.params,n.hasRedirection=!0;else{var i=r.path(),a=r.search(),l=e.redirectTo(e.pathParams,i,a);t.isDefined(l)&&(n.url=l,n.hasRedirection=!0)}else if(e.resolveRedirectTo)return o.resolve(s.invoke(e.resolveRedirectTo)).then((function(e){return t.isDefined(e)&&(n.url=e,n.hasRedirection=!0),n}));return n}function x(e){var t=!0;if(e.route!==m.current)t=!1;else if(e.hasRedirection){var n=r.url(),i=e.url;i?r.url(i).replace():i=r.path(e.path).search(e.search).replace().url(),i!==n&&(t=!1)}return t}function w(e){if(e){var n=t.extend({},e.resolve);t.forEach(n,(function(e,r){n[r]=t.isString(e)?s.get(e):s.invoke(e,null,null,r)}));var r=function(e){var n,r;t.isDefined(n=e.template)?t.isFunction(n)&&(n=n(e.params)):t.isDefined(r=e.templateUrl)&&(t.isFunction(r)&&(r=r(e.params)),t.isDefined(r)&&(e.loadedTemplateUrl=d.valueOf(r),n=u(r)));return n}(e);return t.isDefined(r)&&(n.$template=r),o.all(n)}}function k(e,n){var r=[];return t.forEach((e||"").split(":"),(function(e,t){if(0===t)r.push(e);else{var i=e.match(/(\w+)(?:[?*])?(.*)/),o=i[1];r.push(n[o]),r.push(i[2]||""),delete n[o]}})),r.join("")}}]})).run(u),c=t.$$minErr("ngRoute");function u(e){s&&e.get("$route")}function d(e,n,r){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(i,o,a,s,l){var c,u,d,p=a.autoscroll,f=a.onload||"";function h(){d&&(r.cancel(d),d=null),c&&(c.$destroy(),c=null),u&&((d=r.leave(u)).done((function(e){!1!==e&&(d=null)})),u=null)}function g(){var a=e.current&&e.current.locals,s=a&&a.$template;if(t.isDefined(s)){var d=i.$new(),g=e.current,m=l(d,(function(e){r.enter(e,null,u||o).done((function(e){!1===e||!t.isDefined(p)||p&&!i.$eval(p)||n()})),h()}));u=m,(c=g.scope=d).$emit("$viewContentLoaded"),c.$eval(f)}else h()}i.$on("$routeChangeSuccess",g),g()}}}function p(e,t,n){return{restrict:"ECA",priority:-400,link:function(r,i){var o=n.current,a=o.locals;i.html(a.$template);var s=e(i.contents());if(o.controller){a.$scope=r;var l=t(o.controller,a);o.controllerAs&&(r[o.controllerAs]=l),i.data("$ngControllerController",l),i.children().data("$ngControllerController",l)}r[o.resolveAs||"$resolve"]=a,s(r)}}}u.$inject=["$injector"],l.provider("$routeParams",(function(){this.$get=function(){return{}}})),l.directive("ngView",d),l.directive("ngView",p),d.$inject=["$route","$anchorScroll","$animate"],p.$inject=["$compile","$controller","$route"]}(window,window.angular)},function(e,t,n){"use strict";var r=n(228);function i(e,t,n){return{restrict:"AE",replace:!0,scope:{opts:"=",marked:"=",compile:"@",src:"="},link:function(i,o,a){function s(t){t=r(String(t||"")),o.html(e(t,i.opts||null)),i.$eval(a.compile)&&n(o.contents())(i.$parent)}a.marked?(s(i.marked),i.$watch("marked",s)):a.src?i.$watch("src",(function(e){t(e,!0).then((function(e){s(e)}),(function(){s(""),i.$emit("$markedIncludeError",a.src)}))})):s(o.text())}}}i.$inject=["marked","$templateRequest","$compile"],e.exports=angular.module("hc.marked",[]).directive("marked",i).provider("marked",(function(){var e=this;e.setRenderer=function(e){this.renderer=e},e.setOptions=function(e){this.defaults=e},e.$get=["$log","$window",function(t,r){var i;try{i=n(229)}catch(e){i=r.marked||marked}if(!angular.isUndefined(i)){var o=new i.Renderer;if(e.renderer)for(var a=Object.keys(e.renderer),s=a.length;s--;)o[a[s]]=e.renderer[a[s]];var l=o.code.bind(o);o.code=function(e,t,n){return u(l(e,t,n))};var c=o.codespan.bind(o);return o.codespan=function(e){return u(c(e))},e.defaults=e.defaults||{},e.defaults.renderer=o,i.setOptions(e.defaults),i}function u(e){return"<span ng-non-bindable>"+e+"</span>"}t.error("angular-marked Error: marked not loaded. See installation instructions.")}]})).name},function(e,t){e.exports=function(e){if(!e)return e;var t,n=e.replace(/\t/g," ").split(/\r?\n/),r=null,i=n.length;for(t=0;t<i;t++){var o=n[t],a=o.match(/^(\s*)/)[0].length;a!==o.length&&(r=a<r||null===r?a:r)}if(null!==r&&r>0)for(t=0;t<i;t++)n[t]=n[t].substr(r);return n.join("\n")}},function(e,t,n){(function(t){!function(t){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:g,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:g,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:g,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n?(?!hr|heading|lheading| {0,3}>|tag)[^\n]+)+)/,text:/^[^\n]+/};function r(e){this.tokens=[],this.tokens.links={},this.options=e||v.defaults,this.rules=n.normal,this.options.gfm&&(this.options.tables?this.rules=n.tables:this.rules=n.gfm)}n._label=/(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"|[^"]|"[^"\n]*")*"|'\n?(?:[^'\n]+\n?)*'|\([^()]*\))/,n.def=d(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d+\.)/,n.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,n.item=d(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=d(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b",n.html=d(n.html).replace("comment",/<!--[\s\S]*?-->/).replace("closed",/<(tag)[\s\S]+?<\/\1>/).replace("closing",/<tag(?:"[^"]*"|'[^']*'|\s[^'"\/>\s]*)*?\/?>/).replace(/tag/g,n._tag).getRegex(),n.paragraph=d(n.paragraph).replace("hr",n.hr).replace("heading",n.heading).replace("lheading",n.lheading).replace("tag","<"+n._tag).getRegex(),n.blockquote=d(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=m({},n),n.gfm=m({},n.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),n.gfm.paragraph=d(n.paragraph).replace("(?!","(?!"+n.gfm.fences.source.replace("\\1","\\2")+"|"+n.list.source.replace("\\1","\\3")+"|").getRegex(),n.tables=m({},n.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),r.rules=n,r.lex=function(e,t){return new r(t).lex(e)},r.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},r.prototype.token=function(e,t){var r,i,o,a,s,l,c,u,d,p,f;for(e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(t&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),l={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},u=0;u<l.align.length;u++)/^ *-+: *$/.test(l.align[u])?l.align[u]="right":/^ *:-+: *$/.test(l.align[u])?l.align[u]="center":/^ *:-+ *$/.test(l.align[u])?l.align[u]="left":l.align[u]=null;for(u=0;u<l.cells.length;u++)l.cells[u]=l.cells[u].split(/ *\| */);this.tokens.push(l)}else if(o=this.rules.hr.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"hr"});else if(o=this.rules.blockquote.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"blockquote_start"}),o=o[0].replace(/^ *> ?/gm,""),this.token(o,t),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),f=(a=o[2]).length>1,this.tokens.push({type:"list_start",ordered:f,start:f?+a:""}),r=!1,p=(o=o[0].match(this.rules.item)).length,u=0;u<p;u++)c=(l=o[u]).length,~(l=l.replace(/^ *([*+-]|\d+\.) +/,"")).indexOf("\n ")&&(c-=l.length,l=this.options.pedantic?l.replace(/^ {1,4}/gm,""):l.replace(new RegExp("^ {1,"+c+"}","gm"),"")),this.options.smartLists&&u!==p-1&&(a===(s=n.bullet.exec(o[u+1])[0])||a.length>1&&s.length>1||(e=o.slice(u+1).join("\n")+e,u=p-1)),i=r||/\n\n(?!\s*$)/.test(l),u!==p-1&&(r="\n"===l.charAt(l.length-1),i||(i=r)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(l,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),o[3]&&(o[3]=o[3].substring(1,o[3].length-1)),d=o[1].toLowerCase(),this.tokens.links[d]||(this.tokens.links[d]={href:o[2],title:o[3]});else if(t&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),l={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u<l.align.length;u++)/^ *-+: *$/.test(l.align[u])?l.align[u]="right":/^ *:-+: *$/.test(l.align[u])?l.align[u]="center":/^ *:-+ *$/.test(l.align[u])?l.align[u]="left":l.align[u]=null;for(u=0;u<l.cells.length;u++)l.cells[u]=l.cells[u].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(l)}else if(o=this.rules.lheading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:"="===o[2]?1:2,text:o[1]});else if(t&&(o=this.rules.paragraph.exec(e)))e=e.substring(o[0].length),this.tokens.push({type:"paragraph",text:"\n"===o[1].charAt(o[1].length-1)?o[1].slice(0,-1):o[1]});else if(o=this.rules.text.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"text",text:o[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens};var i={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:g,tag:/^<!--[\s\S]*?-->|^<\/?[a-zA-Z0-9\-]+(?:"[^"]*"|'[^']*'|\s[^<'">\/\s]*)*?\/?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:g,text:/^[\s\S]+?(?=[\\<!\[`*]|\b_| {2,}\n|$)/};function o(e,t){if(this.options=t||v.defaults,this.links=e,this.rules=i.normal,this.renderer=this.options.renderer||new a,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=i.breaks:this.rules=i.gfm:this.options.pedantic&&(this.rules=i.pedantic)}function a(e){this.options=e||{}}function s(){}function l(e){this.tokens=[],this.token=null,this.options=e||v.defaults,this.options.renderer=this.options.renderer||new a,this.renderer=this.options.renderer,this.renderer.options=this.options}function c(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function u(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}function d(e,t){return e=e.source,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function p(e,t){return f[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?f[" "+e]=e+"/":f[" "+e]=e.replace(/[^/]*$/,"")),e=f[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}i._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,i._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,i.autolink=d(i.autolink).replace("scheme",i._scheme).replace("email",i._email).getRegex(),i._inside=/(?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]]|\](?=[^\[]*\]))*/,i._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,i.link=d(i.link).replace("inside",i._inside).replace("href",i._href).getRegex(),i.reflink=d(i.reflink).replace("inside",i._inside).getRegex(),i.normal=m({},i),i.pedantic=m({},i.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),i.gfm=m({},i.normal,{escape:d(i.escape).replace("])","~|])").getRegex(),url:d(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",i._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:d(i.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),i.breaks=m({},i.gfm,{br:d(i.br).replace("{2,}","*").getRegex(),text:d(i.gfm.text).replace("{2,}","*").getRegex()}),o.rules=i,o.output=function(e,t,n){return new o(t,n).output(e)},o.prototype.output=function(e){for(var t,n,r,i,o="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),o+=i[1];else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),r="@"===i[2]?"mailto:"+(n=c(this.mangle(i[1]))):n=c(i[1]),o+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.tag.exec(e))!this.inLink&&/^<a /i.test(i[0])?this.inLink=!0:this.inLink&&/^<\/a>/i.test(i[0])&&(this.inLink=!1),e=e.substring(i[0].length),o+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):c(i[0]):i[0];else if(i=this.rules.link.exec(e))e=e.substring(i[0].length),this.inLink=!0,o+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){o+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,o+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),o+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),o+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),o+=this.renderer.codespan(c(i[2].trim(),!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),o+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),o+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),o+=this.renderer.text(c(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else i[0]=this.rules._backpedal.exec(i[0])[0],e=e.substring(i[0].length),"@"===i[2]?r="mailto:"+(n=c(i[0])):(n=c(i[0]),r="www."===i[1]?"http://"+n:n),o+=this.renderer.link(r,null,n);return o},o.prototype.outputLink=function(e,t){var n=c(t.href),r=t.title?c(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,c(e[1]))},o.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},o.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;i<r;i++)t=e.charCodeAt(i),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},a.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'<pre><code class="'+this.options.langPrefix+c(t,!0)+'">'+(n?e:c(e,!0))+"\n</code></pre>\n":"<pre><code>"+(n?e:c(e,!0))+"\n</code></pre>"},a.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},a.prototype.html=function(e){return e},a.prototype.heading=function(e,t,n){return"<h"+t+' id="'+this.options.headerPrefix+n.toLowerCase().replace(/[^\w]+/g,"-")+'">'+e+"</h"+t+">\n"},a.prototype.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},a.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+r+">\n"},a.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},a.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},a.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},a.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},a.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},a.prototype.strong=function(e){return"<strong>"+e+"</strong>"},a.prototype.em=function(e){return"<em>"+e+"</em>"},a.prototype.codespan=function(e){return"<code>"+e+"</code>"},a.prototype.br=function(){return this.options.xhtml?"<br/>":"<br>"},a.prototype.del=function(e){return"<del>"+e+"</del>"},a.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(u(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!h.test(e)&&(e=p(this.options.baseUrl,e));var i='<a href="'+e+'"';return t&&(i+=' title="'+t+'"'),i+=">"+n+"</a>"},a.prototype.image=function(e,t,n){this.options.baseUrl&&!h.test(e)&&(e=p(this.options.baseUrl,e));var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"},a.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return""+n},s.prototype.br=function(){return""},l.parse=function(e,t){return new l(t).parse(e)},l.prototype.parse=function(e){this.inline=new o(e.links,this.options),this.inlineText=new o(e.links,m({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},l.prototype.next=function(){return this.token=this.tokens.pop()},l.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},l.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},l.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,u(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i="",o="";for(n="",e=0;e<this.token.header.length;e++)n+=this.renderer.tablecell(this.inline.output(this.token.header[e]),{header:!0,align:this.token.align[e]});for(i+=this.renderer.tablerow(n),e=0;e<this.token.cells.length;e++){for(t=this.token.cells[e],n="",r=0;r<t.length;r++)n+=this.renderer.tablecell(this.inline.output(t[r]),{header:!1,align:this.token.align[r]});o+=this.renderer.tablerow(n)}return this.renderer.table(i,o);case"blockquote_start":for(o="";"blockquote_end"!==this.next().type;)o+=this.tok();return this.renderer.blockquote(o);case"list_start":o="";for(var a=this.token.ordered,s=this.token.start;"list_end"!==this.next().type;)o+=this.tok();return this.renderer.list(o,a,s);case"list_item_start":for(o="";"list_item_end"!==this.next().type;)o+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(o);case"loose_item_start":for(o="";"list_item_end"!==this.next().type;)o+=this.tok();return this.renderer.listitem(o);case"html":var l=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text);return this.renderer.html(l);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}};var f={},h=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function g(){}function m(e){for(var t,n,r=1;r<arguments.length;r++)for(n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function v(e,t,n){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(n||"function"==typeof t){n||(n=t,t=null);var i,o,a=(t=m({},v.defaults,t||{})).highlight,s=0;try{i=r.lex(e,t)}catch(e){return n(e)}o=i.length;var u=function(e){if(e)return t.highlight=a,n(e);var r;try{r=l.parse(i,t)}catch(t){e=t}return t.highlight=a,e?n(e):n(null,r)};if(!a||a.length<3)return u();if(delete t.highlight,!o)return u();for(;s<i.length;s++)!function(e){"code"!==e.type?--o||u():a(e.text,e.lang,(function(t,n){return t?u(t):null==n||n===e.text?--o||u():(e.text=n,e.escaped=!0,void(--o||u()))}))}(i[s])}else try{return t&&(t=m({},v.defaults,t)),l.parse(r.lex(e,t),t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",(t||v.defaults).silent)return"<p>An error occurred:</p><pre>"+c(e.message+"",!0)+"</pre>";throw e}}g.exec=g,v.options=v.setOptions=function(e){return m(v.defaults,e),v},v.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new a,xhtml:!1,baseUrl:null},v.Parser=l,v.parser=l.parse,v.Renderer=a,v.TextRenderer=s,v.Lexer=r,v.lexer=r.lex,v.InlineLexer=o,v.inlineLexer=o.output,v.parse=v,e.exports=v}(this||"undefined"!=typeof window&&window)}).call(this,n(35))},function(e,t,n){n(231),n(233),n(422),n(424),n(428),n(431),n(435),n(437),n(441),n(443)},function(e,t,n){"use strict";const r=n(232),i=n(21),o=n(33);angular.module("dbt").directive("graphLauncher",["$state","$q","graph","selectorService","project","trackingService","locationService",function(e,t,n,a,s,l,c){return{restrict:"EA",replace:!0,scope:{},templateUrl:r,link:function(t,r){t.filters_visible=!1,t.graphService=n,t.selectorService=a,t.allSelected=!0;var s={tags:{visible:!1},packages:{visible:!1},resource_types:{visible:!1}};t.onWindowClick=function(e){o(e.target);var t=o(e.target).closest(".dropup");t.length||(s.tags.visible=!1,s.packages.visible=!1);var n=t.data("form-type");i.each(s,(function(e,t){t!=n&&(e.visible=!1)})),o(e.target).closest("#graph-viz-wrapper").length&&setTimeout((function(){o(":focus").blur()}))},t.onSelectClick=function(e){i.each(s,(function(t,n){n==e&&(t.visible=!t.visible,t.visible||o(":focus").blur())}))},t.isVisible=function(e){return s[e].visible},t.isSelected=function(e,t){return-1!=a.selection.dirty[e].indexOf(t)},t.onSelectAll=function(e,n,r){var i=a.selection.dirty;i[e]=n?[...a.options[e]]:[],t.allSelected=!t.allSelected,r.preventDefault()},t.onItemSelect=function(e,n,r){var o=a.selection.dirty;t.isSelected(e,n)?o[e]=i.without(o[e],n):o[e]=i.union(o[e],[n]),r.preventDefault()},t.onSelectBlur=function(e,n){n&&(n.relatedTarget&&"SELECT"!=n.relatedTarget.tagName||t.isVisible(e)&&o(n.target).focus())},t.resourceTypeTitle=function(e){return"analysis"==e?"Analyses":e[0].toUpperCase()+e.slice(1)+"s"},t.selectionLabel=function(e,t){var n=a.selection.dirty[e],r=a.options[e];return 0==n.length?"None selected":1==n.length?n[0]||t:n.length==r.length?"All selected":n.length+" selected"},t.onUpdateSelector=function(){var e=a.updateSelection(),t=n.updateGraph(e);l.track_graph_interaction("update-graph",t.length)},t.showExpanded=function(){var e=a.getViewNode(),t=e?e.name:null;if(e&&"source"==e.resource_type)var r=n.showFullGraph("source:"+e.source_name+"."+e.name);else if(e&&"exposure"==e.resource_type)r=n.showFullGraph("exposure:"+e.name);else if(e&&"metric"==e.resource_type)r=n.showFullGraph("metric:"+e.name);else if(e&&"semantic_model"==e.resource_type)r=n.showFullGraph("semantic_model:"+e.name);else if(e&&"saved_query"==e.resource_type)r=n.showFullGraph("saved_query:"+e.name);else r=n.showFullGraph(t);l.track_graph_interaction("show-expanded",r.length)},t.showContracted=function(){var e=a.getViewNode();if(e&&"source"==e.resource_type)var t=n.showVerticalGraph("source:"+e.source_name+"."+e.name,!0);else if(e&&"exposure"==e.resource_type)t=n.showVerticalGraph("exposure:"+e.name,!0);else if(e&&"metric"==e.resource_type)t=n.showVerticalGraph("metric:"+e.name,!0);else if(e&&"semantic_model"==e.resource_type)t=n.showVerticalGraph("semantic_model:"+e.name,!0);else if(e&&"saved_query"==e.resource_type)t=n.showVerticalGraph("saved_query:"+e.name,!0);else t=n.showVerticalGraph(e.name,!0);c.clearState(),l.track_graph_interaction("show-contracted",t.length)},t.closeGraph=function(){n.hideGraph(),c.clearState()},t.onLauncherClick=function(){var r=a.getViewNode();if(r)a.resetSelection(r),t.showContracted();else if(e.params.source){a.resetSelection(),t.showExpanded();var i=a.selectSource(e.params.source,{children:!0});setTimeout((function(){n.updateGraph(i)}))}else a.resetSelection(),t.showExpanded()},t.$watch((function(){return a.selection.dirty}),(function(e,t){if(a.isDirty()){var r=n.graph.pristine.dag,o=n.graph.pristine.nodes,s=a.selection.clean,l=a.selection.dirty,c=a.selectNodes(r,o,s),u=a.selectNodes(r,o,l),d=i.difference(c.selected,u.selected);n.markDirty(d)}else n.markAllClean()}),!0)}}}])},function(e,t){var n="/components/graph/graph-launcher.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'\n<div class="launcher" data-launcher="{{ graphService.orientation }}" ng-class="{on: graphService.expanded}">\n <style>\n .dirty-submit {\n background-color: #0094b3 !important;\n color: white !important;\n transition: .5s linear;\n }\n\n #submit-graph-selection:hover {\n background-color: #0094b3 !important;\n color: white !important;\n }\n\n .dropup select:hover~.field-label,\n .dropup select:focus~.field-label {\n color: #919599;\n }\n\n .dropup ul:hover~.field-label,\n .dropup ul:focus~.field-label {\n color: #919599;\n }\n\n .dropdown-menu {\n width: 100%;\n }\n\n .dropdown-menu li {\n padding: 2px 10px;\n }\n\n .dropdown-menu li:hover {\n background-color: #ededee !important;\n }\n\n li .checked {\n width: 10px;\n float: right;\n }\n\n </style>\n\n <div class="launcher-section">\n <div class="launcher-btn">\n <a\n class="btn btn-info btn-pill btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="View Lineage Graph"\n ng-click="onLauncherClick()">\n <svg class="icn icn-md"><use xlink:href="#icn-flow"></use></svg>\n </a>\n </div>\n <div class="launcher-content" ng-click="onWindowClick($event)">\n <div class="launcher-window">\n <div class="launcher-header">\n <div class="launcher-cell">\n <h6>\n Lineage Graph\n </h6>\n </div>\n <div class="launcher-actions">\n <a\n ng-click="showExpanded()"\n ng-show="graphService.orientation == \'sidebar\'"\n data-large\n class="btn btn-text btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="View Fullscreen">\n <svg class="icn icn-md"><use xlink:href="#icn-expand"></use></svg>\n </a>\n <a\n ng-click="showContracted()"\n ng-show="graphService.orientation == \'fullscreen\' && selectorService.getViewNode()"\n class="btn btn-text btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="View Fullscreen">\n <svg class="icn icn-md"><use xlink:href="#icn-contract"></use></svg>\n </a>\n </div>\n </div>\n <div class="launcher-body">\n <div class="launcher-embed">\n <div ng-controller="GraphCtrl" style="height: 100%" id="graph-viz-wrapper">\n <div graph-viz\n viz-options="graph.options"\n viz-elements="graph.elements"\n viz-style="graph.style"\n viz-layout="graph.layout"\n viz-ready="graph.ready"\n viz-rendered="graphRendered"\n viz-size="{size: graphService.orientation, expanded: graphService.expanded}"></div>\n </div>\n </div>\n </div>\n <div class="launcher-footer">\n <div class="launcher-cell launcher-flush">\n <div class="component bg-navy text-navy-lightest margin">\n <form class="fields fields-flush launcher-hide-sidebar"\n ng-class="{visible: filters_visible}"\n ng-submit="onUpdateSelector()">\n <label class="field">\n <div class="dropdown dropup"\n ng-class="{\'open\': isVisible(\'resource_types\')}"\n data-form-type="resource_types">\n <select\n data-toggle="dropdown"\n class=\'field-input form-control input-dark\'\n ng-click="onSelectClick(\'resource_types\')"\n ng-blur="onSelectBlur(\'resource_types\')">\n <option selected disabled hidden>\n <span>{{ selectionLabel(\'resource_types\') }}</span>\n </option>\n </select>\n <ul\n class="dropdown-menu"\n ng-show="isVisible(\'resource_types\')">\n <li ng-click="onSelectAll(\'resource_types\', !allSelected, $event)">\n <strong class="text-dark">Select All</strong>\n <span ng-show="allSelected">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n <li\n class=\'text-dark\'\n ng-repeat="item in selectorService.options.resource_types"\n ng-click="onItemSelect(\'resource_types\', item, $event)">\n {{ resourceTypeTitle(item) }}\n <span ng-show="isSelected(\'resource_types\', item)">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n </ul>\n <div class="field-label">resources</div>\n </div>\n </label>\n <label class="field">\n <div class="dropdown dropup"\n ng-class="{\'open\': isVisible(\'packages\')}"\n data-form-type="packages">\n <select\n data-toggle="dropdown"\n class=\'field-input form-control input-dark\'\n ng-click="onSelectClick(\'packages\')"\n ng-blur="onSelectBlur(\'packages\')">\n <option selected disabled hidden>\n <span>{{ selectionLabel(\'packages\') }}</span>\n </option>\n </select>\n <ul\n class="dropdown-menu"\n ng-show="isVisible(\'packages\')">\n <li ng-click="onSelectAll(\'packages\', !allSelected, $event)">\n <strong class="text-dark">Select All</strong>\n <span ng-show="allSelected">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n <li\n class=\'text-dark\'\n ng-repeat="item in selectorService.options.packages"\n ng-click="onItemSelect(\'packages\', item, $event)">\n {{ item }}\n <span ng-show="isSelected(\'packages\', item)">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n </ul>\n <div class="field-label">packages</div>\n </div>\n </label>\n <label class="field">\n <div class="dropdown dropup"\n ng-class="{\'open\': isVisible(\'tags\')}"\n data-form-type="tags">\n <select\n data-toggle="dropdown"\n class=\'field-input form-control input-dark\'\n ng-click="onSelectClick(\'tags\')"\n ng-blur="onSelectBlur(\'tags\', $event)">\n <option selected disabled hidden>\n <span>{{ selectionLabel(\'tags\', \'untagged\') }}</span>\n </option>\n </select>\n <ul\n class="dropdown-menu"\n ng-show="isVisible(\'tags\')">\n <li ng-click="onSelectAll(\'tags\', !allSelected, $event)">\n <strong class="text-dark">Select All</strong>\n <span ng-show="allSelected">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n <li\n class=\'text-dark\'\n ng-repeat="item in selectorService.options.tags"\n ng-click="onItemSelect(\'tags\', item, $event)">\n <span ng-if=\'item == null\'>untagged</span>\n <span ng-if=\'item != null\'>{{ item }}</span>\n <span ng-show="isSelected(\'tags\', item)">\n <svg class="checked" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>\n </span>\n </li>\n </ul>\n <div class="field-label">tags</div>\n </div>\n </label>\n <label class="field" style="flex: 4 0 160px">\n <input type="text"\n class="field-input form-control input-dark"\n ng-model="selectorService.selection.dirty.include"\n placeholder="..." />\n <div class="field-label">--select</div>\n </label>\n <label class="field" style="flex: 4 0 160px">\n <input type="text"\n class="field-input form-control input-dark"\n ng-model="selectorService.selection.dirty.exclude"\n placeholder="..." />\n <div class="field-label">--exclude</div>\n </label>\n <label class="field" style="flex: 0 0 80px">\n <input type="submit"\n id="submit-graph-selection"\n class="field-input form-control input-dark"\n ng-class="{\'dirty-submit\': selectorService.isDirty()}"\n value="Update Graph" />\n <div class="field-label text-center" style="width: 100%"></div>\n </label>\n <label class="field" style="flex: 0 0 80px">\n <button type="button"\n ng-click="closeGraph()"\n class="field-input form-control input-dark text-center"\n ><svg class="icn icn-md"><use xlink:href="#icn-close"></use></svg>\n </button>\n </label>\n </form>\n </div>\n </div>\n \x3c!--<div class="launcher-spacer"></div>--\x3e\n <div class="launcher-actions" ng-show="graphService.orientation == \'sidebar\'">\n <button type="button"\n ng-click="closeGraph()"\n class="btn btn-text btn-lg btn-icon btn-shadow"\n data-toggle="tooltip"\n title="Close Graph"><svg class="icn icn-md"><use xlink:href="#icn-close"></use></svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";n(234);const r=n(236),i=n(21),o=n(33),a=n(237);n(244)(a,o);const s=n(245);a.use(s),angular.module("dbt").directive("graphViz",["$q","$state","graph","selectorService","project","$timeout",function(e,t,n,s,l,c){return{restrict:"EA",replace:!0,scope:{vizElements:"=",vizLayout:"=",vizOptions:"=",vizStyle:"=",vizReady:"=",vizExtensions:"=",vizHideOptions:"=",vizSize:"=",vizRendered:"="},link:function(e,r,d,p){var f=u;e.$watch("vizSize",(function(e,t){c((function(){h.resize(),"fullscreen"==e?h.fit(100):h.fit(25)}))})),o(".viz-option").on("changed.bs.select",(function(e){o(e.target).data("option"),o(e.target).val()}));var h=a(i.assign({},e.vizOptions,{container:document.getElementById("cy"),style:e.vizStyle||[],elements:e.vizElements||[],layout:e.vizLayout||{name:"circle"}}));window.graph||(window.graph=h);e.graphReady&&o(window).on("load",(function(){h.ready(e.graphReady)}));h.on("select",(function(t){var r=t.target;e.$apply((function(){n.selectNode(r.id()),h.forceRender()}))})),h.on("unselect",(function(t){t.target;e.$apply((function(){n.deselectNodes(),h.forceRender()}))})),e.$watch("vizElements",(function(t,n){h.remove(h.elements()),h.add(t),f(e,h)})),e.$watch("vizLayout",(function(t,n){t!==n&&f(e,h)}),!0),e.$watch("vizOptions",(function(e,t){e!==t&&i.each(e,(function(e,t){h[t],h[t](e)}))}),!0),e.$watch("vizStyle",(function(e,t){e!==t&&h.setStyle(e)}),!0),e.$on("$destroy",(function(){h.destroy()}));h.contextMenus({menuItems:[{id:"jump",content:"Refocus on Node",selector:"node",tooltipText:"Focus on the lineage for this node",onClickFunction:function(e){var n=e.target||e.cyTarget,r=n.id();t.go("dbt."+n.data("resource_type"),{unique_id:r})},show:!0},{id:"docs",content:"View documentation",selector:"node",tooltipText:"Jump to the documentation for this node",onClickFunction:function(e){var r=e.target||e.cyTarget,i=r.id();t.go("dbt."+r.data("resource_type"),{unique_id:i}),n.hideGraph()},show:!0},{id:"hide-before-here",content:"Hide this and parents",selector:"node",onClickFunction:function(e){var t=(e.target||e.cyTarget).id(),r=l.node(t);if(r){var i=s.excludeNode(r,{parents:!0});n.updateGraph(i)}},show:!0},{id:"hide-after-here",content:"Hide this and children",selector:"node",onClickFunction:function(e){var t=(e.target||e.cyTarget).id(),r=l.node(t);if(r){var i=s.excludeNode(r,{children:!0});n.updateGraph(i)}},show:!0},{id:"export-png",content:"Export PNG",selector:"node",coreAsWell:!0,onClickFunction:function(e){var t=h.png({bg:"#005e7a"}),n=document.createElement("a");n.download="dbt-dag.png",n.href=t,n.click()},show:!0}],menuItemClasses:["graph-node-context-menu-item"],contextMenuClasses:["graph-node-context-menu"]})},templateUrl:r};function u(e,t){if(e.vizLayout&&e.vizLayout.name){t.layout(e.vizLayout).run();e.vizRendered(t)}}}])},function(e,t,n){var r=n(235);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,'\n.cy-context-menus-cxt-menu {\n display:none;\n z-index:1000;\n position:absolute;\n border:1px solid #A0A0A0;\n padding: 0;\n margin: 0;\n width:auto;\n}\n\n.cy-context-menus-cxt-menuitem {\n display:block;\n z-index:1000;\n width: 100%;\n padding: 3px 20px;\n position:relative;\n margin:0;\n background-color:#f8f8f8;\n font-weight:normal;\n font-size: 12px;\n white-space:nowrap;\n border: 0;\n text-align: left;\n}\n\n.cy-context-menus-cxt-menuitem:enabled {\n color: #000000;\n}\n\n.cy-context-menus-ctx-operation:focus {\n outline: none;\n}\n\n.cy-context-menus-cxt-menuitem:hover {\n color: #ffffff;\n text-decoration: none;\n background-color: #0B9BCD;\n background-image: none;\n cursor: pointer;\n}\n\n.cy-context-menus-cxt-menuitem[content]:before {\n content:attr(content);\n}\n\n.cy-context-menus-divider {\n border-bottom:1px solid #A0A0A0;\n}\n\n\nselect:not([multiple]).form-control {\n background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cG9seWxpbmUgcG9pbnRzPSI0LjUgNiA4IDkuNSAxMS41IDYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwOTRiMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==");\n background-size: 1.25em 1.25em;\n}\n',""])},function(e,t){var n="/components/graph/graph-viz.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,"<div id='cy' style=\"width: 100%; height: 100%; \"></div>\n")}]),e.exports=n},function(e,t,n){(function(t){var r;"undefined"!=typeof self&&self,r=function(e,n){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=20)}([function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(3),o=i?i.navigator:null,a=i?i.document:null,s=r(""),l=r({}),c=r((function(){})),u="undefined"==typeof HTMLElement?"undefined":r(HTMLElement),d=function(e){return e&&e.instanceString&&p.fn(e.instanceString)?e.instanceString():null},p={defined:function(e){return null!=e},string:function(e){return null!=e&&(void 0===e?"undefined":r(e))==s},fn:function(e){return null!=e&&(void 0===e?"undefined":r(e))===c},array:function(e){return Array.isArray?Array.isArray(e):null!=e&&e instanceof Array},plainObject:function(e){return null!=e&&(void 0===e?"undefined":r(e))===l&&!p.array(e)&&e.constructor===Object},object:function(e){return null!=e&&(void 0===e?"undefined":r(e))===l},number:function(e){return null!=e&&(void 0===e?"undefined":r(e))===r(1)&&!isNaN(e)},integer:function(e){return p.number(e)&&Math.floor(e)===e},bool:function(e){return null!=e&&(void 0===e?"undefined":r(e))===r(!0)},htmlElement:function(e){return"undefined"===u?void 0:null!=e&&e instanceof HTMLElement},elementOrCollection:function(e){return p.element(e)||p.collection(e)},element:function(e){return"collection"===d(e)&&e._private.single},collection:function(e){return"collection"===d(e)&&!e._private.single},core:function(e){return"core"===d(e)},style:function(e){return"style"===d(e)},stylesheet:function(e){return"stylesheet"===d(e)},event:function(e){return"event"===d(e)},thread:function(e){return"thread"===d(e)},fabric:function(e){return"fabric"===d(e)},emptyString:function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},nonemptyString:function(e){return!(!e||!p.string(e)||""===e||e.match(/^\s+$/))},domElement:function(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement},boundingBox:function(e){return p.plainObject(e)&&p.number(e.x1)&&p.number(e.x2)&&p.number(e.y1)&&p.number(e.y2)},promise:function(e){return p.object(e)&&p.fn(e.then)},touch:function(){return i&&("ontouchstart"in i||i.DocumentTouch&&a instanceof DocumentTouch)},gecko:function(){return i&&("undefined"!=typeof InstallTrigger||"MozAppearance"in a.documentElement.style)},webkit:function(){return i&&("undefined"!=typeof webkitURL||"WebkitAppearance"in a.documentElement.style)},chromium:function(){return i&&"undefined"!=typeof chrome},khtml:function(){return o&&o.vendor.match(/kde/i)},khtmlEtc:function(){return p.khtml()||p.webkit()||p.chromium()},ms:function(){return o&&o.userAgent.match(/msie|trident|edge/i)},windows:function(){return o&&o.appVersion.match(/Win/i)},mac:function(){return o&&o.appVersion.match(/Mac/i)},linux:function(){return o&&o.appVersion.match(/Linux/i)},unix:function(){return o&&o.appVersion.match(/X11/i)}};e.exports=p},function(e,t,n){"use strict";var r=n(0),i=n(2),o={MAX_INT:Number.MAX_SAFE_INTEGER||9007199254740991,trueify:function(){return!0},falsify:function(){return!1},zeroify:function(){return 0},noop:function(){},error:function(e){console.error?(console.error.apply(console,arguments),console.trace&&console.trace()):(console.log.apply(console,arguments),console.trace&&console.trace())},clone:function(e){return this.extend({},e)},copy:function(e){return null==e?e:r.array(e)?e.slice():r.plainObject(e)?this.clone(e):e},copyArray:function(e){return e.slice()},clonePosition:function(e){return{x:e.x,y:e.y}},uuid:function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t}};o.makeBoundingBox=i.makeBoundingBox.bind(i),o._staticEmptyObject={},o.staticEmptyObject=function(){return o._staticEmptyObject},o.extend=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),o=0;o<i.length;o++){var a=i[o];e[a]=r[a]}}return e},o.assign=o.extend,o.default=function(e,t){return void 0===e?t:e},o.removeFromArray=function(e,t,n){for(var r=e.length;r>=0&&(e[r]!==t||(e.splice(r,1),n));r--);},o.clearArray=function(e){e.splice(0,e.length)},o.push=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},o.getPrefixedProperty=function(e,t,n){return n&&(t=this.prependCamel(n,t)),e[t]},o.setPrefixedProperty=function(e,t,n,r){n&&(t=this.prependCamel(n,t)),e[t]=r},[n(21),n(22),{memoize:n(13)},n(23),n(24),n(25),n(27)].forEach((function(e){o.extend(o,e)})),e.exports=o},function(e,t,n){"use strict";var r={arePositionsSame:function(e,t){return e.x===t.x&&e.y===t.y},copyPosition:function(e){return{x:e.x,y:e.y}},modelToRenderedPosition:function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},renderedToModelPosition:function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},array2point:function(e){return{x:e[0],y:e[1]}},deg2rad:function(e){return Math.PI*e/180},getAngleFromDisp:function(e,t){return Math.atan2(t,e)-Math.PI/2}};r.log2=Math.log2||function(e){return Math.log(e)/Math.log(2)},r.signum=function(e){return e>0?1:e<0?-1:0},r.dist=function(e,t){return Math.sqrt(r.sqdist(e,t))},r.sqdist=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},r.qbezierAt=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},r.qbezierPtAt=function(e,t,n,i){return{x:r.qbezierAt(e.x,t.x,n.x,i),y:r.qbezierAt(e.y,t.y,n.y,i)}},r.lineAt=function(e,t,n,i){var o=t.x-e.x,a=t.y-e.y,s=r.dist(e,t),l=o/s,c=a/s;return n=null==n?0:n,i=null!=i?i:n*s,{x:e.x+l*i,y:e.y+c*i}},r.lineAtDist=function(e,t,n){return r.lineAt(e,t,void 0,n)},r.triangleAngle=function(e,t,n){var i=r.dist(t,n),o=r.dist(e,n),a=r.dist(e,t);return Math.acos((i*i+o*o-a*a)/(2*i*o))},r.bound=function(e,t,n){return Math.max(e,Math.min(n,t))},r.makeBoundingBox=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},r.updateBoundingBox=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},r.expandBoundingBoxByPoint=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},r.expandBoundingBox=function(e,t){return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},r.boundingBoxesIntersect=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2<t.x1||t.x2<e.x1||e.y2<t.y1||t.y2<e.y1||e.y1>t.y2||t.y1>e.y2)},r.inBoundingBox=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},r.pointInBoundingBox=function(e,t){return this.inBoundingBox(e,t.x,t.y)},r.boundingBoxInBoundingBox=function(e,t){return r.inBoundingBox(e,t.x1,t.y1)&&r.inBoundingBox(e,t.x2,t.y2)},r.roundRectangleIntersectLine=function(e,t,n,r,i,o,a){var s=this.getRoundRectangleRadius(i,o),l=i/2,c=o/2,u=void 0,d=n-l+s-a,p=r-c-a,f=n+l-s+a,h=p;if((u=this.finiteLinesIntersect(e,t,n,r,d,p,f,h,!1)).length>0)return u;var g=n+l+a,m=r-c+s-a,v=g,b=r+c-s+a;if((u=this.finiteLinesIntersect(e,t,n,r,g,m,v,b,!1)).length>0)return u;var y=n-l+s-a,x=r+c+a,w=n+l-s+a,k=x;if((u=this.finiteLinesIntersect(e,t,n,r,y,x,w,k,!1)).length>0)return u;var A=n-l-a,E=r-c+s-a,S=A,$=r+c-s+a;if((u=this.finiteLinesIntersect(e,t,n,r,A,E,S,$,!1)).length>0)return u;var C=void 0,_=n-l+s,O=r-c+s;if((C=this.intersectLineCircle(e,t,n,r,_,O,s+a)).length>0&&C[0]<=_&&C[1]<=O)return[C[0],C[1]];var T=n+l-s,j=r-c+s;if((C=this.intersectLineCircle(e,t,n,r,T,j,s+a)).length>0&&C[0]>=T&&C[1]<=j)return[C[0],C[1]];var P=n+l-s,D=r+c-s;if((C=this.intersectLineCircle(e,t,n,r,P,D,s+a)).length>0&&C[0]>=P&&C[1]>=D)return[C[0],C[1]];var R=n-l+s,I=r+c-s;return(C=this.intersectLineCircle(e,t,n,r,R,I,s+a)).length>0&&C[0]<=R&&C[1]>=I?[C[0],C[1]]:[]},r.inLineVicinity=function(e,t,n,r,i,o,a){var s=a,l=Math.min(n,i),c=Math.max(n,i),u=Math.min(r,o),d=Math.max(r,o);return l-s<=e&&e<=c+s&&u-s<=t&&t<=d+s},r.inBezierVicinity=function(e,t,n,r,i,o,a,s,l){var c=Math.min(n,a,i)-l,u=Math.max(n,a,i)+l,d=Math.min(r,s,o)-l,p=Math.max(r,s,o)+l;return!(e<c||e>u||t<d||t>p)},r.solveQuadratic=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var o=Math.sqrt(i),a=2*e;return[(-t+o)/a,(-t-o)/a]},r.solveCubic=function(e,t,n,r,i){var o,a=void 0,s=void 0,l=void 0,c=void 0,u=void 0,d=void 0,p=void 0;return s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),o=(a=(3*n-t*t)/9)*a*a+(s/=54)*s,i[1]=0,d=t/3,o>0?(c=(c=s+Math.sqrt(o))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),u=(u=s-Math.sqrt(o))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-d+c+u,d+=(c+u)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-u+c)/2,i[3]=d,void(i[5]=-d)):(i[5]=i[3]=0,0===o?(p=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=2*p-d,void(i[4]=i[2]=-(p+d))):(l=(a=-a)*a*a,l=Math.acos(s/Math.sqrt(l)),p=2*Math.sqrt(a),i[0]=-d+p*Math.cos(l/3),i[2]=-d+p*Math.cos((l+2*Math.PI)/3),void(i[4]=-d+p*Math.cos((l+4*Math.PI)/3))))},r.sqdistToQuadraticBezier=function(e,t,n,r,i,o,a,s){var l=1*n*n-4*n*i+2*n*a+4*i*i-4*i*a+a*a+r*r-4*r*o+2*r*s+4*o*o-4*o*s+s*s,c=9*n*i-3*n*n-3*n*a-6*i*i+3*i*a+9*r*o-3*r*r-3*r*s-6*o*o+3*o*s,u=3*n*n-6*n*i+n*a-n*e+2*i*i+2*i*e-a*e+3*r*r-6*r*o+r*s-r*t+2*o*o+2*o*t-s*t,d=1*n*i-n*n+n*e-i*e+r*o-r*r+r*t-o*t,p=[];this.solveCubic(l,c,u,d,p);for(var f=[],h=0;h<6;h+=2)Math.abs(p[h+1])<1e-7&&p[h]>=0&&p[h]<=1&&f.push(p[h]);f.push(1),f.push(0);for(var g=-1,m=void 0,v=void 0,b=void 0,y=0;y<f.length;y++)m=Math.pow(1-f[y],2)*n+2*(1-f[y])*f[y]*i+f[y]*f[y]*a,v=Math.pow(1-f[y],2)*r+2*(1-f[y])*f[y]*o+f[y]*f[y]*s,b=Math.pow(m-e,2)+Math.pow(v-t,2),g>=0?b<g&&(g=b):g=b;return g},r.sqdistToFiniteLine=function(e,t,n,r,i,o){var a=[e-n,t-r],s=[i-n,o-r],l=s[0]*s[0]+s[1]*s[1],c=a[0]*a[0]+a[1]*a[1],u=a[0]*s[0]+a[1]*s[1],d=u*u/l;return u<0?c:d>l?(e-i)*(e-i)+(t-o)*(t-o):c-d},r.pointInsidePolygonPoints=function(e,t,n){for(var r=void 0,i=void 0,o=void 0,a=void 0,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(o=n[2*(l+1)],a=n[2*(l+1)+1]):(o=n[2*(l+1-n.length/2)],a=n[2*(l+1-n.length/2)+1]),r==e&&o==e);else{if(!(r>=e&&e>=o||r<=e&&e<=o))continue;(e-r)/(o-r)*(a-i)+i>t&&s++}return s%2!=0},r.pointInsidePolygon=function(e,t,n,i,o,a,s,l,c){var u=new Array(n.length),d=void 0;null!=l[0]?(d=Math.atan(l[1]/l[0]),l[0]<0?d+=Math.PI/2:d=-d-Math.PI/2):d=l;for(var p=Math.cos(-d),f=Math.sin(-d),h=0;h<u.length/2;h++)u[2*h]=a/2*(n[2*h]*p-n[2*h+1]*f),u[2*h+1]=s/2*(n[2*h+1]*p+n[2*h]*f),u[2*h]+=i,u[2*h+1]+=o;var g=void 0;if(c>0){var m=this.expandPolygon(u,-c);g=this.joinLines(m)}else g=u;return r.pointInsidePolygonPoints(e,t,g)},r.joinLines=function(e){for(var t=new Array(e.length/2),n=void 0,r=void 0,i=void 0,o=void 0,a=void 0,s=void 0,l=void 0,c=void 0,u=0;u<e.length/4;u++){n=e[4*u],r=e[4*u+1],i=e[4*u+2],o=e[4*u+3],u<e.length/4-1?(a=e[4*(u+1)],s=e[4*(u+1)+1],l=e[4*(u+1)+2],c=e[4*(u+1)+3]):(a=e[0],s=e[1],l=e[2],c=e[3]);var d=this.finiteLinesIntersect(n,r,i,o,a,s,l,c,!0);t[2*u]=d[0],t[2*u+1]=d[1]}return t},r.expandPolygon=function(e,t){for(var n=new Array(2*e.length),r=void 0,i=void 0,o=void 0,a=void 0,s=0;s<e.length/2;s++){r=e[2*s],i=e[2*s+1],s<e.length/2-1?(o=e[2*(s+1)],a=e[2*(s+1)+1]):(o=e[0],a=e[1]);var l=a-i,c=-(o-r),u=Math.sqrt(l*l+c*c),d=l/u,p=c/u;n[4*s]=r+d*t,n[4*s+1]=i+p*t,n[4*s+2]=o+d*t,n[4*s+3]=a+p*t}return n},r.intersectLineEllipse=function(e,t,n,r,i,o){var a=n-e,s=r-t;a/=i,s/=o;var l=Math.sqrt(a*a+s*s),c=l-1;if(c<0)return[];var u=c/l;return[(n-e)*u+e,(r-t)*u+t]},r.checkInEllipse=function(e,t,n,r,i,o,a){return e-=i,t-=o,(e/=n/2+a)*e+(t/=r/2+a)*t<=1},r.intersectLineCircle=function(e,t,n,r,i,o,a){var s=[n-e,r-t],l=[e-i,t-o],c=s[0]*s[0]+s[1]*s[1],u=2*(l[0]*s[0]+l[1]*s[1]),d=u*u-4*c*(l[0]*l[0]+l[1]*l[1]-a*a);if(d<0)return[];var p=(-u+Math.sqrt(d))/(2*c),f=(-u-Math.sqrt(d))/(2*c),h=Math.min(p,f),g=Math.max(p,f),m=[];if(h>=0&&h<=1&&m.push(h),g>=0&&g<=1&&m.push(g),0===m.length)return[];var v=m[0]*s[0]+e,b=m[0]*s[1]+t;return m.length>1?m[0]==m[1]?[v,b]:[v,b,m[1]*s[0]+e,m[1]*s[1]+t]:[v,b]},r.findCircleNearPoint=function(e,t,n,r,i){var o=r-e,a=i-t,s=Math.sqrt(o*o+a*a);return[e+o/s*n,t+a/s*n]},r.findMaxSqDistanceToOrigin=function(e){for(var t=1e-6,n=void 0,r=0;r<e.length/2;r++)(n=e[2*r]*e[2*r]+e[2*r+1]*e[2*r+1])>t&&(t=n);return t},r.midOfThree=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},r.finiteLinesIntersect=function(e,t,n,r,i,o,a,s,l){var c=e-i,u=n-e,d=a-i,p=t-o,f=r-t,h=s-o,g=d*p-h*c,m=u*p-f*c,v=h*u-d*f;if(0!==v){var b=g/v,y=m/v;return-.001<=b&&b<=1.001&&-.001<=y&&y<=1.001||l?[e+b*u,t+b*f]:[]}return 0===g||0===m?this.midOfThree(e,n,a)===a?[a,s]:this.midOfThree(e,n,i)===i?[i,o]:this.midOfThree(i,a,n)===n?[n,r]:[]:[]},r.polygonIntersectLine=function(e,t,n,i,o,a,s,l){var c=[],u=void 0,d=new Array(n.length),p=!0;5===arguments.length&&(p=!1);var f=void 0;if(p){for(var h=0;h<d.length/2;h++)d[2*h]=n[2*h]*a+i,d[2*h+1]=n[2*h+1]*s+o;if(l>0){var g=r.expandPolygon(d,-l);f=r.joinLines(g)}else f=d}else f=n;for(var m=void 0,v=void 0,b=void 0,y=void 0,x=0;x<f.length/2;x++)m=f[2*x],v=f[2*x+1],x<f.length/2-1?(b=f[2*(x+1)],y=f[2*(x+1)+1]):(b=f[0],y=f[1]),0!==(u=this.finiteLinesIntersect(e,t,i,o,m,v,b,y)).length&&c.push(u[0],u[1]);return c},r.shortenIntersection=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),o=(i-n)/i;return o<0&&(o=1e-5),[t[0]+o*r[0],t[1]+o*r[1]]},r.generateUnitNgonPointsFitToSquare=function(e,t){var n=r.generateUnitNgonPoints(e,t);return n=r.fitPolygonToSquare(n)},r.fitPolygonToSquare=function(e){for(var t=void 0,n=void 0,r=e.length/2,i=1/0,o=1/0,a=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),a=Math.max(a,t),o=Math.min(o,n),s=Math.max(s,n);for(var c=2/(a-i),u=2/(s-o),d=0;d<r;d++)t=e[2*d]=e[2*d]*c,n=e[2*d+1]=e[2*d+1]*u,i=Math.min(i,t),a=Math.max(a,t),o=Math.min(o,n),s=Math.max(s,n);if(o<-1)for(var p=0;p<r;p++)n=e[2*p+1]=e[2*p+1]+(-1-o);return e},r.generateUnitNgonPoints=function(e,t){var n=1/e*2*Math.PI,r=e%2==0?Math.PI/2+n/2:Math.PI/2;r+=t;for(var i=new Array(2*e),o=void 0,a=0;a<e;a++)o=a*n+r,i[2*a]=Math.cos(o),i[2*a+1]=Math.sin(-o);return i},r.getRoundRectangleRadius=function(e,t){return Math.min(e/4,t/4,8)},r.getCutRectangleCornerLength=function(){return 8},r.bezierPtsToQuadCoeff=function(e,t,n){return[e-2*t+n,2*(t-e),e]},r.getBarrelCurveConstants=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},e.exports=r},function(e,t,n){"use strict";e.exports="undefined"==typeof window?null:window},function(e,t,n){"use strict";var r=n(1),i={};[n(43),n(45),n(46)].forEach((function(e){r.assign(i,e)})),e.exports=i},function(e,n,r){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))}; /*! Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) @@ -64,12 +64,12 @@ https://github.com/jquery/jquery/blob/master/src/event.js */var r=function(e,t){this.recycle(e,t)};function i(){return!1}function o(){return!0}r.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=i,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?o:i):null!=e&&e.type?t=e:this.type=e,null!=t&&(this.originalEvent=t.originalEvent,this.type=null!=t.type?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,r=this.cy.zoom(),a=this.cy.pan();this.renderedPosition={x:n.x*r+a.x,y:n.y*r+a.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=o;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=o;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=o,this.stopPropagation()},isDefaultPrevented:i,isPropagationStopped:i,isImmediatePropagationStopped:i},e.exports=r},function(e,t,n){"use strict";var r=n(1);e.exports=function(e,t){var n=e.cy().hasCompoundNodes();function i(e){var t=e.pstyle("z-compound-depth");return"auto"===t.value?n?e.zDepth():0:"bottom"===t.value?-1:"top"===t.value?r.MAX_INT:0}var o=i(e)-i(t);if(0!==o)return o;function a(e){return"auto"===e.pstyle("z-index-compare").value&&e.isNode()?1:0}var s=a(e)-a(t);if(0!==s)return s;var l=e.pstyle("z-index").value-t.pstyle("z-index").value;return 0!==l?l:e.poolIndex()-t.poolIndex()}},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(6),a=function e(t){if(!(this instanceof e))return new e(t);r.core(t)?(this._private={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()):i.error("A style must have a core reference")},s=a.prototype;s.instanceString=function(){return"style"},s.clear=function(){for(var e=0;e<this.length;e++)this[e]=void 0;return this.length=0,this._private.newStyle=!0,this},s.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},s.core=function(){return this._private.coreStyle},s.selector=function(e){var t="core"===e?null:new o(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},s.css=function(){var e=this,t=arguments;switch(t.length){case 1:for(var n=t[0],r=0;r<e.properties.length;r++){var o=e.properties[r],a=n[o.name];void 0===a&&(a=n[i.dash2camel(o.name)]),void 0!==a&&this.cssRule(o.name,a)}break;case 2:this.cssRule(t[0],t[1])}return this},s.style=s.css,s.cssRule=function(e,t){var n=this.parse(e,t);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n),!this[r].selector&&(this._private.coreStyle[n.name]=n)}return this},s.append=function(e){return r.stylesheet(e)?e.appendToStyle(this):r.array(e)?this.appendFromJson(e):r.string(e)&&this.appendFromString(e),this},a.fromJson=function(e,t){var n=new a(e);return n.fromJson(t),n},a.fromString=function(e,t){return new a(e).fromString(t)},[n(85),n(86),n(87),n(88),n(89),n(90),n(91),n(92)].forEach((function(e){i.extend(s,e)})),a.types=s.types,a.properties=s.properties,e.exports=a},function(e,t,n){"use strict";var r=n(1);e.exports={setupDequeueing:function(e){return function(){var t=this,n=this.renderer;if(!t.dequeueingSetup){t.dequeueingSetup=!0;var i=r.debounce((function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()}),e.deqRedrawThreshold),o=e.priority||r.noop;n.beforeRender((function(o,a){for(var s=r.performanceNow(),l=n.averageRedrawTime,c=n.lastRedrawTime,u=[],d=n.cy.extent(),p=n.getPixelRatio();;){var f=r.performanceNow(),h=f-s,g=f-a;if(c<1e3/60){var m=1e3/60-(o?l:0);if(g>=e.deqFastCost*m)break}else if(o){if(h>=e.deqCost*c||h>=e.deqAvgCost*l)break}else if(g>=e.deqNoDrawCost*(1e3/60))break;var v=e.deq(t,p,d);if(!(v.length>0))break;for(var b=0;b<v.length;b++)u.push(v[b])}u.length>0&&(e.onDeqd(t,u),!o&&e.shouldRedraw(t,u,p,d)&&i())}),o(t))}}}}},function(e,t,n){"use strict";var r=n(0),i=n(12),o=n(94),a=n(136),s=function(e){return void 0===e&&(e={}),r.plainObject(e)?new i(e):r.string(e)?o.apply(o,arguments):void 0};s.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(s),e.apply(null,t),this},s.version=n(137),s.stylesheet=s.Stylesheet=a,e.exports=s},function(e,t,n){"use strict";var r=n(0);e.exports={hex2tuple:function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t=void 0,n=void 0,r=void 0;return 4===e.length?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):(t=parseInt(e[1]+e[2],16),n=parseInt(e[3]+e[4],16),r=parseInt(e[5]+e[6],16)),[t,n,r]}},hsl2tuple:function(e){var t=void 0,n=void 0,r=void 0,i=void 0,o=void 0,a=void 0,s=void 0,l=void 0;function c(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var u=new RegExp("^"+this.regex.hsla+"$").exec(e);if(u){if((n=parseInt(u[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(r=parseFloat(u[2]))<0||r>100)return;if(r/=100,(i=parseFloat(u[3]))<0||i>100)return;if(i/=100,void 0!==(o=u[4])&&((o=parseFloat(o))<0||o>1))return;if(0===r)a=s=l=Math.round(255*i);else{var d=i<.5?i*(1+r):i+r-i*r,p=2*i-d;a=Math.round(255*c(p,d,n+1/3)),s=Math.round(255*c(p,d,n)),l=Math.round(255*c(p,d,n-1/3))}t=[a,s,l,o]}return t},rgb2tuple:function(e){var t=void 0,n=new RegExp("^"+this.regex.rgba+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var o=n[i];if("%"===o[o.length-1]&&(r[i]=!0),o=parseFloat(o),r[i]&&(o=o/100*255),o<0||o>255)return;t.push(Math.floor(o))}var a=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(a&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},colorname2tuple:function(e){return this.colors[e.toLowerCase()]},color2tuple:function(e){return(r.array(e)?e:null)||this.colorname2tuple(e)||this.hex2tuple(e)||this.rgb2tuple(e)||this.hsl2tuple(e)},colors:{transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}},function(e,t,n){"use strict";var r=n(0);e.exports={mapEmpty:function(e){return null==e||0===Object.keys(e).length},pushMap:function(e){var t=this.getMap(e);null==t?this.setMap(this.extend({},e,{value:[e.value]})):t.push(e.value)},setMap:function(e){for(var t=e.map,n=e.keys,i=n.length,o=0;o<i;o++){var a=n[o];r.plainObject(a)&&this.error("Tried to set map with object key"),o<n.length-1?(null==t[a]&&(t[a]={}),t=t[a]):t[a]=e.value}},getMap:function(e){for(var t=e.map,n=e.keys,i=n.length,o=0;o<i;o++){var a=n[o];if(r.plainObject(a)&&this.error("Tried to get map with object key"),null==(t=t[a]))return t}return t},deleteMap:function(e){for(var t=e.map,n=e.keys,i=n.length,o=e.keepChildren,a=0;a<i;a++){var s=n[a];if(r.plainObject(s)&&this.error("Tried to delete map with object key"),a===e.keys.length-1)if(o)for(var l=Object.keys(t),c=0;c<l.length;c++){var u=l[c];o[u]||(t[u]=void 0)}else t[s]=void 0;else t=t[s]}}}},function(e,t,n){"use strict";var r="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";e.exports={regex:{number:r,rgba:"rgb[a]?\\(((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%]?)\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%]?)\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%]?)(?:\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)",rgbaNoBackRefs:"rgb[a]?\\((?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%]?)\\s*,\\s*(?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%]?)\\s*,\\s*(?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%]?)(?:\\s*,\\s*(?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)",hsla:"hsl[a]?\\(((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?)))\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])(?:\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)",hslaNoBackRefs:"hsl[a]?\\((?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?)))\\s*,\\s*(?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])\\s*,\\s*(?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])(?:\\s*,\\s*(?:(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)",hex3:"\\#[0-9a-fA-F]{3}",hex6:"\\#[0-9a-fA-F]{6}"}}},function(e,t,n){"use strict";var r=n(13),i=n(0);e.exports={camel2dash:r((function(e){return e.replace(/([A-Z])/g,(function(e){return"-"+e.toLowerCase()}))})),dash2camel:r((function(e){return e.replace(/(-\w)/g,(function(e){return e[1].toUpperCase()}))})),prependCamel:r((function(e,t){return e+t[0].toUpperCase()+t.substring(1)}),(function(e,t){return e+"$"+t})),capitalize:function(e){return i.emptyString(e)?e:e.charAt(0).toUpperCase()+e.substring(1)}}},function(e,t,n){"use strict";var r=n(3),i=r?r.performance:null,o={},a=i&&i.now?function(){return i.now()}:function(){return Date.now()},s=function(){if(r){if(r.requestAnimationFrame)return function(e){r.requestAnimationFrame(e)};if(r.mozRequestAnimationFrame)return function(e){r.mozRequestAnimationFrame(e)};if(r.webkitRequestAnimationFrame)return function(e){r.webkitRequestAnimationFrame(e)};if(r.msRequestAnimationFrame)return function(e){r.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout((function(){e(a())}),1e3/60)}}();o.requestAnimationFrame=function(e){s(e)},o.performanceNow=a,o.debounce=n(26),o.now=function(){return Date.now()},e.exports=o},function(t,n){t.exports=e},function(e,t,n){"use strict";function r(e,t){return e<t?-1:e>t?1:0}e.exports={sort:{ascending:r,descending:function(e,t){return-1*r(e,t)}}}},function(e,t,n){"use strict";function r(){this._obj={}}var i=r.prototype;i.set=function(e,t){this._obj[e]=t},i.delete=function(e){this._obj[e]=null},i.has=function(e){return null!=this._obj[e]},i.get=function(e){return this._obj[e]},e.exports=r},function(e,t,n){"use strict";var r=n(1),i={};[n(30),n(31),n(33),n(34),n(35),n(36),n(37),n(38),n(39),n(40),n(41)].forEach((function(e){r.extend(i,e)})),e.exports=i},function(e,t,n){"use strict";var r=n(0),i=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(t,n,i){var o;r.plainObject(t)&&!r.elementOrCollection(t)&&(t=(o=t).roots||o.root,n=o.visit,i=o.directed),i=2!==arguments.length||r.fn(n)?i:n,n=r.fn(n)?n:function(){};for(var a,s=this._private.cy,l=t=r.string(t)?this.filter(t):t,c=[],u=[],d={},p={},f={},h=0,g=this.nodes(),m=this.edges(),v=0;v<l.length;v++)l[v].isNode()&&(c.unshift(l[v]),e.bfs&&(f[l[v].id()]=!0,u.push(l[v])),p[l[v].id()]=0);for(;0!==c.length;){if(l=e.bfs?c.shift():c.pop(),e.dfs){if(f[l.id()])continue;f[l.id()]=!0,u.push(l)}var b,y=p[l.id()],x=d[l.id()],w=null==x?void 0:x.connectedNodes().not(l)[0];if(!0===(b=n(l,x,w,h++,y))){a=l;break}if(!1===b)break;var k=l.connectedEdges(i?function(e){return e.data("source")===l.id()}:void 0).intersect(m);for(v=0;v<k.length;v++){var A=k[v],E=A.connectedNodes((function(e){return e.id()!==l.id()})).intersect(g);0===E.length||f[E.id()]||(E=E[0],c.push(E),e.bfs&&(f[E.id()]=!0,u.push(E)),d[E.id()]=A,p[E.id()]=p[l.id()]+1)}}var S=[];for(v=0;v<u.length;v++){var $=u[v],C=d[$.id()];C&&S.push(C),S.push($)}return{path:s.collection(S,{unique:!0}),found:s.collection(a)}}},o={breadthFirstSearch:i({bfs:!0}),depthFirstSearch:i({dfs:!0})};o.bfs=o.breadthFirstSearch,o.dfs=o.depthFirstSearch,e.exports=o},function(e,t,n){"use strict";var r=n(0),i=n(9),o={dijkstra:function(e,t,n){var o;r.plainObject(e)&&!r.elementOrCollection(e)&&(e=(o=e).root,t=o.weight,n=o.directed);var a=this._private.cy;t=r.fn(t)?t:function(){return 1};for(var s=r.string(e)?this.filter(e)[0]:e[0],l={},c={},u={},d=this.edges().filter((function(e){return!e.isLoop()})),p=this.nodes(),f=function(e){return l[e.id()]},h=function(e,t){l[e.id()]=t,g.updateItem(e)},g=new i((function(e,t){return f(e)-f(t)})),m=0;m<p.length;m++){var v=p[m];l[v.id()]=v.same(s)?0:1/0,g.push(v)}for(var b=function(e,r){for(var i,o=(n?e.edgesTo(r):e.edgesWith(r)).intersect(d),a=1/0,s=0;s<o.length;s++){var l=o[s],c=t(l);(c<a||!i)&&(a=c,i=l)}return{edge:i,dist:a}};g.size()>0;){var y=g.pop(),x=f(y),w=y.id();if(u[w]=x,x!==1/0){var k=y.neighborhood().intersect(p);for(m=0;m<k.length;m++){var A=k[m],E=A.id(),S=b(y,A),$=x+S.dist;$<f(A)&&(h(A,$),c[E]={node:y,edge:S.edge})}}}return{distanceTo:function(e){var t=r.string(e)?p.filter(e)[0]:e[0];return u[t.id()]},pathTo:function(e){var t=r.string(e)?p.filter(e)[0]:e[0],n=[],i=t;if(t.length>0)for(n.unshift(t);c[i.id()];){var o=c[i.id()];n.unshift(o.edge),n.unshift(o.node),i=o.node}return a.collection(n)}}}};e.exports=o},function(e,t){e.exports=n},function(e,t,n){"use strict";var r=n(0),i={kruskal:function(e){var t=this.cy();function n(e){for(var t=0;t<o.length;t++){var n=o[t];if(n.anySame(e))return{eles:n,index:t}}}e=r.fn(e)?e:function(){return 1};for(var i=t.collection(t,[]),o=[],a=this.nodes(),s=0;s<a.length;s++)o.push(a[s].collection());var l=this.edges().toArray().sort((function(t,n){return e(t)-e(n)}));for(s=0;s<l.length;s++){var c=l[s],u=c.source()[0],d=c.target()[0],p=n(u),f=n(d);p.index!==f.index&&(i=i.add(c),o[p.index]=p.eles.add(f.eles),o.splice(f.index,1))}return a.add(i)}};e.exports=i},function(e,t,n){"use strict";var r=n(0),i={aStar:function(e){e=e||{};var t=function e(t,n,r,o){if(t==n)return o.unshift(i.getElementById(n)),o;if(n in r){var a=r[n],s=g[n];return o.unshift(i.getElementById(s)),o.unshift(i.getElementById(n)),e(t,a,r,o)}},n=function(e,t){if(0!==e.length){for(var n=0,r=t[e[0]],i=1;i<e.length;i++){var o=t[e[i]];o<r&&(r=o,n=i)}return n}},i=this._private.cy;if(null!=e&&null!=e.root){var o=r.string(e.root)?this.filter(e.root)[0]:e.root[0];if(null!=e.goal){var a=r.string(e.goal)?this.filter(e.goal)[0]:e.goal[0];if(null!=e.heuristic&&r.fn(e.heuristic))var s=e.heuristic;else s=function(){return 0};if(null!=e.weight&&r.fn(e.weight))var l=e.weight;else l=function(e){return 1};if(null!=e.directed)var c=e.directed;else c=!1;var u=o.id(),d=a.id(),p=[],f=[u],h={},g={},m={},v={};m[u]=0,v[u]=s(o);for(var b=0;f.length>0;){var y=n(f,v),x=i.getElementById(f[y]),w=x.id();if(b++,w==d){var k=t(u,d,h,[]);return{found:!0,distance:m[w],path:this.spawn(k),steps:b}}p.push(w),f.splice(y,1);for(var A=x._private.edges,E=0;E<A.length;E++){var S=A[E];if(this.hasElementWithId(S.id())&&(!c||S.data("source")===w)){var $=S.source(),C=S.target(),_=$.id()!==w?$:C,O=_.id();if(this.hasElementWithId(O)&&-1==p.indexOf(O)){var T=m[w]+l(S);-1!=f.indexOf(O)?T<m[O]&&(m[O]=T,v[O]=T+s(_),h[O]=w):(m[O]=T,v[O]=T+s(_),f.push(O),h[O]=w,g[O]=S.id())}}}}return{found:!1,distance:void 0,path:void 0,steps:b}}}}};e.exports=i},function(e,t,n){"use strict";var r=n(0),i={floydWarshall:function(e){e=e||{};var t=this.cy();if(null!=e.weight&&r.fn(e.weight))var n=e.weight;else n=function(e){return 1};if(null!=e.directed)var i=e.directed;else i=!1;for(var o=this.edges().stdFilter((function(e){return!e.isLoop()})),a=this.nodes(),s=a.length,l={},c=0;c<s;c++)l[a[c].id()]=c;var u=[];for(c=0;c<s;c++){for(var d=new Array(s),p=0;p<s;p++)d[p]=c==p?0:1/0;u.push(d)}var f=[],h=[],g=function(e){for(var t=0;t<s;t++){for(var n=new Array(s),r=0;r<s;r++)n[r]=void 0;e.push(n)}};for(g(f),g(h),c=0;c<o.length;c++){var m=l[o[c].source().id()],v=l[o[c].target().id()],b=n(o[c]);u[m][v]>b&&(u[m][v]=b,f[m][v]=v,h[m][v]=o[c])}if(!i)for(c=0;c<o.length;c++)m=l[o[c].target().id()],v=l[o[c].source().id()],b=n(o[c]),u[m][v]>b&&(u[m][v]=b,f[m][v]=v,h[m][v]=o[c]);for(var y=0;y<s;y++)for(c=0;c<s;c++)for(p=0;p<s;p++)u[c][y]+u[y][p]<u[c][p]&&(u[c][p]=u[c][y]+u[y][p],f[c][p]=f[c][y]);var x=[];for(c=0;c<s;c++)x.push(a[c].id());return{distance:function(e,n){if(r.string(e))var i=t.filter(e)[0].id();else i=e.id();if(r.string(n))var o=t.filter(n)[0].id();else o=n.id();return u[l[i]][l[o]]},path:function(e,n){if(r.string(e))var i=t.filter(e)[0].id();else i=e.id();if(r.string(n))var o=t.filter(n)[0].id();else o=n.id();var a=function(e,n,r,i,o){if(e===n)return t.getElementById(i[e]);if(void 0!==r[e][n]){for(var a=[t.getElementById(i[e])],s=e;e!==n;){s=e,e=r[e][n];var l=o[s][e];a.push(l),a.push(t.getElementById(i[e]))}return a}}(l[i],l[o],f,x,h);return t.collection(a)}}}};e.exports=i},function(e,t,n){"use strict";var r=n(0),i=n(1),o={bellmanFord:function(e){var t=this;if(null!=(e=e||{}).weight&&r.fn(e.weight))var n=e.weight;else n=function(e){return 1};if(null!=e.directed)var o=e.directed;else o=!1;if(null!=e.root){if(r.string(e.root))var a=this.filter(e.root)[0];else a=e.root[0];for(var s=this._private.cy,l=this.edges().stdFilter((function(e){return!e.isLoop()})),c=this.nodes(),u=c.length,d={},p=0;p<u;p++)d[c[p].id()]=p;var f=[],h=[],g=[];for(p=0;p<u;p++)c[p].id()===a.id()?f[p]=0:f[p]=1/0,h[p]=void 0;var m=!1;for(p=1;p<u;p++){m=!1;for(var v=0;v<l.length;v++){var b,y=d[l[v].source().id()],x=d[l[v].target().id()],w=n(l[v]);(b=f[y]+w)<f[x]&&(f[x]=b,h[x]=y,g[x]=l[v],m=!0),o||(b=f[x]+w)<f[y]&&(f[y]=b,h[y]=x,g[y]=l[v],m=!0)}if(!m)break}if(m)for(v=0;v<l.length;v++)if(y=d[l[v].source().id()],x=d[l[v].target().id()],w=n(l[v]),f[y]+w<f[x])return i.error("Graph contains a negative weight cycle for Bellman-Ford"),{pathTo:void 0,distanceTo:void 0,hasNegativeWeightCycle:!0};var k=[];for(p=0;p<u;p++)k.push(c[p].id());return{distanceTo:function(e){if(r.string(e))var t=s.filter(e)[0].id();else t=e.id();return f[d[t]]},pathTo:function(e){if(r.string(e))var n=s.filter(e)[0].id();else n=e.id();var i=function(e,t,n,r,i,o){for(;;){if(i.push(s.getElementById(r[n])),i.push(o[n]),t===n)return i;var a=e[n];if(void 0===a)return;n=a}}(h,d[a.id()],d[n],k,[],g);return null!=i&&i.reverse(),t.spawn(i)},hasNegativeWeightCycle:!1}}}};e.exports=o},function(e,t,n){"use strict";var r=n(1),i={kargerStein:function(e){e=e||{};var t=function e(t,n,r,i){return r<=i?n:e(t,function(e,t,n){for(var r=n[e],i=r[1],o=r[2],a=t[i],s=t[o],l=n.filter((function(e){return!(t[e[1]]===a&&t[e[2]]===s||t[e[1]]===s&&t[e[2]]===a)})),c=0;c<l.length;c++){var u=l[c];u[1]===s?(l[c]=u.slice(0),l[c][1]=a):u[2]===s&&(l[c]=u.slice(0),l[c][2]=a)}for(c=0;c<t.length;c++)t[c]===s&&(t[c]=a);return l}(Math.floor(Math.random()*n.length),t,n),r-1,i)},n=this._private.cy,i=this.edges().stdFilter((function(e){return!e.isLoop()})),o=this.nodes(),a=o.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),c=Math.floor(a/Math.sqrt(2));if(!(a<2)){for(var u={},d=0;d<a;d++)u[o[d].id()]=d;var p=[];for(d=0;d<s;d++){var f=i[d];p.push([d,u[f.source().id()],u[f.target().id()]])}var h,g=1/0,m=[];for(d=0;d<a;d++)m.push(d);for(var v=0;v<=l;v++){var b=m.slice(0),y=t(b,p,a,c),x=b.slice(0),w=t(b,y,c,2),k=t(x,y,c,2);w.length<=k.length&&w.length<g?(g=w.length,h=[w,b]):k.length<=w.length&&k.length<g&&(g=k.length,h=[k,x])}var A=h[0].map((function(e){return i[e[0]]})),E=[],S=[],$=h[1][0];for(d=0;d<h[1].length;d++)h[1][d]===$?E.push(o[d]):S.push(o[d]);return{cut:this.spawn(n,A),partition1:this.spawn(E),partition2:this.spawn(S)}}r.error("At least 2 nodes are required for Karger-Stein algorithm")}};e.exports=i},function(e,t,n){"use strict";var r=n(0),i={pageRank:function(e){var t=function(e){for(var t=e.length,n=0,r=0;r<t;r++)n+=e[r];for(r=0;r<t;r++)e[r]=e[r]/n};if(null!=(e=e||{})&&null!=e.dampingFactor)var n=e.dampingFactor;else n=.8;if(null!=e&&null!=e.precision)var i=e.precision;else i=1e-6;if(null!=e&&null!=e.iterations)var o=e.iterations;else o=200;if(null!=e&&null!=e.weight&&r.fn(e.weight))var a=e.weight;else a=function(e){return 1};for(var s=this._private.cy,l=this.edges().stdFilter((function(e){return!e.isLoop()})),c=this.nodes(),u=c.length,d=l.length,p={},f=0;f<u;f++)p[c[f].id()]=f;var h=[],g=[],m=(1-n)/u;for(f=0;f<u;f++){for(var v=[],b=0;b<u;b++)v.push(0);h.push(v),g.push(0)}for(f=0;f<d;f++){var y=l[f],x=p[y.source().id()],w=p[y.target().id()],k=a(y);h[w][x]+=k,g[x]+=k}var A=1/u+m;for(b=0;b<u;b++)if(0===g[b])for(f=0;f<u;f++)h[f][b]=A;else for(f=0;f<u;f++)h[f][b]=h[f][b]/g[b]+m;var E,S=[],$=[];for(f=0;f<u;f++)S.push(1),$.push(0);for(var C=0;C<o;C++){var _=$.slice(0);for(f=0;f<u;f++)for(b=0;b<u;b++)_[f]+=h[f][b]*S[b];t(_),E=S,S=_;var O=0;for(f=0;f<u;f++)O+=Math.pow(E[f]-S[f],2);if(O<i)break}return{rank:function(e){if(r.string(e))var t=s.filter(e)[0].id();else t=e.id();return S[p[t]]}}}};e.exports=i},function(e,t,n){"use strict";var r=n(0),i=n(1),o={degreeCentralityNormalized:function(e){e=e||{};var t=this.cy();if(null!=e.directed)var n=e.directed;else n=!1;var o=this.nodes(),a=o.length;if(n){var s={},l={},c=0,u=0;for(f=0;f<a;f++)h=o[f],g=this.degreeCentrality(i.extend({},e,{root:h})),c<g.indegree&&(c=g.indegree),u<g.outdegree&&(u=g.outdegree),s[h.id()]=g.indegree,l[h.id()]=g.outdegree;return{indegree:function(e){return 0==c?0:(e=r.string(e)?t.filter(e)[0].id():e.id(),s[e]/c)},outdegree:function(e){return 0==u?0:(e=r.string(e)?t.filter(e)[0].id():e.id(),l[e]/u)}}}for(var d={},p=0,f=0;f<a;f++){var h=o[f],g=this.degreeCentrality(i.extend({},e,{root:h}));p<g.degree&&(p=g.degree),d[h.id()]=g.degree}return{degree:function(e){return 0==p?0:(e=r.string(e)?t.filter(e)[0].id():e.id(),d[e]/p)}}},degreeCentrality:function(e){if(null!=(e=e||{})&&null!=e.root){var t=r.string(e.root)?this.filter(e.root)[0]:e.root[0];if(null!=e.weight&&r.fn(e.weight))var n=e.weight;else n=function(e){return 1};if(null!=e.directed)var i=e.directed;else i=!1;if(null!=e.alpha&&r.number(e.alpha))var o=e.alpha;else o=0;if(i){var a=t.connectedEdges('edge[target = "'+t.id()+'"]').intersection(this),s=t.connectedEdges('edge[source = "'+t.id()+'"]').intersection(this),l=a.length,c=s.length,u=0,d=0;for(g=0;g<a.length;g++)u+=n(a[g]);for(g=0;g<s.length;g++)d+=n(s[g]);return{indegree:Math.pow(l,1-o)*Math.pow(u,o),outdegree:Math.pow(c,1-o)*Math.pow(d,o)}}for(var p=t.connectedEdges().intersection(this),f=p.length,h=0,g=0;g<p.length;g++)h+=n(p[g]);return{degree:Math.pow(f,1-o)*Math.pow(h,o)}}}};o.dc=o.degreeCentrality,o.dcn=o.degreeCentralityNormalised=o.degreeCentralityNormalized,e.exports=o},function(e,t,n){"use strict";var r=n(0),i={closenessCentralityNormalized:function(e){e=e||{};var t=this.cy(),n=e.harmonic;void 0===n&&(n=!0);for(var i={},o=0,a=this.nodes(),s=this.floydWarshall({weight:e.weight,directed:e.directed}),l=0;l<a.length;l++){for(var c=0,u=0;u<a.length;u++)if(l!=u){var d=s.distance(a[l],a[u]);c+=n?1/d:d}n||(c=1/c),o<c&&(o=c),i[a[l].id()]=c}return{closeness:function(e){return 0==o?0:(e=r.string(e)?t.filter(e)[0].id():e.id(),i[e]/o)}}},closenessCentrality:function(e){if(null!=(e=e||{}).root){if(r.string(e.root))var t=this.filter(e.root)[0];else t=e.root[0];if(null!=e.weight&&r.fn(e.weight))var n=e.weight;else n=function(){return 1};if(null!=e.directed&&r.bool(e.directed))var i=e.directed;else i=!1;var o=e.harmonic;void 0===o&&(o=!0);for(var a=this.dijkstra({root:t,weight:n,directed:i}),s=0,l=this.nodes(),c=0;c<l.length;c++)if(l[c].id()!=t.id()){var u=a.distanceTo(l[c]);s+=o?1/u:u}return o?s:1/s}}};i.cc=i.closenessCentrality,i.ccn=i.closenessCentralityNormalised=i.closenessCentralityNormalized,e.exports=i},function(e,t,n){"use strict";var r=n(0),i=n(9),o={betweennessCentrality:function(e){var t,n;e=e||{},r.fn(e.weight)?(n=e.weight,t=!0):t=!1;for(var o=null!=e.directed&&e.directed,a=this._private.cy,s=this.nodes(),l={},c={},u=0,d=function(e,t){c[e]=t,t>u&&(u=t)},p=function(e){return c[e]},f=0;f<s.length;f++)l[w=(k=s[f]).id()]=o?k.outgoers().nodes():k.openNeighborhood().nodes(),d(w,0);for(var h=0;h<s.length;h++){var g=s[h].id(),m=[],v={},b={},y={},x=new i((function(e,t){return y[e]-y[t]}));for(f=0;f<s.length;f++){var w;v[w=s[f].id()]=[],b[w]=0,y[w]=1/0}for(b[g]=1,y[g]=0,x.push(g);!x.empty();){var k=x.pop();if(m.push(k),t)for(var A=0;A<l[k].length;A++){var E=l[k][A],S=a.getElementById(k),$=n(S.edgesTo(E).length>0?S.edgesTo(E)[0]:E.edgesTo(S)[0]);E=E.id(),y[E]>y[k]+$&&(y[E]=y[k]+$,x.nodes.indexOf(E)<0?x.push(E):x.updateItem(E),b[E]=0,v[E]=[]),y[E]==y[k]+$&&(b[E]=b[E]+b[k],v[E].push(k))}else for(A=0;A<l[k].length;A++)E=l[k][A].id(),y[E]==1/0&&(x.push(E),y[E]=y[k]+1),y[E]==y[k]+1&&(b[E]=b[E]+b[k],v[E].push(k))}var C={};for(f=0;f<s.length;f++)C[s[f].id()]=0;for(;m.length>0;)for(E=m.pop(),A=0;A<v[E].length;A++)C[k=v[E][A]]=C[k]+b[k]/b[E]*(1+C[E]),E!=s[h].id()&&d(E,p(E)+C[E])}var _={betweenness:function(e){return e=r.string(e)?a.filter(e).id():e.id(),p(e)},betweennessNormalized:function(e){return 0==u?0:(e=r.string(e)?a.filter(e).id():e.id(),p(e)/u)}};return _.betweennessNormalised=_.betweennessNormalized,_}};o.bc=o.betweennessCentrality,e.exports=o},function(e,t,n){"use strict";var r=n(4),i={animate:r.animate(),animation:r.animation(),animated:r.animated(),clearQueue:r.clearQueue(),delay:r.delay(),delayAnimation:r.delayAnimation(),stop:r.stop()};e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(44),o=n(2),a=n(0),s={animated:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return!1;var t=e[0];return t?t._private.animation.current.length>0:void 0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t<e.length;t++)e[t]._private.animation.queue=[];return this}},delay:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animate({delay:e,duration:e,complete:t}):this}},delayAnimation:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animation({delay:e,duration:e,complete:t}):this}},animation:function(){return function(e,t){var n=void 0!==this.length,s=n?this:[this],l=this._private.cy||this,c=!n,u=!c;if(!l.styleEnabled())return this;var d=l.style();if(e=r.assign({},e,t),0===Object.keys(e).length)return new i(s[0],e);switch(void 0===e.duration&&(e.duration=400),e.duration){case"slow":e.duration=600;break;case"fast":e.duration=200}if(u&&(e.style=d.getPropsList(e.style||e.css),e.css=void 0),u&&null!=e.renderedPosition){var p=e.renderedPosition,f=l.pan(),h=l.zoom();e.position=o.renderedToModelPosition(p,h,f)}if(c&&null!=e.panBy){var g=e.panBy,m=l.pan();e.pan={x:m.x+g.x,y:m.y+g.y}}var v=e.center||e.centre;if(c&&null!=v){var b=l.getCenterPan(v.eles,e.zoom);null!=b&&(e.pan=b)}if(c&&null!=e.fit){var y=e.fit,x=l.getFitViewport(y.eles||y.boundingBox,y.padding);null!=x&&(e.pan=x.pan,e.zoom=x.zoom)}if(c&&a.plainObject(e.zoom)){var w=l.getZoomedViewport(e.zoom);null!=w&&(w.zoomed&&(e.zoom=w.zoom),w.panned&&(e.pan=w.pan))}return new i(s[0],e)}},animate:function(){return function(e,t){var n=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;t&&(e=r.extend({},e,t));for(var i=0;i<n.length;i++){var o=n[i],a=o.animated()&&(void 0===e.queue||e.queue);o.animation(e,a?{queue:!0}:void 0).play()}return this}},stop:function(){return function(e,t){var n=void 0!==this.length?this:[this],r=this._private.cy||this;if(!r.styleEnabled())return this;for(var i=0;i<n.length;i++){for(var o=n[i]._private,a=o.animation.current,s=0;s<a.length;s++){var l=a[s]._private;t&&(l.duration=0)}e&&(o.animation.queue=[]),t||(o.animation.current=[])}return r.notify({eles:this,type:"draw"}),this}}};e.exports=s},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(5),a=function(e,t,n){var o=this._private=r.extend({duration:1e3},t,n);o.target=e,o.style=o.style||o.css,o.started=!1,o.playing=!1,o.hooked=!1,o.applying=!1,o.progress=0,o.completes=[],o.frames=[],o.complete&&i.fn(o.complete)&&o.completes.push(o.complete),this.length=1,this[0]=this},s=a.prototype;r.extend(s,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t=e.target._private.animation;(e.queue?t.queue:t.current).push(this),i.elementOrCollection(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},play:function(){var e=this._private;return 1===e.progress&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;return void 0===e?t.progress*t.duration:this.progress(e/t.duration)},progress:function(e){var t=this._private,n=t.playing;return void 0===e?t.progress:(n&&this.pause(),t.progress=e,t.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var e=this._private,t=e.playing;t&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=function(t,n){var r=e[t];null!=r&&(e[t]=e[n],e[n]=r)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var r=0;r<e.style.length;r++){var i=e.style[r],o=i.name,a=e.startStyle[o];e.startStyle[o]=i,e.style[r]=a}return t&&this.play(),this},promise:function(e){var t=this._private,n=void 0;switch(e){case"frame":n=t.frames;break;default:case"complete":case"completed":n=t.completes}return new o((function(e,t){n.push((function(){e()}))}))}}),s.complete=s.completed,e.exports=a},function(e,t,n){"use strict";var r=n(1),i=n(0),o={data:function(e){return e=r.extend({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(e){},beforeSet:function(e,t){},onSet:function(e){},canSet:function(e){return!0}},e),function(t,n){var r=e,o=void 0!==this.length,a=o?this:[this],s=o?this[0]:this;if(i.string(t)){if(r.allowGetting&&void 0===n){var l=void 0;return s&&(r.beforeGet(s),l=s._private[r.field][t]),l}if(r.allowSetting&&void 0!==n&&!r.immutableKeys[t]){var c=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},t,n);r.beforeSet(this,c);for(var u=0,d=a.length;u<d;u++){var p=a[u];r.canSet(p)&&(p._private[r.field][t]=n)}r.updateStyle&&this.updateStyle(),r.onSet(this),r.settingTriggersEvent&&this[r.triggerFnName](r.settingEvent)}}else if(r.allowSetting&&i.plainObject(t)){var f=t,h=void 0,g=void 0,m=Object.keys(f);r.beforeSet(this,f);for(var v=0;v<m.length;v++)if(g=f[h=m[v]],!r.immutableKeys[h])for(var b=0;b<a.length;b++){var y=a[b];r.canSet(y)&&(y._private[r.field][h]=g)}r.updateStyle&&this.updateStyle(),r.onSet(this),r.settingTriggersEvent&&this[r.triggerFnName](r.settingEvent)}else if(r.allowBinding&&i.fn(t)){var x=t;this.on(r.bindingEvent,x)}else if(r.allowGetting&&void 0===t){var w=void 0;return s&&(r.beforeGet(s),w=s._private[r.field]),w}return this}},removeData:function(e){return e=r.extend({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},e),function(t){var n=e,r=void 0!==this.length?this:[this];if(i.string(t)){for(var o=t.split(/\s+/),a=o.length,s=0;s<a;s++){var l=o[s];if(!i.emptyString(l)&&!n.immutableKeys[l])for(var c=0,u=r.length;c<u;c++)r[c]._private[n.field][l]=void 0}n.triggerEvent&&this[n.triggerFnName](n.event)}else if(void 0===t){for(var d=0,p=r.length;d<p;d++)for(var f=r[d]._private[n.field],h=Object.keys(f),g=0;g<h.length;g++){var m=h[g];!n.immutableKeys[m]&&(f[m]=void 0)}n.triggerEvent&&this[n.triggerFnName](n.event)}return this}}};e.exports=o},function(e,t,n){"use strict";var r=n(5),i={eventAliasesOn:function(e){var t=e;t.addListener=t.listen=t.bind=t.on,t.unlisten=t.unbind=t.off=t.removeListener,t.trigger=t.emit,t.pon=t.promiseOn=function(e,t){var n=this,i=Array.prototype.slice.call(arguments,0);return new r((function(e,t){var r=i.concat([function(t){n.off.apply(n,o),e(t)}]),o=r.concat([]);n.on.apply(n,r)}))}}};e.exports=i},function(e,t,n){"use strict";var r=n(8),i={classes:function(e){e=(e||"").match(/\S+/g)||[];for(var t=this,n=[],i=new r(e),o=function(e){var o=t[e],a=o._private,s=a.classes,l=!1;i.forEach((function(e){s.has(e)||(l=!0)})),l||s.forEach((function(e){i.has(e)||(l=!0)})),l&&(a.classes=new r(i),n.push(o))},a=0;a<t.length;a++)o(a);return n.length>0&&this.spawn(n).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){for(var n=e.match(/\S+/g)||[],r=[],i=0,o=this.length;i<o;i++)for(var a=this[i],s=!1,l=0;l<n.length;l++){var c=n[l],u=a._private.classes,d=u.has(c);t||void 0===t&&!d?(u.add(c),d||s||(r.push(a),s=!0)):(u.delete(c),d&&!s&&(r.push(a),s=!0))}return r.length>0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};e.exports=i},function(e,t,n){"use strict";n(0);var r=n(6),i={allAre:function(e){var t=new r(e);return this.every((function(e){return t.matches(e)}))},is:function(e){var t=new r(e);return this.some((function(e){return t.matches(e)}))},some:function(e,t){for(var n=0;n<this.length;n++)if(t?e.apply(t,[this[n],n,this]):e(this[n],n,this))return!0;return!1},every:function(e,t){for(var n=0;n<this.length;n++)if(!(t?e.apply(t,[this[n],n,this]):e(this[n],n,this)))return!1;return!0},same:function(e){return e=this.cy().collection(e),this.length===e.length&&this.every((function(t){return e.hasElementWithId(t.id())}))},anySame:function(e){return e=this.cy().collection(e),this.some((function(t){return e.hasElementWithId(t.id())}))},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every((function(e){return t.hasElementWithId(e.id())}))},contains:function(e){e=this.cy().collection(e);var t=this;return e.every((function(e){return t.hasElementWithId(e.id())}))}};i.allAreNeighbours=i.allAreNeighbors,i.has=i.contains,e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(50),o=n(10),a=function(e){for(var t=void 0,n=void 0,r=void 0,o=0;o<i.length;o++){var a=i[o],s=a.name,l=e.match(a.regexObj);if(null!=l){n=l,t=a,r=s;var c=l[0];e=e.substring(c.length);break}}return{expr:t,match:n,name:r,remaining:e}};e.exports={parse:function(e){var t=this._private.selectorText=e,n=this[0]=o();for(this.length=1,t=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e}(t);;){var i=a(t);if(null==i.expr)return r.error("The selector `"+e+"`is invalid"),!1;var s=i.match.slice(1),l=i.expr.populate(this,n,s);if(!1===l)return!1;if(null!=l&&(n=l),(t=i.remaining).match(/^\s*$/))break}for(var c=0;c<this.length;c++){var u=this[c];if(null!=u.subject){for(;u.subject!==u;)if(null!=u.parent){var d=u.parent,p=u;p.parent=null,d.child=p,u=d}else{if(null==u.ancestor)return u.source||u.target||u.connectedNodes?(r.error("The selector `"+this.text()+"` can not contain a subject selector that applies to the source or target of an edge selector"),!1):(r.error("When adjusting references for the selector `"+this.text()+"`, neither parent nor ancestor was found"),!1);var f=u.ancestor,h=u;h.ancestor=null,f.descendant=h,u=f}this[c]=u.subject}}return!0}}},function(e,t,n){"use strict";var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=n(15).stateSelectorRegex,o=n(51),a=n(1),s=n(10),l=function(e){return e.replace(new RegExp("\\\\("+o.metaChar+")","g"),(function(e,t){return t}))},c=function(e,t,n){t===e[e.length-1]&&(e[e.length-1]=n)},u=[{name:"group",query:!0,regex:"("+o.group+")",populate:function(e,t,n){var i=r(n,1)[0];t.group="*"===i?i:i+"s"}},{name:"state",query:!0,regex:i,populate:function(e,t,n){var i=r(n,1)[0];t.colonSelectors.push(i)}},{name:"id",query:!0,regex:"\\#("+o.id+")",populate:function(e,t,n){var i=r(n,1)[0];t.ids.push(l(i))}},{name:"className",query:!0,regex:"\\.("+o.className+")",populate:function(e,t,n){var i=r(n,1)[0];t.classes.push(l(i))}},{name:"dataExists",query:!0,regex:"\\[\\s*("+o.variable+")\\s*\\]",populate:function(e,t,n){var i=r(n,1)[0];t.data.push({field:l(i)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+o.variable+")\\s*("+o.comparatorOp+")\\s*("+o.value+")\\s*\\]",populate:function(e,t,n){var i=r(n,3),a=i[0],s=i[1],c=i[2];c=null!=new RegExp("^"+o.string+"$").exec(c)?c.substring(1,c.length-1):parseFloat(c),t.data.push({field:l(a),operator:s,value:c})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+o.boolOp+")\\s*("+o.variable+")\\s*\\]",populate:function(e,t,n){var i=r(n,2),o=i[0],a=i[1];t.data.push({field:l(a),operator:o})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+o.meta+")\\s*("+o.comparatorOp+")\\s*("+o.number+")\\s*\\]\\]",populate:function(e,t,n){var i=r(n,3),o=i[0],a=i[1],s=i[2];t.meta.push({field:l(o),operator:a,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:o.separator,populate:function(e){var t=e[e.length++]=s();return e.currentSubject=null,t}},{name:"directedEdge",separator:!0,regex:o.directedEdge,populate:function(e,t){var n=s(),r=t,i=s();return n.group="edges",n.target=i,n.source=r,n.subject=e.currentSubject,c(e,t,n),i}},{name:"undirectedEdge",separator:!0,regex:o.undirectedEdge,populate:function(e,t){var n=s(),r=t,i=s();return n.group="edges",n.connectedNodes=[r,i],n.subject=e.currentSubject,c(e,t,n),i}},{name:"child",separator:!0,regex:o.child,populate:function(e,t){var n=s();return n.parent=t,n.subject=e.currentSubject,c(e,t,n),n}},{name:"descendant",separator:!0,regex:o.descendant,populate:function(e,t){var n=s();return n.ancestor=t,n.subject=e.currentSubject,c(e,t,n),n}},{name:"subject",modifier:!0,regex:o.subject,populate:function(e,t){if(null!=e.currentSubject&&t.subject!=t)return a.error("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t,t.subject=t,e[e.length-1].subject=t}}];u.forEach((function(e){return e.regexObj=new RegExp("^"+e.regex)})),e.exports=u},function(e,t,n){"use strict";var r={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:n(1).regex.number,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};r.variable="(?:[\\w-]|(?:\\\\"+r.metaChar+"))+",r.value=r.string+"|"+r.number,r.className=r.variable,r.id=r.variable,function(){var e=void 0,t=void 0,n=void 0;for(e=r.comparatorOp.split("|"),n=0;n<e.length;n++)t=e[n],r.comparatorOp+="|@"+t;for(e=r.comparatorOp.split("|"),n=0;n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="!==t&&(r.comparatorOp+="|\\!"+t)}(),e.exports=r},function(e,t,n){"use strict";var r=n(15).stateSelectorMatches,i=n(0),o=function(e,t){for(var n=!0,r=0;r<e[t.name].length;r++){var o=e[t.name][r],a=o.operator,s=o.value,l=o.field,c=void 0,u=t.fieldValue(l);if(null!=a&&null!=s){var d=i.string(u)||i.number(u)?""+u:"",p=""+s,f=!1;a.indexOf("@")>=0&&(d=d.toLowerCase(),p=p.toLowerCase(),a=a.replace("@",""),f=!0);var h=!1;a.indexOf("!")>=0&&(a=a.replace("!",""),h=!0),f&&(s=p.toLowerCase(),u=d.toLowerCase());var g=!1;switch(a){case"*=":c=d.indexOf(p)>=0;break;case"$=":c=d.indexOf(p,d.length-p.length)>=0;break;case"^=":c=0===d.indexOf(p);break;case"=":c=u===s;break;case">":g=!0,c=u>s;break;case">=":g=!0,c=u>=s;break;case"<":g=!0,c=u<s;break;case"<=":g=!0,c=u<=s;break;default:c=!1}!h||null==u&&g||(c=!c)}else if(null!=a)switch(a){case"?":c=!!u;break;case"!":c=!u;break;case"^":c=void 0===u}else c=void 0!==u;if(!c){n=!1;break}}return n},a=function(e,t,n){if(null!=e){var r=!1;if(!t)return!1;n=n();for(var i=0;i<n.length;i++)if(s(e,n[i])){r=!0;break}return r}return!0},s=function(e,t){if(e.groupOnly)return"*"===e.group||e.group===t.group();if(null!=e.group&&"*"!=e.group&&e.group!=t.group())return!1;var n=t.cy(),i=void 0,s=!0;for(i=0;i<e.colonSelectors.length;i++){var l=e.colonSelectors[i];if(!(s=r(l,t)))break}if(!s)return!1;var c=!0;for(i=0;i<e.ids.length;i++){var u=e.ids[i],d=t.id();if(!(c=c&&u==d))break}if(!c)return!1;var p=!0;for(i=0;i<e.classes.length;i++){var f=e.classes[i];if(!(p=p&&t.hasClass(f)))break}if(!p)return!1;if(!o(e,{name:"data",fieldValue:function(e){return t.data(e)}}))return!1;if(!o(e,{name:"meta",fieldValue:function(e){return t[e]()}}))return!1;if(null!=e.collection&&!e.collection.hasElementWithId(t.id()))return!1;if(null!=e.filter&&t.collection().some(e.filter))return!1;var h=n.hasCompoundNodes(),g=function(){return t.source()},m=function(){return t.target()};if(!a(e.parent,h,(function(){return t.parent()})))return!1;if(!a(e.ancestor,h,(function(){return t.parents()})))return!1;if(!a(e.child,h,(function(){return t.children()})))return!1;if(!a(e.descendant,h,(function(){return t.descendants()})))return!1;if(!a(e.source,!0,g))return!1;if(!a(e.target,!0,m))return!1;if(e.connectedNodes){var v=e.connectedNodes[0],b=e.connectedNodes[1];if(a(v,!0,g)&&a(b,!0,m));else if(!a(v,!0,m)||!a(b,!0,g))return!1}return!0};e.exports={matches:function(e){if(this.invalid())return!1;for(var t=0;t<this.length;t++){var n=this[t];if(s(n,e))return!0}return!1},filter:function(e){var t=this,n=e.cy();if(t.invalid())return n.collection();if(1===t.length&&1===t[0].length&&1===t[0].ids.length)return e.getElementById(t[0].ids[0]).collection();var r=function(e){for(var n=0;n<t.length;n++){var r=t[n];if(s(r,e))return!0}return!1};return null==t.text()&&(r=function(){return!0}),e.filter(r)}}},function(e,t,n){"use strict";var r=n(8),i={parent:function(e){var t=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var r=0;r<this.length;r++){var i=this[r]._private.parent;i&&t.push(i)}return this.spawn(t,{unique:!0}).filter(e)},parents:function(e){for(var t=[],n=this.parent();n.nonempty();){for(var r=0;r<n.length;r++){var i=n[r];t.push(i)}n=n.parent()}return this.spawn(t,{unique:!0}).filter(e)},commonAncestors:function(e){for(var t=void 0,n=0;n<this.length;n++){var r=this[n].parents();t=(t=t||r).intersect(r)}return t.filter(e)},orphans:function(e){return this.stdFilter((function(e){return e.isOrphan()})).filter(e)},nonorphans:function(e){return this.stdFilter((function(e){return e.isChild()})).filter(e)},children:function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];t=t.concat(r._private.children)}return this.spawn(t,{unique:!0}).filter(e)},siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&0!==e._private.children.length},isChildless:function(){var e=this[0];if(e)return e.isNode()&&0===e._private.children.length},isChild:function(){var e=this[0];if(e)return e.isNode()&&null!=e._private.parent},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&null==e._private.parent},descendants:function(e){var t=[];return function e(n){for(var r=0;r<n.length;r++){var i=n[r];t.push(i),i.children().nonempty()&&e(i.children())}}(this.children()),this.spawn(t,{unique:!0}).filter(e)}};function o(e,t,n,i){for(var o=[],a=new r,s=e.cy().hasCompoundNodes(),l=0;l<e.length;l++){var c=e[l];n?o.push(c):s&&i(o,a,c)}for(;o.length>0;){var u=o.shift();t(u),a.add(u.id()),s&&i(o,a,u)}return e}function a(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i<r.length;i++){var o=r[i];t.has(o.id())||e.push(o)}}function s(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function l(e,t,n){s(e,t,n),a(e,t,n)}i.forEachDown=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return o(this,e,t,a)},i.forEachUp=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return o(this,e,t,s)},i.forEachUpAndDown=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return o(this,e,t,l)},i.ancestors=i.parents,e.exports=i},function(e,t,n){"use strict";var r,i=n(4),o=void 0;(o=r={data:i.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:i.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:i.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:i.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:i.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:i.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=o.data,o.removeAttr=o.removeData,e.exports=r},function(e,t,n){"use strict";var r=n(1),i={};function o(e){return function(t){if(void 0===t&&(t=!0),0!==this.length&&this.isNode()&&!this.removed()){for(var n=0,r=this[0],i=r._private.edges,o=0;o<i.length;o++){var a=i[o];!t&&a.isLoop()||(n+=e(r,a))}return n}}}function a(e,t){return function(n){for(var r=void 0,i=this.nodes(),o=0;o<i.length;o++){var a=i[o][e](n);void 0===a||void 0!==r&&!t(a,r)||(r=a)}return r}}r.extend(i,{degree:o((function(e,t){return t.source().same(t.target())?2:1})),indegree:o((function(e,t){return t.target().same(e)?1:0})),outdegree:o((function(e,t){return t.source().same(e)?1:0}))}),r.extend(i,{minDegree:a("degree",(function(e,t){return e<t})),maxDegree:a("degree",(function(e,t){return e>t})),minIndegree:a("indegree",(function(e,t){return e<t})),maxIndegree:a("indegree",(function(e,t){return e>t})),minOutdegree:a("outdegree",(function(e,t){return e<t})),maxOutdegree:a("outdegree",(function(e,t){return e>t}))}),r.extend(i,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}}),e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(57),o=n(58),a=n(59),s=n(60);e.exports=r.assign({},i,o,a,s)},function(e,t,n){"use strict";var r,i=n(4),o=n(0),a=n(2),s=void 0,l=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.isParent()&&!r.locked()){var i=r._private.position,o={x:t.x-i.x,y:t.y-i.y};e.children().shift(o)}}};(s=r={position:i.data({field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:l,onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}}),silentPosition:i.data({field:"position",bindingEvent:"position",allowBinding:!1,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!1,triggerFnName:"trigger",allowGetting:!1,validKeys:["x","y"],beforeSet:l,onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}}),positions:function(e,t){if(o.plainObject(e))t?this.silentPosition(e):this.position(e);else if(o.fn(e)){var n=e,r=this.cy();r.startBatch();for(var i=0;i<this.length;i++){var a,s=this[i];(a=n(s,i))&&(t?s.silentPosition(a):s.position(a))}r.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t){var n=void 0;if(o.plainObject(e)?n=e:o.string(e)&&o.number(t)&&((n={x:0,y:0})[e]=t),null!=n)for(var r=0;r<this.length;r++){var i=this[r],a=i.position();i.position({x:a.x+n.x,y:a.y+n.y})}return this},renderedPosition:function(e,t){var n=this[0],r=this.cy(),i=r.zoom(),s=r.pan(),l=o.plainObject(e)?e:void 0,c=void 0!==l||void 0!==t&&o.string(e);if(n&&n.isNode()){if(!c){var u=n.position();return l=a.modelToRenderedPosition(u,i,s),void 0===e?l:l[e]}for(var d=0;d<this.length;d++){var p=this[d];void 0!==t?p.position(e,(t-s[e])/i):void 0!==l&&p.position(a.renderedToModelPosition(l,i,s))}}else if(!c)return;return this},relativePosition:function(e,t){var n=this[0],r=this.cy(),i=o.plainObject(e)?e:void 0,a=void 0!==i||void 0!==t&&o.string(e),s=r.hasCompoundNodes();if(n&&n.isNode()){if(!a){var l=n.position(),c=s?n.parent():null,u=c&&c.length>0,d=u;u&&(c=c[0]);var p=d?c.position():{x:0,y:0};return i={x:l.x-p.x,y:l.y-p.y},void 0===e?i:i[e]}for(var f=0;f<this.length;f++){var h=this[f],g=s?h.parent():null,m=g&&g.length>0,v=m;m&&(g=g[0]);var b=v?g.position():{x:0,y:0};void 0!==t?h.position(e,t+b[e]):void 0!==i&&h.position({x:i.x+b.x,y:i.y+b.y})}}else if(!a)return;return this}}).modelPosition=s.point=s.position,s.modelPositions=s.points=s.positions,s.renderedPoint=s.renderedPosition,s.relativePoint=s.relativePosition,e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(2),a=void 0,s=void 0;a=s={},s.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),o=t.x1*r+i.x,a=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:o,x2:a,y1:s,y2:l,w:a-o,h:l-s}},s.dirtyCompoundBoundsCache=function(){var e=this.cy();return e.styleEnabled()&&e.hasCompoundNodes()?(this.forEachUp((function(e){e._private.compoundBoundsClean=!1,e.isParent()&&e.emit("bounds")})),this):this},s.updateCompoundBounds=function(){var e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(e.batching())return this;var t=[];function n(e){if(e.isParent()){var n=e._private,r=e.children(),i="include"===e.pstyle("compound-sizing-wrt-labels").value,o={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=r.boundingBox({includeLabels:i,includeOverlays:!1,useCache:!1}),s=n.position;0!==a.w&&0!==a.h||((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=s.x-a.w/2,a.x2=s.x+a.w/2,a.y1=s.y-a.h/2,a.y2=s.y+a.h/2);var l=o.width.left.value;"px"===o.width.left.units&&o.width.val>0&&(l=100*l/o.width.val);var c=o.width.right.value;"px"===o.width.right.units&&o.width.val>0&&(c=100*c/o.width.val);var u=o.height.top.value;"px"===o.height.top.units&&o.height.val>0&&(u=100*u/o.height.val);var d=o.height.bottom.value;"px"===o.height.bottom.units&&o.height.val>0&&(d=100*d/o.height.val);var p=b(o.width.val-a.w,l,c),f=p.biasDiff,h=p.biasComplementDiff,g=b(o.height.val-a.h,u,d),m=g.biasDiff,v=g.biasComplementDiff;n.autoPadding=function(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),n.autoWidth=Math.max(a.w,o.width.val),s.x=(-f+a.x1+a.x2+h)/2,n.autoHeight=Math.max(a.h,o.height.val),s.y=(-m+a.y1+a.y2+v)/2,t.push(e)}function b(e,t,n){var r=0,i=0,o=t+n;return e>0&&o>0&&(r=t/o*e,i=n/o*e),{biasDiff:r,biasComplementDiff:i}}}for(var r=0;r<this.length;r++){var i=this[r],o=i._private;o.compoundBoundsClean||(n(i),e._private.batchingStyle||(o.compoundBoundsClean=!0))}return this};var l=function(e){return e===1/0||e===-1/0?0:e},c=function(e,t,n,r,i){r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i&&(e.x1=t<e.x1?t:e.x1,e.x2=r>e.x2?r:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=i>e.y2?i:e.y2)},u=function(e,t,n){return i.getPrefixedProperty(e,t,n)},d=function(e,t,n){if(!t.cy().headless()){var r=t._private.rstyle,i=r.arrowWidth/2,o=void 0,a=void 0;"none"!==t.pstyle(n+"-arrow-shape").value&&("source"===n?(o=r.srcX,a=r.srcY):"target"===n?(o=r.tgtX,a=r.tgtY):(o=r.midX,a=r.midY),c(e,o-i,a-i,o+i,a+i))}},p=function(e,t,n){if(!t.cy().headless()){var r=void 0;r=n?n+"-":"";var i=t._private,o=i.rstyle;if(t.pstyle(r+"label").strValue){var a=t.pstyle("text-halign"),s=t.pstyle("text-valign"),l=u(o,"labelWidth",n),d=u(o,"labelHeight",n),p=u(o,"labelX",n),f=u(o,"labelY",n),h=t.pstyle(r+"text-margin-x").pfValue,g=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),v=t.pstyle(r+"text-rotation"),b=t.pstyle("text-outline-width").pfValue,y=t.pstyle("text-border-width").pfValue/2,x=t.pstyle("text-background-padding").pfValue,w=d+2*x,k=l+2*x,A=k/2,E=w/2,S=void 0,$=void 0,C=void 0,_=void 0;if(m)S=p-A,$=p+A,C=f-E,_=f+E;else{switch(a.value){case"left":S=p-k,$=p;break;case"center":S=p-A,$=p+A;break;case"right":S=p,$=p+k}switch(s.value){case"top":C=f-w,_=f;break;case"center":C=f-E,_=f+E;break;case"bottom":C=f,_=f+w}}var O=m&&"autorotate"===v.strValue,T=null!=v.pfValue&&0!==v.pfValue;if(O||T){var j=O?u(i.rstyle,"labelAngle",n):v.pfValue,P=Math.cos(j),D=Math.sin(j),R=function(e,t){return{x:(e-=p)*P-(t-=f)*D+p,y:e*D+t*P+f}},I=R(S,C),N=R(S,_),M=R($,C),z=R($,_);S=Math.min(I.x,N.x,M.x,z.x),$=Math.max(I.x,N.x,M.x,z.x),C=Math.min(I.y,N.y,M.y,z.y),_=Math.max(I.y,N.y,M.y,z.y)}S+=h-Math.max(b,y),$+=h+Math.max(b,y),C+=g-Math.max(b,y),_+=g+Math.max(b,y),c(e,S,C,$,_)}return e}},f=function(e){return e?"t":"f"},h=function(e){var t="";return t+=f(e.incudeNodes),t+=f(e.includeEdges),t+=f(e.includeLabels),t+=f(e.includeOverlays)},g=function(e,t){var n=e._private,r=void 0,i=e.cy().headless(),a=t===m?v:h(t);return t.useCache&&!i&&n.bbCache&&n.bbCache[a]?r=n.bbCache[a]:(r=function(e,t){var n=e._private.cy,r=n.styleEnabled(),i=n.headless(),a={x1:1/0,y1:1/0,x2:-1/0,y2:-1/0},s=e._private,u=r?e.pstyle("display").value:"element",f=e.isNode(),h=e.isEdge(),g=void 0,m=void 0,v=void 0,b=void 0,y=void 0,x=void 0,w="none"!==u;if(w){var k=0;r&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(k=e.pstyle("overlay-padding").value);var A=0;if(r&&(A=e.pstyle("width").pfValue/2),f&&t.includeNodes){var E=e.position();y=E.x,x=E.y;var S=e.outerWidth()/2,$=e.outerHeight()/2;c(a,g=y-S-k,v=x-$-k,m=y+S+k,b=x+$+k)}else if(h&&t.includeEdges){var C=s.rstyle||{};if(r&&!i&&(g=Math.min(C.srcX,C.midX,C.tgtX),m=Math.max(C.srcX,C.midX,C.tgtX),v=Math.min(C.srcY,C.midY,C.tgtY),b=Math.max(C.srcY,C.midY,C.tgtY),c(a,g-=A,v-=A,m+=A,b+=A)),r&&!i&&"haystack"===e.pstyle("curve-style").strValue){var _=C.haystackPts||[];if(g=_[0].x,v=_[0].y,g>(m=_[1].x)){var O=g;g=m,m=O}if(v>(b=_[1].y)){var T=v;v=b,b=T}c(a,g-A,v-A,m+A,b+A)}else{for(var j=C.bezierPts||C.linePts||[],P=0;P<j.length;P++){var D=j[P];g=D.x-A,m=D.x+A,v=D.y-A,b=D.y+A,c(a,g,v,m,b)}if(0===j.length){var R=e.source().position(),I=e.target().position();if((g=R.x)>(m=I.x)){var N=g;g=m,m=N}if((v=R.y)>(b=I.y)){var M=v;v=b,b=M}c(a,g-=A,v-=A,m+=A,b+=A)}}}if(r&&t.includeEdges&&h&&(d(a,e,"mid-source"),d(a,e,"mid-target"),d(a,e,"source"),d(a,e,"target")),r&&"yes"===e.pstyle("ghost").value){var z=e.pstyle("ghost-offset-x").pfValue,L=e.pstyle("ghost-offset-y").pfValue;c(a,a.x1+z,a.y1+L,a.x2+z,a.y2+L)}r&&(g=a.x1,m=a.x2,v=a.y1,b=a.y2,c(a,g-k,v-k,m+k,b+k)),r&&t.includeLabels&&(p(a,e,null),h&&(p(a,e,"source"),p(a,e,"target")))}return a.x1=l(a.x1),a.y1=l(a.y1),a.x2=l(a.x2),a.y2=l(a.y2),a.w=l(a.x2-a.x1),a.h=l(a.y2-a.y1),a.w>0&&a.h>0&&w&&o.expandBoundingBox(a,1),a}(e,t),i||(n.bbCache=n.bbCache||{},n.bbCache[a]=r)),r},m={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeOverlays:!0,useCache:!0},v=h(m);function b(e){return{includeNodes:i.default(e.includeNodes,m.includeNodes),includeEdges:i.default(e.includeEdges,m.includeEdges),includeLabels:i.default(e.includeLabels,m.includeLabels),includeOverlays:i.default(e.includeOverlays,m.includeOverlays),useCache:i.default(e.useCache,m.useCache)}}s.boundingBox=function(e){if(1===this.length&&this[0]._private.bbCache&&(void 0===e||void 0===e.useCache||!0===e.useCache))return e=void 0===e?m:b(e),g(this[0],e);var t={x1:1/0,y1:1/0,x2:-1/0,y2:-1/0},n=b(e=e||i.staticEmptyObject()),r=this.cy().styleEnabled();r&&this.recalculateRenderedStyle(n.useCache),this.updateCompoundBounds();for(var o,a,s={},u=0;u<this.length;u++){var d=this[u];if(r&&d.isEdge()&&"bezier"===d.pstyle("curve-style").strValue&&!s[d.id()]){for(var p=d.parallelEdges(),f=0;f<p.length;f++)s[p[f].id()]=!0;p.recalculateRenderedStyle(n.useCache)}o=t,a=g(d,n),c(o,a.x1,a.y1,a.x2,a.y2)}return t.x1=l(t.x1),t.y1=l(t.y1),t.x2=l(t.x2),t.y2=l(t.y2),t.w=l(t.x2-t.x1),t.h=l(t.y2-t.y1),t},s.boundingBoxAt=function(e){var t=this.nodes();if(r.plainObject(e)){var n=e;e=function(){return n}}for(var i=0;i<t.length;i++){var o=t[i],a=o._private,s=a.position,l=e.call(o,o,i);a.bbAtOldPos={x:s.x,y:s.y},l&&(s.x=l.x,s.y=l.y)}this.emit("dirty"),t.dirtyCompoundBoundsCache().updateCompoundBounds();for(var c=this.boundingBox({useCache:!1}),u=0;u<t.length;u++){var d=t[u],p=d._private,f=d._private.position,h=p.bbAtOldPos;f.x=h.x,f.y=h.y}return t.dirtyCompoundBoundsCache(),this.emit("dirty"),c},a.boundingbox=a.boundingBox,a.renderedBoundingbox=a.renderedBoundingBox,e.exports=s},function(e,t,n){"use strict";var r=n(1),i=void 0,o=void 0;i=o={};var a=function(e){e.uppercaseName=r.capitalize(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=r.capitalize(e.outerName),i[e.name]=function(){var t=this[0],n=t._private,r=n.cy._private.styleEnabled;if(t){if(!r)return 1;if(t.isParent())return t.updateCompoundBounds(),n[e.autoName]||0;var i=t.pstyle(e.name);switch(i.strValue){case"label":return t.recalculateRenderedStyle(),n.rstyle[e.labelName]||0;default:return i.pfValue}}},i["outer"+e.uppercaseName]=function(){var t=this[0],n=t._private.cy._private.styleEnabled;if(t)return n?t[e.name]()+t.pstyle("border-width").pfValue+2*t.padding():1},i["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},i["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};a({name:"width"}),a({name:"height"}),o.padding=function(){var e=this[0],t=e._private;return e.isParent()?(e.updateCompoundBounds(),void 0!==t.autoPadding?t.autoPadding:e.pstyle("padding").pfValue):e.pstyle("padding").pfValue},e.exports=o},function(e,t,n){"use strict";var r=function(e,t){if(e.isEdge())return t(e.renderer())};e.exports={controlPoints:function(){var e=this;return r(this,(function(t){return t.getControlPoints(e)}))},segmentPoints:function(){var e=this;return r(this,(function(t){return t.getSegmentPoints(e)}))},sourceEndpoint:function(){var e=this;return r(this,(function(t){return t.getSourceEndpoint(e)}))},targetEndpoint:function(){var e=this;return r(this,(function(t){return t.getTargetEndpoint(e)}))},midpoint:function(){var e=this;return r(this,(function(t){return t.getEdgeMidpoint(e)}))}}},function(e,t,n){"use strict";var r=n(11),i=n(4),o=n(0),a=n(1),s=n(6),l={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&o.element(n.target)&&r.matches(n.target)},eventFields:function(e){return{cy:e.cy(),target:e}},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e},beforeEmit:function(e,t){t.conf&&t.conf.once&&t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},c=function(e){return o.string(e)?new s(e):e},u={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new r(a.assign({context:t},l)))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=0;r<this.length;r++)this[r].emitter().on(e,c(t),n);return this},removeListener:function(e,t,n){for(var r=0;r<this.length;r++)this[r].emitter().removeListener(e,c(t),n);return this},one:function(e,t,n){for(var r=0;r<this.length;r++)this[r].emitter().one(e,c(t),n);return this},once:function(e,t,n){for(var r=0;r<this.length;r++)this[r].emitter().on(e,c(t),n,{once:!0,onceCollection:this})},emit:function(e,t){for(var n=0;n<this.length;n++)this[n].emitter().emit(e,t);return this},emitAndNotify:function(e,t){if(0!==this.length)return this.cy().notify({type:e,eles:this}),this.emit(e,t),this}};i.eventAliasesOn(u),e.exports=u},function(e,t,n){"use strict";var r=n(0),i=n(6),o={nodes:function(e){return this.filter((function(e){return e.isNode()})).filter(e)},edges:function(e){return this.filter((function(e){return e.isEdge()})).filter(e)},filter:function(e,t){if(void 0===e)return this;if(r.string(e)||r.elementOrCollection(e))return new i(e).filter(this);if(r.fn(e)){for(var n=this.spawn(),o=0;o<this.length;o++){var a=this[o];(t?e.apply(t,[a,o,this]):e(a,o,this))&&n.merge(a)}return n}return this.spawn()},not:function(e){if(e){r.string(e)&&(e=this.filter(e));for(var t=[],n=e._private.map,i=0;i<this.length;i++){var o=this[i];n.has(o.id())||t.push(o)}return this.spawn(t)}return this},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(e){if(r.string(e)){var t=e;return this.filter(t)}for(var n=[],i=e,o=this.length<e.length,a=o?i._private.map:this._private.map,s=o?this:i,l=0;l<s.length;l++){var c=s[l]._private.data.id,u=a.get(c);u&&n.push(u.ele)}return this.spawn(n)},xor:function(e){var t=this._private.cy;r.string(e)&&(e=t.$(e));var n=[],i=e,o=function(e,t){for(var r=0;r<e.length;r++){var i=e[r],o=i._private.data.id;t.hasElementWithId(o)||n.push(i)}};return o(this,i),o(i,this),this.spawn(n)},diff:function(e){var t=this._private.cy;r.string(e)&&(e=t.$(e));var n=[],i=[],o=[],a=e,s=function(e,t,n){for(var r=0;r<e.length;r++){var i=e[r],a=i._private.data.id;t.hasElementWithId(a)?o.push(i):n.push(i)}};return s(this,a,n),s(a,this,i),{left:this.spawn(n,{unique:!0}),right:this.spawn(i,{unique:!0}),both:this.spawn(o,{unique:!0})}},add:function(e){var t=this._private.cy;if(!e)return this;if(r.string(e)){var n=e;e=t.mutableElements().filter(n)}for(var i=[],o=0;o<this.length;o++)i.push(this[o]);for(var a=this._private.map,s=0;s<e.length;s++){var l=!a.has(e[s].id());l&&i.push(e[s])}return this.spawn(i)},merge:function(e){var t=this._private,n=t.cy;if(!e)return this;if(e&&r.string(e)){var i=e;e=n.mutableElements().filter(i)}for(var o=t.map,a=0;a<e.length;a++){var s=e[a],l=s._private.data.id;if(o.has(l)){var c=o.get(l).index;this[c]=s,o.set(l,{ele:s,index:c})}else{var u=this.length++;this[u]=s,o.set(l,{ele:s,index:u})}}return this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map,i=r.get(n);if(!i)return this;var o=i.index;this[o]=void 0,r.delete(n);var a=o===this.length-1;if(this.length>1&&!a){var s=this.length-1,l=this[s],c=l._private.data.id;this[s]=void 0,this[o]=l,r.set(c,{ele:l,index:o})}return this.length--,this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&r.string(e)){var n=e;e=t.mutableElements().filter(n)}for(var i=0;i<e.length;i++)this.unmergeOne(e[i]);return this},map:function(e,t){for(var n=[],r=0;r<this.length;r++){var i=this[r],o=t?e.apply(t,[i,r,this]):e(i,r,this);n.push(o)}return n},reduce:function(e,t){for(var n=t,r=0;r<this.length;r++)n=e(n,this[r],r,this);return n},max:function(e,t){for(var n=-1/0,r=void 0,i=0;i<this.length;i++){var o=this[i],a=t?e.apply(t,[o,i,this]):e(o,i,this);a>n&&(n=a,r=o)}return{value:n,ele:r}},min:function(e,t){for(var n=1/0,r=void 0,i=0;i<this.length;i++){var o=this[i],a=t?e.apply(t,[o,i,this]):e(o,i,this);a<n&&(n=a,r=o)}return{value:n,ele:r}}},a=o;a.u=a["|"]=a["+"]=a.union=a.or=a.add,a["\\"]=a["!"]=a["-"]=a.difference=a.relativeComplement=a.subtract=a.not,a.n=a["&"]=a["."]=a.and=a.intersection=a.intersect,a["^"]=a["(+)"]=a["(-)"]=a.symmetricDifference=a.symdiff=a.xor,a.fnFilter=a.filterFn=a.stdFilter=a.filter,a.complement=a.abscomp=a.absoluteComplement,e.exports=o},function(e,t,n){"use strict";e.exports={isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source().id()===this.target().id()},isSimple:function(){return this.isEdge()&&this.source().id()!==this.target().id()},group:function(){var e=this[0];if(e)return e._private.group}}},function(e,t,n){"use strict";var r=n(0),i=n(17),o=n(1),a={forEach:function(e,t){if(r.fn(e))for(var n=0;n<this.length;n++){var i=this[n];if(!1===(t?e.apply(t,[i,n,this]):e(i,n,this)))break}return this},toArray:function(){for(var e=[],t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var n=[],r=this.length;null==t&&(t=r),null==e&&(e=0),e<0&&(e=r+e),t<0&&(t=r+t);for(var i=e;i>=0&&i<t&&i<r;i++)n.push(this[i]);return this.spawn(n)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(e){if(!r.fn(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(i)},zDepth:function(){var e=this[0];if(e){var t=e._private;if("nodes"===t.group){var n=t.data.parent?e.parents().size():0;return e.isParent()?n:o.MAX_INT-1}var r=t.source,i=t.target,a=r.zDepth(),s=i.zDepth();return Math.max(a,s,0)}}};a.each=a.forEach,e.exports=a},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(5),a=n(2),s={layoutDimensions:function(e){if((e=i.assign({nodeDimensionsIncludeLabels:!0},e)).nodeDimensionsIncludeLabels){var t=this.boundingBox();return{w:t.w,h:t.h}}return{w:this.outerWidth(),h:this.outerHeight()}},layoutPositions:function(e,t,n){var s=this.nodes(),l=this.cy(),c=t.eles,u=function(e,t){return e.id()+"$"+t},d=i.memoize(n,u);e.emit({type:"layoutstart",layout:e}),e.animations=[];var p=t.spacingFactor&&1!==t.spacingFactor,f=function(){if(!p)return null;for(var e=a.makeBoundingBox(),t=0;t<s.length;t++){var n=s[t],r=d(n,t);a.expandBoundingBoxByPoint(e,r.x,r.y)}return e}(),h=i.memoize((function(e,n){var i=d(e,n),o=e.position();return r.number(o.x)&&r.number(o.y)||e.silentPosition({x:0,y:0}),p&&(i=function(e,t,n){var r=t.x1+t.w/2,i=t.y1+t.h/2;return{x:r+(n.x-r)*e,y:i+(n.y-i)*e}}(Math.abs(t.spacingFactor),f,i)),null!=t.transform&&(i=t.transform(e,i)),i}),u);if(t.animate){for(var g=0;g<s.length;g++){var m=s[g],v=h(m,g);if(null==t.animateFilter||t.animateFilter(m,g)){var b=m.animation({position:v,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(b),b.play()}else m.position(v)}if(t.fit){var y=l.animation({fit:{boundingBox:c.boundingBoxAt(h),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(y),y.play()}else if(void 0!==t.zoom&&void 0!==t.pan){var x=l.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(x),x.play()}e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),o.all(e.animations.map((function(e){return e.promise()}))).then((function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})}))}else s.positions(h),t.fit&&l.fit(t.eles,t.padding),null!=t.zoom&&l.zoom(t.zoom),t.pan&&l.pan(t.pan),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){return this.cy().makeLayout(i.extend({},e,{eles:this}))}};s.createLayout=s.makeLayout=s.layout,e.exports=s},function(e,t,n){"use strict";var r=n(0);function i(e,t,n){var r,i=n._private,o=i.styleCache=i.styleCache||{};return null!=(r=o[e])?r:r=o[e]=t(n)}function o(e,t){return function(n){return i(e,t,n)}}function a(e,t){var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return i(e,n,t)}}var s={recalculateRenderedStyle:function(e){var t=this.cy(),n=t.renderer(),r=t.styleEnabled();return n&&r&&n.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e=this.cy(),t=function(e){return e._private.styleCache={}};if(e.hasCompoundNodes()){var n=void 0;(n=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(n.connectedEdges()),n.forEach(t)}else this.forEach((function(e){t(e),e.connectedEdges().forEach(t)}));return this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t._private.batchingStyle)return t._private.batchStyleEles.merge(this),this;var n=t.hasCompoundNodes(),r=t.style(),i=this;e=!(!e&&void 0!==e),n&&(i=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var o=r.apply(i);return o.dirtyStyleCache(),o.dirtyCompoundBoundsCache(),e?o.emitAndNotify("style"):o.emit("style"),this},updateMappers:function(e){var t=this._private.cy,n=t.style();if(e=!(!e&&void 0!==e),!t.styleEnabled())return this;var r=n.updateMappers(this);return r.dirtyStyleCache(),r.dirtyCompoundBoundsCache(),e?r.emitAndNotify("style"):r.emit("style"),this},parsedStyle:function(e){var t=this[0],n=t.cy();if(n.styleEnabled())return t?t._private.style[e]||n.style().getDefaultProperty(e):void 0},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var i=n.style();if(r.plainObject(e)){var o=e;i.applyBypass(this,o,!1),this.dirtyStyleCache(),this.dirtyCompoundBoundsCache(),this.emitAndNotify("style")}else if(r.string(e)){if(void 0===t){var a=this[0];return a?i.getStylePropertyValue(a,e):void 0}i.applyBypass(this,e,t,!1),this.dirtyStyleCache(),this.dirtyCompoundBoundsCache(),this.emitAndNotify("style")}else if(void 0===e){var s=this[0];return s?i.getRawStyle(s):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r<this.length;r++){var i=this[r];n.removeAllBypasses(i,!1)}else{e=e.split(/\s+/);for(var o=0;o<this.length;o++){var a=this[o];n.removeBypasses(a,e,!1)}}return this.dirtyStyleCache(),this.dirtyCompoundBoundsCache(),this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),n=this[0];if(n){var r=n._private,i=n.pstyle("opacity").value;if(!t)return i;var o=r.data.parent?n.parents():null;if(o)for(var a=0;a<o.length;a++)i*=o[a].pstyle("opacity").value;return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var e=this[0],t=e.cy().hasCompoundNodes();return e?t?0===e.effectiveOpacity():0===e.pstyle("opacity").value:void 0},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function l(e,t){var n=e._private.data.parent?e.parents():null;if(n)for(var r=0;r<n.length;r++)if(!t(n[r]))return!1;return!0}function c(e){var t=e.ok,n=e.edgeOkViaNode||e.ok,r=e.parentOk||e.ok;return function(){var e=this.cy();if(!e.styleEnabled())return!0;var i=this[0],o=e.hasCompoundNodes();if(i){var a=i._private;if(!t(i))return!1;if(i.isNode())return!o||l(i,r);var s=a.source,c=a.target;return n(s)&&(!o||l(s,n))&&(s===c||n(c)&&(!o||l(c,n)))}}}var u=o("eleTakesUpSpace",(function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())}));s.takesUpSpace=a("takesUpSpace",c({ok:u}));var d=o("eleInteractive",(function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&u(e)})),p=o("parentInteractive",(function(e){return"visible"===e.pstyle("visibility").value&&u(e)}));s.interactive=a("interactive",c({ok:d,parentOk:p,edgeOkViaNode:u})),s.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var f=o("eleVisible",(function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&u(e)})),h=u;s.visible=a("visible",c({ok:f,edgeOkViaNode:h})),s.hidden=function(){var e=this[0];if(e)return!e.visible()},s.bypass=s.css=s.style,s.renderedCss=s.renderedStyle,s.removeBypass=s.removeCss=s.removeStyle,s.pstyle=s.parsedStyle,e.exports=s},function(e,t,n){"use strict";var r={};function i(e){return function(){var t=arguments,n=[];if(2===t.length){var r=t[0],i=t[1];this.on(e.event,r,i)}else if(1===t.length){var o=t[0];this.on(e.event,o)}else if(0===t.length){for(var a=0;a<this.length;a++){var s=this[a],l=!e.ableField||s._private[e.ableField],c=s._private[e.field]!=e.value;if(e.overrideAble){var u=e.overrideAble(s);if(void 0!==u&&(l=u,!u))return this}l&&(s._private[e.field]=e.value,c&&n.push(s))}var d=this.spawn(n);d.updateStyle(),d.emit(e.event)}return this}}function o(e){r[e.field]=function(){var t=this[0];if(t){if(e.overrideField){var n=e.overrideField(t);if(void 0!==n)return n}return t._private[e.field]}},r[e.on]=i({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),r[e.off]=i({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}o({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),o({field:"grabbable",overrideField:function(e){return!e.cy().autoungrabify()&&void 0},on:"grabify",off:"ungrabify"}),o({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),o({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),r.deselect=r.unselect,r.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},o({field:"active",on:"activate",off:"unactivate"}),r.inactive=function(){var e=this[0];if(e)return!e._private.active},e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(0),o={},a=function(e,t){return function(n,r,o,a){var s=n,l=void 0;if(null==s?l="null":i.elementOrCollection(s)&&1===s.length&&(l="#"+s.id()),1===this.length&&l){var c=this[0]._private,u=c.traversalCache=c.traversalCache||{},d=u[t]=u[t]||{},p=d[l];return p||(d[l]=e.call(this,n,r,o,a))}return e.call(this,n,r,o,a)}},s=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(i.isNode()){for(var o=!1,a=i.connectedEdges(),s=0;s<a.length;s++){var l=a[s],c=l.source(),u=l.target();if(e.noIncomingEdges&&u===i&&c!==i||e.noOutgoingEdges&&c===i&&u!==i){o=!0;break}}o||n.push(i)}}return this.spawn(n,{unique:!0}).filter(t)}},l=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(i.isNode())for(var o=i.connectedEdges(),a=0;a<o.length;a++){var s=o[a],l=s.source(),c=s.target();e.outgoing&&l===i?(n.push(s),n.push(c)):e.incoming&&c===i&&(n.push(s),n.push(l))}}return this.spawn(n,{unique:!0}).filter(t)}},c=function(e){return function(t){for(var n=this,r=[],i={};;){var o=e.outgoing?n.outgoers():n.incomers();if(0===o.length)break;for(var a=!1,s=0;s<o.length;s++){var l=o[s],c=l.id();i[c]||(i[c]=!0,r.push(l),a=!0)}if(!a)break;n=o}return this.spawn(r,{unique:!0}).filter(t)}};function u(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r]._private[e.attr];i&&n.push(i)}return this.spawn(n,{unique:!0}).filter(t)}}function d(e){return function(t){var n=[],r=this._private.cy,o=e||{};i.string(t)&&(t=r.$(t));for(var a=0;a<t.length;a++)for(var s=t[a]._private.edges,l=0;l<s.length;l++){var c=s[l],u=c._private.data,d=this.hasElementWithId(u.source)&&t.hasElementWithId(u.target),p=t.hasElementWithId(u.source)&&this.hasElementWithId(u.target);if(d||p){if(o.thisIsSrc||o.thisIsTgt){if(o.thisIsSrc&&!d)continue;if(o.thisIsTgt&&!p)continue}n.push(c)}}return this.spawn(n,{unique:!0})}}function p(e){return e=r.extend({},{codirected:!1},e),function(t){for(var n=[],r=this.edges(),i=e,o=0;o<r.length;o++)for(var a=r[o]._private,s=a.source,l=s._private.data.id,c=a.data.target,u=s._private.edges,d=0;d<u.length;d++){var p=u[d],f=p._private.data,h=f.target,g=f.source,m=h===c&&g===l,v=l===h&&c===g;(i.codirected&&m||!i.codirected&&(m||v))&&n.push(p)}return this.spawn(n,{unique:!0}).filter(t)}}o.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},r.extend(o,{roots:s({noIncomingEdges:!0}),leaves:s({noOutgoingEdges:!0}),outgoers:a(l({outgoing:!0}),"outgoers"),successors:c({outgoing:!0}),incomers:a(l({incoming:!0}),"incomers"),predecessors:c({incoming:!0})}),r.extend(o,{neighborhood:a((function(e){for(var t=[],n=this.nodes(),r=0;r<n.length;r++)for(var i=n[r],o=i.connectedEdges(),a=0;a<o.length;a++){var s=o[a],l=s.source(),c=s.target(),u=i===l?c:l;u.length>0&&t.push(u[0]),t.push(s[0])}return this.spawn(t,{unique:!0}).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),o.neighbourhood=o.neighborhood,o.closedNeighbourhood=o.closedNeighborhood,o.openNeighbourhood=o.openNeighborhood,r.extend(o,{source:a((function(e){var t=this[0],n=void 0;return t&&(n=t._private.source||t.cy().collection()),n&&e?n.filter(e):n}),"source"),target:a((function(e){var t=this[0],n=void 0;return t&&(n=t._private.target||t.cy().collection()),n&&e?n.filter(e):n}),"target"),sources:u({attr:"source"}),targets:u({attr:"target"})}),r.extend(o,{edgesWith:a(d(),"edgesWith"),edgesTo:a(d({thisIsSrc:!0}),"edgesTo")}),r.extend(o,{connectedEdges:a((function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];if(r.isNode())for(var i=r._private.edges,o=0;o<i.length;o++){var a=i[o];t.push(a)}}return this.spawn(t,{unique:!0}).filter(e)}),"connectedEdges"),connectedNodes:a((function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];r.isEdge()&&(t.push(r.source()[0]),t.push(r.target()[0]))}return this.spawn(t,{unique:!0}).filter(e)}),"connectedNodes"),parallelEdges:a(p(),"parallelEdges"),codirectedEdges:a(p({codirected:!0}),"codirectedEdges")}),r.extend(o,{components:function(){var e=this,t=e.cy(),n=e.spawn(),r=e.nodes().spawnSelf(),i=[],o=function(e,t){n.merge(e),r.unmerge(e),t.merge(e)};if(r.empty())return e.spawn();var a=function(){var n=t.collection();i.push(n);var a=r[0];o(a,n),e.bfs({directed:!1,roots:a,visit:function(e,t,r,i,a){o(e,n)}})};do{a()}while(r.length>0);return i.map((function(e){var t=e.connectedEdges().stdFilter((function(t){return e.anySame(t.source())&&e.anySame(t.target())}));return e.union(t)}))}}),e.exports=o},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(7),a=n(14),s={add:function(e){var t=void 0,n=this;if(r.elementOrCollection(e)){var s=e;if(s._private.cy===n)t=s.restore();else{for(var l=[],c=0;c<s.length;c++){var u=s[c];l.push(u.json())}t=new o(n,l)}}else if(r.array(e))t=new o(n,e);else if(r.plainObject(e)&&(r.array(e.nodes)||r.array(e.edges))){for(var d=e,p=[],f=["nodes","edges"],h=0,g=f.length;h<g;h++){var m=f[h],v=d[m];if(r.array(v))for(var b=0,y=v.length;b<y;b++){var x=i.extend({group:m},v[b]);p.push(x)}}t=new o(n,p)}else t=new a(n,e).collection();return t},remove:function(e){if(r.elementOrCollection(e));else if(r.string(e)){var t=e;e=this.$(t)}return e.remove()}};e.exports=s},function(e,t,n){"use strict";var r=n(4),i=n(1),o=n(71),a={animate:r.animate(),animation:r.animation(),animated:r.animated(),clearQueue:r.clearQueue(),delay:r.delay(),delayAnimation:r.delayAnimation(),stop:r.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){o(n,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&i.requestAnimationFrame((function(n){o(n,e),t()}))}()}}};e.exports=a},function(e,t,n){"use strict";var r=n(72),i=n(77);e.exports=function(e,t){var n=t._private.aniEles,o=[];function a(t,n){var a=t._private,s=a.animation.current,l=a.animation.queue,c=!1;if(!n&&"none"===t.pstyle("display").value){s=s.splice(0,s.length).concat(l.splice(0,l.length));for(var u=0;u<s.length;u++)s[u].stop()}if(0===s.length){var d=l.shift();d&&s.push(d)}for(var p=function(e){for(var t=e.length-1;t>=0;t--)(0,e[t])();e.splice(0,e.length)},f=s.length-1;f>=0;f--){var h=s[f],g=h._private;g.stopped?(s.splice(f,1),g.hooked=!1,g.playing=!1,g.started=!1,p(g.frames)):(g.playing||g.applying)&&(g.playing&&g.applying&&(g.applying=!1),g.started||i(t,h,e,n),r(t,h,e,n),g.applying&&(g.applying=!1),p(g.frames),h.completed()&&(s.splice(f,1),g.hooked=!1,g.playing=!1,g.started=!1,p(g.completes)),c=!0)}return n||0!==s.length||0!==l.length||o.push(t),c}for(var s=!1,l=0;l<n.length;l++){var c=a(n[l]);s=s||c}var u=a(t,!0);(s||u)&&(n.length>0?(n.dirtyCompoundBoundsCache(),t.notify({type:"draw",eles:n})):t.notify({type:"draw"})),n.unmerge(o),t.emit("step")}},function(e,t,n){"use strict";var r=n(73),i=n(76),o=n(0);function a(e,t){return!!(null!=e&&null!=t&&(o.number(e)&&o.number(t)||e&&t))}e.exports=function(e,t,n,s){var l=!s,c=e._private,u=t._private,d=u.easing,p=u.startTime,f=(s?e:e.cy()).style();if(!u.easingImpl)if(null==d)u.easingImpl=r.linear;else{var h=void 0;h=o.string(d)?f.parse("transition-timing-function",d).value:d;var g=void 0,m=void 0;o.string(h)?(g=h,m=[]):(g=h[1],m=h.slice(2).map((function(e){return+e}))),m.length>0?("spring"===g&&m.push(u.duration),u.easingImpl=r[g].apply(null,m)):u.easingImpl=r[g]}var v=u.easingImpl,b=void 0;if(b=0===u.duration?1:(n-p)/u.duration,u.applying&&(b=u.progress),b<0?b=0:b>1&&(b=1),null==u.delay){var y=u.startPosition,x=u.position;if(x&&l&&!e.locked()){var w=e.position();a(y.x,x.x)&&(w.x=i(y.x,x.x,b,v)),a(y.y,x.y)&&(w.y=i(y.y,x.y,b,v)),e.emit("position")}var k=u.startPan,A=u.pan,E=c.pan,S=null!=A&&s;S&&(a(k.x,A.x)&&(E.x=i(k.x,A.x,b,v)),a(k.y,A.y)&&(E.y=i(k.y,A.y,b,v)),e.emit("pan"));var $=u.startZoom,C=u.zoom,_=null!=C&&s;_&&(a($,C)&&(c.zoom=i($,C,b,v)),e.emit("zoom")),(S||_)&&e.emit("viewport");var O=u.style;if(O&&O.length>0&&l){for(var T=0;T<O.length;T++){var j=O[T],P=j.name,D=j,R=u.startStyle[P],I=f.properties[R.name],N=i(R,D,b,v,I);f.overrideBypass(e,P,N)}e.emit("style")}}return u.progress=b,b}},function(e,t,n){"use strict";var r=n(74),i=n(75),o=function(e,t,n,i){var o=r(e,t,n,i);return function(e,t,n){return e+(t-e)*o(n)}},a={linear:function(e,t,n){return e+(t-e)*n},ease:o(.25,.1,.25,1),"ease-in":o(.42,0,1,1),"ease-out":o(0,0,.58,1),"ease-in-out":o(.42,0,.58,1),"ease-in-sine":o(.47,0,.745,.715),"ease-out-sine":o(.39,.575,.565,1),"ease-in-out-sine":o(.445,.05,.55,.95),"ease-in-quad":o(.55,.085,.68,.53),"ease-out-quad":o(.25,.46,.45,.94),"ease-in-out-quad":o(.455,.03,.515,.955),"ease-in-cubic":o(.55,.055,.675,.19),"ease-out-cubic":o(.215,.61,.355,1),"ease-in-out-cubic":o(.645,.045,.355,1),"ease-in-quart":o(.895,.03,.685,.22),"ease-out-quart":o(.165,.84,.44,1),"ease-in-out-quart":o(.77,0,.175,1),"ease-in-quint":o(.755,.05,.855,.06),"ease-out-quint":o(.23,1,.32,1),"ease-in-out-quint":o(.86,0,.07,1),"ease-in-expo":o(.95,.05,.795,.035),"ease-out-expo":o(.19,1,.22,1),"ease-in-out-expo":o(1,0,0,1),"ease-in-circ":o(.6,.04,.98,.335),"ease-out-circ":o(.075,.82,.165,1),"ease-in-out-circ":o(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return a.linear;var r=i(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":o};e.exports=a},function(e,t,n){"use strict"; /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */e.exports=function(e,t,n,r){var i=4,o=.001,a=1e-7,s=10,l=11,c=1/(l-1),u="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var p=u?new Float32Array(l):new Array(l);function f(e,t){return 1-3*t+3*e}function h(e,t){return 3*t-6*e}function g(e){return 3*e}function m(e,t,n){return((f(t,n)*e+h(t,n))*e+g(t))*e}function v(e,t,n){return 3*f(t,n)*e*e+2*h(t,n)*e+g(t)}function b(t,r){for(var o=0;o<i;++o){var a=v(r,e,n);if(0===a)return r;r-=(m(r,e,n)-t)/a}return r}function y(){for(var t=0;t<l;++t)p[t]=m(t*c,e,n)}function x(t,r,i){var o=void 0,l=void 0,c=0;do{(o=m(l=r+(i-r)/2,e,n)-t)>0?i=l:r=l}while(Math.abs(o)>a&&++c<s);return l}function w(t){for(var r=0,i=1,a=l-1;i!==a&&p[i]<=t;++i)r+=c;--i;var s=r+(t-p[i])/(p[i+1]-p[i])*c,u=v(s,e,n);return u>=o?b(t,s):0===u?s:x(t,r,r+c)}var k=!1;function A(){k=!0,e===t&&n===r||y()}var E=function(i){return k||A(),e===t&&n===r?i:0===i?0:1===i?1:m(w(i),t,r)};E.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var S="generateBezier("+[e,t,n,r]+")";return E.toString=function(){return S},E}},function(e,t,n){"use strict"; -/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var r=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}function n(n,r){var i={dx:n.v,dv:e(n)},o=t(n,.5*r,i),a=t(n,.5*r,o),s=t(n,r,a),l=1/6*(i.dx+2*(o.dx+a.dx)+s.dx),c=1/6*(i.dv+2*(o.dv+a.dv)+s.dv);return n.x=n.x+l*r,n.v=n.v+c*r,n}return function e(t,r,i){var o,a={x:-1,v:0,tension:null,friction:null},s=[0],l=0,c=void 0,u=void 0;for(t=parseFloat(t)||500,r=parseFloat(r)||20,i=i||null,a.tension=t,a.friction=r,c=(o=null!==i)?(l=e(t,r))/i*.016:.016;u=n(u||a,c),s.push(1+u.x),l+=16,Math.abs(u.x)>1e-4&&Math.abs(u.v)>1e-4;);return o?function(e){return s[e*(s.length-1)|0]}:l}}();e.exports=r},function(e,t,n){"use strict";var r=n(0);function i(e,t,n,r,i){if(1===r)return n;var o=i(t,n,r);return null==e||((e.roundValue||e.color)&&(o=Math.round(o)),void 0!==e.min&&(o=Math.max(o,e.min)),void 0!==e.max&&(o=Math.min(o,e.max))),o}function o(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}e.exports=function(e,t,n,a,s){var l=null!=s?s.type:null;n<0?n=0:n>1&&(n=1);var c=o(e,s),u=o(t,s);if(r.number(c)&&r.number(u))return i(l,c,u,n,a);if(r.array(c)&&r.array(u)){for(var d=[],p=0;p<u.length;p++){var f=c[p],h=u[p];if(null!=f&&null!=h){var g=i(l,f,h,n,a);d.push(g)}else d.push(h)}return d}}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var i=!r,o=e,a=t._private,s=r?e:e.cy(),l=s.style();if(i){var c=o.position();a.startPosition=a.startPosition||{x:c.x,y:c.y},a.startStyle=a.startStyle||l.getAnimationStartStyle(o,a.style)}if(r){var u=s._private.pan;a.startPan=a.startPan||{x:u.x,y:u.y},a.startZoom=null!=a.startZoom?a.startZoom:s._private.zoom}a.started=!0,a.startTime=n-a.progress*a.duration}},function(e,t,n){"use strict";var r=n(11),i=n(4),o=n(0),a=n(1),s=n(6),l={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&o.element(n.target)&&r.matches(n.target)},eventFields:function(e){return{cy:e,target:e}},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},c=function(e){return o.string(e)?new s(e):e},u={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new r(a.assign({context:this},l))),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,c(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,c(t),n),this},one:function(e,t,n){return this.emitter().one(e,c(t),n),this},once:function(e,t,n){return this.emitter().one(e,c(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this}};i.eventAliasesOn(u),e.exports=u},function(e,t,n){"use strict";var r={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};r.jpeg=r.jpg,e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(0),o={layout:function(e){if(null!=e)if(null!=e.name){var t=e.name,n=this.extension("layout",t);if(null!=n){var o=void 0;o=i.string(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$();var a=new n(r.extend({},e,{cy:this,eles:o}));return a}r.error("Can not apply layout: No such layout `"+t+"` found; did you include its JS file?")}else r.error("A `name` must be specified to make a layout");else r.error("Layout options must be specified to make a layout")}};o.createLayout=o.makeLayout=o.layout,e.exports=o},function(e,t,n){"use strict";var r={notify:function(e){var t=this._private;if(t.batchingNotify){var n=t.batchNotifyEles,r=t.batchNotifyTypes;return e.eles&&n.merge(e.eles),void(r.ids[e.type]||(r.push(e.type),r.ids[e.type]=!0))}if(t.notificationsEnabled){var i=this.renderer();!this.isDestroyed()&&i&&i.notify(e)}},notifications:function(e){var t=this._private;if(void 0===e)return t.notificationsEnabled;t.notificationsEnabled=!!e},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchingStyle=e.batchingNotify=!0,e.batchStyleEles=this.collection(),e.batchNotifyEles=this.collection(),e.batchNotifyTypes=[],e.batchNotifyTypes.ids={}),e.batchCount++,this},endBatch:function(){var e=this._private;return e.batchCount--,0===e.batchCount&&(e.batchingStyle=!1,e.batchStyleEles.updateStyle(),e.batchingNotify=!1,this.notify({type:e.batchNotifyTypes,eles:e.batchNotifyEles})),this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],o=e[i];t.getElementById(i).data(o)}}))}};e.exports=r},function(e,t,n){"use strict";var r=n(1),i={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify({type:"draw"}),this},resize:function(){return this.invalidateSize(),this.notify({type:"resize"}),this.emit("resize"),this},initRenderer:function(e){var t=this.extension("renderer",e.name);null!=t?(this._private.renderer=new t(r.extend({},e,{cy:this})),this.notify({type:"init"})):r.error("Can not initialise: No such renderer `%s` found; did you include its JS file?",e.name)},destroyRenderer:function(){this.notify({type:"destroy"});var e=this.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);this._private.renderer=null},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};i.invalidateDimensions=i.resize,e.exports=i},function(e,t,n){"use strict";var r=n(0),i=n(7),o={collection:function(e,t){return r.string(e)?this.$(e):r.elementOrCollection(e)?e.collection():r.array(e)?new i(this,e,t):new i(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};o.elements=o.filter=o.$,e.exports=o},function(e,t,n){"use strict";var r=n(0),i=n(18),o={style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return r.stylesheet(e)?t.style=e.generateStyle(this):r.array(e)?t.style=i.fromJson(this,e):r.string(e)?t.style=i.fromString(this,e):t.style=i(this),t.style}};e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(5),a={apply:function(e){var t=this._private,n=t.cy.collection();t.newStyle&&(t.contextStyles={},t.propDiffs={},this.cleanElements(e,!0));for(var r=0;r<e.length;r++){var i=e[r],o=this.getContextMeta(i);if(!o.empty){n.merge(i);var a=this.getContextStyle(o),s=this.applyContextStyle(o,a,i);t.newStyle||this.updateTransitions(i,s.diffProps),this.updateStyleHints(i)}}return t.newStyle=!1,n},getPropertiesDiff:function(e,t){var n=this._private.propDiffs=this._private.propDiffs||{},r=e+"-"+t,i=n[r];if(i)return i;for(var o=[],a={},s=0;s<this.length;s++){var l=this[s],c="t"===e[s]!=("t"===t[s]),u=l.mappedProperties.length>0;if(c||u){var d=void 0;c&&u||c?d=l.properties:u&&(d=l.mappedProperties);for(var p=0;p<d.length;p++){for(var f=d[p],h=f.name,g=!1,m=s+1;m<this.length;m++){var v=this[m];if("t"===t[m]&&(g=null!=v.properties[f.name]))break}a[h]||g||(a[h]=!0,o.push(h))}}}return n[r]=o,o},getContextMeta:function(e){var t,n="",r=e._private.styleCxtKey||"";this._private.newStyle&&(r="");for(var i=0;i<this.length;i++){var o=this[i];n+=o.selector&&o.selector.matches(e)?"t":"f"}return t=this.getPropertiesDiff(r,n),e._private.styleCxtKey=n,{key:n,diffPropNames:t,empty:0===t.length}},getContextStyle:function(e){var t=e.key,n=this._private.contextStyles=this._private.contextStyles||{};if(n[t])return n[t];for(var r={_private:{key:t}},i=0;i<this.length;i++){var o=this[i];if("t"===t[i])for(var a=0;a<o.properties.length;a++){var s=o.properties[a];r[s.name]=s}}return n[t]=r,r},applyContextStyle:function(e,t,n){for(var r=e.diffPropNames,i={},o=0;o<r.length;o++){var a=r[o],s=t[a],l=n.pstyle(a);if(!s){if(!l)continue;s=l.bypass?{name:a,deleteBypassed:!0}:{name:a,delete:!0}}if(l!==s){var c=i[a]={prev:l};this.applyParsedProperty(n,s),c.next=n.pstyle(a),c.next&&c.next.bypass&&(c.next=c.next.bypassed)}}return{diffProps:i}},updateStyleHints:function(e){var t=e._private;if(!e.removed()){var n=!1;if("nodes"===t.group)for(var r=1;r<=this.pieBackgroundN;r++)if(e.pstyle("pie-"+r+"-background-size").value>0){n=!0;break}t.hasPie=n;var i=e.pstyle("text-transform").strValue,o=e.pstyle("label").strValue,a=e.pstyle("source-label").strValue,s=e.pstyle("target-label").strValue,l=e.pstyle("font-style").strValue,c=e.pstyle("font-size").pfValue+"px",u=e.pstyle("font-family").strValue,d=e.pstyle("font-weight").strValue,p=l+"$"+c+"$"+u+"$"+d+"$"+i+"$"+e.pstyle("text-valign").strValue+"$"+e.pstyle("text-valign").strValue+"$"+e.pstyle("text-outline-width").pfValue+"$"+e.pstyle("text-wrap").strValue+"$"+e.pstyle("text-max-width").pfValue;t.labelStyleKey=p,t.sourceLabelKey=p+"$"+a,t.targetLabelKey=p+"$"+s,t.labelKey=p+"$"+o,t.fontKey=l+"$"+d+"$"+c+"$"+u,t.styleKey=Date.now()}},applyParsedProperty:function(e,t){var n=this,o=t,a=e._private.style,s=void 0,l=n.types,c=n.properties[o.name].type,u=o.bypass,d=a[o.name],p=d&&d.bypass,f=e._private,h=function(){n.checkZOrderTrigger(e,o.name,d?d.value:null,o.value)};if("curve-style"===t.name&&"haystack"===t.value&&e.isEdge()&&(e.isLoop()||e.source().isParent()||e.target().isParent())&&(o=t=this.parse(t.name,"bezier",u)),o.delete)return a[o.name]=void 0,h(),!0;if(o.deleteBypassed)return d?!!d.bypass&&(d.bypassed=void 0,h(),!0):(h(),!0);if(o.deleteBypass)return d?!!d.bypass&&(a[o.name]=d.bypassed,h(),!0):(h(),!0);var g=function(){r.error("Do not assign mappings to elements without corresponding data (e.g. ele `"+e.id()+"` for property `"+o.name+"` with data field `"+o.field+"`); try a `["+o.field+"]` selector to limit scope to elements with `"+o.field+"` defined")};switch(o.mapped){case l.mapData:for(var m=o.field.split("."),v=f.data,b=0;b<m.length&&v;b++)v=v[m[b]];var y=void 0;if((y=i.number(v)?(v-o.fieldMin)/(o.fieldMax-o.fieldMin):0)<0?y=0:y>1&&(y=1),c.color){var x=o.valueMin[0],w=o.valueMax[0],k=o.valueMin[1],A=o.valueMax[1],E=o.valueMin[2],S=o.valueMax[2],$=null==o.valueMin[3]?1:o.valueMin[3],C=null==o.valueMax[3]?1:o.valueMax[3],_=[Math.round(x+(w-x)*y),Math.round(k+(A-k)*y),Math.round(E+(S-E)*y),Math.round($+(C-$)*y)];s={bypass:o.bypass,name:o.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!c.number)return!1;var O=o.valueMin+(o.valueMax-o.valueMin)*y;s=this.parse(o.name,O,o.bypass,"mapping")}s||(s=this.parse(o.name,d.strValue,o.bypass,"mapping")),s||g(),s.mapping=o,o=s;break;case l.data:var T=o.field.split("."),j=f.data;if(j)for(var P=0;P<T.length;P++)j=j[T[P]];if(!(s=this.parse(o.name,j,o.bypass,"mapping"))){var D=d?d.strValue:"";s=this.parse(o.name,D,o.bypass,"mapping")}s||g(),s.mapping=o,o=s;break;case l.fn:var R=(0,o.value)(e);(s=this.parse(o.name,R,o.bypass,"mapping")).mapping=o,o=s;break;case void 0:break;default:return!1}return u?(o.bypassed=p?d.bypassed:d,a[o.name]=o):p?d.bypassed=o:a[o.name]=o,h(),!0},cleanElements:function(e,t){for(var n=this.properties,r=0;r<e.length;r++){var i=e[r];if(t)for(var o=i._private.style,a=0;a<n.length;a++){var s=n[a],l=o[s.name];l&&(l.bypass?l.bypassed=null:o[s.name]=null)}else i._private.style={}}},update:function(){this._private.cy.mutableElements().updateStyle()},updateMappers:function(e){for(var t=this._private.cy.collection(),n=0;n<e.length;n++){for(var r=e[n],i=r._private.style,o=!1,a=0;a<this.properties.length;a++){var s=i[this.properties[a].name];if(s&&s.mapping){var l=s.mapping;this.applyParsedProperty(r,l),o=!0}}o&&(this.updateStyleHints(r),t.merge(r))}return t},updateTransitions:function(e,t,n){var r=this,a=e._private,s=e.pstyle("transition-property").value,l=e.pstyle("transition-duration").pfValue,c=e.pstyle("transition-delay").pfValue;if(s.length>0&&l>0){for(var u={},d=!1,p=0;p<s.length;p++){var f=s[p],h=e.pstyle(f),g=t[f];if(g){var m=g.prev,v=null!=g.next?g.next:h,b=!1,y=void 0;m&&(i.number(m.pfValue)&&i.number(v.pfValue)?(b=v.pfValue-m.pfValue,y=m.pfValue+1e-6*b):i.number(m.value)&&i.number(v.value)?(b=v.value-m.value,y=m.value+1e-6*b):i.array(m.value)&&i.array(v.value)&&(b=m.value[0]!==v.value[0]||m.value[1]!==v.value[1]||m.value[2]!==v.value[2],y=m.strValue),b&&(u[f]=v.strValue,this.applyBypass(e,f,y),d=!0))}}if(!d)return;a.transitioning=!0,new o((function(t){c>0?e.delayAnimation(c).play().promise().then(t):t()})).then((function(){return e.animation({style:u,duration:l,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){r.removeBypasses(e,s),e.emitAndNotify("style"),a.transitioning=!1}))}else a.transitioning&&(this.removeBypasses(e,s),e.emitAndNotify("style"),a.transitioning=!1)},checkZOrderTrigger:function(e,t,n,r){var i=this.properties[t];null==i.triggersZOrder||null!=n&&!i.triggersZOrder(n,r)||this._private.cy.notify({type:"zorder",eles:e})}};e.exports=a},function(e,t,n){"use strict";var r=n(0),i=n(1),o={applyBypass:function(e,t,n,o){var a=[];if("*"===t||"**"===t){if(void 0!==n)for(var s=0;s<this.properties.length;s++){var l=this.properties[s].name,c=this.parse(l,n,!0);c&&a.push(c)}}else if(r.string(t)){var u=this.parse(t,n,!0);u&&a.push(u)}else{if(!r.plainObject(t))return!1;var d=t;o=n;for(var p=Object.keys(d),f=0;f<p.length;f++){var h=p[f],g=(this.properties[h],d[h]);if(void 0===g&&(g=d[i.dash2camel(h)]),void 0!==g){var m=this.parse(h,g,!0);m&&a.push(m)}}}if(0===a.length)return!1;for(var v=!1,b=0;b<e.length;b++){for(var y=e[b],x={},w=void 0,k=0;k<a.length;k++){var A=a[k];if(o){var E=y.pstyle(A.name);w=x[A.name]={prev:E}}v=this.applyParsedProperty(y,A)||v,o&&(w.next=y.pstyle(A.name))}v&&this.updateStyleHints(y),o&&this.updateTransitions(y,x,!0)}return v},overrideBypass:function(e,t,n){t=i.camel2dash(t);for(var r=0;r<e.length;r++){var o=e[r],a=o._private.style[t],s=this.properties[t].type,l=s.color,c=s.mutiple;if(a&&a.bypass){var u=null!=a.pfValue?a.pfValue:a.value;a.value=n,null!=a.pfValue&&(a.pfValue=n),a.strValue=l?"rgb("+n.join(",")+")":c?n.join(" "):""+n,this.checkZOrderTrigger(o,t,u,n)}else this.applyBypass(o,t,n)}},removeAllBypasses:function(e,t){return this.removeBypasses(e,this.propertyNames,t)},removeBypasses:function(e,t,n){for(var r=0;r<e.length;r++){for(var i=e[r],o={},a=0;a<t.length;a++){var s=t[a],l=this.properties[s],c=i.pstyle(l.name);if(c&&c.bypass){var u=this.parse(s,"",!0),d=o[l.name]={prev:c};this.applyParsedProperty(i,u),d.next=i.pstyle(l.name)}}this.updateStyleHints(i),n&&this.updateTransitions(i,o,!0)}}};e.exports=o},function(e,t,n){"use strict";var r=n(3),i={getEmSizeInPixels:function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},containerCss:function(e){var t=this._private.cy.container();if(r&&t&&r.getComputedStyle)return r.getComputedStyle(t).getPropertyValue(e)}};e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(0),o={getRenderedStyle:function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},getRawStyle:function(e,t){if(e=e[0]){for(var n={},i=0;i<this.properties.length;i++){var o=this.properties[i],a=this.getStylePropertyValue(e,o.name,t);null!=a&&(n[o.name]=a,n[r.dash2camel(o.name)]=a)}return n}},getIndexedStyle:function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},getStylePropertyValue:function(e,t,n){if(e=e[0]){var r=this.properties[t];r.alias&&(r=r.pointsTo);var i=r.type,o=e.pstyle(r.name),a=e.cy().zoom();if(o){var s=o.units?i.implicitUnits||"px":null;return s?[].concat(o.pfValue).map((function(e){return e*(n?a:1)+s})).join(" "):o.strValue}}},getAnimationStartStyle:function(e,t){for(var n={},r=0;r<t.length;r++){var o=t[r].name,a=e.pstyle(o);void 0!==a&&(a=i.plainObject(a)?this.parse(o,a.strValue):this.parse(o,a)),a&&(n[o]=a)}return n},getPropsList:function(e){var t=[],n=e,i=this.properties;if(n)for(var o=Object.keys(n),a=0;a<o.length;a++){var s=o[a],l=n[s],c=i[s]||i[r.camel2dash(s)],u=this.parse(c.name,l);u&&t.push(u)}return t}};e.exports=o},function(e,t,n){"use strict";var r={appendFromJson:function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n.selector,i=n.style||n.css,o=Object.keys(i);this.selector(r);for(var a=0;a<o.length;a++){var s=o[a],l=i[s];this.css(s,l)}}return this},fromJson:function(e){return this.resetToDefault(),this.appendFromJson(e),this},json:function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,o={},a=0;a<i.length;a++){var s=i[a];o[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:o})}return e}};e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(6),o={appendFromString:function(e){var t=""+e,n=void 0,o=void 0,a=void 0;function s(){t=t.length>n.length?t.substr(n.length):""}function l(){o=o.length>a.length?o.substr(a.length):""}for(t=t.replace(/[/][*](\s|.)+?[*][/]/g,"");!t.match(/^\s*$/);){var c=t.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!c){r.error("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+t);break}n=c[0];var u=c[1];if("core"!==u&&new i(u)._private.invalid)r.error("Skipping parsing of block: Invalid selector found in string stylesheet: "+u),s();else{var d=c[2],p=!1;o=d;for(var f=[];!o.match(/^\s*$/);){var h=o.match(/^\s*(.+?)\s*:\s*(.+?)\s*;/);if(!h){r.error("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d),p=!0;break}a=h[0];var g=h[1],m=h[2];this.properties[g]?this.parse(g,m)?(f.push({name:g,val:m}),l()):(r.error("Skipping property: Invalid property definition in: "+a),l()):(r.error("Skipping property: Invalid property name in: "+a),l())}if(p){s();break}this.selector(u);for(var v=0;v<f.length;v++){var b=f[v];this.css(b.name,b.val)}s()}}return this},fromString:function(e){return this.resetToDefault(),this.appendFromString(e),this}};e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o={};!function(){var e=r.regex.number,t=r.regex.rgbaNoBackRefs,n=r.regex.hslaNoBackRefs,a=r.regex.hex3,s=r.regex.hex6,l=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},c=function(r){var i=e+"|\\w+|"+t+"|"+n+"|"+a+"|"+s;return"^"+r+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+e+")\\s*\\,\\s*("+e+")\\s*,\\s*("+i+")\\s*\\,\\s*("+i+")\\)$"},u=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];o.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials"],multiple:!0},bgClip:{enums:["none","node"]},color:{color:!0},bool:{enums:["yes","no"]},lineStyle:{enums:["solid","dotted","dashed"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontletiant:{enums:["small-caps","normal"]},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textBackgroundShape:{enums:["rectangle","roundrectangle"]},nodeShape:{enums:["rectangle","roundrectangle","cutrectangle","bottomroundrectangle","barrel","ellipse","triangle","square","pentagon","hexagon","concavehexagon","heptagon","octagon","tag","star","diamond","vee","rhomboid","polygon"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","triangle-cross","triangle-backcurve","half-triangle-overshot","vee","square","circle","diamond","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},text:{string:!0},data:{mapping:!0,regex:l("data")},layoutData:{mapping:!0,regex:l("layoutData")},scratch:{mapping:!0,regex:l("scratch")},mapData:{mapping:!0,regex:c("mapData")},mapLayoutData:{mapping:!0,regex:c("mapLayoutData")},mapScratch:{mapping:!0,regex:c("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:u,singleRegexMatchValue:!0},urls:{regexes:u,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-line"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return i.string(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]}};var d={zeroNonZero:function(e,t){return 0===e&&0!==t||0!==e&&0===t},anyDiff:function(e,t){return e!==t}},p=o.types,f=o.properties=[{name:"label",type:p.text},{name:"text-rotation",type:p.textRotation},{name:"text-margin-x",type:p.bidirectionalSize},{name:"text-margin-y",type:p.bidirectionalSize},{name:"source-label",type:p.text},{name:"source-text-rotation",type:p.textRotation},{name:"source-text-margin-x",type:p.bidirectionalSize},{name:"source-text-margin-y",type:p.bidirectionalSize},{name:"source-text-offset",type:p.size},{name:"target-label",type:p.text},{name:"target-text-rotation",type:p.textRotation},{name:"target-text-margin-x",type:p.bidirectionalSize},{name:"target-text-margin-y",type:p.bidirectionalSize},{name:"target-text-offset",type:p.size},{name:"text-valign",type:p.valign},{name:"text-halign",type:p.halign},{name:"color",type:p.color},{name:"text-outline-color",type:p.color},{name:"text-outline-width",type:p.size},{name:"text-outline-opacity",type:p.zeroOneNumber},{name:"text-opacity",type:p.zeroOneNumber},{name:"text-background-color",type:p.color},{name:"text-background-opacity",type:p.zeroOneNumber},{name:"text-background-padding",type:p.size},{name:"text-border-opacity",type:p.zeroOneNumber},{name:"text-border-color",type:p.color},{name:"text-border-width",type:p.size},{name:"text-border-style",type:p.borderStyle},{name:"text-background-shape",type:p.textBackgroundShape},{name:"text-transform",type:p.textTransform},{name:"text-wrap",type:p.textWrap},{name:"text-max-width",type:p.size},{name:"text-events",type:p.bool},{name:"font-family",type:p.fontFamily},{name:"font-style",type:p.fontStyle},{name:"font-weight",type:p.fontWeight},{name:"font-size",type:p.size},{name:"min-zoomed-font-size",type:p.size},{name:"events",type:p.bool},{name:"display",type:p.display,triggersZOrder:d.anyDiff},{name:"visibility",type:p.visibility,triggersZOrder:d.anyDiff},{name:"opacity",type:p.zeroOneNumber,triggersZOrder:d.zeroNonZero},{name:"z-compound-depth",type:p.zCompoundDepth,triggersZOrder:d.anyDiff},{name:"z-index-compare",type:p.zIndexCompare,triggersZOrder:d.anyDiff},{name:"z-index",type:p.nonNegativeInt,triggersZOrder:d.anyDiff},{name:"overlay-padding",type:p.size},{name:"overlay-color",type:p.color},{name:"overlay-opacity",type:p.zeroOneNumber},{name:"transition-property",type:p.propList},{name:"transition-duration",type:p.time},{name:"transition-delay",type:p.time},{name:"transition-timing-function",type:p.easing},{name:"height",type:p.nodeSize},{name:"width",type:p.nodeSize},{name:"shape",type:p.nodeShape},{name:"shape-polygon-points",type:p.polygonPointList},{name:"background-color",type:p.color},{name:"background-opacity",type:p.zeroOneNumber},{name:"background-blacken",type:p.nOneOneNumber},{name:"padding",type:p.sizeMaybePercent},{name:"padding-relative-to",type:p.paddingRelativeTo},{name:"border-color",type:p.color},{name:"border-opacity",type:p.zeroOneNumber},{name:"border-width",type:p.size},{name:"border-style",type:p.borderStyle},{name:"background-image",type:p.urls},{name:"background-image-crossorigin",type:p.bgCrossOrigin},{name:"background-image-opacity",type:p.zeroOneNumbers},{name:"background-position-x",type:p.bgPos},{name:"background-position-y",type:p.bgPos},{name:"background-width-relative-to",type:p.bgRelativeTo},{name:"background-height-relative-to",type:p.bgRelativeTo},{name:"background-repeat",type:p.bgRepeat},{name:"background-fit",type:p.bgFit},{name:"background-clip",type:p.bgClip},{name:"background-width",type:p.bgWH},{name:"background-height",type:p.bgWH},{name:"position",type:p.position},{name:"compound-sizing-wrt-labels",type:p.compoundIncludeLabels},{name:"min-width",type:p.size},{name:"min-width-bias-left",type:p.sizeMaybePercent},{name:"min-width-bias-right",type:p.sizeMaybePercent},{name:"min-height",type:p.size},{name:"min-height-bias-top",type:p.sizeMaybePercent},{name:"min-height-bias-bottom",type:p.sizeMaybePercent},{name:"line-style",type:p.lineStyle},{name:"line-color",type:p.color},{name:"curve-style",type:p.curveStyle},{name:"haystack-radius",type:p.zeroOneNumber},{name:"source-endpoint",type:p.edgeEndpoint},{name:"target-endpoint",type:p.edgeEndpoint},{name:"control-point-step-size",type:p.size},{name:"control-point-distances",type:p.bidirectionalSizes},{name:"control-point-weights",type:p.numbers},{name:"segment-distances",type:p.bidirectionalSizes},{name:"segment-weights",type:p.numbers},{name:"edge-distances",type:p.edgeDistances},{name:"arrow-scale",type:p.positiveNumber},{name:"loop-direction",type:p.angle},{name:"loop-sweep",type:p.angle},{name:"source-distance-from-node",type:p.size},{name:"target-distance-from-node",type:p.size},{name:"ghost",type:p.bool},{name:"ghost-offset-x",type:p.bidirectionalSize},{name:"ghost-offset-y",type:p.bidirectionalSize},{name:"ghost-opacity",type:p.zeroOneNumber},{name:"selection-box-color",type:p.color},{name:"selection-box-opacity",type:p.zeroOneNumber},{name:"selection-box-border-color",type:p.color},{name:"selection-box-border-width",type:p.size},{name:"active-bg-color",type:p.color},{name:"active-bg-opacity",type:p.zeroOneNumber},{name:"active-bg-size",type:p.size},{name:"outside-texture-bg-color",type:p.color},{name:"outside-texture-bg-opacity",type:p.zeroOneNumber}],h=o.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];o.pieBackgroundN=16,f.push({name:"pie-size",type:p.sizeMaybePercent});for(var g=1;g<=o.pieBackgroundN;g++)f.push({name:"pie-"+g+"-background-color",type:p.color}),f.push({name:"pie-"+g+"-background-size",type:p.percent}),f.push({name:"pie-"+g+"-background-opacity",type:p.zeroOneNumber});var m=o.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:p.arrowShape},{name:"arrow-color",type:p.color},{name:"arrow-fill",type:p.arrowFill}].forEach((function(e){m.forEach((function(t){var n=t+"-"+e.name,r=e.type;f.push({name:n,type:r})}))}),{}),o.propertyNames=f.map((function(e){return e.name}));for(var v=0;v<f.length;v++){var b=f[v];f[b.name]=b}for(var y=0;y<h.length;y++){var x=h[y],w=f[x.pointsTo],k={name:x.name,alias:!0,pointsTo:w};f.push(k),f[x.name]=k}}(),o.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},o.getDefaultProperties=r.memoize((function(){for(var e=r.extend({events:"yes","text-events":"no","text-valign":"top","text-halign":"center",color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-position-x":"50%","background-position-y":"50%","background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce((function(e,t){for(var n=1;n<=o.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e}),{}),{"line-style":"solid","line-color":"#999","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"edge-distances":"intersection","curve-style":"bezier","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node"},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce((function(e,t){return o.arrowPrefixes.forEach((function(n){var r=n+"-"+t.name,i=t.value;e[r]=i})),e}),{})),t={},n=0;n<this.properties.length;n++){var i=this.properties[n];if(!i.pointsTo){var a=i.name,s=e[a],l=this.parse(a,s);t[a]=l}}return t})),o.addDefaultStylesheet=function(){this.selector("$node > node").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3,"curve-style":"haystack"}).selector(":parent <-> node").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector("node:parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}).selector("core").css({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125}),this.defaultLength=this.length},e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(2),a={parse:function(e,t,n,o){if(i.fn(t))return this.parseImplWarn(e,t,n,o);var a=[e,t,n,"mapping"===o||!0===o||!1===o||null==o?"dontcare":o].join("$"),s=this.propCache=this.propCache||{},l=void 0;return(l=s[a])||(l=s[a]=this.parseImplWarn(e,t,n,o)),(n||"mapping"===o)&&(l=r.copy(l))&&(l.value=r.copy(l.value)),l},parseImplWarn:function(e,t,n,i){var o=this.parseImpl(e,t,n,i);return o||null==t||r.error("The style property `%s: %s` is invalid",e,t),o},parseImpl:function(e,t,n,a){e=r.camel2dash(e);var s=this.properties[e],l=t,c=this.types;if(!s)return null;if(void 0===t)return null;s.alias&&(s=s.pointsTo,e=s.name);var u=i.string(t);u&&(t=t.trim());var d=s.type;if(!d)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(i.fn(t))return{name:e,value:t,strValue:"fn",mapped:c.fn,bypass:n};var p=void 0,f=void 0;if(!u||a);else{if(p=new RegExp(c.data.regex).exec(t)){if(n)return!1;var h=c.data;return{name:e,value:p,strValue:""+t,mapped:h,field:p[1],bypass:n}}if(f=new RegExp(c.mapData.regex).exec(t)){if(n)return!1;if(d.multiple)return!1;var g=c.mapData;if(!d.color&&!d.number)return!1;var m=this.parse(e,f[4]);if(!m||m.mapped)return!1;var v=this.parse(e,f[5]);if(!v||v.mapped)return!1;if(m.value===v.value)return!1;if(d.color){var b=m.value,y=v.value;if(!(b[0]!==y[0]||b[1]!==y[1]||b[2]!==y[2]||b[3]!==y[3]&&(null!=b[3]&&1!==b[3]||null!=y[3]&&1!==y[3])))return!1}return{name:e,value:f,strValue:""+t,mapped:g,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:m.value,valueMax:v.value,bypass:n}}}if(d.multiple&&"multiple"!==a){var x=void 0;if(x=u?t.split(/\s+/):i.array(t)?t:[t],d.evenMultiple&&x.length%2!=0)return null;for(var w=[],k=[],A=[],E=!1,S=0;S<x.length;S++){var $=this.parse(e,x[S],n,"multiple");E=E||i.string($.value),w.push($.value),A.push(null!=$.pfValue?$.pfValue:$.value),k.push($.units)}return d.validate&&!d.validate(w,k)?null:d.singleEnum&&E?1===w.length&&i.string(w[0])?{name:e,value:w[0],strValue:w[0],bypass:n}:null:{name:e,value:w,pfValue:A,strValue:w.map((function(e,t){return e+(k[t]||"")})).join(" "),bypass:n,units:k}}var C=function(){for(var r=0;r<d.enums.length;r++)if(d.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(d.number){var _=void 0,O="px";if(d.units&&(_=d.units),d.implicitUnits&&(O=d.implicitUnits),!d.unitless)if(u){var T="px|em"+(d.allowPercent?"|\\%":"");_&&(T=_);var j=t.match("^("+r.regex.number+")("+T+")?$");j&&(t=j[1],_=j[2]||O)}else _&&!d.implicitUnits||(_=O);if(t=parseFloat(t),isNaN(t)&&void 0===d.enums)return null;if(isNaN(t)&&void 0!==d.enums)return t=l,C();if(d.integer&&!i.integer(t))return null;if(void 0!==d.min&&(t<d.min||d.strictMin&&t===d.min)||void 0!==d.max&&(t>d.max||d.strictMax&&t===d.max))return null;var P={name:e,value:t,strValue:""+t+(_||""),units:_,bypass:n};return d.unitless||"px"!==_&&"em"!==_?P.pfValue=t:P.pfValue="px"!==_&&_?this.getEmSizeInPixels()*t:t,"ms"!==_&&"s"!==_||(P.pfValue="ms"===_?t:1e3*t),"deg"!==_&&"rad"!==_||(P.pfValue="rad"===_?t:o.deg2rad(t)),"%"===_&&(P.pfValue=t/100),P}if(d.propList){var D=[],R=""+t;if("none"===R);else{for(var I=R.split(","),N=0;N<I.length;N++){var M=I[N].trim();this.properties[M]&&D.push(M)}if(0===D.length)return null}return{name:e,value:D,strValue:0===D.length?"none":D.join(", "),bypass:n}}if(d.color){var z=r.color2tuple(t);return z?{name:e,value:z,pfValue:z,strValue:""+t,bypass:n}:null}if(d.regex||d.regexes){if(d.enums){var L=C();if(L)return L}for(var B=d.regexes?d.regexes:[d.regex],F=0;F<B.length;F++){var q=new RegExp(B[F]).exec(t);if(q)return{name:e,value:d.singleRegexMatchValue?q[1]:q,strValue:""+t,bypass:n}}return null}return d.string?{name:e,value:""+t,strValue:""+t,bypass:n}:d.enums?C():null}};e.exports=a},function(e,t,n){"use strict";var r=n(0),i=n(3),o=n(2),a={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e=arguments,t=this._private.pan,n=void 0,i=void 0,o=void 0,a=void 0,s=void 0;switch(e.length){case 0:return t;case 1:if(r.string(e[0]))return t[n=e[0]];if(r.plainObject(e[0])){if(!this._private.panningEnabled)return this;a=(o=e[0]).x,s=o.y,r.number(a)&&(t.x=a),r.number(s)&&(t.y=s),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;n=e[0],i=e[1],"x"!==n&&"y"!==n||!r.number(i)||(t[n]=i),this.emit("pan viewport")}return this.notify({type:"viewport"}),this},panBy:function(e,t){var n=arguments,i=this._private.pan,o=void 0,a=void 0,s=void 0,l=void 0,c=void 0;if(!this._private.panningEnabled)return this;switch(n.length){case 1:r.plainObject(e)&&(l=(s=n[0]).x,c=s.y,r.number(l)&&(i.x+=l),r.number(c)&&(i.y+=c),this.emit("pan viewport"));break;case 2:a=t,"x"!==(o=e)&&"y"!==o||!r.number(a)||(i[o]+=a),this.emit("pan viewport")}return this.notify({type:"viewport"}),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify({type:"viewport"})}return this},getFitViewport:function(e,t){if(r.number(e)&&void 0===t&&(t=e,e=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){var n=void 0;if(r.string(e)){var i=e;e=this.$(i)}else if(r.boundingBox(e)){var o=e;(n={x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2}).w=n.x2-n.x1,n.h=n.y2-n.y1}else r.elementOrCollection(e)||(e=this.mutableElements());if(!r.elementOrCollection(e)||!e.empty()){n=n||e.boundingBox();var a=this.width(),s=this.height(),l=void 0;if(t=r.number(t)?t:0,!isNaN(a)&&!isNaN(s)&&a>0&&s>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:l=(l=(l=Math.min((a-2*t)/n.w,(s-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:l)<this._private.minZoom?this._private.minZoom:l,pan:{x:(a-l*(n.x1+n.x2))/2,y:(s-l*(n.y1+n.y2))/2}}}}},minZoom:function(e){return void 0===e?this._private.minZoom:(r.number(e)&&(this._private.minZoom=e),this)},maxZoom:function(e){return void 0===e?this._private.maxZoom:(r.number(e)&&(this._private.maxZoom=e),this)},getZoomedViewport:function(e){var t=this._private,n=t.pan,i=t.zoom,a=void 0,s=void 0,l=!1;if(t.zoomingEnabled||(l=!0),r.number(e)?s=e:r.plainObject(e)&&(s=e.level,null!=e.position?a=o.modelToRenderedPosition(e.position,i,n):null!=e.renderedPosition&&(a=e.renderedPosition),null==a||t.panningEnabled||(l=!0)),s=(s=s>t.maxZoom?t.maxZoom:s)<t.minZoom?t.minZoom:s,l||!r.number(s)||s===i||null!=a&&(!r.number(a.x)||!r.number(a.y)))return null;if(null!=a){var c=n,u=i,d=s;return{zoomed:!0,panned:!0,zoom:d,pan:{x:-d/u*(a.x-c.x)+a.x,y:-d/u*(a.y-c.y)+a.y}}}return{zoomed:!0,panned:!1,zoom:s,pan:n}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed?(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify({type:"viewport"}),this):this},viewport:function(e){var t=this._private,n=!0,i=!0,o=[],a=!1,s=!1;if(!e)return this;if(r.number(e.zoom)||(n=!1),r.plainObject(e.pan)||(i=!1),!n&&!i)return this;if(n){var l=e.zoom;l<t.minZoom||l>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=l,o.push("zoom"))}if(i&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var c=e.pan;r.number(c.x)&&(t.pan.x=c.x,s=!1),r.number(c.y)&&(t.pan.y=c.y,s=!1),s||o.push("pan")}return o.length>0&&(o.push("viewport"),this.emit(o.join(" ")),this.notify({type:"viewport"})),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify({type:"viewport"})),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(r.string(e)){var n=e;e=this.mutableElements().filter(n)}else r.elementOrCollection(e)||(e=this.mutableElements());if(0!==e.length){var i=e.boundingBox(),o=this.width(),a=this.height();return{x:(o-(t=void 0===t?this._private.zoom:t)*(i.x1+i.x2))/2,y:(a-t*(i.y1+i.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container;return n.sizeCache=n.sizeCache||(r?(e=i.getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}}};a.centre=a.center,a.autolockNodes=a.autolock,a.autoungrabifyNodes=a.autoungrabify,e.exports=a},function(e,t,n){"use strict";var r=n(1),i=n(4),o=n(7),a=n(12),s=n(95),l=n(0),c=n(11),u={},d={};function p(e,t,n){var s=n,d=function(n){r.error("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(a.prototype[t])return d(t);a.prototype[t]=n}else if("collection"===e){if(o.prototype[t])return d(t);o.prototype[t]=n}else if("layout"===e){for(var p=function(e){this.options=e,n.call(this,e),l.plainObject(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},h=p.prototype=Object.create(n.prototype),g=[],m=0;m<g.length;m++){var v=g[m];h[v]=h[v]||function(){return this}}h.start&&!h.run?h.run=function(){return this.start(),this}:!h.start&&h.run&&(h.start=function(){return this.run(),this});var b=n.prototype.stop;h.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return b?b.call(this):this.emit("layoutstop"),this},h.destroy||(h.destroy=function(){return this}),h.cy=function(){return this._private.cy};var y=function(e){return e._private.cy};r.assign(h,{createEmitter:function(){return this._private.emitter=new c({eventFields:function(e){return{layout:e,cy:y(e),target:e}},bubble:function(){return!0},parent:function(e){return y(e)},context:this}),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),i.eventAliasesOn(h),s=p}else if("renderer"===e&&"null"!==t&&"base"!==t){var x=f("renderer","base"),w=x.prototype,k=n,A=n.prototype,E=function(){x.apply(this,arguments),k.apply(this,arguments)},S=E.prototype;for(var $ in w){var C=w[$];if(null!=A[$])return d($);S[$]=C}for(var _ in A)S[_]=A[_];w.clientFunctions.forEach((function(e){S[e]=S[e]||function(){r.error("Renderer does not implement `renderer."+e+"()` on its prototype")}})),s=E}return r.setMap({map:u,keys:[e,t],value:s})}function f(e,t){return r.getMap({map:u,keys:[e,t]})}function h(e,t,n,i,o){return r.setMap({map:d,keys:[e,t,n,i],value:o})}function g(e,t,n,i){return r.getMap({map:d,keys:[e,t,n,i]})}var m=function(){return 2===arguments.length?f.apply(null,arguments):3===arguments.length?p.apply(null,arguments):4===arguments.length?g.apply(null,arguments):5===arguments.length?h.apply(null,arguments):void r.error("Invalid extension access syntax")};a.prototype.extension=m,s.forEach((function(e){e.extensions.forEach((function(t){p(e.type,t.name,t.impl)}))})),e.exports=m},function(e,t,n){"use strict";e.exports=[{type:"layout",extensions:n(96)},{type:"renderer",extensions:n(105)}]},function(e,t,n){"use strict";e.exports=[{name:"breadthfirst",impl:n(97)},{name:"circle",impl:n(98)},{name:"concentric",impl:n(99)},{name:"cose",impl:n(100)},{name:"grid",impl:n(101)},{name:"null",impl:n(102)},{name:"preset",impl:n(103)},{name:"random",impl:n(104)}]},function(e,t,n){"use strict";var r=n(1),i=n(2),o=n(0),a={fit:!0,directed:!1,padding:30,circle:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,maximalAdjustments:0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function s(e){this.options=r.extend({},a,e)}s.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=r.nodes().not(":parent"),s=r,l=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c=void 0;if(o.elementOrCollection(t.roots))c=t.roots;else if(o.array(t.roots)){for(var u=[],d=0;d<t.roots.length;d++){var p=t.roots[d],f=n.getElementById(p);u.push(f)}c=n.collection(u)}else if(o.string(t.roots))c=n.$(t.roots);else if(t.directed)c=a.roots();else{for(var h=[],g=a,m=function(){var e=n.collection();r.bfs({roots:g[0],visit:function(t,n,r,i,o){e=e.add(t)},directed:!1}),g=g.not(e),h.push(e)};g.length>0;)m();c=n.collection();for(var v=function(e){var t=h[e],n=t.maxDegree(!1),r=t.filter((function(e){return e.degree(!1)===n}));c=c.add(r)},b=0;b<h.length;b++)v(b)}var y=[],x={},w={},k={},A={},E={};s.bfs({roots:c,directed:t.directed,visit:function(e,t,n,r,i){var o=e[0],a=o.id();if(y[i]||(y[i]=[]),y[i].push(o),x[a]=!0,w[a]=i,k[a]=n,A[a]=t,n){var s=n.id();(E[s]=E[s]||[]).push(e)}}});for(var S=[],$=0;$<a.length;$++){var C=a[$];x[C.id()]||S.push(C)}for(var _=3*S.length,O=0;0!==S.length&&O<_;){for(var T=S.shift(),j=T.neighborhood().nodes(),P=!1,D=0;D<j.length;D++){var R=w[j[D].id()];if(void 0!==R){y[R].push(T),P=!0;break}}P||S.push(T),O++}for(;0!==S.length;){var I=S.shift();0===y.length&&y.push([]),y[0].push(I)}var N=function(){for(var e=0;e<y.length;e++)for(var t=y[e],n=0;n<t.length;n++){var r=t[n];null!=r?r._private.scratch.breadthfirst={depth:e,index:n}:(t.splice(n,1),n--)}};N();for(var M=function(e){for(var t=e.connectedEdges((function(t){return t.data("target")===e.id()})),n=e._private.scratch.breadthfirst,r=0,i=void 0,o=0;o<t.length;o++){var a=t[o].source()[0],s=a._private.scratch.breadthfirst;n.depth<=s.depth&&r<s.depth&&(r=s.depth,i=a)}return i},z=0;z<t.maximalAdjustments;z++){for(var L=y.length,B=[],F=0;F<L;F++)for(var q=y[F],V=q.length,U=0;U<V;U++){var H=q[U],G=H._private.scratch.breadthfirst,W=M(H);W&&(G.intEle=W,B.push(H))}for(var Y=0;Y<B.length;Y++){var X=B[Y],Z=X._private.scratch.breadthfirst,Q=Z.intEle._private.scratch.breadthfirst;y[Z.depth][Z.index]=null;for(var J=Q.depth+1;J>y.length-1;)y.push([]);y[J].push(X),Z.depth=J,Z.index=y[J].length-1}N()}var K=0;if(t.avoidOverlap)for(var ee=0;ee<a.length;ee++){var te=a[ee].layoutDimensions(t),ne=te.w,re=te.h;K=Math.max(K,ne,re)}for(var ie={},oe=function(e){if(ie[e.id()])return ie[e.id()];for(var t=e._private.scratch.breadthfirst.depth,n=e.neighborhood().nodes().not(":parent").intersection(a),r=0,i=0,o=0;o<n.length;o++){var s=n[o]._private.scratch.breadthfirst,l=s.index,c=s.depth,u=y[c].length;(t>c||0===t)&&(r+=l/u,i++)}return r/=i=Math.max(1,i),0===i&&(r=void 0),ie[e.id()]=r,r},ae=function(e,t){return oe(e)-oe(t)},se=0;se<3;se++){for(var le=0;le<y.length;le++)y[le]=y[le].sort(ae);N()}for(var ce=0,ue=0;ue<y.length;ue++)ce=Math.max(y[ue].length,ce);for(var de=l.x1+l.w/2,pe=l.x1+l.h/2,fe=function(e,n){var r=e._private.scratch.breadthfirst,i=r.depth,o=r.index,a=y[i].length,s=Math.max(l.w/(a+1),K),c=Math.max(l.h/(y.length+1),K),u=Math.min(l.w/2/y.length,l.h/2/y.length);if(u=Math.max(u,K),t.circle){if(t.circle){var d=u*i+u-(y.length>0&&y[0].length<=3?u/2:0),p=2*Math.PI/y[i].length*o;return 0===i&&1===y[0].length&&(d=1),{x:de+d*Math.cos(p),y:pe+d*Math.sin(p)}}return{x:de+(o+1-(a+1)/2)*s,y:(i+1)*c}}var f={x:de+(o+1-(a+1)/2)*s,y:(i+1)*c};return f},he={},ge=y.length-1;ge>=0;ge--)for(var me=y[ge],ve=0;ve<me.length;ve++){var be=me[ve];he[be.id()]=fe(be,y.length)}return a.layoutPositions(this,t,(function(e){return he[e.id()]})),this},e.exports=s},function(e,t,n){"use strict";var r=n(1),i=n(2),o=n(0),a={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function s(e){this.options=r.extend({},a,e)}s.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,s=r.nodes().not(":parent");t.sort&&(s=s.sort(t.sort));for(var l=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c=l.x1+l.w/2,u=l.y1+l.h/2,d=(void 0===t.sweep?2*Math.PI-2*Math.PI/s.length:t.sweep)/Math.max(1,s.length-1),p=void 0,f=0,h=0;h<s.length;h++){var g=s[h].layoutDimensions(t),m=g.w,v=g.h;f=Math.max(f,m,v)}if(p=o.number(t.radius)?t.radius:s.length<=1?0:Math.min(l.h,l.w)/2-f,s.length>1&&t.avoidOverlap){f*=1.75;var b=Math.cos(d)-Math.cos(0),y=Math.sin(d)-Math.sin(0),x=Math.sqrt(f*f/(b*b+y*y));p=Math.max(x,p)}return s.layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*d*(a?1:-1),i=p*Math.cos(r),o=p*Math.sin(r);return{x:c+i,y:u+o}})),this},e.exports=s},function(e,t,n){"use strict";var r=n(1),i=n(2),o={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,o=t.eles.nodes().not(":parent"),a=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=a.x1+a.w/2,l=a.y1+a.h/2,c=[],u=(t.startAngle,0),d=0;d<o.length;d++){var p,f=o[d];p=t.concentric(f),c.push({value:p,node:f}),f._private.scratch.concentric=p}o.updateStyle();for(var h=0;h<o.length;h++){var g=o[h].layoutDimensions(t);u=Math.max(u,g.w,g.h)}c.sort((function(e,t){return t.value-e.value}));for(var m=t.levelWidth(o),v=[[]],b=v[0],y=0;y<c.length;y++){var x=c[y];b.length>0&&Math.abs(b[0].value-x.value)>=m&&(b=[],v.push(b)),b.push(x)}var w=u+t.minNodeSpacing;if(!t.avoidOverlap){var k=v.length>0&&v[0].length>1,A=(Math.min(a.w,a.h)/2-w)/(v.length+k?1:0);w=Math.min(w,A)}for(var E=0,S=0;S<v.length;S++){var $=v[S],C=void 0===t.sweep?2*Math.PI-2*Math.PI/$.length:t.sweep,_=$.dTheta=C/Math.max(1,$.length-1);if($.length>1&&t.avoidOverlap){var O=Math.cos(_)-Math.cos(0),T=Math.sin(_)-Math.sin(0),j=Math.sqrt(w*w/(O*O+T*T));E=Math.max(j,E)}$.r=E,E+=w}if(t.equidistant){for(var P=0,D=0,R=0;R<v.length;R++){var I=v[R].r-D;P=Math.max(P,I)}D=0;for(var N=0;N<v.length;N++){var M=v[N];0===N&&(D=M.r),M.r=D,D+=P}}for(var z={},L=0;L<v.length;L++)for(var B=v[L],F=B.dTheta,q=B.r,V=0;V<B.length;V++){var U=B[V],H=t.startAngle+(n?1:-1)*F*V,G={x:s+q*Math.cos(H),y:l+q*Math.sin(H)};z[U.node.id()]=G}return o.layoutPositions(this,t,(function(e){var t=e.id();return z[t]})),this},e.exports=a},function(e,t,n){"use strict";var r,i=n(1),o=n(2),a=n(0),s=n(5),l={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1,weaver:!1};function c(e){this.options=i.extend({},l,e),this.options.layout=this}c.prototype.run=function(){var e=this.options,t=e.cy,n=this,o=this.thread,l=e.weaver?e.weaver.Thread:null,c={listeners:[],on:function(e,t){return this.listeners.push({event:e,callback:t}),this},trigger:function(e){a.string(e)&&(e={type:e});var t=function(t){t.callback(e)};return this.listeners.filter((function(t){return t.event===e.type})).forEach(t),this},pass:function(e){return this.pass=e,this},run:function(e){var t=this.pass;return new s((function(n){n(e(t))}))},stop:function(){return this},stopped:function(){return!0}};o&&!o.stopped()||(o=this.thread=l?new l:c),n.stopped=!1,!0!==e.animate&&!1!==e.animate||n.emit({type:"layoutstart",layout:n}),r=!0===e.debug;var d=u(t,n,e);r&&f(d),e.randomize&&h(d,t);var p=Date.now(),m=!1,v=function(n){n=n||{},m&&!n.next||!n.force&&Date.now()-p<e.animationThreshold||(m=!0,i.requestAnimationFrame((function(){g(d,t,e),!0===e.fit&&t.fit(e.padding),m=!1,n.next&&n.next()})))};o.on("message",(function(e){var t=e.message;d.layoutNodes=t,v()})),o.pass({layoutInfo:d,options:{animate:e.animate,refresh:e.refresh,componentSpacing:e.componentSpacing,nodeOverlap:e.nodeOverlap,nestingFactor:e.nestingFactor,gravity:e.gravity,numIter:e.numIter,initialTemp:e.initialTemp,coolingFactor:e.coolingFactor,minTemp:e.minTemp}}).run((function(e){var t,n,r=e.layoutInfo,i=e.options,o=function(e,t){for(var n=0;n<e.graphSet.length;n++)for(var r=e.graphSet[n],i=r.length,o=0;o<i;o++)for(var a=e.layoutNodes[e.idToIndex[r[o]]],l=o+1;l<i;l++){var c=e.layoutNodes[e.idToIndex[r[l]]];s(a,c,e,t)}},a=function(e){return-e+2*e*Math.random()},s=function(e,t,n,r){if(e.cmptId===t.cmptId||n.isCompound){var i=t.positionX-e.positionX,o=t.positionY-e.positionY;0===i&&0===o&&(i=a(1),o=a(1));var s=l(e,t,i,o);if(s>0)var c=(p=r.nodeOverlap*s)*i/(b=Math.sqrt(i*i+o*o)),d=p*o/b;else{var p,f=u(e,i,o),h=u(t,-1*i,-1*o),g=h.x-f.x,m=h.y-f.y,v=g*g+m*m,b=Math.sqrt(v);c=(p=(e.nodeRepulsion+t.nodeRepulsion)/v)*g/b,d=p*m/b}e.isLocked||(e.offsetX-=c,e.offsetY-=d),t.isLocked||(t.offsetX+=c,t.offsetY+=d)}},l=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var o=e.maxY-t.minY;else o=t.maxY-e.minY;return i>=0&&o>=0?Math.sqrt(i*i+o*o):0},u=function(e,t,n){var r=e.positionX,i=e.positionY,o=e.height||1,a=e.width||1,s=n/t,l=o/a,c={};return 0===t&&0<n||0===t&&0>n?(c.x=r,c.y=i+o/2,c):0<t&&-1*l<=s&&s<=l?(c.x=r+a/2,c.y=i+a*n/2/t,c):0>t&&-1*l<=s&&s<=l?(c.x=r-a/2,c.y=i-a*n/2/t,c):0<n&&(s<=-1*l||s>=l)?(c.x=r+o*t/2/n,c.y=i+o/2,c):0>n&&(s<=-1*l||s>=l)?(c.x=r-o*t/2/n,c.y=i-o/2,c):c},d=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],o=e.layoutNodes[i],a=e.idToIndex[r.targetId],s=e.layoutNodes[a],l=s.positionX-o.positionX,c=s.positionY-o.positionY;if(0!==l||0!==c){var d=u(o,l,c),p=u(s,-1*l,-1*c),f=p.x-d.x,h=p.y-d.y,g=Math.sqrt(f*f+h*h),m=Math.pow(r.idealLength-g,2)/r.elasticity;if(0!==g)var v=m*f/g,b=m*h/g;else v=0,b=0;o.isLocked||(o.offsetX+=v,o.offsetY+=b),s.isLocked||(s.offsetX-=v,s.offsetY-=b)}}},p=function(e,t){for(var n=0;n<e.graphSet.length;n++){var r=e.graphSet[n],i=r.length;if(0===n)var o=e.clientHeight/2,a=e.clientWidth/2;else{var s=e.layoutNodes[e.idToIndex[r[0]]],l=e.layoutNodes[e.idToIndex[s.parentId]];o=l.positionX,a=l.positionY}for(var c=0;c<i;c++){var u=e.layoutNodes[e.idToIndex[r[c]]];if(!u.isLocked){var d=o-u.positionX,p=a-u.positionY,f=Math.sqrt(d*d+p*p);if(f>1){var h=t.gravity*d/f,g=t.gravity*p/f;u.offsetX+=h,u.offsetY+=g}}}}},f=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var o=n[r++],a=e.idToIndex[o],s=e.layoutNodes[a],l=s.children;if(0<l.length&&!s.isLocked){for(var c=s.offsetX,u=s.offsetY,d=0;d<l.length;d++){var p=e.layoutNodes[e.idToIndex[l[d]]];p.offsetX+=c,p.offsetY+=u,n[++i]=l[d]}s.offsetX=0,s.offsetY=0}}},h=function(e,t){for(var n=0;n<e.nodeSize;n++)0<(i=e.layoutNodes[n]).children.length&&(i.maxX=void 0,i.minX=void 0,i.maxY=void 0,i.minY=void 0);for(n=0;n<e.nodeSize;n++)if(!(0<(i=e.layoutNodes[n]).children.length||i.isLocked)){var r=g(i.offsetX,i.offsetY,e.temperature);i.positionX+=r.x,i.positionY+=r.y,i.offsetX=0,i.offsetY=0,i.minX=i.positionX-i.width,i.maxX=i.positionX+i.width,i.minY=i.positionY-i.height,i.maxY=i.positionY+i.height,m(i,e)}for(n=0;n<e.nodeSize;n++){var i;0<(i=e.layoutNodes[n]).children.length&&!i.isLocked&&(i.positionX=(i.maxX+i.minX)/2,i.positionY=(i.maxY+i.minY)/2,i.width=i.maxX-i.minX,i.height=i.maxY-i.minY)}},g=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},m=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],o=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,o=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,o=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,o=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,o=!0),o?e(i,n):void 0}},v=function(e){return function(e,t,n){o(e,t),d(e,t),p(e,t),f(e,t),h(e,t)}(r,i),r.temperature=r.temperature*i.coolingFactor,!(r.temperature<i.minTemp)},b=0;do{for(var y=0;y<i.refresh&&b<i.numIter;){var x;if(!(x=v()))break;y++,b++}!0===i.animate&&(t=r.layoutNodes,n=void 0,n={type:"message",message:t},c.trigger(n))}while(x&&b+1<i.numIter);return function(e,t){for(var n=r.layoutNodes,i=[],o=0;o<n.length;o++){var a=n[o],s=a.cmptId;(i[s]=i[s]||[]).push(a)}var l=0;for(o=0;o<i.length;o++)if(m=i[o]){m.x1=1/0,m.x2=-1/0,m.y1=1/0,m.y2=-1/0;for(var c=0;c<m.length;c++){var u=m[c];m.x1=Math.min(m.x1,u.positionX-u.width/2),m.x2=Math.max(m.x2,u.positionX+u.width/2),m.y1=Math.min(m.y1,u.positionY-u.height/2),m.y2=Math.max(m.y2,u.positionY+u.height/2)}m.w=m.x2-m.x1,m.h=m.y2-m.y1,l+=m.w*m.h}i.sort((function(e,t){return t.w*t.h-e.w*e.h}));var d=0,p=0,f=0,h=0,g=Math.sqrt(l)*r.clientWidth/r.clientHeight;for(o=0;o<i.length;o++){var m;if(m=i[o]){for(c=0;c<m.length;c++)(u=m[c]).isLocked||(u.positionX+=d,u.positionY+=p);d+=m.w+t.componentSpacing,f+=m.w+t.componentSpacing,h=Math.max(h,m.h),f>g&&(p+=h+t.componentSpacing,d=0,f=0,h=0)}}}(0,i),r})).then((function(e){d.layoutNodes=e.layoutNodes,o.stop(),b()}));var b=function(){!0===e.animate||!1===e.animate?v({force:!0,next:function(){n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n})}}):e.eles.nodes().layoutPositions(n,e,(function(e){var t=d.layoutNodes[d.idToIndex[e.data("id")]];return{x:t.positionX,y:t.positionY}}))};return this},c.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},c.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var u=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),s={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:e.width(),clientHeight:e.width(),boundingBox:o.makeBoundingBox(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()})},l=n.eles.components(),c={},u=0;u<l.length;u++)for(var p=l[u],f=0;f<p.length;f++)c[p[f].id()]=u;for(u=0;u<s.nodeSize;u++){var h=(y=i[u]).layoutDimensions(n);(I={}).isLocked=y.locked(),I.id=y.data("id"),I.parentId=y.data("parent"),I.cmptId=c[y.id()],I.children=[],I.positionX=y.position("x"),I.positionY=y.position("y"),I.offsetX=0,I.offsetY=0,I.height=h.w,I.width=h.h,I.maxX=I.positionX+I.width/2,I.minX=I.positionX-I.width/2,I.maxY=I.positionY+I.height/2,I.minY=I.positionY-I.height/2,I.padLeft=parseFloat(y.style("padding")),I.padRight=parseFloat(y.style("padding")),I.padTop=parseFloat(y.style("padding")),I.padBottom=parseFloat(y.style("padding")),I.nodeRepulsion=a.fn(n.nodeRepulsion)?n.nodeRepulsion(y):n.nodeRepulsion,s.layoutNodes.push(I),s.idToIndex[I.id]=u}var g=[],m=0,v=-1,b=[];for(u=0;u<s.nodeSize;u++){var y,x=(y=s.layoutNodes[u]).parentId;null!=x?s.layoutNodes[s.idToIndex[x]].children.push(y.id):(g[++v]=y.id,b.push(y.id))}for(s.graphSet.push(b);m<=v;){var w=g[m++],k=s.idToIndex[w],A=s.layoutNodes[k].children;if(A.length>0)for(s.graphSet.push(A),u=0;u<A.length;u++)g[++v]=A[u]}for(u=0;u<s.graphSet.length;u++){var E=s.graphSet[u];for(f=0;f<E.length;f++){var S=s.idToIndex[E[f]];s.indexToGraph[S]=u}}for(u=0;u<s.edgeSize;u++){var $=r[u],C={};C.id=$.data("id"),C.sourceId=$.data("source"),C.targetId=$.data("target");var _=a.fn(n.idealEdgeLength)?n.idealEdgeLength($):n.idealEdgeLength,O=a.fn(n.edgeElasticity)?n.edgeElasticity($):n.edgeElasticity,T=s.idToIndex[C.sourceId],j=s.idToIndex[C.targetId];if(s.indexToGraph[T]!=s.indexToGraph[j]){for(var P=d(C.sourceId,C.targetId,s),D=s.graphSet[P],R=0,I=s.layoutNodes[T];-1===D.indexOf(I.id);)I=s.layoutNodes[s.idToIndex[I.parentId]],R++;for(I=s.layoutNodes[j];-1===D.indexOf(I.id);)I=s.layoutNodes[s.idToIndex[I.parentId]],R++;_*=R*n.nestingFactor}C.idealLength=_,C.elasticity=O,s.layoutEdges.push(C)}return s},d=function(e,t,n){var r=p(e,t,0,n);return 2>r.count?0:r.graph},p=function e(t,n,r,i){var o=i.graphSet[r];if(-1<o.indexOf(t)&&-1<o.indexOf(n))return{count:2,graph:r};for(var a=0,s=0;s<o.length;s++){var l=o[s],c=i.idToIndex[l],u=i.layoutNodes[c].children;if(0!==u.length){var d=e(t,n,i.indexToGraph[i.idToIndex[u[0]]],i);if(0!==d.count){if(1!==d.count)return d;if(2==++a)break}}}return{count:a,graph:r}},f=function(e){if(r){console.debug("layoutNodes:");for(var t=0;t<e.nodeSize;t++){var n=e.layoutNodes[t],i="\nindex: "+t+"\nId: "+n.id+"\nChildren: "+n.children.toString()+"\nparentId: "+n.parentId+"\npositionX: "+n.positionX+"\npositionY: "+n.positionY+"\nOffsetX: "+n.offsetX+"\nOffsetY: "+n.offsetY+"\npadLeft: "+n.padLeft+"\npadRight: "+n.padRight+"\npadTop: "+n.padTop+"\npadBottom: "+n.padBottom;console.debug(i)}for(var t in console.debug("idToIndex"),e.idToIndex)console.debug("Id: "+t+"\nIndex: "+e.idToIndex[t]);console.debug("Graph Set");var o=e.graphSet;for(t=0;t<o.length;t++)console.debug("Set : "+t+": "+o[t].toString());for(i="IndexToGraph",t=0;t<e.indexToGraph.length;t++)i+="\nIndex : "+t+" Graph: "+e.indexToGraph[t];for(console.debug(i),i="Layout Edges",t=0;t<e.layoutEdges.length;t++){var a=e.layoutEdges[t];i+="\nEdge Index: "+t+" ID: "+a.id+" SouceID: "+a.sourceId+" TargetId: "+a.targetId+" Ideal Length: "+a.idealLength}console.debug(i),i="nodeSize: "+e.nodeSize,i+="\nedgeSize: "+e.edgeSize,i+="\ntemperature: "+e.temperature,console.debug(i)}},h=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var o=e.layoutNodes[i];0!==o.children.length||o.isLocked||(o.positionX=Math.random()*n,o.positionY=Math.random()*r)}},g=function(e,t,n){var r=n.layout,i=n.eles.nodes(),o=e.boundingBox,a={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};n.boundingBox&&(i.forEach((function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];a.x1=Math.min(a.x1,n.positionX),a.x2=Math.max(a.x2,n.positionX),a.y1=Math.min(a.y1,n.positionY),a.y2=Math.max(a.y2,n.positionY)})),a.w=a.x2-a.x1,a.h=a.y2-a.y1),i.positions((function(t,r){var i=e.layoutNodes[e.idToIndex[t.data("id")]];if(n.boundingBox){var s=(i.positionX-a.x1)/a.w,l=(i.positionY-a.y1)/a.h;return{x:o.x1+s*o.w,y:o.y1+l*o.h}}return{x:i.positionX,y:i.positionY}})),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))};e.exports=c},function(e,t,n){"use strict";var r=n(1),i=n(2),o={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles.nodes().not(":parent");t.sort&&(r=r.sort(t.sort));var o=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===o.h||0===o.w)r.layoutPositions(this,t,(function(e){return{x:o.x1,y:o.y1}}));else{var a=r.size(),s=Math.sqrt(a*o.h/o.w),l=Math.round(s),c=Math.round(o.w/o.h*s),u=function(e){if(null==e)return Math.min(l,c);Math.min(l,c)==l?l=e:c=e},d=function(e){if(null==e)return Math.max(l,c);Math.max(l,c)==l?l=e:c=e},p=t.rows,f=null!=t.cols?t.cols:t.columns;if(null!=p&&null!=f)l=p,c=f;else if(null!=p&&null==f)l=p,c=Math.ceil(a/l);else if(null==p&&null!=f)c=f,l=Math.ceil(a/c);else if(c*l>a){var h=u(),g=d();(h-1)*g>=a?u(h-1):(g-1)*h>=a&&d(g-1)}else for(;c*l<a;){var m=u(),v=d();(v+1)*m>=a?d(v+1):u(m+1)}var b=o.w/c,y=o.h/l;if(t.condense&&(b=0,y=0),t.avoidOverlap)for(var x=0;x<r.length;x++){var w=r[x],k=w._private.position;null!=k.x&&null!=k.y||(k.x=0,k.y=0);var A=w.layoutDimensions(t),E=t.avoidOverlapPadding,S=A.w+E,$=A.h+E;b=Math.max(b,S),y=Math.max(y,$)}for(var C={},_=function(e,t){return!!C["c-"+e+"-"+t]},O=function(e,t){C["c-"+e+"-"+t]=!0},T=0,j=0,P=function(){++j>=c&&(j=0,T++)},D={},R=0;R<r.length;R++){var I=r[R],N=t.position(I);if(N&&(void 0!==N.row||void 0!==N.col)){var M={row:N.row,col:N.col};if(void 0===M.col)for(M.col=0;_(M.row,M.col);)M.col++;else if(void 0===M.row)for(M.row=0;_(M.row,M.col);)M.row++;D[I.id()]=M,O(M.row,M.col)}}r.layoutPositions(this,t,(function(e,t){var n=void 0,r=void 0;if(e.locked()||e.isParent())return!1;var i=D[e.id()];if(i)n=i.col*b+b/2+o.x1,r=i.row*y+y/2+o.y1;else{for(;_(T,j);)P();n=j*b+b/2+o.x1,r=T*y+y/2+o.y1,O(T,j),P()}return{x:n,y:r}}))}return this},e.exports=a},function(e,t,n){"use strict";var r=n(1),i={ready:function(){},stop:function(){}};function o(e){this.options=r.extend({},i,e)}o.prototype.run=function(){var e=this.options,t=e.eles;return e.cy,this.emit("layoutstart"),t.nodes().positions((function(){return{x:0,y:0}})),this.one("layoutready",e.ready),this.emit("layoutready"),this.one("layoutstop",e.stop),this.emit("layoutstop"),this},o.prototype.stop=function(){return this},e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=i.fn(e.positions);return t.layoutPositions(this,e,(function(t,r){var i=function(t){if(null==e.positions)return null;if(n)return e.positions(t);var r=e.positions[t._private.data.id];return null==r?null:r}(t);return!t.locked()&&null!=i&&i})),this},e.exports=a},function(e,t,n){"use strict";var r=n(1),i=n(2),o={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles.nodes().not(":parent"),r=i.makeBoundingBox(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});return n.layoutPositions(this,e,(function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}})),this},e.exports=a},function(e,t,n){"use strict";e.exports=[{name:"null",impl:n(106)},{name:"base",impl:n(107)},{name:"canvas",impl:n(123)}]},function(e,t,n){"use strict";function r(e){this.options=e,this.notifications=0}var i=function(){};r.prototype={recalculateRenderedStyle:i,notify:function(){this.notifications++},init:i},e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(3),a=function(e){this.init(e)},s=a.prototype;s.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],s.init=function(e){var t=this;t.options=e,t.cy=e.cy;var n=t.container=e.cy.container();if(o){var r=o.document,a=r.head,s="__________cytoscape_container",l=null!=r.getElementById("__________cytoscape_stylesheet");if(n.className.indexOf(s)<0&&(n.className=(n.className||"")+" "+s),!l){var c=r.createElement("style");c.id="__________cytoscape_stylesheet",c.innerHTML="."+s+" { position: relative; }",a.insertBefore(c,a.children[0])}"static"===o.getComputedStyle(n).getPropertyValue("position")&&i.error("A Cytoscape container has style position:static and so can not use UI extensions properly")}t.selection=[void 0,void 0,void 0,void 0,0],t.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],t.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},t.dragData={possibleDragElements:[]},t.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},t.redraws=0,t.showFps=e.showFps,t.debug=e.debug,t.hideEdgesOnViewport=e.hideEdgesOnViewport,t.hideLabelsOnViewport=e.hideLabelsOnViewport,t.textureOnViewport=e.textureOnViewport,t.wheelSensitivity=e.wheelSensitivity,t.motionBlurEnabled=e.motionBlur,t.forcedPixelRatio=e.pixelRatio,t.motionBlur=e.motionBlur,t.motionBlurOpacity=e.motionBlurOpacity,t.motionBlurTransparency=1-t.motionBlurOpacity,t.motionBlurPxRatio=1,t.mbPxRBlurry=1,t.minMbLowQualFrames=4,t.fullQualityMb=!1,t.clearedForMotionBlur=[],t.desktopTapThreshold=e.desktopTapThreshold,t.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,t.touchTapThreshold=e.touchTapThreshold,t.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,t.tapholdDuration=500,t.bindings=[],t.beforeRenderCallbacks=[],t.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:100},t.registerNodeShapes(),t.registerArrowShapes(),t.registerCalculationListeners()},s.notify=function(e){var t,n=this;if(!this.destroyed){t=r.array(e.type)?e.type:[e.type];for(var i={},o=0;o<t.length;o++)i[t[o]]=!0;i.init?n.load():i.destroy?n.destroy():((i.add||i.remove||i.load||i.zorder)&&n.invalidateCachedZSortedEles(),i.viewport&&n.redrawHint("select",!0),(i.load||i.resize)&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw())}},s.destroy=function(){var e=this;e.destroyed=!0,e.cy.stopAnimationLoop();for(var t=0;t<e.bindings.length;t++){var n=e.bindings[t],r=n.target;(r.off||r.removeEventListener).apply(r,n.args)}if(e.bindings=[],e.beforeRenderCallbacks=[],e.onUpdateEleCalcsFns=[],e.removeObserver&&e.removeObserver.disconnect(),e.styleObserver&&e.styleObserver.disconnect(),e.labelCalcDiv)try{document.body.removeChild(e.labelCalcDiv)}catch(e){}},[n(108),n(109),n(119),n(120),n(121),n(122)].forEach((function(e){i.extend(s,e)})),e.exports=a},function(e,t,n){"use strict";var r=n(2),i=n(0),o=n(1),a={arrowShapeWidth:.3,registerArrowShapes:function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,o,a){var s=i.x-n/2-a,l=i.x+n/2+a,c=i.y-n/2-a,u=i.y+n/2+a;return s<=e&&e<=l&&c<=t&&t<=u},a=function(e,t,n,r,i){var o=e*Math.cos(r)-t*Math.sin(r),a=(e*Math.sin(r)+t*Math.cos(r))*n;return{x:o*n+i.x,y:a+i.y}},s=function(e,t,n,r){for(var i=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];i.push(a(s,l,t,n,r))}return i},l=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},c=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},u=function(a,u){i.string(u)&&(u=e[u]),e[a]=o.extend({name:a,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,i,o,a){var c=l(s(this.points,n+2*a,i,o));return r.pointInsidePolygonPoints(e,t,c)},roughCollide:n,draw:function(e,n,r,i){var o=s(this.points,n,r,i);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:c},u)};u("none",{collide:o.falsify,roughCollide:o.falsify,draw:o.noop,spacing:o.zeroify,gap:o.zeroify}),u("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),u("arrow","triangle"),u("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,r,i,o){var l=s(this.points,n,r,i),c=this.controlPoint,u=a(c[0],c[1],n,r,i);t.arrowShapeImpl(this.name)(e,l,u)},gap:function(e){return.8*c(e)}}),u("triangle-tee",{points:[-.15,-.3,0,0,.15,-.3,-.15,-.3],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,i,o,a,c){var u=l(s(this.points,n+2*c,i,o)),d=l(s(this.pointsTee,n+2*c,i,o));return r.pointInsidePolygonPoints(e,t,u)||r.pointInsidePolygonPoints(e,t,d)},draw:function(e,n,r,i,o){var a=s(this.points,n,r,i),l=s(this.pointsTee,n,r,i);t.arrowShapeImpl(this.name)(e,a,l)}}),u("triangle-cross",{points:[-.15,-.3,0,0,.15,-.3,-.15,-.3],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e;return n[3]=n[3]-r,n[5]=n[5]-r,n},collide:function(e,t,n,i,o,a,c){var u=l(s(this.points,n+2*c,i,o)),d=l(s(this.crossLinePts(n,a),n+2*c,i,o));return r.pointInsidePolygonPoints(e,t,u)||r.pointInsidePolygonPoints(e,t,d)},draw:function(e,n,r,i,o){var a=s(this.points,n,r,i),l=s(this.crossLinePts(n,o),n,r,i);t.arrowShapeImpl(this.name)(e,a,l)}}),u("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return.525*c(e)}}),u("circle",{radius:.15,collide:function(e,t,n,r,i,o,a){var s=i;return Math.pow(s.x-e,2)+Math.pow(s.y-t,2)<=Math.pow((n+2*a)*this.radius,2)},draw:function(e,n,r,i,o){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),u("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),u("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),u("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})}};e.exports=a},function(e,t,n){"use strict";var r=n(1),i={};[n(110),n(111),n(112),n(113),n(114),n(115),n(116),n(117),n(118)].forEach((function(e){r.extend(i,e)})),e.exports=i},function(e,t,n){"use strict";var r=n(3),i=n(2),o=n(1),a=(r=n(3),{projectIntoViewport:function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],o=r[1],a=r[4],s=n.pan(),l=n.zoom();return[((e-i)/a-s.x)/l,((t-o)/a-s.y)/l]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=r.getComputedStyle(e),i=function(e){return parseFloat(n.getPropertyValue(e))},o=i("padding-left"),a=i("padding-right"),s=i("padding-top"),l=i("padding-bottom"),c=i("border-left-width"),u=i("border-right-width"),d=i("border-top-width"),p=(i("border-bottom-width"),e.clientWidth),f=e.clientHeight,h=o+a,g=s+l,m=c+u,v=t.width/(p+m),b=p-h,y=f-g,x=(t.width,t.height,t.left+o+c),w=t.top+s+d;return this.containerBB=[x,w,b,y,v]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},findNearestElements:function(e,t,n,r){var a,s,l=this,c=this,u=c.getCachedZSortedEles(),d=[],p=c.cy.zoom(),f=c.cy.hasCompoundNodes(),h=(r?24:8)/p,g=(r?8:2)/p,m=(r?8:2)/p,v=1/0;function b(e,t){if(e.isNode()){if(s)return;s=e,d.push(e)}if(e.isEdge()&&(null==t||t<v))if(a){if(a.pstyle("z-index").value===e.pstyle("z-index").value)for(var n=0;n<d.length;n++)if(d[n].isEdge()){d[n]=e,a=e,v=null!=t?t:v;break}}else d.push(e),a=e,v=null!=t?t:v}function y(n){var r=n.outerWidth()+2*g,i=n.outerHeight()+2*g,o=r/2,a=i/2,s=n.position();if(s.x-o<=e&&e<=s.x+o&&s.y-a<=t&&t<=s.y+a&&c.nodeShapes[l.getNodeShape(n)].checkPoint(e,t,0,r,i,s.x,s.y))return b(n,0),!0}function x(n){var r,o=n._private,a=o.rscratch,s=n.pstyle("width").pfValue,u=n.pstyle("arrow-scale").value,p=s/2+h,g=p*p,m=2*p,v=o.source,x=o.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var w=a.allpts,k=0;k+3<w.length;k+=2)if(i.inLineVicinity(e,t,w[k],w[k+1],w[k+2],w[k+3],m)&&g>(r=i.sqdistToFiniteLine(e,t,w[k],w[k+1],w[k+2],w[k+3])))return b(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(w=a.allpts,k=0;k+5<a.allpts.length;k+=4)if(i.inBezierVicinity(e,t,w[k],w[k+1],w[k+2],w[k+3],w[k+4],w[k+5],m)&&g>(r=i.sqdistToQuadraticBezier(e,t,w[k],w[k+1],w[k+2],w[k+3],w[k+4],w[k+5])))return b(n,r),!0;v=v||o.source,x=x||o.target;var A=l.getArrowWidth(s,u),E=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(k=0;k<E.length;k++){var S=E[k],$=c.arrowShapes[n.pstyle(S.name+"-arrow-shape").value],C=n.pstyle("width").pfValue;if($.roughCollide(e,t,A,S.angle,{x:S.x,y:S.y},C,h)&&$.collide(e,t,A,S.angle,{x:S.x,y:S.y},C,h))return b(n),!0}f&&d.length>0&&(y(v),y(x))}function w(e,t,n){return o.getPrefixedProperty(e,t,n)}function k(n,r){var o,a=n._private,s=m;o=r?r+"-":"";var l=n.pstyle(o+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var c=a.rstyle,u=n.pstyle("text-border-width").pfValue,d=n.pstyle("text-background-padding").pfValue,p=w(c,"labelWidth",r)+u+2*s+2*d,f=w(c,"labelHeight",r)+u+2*s+2*d,h=w(c,"labelX",r),g=w(c,"labelY",r),v=w(a.rscratch,"labelAngle",r),y=h-p/2,x=h+p/2,k=g-f/2,A=g+f/2;if(v){var E=Math.cos(v),S=Math.sin(v),$=function(e,t){return{x:(e-=h)*E-(t-=g)*S+h,y:e*S+t*E+g}},C=$(y,k),_=$(y,A),O=$(x,k),T=$(x,A),j=[C.x,C.y,O.x,O.y,T.x,T.y,_.x,_.y];if(i.pointInsidePolygonPoints(e,t,j))return b(n),!0}else{var P={w:p,h:f,x1:y,x2:x,y1:k,y2:A};if(i.inBoundingBox(P,e,t))return b(n),!0}}}n&&(u=u.interactive);for(var A=u.length-1;A>=0;A--){var E=u[A];E.isNode()?y(E)||k(E):x(E)||k(E)||k(E,"source")||k(E,"target")}return d},getAllInBox:function(e,t,n,r){var o=this.getCachedZSortedEles().interactive,a=[],s=Math.min(e,n),l=Math.max(e,n),c=Math.min(t,r),u=Math.max(t,r);e=s,n=l,t=c,r=u;for(var d=i.makeBoundingBox({x1:e,y1:t,x2:n,y2:r}),p=0;p<o.length;p++){var f=o[p];if(f.isNode()){var h=f,g=h.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});i.boundingBoxesIntersect(d,g)&&!i.boundingBoxInBoundingBox(g,d)&&a.push(h)}else{var m=f,v=m._private,b=v.rscratch;if(null!=b.startX&&null!=b.startY&&!i.inBoundingBox(d,b.startX,b.startY))continue;if(null!=b.endX&&null!=b.endY&&!i.inBoundingBox(d,b.endX,b.endY))continue;if("bezier"===b.edgeType||"multibezier"===b.edgeType||"self"===b.edgeType||"compound"===b.edgeType||"segments"===b.edgeType||"haystack"===b.edgeType){for(var y=v.rstyle.bezierPts||v.rstyle.linePts||v.rstyle.haystackPts,x=!0,w=0;w<y.length;w++)if(!i.pointInBoundingBox(d,y[w])){x=!1;break}x&&a.push(m)}else"haystack"!==b.edgeType&&"straight"!==b.edgeType||a.push(m)}}return a}});e.exports=a},function(e,t,n){"use strict";var r=n(2),i={calculateArrowAngles:function(e){var t,n,i,o,a,s,l=e._private.rscratch,c="haystack"===l.edgeType,u="bezier"===l.edgeType,d="multibezier"===l.edgeType,p="segments"===l.edgeType,f="compound"===l.edgeType,h="self"===l.edgeType;if(c?(i=l.haystackPts[0],o=l.haystackPts[1],a=l.haystackPts[2],s=l.haystackPts[3]):(i=l.arrowStartX,o=l.arrowStartY,a=l.arrowEndX,s=l.arrowEndY),m=l.midX,v=l.midY,p)t=i-l.segpts[0],n=o-l.segpts[1];else if(d||f||h||u){var g=l.allpts;t=i-r.qbezierAt(g[0],g[2],g[4],.1),n=o-r.qbezierAt(g[1],g[3],g[5],.1)}else t=i-m,n=o-v;l.srcArrowAngle=r.getAngleFromDisp(t,n);var m=l.midX,v=l.midY;if(c&&(m=(i+a)/2,v=(o+s)/2),t=a-i,n=s-o,p)if((g=l.allpts).length/2%2==0){var b=(y=g.length/2)-2;t=g[y]-g[b],n=g[y+1]-g[b+1]}else{b=(y=g.length/2-1)-2;var y,x=y+2;t=g[y]-g[b],n=g[y+1]-g[b+1]}else if(d||f||h){var w,k,A,E,g=l.allpts;if(l.ctrlpts.length/2%2==0){var S=2+($=2+(C=g.length/2-1));w=r.qbezierAt(g[C],g[$],g[S],0),k=r.qbezierAt(g[C+1],g[$+1],g[S+1],0),A=r.qbezierAt(g[C],g[$],g[S],1e-4),E=r.qbezierAt(g[C+1],g[$+1],g[S+1],1e-4)}else{var $,C=($=g.length/2-1)-2;S=$+2,w=r.qbezierAt(g[C],g[$],g[S],.4999),k=r.qbezierAt(g[C+1],g[$+1],g[S+1],.4999),A=r.qbezierAt(g[C],g[$],g[S],.5),E=r.qbezierAt(g[C+1],g[$+1],g[S+1],.5)}t=A-w,n=E-k}if(l.midtgtArrowAngle=r.getAngleFromDisp(t,n),l.midDispX=t,l.midDispY=n,t*=-1,n*=-1,p&&((g=l.allpts).length/2%2==0||(t=-(g[x=2+(y=g.length/2-1)]-g[y]),n=-(g[x+1]-g[y+1]))),l.midsrcArrowAngle=r.getAngleFromDisp(t,n),p)t=a-l.segpts[l.segpts.length-2],n=s-l.segpts[l.segpts.length-1];else if(d||f||h||u){var _=(g=l.allpts).length;t=a-r.qbezierAt(g[_-6],g[_-4],g[_-2],.9),n=s-r.qbezierAt(g[_-5],g[_-3],g[_-1],.9)}else t=a-m,n=s-v;l.tgtArrowAngle=r.getAngleFromDisp(t,n)}};i.getArrowWidth=i.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r||(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r,r)},e.exports=i},function(e,t,n){"use strict";var r=n(2),i=n(0),o={};function a(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}o.findEdgeControlPoints=function(e){if(e&&0!==e.length){for(var t,n,o,a,s,l=this,c=l.cy.hasCompoundNodes(),u={},d=[],p=[],f=0;f<e.length;f++){var h=(Ft=(Bt=e[f])._private).data,g="unbundled-bezier"===(D=Bt.pstyle("curve-style").value)||"segments"===D,m="unbundled-bezier"===D||"bezier"===D;if("none"!==Bt.pstyle("display").value)if("haystack"!==D){var v=h.source,b=h.target;t=v>b?b+"$-$"+v:v+"$-$"+b,g&&(t="unbundled$-$"+h.id);var y=u[t];null==y&&(y=u[t]=[],d.push(t)),y.push(Bt),g&&(y.hasUnbundled=!0),m&&(y.hasBezier=!0)}else p.push(Bt)}for(var x=0;x<d.length;x++){var w=u[t=d[x]];if(w.sort((function(e,t){return e.poolIndex()-t.poolIndex()})),Ht=w[0]._private.source,Gt=w[0]._private.target,!w.hasUnbundled&&Ht.id()>Gt.id()){var k=Ht;Ht=Gt,Gt=k}Wt=Ht.position(),Yt=Gt.position(),Xt=Ht.outerWidth(),Qt=Ht.outerHeight(),Zt=Gt.outerWidth(),Jt=Gt.outerHeight(),n=l.nodeShapes[this.getNodeShape(Ht)],o=l.nodeShapes[this.getNodeShape(Gt)],s=!1;var A={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0},E=Wt.x,S=Wt.y,$=Xt,C=Qt,_=Yt.x,O=Yt.y,T=Zt,j=Jt,P=w.length;for(f=0;f<w.length;f++){var D,R,I=(Vt=(Bt=w[f])._private.rscratch).lastEdgeIndex,N=f,M=Vt.lastNumEdges,z=(g="unbundled-bezier"===(D=Bt.pstyle("curve-style").value)||"segments"===D,Ht.id()!==Bt.source().id()),L=Bt.pstyle("control-point-distances"),B=Bt.pstyle("loop-direction").pfValue,F=Bt.pstyle("loop-sweep").pfValue,q=Bt.pstyle("control-point-weights"),V=L&&q?Math.min(L.value.length,q.value.length):1,U=Bt.pstyle("control-point-step-size").pfValue,H=L?L.pfValue[0]:void 0,G=q.value[0],W=Bt.pstyle("edge-distances").value,Y=Bt.pstyle("segment-weights"),X=Bt.pstyle("segment-distances"),Z=Math.min(Y.pfValue.length,X.pfValue.length),Q=Bt.pstyle("source-endpoint").value,J=Bt.pstyle("target-endpoint").value,K=Bt.pstyle("source-arrow-shape").value,ee=Bt.pstyle("target-arrow-shape").value,te=Bt.pstyle("arrow-scale").value,ne=Bt.pstyle("width").pfValue,re=Vt.lastSrcCtlPtX,ie=Vt.lastSrcCtlPtY,oe=Vt.lastSrcCtlPtW,ae=Vt.lastSrcCtlPtH,se=Vt.lastTgtCtlPtX,le=Vt.lastTgtCtlPtY,ce=Vt.lastTgtCtlPtW,ue=Vt.lastTgtCtlPtH,de=Vt.lastCurveStyle,pe=D,fe=Vt.lastCtrlptDists,he=L?L.strValue:null,ge=Vt.lastCtrlptWs,me=q.strValue,ve=Vt.lastSegmentWs,be=Y.strValue,ye=Vt.lastSegmentDs,xe=X.strValue,we=Vt.lastStepSize,ke=U,Ae=Vt.lastLoopDir,Ee=B,Se=Vt.lastLoopSwp,$e=F,Ce=Vt.lastEdgeDistances,_e=W,Oe=Vt.lastSrcEndpt,Te=Q,je=Vt.lastTgtEndpt,Pe=J,De=Vt.lastSrcArr,Re=K,Ie=Vt.lastTgtArr,Ne=ee,Me=Vt.lastLineW,ze=ne,Le=Vt.lastArrScl,Be=te;if(Vt.badBezier=!!s,re===E&&ie===S&&oe===$&&ae===C&&se===_&&le===O&&ce===T&&ue===j&&de===pe&&fe===he&&ge===me&&ve===be&&ye===xe&&we===ke&&Ae===Ee&&Se===$e&&Ce===_e&&Oe===Te&&je===Pe&&De===Re&&Ie===Ne&&Me===ze&&Le===Be&&(I===N&&M===P||g)?R=!0:(R=!1,Vt.lastSrcCtlPtX=E,Vt.lastSrcCtlPtY=S,Vt.lastSrcCtlPtW=$,Vt.lastSrcCtlPtH=C,Vt.lastTgtCtlPtX=_,Vt.lastTgtCtlPtY=O,Vt.lastTgtCtlPtW=T,Vt.lastTgtCtlPtH=j,Vt.lastEdgeIndex=N,Vt.lastNumEdges=P,Vt.lastCurveStyle=pe,Vt.lastCtrlptDists=he,Vt.lastCtrlptWs=me,Vt.lastSegmentDs=xe,Vt.lastSegmentWs=be,Vt.lastStepSize=ke,Vt.lastLoopDir=Ee,Vt.lastLoopSwp=$e,Vt.lastEdgeDistances=_e,Vt.lastSrcEndpt=Te,Vt.lastTgtEndpt=Pe,Vt.lastSrcArr=Re,Vt.lastTgtArr=Ne,Vt.lastLineW=ze,Vt.lastArrScl=Be),!R){if(!w.calculatedIntersection&&Ht!==Gt&&(w.hasBezier||w.hasUnbundled)){w.calculatedIntersection=!0;var Fe=n.intersectLine(Wt.x,Wt.y,Xt,Qt,Yt.x,Yt.y,0);w.srcIntn=Fe;var qe=o.intersectLine(Yt.x,Yt.y,Zt,Jt,Wt.x,Wt.y,0);w.tgtIntn=qe;var Ve={x1:Fe[0],x2:qe[0],y1:Fe[1],y2:qe[1]},Ue={x1:Wt.x,x2:Yt.x,y1:Wt.y,y2:Yt.y},He=qe[1]-Fe[1],Ge=qe[0]-Fe[0],We=Math.sqrt(Ge*Ge+He*He),Ye={x:Ge,y:He},Xe={x:Ye.x/We,y:Ye.y/We};a={x:-Xe.y,y:Xe.x},o.checkPoint(Fe[0],Fe[1],0,Zt,Jt,Yt.x,Yt.y)&&n.checkPoint(qe[0],qe[1],0,Xt,Qt,Wt.x,Wt.y)&&(a={},s=!0)}if(z?(Vt.srcIntn=w.tgtIntn,Vt.tgtIntn=w.srcIntn):(Vt.srcIntn=w.srcIntn,Vt.tgtIntn=w.tgtIntn),Ht===Gt){Vt.edgeType="self";var Ze=f,Qe=U;g&&(Ze=0,Qe=H);var Je=B-Math.PI/2,Ke=Je-F/2,et=Je+F/2,tt=String(B+"_"+F);Ze=void 0===A[tt]?A[tt]=0:++A[tt],Vt.ctrlpts=[Wt.x+1.4*Math.cos(Ke)*Qe*(Ze/3+1),Wt.y+1.4*Math.sin(Ke)*Qe*(Ze/3+1),Wt.x+1.4*Math.cos(et)*Qe*(Ze/3+1),Wt.y+1.4*Math.sin(et)*Qe*(Ze/3+1)]}else if(c&&(Ht.isParent()||Ht.isChild()||Gt.isParent()||Gt.isChild())&&(Ht.parents().anySame(Gt)||Gt.parents().anySame(Ht))){Vt.edgeType="compound",Vt.badBezier=!1,Ze=f,Qe=U,g&&(Ze=0,Qe=H);var nt={x:Wt.x-Xt/2,y:Wt.y-Qt/2},rt={x:Yt.x-Zt/2,y:Yt.y-Jt/2},it={x:Math.min(nt.x,rt.x),y:Math.min(nt.y,rt.y)},ot=Math.max(.5,Math.log(.01*Xt)),at=Math.max(.5,Math.log(.01*Zt));Vt.ctrlpts=[it.x,it.y-(1+Math.pow(50,1.12)/100)*Qe*(Ze/3+1)*ot,it.x-(1+Math.pow(50,1.12)/100)*Qe*(Ze/3+1)*at,it.y]}else if("segments"===D){Vt.edgeType="segments",Vt.segpts=[];for(var st=0;st<Z;st++){var lt=Y.pfValue[st],ct=X.pfValue[st],ut=1-lt,dt=lt,pt={x:(bt="node-position"===W?Ue:Ve).x1*ut+bt.x2*dt,y:bt.y1*ut+bt.y2*dt};Vt.segpts.push(pt.x+a.x*ct,pt.y+a.y*ct)}}else if(w.length%2!=1||f!==Math.floor(w.length/2)||g){var ft=g;Vt.edgeType=ft?"multibezier":"bezier",Vt.ctrlpts=[];for(var ht=0;ht<V;ht++){var gt,mt=(.5-w.length/2+f)*U,vt=r.signum(mt);ft&&(H=L?L.pfValue[ht]:U,G=q.value[ht]);var bt,yt=void 0!==(gt=g?H:void 0!==H?vt*H:void 0)?gt:mt;ut=1-G,dt=G,z&&(k=ut,ut=dt,dt=k),pt={x:(bt="node-position"===W?Ue:Ve).x1*ut+bt.x2*dt,y:bt.y1*ut+bt.y2*dt},Vt.ctrlpts.push(pt.x+a.x*yt,pt.y+a.y*yt)}}else Vt.edgeType="straight";this.findEndpoints(Bt);var xt=!i.number(Vt.startX)||!i.number(Vt.startY),wt=!i.number(Vt.arrowStartX)||!i.number(Vt.arrowStartY),kt=!i.number(Vt.endX)||!i.number(Vt.endY),At=!i.number(Vt.arrowEndX)||!i.number(Vt.arrowEndY),Et=this.getArrowWidth(Bt.pstyle("width").pfValue,Bt.pstyle("arrow-scale").value)*this.arrowShapeWidth*3;if("bezier"===Vt.edgeType){var St=r.dist({x:Vt.ctrlpts[0],y:Vt.ctrlpts[1]},{x:Vt.startX,y:Vt.startY}),$t=St<Et,Ct=r.dist({x:Vt.ctrlpts[0],y:Vt.ctrlpts[1]},{x:Vt.endX,y:Vt.endY}),_t=Ct<Et,Ot=!1;if(xt||wt||$t){Ot=!0;var Tt={x:Vt.ctrlpts[0]-Wt.x,y:Vt.ctrlpts[1]-Wt.y},jt=Math.sqrt(Tt.x*Tt.x+Tt.y*Tt.y),Pt={x:Tt.x/jt,y:Tt.y/jt},Dt=Math.max(Xt,Qt),Rt={x:Vt.ctrlpts[0]+2*Pt.x*Dt,y:Vt.ctrlpts[1]+2*Pt.y*Dt},It=n.intersectLine(Wt.x,Wt.y,Xt,Qt,Rt.x,Rt.y,0);$t?(Vt.ctrlpts[0]=Vt.ctrlpts[0]+Pt.x*(Et-St),Vt.ctrlpts[1]=Vt.ctrlpts[1]+Pt.y*(Et-St)):(Vt.ctrlpts[0]=It[0]+Pt.x*Et,Vt.ctrlpts[1]=It[1]+Pt.y*Et)}if(kt||At||_t){Ot=!0,Tt={x:Vt.ctrlpts[0]-Yt.x,y:Vt.ctrlpts[1]-Yt.y},jt=Math.sqrt(Tt.x*Tt.x+Tt.y*Tt.y),Pt={x:Tt.x/jt,y:Tt.y/jt},Dt=Math.max(Xt,Qt),Rt={x:Vt.ctrlpts[0]+2*Pt.x*Dt,y:Vt.ctrlpts[1]+2*Pt.y*Dt};var Nt=o.intersectLine(Yt.x,Yt.y,Zt,Jt,Rt.x,Rt.y,0);_t?(Vt.ctrlpts[0]=Vt.ctrlpts[0]+Pt.x*(Et-Ct),Vt.ctrlpts[1]=Vt.ctrlpts[1]+Pt.y*(Et-Ct)):(Vt.ctrlpts[0]=Nt[0]+Pt.x*Et,Vt.ctrlpts[1]=Nt[1]+Pt.y*Et)}Ot&&this.findEndpoints(Bt)}if("multibezier"===Vt.edgeType||"bezier"===Vt.edgeType||"self"===Vt.edgeType||"compound"===Vt.edgeType){for(Vt.allpts=[],Vt.allpts.push(Vt.startX,Vt.startY),ht=0;ht+1<Vt.ctrlpts.length;ht+=2)Vt.allpts.push(Vt.ctrlpts[ht],Vt.ctrlpts[ht+1]),ht+3<Vt.ctrlpts.length&&Vt.allpts.push((Vt.ctrlpts[ht]+Vt.ctrlpts[ht+2])/2,(Vt.ctrlpts[ht+1]+Vt.ctrlpts[ht+3])/2);var Mt;Vt.allpts.push(Vt.endX,Vt.endY),Vt.ctrlpts.length/2%2==0?(Mt=Vt.allpts.length/2-1,Vt.midX=Vt.allpts[Mt],Vt.midY=Vt.allpts[Mt+1]):(Mt=Vt.allpts.length/2-3,Vt.midX=r.qbezierAt(Vt.allpts[Mt],Vt.allpts[Mt+2],Vt.allpts[Mt+4],.5),Vt.midY=r.qbezierAt(Vt.allpts[Mt+1],Vt.allpts[Mt+3],Vt.allpts[Mt+5],.5))}else if("straight"===Vt.edgeType)Vt.allpts=[Vt.startX,Vt.startY,Vt.endX,Vt.endY],Vt.midX=(Vt.startX+Vt.endX+Vt.arrowStartX+Vt.arrowEndX)/4,Vt.midY=(Vt.startY+Vt.endY+Vt.arrowStartY+Vt.arrowEndY)/4;else if("segments"===Vt.edgeType)if(Vt.allpts=[],Vt.allpts.push(Vt.startX,Vt.startY),Vt.allpts.push.apply(Vt.allpts,Vt.segpts),Vt.allpts.push(Vt.endX,Vt.endY),Vt.segpts.length%4==0){var zt=Vt.segpts.length/2,Lt=zt-2;Vt.midX=(Vt.segpts[Lt]+Vt.segpts[zt])/2,Vt.midY=(Vt.segpts[Lt+1]+Vt.segpts[zt+1])/2}else Lt=Vt.segpts.length/2-1,Vt.midX=Vt.segpts[Lt],Vt.midY=Vt.segpts[Lt+1];this.storeEdgeProjections(Bt),this.calculateArrowAngles(Bt)}this.recalculateEdgeLabelProjections(Bt),this.calculateLabelAngles(Bt)}}for(f=0;f<p.length;f++){var Bt,Ft,qt=(Ft=(Bt=p[f])._private).rscratch,Vt=qt;if(!qt.haystack){var Ut=2*Math.random()*Math.PI;qt.source={x:Math.cos(Ut),y:Math.sin(Ut)},Ut=2*Math.random()*Math.PI,qt.target={x:Math.cos(Ut),y:Math.sin(Ut)}}var Ht=Ft.source,Gt=Ft.target,Wt=Ht.position(),Yt=Gt.position(),Xt=Ht.width(),Zt=Gt.width(),Qt=Ht.height(),Jt=Gt.height(),Kt=(Dt=Bt.pstyle("haystack-radius").value)/2;Vt.haystackPts=Vt.allpts=[Vt.source.x*Xt*Kt+Wt.x,Vt.source.y*Qt*Kt+Wt.y,Vt.target.x*Zt*Kt+Yt.x,Vt.target.y*Jt*Kt+Yt.y],Vt.midX=(Vt.allpts[0]+Vt.allpts[2])/2,Vt.midY=(Vt.allpts[1]+Vt.allpts[3])/2,qt.edgeType=qt.lastCurveStyle="haystack",qt.haystack=!0,this.storeEdgeProjections(Bt),this.calculateArrowAngles(Bt),this.recalculateEdgeLabelProjections(Bt),this.calculateLabelAngles(Bt)}}},o.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return a(t.segpts)},o.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return a(t.ctrlpts)},o.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return{x:t.midX,y:t.midY}},e.exports=o},function(e,t,n){"use strict";var r=n(2),i=n(0),o={manualEndptToPx:function(e,t){var n=e.position(),r=e.outerWidth(),i=e.outerHeight();if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*r),"%"===t.units[1]&&(o[1]=o[1]*i),o[0]+=n.x,o[1]+=n.y,o}var a=t.pfValue[0];a=-Math.PI/2+a;var s=2*Math.max(r,i),l=[n.x+Math.cos(a)*s,n.y+Math.sin(a)*s];return this.nodeShapes[this.getNodeShape(e)].intersectLine(n.x,n.y,r,i,l[0],l[1],0)},findEndpoints:function(e){var t=this,n=void 0,o=e.source()[0],a=e.target()[0],s=o.position(),l=a.position(),c=e.pstyle("target-arrow-shape").value,u=e.pstyle("source-arrow-shape").value,d=e.pstyle("target-distance-from-node").pfValue,p=e.pstyle("source-distance-from-node").pfValue,f=e._private.rscratch,h=f.edgeType,g="self"===h||"compound"===h,m="bezier"===h||"multibezier"===h||g,v="bezier"!==h,b="straight"===h||"segments"===h,y="segments"===h,x=m||v||b,w=e.pstyle("source-endpoint"),k=g?"outside-to-node":w.value,A=e.pstyle("target-endpoint"),E=g?"outside-to-node":A.value;f.srcManEndpt=w,f.tgtManEndpt=A;var S=void 0,$=void 0,C=void 0,_=void 0;if(m){var O=[f.ctrlpts[0],f.ctrlpts[1]];S=v?[f.ctrlpts[f.ctrlpts.length-2],f.ctrlpts[f.ctrlpts.length-1]]:O,$=O}else if(b){var T=y?f.segpts.slice(0,2):[l.x,l.y];S=y?f.segpts.slice(f.segpts.length-2):[s.x,s.y],$=T}"inside-to-node"===E?n=[l.x,l.y]:A.units?n=this.manualEndptToPx(a,A):"outside-to-line"===E?n=f.tgtIntn:("outside-to-node"===E?C=S:"outside-to-line"===E&&(C=[s.x,s.y]),n=t.nodeShapes[this.getNodeShape(a)].intersectLine(l.x,l.y,a.outerWidth(),a.outerHeight(),C[0],C[1],0));var j=r.shortenIntersection(n,S,t.arrowShapes[c].spacing(e)+d),P=r.shortenIntersection(n,S,t.arrowShapes[c].gap(e)+d);e.hasClass("horizontal")?(f.endX=n[0]-d,f.endY=n[1],f.arrowEndX=n[0]-d/2,f.arrowEndY=n[1]):e.hasClass("vertical")?(f.endX=n[0],f.endY=n[1]-d,f.arrowEndX=n[0],f.arrowEndY=n[1]-d/2):(f.endX=P[0],f.endY=P[1],f.arrowEndX=j[0],f.arrowEndY=j[1]),"inside-to-node"===k?n=[s.x,s.y]:w.units?n=this.manualEndptToPx(o,w):"outside-to-line"===k?n=f.srcIntn:("outside-to-node"===k?_=$:"outside-to-line"===k&&(_=[l.x,l.y]),n=t.nodeShapes[this.getNodeShape(o)].intersectLine(s.x,s.y,o.outerWidth(),o.outerHeight(),_[0],_[1],0));var D=r.shortenIntersection(n,$,t.arrowShapes[u].spacing(e)+p),R=r.shortenIntersection(n,$,t.arrowShapes[u].gap(e)+p);f.startX=R[0],f.startY=R[1],f.arrowStartX=D[0],f.arrowStartY=D[1],x&&(i.number(f.startX)&&i.number(f.startY)&&i.number(f.endX)&&i.number(f.endY)?f.badLine=!1:f.badLine=!0)},getSourceEndpoint:function(e){var t=e[0]._private.rscratch;switch(t.edgeType){case"haystack":return{x:t.haystackPts[0],y:t.haystackPts[1]};default:return{x:t.arrowStartX,y:t.arrowStartY}}},getTargetEndpoint:function(e){var t=e[0]._private.rscratch;switch(t.edgeType){case"haystack":return{x:t.haystackPts[2],y:t.haystackPts[3]};default:return{x:t.arrowEndX,y:t.arrowEndY}}}};e.exports=o},function(e,t,n){"use strict";var r=n(2),i={};function o(e,t,n){for(var i=function(e,t,n,i){return r.qbezierAt(e,t,n,i)},o=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var s=e.bezierProjPcts[a];o.push({x:i(n[0],n[2],n[4],s),y:i(n[1],n[3],n[5],s)})}}i.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)o(this,e,n.allpts.slice(i,i+6))}else if("segments"===r){var a=t.rstyle.linePts=[];for(i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]})}else if("haystack"===r){var s=n.haystackPts;t.rstyle.haystackPts=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},i.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)},e.exports=i},function(e,t,n){"use strict";var r=n(2),i=n(0),o=n(1),a={recalculateNodeLabelProjection:function(e){var t=e.pstyle("label").strValue;if(!i.emptyString(t)){var n,r,o=e._private,a=e.width(),s=e.height(),l=e.padding(),c=e.position(),u=e.pstyle("text-halign").strValue,d=e.pstyle("text-valign").strValue,p=o.rscratch,f=o.rstyle;switch(u){case"left":n=c.x-a/2-l;break;case"right":n=c.x+a/2+l;break;default:n=c.x}switch(d){case"top":r=c.y-s/2-l;break;case"bottom":r=c.y+s/2+l;break;default:r=c.y}p.labelX=n,p.labelY=r,f.labelX=n,f.labelY=r,this.applyLabelDimensions(e)}},recalculateEdgeLabelProjections:function(e){var t,n=e._private,i=n.rscratch,a=this,s={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(s.mid||s.source||s.target){t={x:i.midX,y:i.midY};var l=function(e,t,r){o.setPrefixedProperty(n.rscratch,e,t,r),o.setPrefixedProperty(n.rstyle,e,t,r)};l("labelX",null,t.x),l("labelY",null,t.y);var c=function(o){var c,u="source"===o;if(s[o]){var d=e.pstyle(o+"-text-offset").pfValue,p=function(e,t){var n=t.x-e.x,r=t.y-e.y;return Math.atan(r/n)};switch(i.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var f,h=function e(){if(e.cache)return e.cache;for(var t=[],o=0;o+5<i.allpts.length;o+=4){var s={x:i.allpts[o],y:i.allpts[o+1]},l={x:i.allpts[o+2],y:i.allpts[o+3]},c={x:i.allpts[o+4],y:i.allpts[o+5]};t.push({p0:s,p1:l,p2:c,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,d=a.bezierProjPcts.length;function p(e,t,n,i,o){var a=r.dist(t,n),s=e.segments[e.segments.length-1],l={p0:t,p1:n,t0:i,t1:o,startDist:s?s.startDist+s.length:0,length:a};e.segments.push(l),e.length+=a}for(o=0;o<t.length;o++){var f=t[o],h=t[o-1];h&&(f.startDist=h.startDist+h.length),p(f,f.p0,u[o*d],0,a.bezierProjPcts[0]);for(var g=0;g<d-1;g++)p(f,u[o*d+g],u[o*d+g+1],a.bezierProjPcts[g],a.bezierProjPcts[g+1]);p(f,u[o*d+d-1],f.p2,a.bezierProjPcts[d-1],1)}return e.cache=t}(),g=0,m=0,v=0;v<h.length;v++){for(var b=h[u?v:h.length-1-v],y=0;y<b.segments.length;y++){var x=b.segments[u?y:b.segments.length-1-y],w=v===h.length-1&&y===b.segments.length-1;if(g=m,(m+=x.length)>=d||w){f={cp:b,segment:x};break}}if(f)break}b=f.cp;var k=(d-g)/(x=f.segment).length,A=x.t1-x.t0,E=u?x.t0+A*k:x.t1-A*k;E=r.bound(0,E,1),t=r.qbezierPtAt(b.p0,b.p1,b.p2,E),c=function(e,t,n,i){var o=r.bound(0,i-.001,1),a=r.bound(0,i+.001,1),s=r.qbezierPtAt(e,t,n,o),l=r.qbezierPtAt(e,t,n,a);return p(s,l)}(b.p0,b.p1,b.p2,E);break;case"straight":case"segments":case"haystack":var S,$,C,_,O=0,T=i.allpts.length;for(v=0;v+3<T&&(u?(C={x:i.allpts[v],y:i.allpts[v+1]},_={x:i.allpts[v+2],y:i.allpts[v+3]}):(C={x:i.allpts[T-2-v],y:i.allpts[T-1-v]},_={x:i.allpts[T-4-v],y:i.allpts[T-3-v]}),$=O,!((O+=S=r.dist(C,_))>=d));v+=2);E=(d-$)/S,E=r.bound(0,E,1),t=r.lineAt(C,_,E),c=p(C,_)}l("labelX",o,t.x),l("labelY",o,t.y),l("labelAutoAngle",o,c)}};c("source"),c("target"),this.applyLabelDimensions(e)}},applyLabelDimensions:function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},applyPrefixedLabelDimensions:function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r);o.setPrefixedProperty(n.rstyle,"labelWidth",t,i.width),o.setPrefixedProperty(n.rscratch,"labelWidth",t,i.width),o.setPrefixedProperty(n.rstyle,"labelHeight",t,i.height),o.setPrefixedProperty(n.rscratch,"labelHeight",t,i.height)},getLabelText:function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,s=function(e,r){return r?(o.setPrefixedProperty(n.rscratch,e,t,r),r):o.getPrefixedProperty(n.rscratch,e,t)};"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var l=e.pstyle("text-wrap").value;if("wrap"===l){var c=s("labelKey");if(c&&s("labelWrapKey")===c)return s("labelWrapCachedText");for(var u=i.split("\n"),d=e.pstyle("text-max-width").pfValue,p=[],f=0;f<u.length;f++){var h=u[f];if(this.calculateLabelDimensions(e,h,"line="+h).width>d){for(var g=h.split(/\s+/),m="",v=0;v<g.length;v++){var b=g[v],y=0===m.length?b:m+" "+b;this.calculateLabelDimensions(e,y,"testLine="+y).width<=d?m+=b+" ":(p.push(m),m=b+" ")}m.match(/^\s+$/)||p.push(m)}else p.push(h)}s("labelWrapCachedLines",p),i=s("labelWrapCachedText",p.join("\n")),s("labelWrapKey",c)}else if("ellipsis"===l){d=e.pstyle("text-max-width").pfValue;for(var x="",w=!1,k=0;k<i.length&&!(this.calculateLabelDimensions(e,x+i[k]+"…").width>d);k++)x+=i[k],k===i.length-1&&(w=!0);return w||(x+="…"),x}return i},calculateLabelDimensions:function(e,t,n){var r=e._private.labelStyleKey+"$@$"+t;n&&(r+="$@$"+n);var i=this.labelDimCache||(this.labelDimCache={});if(i[r])return i[r];var o=e.pstyle("font-style").strValue,a=1*e.pstyle("font-size").pfValue+"px",s=e.pstyle("font-family").strValue,l=e.pstyle("font-weight").strValue,c=this.labelCalcDiv;c||(c=this.labelCalcDiv=document.createElement("div"),document.body.appendChild(c));var u=c.style;return u.fontFamily=s,u.fontStyle=o,u.fontSize=a,u.fontWeight=l,u.position="absolute",u.left="-9999px",u.top="-9999px",u.zIndex="-1",u.visibility="hidden",u.pointerEvents="none",u.padding="0",u.lineHeight="1","wrap"===e.pstyle("text-wrap").value?u.whiteSpace="pre":u.whiteSpace="normal",c.textContent=t,i[r]={width:Math.ceil(c.clientWidth/1),height:Math.ceil(c.clientHeight/1)},i[r]},calculateLabelAngles:function(e){var t=e._private.rscratch,n=e.isEdge(),r=e.pstyle("text-rotation"),i=r.strValue;"none"===i?t.labelAngle=t.sourceLabelAngle=t.targetLabelAngle=0:n&&"autorotate"===i?(t.labelAngle=Math.atan(t.midDispY/t.midDispX),t.sourceLabelAngle=t.sourceLabelAutoAngle,t.targetLabelAngle=t.targetLabelAutoAngle):t.labelAngle=t.sourceLabelAngle=t.targetLabelAngle="autorotate"===i?0:r.pfValue}};e.exports=a},function(e,t,n){"use strict";var r={getNodeShape:function(e){var t=e.pstyle("shape").value;if(e.isParent())return"rectangle"===t||"roundrectangle"===t||"cutrectangle"===t||"barrel"===t?t:"rectangle";if("polygon"===t){var n=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(n).name}return t}};e.exports=r},function(e,t,n){"use strict";var r={registerCalculationListeners:function(){var e=this.cy,t=e.collection(),n=this,r=function(e,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t.merge(e);for(var i=0;i<e.length;i++){var o=e[i],a=o._private,s=a.rstyle;r&&(s.clean=!1,a.bbCache=null);var l=s.dirtyEvents=s.dirtyEvents||{length:0};l[n.type]||(l[n.type]=!0,l.length++)}};n.binder(e).on("position.* style.* free.* bounds.*","node",(function(e){var t=e.target;r(t,e),r(t.connectedEdges(),e)})).on("add.*","node",(function(e){var t=e.target;r(t,e)})).on("background.*","node",(function(e){var t=e.target;r(t,e,!1)})).on("add.* style.*","edge",(function(e){var t=e.target;r(t,e),r(t.parallelEdges(),e)})).on("remove.*","edge",(function(e){for(var t=e.target.parallelEdges(),n=0;n<t.length;n++){var i=t[n];i.removed()||r(i,e)}})).on("dirty.*","node",(function(e){var t=e.target;r(t,e)})),n.beforeRender((function(r){if(r){var i=n.onUpdateEleCalcsFns;if(i)for(var o=0;o<i.length;o++)(0,i[o])(r,t);for(n.recalculateRenderedStyle(t,!1),o=0;o<t.length;o++)t[o]._private.rstyle.dirtyEvents=null;t=e.collection()}}),n.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},recalculateRenderedStyle:function(e,t){var n=[],r=[];if(!this.destroyed){void 0===t&&(t=!0);for(var i=0;i<e.length;i++){var o=(l=(s=e[i])._private).rstyle;t&&o.clean||s.removed()||"none"!==s.pstyle("display").value&&("nodes"===l.group?r.push(s):n.push(s),o.clean=!0)}for(i=0;i<r.length;i++){o=(l=(s=r[i])._private).rstyle;var a=s.position();this.recalculateNodeLabelProjection(s),o.nodeX=a.x,o.nodeY=a.y,o.nodeW=s.pstyle("width").pfValue,o.nodeH=s.pstyle("height").pfValue}for(this.recalculateEdgeProjections(n),i=0;i<n.length;i++){o=(l=(s=n[i])._private).rstyle;var s,l,c=l.rscratch;this.recalculateEdgeLabelProjections(s),o.srcX=c.arrowStartX,o.srcY=c.arrowStartY,o.tgtX=c.arrowEndX,o.tgtY=c.arrowEndY,o.midX=c.midX,o.midY=c.midY,o.labelAngle=c.labelAngle,o.sourceLabelAngle=c.sourceLabelAngle,o.targetLabelAngle=c.targetLabelAngle}}}};e.exports=r},function(e,t,n){"use strict";var r=n(17),i={updateCachedGrabbedEles:function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=(i=e[n])._private.rscratch;i.grabbed()&&!i.isParent()?t.push(i):r.inDragLayer?e.drag.push(i):e.nondrag.push(i)}for(n=0;n<t.length;n++){var i=t[n];e.drag.push(i)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(r),t.interactive=t.filter((function(e){return e.interactive()})),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t}};e.exports=i},function(e,t,n){"use strict";var r={getCachedImage:function(e,t,n){var r=this.imageCache=this.imageCache||{},i=r[e];if(i)return i.image.complete||i.image.addEventListener("load",n),i.image;var o=(i=r[e]=r[e]||{}).image=new Image;return o.addEventListener("load",n),o.addEventListener("error",(function(){o.error=!0})),"data:"===e.substring(0,"data:".length).toLowerCase()||(o.crossOrigin=t),o.src=e,o}};e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(2),a=(n(16),{registerBinding:function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),o=this.binder(e);return o.on.apply(o,i)},binder:function(e){var t=this,n=e===window||e===document||e===document.body||r.domElement(e);if(null==t.supportsPassiveEvents){var i=!1;try{var o=Object.defineProperty({},"passive",{get:function(){i=!0}});window.addEventListener("test",null,o)}catch(e){}t.supportsPassiveEvents=i}var a=function(r,i,o){var a=Array.prototype.slice.call(arguments);return n&&t.supportsPassiveEvents&&(a[2]={capture:null!=o&&o,passive:!1,once:!1}),t.bindings.push({target:e,args:a}),(e.addEventListener||e.on).apply(e,a),this};return{on:a,addEventListener:a,addListener:a,bind:a}},nodeIsDraggable:function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},nodeIsGrabbable:function(e){return this.nodeIsDraggable(e)&&e.interactive()}});a.load=function(){var e=this,t=function(t,n,r,o){null==t&&(t=e.cy);for(var a=0;a<n.length;a++){var s=n[a];t.emit(i.extend({originalEvent:r,type:s},o))}},n=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},a=function(t,n){var r=!0;if(e.cy.hasCompoundNodes()&&t&&t.isEdge()){for(var i=0;n&&i<n.length;i++)if((t=n[i]).isNode()&&t.isParent()){r=!1;break}}else r=!0;return r},s=function(e){e[0]._private.rscratch.inDragLayer=!0},l=function(e){e[0]._private.rscratch.isGrabTarget=!0},c=function(t,n){var r=function(t){var n;if(t.addToList&&e.cy.hasCompoundNodes()){if(!t.addToList.hasId){t.addToList.hasId={};for(var r=0;r<t.addToList.length;r++){var i=t.addToList[r];t.addToList.hasId[i.id()]=!0}}n=t.addToList.hasId}return n||{}}(n);r[t.id()]||(n.addToList.push(t),r[t.id()]=!0,function(e){e[0]._private.grabbed=!0}(t))},u=function(t,n){n=n||{};var r=t.cy().hasCompoundNodes();n.inDragLayer&&(t.forEach(s),t.neighborhood().stdFilter((function(e){return!r||e.isEdge()})).forEach(s)),n.addToList&&t.forEach((function(e){c(e,n)})),function(e,t){if(e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(s),n.connectedEdges().forEach(s)),t.addToList&&n.forEach((function(e){c(e,t)}))}}(t,n),f(t,{inDragLayer:n.inDragLayer}),e.updateCachedGrabbedEles()},d=u,p=function(t){t&&(t.hasId={},e.getCachedZSortedEles().forEach((function(e){!function(e){e[0]._private.grabbed=!1}(e),function(e){e[0]._private.rscratch.inDragLayer=!1}(e),function(e){e[0]._private.rscratch.isGrabTarget=!1}(e)})),e.updateCachedGrabbedEles())},f=function(e,t){if((null!=t.inDragLayer||null!=t.addToList)&&e.cy().hasCompoundNodes()){var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(s),r.forEach(s)),t.addToList&&r.forEach((function(e){c(e,t)}))}}},h="undefined"!=typeof MutationObserver;h?(e.removeObserver=new MutationObserver((function(t){for(var n=0;n<t.length;n++){var r=t[n].removedNodes;if(r)for(var i=0;i<r.length;i++)if(r[i]===e.container){e.destroy();break}}})),e.container.parentNode&&e.removeObserver.observe(e.container.parentNode,{childList:!0})):e.registerBinding(e.container,"DOMNodeRemoved",(function(t){e.destroy()}));var g=i.debounce((function(){e.cy.resize()}),100);h&&(e.styleObserver=new MutationObserver(g),e.styleObserver.observe(e.container,{attributes:!0})),e.registerBinding(window,"resize",g);var m=function(){e.invalidateContainerClientCoordsCache()};!function(e,t){for(;null!=e;)t(e),e=e.parentNode}(e.container,(function(t){e.registerBinding(t,"transitionend",m),e.registerBinding(t,"animationend",m),e.registerBinding(t,"scroll",m)})),e.registerBinding(e.container,"contextmenu",(function(e){e.preventDefault()}));var v,b,y,x,w,k,A,E,S,$,C,_,O,T=function(t){for(var n=e.findContainerClientCoords(),r=n[0],i=n[1],o=n[2],a=n[3],s=t.touches?t.touches:[t],l=!1,c=0;c<s.length;c++){var u=s[c];if(r<=u.clientX&&u.clientX<=r+o&&i<=u.clientY&&u.clientY<=i+a){l=!0;break}}if(!l)return!1;for(var d=e.container,p=t.target.parentNode,f=!1;p;){if(p===d){f=!0;break}p=p.parentNode}return!!f};e.registerBinding(e.container,"mousedown",(function(n){if(T(n)){n.preventDefault(),e.hoverData.capture=!0,e.hoverData.which=n.which;var r=e.cy,i=[n.clientX,n.clientY],o=e.projectIntoViewport(i[0],i[1]),a=e.selection,s=e.findNearestElements(o[0],o[1],!0,!1),c=s[0],p=e.dragData.possibleDragElements;if(e.hoverData.mdownPos=o,e.hoverData.mdownGPos=i,3==n.which){e.hoverData.cxtStarted=!0;var f={originalEvent:n,type:"cxttapstart",position:{x:o[0],y:o[1]}};c?(c.activate(),c.emit(f),e.hoverData.down=c):r.emit(f),e.hoverData.downTime=(new Date).getTime(),e.hoverData.cxtDragged=!1}else if(1==n.which){if(c&&c.activate(),null!=c&&e.nodeIsGrabbable(c)){var h=function(e){return{originalEvent:n,type:e,position:{x:o[0],y:o[1]}}};if(l(c),c.selected()){p=e.dragData.possibleDragElements=[];var g=r.$((function(t){return t.isNode()&&t.selected()&&e.nodeIsGrabbable(t)}));u(g,{addToList:p}),c.emit(h("grabon")),g.forEach((function(e){e.emit(h("grab"))}))}else p=e.dragData.possibleDragElements=[],d(c,{addToList:p}),c.emit(h("grabon")).emit(h("grab"));e.redrawHint("eles",!0),e.redrawHint("drag",!0)}e.hoverData.down=c,e.hoverData.downs=s,e.hoverData.downTime=(new Date).getTime(),t(c,["mousedown","tapstart","vmousedown"],n,{position:{x:o[0],y:o[1]}}),null==c?(a[4]=1,e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()):c.isEdge()&&(a[4]=1),e.hoverData.tapholdCancelled=!1,clearTimeout(e.hoverData.tapholdTimeout),e.hoverData.tapholdTimeout=setTimeout((function(){if(!e.hoverData.tapholdCancelled){var t=e.hoverData.down;t?t.emit({originalEvent:n,type:"taphold",position:{x:o[0],y:o[1]}}):r.emit({originalEvent:n,type:"taphold",position:{x:o[0],y:o[1]}})}}),e.tapholdDuration)}a[0]=a[2]=o[0],a[1]=a[3]=o[1]}}),!1),e.registerBinding(window,"mousemove",(function(i){if(e.hoverData.capture||T(i)){var s=!1,l=e.cy,c=l.zoom(),d=[i.clientX,i.clientY],f=e.projectIntoViewport(d[0],d[1]),h=e.hoverData.mdownPos,g=e.hoverData.mdownGPos,m=e.selection,v=null;e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.selecting||(v=e.findNearestElement(f[0],f[1],!0,!1));var b,y=e.hoverData.last,x=e.hoverData.down,w=[f[0]-m[2],f[1]-m[3]],k=e.dragData.possibleDragElements;if(g){var A=d[0]-g[0],E=A*A,S=d[1]-g[1],$=E+S*S;e.hoverData.isOverThresholdDrag=b=$>=e.desktopTapThreshold2}var C=n(i);b&&(e.hoverData.tapholdCancelled=!0),s=!0,t(v,["mousemove","vmousemove","tapdrag"],i,{position:{x:f[0],y:f[1]}});var _=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||l.emit("boxstart"),m[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(b){var O={originalEvent:i,type:"cxtdrag",position:{x:f[0],y:f[1]}};x?x.emit(O):l.emit(O),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&v===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:i,type:"cxtdragout",position:{x:f[0],y:f[1]}}),e.hoverData.cxtOver=v,v&&v.emit({originalEvent:i,type:"cxtdragover",position:{x:f[0],y:f[1]}}))}}else if(e.hoverData.dragging){if(s=!0,l.panningEnabled()&&l.userPanningEnabled()){var j;if(e.hoverData.justStartedPan){var P=e.hoverData.mdownPos;j={x:(f[0]-P[0])*c,y:(f[1]-P[1])*c},e.hoverData.justStartedPan=!1}else j={x:w[0]*c,y:w[1]*c};l.panBy(j),e.hoverData.dragged=!0}f=e.projectIntoViewport(i.clientX,i.clientY)}else if(1!=m[4]||null!=x&&!x.isEdge()){if(x&&x.isEdge()&&x.active()&&x.unactivate(),x&&x.grabbed()||v==y||(y&&t(y,["mouseout","tapdragout"],i,{position:{x:f[0],y:f[1]}}),v&&t(v,["mouseover","tapdragover"],i,{position:{x:f[0],y:f[1]}}),e.hoverData.last=v),x)if(b){if(l.boxSelectionEnabled()&&C)x&&x.grabbed()&&(p(k),x.emit("free")),_();else if(x&&x.grabbed()&&e.nodeIsDraggable(x)){var D=!e.dragData.didDrag;D&&e.redrawHint("eles",!0),e.dragData.didDrag=!0;var R=[];e.hoverData.draggingEles||u(l.collection(k),{inDragLayer:!0});for(var I=0;I<k.length;I++){var N=k[I];if(e.nodeIsDraggable(N)&&N.grabbed()){var M=N.position();if(R.push(N),r.number(w[0])&&r.number(w[1])&&(M.x+=w[0],M.y+=w[1],D)){var z=e.hoverData.dragDelta;z&&r.number(z[0])&&r.number(z[1])&&(M.x+=z[0],M.y+=z[1])}}}e.hoverData.draggingEles=!0;var L=l.collection(R);L.dirtyCompoundBoundsCache(),L.emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else!function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(w[0]),t.push(w[1])):(t[0]+=w[0],t[1]+=w[1])}();s=!0}else b&&(e.hoverData.dragging||!l.boxSelectionEnabled()||!C&&l.panningEnabled()&&l.userPanningEnabled()?!e.hoverData.selecting&&l.panningEnabled()&&l.userPanningEnabled()&&a(x,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,m[4]=0,e.data.bgActivePosistion=o.array2point(h),e.redrawHint("select",!0),e.redraw()):_(),x&&x.isEdge()&&x.active()&&x.unactivate());return m[2]=f[0],m[3]=f[1],s?(i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault(),!1):void 0}}),!1),e.registerBinding(window,"mouseup",(function(r){if(e.hoverData.capture){e.hoverData.capture=!1;var i=e.cy,o=e.projectIntoViewport(r.clientX,r.clientY),a=e.selection,s=e.findNearestElement(o[0],o[1],!0,!1),l=e.dragData.possibleDragElements,c=e.hoverData.down,u=n(r);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var d={originalEvent:r,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(d):i.emit(d),!e.hoverData.cxtDragged){var f={originalEvent:r,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):i.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||n(r)||(i.$((function(e){return e.selected()})).unselect(),l.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=l=[]),t(s,["mouseup","tapend","vmouseup"],r,{position:{x:o[0],y:o[1]}}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||t(c,["click","tap","vclick"],r,{position:{x:o[0],y:o[1]}}),s!=c||e.dragData.didDrag||e.hoverData.selecting||null!=s&&s._private.selectable&&(e.hoverData.dragging||("additive"===i.selectionType()||u?s.selected()?s.unselect():s.select():u||(i.$(":selected").unmerge(s).unselect(),s.select())),e.redrawHint("eles",!0)),e.hoverData.selecting){var h=i.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));e.redrawHint("select",!0),h.length>0&&e.redrawHint("eles",!0),i.emit("boxend");var g=function(e){return e.selectable()&&!e.selected()};"additive"===i.selectionType()||u||i.$(":selected").unmerge(h).unselect(),h.emit("box").stdFilter(g).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!a[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var m=c&&c.grabbed();p(l),m&&c.emit("free")}}a[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1),e.registerBinding(e.container,"wheel",(function(t){if(!e.scrollingPage){var n,r=e.cy,i=e.projectIntoViewport(t.clientX,t.clientY),o=[i[0]*r.zoom()+r.pan().x,i[1]*r.zoom()+r.pan().y];e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4]?t.preventDefault():r.panningEnabled()&&r.userPanningEnabled()&&r.zoomingEnabled()&&r.userZoomingEnabled()&&(t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),n=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,n*=e.wheelSensitivity,1===t.deltaMode&&(n*=33),r.zoom({level:r.zoom()*Math.pow(10,n),renderedPosition:{x:o[0],y:o[1]}}))}}),!0),e.registerBinding(window,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var j,P,D,R,I=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},N=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",j=function(n){if(T(n)){e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var r=e.cy,i=e.touchData.now,o=e.touchData.earlier;if(n.touches[0]){var a=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);i[0]=a[0],i[1]=a[1]}if(n.touches[1]&&(a=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),i[2]=a[0],i[3]=a[1]),n.touches[2]&&(a=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),i[4]=a[0],i[5]=a[1]),n.touches[1]){p(e.dragData.touchDragEles);var s=e.findContainerClientCoords();S=s[0],$=s[1],C=s[2],_=s[3],v=n.touches[0].clientX-S,b=n.touches[0].clientY-$,y=n.touches[1].clientX-S,x=n.touches[1].clientY-$,O=0<=v&&v<=C&&0<=y&&y<=C&&0<=b&&b<=_&&0<=x&&x<=_;var c=r.pan(),f=r.zoom();if(w=I(v,b,y,x),k=N(v,b,y,x),E=[((A=[(v+y)/2,(b+x)/2])[0]-c.x)/f,(A[1]-c.y)/f],k<4e4&&!n.touches[2]){var h=e.findNearestElement(i[0],i[1],!0,!0),g=e.findNearestElement(i[2],i[3],!0,!0);return h&&h.isNode()?(h.activate().emit({originalEvent:n,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=h):g&&g.isNode()?(g.activate().emit({originalEvent:n,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=g):r.emit({originalEvent:n,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(n.touches[2]);else if(n.touches[1]);else if(n.touches[0]){var m=e.findNearestElements(i[0],i[1],!0,!0),j=m[0];if(null!=j&&(j.activate(),e.touchData.start=j,e.touchData.starts=m,e.nodeIsGrabbable(j))){var P=e.dragData.touchDragEles=[],D=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),j.selected()?(D=r.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(D,{addToList:P})):d(j,{addToList:P}),l(j);var R=function(e){return{originalEvent:n,type:e,position:{x:i[0],y:i[1]}}};j.emit(R("grabon")),D?D.forEach((function(e){e.emit(R("grab"))})):j.emit(R("grab"))}t(j,["touchstart","tapstart","vmousedown"],n,{position:{x:i[0],y:i[1]}}),null==j&&(e.data.bgActivePosistion={x:a[0],y:a[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||(t(e.touchData.start,["taphold"],n,{position:{x:i[0],y:i[1]}}),e.touchData.start||r.$(":selected").unselect())}),e.tapholdDuration)}if(n.touches.length>=1){for(var M=e.touchData.startPosition=[],z=0;z<i.length;z++)M[z]=o[z]=i[z];var L=n.touches[0];e.touchData.startGPosition=[L.clientX,L.clientY]}}},!1),e.registerBinding(window,"touchmove",P=function(n){var i=e.touchData.capture;if(i||T(n)){var s=e.selection,l=e.cy,c=e.touchData.now,d=e.touchData.earlier,f=l.zoom();if(n.touches[0]){var h=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);c[0]=h[0],c[1]=h[1]}n.touches[1]&&(h=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),c[2]=h[0],c[3]=h[1]),n.touches[2]&&(h=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),c[4]=h[0],c[5]=h[1]);var g,m=e.touchData.startGPosition;if(i&&n.touches[0]&&m){for(var A=[],C=0;C<c.length;C++)A[C]=c[C]-d[C];var _=n.touches[0].clientX-m[0],j=_*_,P=n.touches[0].clientY-m[1];g=j+P*P>=e.touchTapThreshold2}if(i&&e.touchData.cxt){n.preventDefault();var D=n.touches[0].clientX-S,R=n.touches[0].clientY-$,M=n.touches[1].clientX-S,z=n.touches[1].clientY-$,L=N(D,R,M,z);if(L/k>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var B={originalEvent:n,type:"cxttapend",position:{x:c[0],y:c[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(B),e.touchData.start=null):l.emit(B)}}if(i&&e.touchData.cxt){B={originalEvent:n,type:"cxtdrag",position:{x:c[0],y:c[1]}},e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(B):l.emit(B),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var F=e.findNearestElement(c[0],c[1],!0,!0);e.touchData.cxtOver&&F===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:n,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.touchData.cxtOver=F,F&&F.emit({originalEvent:n,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}else if(i&&n.touches[2]&&l.boxSelectionEnabled())n.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||l.emit("boxstart"),e.touchData.selecting=!0,e.redrawHint("select",!0),s&&0!==s.length&&void 0!==s[0]?(s[2]=(c[0]+c[2]+c[4])/3,s[3]=(c[1]+c[3]+c[5])/3):(s[0]=(c[0]+c[2]+c[4])/3,s[1]=(c[1]+c[3]+c[5])/3,s[2]=(c[0]+c[2]+c[4])/3+1,s[3]=(c[1]+c[3]+c[5])/3+1),s[4]=1,e.touchData.selecting=!0,e.redraw();else if(i&&n.touches[1]&&l.zoomingEnabled()&&l.panningEnabled()&&l.userZoomingEnabled()&&l.userPanningEnabled()){if(n.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var q=0;q<ee.length;q++){var V=ee[q]._private;V.grabbed=!1,V.rscratch.inDragLayer=!1}}D=n.touches[0].clientX-S,R=n.touches[0].clientY-$,M=n.touches[1].clientX-S,z=n.touches[1].clientY-$;var U=I(D,R,M,z),H=U/w;if(O){var G=(D-v+(M-y))/2,W=(R-b+(z-x))/2,Y=l.zoom(),X=Y*H,Z=l.pan(),Q=E[0]*Y+Z.x,J=E[1]*Y+Z.y,K={x:-X/Y*(Q-Z.x-G)+Q,y:-X/Y*(J-Z.y-W)+J};if(e.touchData.start&&e.touchData.start.active()){var ee=e.dragData.touchDragEles;p(ee),e.redrawHint("drag",!0),e.redrawHint("eles",!0),e.touchData.start.unactivate().emit("free")}l.viewport({zoom:X,pan:K,cancelOnFailedZoom:!0}),w=U,v=D,b=R,y=M,x=z,e.pinching=!0}n.touches[0]&&(h=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY),c[0]=h[0],c[1]=h[1]),n.touches[1]&&(h=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),c[2]=h[0],c[3]=h[1]),n.touches[2]&&(h=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),c[4]=h[0],c[5]=h[1])}else if(n.touches[0]){var te=e.touchData.start,ne=e.touchData.last;if(e.hoverData.draggingEles||e.swipePanning||(F=e.findNearestElement(c[0],c[1],!0,!0)),i&&null!=te&&n.preventDefault(),i&&null!=te&&e.nodeIsDraggable(te))if(g){ee=e.dragData.touchDragEles;var re=!e.dragData.didDrag;re&&u(l.collection(ee),{inDragLayer:!0});for(var ie=0;ie<ee.length;ie++){var oe=ee[ie];if(e.nodeIsDraggable(oe)&&oe.grabbed()){e.dragData.didDrag=!0;var ae=oe.position();r.number(A[0])&&r.number(A[1])&&(ae.x+=A[0],ae.y+=A[1]),re&&(e.redrawHint("eles",!0),(le=e.touchData.dragDelta)&&r.number(le[0])&&r.number(le[1])&&(ae.x+=le[0],ae.y+=le[1]))}}var se=l.collection(ee);se.dirtyCompoundBoundsCache(),se.emit("position drag"),e.hoverData.draggingEles=!0,e.redrawHint("drag",!0),e.touchData.startPosition[0]==d[0]&&e.touchData.startPosition[1]==d[1]&&e.redrawHint("eles",!0),e.redraw()}else{var le;0===(le=e.touchData.dragDelta=e.touchData.dragDelta||[]).length?(le.push(A[0]),le.push(A[1])):(le[0]+=A[0],le[1]+=A[1])}if(t(te||F,["touchmove","tapdrag","vmousemove"],n,{position:{x:c[0],y:c[1]}}),te&&te.grabbed()||F==ne||(ne&&ne.emit({originalEvent:n,type:"tapdragout",position:{x:c[0],y:c[1]}}),F&&F.emit({originalEvent:n,type:"tapdragover",position:{x:c[0],y:c[1]}})),e.touchData.last=F,i)for(q=0;q<c.length;q++)c[q]&&e.touchData.startPosition[q]&&g&&(e.touchData.singleTouchMoved=!0);i&&(null==te||te.isEdge())&&l.panningEnabled()&&l.userPanningEnabled()&&(a(te,e.touchData.starts)&&(n.preventDefault(),e.swipePanning?l.panBy({x:A[0]*f,y:A[1]*f}):g&&(e.swipePanning=!0,l.panBy({x:_*f,y:P*f}),te&&(te.unactivate(),e.data.bgActivePosistion||(e.data.bgActivePosistion=o.array2point(e.touchData.startPosition)),e.redrawHint("select",!0),e.touchData.start=null))),h=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY),c[0]=h[0],c[1]=h[1])}for(C=0;C<c.length;C++)d[C]=c[C]}},!1),e.registerBinding(window,"touchcancel",D=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(window,"touchend",R=function(n){var r=e.touchData.start;if(e.touchData.capture){e.touchData.capture=!1,n.preventDefault();var i=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,a=e.cy,s=a.zoom(),l=e.touchData.now,c=e.touchData.earlier;if(n.touches[0]){var u=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);l[0]=u[0],l[1]=u[1]}if(n.touches[1]&&(u=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),l[2]=u[0],l[3]=u[1]),n.touches[2]&&(u=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),l[4]=u[0],l[5]=u[1]),r&&r.unactivate(),e.touchData.cxt){if(o={originalEvent:n,type:"cxttapend",position:{x:l[0],y:l[1]}},r?r.emit(o):a.emit(o),!e.touchData.cxtDragged){var d={originalEvent:n,type:"cxttap",position:{x:l[0],y:l[1]}};r?r.emit(d):a.emit(d)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!n.touches[2]&&a.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=a.collection(e.getAllInBox(i[0],i[1],i[2],i[3]));i[0]=void 0,i[1]=void 0,i[2]=void 0,i[3]=void 0,i[4]=0,e.redrawHint("select",!0),a.emit("boxend"),f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=r&&r.unactivate(),n.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(n.touches[1]);else if(n.touches[0]);else if(!n.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var h=e.dragData.touchDragEles;if(null!=r){var g=r._private.grabbed;p(h),e.redrawHint("drag",!0),e.redrawHint("eles",!0),g&&r.emit("free"),t(r,["touchend","tapend","vmouseup","tapdragout"],n,{position:{x:l[0],y:l[1]}}),r.unactivate(),e.touchData.start=null}else{var m=e.findNearestElement(l[0],l[1],!0,!0);t(m,["touchend","tapend","vmouseup","tapdragout"],n,{position:{x:l[0],y:l[1]}})}var v=e.touchData.startPosition[0]-l[0],b=v*v,y=e.touchData.startPosition[1]-l[1],x=(b+y*y)*s*s;null!=r&&!e.dragData.didDrag&&r._private.selectable&&x<e.touchTapThreshold2&&!e.pinching&&("single"===a.selectionType()?(a.$(":selected").unmerge(r).unselect(),r.select()):r.selected()?r.unselect():r.select(),e.redrawHint("eles",!0)),e.touchData.singleTouchMoved||t(r,["tap","vclick"],n,{position:{x:l[0],y:l[1]}}),e.touchData.singleTouchMoved=!0}for(var w=0;w<l.length;w++)c[w]=l[w];e.dragData.didDrag=!1,0===n.touches.length&&(e.touchData.dragDelta=[],e.touchData.startPosition=null,e.touchData.startGPosition=null),n.touches.length<2&&(e.pinching=!1,e.redrawHint("eles",!0),e.redraw())}},!1),"undefined"==typeof TouchEvent){var M=[],z=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},L=function(e){M.push(function(e){return{event:e,touch:z(e)}}(e))},B=function(e){for(var t=0;t<M.length;t++)if(M[t].event.pointerId===e.pointerId)return void M.splice(t,1)},F=function(e){e.touches=M.map((function(e){return e.touch}))},q=function(e){return"mouse"===e.pointerType||4===e.pointerType};e.registerBinding(e.container,"pointerdown",(function(e){q(e)||(e.preventDefault(),L(e),F(e),j(e))})),e.registerBinding(e.container,"pointerup",(function(e){q(e)||(B(e),F(e),R(e))})),e.registerBinding(e.container,"pointercancel",(function(e){q(e)||(B(e),F(e),D())})),e.registerBinding(e.container,"pointermove",(function(e){q(e)||(e.preventDefault(),function(e){var t=M.filter((function(t){return t.event.pointerId===e.pointerId}))[0];t.event=e,t.touch=z(e)}(e),F(e),P(e))}))}},e.exports=a},function(e,t,n){"use strict";var r=n(2),i={generatePolygon:function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,i,o,a,s){return r.polygonIntersectLine(o,a,this.points,e,t,n/2,i/2,s)},checkPoint:function(e,t,n,i,o,a,s){return r.pointInsidePolygon(e,t,this.points,a,s,i,o,[0,-1],n)}}},generateEllipse:function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){return r.intersectLineEllipse(o,a,e,t,n/2+s,i/2+s)},checkPoint:function(e,t,n,i,o,a,s){return r.checkInEllipse(e,t,i,o,a,s,n)}}},generateRoundRectangle:function(){return this.nodeShapes.roundrectangle={renderer:this,name:"roundrectangle",points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){return r.roundRectangleIntersectLine(o,a,e,t,n,i,s)},checkPoint:function(e,t,n,i,o,a,s){var l=r.getRoundRectangleRadius(i,o),c=2*l;return!!(r.pointInsidePolygon(e,t,this.points,a,s,i,o-c,[0,-1],n)||r.pointInsidePolygon(e,t,this.points,a,s,i-c,o,[0,-1],n)||r.checkInEllipse(e,t,c,c,a-i/2+l,s-o/2+l,n)||r.checkInEllipse(e,t,c,c,a+i/2-l,s-o/2+l,n)||r.checkInEllipse(e,t,c,c,a+i/2-l,s+o/2-l,n)||r.checkInEllipse(e,t,c,c,a-i/2+l,s+o/2-l,n))}}},generateCutRectangle:function(){return this.nodeShapes.cutrectangle={renderer:this,name:"cutrectangle",cornerLength:r.getCutRectangleCornerLength(),points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},generateCutTrianglePts:function(e,t,n,r){var i=this.cornerLength,o=t/2,a=e/2,s=n-a,l=n+a,c=r-o,u=r+o;return{topLeft:[s,c+i,s+i,c,s+i,c+i],topRight:[l-i,c,l,c+i,l-i,c+i],bottomRight:[l,u-i,l-i,u,l-i,u-i],bottomLeft:[s+i,u,s,u-i,s+i,u-i]}},intersectLine:function(e,t,n,i,o,a,s){var l=this.generateCutTrianglePts(n+2*s,i+2*s,e,t),c=[].concat.apply([],[l.topLeft.splice(0,4),l.topRight.splice(0,4),l.bottomRight.splice(0,4),l.bottomLeft.splice(0,4)]);return r.polygonIntersectLine(o,a,c,e,t)},checkPoint:function(e,t,n,i,o,a,s){if(r.pointInsidePolygon(e,t,this.points,a,s,i,o-2*this.cornerLength,[0,-1],n))return!0;if(r.pointInsidePolygon(e,t,this.points,a,s,i-2*this.cornerLength,o,[0,-1],n))return!0;var l=this.generateCutTrianglePts(i,o,a,s);return r.pointInsidePolygonPoints(e,t,l.topLeft)||r.pointInsidePolygonPoints(e,t,l.topRight)||r.pointInsidePolygonPoints(e,t,l.bottomRight)||r.pointInsidePolygonPoints(e,t,l.bottomLeft)}}},generateBarrel:function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){var l=this.generateBarrelBezierPts(n+2*s,i+2*s,e,t),c=function(e){var t=r.qbezierPtAt({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.15),n=r.qbezierPtAt({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.5),i=r.qbezierPtAt({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.85);return[e[0],e[1],t.x,t.y,n.x,n.y,i.x,i.y,e[4],e[5]]},u=[].concat(c(l.topLeft),c(l.topRight),c(l.bottomRight),c(l.bottomLeft));return r.polygonIntersectLine(o,a,u,e,t)},generateBarrelBezierPts:function(e,t,n,i){var o=t/2,a=e/2,s=n-a,l=n+a,c=i-o,u=i+o,d=r.getBarrelCurveConstants(e,t),p=d.heightOffset,f=d.widthOffset,h=d.ctrlPtOffsetPct*e,g={topLeft:[s,c+p,s+h,c,s+f,c],topRight:[l-f,c,l-h,c,l,c+p],bottomRight:[l,u-p,l-h,u,l-f,u],bottomLeft:[s+f,u,s+h,u,s,u-p]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,t,n,i,o,a,s){var l=r.getBarrelCurveConstants(i,o),c=l.heightOffset,u=l.widthOffset;if(r.pointInsidePolygon(e,t,this.points,a,s,i,o-2*c,[0,-1],n))return!0;if(r.pointInsidePolygon(e,t,this.points,a,s,i-2*u,o,[0,-1],n))return!0;for(var d=this.generateBarrelBezierPts(i,o,a,s),p=function(e,t,n){var i=n[4],o=n[2],a=n[0],s=n[5],l=n[1],c=Math.min(i,a),u=Math.max(i,a),d=Math.min(s,l),p=Math.max(s,l);if(c<=e&&e<=u&&d<=t&&t<=p){var f=r.bezierPtsToQuadCoeff(i,o,a),h=r.solveQuadratic(f[0],f[1],f[2],e).filter((function(e){return 0<=e&&e<=1}));if(h.length>0)return h[0]}return null},f=Object.keys(d),h=0;h<f.length;h++){var g=d[f[h]],m=p(e,t,g);if(null!=m){var v=g[5],b=g[3],y=g[1],x=r.qbezierAt(v,b,y,m);if(g.isTop&&x<=t)return!0;if(g.isBottom&&t<=x)return!0}}return!1}}},generateBottomRoundrectangle:function(){return this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottomroundrectangle",points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){var l=e-(n/2+s),c=t-(i/2+s),u=c,d=e+(n/2+s),p=r.finiteLinesIntersect(o,a,e,t,l,c,d,u,!1);return p.length>0?p:r.roundRectangleIntersectLine(o,a,e,t,n,i,s)},checkPoint:function(e,t,n,i,o,a,s){var l=r.getRoundRectangleRadius(i,o),c=2*l;if(r.pointInsidePolygon(e,t,this.points,a,s,i,o-c,[0,-1],n))return!0;if(r.pointInsidePolygon(e,t,this.points,a,s,i-c,o,[0,-1],n))return!0;var u=i/2+2*n,d=o/2+2*n,p=[a-u,s-d,a-u,s,a+u,s,a+u,s-d];return!!r.pointInsidePolygonPoints(e,t,p)||!!r.checkInEllipse(e,t,c,c,a+i/2-l,s+o/2-l,n)||!!r.checkInEllipse(e,t,c,c,a-i/2+l,s+o/2-l,n)}}},registerNodeShapes:function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",r.generateUnitNgonPointsFitToSquare(3,0)),this.generatePolygon("rectangle",r.generateUnitNgonPointsFitToSquare(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle(),this.generatePolygon("diamond",[0,1,1,0,0,-1,-1,0]),this.generatePolygon("pentagon",r.generateUnitNgonPointsFitToSquare(5,0)),this.generatePolygon("hexagon",r.generateUnitNgonPointsFitToSquare(6,0)),this.generatePolygon("heptagon",r.generateUnitNgonPointsFitToSquare(7,0)),this.generatePolygon("octagon",r.generateUnitNgonPointsFitToSquare(8,0));var n=new Array(20),i=r.generateUnitNgonPoints(5,0),o=r.generateUnitNgonPoints(5,Math.PI/5),a=.5*(3-Math.sqrt(5));a*=1.57;for(var s=0;s<o.length/2;s++)o[2*s]*=a,o[2*s+1]*=a;for(s=0;s<5;s++)n[4*s]=i[2*s],n[4*s+1]=i[2*s+1],n[4*s+2]=o[2*s],n[4*s+3]=o[2*s+1];n=r.fitPolygonToSquare(n),this.generatePolygon("star",n),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("concavehexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]),this.generatePolygon("tag",[-1,-1,.25,-1,1,0,.25,1,-1,1]),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}}};e.exports=i},function(e,t,n){"use strict";var r=n(1),i={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(e){e=e||r.staticEmptyObject();var t=this;void 0===t.averageRedrawTime&&(t.averageRedrawTime=0),void 0===t.lastRedrawTime&&(t.lastRedrawTime=0),void 0===t.lastDrawTime&&(t.lastDrawTime=0),t.requestedFrame=!0,t.renderOptions=e},beforeRender:function(e,t){if(!this.destroyed){t=t||0;var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort((function(e,t){return t.priority-e.priority}))}}},o=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};i.startRenderLoop=function(){var e=this;e.renderLoopStarted||(e.renderLoopStarted=!0,r.requestAnimationFrame((function t(n){if(!e.destroyed){if(e.requestedFrame&&!e.skipFrame){o(e,!0,n);var i=r.performanceNow();e.render(e.renderOptions);var a=e.lastDrawTime=r.performanceNow();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var s=a-i;e.redrawTotalTime+=s,e.lastRedrawTime=s,e.averageRedrawTime=e.averageRedrawTime/2+s/2,e.requestedFrame=!1}else o(e,!1,n);e.skipFrame=!1,r.requestAnimationFrame(t)}})))},e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(124),a=n(125),s=c,l=c.prototype;function c(e){var t=this;t.data={canvases:new Array(l.CANVAS_LAYERS),contexts:new Array(l.CANVAS_LAYERS),canvasNeedsRedraw:new Array(l.CANVAS_LAYERS),bufferCanvases:new Array(l.BUFFER_COUNT),bufferContexts:new Array(l.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color: rgba(0,0,0,0);";t.data.canvasContainer=document.createElement("div");var r=t.data.canvasContainer.style;t.data.canvasContainer.setAttribute("style",n),r.position="relative",r.zIndex="0",r.overflow="hidden";var s=e.cy.container();s.appendChild(t.data.canvasContainer),(s.getAttribute("style")||"").indexOf(n)<0&&s.setAttribute("style",(s.getAttribute("style")||"")+n);for(var c=0;c<l.CANVAS_LAYERS;c++){var u=t.data.canvases[c]=document.createElement("canvas");t.data.contexts[c]=u.getContext("2d"),u.setAttribute("style","-webkit-user-select: none; -moz-user-select: -moz-none; user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); outline-style: none;"+(i.ms()?" -ms-touch-action: none; touch-action: none; ":"")),u.style.position="absolute",u.setAttribute("data-id","layer"+c),u.style.zIndex=String(l.CANVAS_LAYERS-c),t.data.canvasContainer.appendChild(u),t.data.canvasNeedsRedraw[c]=!1}for(t.data.topCanvas=t.data.canvases[0],t.data.canvases[l.NODE].setAttribute("data-id","layer"+l.NODE+"-node"),t.data.canvases[l.SELECT_BOX].setAttribute("data-id","layer"+l.SELECT_BOX+"-selectbox"),t.data.canvases[l.DRAG].setAttribute("data-id","layer"+l.DRAG+"-drag"),c=0;c<l.BUFFER_COUNT;c++)t.data.bufferCanvases[c]=document.createElement("canvas"),t.data.bufferContexts[c]=t.data.bufferCanvases[c].getContext("2d"),t.data.bufferCanvases[c].style.position="absolute",t.data.bufferCanvases[c].setAttribute("data-id","buffer"+c),t.data.bufferCanvases[c].style.zIndex=String(-c-1),t.data.bufferCanvases[c].style.visibility="hidden";t.pathsEnabled=!0,t.data.eleTxrCache=new o(t),t.data.lyrTxrCache=new a(t,t.data.eleTxrCache),t.onUpdateEleCalcs((function(e,n){for(var r=0;r<n.length;r++){var i=n[r],o=i._private.rstyle,a=o.dirtyEvents;if(i.isNode()&&a&&1===a.length&&a.position);else if(t.data.eleTxrCache.invalidateElement(i),i.isParent()&&a.style){var s=o.prevParentOpacity,l=i.pstyle("opacity").pfValue;if(o.prevParentOpacity=l,s!==l)for(var c=i.descendants(),u=0;u<c.length;u++)t.data.eleTxrCache.invalidateElement(c[u])}}n.length>0&&t.data.lyrTxrCache.invalidateElements(n)}))}l.CANVAS_LAYERS=3,l.SELECT_BOX=0,l.DRAG=1,l.NODE=2,l.BUFFER_COUNT=3,l.TEXTURE_BUFFER=0,l.MOTIONBLUR_BUFFER_NODE=1,l.MOTIONBLUR_BUFFER_DRAG=2,l.redrawHint=function(e,t){var n=this;switch(e){case"eles":n.data.canvasNeedsRedraw[l.NODE]=t;break;case"drag":n.data.canvasNeedsRedraw[l.DRAG]=t;break;case"select":n.data.canvasNeedsRedraw[l.SELECT_BOX]=t}};var u="undefined"!=typeof Path2D;l.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},l.usePaths=function(){return u&&this.pathsEnabled},[n(126),n(127),n(128),n(129),n(130),n(131),n(132),n(133),n(134),n(135)].forEach((function(e){r.extend(l,e)})),e.exports=s},function(e,t,n){"use strict";var r=n(2),i=n(1),o=n(9),a=n(19),s={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},l=function(e){this.renderer=e,this.onDequeues=[],this.setupDequeueing()},c=l.prototype;c.reasons=s,c.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},c.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},c.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new o((function(e,t){return t.reqs-e.reqs}))},c.getElementIdToQueue=function(){return this.eleIdToCacheQueue=this.eleIdToCacheQueue||{}},c.getElement=function(e,t,n,i,o){var a=this,l=this.renderer,c=e._private.rscratch,u=l.cy.zoom();if(0===t.w||0===t.h||!e.visible())return null;if(null==i&&(i=Math.ceil(r.log2(u*n))),i<-4)i=-4;else if(u>=3.99||i>2)return null;var d,p=Math.pow(2,i),f=t.h*p,h=t.w*p,g=c.imgCaches=c.imgCaches||{},m=g[i];if(m)return m;if(d=f<=25?25:f<=50?50:50*Math.ceil(f/50),f>1024||h>1024||e.isEdge()||e.isParent())return null;var v=a.getTextureQueue(d),b=v[v.length-2],y=function(){return a.recycleTexture(d,h)||a.addTexture(d,h)};b||(b=v[v.length-1]),b||(b=y()),b.width-b.usedWidth<h&&(b=y());for(var x,w=l.eleTextBiggerThanMin(e,p),k=function(e){return e&&e.scaledLabelShown===w},A=o&&o===s.dequeue,E=o&&o===s.highQuality,S=o&&o===s.downscale,$=i+1;$<=2;$++)if(T=g[$]){x=T;break}var C=x&&x.level===i+1?x:null,_=function(){b.context.drawImage(C.texture.canvas,C.x,0,C.width,C.height,b.usedWidth,0,h,f)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,h,d),k(C))_();else if(k(x)){if(!E)return a.queueElement(e,x.level-1),x;for($=x.level;$>i;$--)C=a.getElement(e,t,n,$,s.downscale);_()}else{var O;if(!A&&!E&&!S)for($=i-1;$>=-4;$--){var T;if(T=g[$]){O=T;break}}if(k(O))return a.queueElement(e,i),O;b.context.translate(b.usedWidth,0),b.context.scale(p,p),l.drawElement(b.context,e,t,w),b.context.scale(1/p,1/p),b.context.translate(-b.usedWidth,0)}return m=g[i]={ele:e,x:b.usedWidth,texture:b,level:i,scale:p,width:h,height:f,scaledLabelShown:w},b.usedWidth+=Math.ceil(h+8),b.eleCaches.push(m),a.checkTextureFullness(b),m},c.invalidateElement=function(e){var t=e._private.rscratch.imgCaches;if(t)for(var n=-4;n<=2;n++){var r=t[n];if(r){var o=r.texture;o.invalidatedWidth+=r.width,t[n]=null,i.removeFromArray(o.eleCaches,r),this.removeFromQueue(e),this.checkTextureUtility(o)}}},c.checkTextureUtility=function(e){e.invalidatedWidth>=.5*e.width&&this.retireTexture(e)},c.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?i.removeFromArray(t,e):e.fullnessChecks++},c.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t);i.removeFromArray(n,e),e.retired=!0;for(var r=e.eleCaches,o=0;o<r.length;o++){var a=r[o],s=a.ele,l=a.level,c=s._private.rscratch.imgCaches;c&&(c[l]=null)}i.clearArray(r),this.getRetiredTextureQueue(t).push(e)},c.addTexture=function(e,t){var n={};return this.getTextureQueue(e).push(n),n.eleCaches=[],n.height=e,n.width=Math.max(1024,t),n.usedWidth=0,n.invalidatedWidth=0,n.fullnessChecks=0,n.canvas=document.createElement("canvas"),n.canvas.width=n.width,n.canvas.height=n.height,n.context=n.canvas.getContext("2d"),n},c.recycleTexture=function(e,t){for(var n=this.getTextureQueue(e),r=this.getRetiredTextureQueue(e),o=0;o<r.length;o++){var a=r[o];if(a.width>=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,i.clearArray(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),i.removeFromArray(r,a),n.push(a),a}},c.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementIdToQueue(),i=e.id(),o=r[i];if(o)o.level=Math.max(o.level,t),o.reqs++,n.updateItem(o);else{var a={ele:e,level:t,reqs:1};n.push(a),r[i]=a}},c.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementIdToQueue(),r=[],i=0;i<1&&t.size()>0;i++){var o=t.pop(),a=o.ele;if(null==a._private.rscratch.imgCaches[o.level]){n[a.id()]=null,r.push(o);var l=a.boundingBox();this.getElement(a,l,e,o.level,s.dequeue)}}return r},c.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementIdToQueue(),r=n[e.id()];null!=r&&(r.reqs=i.MAX_INT,t.updateItem(r),t.pop(),n[e.id()]=null)},c.onDequeue=function(e){this.onDequeues.push(e)},c.offDequeue=function(e){i.removeFromArray(this.onDequeues,e)},c.setupDequeueing=a.setupDequeueing({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,i){for(var o=0;o<t.length;o++){var a=t[o].ele.boundingBox();if(r.boundingBoxesIntersect(a,i))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}}),e.exports=l},function(e,t,n){"use strict";var r=n(1),i=n(2),o=n(9),a=n(0),s=n(19),l=function(e,t){var n=this,i=n.renderer=e;n.layersByLevel={},n.firstGet=!0,n.lastInvalidationTime=r.performanceNow()-500,n.skipping=!1,i.beforeRender((function(e,t){t-n.lastInvalidationTime<=250?n.skipping=!0:n.skipping=!1})),n.layersQueue=new o((function(e,t){return t.reqs-e.reqs})),n.eleTxrCache=t,n.setupEleCacheInvalidation(),n.setupDequeueing()},c=l.prototype,u=0,d=Math.pow(2,53)-1;function p(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)}c.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),o=document.createElement("canvas");o.width=r,o.height=i;var a={id:u=++u%d,bb:e,level:t,width:r,height:i,canvas:o,context:o.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=a.context,l=-a.bb.x1,c=-a.bb.y1;return s.scale(n,n),s.translate(l,c),a},c.getLayers=function(e,t,n){var o=this,a=o.renderer.cy.zoom(),s=o.firstGet;if(o.firstGet=!1,null==n)if((n=Math.ceil(i.log2(a*t)))<-4)n=-4;else if(a>=3.99||n>2)return null;o.validateLayersElesOrdering(n,e);var l,c,u=o.layersByLevel,d=Math.pow(2,n),p=u[n]=u[n]||[];if(o.levelIsComplete(n,e))return p;!function(){var t=function(t){if(o.validateLayersElesOrdering(t,e),o.levelIsComplete(t,e))return c=u[t],!0},i=function(e){if(!c)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};i(1),i(-1);for(var a=p.length-1;a>=0;a--){var s=p[a];s.invalid&&r.removeFromArray(p,s)}}();var f=function(t){var r=(t=t||{}).after;if(function(){if(!l){l=i.makeBoundingBox();for(var t=0;t<e.length;t++)i.updateBoundingBox(l,e[t].boundingBox())}}(),l.w*d*(l.h*d)>16e6)return null;var a=o.makeLayer(l,n);if(null!=r){var s=p.indexOf(r)+1;p.splice(s,0,a)}else(void 0===t.insert||t.insert)&&p.unshift(a);return a};if(o.skipping&&!s)return null;for(var h=null,g=e.length/1,m=!s,v=0;v<e.length;v++){var b=e[v],y=b._private.rscratch,x=y.imgLayerCaches=y.imgLayerCaches||{},w=x[n];if(w)h=w;else{if((!h||h.eles.length>=g||!i.boundingBoxInBoundingBox(h.bb,b.boundingBox()))&&!(h=f({insert:!0,after:h})))return null;c||m?o.queueLayer(h,b):o.drawEleInLayer(h,b,n,t),h.eles.push(b),x[n]=h}}return c||(m?null:p)},c.getEleLevelForLayerLevel=function(e,t){return e},c.drawEleInLayer=function(e,t,n,r){var i=this.renderer,o=e.context,a=t.boundingBox();if(0!==a.w&&0!==a.h&&t.visible()){var s=this.eleTxrCache,l=s.reasons.highQuality;n=this.getEleLevelForLayerLevel(n,r);var c=s.getElement(t,a,null,n,l);c?(p(o,!1),o.drawImage(c.texture.canvas,c.x,0,c.width,c.height,a.x1,a.y1,a.w,a.h),p(o,!0)):i.drawElement(o,t)}},c.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var o=n[i];if(o.reqs>0)return!1;if(o.invalid)return!1;r+=o.eles.length}return r===t.length},c.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r<n.length;r++){for(var i=n[r],o=-1,a=0;a<t.length;a++)if(i.eles[0]===t[a]){o=a;break}if(o<0)this.invalidateLayer(i);else{var s=o;for(a=0;a<i.eles.length;a++)if(i.eles[a]!==t[s+a]){this.invalidateLayer(i);break}}}},c.updateElementsInLayers=function(e,t){for(var n=a.element(e[0]),r=0;r<e.length;r++)for(var i=n?null:e[r],o=n?e[r]:e[r].ele,s=o._private.rscratch,l=s.imgLayerCaches=s.imgLayerCaches||{},c=-4;c<=2;c++){var u=l[c];u&&(i&&this.getEleLevelForLayerLevel(u.level)!==i.level||t(u,o,i))}},c.haveLayers=function(){for(var e=!1,t=-4;t<=2;t++){var n=this.layersByLevel[t];if(n&&n.length>0){e=!0;break}}return e},c.invalidateElements=function(e){var t=this;t.lastInvalidationTime=r.performanceNow(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)}))},c.invalidateLayer=function(e){if(this.lastInvalidationTime=r.performanceNow(),!e.invalid){var t=e.level,n=e.eles,i=this.layersByLevel[t];r.removeFromArray(i,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var o=0;o<n.length;o++){var a=n[o]._private.rscratch.imgLayerCaches;a&&(a[t]=null)}}},c.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,(function(e,n,r){var i=e.replacement;if(i||((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var o=0;o<i.eles.length;o++)t.queueLayer(i,i.eles[o])}))},c.setupEleCacheInvalidation=function(){var e=this,t=[],n=r.debounce((function(){e.refineElementTextures(t),t=[]}),50);e.eleTxrCache.onDequeue((function(e){for(var r=0;r<e.length;r++)t.push(e[r]);n()}))},c.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},c.dequeue=function(e){for(var t=this.layersQueue,n=[],r=0;r<1&&0!==t.size();){var i=t.peek();if(i.replacement)t.pop();else if(i.replaces&&i!==i.replaces.replacement)t.pop();else if(i.invalid)t.pop();else{var o=i.elesQueue.shift();o&&(this.drawEleInLayer(i,o,i.level,e),r++),0===n.length&&n.push(!0),0===i.elesQueue.length&&(t.pop(),i.reqs=0,i.replaces&&this.applyLayerReplacement(i),this.requestRedraw())}}return n},c.applyLayerReplacement=function(e){var t=this.layersByLevel[e.level],n=e.replaces,r=t.indexOf(n);if(!(r<0||n.invalid)){t[r]=e;for(var i=0;i<e.eles.length;i++){var o=e.eles[i]._private,a=o.imgLayerCaches=o.imgLayerCaches||{};a&&(a[e.level]=e)}this.requestRedraw()}},c.requestRedraw=r.debounce((function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()}),100),c.setupDequeueing=s.setupDequeueing({deqRedrawThreshold:50,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t){return e.dequeue(t)},onDeqd:r.noop,shouldRedraw:r.trueify,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}}),e.exports=l},function(e,t,n){"use strict";var r,i={arrowShapeImpl:function(e){return(r||(r={polygon:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}},"triangle-backcurve":function(e,t,n){for(var r,i=0;i<t.length;i++){var o=t[i];0===i&&(r=o),e.lineTo(o.x,o.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)},"triangle-tee":function(e,t,n){e.beginPath&&e.beginPath();for(var r=t,i=0;i<r.length;i++){var o=r[i];e.lineTo(o.x,o.y)}e.closePath&&e.closePath(),e.beginPath&&e.beginPath();var a=n,s=n[0];for(e.moveTo(s.x,s.y),i=0;i<a.length;i++)o=a[i],e.lineTo(o.x,o.y);e.closePath&&e.closePath()},"triangle-cross":function(e,t,n){e.beginPath&&e.beginPath();for(var r=t,i=0;i<r.length;i++){var o=r[i];e.lineTo(o.x,o.y)}e.closePath&&e.closePath(),e.beginPath&&e.beginPath();var a=n,s=n[0];for(e.moveTo(s.x,s.y),i=0;i<a.length;i++)o=a[i],e.lineTo(o.x,o.y);e.closePath&&e.closePath()},circle:function(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}}))[e]}};e.exports=i},function(e,t,n){"use strict";var r=n(2),i={drawElement:function(e,t,n,r){t.isNode()?this.drawNode(e,t,n,r):this.drawEdge(e,t,n,r)},drawCachedElement:function(e,t,n,i){var o=t.boundingBox();if(0!==o.w&&0!==o.h&&(!i||r.boundingBoxesIntersect(o,i))){var a=this.data.eleTxrCache.getElement(t,o,n);null!=a?e.drawImage(a.texture.canvas,a.x,0,a.width,a.height,o.x1,o.y1,o.w,o.h):this.drawElement(e,t)}},drawElements:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];this.drawElement(e,r)}},drawCachedElements:function(e,t,n,r){for(var i=0;i<t.length;i++){var o=t[i];this.drawCachedElement(e,o,n,r)}},drawCachedNodes:function(e,t,n,r){for(var i=0;i<t.length;i++){var o=t[i];o.isNode()&&this.drawCachedElement(e,o,n,r)}},drawLayeredElements:function(e,t,n,r){var i=this.data.lyrTxrCache.getLayers(t,n);if(i)for(var o=0;o<i.length;o++){var a=i[o],s=a.bb;0!==s.w&&0!==s.h&&e.drawImage(a.canvas,s.x1,s.y1,s.w,s.h)}else this.drawCachedElements(e,t,n,r)},drawDebugPoints:function(e,t){for(var n=function(t,n,r){e.fillStyle=r,e.fillRect(t-1,n-1,3,3)},r=0;r<t.length;r++){var i=t[r],o=i._private.rscratch;if(i.isNode()){var a=i.position();n(a.x,a.y,"magenta")}else{for(var s=o.allpts,l=0;l+1<s.length;l+=2)n(s[l],s[l+1],"cyan");n(o.midX,o.midY,"yellow")}}}};e.exports=i},function(e,t,n){"use strict";var r={drawEdge:function(e,t,n,r){var i=this,o=t._private.rscratch,a=i.usePaths();if(t.visible()&&!o.badLine&&null!=o.allpts&&!isNaN(o.allpts[0])){var s=void 0;n&&(s=n,e.translate(-s.x1,-s.y1));var l=2*t.pstyle("overlay-padding").pfValue,c=t.pstyle("overlay-opacity").value,u=t.pstyle("overlay-color").value,d=t.pstyle("line-color").value,p=t.pstyle("opacity").value,f=t.pstyle("line-style").value,h=t.pstyle("width").pfValue,g=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;e.lineWidth=h,e.lineCap="butt",i.strokeStyle(e,d[0],d[1],d[2],n),i.drawEdgePath(t,e,o.allpts,f)},m=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;i.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var v=t.pstyle("ghost-offset-x").pfValue,b=t.pstyle("ghost-offset-y").pfValue,y=t.pstyle("ghost-opacity").value,x=p*y;e.translate(v,b),g(x),m(x),e.translate(-v,-b)}g(),m(),function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;e.lineWidth=l,"self"!==o.edgeType||a?e.lineCap="round":e.lineCap="butt",i.strokeStyle(e,u[0],u[1],u[2],n),i.drawEdgePath(t,e,o.allpts,"solid")}(),i.drawElementText(e,t,r),n&&e.translate(s.x1,s.y1)}},drawEdgePath:function(e,t,n,r){var i=e._private.rscratch,o=t,a=void 0,s=!1,l=this.usePaths();if(l){var c=n.join("$");i.pathCacheKey&&i.pathCacheKey===c?(a=t=i.pathCache,s=!0):(a=t=new Path2D,i.pathCacheKey=c,i.pathCache=a)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash([6,3]);break;case"solid":o.setLineDash([])}if(!s&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":if(e.hasClass("horizontal")){var u=n[4],d=n[5],p=(n[0]+n[4])/2;t.lineTo(n[0]+10,n[1]),t.bezierCurveTo(p,n[1],p,n[5],n[4]-10,n[5]),t.lineTo(u,d)}else if(e.hasClass("vertical")){var f=n[4],h=n[5],g=(n[1]+n[5])/2;t.bezierCurveTo(n[0],g,n[4],g,n[4],n[5]-10),t.lineTo(f,h)}else for(var m=2;m+3<n.length;m+=4)t.quadraticCurveTo(n[m],n[m+1],n[m+2],n[m+3]);break;case"straight":case"segments":case"haystack":for(var v=2;v+1<n.length;v+=2)t.lineTo(n[v],n[v+1])}t=o,l?t.stroke(a):t.stroke(),t.setLineDash&&t.setLineDash([])},drawArrowheads:function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;i||this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),i||(t.hasClass("horizontal")?this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,-Math.PI/2,n):t.hasClass("vertical")?this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,0,n):this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n))},drawArrowhead:function(e,t,n,r,i,o,a){if(!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(o)||null==o)){var s=t.pstyle(n+"-arrow-shape").value;if("none"!==s){var l="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",c=t.pstyle(n+"-arrow-fill").value,u=t.pstyle("width").pfValue,d=t.pstyle("opacity").value;void 0===a&&(a=d);var p=e.globalCompositeOperation;1===a&&"hollow"!==c||(e.globalCompositeOperation="destination-out",this.fillStyle(e,255,255,255,1),this.strokeStyle(e,255,255,255,1),this.drawArrowShape(t,n,e,l,u,s,r,i,o),e.globalCompositeOperation=p);var f=t.pstyle(n+"-arrow-color").value;this.fillStyle(e,f[0],f[1],f[2],a),this.strokeStyle(e,f[0],f[1],f[2],a),this.drawArrowShape(t,n,e,c,u,s,r,i,o)}}},drawArrowShape:function(e,t,n,r,i,o,a,s,l){var c=this.usePaths(),u=e._private.rscratch,d=!1,p=void 0,f=n,h={x:a,y:s},g=e.pstyle("arrow-scale").value,m=this.getArrowWidth(i,g),v=this.arrowShapes[o];if(c){var b=m+"$"+o+"$"+l+"$"+a+"$"+s;u.arrowPathCacheKey=u.arrowPathCacheKey||{},u.arrowPathCache=u.arrowPathCache||{},u.arrowPathCacheKey[t]===b?(p=n=u.arrowPathCache[t],d=!0):(p=n=new Path2D,u.arrowPathCacheKey[t]=b,u.arrowPathCache[t]=p)}n.beginPath&&n.beginPath(),d||v.draw(n,m,l,h,i),!v.leavePathOpen&&n.closePath&&n.closePath(),n=f,"filled"!==r&&"both"!==r||(c?n.fill(p):n.fill()),"hollow"!==r&&"both"!==r||(n.lineWidth=v.matchEdgeWidth?i:1,n.lineJoin="miter",c?n.stroke(p):n.stroke())}};e.exports=r},function(e,t,n){"use strict";var r={safeDrawImage:function(e,t,n,r,i,o,a,s,l,c){i<=0||o<=0||l<=0||c<=0||e.drawImage(t,n,r,i,o,a,s,l,c)},drawInscribedImage:function(e,t,n,r,i){var o=this,a=n.position(),s=a.x,l=a.y,c=n.cy().style(),u=c.getIndexedStyle.bind(c),d=u(n,"background-fit","value",r),p=u(n,"background-repeat","value",r),f=n.width(),h=n.height(),g=2*n.padding(),m=f+("inner"===u(n,"background-width-relative-to","value",r)?0:g),v=h+("inner"===u(n,"background-height-relative-to","value",r)?0:g),b=n._private.rscratch,y="node"===n.pstyle("background-clip").value,x=u(n,"background-image-opacity","value",r)*i,w=t.width||t.cachedW,k=t.height||t.cachedH;null!=w&&null!=k||(document.body.appendChild(t),w=t.cachedW=t.width||t.offsetWidth,k=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var A=w,E=k;if("auto"!==u(n,"background-width","value",r)&&(A="%"===u(n,"background-width","units",r)?u(n,"background-width","pfValue",r)*m:u(n,"background-width","pfValue",r)),"auto"!==u(n,"background-height","value",r)&&(E="%"===u(n,"background-height","units",r)?u(n,"background-height","pfValue",r)*v:u(n,"background-height","pfValue",r)),0!==A&&0!==E){if("contain"===d)A*=S=Math.min(m/A,v/E),E*=S;else if("cover"===d){var S;A*=S=Math.max(m/A,v/E),E*=S}var $=s-m/2;"%"===u(n,"background-position-x","units",r)?$+=(m-A)*u(n,"background-position-x","pfValue",r):$+=u(n,"background-position-x","pfValue",r);var C=l-v/2;"%"===u(n,"background-position-y","units",r)?C+=(v-E)*u(n,"background-position-y","pfValue",r):C+=u(n,"background-position-y","pfValue",r),b.pathCache&&($-=s,C-=l,s=0,l=0);var _=e.globalAlpha;if(e.globalAlpha=x,"no-repeat"===p)y&&(e.save(),b.pathCache?e.clip(b.pathCache):(o.nodeShapes[o.getNodeShape(n)].draw(e,s,l,m,v),e.clip())),o.safeDrawImage(e,t,0,0,w,k,$,C,A,E),y&&e.restore();else{var O=e.createPattern(t,p);e.fillStyle=O,o.nodeShapes[o.getNodeShape(n)].draw(e,s,l,m,v),e.translate($,C),e.fill(),e.translate(-$,-C)}e.globalAlpha=_}}};e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(2),o={eleTextBiggerThanMin:function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),o=Math.ceil(i.log2(n*r));t=Math.pow(2,o)}return!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)},drawElementText:function(e,t,n){var r=this;if(void 0===n){if(!r.eleTextBiggerThanMin(t))return}else if(!n)return;if(t.isNode()){if(!(o=t.pstyle("label"))||!o.value)return;var i=t.pstyle("text-halign").strValue;switch(t.pstyle("text-valign").strValue,i){case"left":e.textAlign="right";break;case"right":e.textAlign="left";break;default:e.textAlign="center"}e.textBaseline="bottom"}else{var o=t.pstyle("label"),a=t.pstyle("source-label"),s=t.pstyle("target-label");if(!(o&&o.value||a&&a.value||s&&s.value))return;e.textAlign="center",e.textBaseline="bottom"}r.drawText(e,t),t.isEdge()&&(r.drawText(e,t,"source"),r.drawText(e,t,"target"))}};o.drawNodeText=o.drawEdgeText=o.drawElementText,o.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},o.setupTextStyle=function(e,t){var n=t.effectiveOpacity(),r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",o=t.pstyle("font-family").strValue,a=t.pstyle("font-weight").strValue,s=t.pstyle("text-opacity").value*t.pstyle("opacity").value*n,l=t.pstyle("text-outline-opacity").value*s,c=t.pstyle("color").value,u=t.pstyle("text-outline-color").value,d=t._private.fontKey,p=this.getFontCache(e);p.key!==d&&(e.font=r+" "+a+" "+i+" "+o,p.key=d),e.lineJoin="round",this.fillStyle(e,c[0],c[1],c[2],s),this.strokeStyle(e,u[0],u[1],u[2],l)},o.drawText=function(e,t,n){var i=t._private.rscratch,o=t.effectiveOpacity();if(0!==o&&0!==t.pstyle("text-opacity").value){var a,s,l,c,u,d,p=r.getPrefixedProperty(i,"labelX",n),f=r.getPrefixedProperty(i,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(p)&&!isNaN(f)){this.setupTextStyle(e,t);var g=n?n+"-":"",m=r.getPrefixedProperty(i,"labelWidth",n),v=r.getPrefixedProperty(i,"labelHeight",n),b=r.getPrefixedProperty(i,"labelAngle",n),y=t.pstyle(g+"text-margin-x").pfValue,x=t.pstyle(g+"text-margin-y").pfValue,w=t.isEdge(),k=(t.isNode(),t.pstyle("text-halign").value),A=t.pstyle("text-valign").value;w&&(k="center",A="center"),p+=y,f+=x;var E,S=t.pstyle("text-rotation");if(0!==(E="autorotate"===S.strValue?w?b:0:"none"===S.strValue?0:S.pfValue)){var $=p,C=f;e.translate($,C),e.rotate(E),p=0,f=0}switch(A){case"top":break;case"center":f+=v/2;break;case"bottom":f+=v}var _=t.pstyle("text-background-opacity").value,O=t.pstyle("text-border-opacity").value,T=t.pstyle("text-border-width").pfValue,j=t.pstyle("text-background-padding").pfValue;if(_>0||T>0&&O>0){var P=p-j;switch(k){case"left":P-=m;break;case"center":P-=m/2}var D=f-v-j,R=m+2*j,I=v+2*j;if(_>0){var N=e.fillStyle,M=t.pstyle("text-background-color").value;e.fillStyle="rgba("+M[0]+","+M[1]+","+M[2]+","+_*o+")","roundrectangle"==t.pstyle("text-background-shape").strValue?(s=P,l=D,c=R,u=I,d=(d=2)||5,(a=e).beginPath(),a.moveTo(s+d,l),a.lineTo(s+c-d,l),a.quadraticCurveTo(s+c,l,s+c,l+d),a.lineTo(s+c,l+u-d),a.quadraticCurveTo(s+c,l+u,s+c-d,l+u),a.lineTo(s+d,l+u),a.quadraticCurveTo(s,l+u,s,l+u-d),a.lineTo(s,l+d),a.quadraticCurveTo(s,l,s+d,l),a.closePath(),a.fill()):e.fillRect(P,D,R,I),e.fillStyle=N}if(T>0&&O>0){var z=e.strokeStyle,L=e.lineWidth,B=t.pstyle("text-border-color").value,F=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+B[0]+","+B[1]+","+B[2]+","+O*o+")",e.lineWidth=T,e.setLineDash)switch(F){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=T/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(e.strokeRect(P,D,R,I),"double"===F){var q=T/2;e.strokeRect(P+q,D+q,R-2*q,I-2*q)}e.setLineDash&&e.setLineDash([]),e.lineWidth=L,e.strokeStyle=z}}var V=2*t.pstyle("text-outline-width").pfValue;if(V>0&&(e.lineWidth=V),"wrap"===t.pstyle("text-wrap").value){var U=r.getPrefixedProperty(i,"labelWrapCachedLines",n),H=v/U.length;switch(A){case"top":f-=(U.length-1)*H;break;case"center":case"bottom":f-=(U.length-1)*H}for(var G=0;G<U.length;G++)V>0&&e.strokeText(U[G],p,f),e.fillText(U[G],p,f),f+=H}else V>0&&e.strokeText(h,p,f),e.fillText(h,p,f);0!==E&&(e.rotate(-E),e.translate(-$,-C))}}},e.exports=o},function(e,t,n){"use strict";var r=n(0),i={drawNode:function(e,t,n,i){var o,a,s=this,l=t._private,c=l.rscratch,u=t.position();if(r.number(u.x)&&r.number(u.y)&&t.visible()){var d=t.effectiveOpacity(),p=s.usePaths(),f=void 0,h=!1,g=t.padding();o=t.width()+2*g,a=t.height()+2*g;var m=void 0;n&&(m=n,e.translate(-m.x1,-m.y1));for(var v=t.pstyle("background-image").value,b=new Array(v.length),y=new Array(v.length),x=0,w=0;w<v.length;w++){var k=v[w];if(b[w]=null!=k&&"none"!==k){var A=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",w);x++,y[w]=s.getCachedImage(k,A,(function(){t.emitAndNotify("background")}))}}var E=t.pstyle("background-blacken").value,S=t.pstyle("border-width").pfValue,$=t.pstyle("background-color").value,C=t.pstyle("background-opacity").value*d,_=t.pstyle("border-color").value,O=t.pstyle("border-style").value,T=t.pstyle("border-opacity").value*d;e.lineJoin="miter";var j=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C;s.fillStyle(e,$[0],$[1],$[2],t)},P=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T;s.strokeStyle(e,_[0],_[1],_[2],t)},D=t.pstyle("shape").strValue,R=t.pstyle("shape-polygon-points").pfValue;if(p){var I=D+"$"+o+"$"+a+("polygon"===D?"$"+R.join("$"):"");e.translate(u.x,u.y),c.pathCacheKey===I?(f=c.pathCache,h=!0):(f=new Path2D,c.pathCacheKey=I,c.pathCache=f)}var N,M,z,L=function(){if(!h){var n=u;p&&(n={x:0,y:0}),s.nodeShapes[s.getNodeShape(t)].draw(f||e,n.x,n.y,o,a)}p?e.fill(f):e.fill()},B=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d,r=l.backgrounding,i=0,o=0;o<y.length;o++)b[o]&&y[o].complete&&!y[o].error&&(i++,s.drawInscribedImage(e,y[o],t,o,n));l.backgrounding=!(i===x),r!==l.backgrounding&&t.updateStyle(!1)},F=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d;s.hasPie(t)&&(s.drawPie(e,t,r),n&&(p||s.nodeShapes[s.getNodeShape(t)].draw(e,u.x,u.y,o,a)))},q=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d,n=(E>0?E:-E)*t,r=E>0?0:255;0!==E&&(s.fillStyle(e,r,r,r,n),p?e.fill(f):e.fill())},V=function(){if(S>0){if(e.lineWidth=S,e.lineCap="butt",e.setLineDash)switch(O){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}if(p?e.stroke(f):e.stroke(),"double"===O){e.lineWidth=S/3;var t=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",p?e.stroke(f):e.stroke(),e.globalCompositeOperation=t}e.setLineDash&&e.setLineDash([])}};if("yes"===t.pstyle("ghost").value){var U=t.pstyle("ghost-offset-x").pfValue,H=t.pstyle("ghost-offset-y").pfValue,G=t.pstyle("ghost-opacity").value,W=G*d;e.translate(U,H),j(G*C),L(),B(W),F(0!==E||0!==S),q(W),P(G*T),V(),e.translate(-U,-H)}j(),L(),B(),F(0!==E||0!==S),q(),P(),V(),p&&e.translate(-u.x,-u.y),s.drawElementText(e,t,i),N=t.pstyle("overlay-padding").pfValue,M=t.pstyle("overlay-opacity").value,z=t.pstyle("overlay-color").value,M>0&&(s.fillStyle(e,z[0],z[1],z[2],M),s.nodeShapes.roundrectangle.draw(e,u.x,u.y,o+2*N,a+2*N),e.fill()),n&&e.translate(m.x1,m.y1)}},hasPie:function(e){return(e=e[0])._private.hasPie},drawPie:function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),o=t.pstyle("pie-size"),a=r.x,s=r.y,l=t.width(),c=t.height(),u=Math.min(l,c)/2,d=0;this.usePaths()&&(a=0,s=0),"%"===o.units?u*=o.pfValue:void 0!==o.pfValue&&(u=o.pfValue/2);for(var p=1;p<=i.pieBackgroundN;p++){var f=t.pstyle("pie-"+p+"-background-size").value,h=t.pstyle("pie-"+p+"-background-color").value,g=t.pstyle("pie-"+p+"-background-opacity").value*n,m=f/100;m+d>1&&(m=1-d);var v=1.5*Math.PI+2*Math.PI*d,b=v+2*Math.PI*m;0===f||d>=1||d+m>1||(e.beginPath(),e.moveTo(a,s),e.arc(a,s,u,v,b),e.closePath(),this.fillStyle(e,h[0],h[1],h[2],g),e.fill(),d+=m)}}};e.exports=i},function(e,t,n){"use strict";var r={},i=n(1);r.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t},r.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},r.fillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},r.strokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},r.matchCanvasSize=function(e){var t=this,n=t.data,r=t.findContainerClientCoords(),i=r[2],o=r[3],a=t.getPixelRatio(),s=t.motionBlurPxRatio;e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE]&&e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG]||(a=s);var l,c=i*a,u=o*a;if(c!==t.canvasWidth||u!==t.canvasHeight){t.fontCaches=null;var d=n.canvasContainer;d.style.width=i+"px",d.style.height=o+"px";for(var p=0;p<t.CANVAS_LAYERS;p++)(l=n.canvases[p]).width=c,l.height=u,l.style.width=i+"px",l.style.height=o+"px";for(p=0;p<t.BUFFER_COUNT;p++)(l=n.bufferCanvases[p]).width=c,l.height=u,l.style.width=i+"px",l.style.height=o+"px";t.textureMult=1,a<=1&&(l=n.bufferCanvases[t.TEXTURE_BUFFER],t.textureMult=2,l.width=c*t.textureMult,l.height=u*t.textureMult),t.canvasWidth=c,t.canvasHeight=u}},r.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},r.render=function(e){var t=(e=e||i.staticEmptyObject()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,o=e.forcedZoom,a=e.forcedPan,s=this,l=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,c=s.cy,u=s.data,d=u.canvasNeedsRedraw,p=s.textureOnViewport&&!t&&(s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming),f=void 0!==e.motionBlur?e.motionBlur:s.motionBlur,h=s.motionBlurPxRatio,g=c.hasCompoundNodes(),m=s.hoverData.draggingEles,v=!(!s.hoverData.selecting&&!s.touchData.selecting),b=f=f&&!t&&s.motionBlurEnabled&&!v;t||(s.prevPxRatio!==l&&(s.invalidateContainerClientCoordsCache(),s.matchCanvasSize(s.container),s.redrawHint("eles",!0),s.redrawHint("drag",!0)),s.prevPxRatio=l),!t&&s.motionBlurTimeout&&clearTimeout(s.motionBlurTimeout),f&&(null==s.mbFrames&&(s.mbFrames=0),s.mbFrames++,s.mbFrames<3&&(b=!1),s.mbFrames>s.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!p&&(d[s.NODE]=!0,d[s.SELECT_BOX]=!0);var y=c.style()._private.coreStyle,x=c.zoom(),w=void 0!==o?o:x,k=c.pan(),A={x:k.x,y:k.y},E={zoom:x,pan:{x:k.x,y:k.y}},S=s.prevViewport;void 0===S||E.zoom!==S.zoom||E.pan.x!==S.pan.x||E.pan.y!==S.pan.y||m&&!g||(s.motionBlurPxRatio=1),a&&(A=a),w*=l,A.x*=l,A.y*=l;var $=s.getCachedZSortedEles();function C(e,t,n,r,i){var o=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",s.fillStyle(e,255,255,255,s.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=o}function _(e,r){var i,l,c,d;s.clearingMotionBlur||e!==u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]?(i=A,l=w,c=s.canvasWidth,d=s.canvasHeight):(i={x:k.x*h,y:k.y*h},l=x*h,c=s.canvasWidth*h,d=s.canvasHeight*h),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?C(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(i.x,i.y),e.scale(l,l)),a&&e.translate(a.x,a.y),o&&e.scale(o,o)}if(p||(s.textureDrawLastFrame=!1),p){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=c.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var O=s.data.bufferContexts[s.TEXTURE_BUFFER];O.setTransform(1,0,0,1,0,0),O.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:O,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult}),(E=s.textureCache.viewport={zoom:c.zoom(),pan:c.pan(),width:s.canvasWidth,height:s.canvasHeight}).mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}d[s.DRAG]=!1,d[s.NODE]=!1;var T=u.contexts[s.NODE],j=s.textureCache.texture;E=s.textureCache.viewport,s.textureCache.bb,T.setTransform(1,0,0,1,0,0),f?C(T,0,0,E.width,E.height):T.clearRect(0,0,E.width,E.height);var P=y["outside-texture-bg-color"].value,D=y["outside-texture-bg-opacity"].value;s.fillStyle(T,P[0],P[1],P[2],D),T.fillRect(0,0,E.width,E.height),x=c.zoom(),_(T,!1),T.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/l,E.height/E.zoom/l),T.drawImage(j,E.mpan.x,E.mpan.y,E.width/E.zoom/l,E.height/E.zoom/l)}else s.textureOnViewport&&!t&&(s.textureCache=null);var R=c.extent(),I=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles,N=s.hideEdgesOnViewport&&I,M=[];if(M[s.NODE]=!d[s.NODE]&&f&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,M[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),M[s.DRAG]=!d[s.DRAG]&&f&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,M[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),d[s.NODE]||n||r||M[s.NODE]){var z=f&&!M[s.NODE]&&1!==h;_(T=t||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),f&&!z?"motionBlur":void 0),N?s.drawCachedNodes(T,$.nondrag,l,R):s.drawLayeredElements(T,$.nondrag,l,R),s.debug&&s.drawDebugPoints(T,$.nondrag),n||f||(d[s.NODE]=!1)}if(!r&&(d[s.DRAG]||n||M[s.DRAG])&&(z=f&&!M[s.DRAG]&&1!==h,_(T=t||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]),f&&!z?"motionBlur":void 0),N?s.drawCachedNodes(T,$.drag,l,R):s.drawCachedElements(T,$.drag,l,R),s.debug&&s.drawDebugPoints(T,$.drag),n||f||(d[s.DRAG]=!1)),s.showFps||!r&&d[s.SELECT_BOX]&&!n){if(_(T=t||u.contexts[s.SELECT_BOX]),1==s.selection[4]&&(s.hoverData.selecting||s.touchData.selecting)){x=s.cy.zoom();var L=y["selection-box-border-width"].value/x;T.lineWidth=L,T.fillStyle="rgba("+y["selection-box-color"].value[0]+","+y["selection-box-color"].value[1]+","+y["selection-box-color"].value[2]+","+y["selection-box-opacity"].value+")",T.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),L>0&&(T.strokeStyle="rgba("+y["selection-box-border-color"].value[0]+","+y["selection-box-border-color"].value[1]+","+y["selection-box-border-color"].value[2]+","+y["selection-box-opacity"].value+")",T.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){x=s.cy.zoom();var B=u.bgActivePosistion;T.fillStyle="rgba("+y["active-bg-color"].value[0]+","+y["active-bg-color"].value[1]+","+y["active-bg-color"].value[2]+","+y["active-bg-opacity"].value+")",T.beginPath(),T.arc(B.x,B.y,y["active-bg-size"].pfValue/x,0,2*Math.PI),T.fill()}var F=s.lastRedrawTime;if(s.showFps&&F){F=Math.round(F);var q=Math.round(1e3/F);T.setTransform(1,0,0,1,0,0),T.fillStyle="rgba(255, 0, 0, 0.75)",T.strokeStyle="rgba(255, 0, 0, 0.75)",T.lineWidth=1,T.fillText("1 frame = "+F+" ms = "+q+" fps",0,20),T.strokeRect(0,30,250,20),T.fillRect(0,30,250*Math.min(q/60,1),20)}n||(d[s.SELECT_BOX]=!1)}if(f&&1!==h){var V=u.contexts[s.NODE],U=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],H=u.contexts[s.DRAG],G=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],W=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!b?e.clearRect(0,0,s.canvasWidth,s.canvasHeight):C(e,0,0,s.canvasWidth,s.canvasHeight);var r=h;e.drawImage(t,0,0,s.canvasWidth*r,s.canvasHeight*r,0,0,s.canvasWidth,s.canvasHeight)};(d[s.NODE]||M[s.NODE])&&(W(V,U,M[s.NODE]),d[s.NODE]=!1),(d[s.DRAG]||M[s.DRAG])&&(W(H,G,M[s.DRAG]),d[s.DRAG]=!1)}s.prevViewport=E,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),f&&(s.motionBlurTimeout=setTimeout((function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!p,s.mbFrames=0,d[s.NODE]=!0,d[s.DRAG]=!0,s.redraw()}),100)),t||c.emit("render")},e.exports=r},function(e,t,n){"use strict";for(var r=n(2),i={drawPolygonPath:function(e,t,n,r,i,o){var a=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+a*o[0],n+s*o[1]);for(var l=1;l<o.length/2;l++)e.lineTo(t+a*o[2*l],n+s*o[2*l+1]);e.closePath()},drawRoundRectanglePath:function(e,t,n,i,o){var a=i/2,s=o/2,l=r.getRoundRectangleRadius(i,o);e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.arcTo(t+a,n-s,t+a,n,l),e.arcTo(t+a,n+s,t,n+s,l),e.arcTo(t-a,n+s,t-a,n,l),e.arcTo(t-a,n-s,t,n-s,l),e.lineTo(t,n-s),e.closePath()},drawBottomRoundRectanglePath:function(e,t,n,i,o){var a=i/2,s=o/2,l=r.getRoundRectangleRadius(i,o);e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.lineTo(t+a,n-s),e.lineTo(t+a,n),e.arcTo(t+a,n+s,t,n+s,l),e.arcTo(t-a,n+s,t-a,n,l),e.lineTo(t-a,n-s),e.lineTo(t,n-s),e.closePath()},drawCutRectanglePath:function(e,t,n,i,o){var a=i/2,s=o/2,l=r.getCutRectangleCornerLength();e.beginPath&&e.beginPath(),e.moveTo(t-a+l,n-s),e.lineTo(t+a-l,n-s),e.lineTo(t+a,n-s+l),e.lineTo(t+a,n+s-l),e.lineTo(t+a-l,n+s),e.lineTo(t-a+l,n+s),e.lineTo(t-a,n+s-l),e.lineTo(t-a,n-s+l),e.closePath()},drawBarrelPath:function(e,t,n,i,o){var a=i/2,s=o/2,l=t-a,c=t+a,u=n-s,d=n+s,p=r.getBarrelCurveConstants(i,o),f=p.widthOffset,h=p.heightOffset,g=p.ctrlPtOffsetPct*f;e.beginPath&&e.beginPath(),e.moveTo(l,u+h),e.lineTo(l,d-h),e.quadraticCurveTo(l+g,d,l+f,d),e.lineTo(c-f,d),e.quadraticCurveTo(c-g,d,c,d-h),e.lineTo(c,u+h),e.quadraticCurveTo(c-g,u,c-f,u),e.lineTo(l+f,u),e.quadraticCurveTo(l+g,u,l,u+h),e.closePath()}},o=Math.sin(0),a=Math.cos(0),s={},l={},c=Math.PI/40,u=0*Math.PI;u<2*Math.PI;u+=c)s[u]=Math.sin(u),l[u]=Math.cos(u);i.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else for(var u,d,p=r/2,f=i/2,h=0*Math.PI;h<2*Math.PI;h+=c)u=t-p*s[h]*o+p*l[h]*a,d=n+f*l[h]*o+f*s[h]*a,0===h?e.moveTo(u,d):e.lineTo(u,d);e.closePath()},e.exports=i},function(e,t,n){"use strict";var r=n(0),i={};function o(e){var t=e.indexOf(",");return e.substr(t+1)}function a(e,t,n){var r=t.toDataURL(n,e.quality);switch(e.output){case"blob":return function(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),o=0;o<n.length;o++)i[o]=n.charCodeAt(o);return new Blob([r],{type:t})}(o(r),n);case"base64":return o(r);case"base64uri":default:return r}}i.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},i.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),i=this.findContainerClientCoords(),o=e.full?Math.ceil(n.w):i[2],a=e.full?Math.ceil(n.h):i[3],s=r.number(e.maxWidth)||r.number(e.maxHeight),l=this.getPixelRatio(),c=1;if(void 0!==e.scale)o*=e.scale,a*=e.scale,c=e.scale;else if(s){var u=1/0,d=1/0;r.number(e.maxWidth)&&(u=c*e.maxWidth/o),r.number(e.maxHeight)&&(d=c*e.maxHeight/a),o*=c=Math.min(u,d),a*=c}s||(o*=l,a*=l,c*=l);var p=document.createElement("canvas");p.width=o,p.height=a,p.style.width=o+"px",p.style.height=a+"px";var f=p.getContext("2d");if(o>0&&a>0){f.clearRect(0,0,o,a),f.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(e.full)f.translate(-n.x1*c,-n.y1*c),f.scale(c,c),this.drawElements(f,h),f.scale(1/c,1/c),f.translate(n.x1*c,n.y1*c);else{var g=t.pan(),m={x:g.x*c,y:g.y*c};c*=t.zoom(),f.translate(m.x,m.y),f.scale(c,c),this.drawElements(f,h),f.scale(1/c,1/c),f.translate(-m.x,-m.y)}e.bg&&(f.globalCompositeOperation="destination-over",f.fillStyle=e.bg,f.rect(0,0,o,a),f.fill())}return p},i.png=function(e){return a(e,this.bufferCanvasImage(e),"image/png")},i.jpg=function(e){return a(e,this.bufferCanvasImage(e),"image/jpeg")},e.exports=i},function(e,t,n){"use strict";var r={nodeShapeImpl:function(e,t,n,r,i,o,a){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,o);case"polygon":return this.drawPolygonPath(t,n,r,i,o,a);case"roundrectangle":return this.drawRoundRectanglePath(t,n,r,i,o);case"cutrectangle":return this.drawCutRectanglePath(t,n,r,i,o);case"bottomroundrectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,o);case"barrel":return this.drawBarrelPath(t,n,r,i,o)}}};e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(18),a=function e(){if(!(this instanceof e))return new e;this.length=0},s=a.prototype;s.instanceString=function(){return"stylesheet"},s.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},s.css=function(e,t){var n=this.length-1;if(r.string(e))this[n].properties.push({name:e,value:t});else if(r.plainObject(e))for(var a=e,s=0;s<o.properties.length;s++){var l=o.properties[s],c=a[l.name];if(void 0===c&&(c=a[i.dash2camel(l.name)]),void 0!==c){var u=l.name,d=c;this[n].properties.push({name:u,value:d})}}return this},s.style=s.css,s.generateStyle=function(e){var t=new o(e);return this.appendToStyle(t)},s.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var o=0;o<i.length;o++){var a=i[o];e.css(a.name,a.value)}}return e},e.exports=a},function(e,t,n){"use strict";e.exports="snapshot-2fd4aa6cc2-1531011493999"}])},e.exports=r(n(241),n(242))}).call(this,n(238).setImmediate)},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(239),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(35))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,i,o,a,s,l=1,c={},u=!1,d=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){h(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){o.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(i=d.documentElement,r=function(e){var t=d.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):r=function(e){setTimeout(h,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),p.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var i={callback:e,args:t};return c[l]=i,r(l),l++},p.clearImmediate=f}function f(e){delete c[e]}function h(e){if(u)setTimeout(h,0,e);else{var t=c[e];if(t){u=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{f(e),u=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(35),n(240))},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var l,c=[],u=!1,d=-1;function p(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&f())}function f(){if(!u){var e=s(p);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||u||s(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(e,t,n){(function(t){var n=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,o=/^0o[0-7]+$/i,a=parseInt,s="object"==typeof t&&t&&t.Object===Object&&t,l="object"==typeof self&&self&&self.Object===Object&&self,c=s||l||Function("return this")(),u=Object.prototype.toString,d=Math.max,p=Math.min,f=function(){return c.Date.now()};function h(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function g(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==u.call(e)}(e))return NaN;if(h(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var s=i.test(e);return s||o.test(e)?a(e.slice(2),s?2:8):r.test(e)?NaN:+e}e.exports=function(e,t,n){var r,i,o,a,s,l,c=0,u=!1,m=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function b(t){var n=r,o=i;return r=i=void 0,c=t,a=e.apply(o,n)}function y(e){return c=e,s=setTimeout(w,t),u?b(e):a}function x(e){var n=e-l;return void 0===l||n>=t||n<0||m&&e-c>=o}function w(){var e=f();if(x(e))return k(e);s=setTimeout(w,function(e){var n=t-(e-l);return m?p(n,o-(e-c)):n}(e))}function k(e){return s=void 0,v&&r?b(e):(r=i=void 0,a)}function A(){var e=f(),n=x(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return y(l);if(m)return s=setTimeout(w,t),b(l)}return void 0===s&&(s=setTimeout(w,t)),a}return t=g(t)||0,h(n)&&(u=!!n.leading,o=(m="maxWait"in n)?d(g(n.maxWait)||0,t):o,v="trailing"in n?!!n.trailing:v),A.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=i=s=void 0},A.flush=function(){return void 0===s?a:k(f())},A}}).call(this,n(35))},function(e,t,n){e.exports=n(243)},function(e,t,n){var r,i,o;(function(){var n,a,s,l,c,u,d,p,f,h,g,m,v,b,y;s=Math.floor,h=Math.min,a=function(e,t){return e<t?-1:e>t?1:0},f=function(e,t,n,r,i){var o;if(null==n&&(n=0),null==i&&(i=a),n<0)throw new Error("lo must be non-negative");for(null==r&&(r=e.length);n<r;)i(t,e[o=s((n+r)/2)])<0?r=o:n=o+1;return[].splice.apply(e,[n,n-n].concat(t)),t},u=function(e,t,n){return null==n&&(n=a),e.push(t),b(e,0,e.length-1,n)},c=function(e,t){var n,r;return null==t&&(t=a),n=e.pop(),e.length?(r=e[0],e[0]=n,y(e,0,t)):r=n,r},p=function(e,t,n){var r;return null==n&&(n=a),r=e[0],e[0]=t,y(e,0,n),r},d=function(e,t,n){var r;return null==n&&(n=a),e.length&&n(e[0],t)<0&&(t=(r=[e[0],t])[0],e[0]=r[1],y(e,0,n)),t},l=function(e,t){var n,r,i,o,l,c;for(null==t&&(t=a),l=[],r=0,i=(o=function(){c=[];for(var t=0,n=s(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)c.push(t);return c}.apply(this).reverse()).length;r<i;r++)n=o[r],l.push(y(e,n,t));return l},v=function(e,t,n){var r;if(null==n&&(n=a),-1!==(r=e.indexOf(t)))return b(e,0,r,n),y(e,r,n)},g=function(e,t,n){var r,i,o,s,c;if(null==n&&(n=a),!(i=e.slice(0,t)).length)return i;for(l(i,n),o=0,s=(c=e.slice(t)).length;o<s;o++)r=c[o],d(i,r,n);return i.sort(n).reverse()},m=function(e,t,n){var r,i,o,s,u,d,p,g,m;if(null==n&&(n=a),10*t<=e.length){if(!(o=e.slice(0,t).sort(n)).length)return o;for(i=o[o.length-1],s=0,d=(p=e.slice(t)).length;s<d;s++)n(r=p[s],i)<0&&(f(o,r,0,null,n),o.pop(),i=o[o.length-1]);return o}for(l(e,n),m=[],u=0,g=h(t,e.length);0<=g?u<g:u>g;0<=g?++u:--u)m.push(c(e,n));return m},b=function(e,t,n,r){var i,o,s;for(null==r&&(r=a),i=e[n];n>t&&r(i,o=e[s=n-1>>1])<0;)e[n]=o,n=s;return e[n]=i},y=function(e,t,n){var r,i,o,s,l;for(null==n&&(n=a),i=e.length,l=t,o=e[t],r=2*t+1;r<i;)(s=r+1)<i&&!(n(e[r],e[s])<0)&&(r=s),e[t]=e[r],r=2*(t=r)+1;return e[t]=o,b(e,l,t,n)},n=function(){function e(e){this.cmp=null!=e?e:a,this.nodes=[]}return e.push=u,e.pop=c,e.replace=p,e.pushpop=d,e.heapify=l,e.updateItem=v,e.nlargest=g,e.nsmallest=m,e.prototype.push=function(e){return u(this.nodes,e,this.cmp)},e.prototype.pop=function(){return c(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return-1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return p(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return d(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return l(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return v(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),i=[],void 0===(o="function"==typeof(r=function(){return n})?r.apply(t,i):r)||(e.exports=o)}).call(this)},function(e,t,n){var r;!function(){"use strict";var i="undefined"==typeof jQuery?null:jQuery,o=function(e,t){if(e){var n,r={menuItems:[],menuItemClasses:[],contextMenuClasses:[]};e("core","contextMenus",(function(e){var i=this;i.scratch("cycontextmenus")||i.scratch("cycontextmenus",{});var o,a=l("options"),s=l("cxtMenu");function l(e){return i.scratch("cycontextmenus")[e]}function c(e,t){i.scratch("cycontextmenus")[e]=t}function u(e){for(var t="",n=0;n<e.length;n++){t+=e[n],n!==e.length-1&&(t+=" ")}return t}function d(e){e.css("display","block")}function p(e){e.css("display","none")}function f(e,n,r){function o(n){c("currentCyEvent",n),function(e){var n=l("cxtMenuPosition"),r=e.position||e.cyPosition;if(n!=r){s.children().css("display","none"),c("anyVisibleChild",!1),c("cxtMenuPosition",r);var o=t(i.container()).offset(),a=e.renderedPosition||e.cyRenderedPosition,u=o.left+a.x,d=o.top+a.y;s.css("left",u),s.css("top",d)}}(n),e.data("show")&&(s.is(":visible")||d(s),c("anyVisibleChild",!0),d(e)),!l("anyVisibleChild")&&s.is(":visible")&&p(s)}var a,u;r&&i.on("cxttap",u=function(e){(e.target||e.cyTarget)==i&&o(e)}),n&&i.on("cxttap",n,a=function(e){o(e)}),e.data("cy-context-menus-cxtfcn",a),e.data("cy-context-menus-cxtcorefcn",u)}function h(e,t,n,r){!function(e,t){var n;e.on("click",n=function(){t(l("currentCyEvent"))}),e.data("call-on-click-function",n)}(e,t),f(e,n,r)}function g(e){for(var t=0;t<e.length;t++)m(e[t])}function m(e){var t,n=b(e);t=n,s.append(t),function(e){e.click((function(){p(s),c("cxtMenuPosition",void 0)}))}(t),h(n,e.onClickFunction,e.selector,e.coreAsWell)}function v(e,n){var r,i,o=b(e);r=o,i=t("#"+n),r.insertBefore(i),h(o,e.onClickFunction,e.selector,e.coreAsWell)}function b(e){var n,r,i,o=(n=a.menuItemClasses,r=e.hasTrailingDivider,i=u(n),i+=" cy-context-menus-cxt-menuitem",r&&(i+=" cy-context-menus-divider"),i),s='<button id="'+e.id+'" class="'+o+'"';e.tooltipText&&(s+=' title="'+e.tooltipText+'"'),e.disabled&&(s+=" disabled"),e.image?s+='><img src="'+e.image.src+'" width="'+e.image.width+'px"; height="'+e.image.height+'px"; style="position:absolute; top: '+e.image.y+"px; left: "+e.image.x+'px;">'+e.content+"</button>":s+=">"+e.content+"</button>";var l=t(s);return l.data("selector",e.selector),l.data("on-click-function",e.onClickFunction),l.data("show",void 0===e.show||e.show),l}function y(){var e;l("active")&&(e=s.children(),t(e).each((function(){x(t(this))})),i.off("tapstart",n),s.remove(),c(s=void 0,void 0),c("active",!1),c("anyVisibleChild",!1))}function x(e){var n="string"==typeof e?t("#"+e):e,r=n.data("cy-context-menus-cxtfcn"),o=n.data("selector"),a=n.data("call-on-click-function"),s=n.data("cy-context-menus-cxtcorefcn");r&&i.off("cxttap",o,r),s&&i.off("cxttap",s),a&&n.off("click",a),n.remove()}"get"!==e&&(c("options",a=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}(r,e)),l("active")&&y(),c("active",!0),o=u(a.contextMenuClasses),(s=t("<div class="+o+"></div>")).addClass("cy-context-menus-cxt-menu"),c("cxtMenu",s),t("body").append(s),s=s,g(a.menuItems),i.on("tapstart",n=function(){p(s),c("cxtMenuPosition",void 0),c("currentCyEvent",void 0)}),t(".cy-context-menus-cxt-menu").contextmenu((function(){return!1})));return function(e){return{isActive:function(){return l("active")},appendMenuItem:function(t){return m(t),e},appendMenuItems:function(t){return g(t),e},removeMenuItem:function(t){return x(t),e},setTrailingDivider:function(n,r){return function(e,n){var r=t("#"+e);n?r.addClass("cy-context-menus-divider"):r.removeClass("cy-context-menus-divider")}(n,r),e},insertBeforeMenuItem:function(t,n){return v(t,n),e},moveBeforeOtherMenuItem:function(n,r){return function(e,n){if(e!==n){var r=t("#"+e).detach(),i=t("#"+n);r.insertBefore(i)}}(n,r),e},disableMenuItem:function(n){return t("#"+n).attr("disabled",!0),e},enableMenuItem:function(n){return t("#"+n).attr("disabled",!1),e},hideMenuItem:function(n){return t("#"+n).data("show",!1),p(t("#"+n)),e},showMenuItem:function(n){return t("#"+n).data("show",!0),d(t("#"+n)),e},destroy:function(){return y(),e}}}(this)}))}};e.exports&&(e.exports=o),void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r),"undefined"!=typeof cytoscape&&i&&o(cytoscape,i)}()},function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){var r=n(1),i=function(e){e&&e("layout","dagre",r)};"undefined"!=typeof cytoscape&&i(cytoscape),e.exports=i},function(e,t,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i=n(2),o=n(3),a=n(4);function s(e){this.options=o({},i,e)}s.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,i=function(e,t){return"function"==typeof t?t.apply(e,[e]):t},o=e.boundingBox||{x1:0,y1:0,w:t.width(),h:t.height()};void 0===o.x2&&(o.x2=o.x1+o.w),void 0===o.w&&(o.w=o.x2-o.x1),void 0===o.y2&&(o.y2=o.y1+o.h),void 0===o.h&&(o.h=o.y2-o.y1);var s=new a.graphlib.Graph({multigraph:!0,compound:!0}),l={},c=function(e,t){null!=t&&(l[e]=t)};c("nodesep",e.nodeSep),c("edgesep",e.edgeSep),c("ranksep",e.rankSep),c("rankdir",e.rankDir),c("ranker",e.ranker),s.setGraph(l),s.setDefaultEdgeLabel((function(){return{}})),s.setDefaultNodeLabel((function(){return{}}));for(var u=n.nodes(),d=0;d<u.length;d++){var p=u[d],f=p.layoutDimensions(e);s.setNode(p.id(),{width:f.w,height:f.h,name:p.id()})}for(var h=0;h<u.length;h++){var g=u[h];g.isChild()&&s.setParent(g.id(),g.parent().id())}for(var m=n.edges().stdFilter((function(e){return!e.source().isParent()&&!e.target().isParent()})),v=0;v<m.length;v++){var b=m[v];s.setEdge(b.source().id(),b.target().id(),{minlen:i(b,e.minLen),weight:i(b,e.edgeWeight),name:b.id()},b.id())}a.layout(s);for(var y,x=s.nodes(),w=0;w<x.length;w++){var k=x[w],A=s.node(k);t.getElementById(k).scratch().dagre=A}return e.boundingBox?(y={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0},u.forEach((function(e){var t=e.scratch().dagre;y.x1=Math.min(y.x1,t.x),y.x2=Math.max(y.x2,t.x),y.y1=Math.min(y.y1,t.y),y.y2=Math.max(y.y2,t.y)})),y.w=y.x2-y.x1,y.h=y.y2-y.y1):y=o,u.layoutPositions(this,e,(function(t){var n=(t="object"===r(t)?t:this).scratch().dagre;return function(t){if(e.boundingBox){var n=0===y.w?0:(t.x-y.x1)/y.w,r=0===y.h?0:(t.y-y.y1)/y.h;return{x:o.x1+n*o.w,y:o.y1+r*o.h}}return t}({x:n.x,y:n.y})})),this},e.exports=s},function(e,t){var n={nodeSep:void 0,edgeSep:void 0,rankSep:void 0,rankDir:void 0,ranker:void 0,minLen:function(e){return 1},edgeWeight:function(e){return 1},fit:!0,padding:30,spacingFactor:void 0,nodeDimensionsIncludeLabels:!1,animate:!1,animateFilter:function(e,t){return!0},animationDuration:500,animationEasing:void 0,boundingBox:void 0,transform:function(e,t){return t},ready:function(){},stop:function(){}};e.exports=n},function(e,t){e.exports=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.forEach((function(t){Object.keys(t).forEach((function(n){return e[n]=t[n]}))})),e}},function(t,n){t.exports=e}])},e.exports=r(n(246))},function(e,t,n){e.exports={graphlib:n(28),layout:n(359),debug:n(420),util:{time:n(20).time,notime:n(20).notime},version:n(421)}},function(e,t,n){e.exports={Graph:n(116),version:n(348)}},function(e,t,n){var r=n(149);e.exports=function(e){return r(e,4)}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(75),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():i.call(t,n,1),--this.size,!0)}},function(e,t,n){var r=n(75);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(75);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(75);e.exports=function(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}},function(e,t,n){var r=n(74);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(74),i=n(117),o=n(118);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!i||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(64),i=n(262),o=n(23),a=n(151),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,d=c.hasOwnProperty,p=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(r(e)?p:s).test(a(e))}},function(e,t,n){var r=n(58),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r,i=n(263),o=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!o&&o in e}},function(e,t,n){var r=n(29)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var r=n(266),i=n(74),o=n(117);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},function(e,t,n){var r=n(267),i=n(268),o=n(269),a=n(270),s=n(271);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},function(e,t,n){var r=n(76);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(76),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return i.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(76),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:i.call(t,e)}},function(e,t,n){var r=n(76);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},function(e,t,n){var r=n(77);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(77);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(77);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(77);e.exports=function(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}},function(e,t,n){var r=n(65),i=n(41);e.exports=function(e,t){return e&&r(t,i(t),e)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},function(e,t,n){var r=n(47),i=n(34);e.exports=function(e){return i(e)&&"[object Arguments]"==r(e)}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var r=n(47),i=n(120),o=n(34),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!a[r(e)]}},function(e,t,n){var r=n(154)(Object.keys,Object);e.exports=r},function(e,t,n){var r=n(65),i=n(48);e.exports=function(e,t){return e&&r(t,i(t),e)}},function(e,t,n){var r=n(23),i=n(83),o=n(285),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=i(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},function(e,t,n){var r=n(65),i=n(123);e.exports=function(e,t){return r(e,i(e),t)}},function(e,t,n){var r=n(65),i=n(159);e.exports=function(e,t){return r(e,i(e),t)}},function(e,t,n){var r=n(161),i=n(159),o=n(48);e.exports=function(e){return r(e,o,i)}},function(e,t,n){var r=n(46)(n(29),"DataView");e.exports=r},function(e,t,n){var r=n(46)(n(29),"Promise");e.exports=r},function(e,t,n){var r=n(46)(n(29),"WeakMap");e.exports=r},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},function(e,t,n){var r=n(125),i=n(294),o=n(295),a=n(296),s=n(164);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return i(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return o(e);case"[object Set]":return new l;case"[object Symbol]":return a(e)}}},function(e,t,n){var r=n(125);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},function(e,t){var n=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}},function(e,t,n){var r=n(58),i=r?r.prototype:void 0,o=i?i.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},function(e,t,n){var r=n(298),i=n(82),o=n(121),a=o&&o.isMap,s=a?i(a):r;e.exports=s},function(e,t,n){var r=n(60),i=n(34);e.exports=function(e){return i(e)&&"[object Map]"==r(e)}},function(e,t,n){var r=n(300),i=n(82),o=n(121),a=o&&o.isSet,s=a?i(a):r;e.exports=s},function(e,t,n){var r=n(60),i=n(34);e.exports=function(e){return i(e)&&"[object Set]"==r(e)}},function(e,t){e.exports=function(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}},function(e,t,n){var r=n(36);e.exports=function(e,t){return function(n,i){if(null==n)return n;if(!r(n))return e(n,i);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==i(s[a],a,s););return n}}},function(e,t,n){var r=n(85);e.exports=function(e,t){var n=[];return r(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}},function(e,t,n){var r=n(305),i=n(313),o=n(176);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},function(e,t,n){var r=n(73),i=n(171);e.exports=function(e,t,n,o){var a=n.length,s=a,l=!o;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a<s;){var u=(c=n[a])[0],d=e[u],p=c[1];if(l&&c[2]){if(void 0===d&&!(u in e))return!1}else{var f=new r;if(o)var h=o(d,p,u,e,t,f);if(!(void 0===h?i(p,d,3,o,f):h))return!1}}return!0}},function(e,t,n){var r=n(73),i=n(172),o=n(310),a=n(312),s=n(60),l=n(13),c=n(59),u=n(67),d="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,f,h,g){var m=l(e),v=l(t),b=m?"[object Array]":s(e),y=v?"[object Array]":s(t),x=(b="[object Arguments]"==b?d:b)==d,w=(y="[object Arguments]"==y?d:y)==d,k=b==y;if(k&&c(e)){if(!c(t))return!1;m=!0,x=!1}if(k&&!x)return g||(g=new r),m||u(e)?i(e,t,n,f,h,g):o(e,t,b,n,f,h,g);if(!(1&n)){var A=x&&p.call(e,"__wrapped__"),E=w&&p.call(t,"__wrapped__");if(A||E){var S=A?e.value():e,$=E?t.value():t;return g||(g=new r),h(S,$,n,f,g)}}return!!k&&(g||(g=new r),a(e,t,n,f,h,g))}},function(e,t){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},function(e,t,n){var r=n(58),i=n(163),o=n(57),a=n(172),s=n(311),l=n(129),c=r?r.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,n,r,c,d,p){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var f=s;case"[object Set]":var h=1&r;if(f||(f=l),e.size!=t.size&&!h)return!1;var g=p.get(e);if(g)return g==t;r|=2,p.set(e,t);var m=a(f(e),f(t),r,c,d,p);return p.delete(e),m;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},function(e,t,n){var r=n(160),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,a,s){var l=1&n,c=r(e),u=c.length;if(u!=r(t).length&&!l)return!1;for(var d=u;d--;){var p=c[d];if(!(l?p in t:i.call(t,p)))return!1}var f=s.get(e),h=s.get(t);if(f&&h)return f==t&&h==e;var g=!0;s.set(e,t),s.set(t,e);for(var m=l;++d<u;){var v=e[p=c[d]],b=t[p];if(o)var y=l?o(b,v,p,t,e,s):o(v,b,p,e,t,s);if(!(void 0===y?v===b||a(v,b,n,o,s):y)){g=!1;break}m||(m="constructor"==p)}if(g&&!m){var x=e.constructor,w=t.constructor;x==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof x&&x instanceof x&&"function"==typeof w&&w instanceof w||(g=!1)}return s.delete(e),s.delete(t),g}},function(e,t,n){var r=n(175),i=n(41);e.exports=function(e){for(var t=i(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,r(a)]}return t}},function(e,t,n){var r=n(171),i=n(315),o=n(178),a=n(130),s=n(175),l=n(176),c=n(68);e.exports=function(e,t){return a(e)&&s(t)?l(c(e),t):function(n){var a=i(n,e);return void 0===a&&a===t?o(n,e):r(t,a,3)}}},function(e,t,n){var r=n(86);e.exports=function(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}},function(e,t,n){var r=n(317),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,n,r,i){t.push(r?i.replace(o,"$1"):n||e)})),t}));e.exports=a},function(e,t,n){var r=n(318);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},function(e,t,n){var r=n(118);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},function(e,t,n){var r=n(58),i=n(88),o=n(13),a=n(61),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,n){var r=n(180),i=n(322),o=n(130),a=n(68);e.exports=function(e){return o(e)?r(a(e)):i(e)}},function(e,t,n){var r=n(86);e.exports=function(e){return function(t){return r(t,e)}}},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e,t){return null!=e&&n.call(e,t)}},function(e,t,n){var r=n(122),i=n(60),o=n(66),a=n(13),s=n(36),l=n(59),c=n(83),u=n(67),d=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||u(e)||o(e)))return!e.length;var t=i(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(d.call(e,n))return!1;return!0}},function(e,t){e.exports=function(e,t,n,r){var i=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}},function(e,t){e.exports=function(e,t,n,r,i){return i(e,(function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)})),n}},function(e,t,n){var r=n(122),i=n(60),o=n(36),a=n(328),s=n(329);e.exports=function(e){if(null==e)return 0;if(o(e))return a(e)?s(e):e.length;var t=i(e);return"[object Map]"==t||"[object Set]"==t?e.size:r(e).length}},function(e,t,n){var r=n(47),i=n(13),o=n(34);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==r(e)}},function(e,t,n){var r=n(330),i=n(331),o=n(332);e.exports=function(e){return i(e)?o(e):r(e)}},function(e,t,n){var r=n(180)("length");e.exports=r},function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t){var n="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",i="\\ud83c[\\udffb-\\udfff]",o="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+r+"|"+i+")"+"?",c="[\\ufe0e\\ufe0f]?"+l+("(?:\\u200d(?:"+[o,a,s].join("|")+")[\\ufe0e\\ufe0f]?"+l+")*"),u="(?:"+[o+r+"?",r,a,s,n].join("|")+")",d=RegExp(i+"(?="+i+")|"+u+c,"g");e.exports=function(e){for(var t=d.lastIndex=0;d.test(e);)++t;return t}},function(e,t,n){var r=n(119),i=n(166),o=n(127),a=n(37),s=n(84),l=n(13),c=n(59),u=n(64),d=n(23),p=n(67);e.exports=function(e,t,n){var f=l(e),h=f||c(e)||p(e);if(t=a(t,4),null==n){var g=e&&e.constructor;n=h?f?new g:[]:d(e)&&u(g)?i(s(e)):{}}return(h?r:o)(e,(function(e,r,i){return t(n,e,r,i)})),n}},function(e,t,n){var r=n(131),i=n(89),o=n(339),a=n(189),s=i((function(e){return o(r(e,1,a,!0))}));e.exports=s},function(e,t,n){var r=n(58),i=n(66),o=n(13),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(a&&e&&e[a])}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var r=n(126),i=n(152),o=n(49),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=a},function(e,t){var n=Date.now;e.exports=function(e){var t=0,r=0;return function(){var i=n(),o=16-(i-r);if(r=i,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var r=n(173),i=n(340),o=n(344),a=n(174),s=n(345),l=n(129);e.exports=function(e,t,n){var c=-1,u=i,d=e.length,p=!0,f=[],h=f;if(n)p=!1,u=o;else if(d>=200){var g=t?null:s(e);if(g)return l(g);p=!1,u=a,h=new r}else h=t?[]:f;e:for(;++c<d;){var m=e[c],v=t?t(m):m;if(m=n||0!==m?m:0,p&&v==v){for(var b=h.length;b--;)if(h[b]===v)continue e;t&&h.push(v),f.push(m)}else u(h,v,n)||(h!==f&&h.push(v),f.push(m))}return f}},function(e,t,n){var r=n(341);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},function(e,t,n){var r=n(188),i=n(342),o=n(343);e.exports=function(e,t,n){return t==t?o(e,t,n):r(e,i,n)}},function(e,t){e.exports=function(e){return e!=e}},function(e,t){e.exports=function(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}},function(e,t){e.exports=function(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}},function(e,t,n){var r=n(162),i=n(346),o=n(129),a=r&&1/o(new r([,-0]))[1]==1/0?function(e){return new r(e)}:i;e.exports=a},function(e,t){e.exports=function(){}},function(e,t,n){var r=n(88);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},function(e,t){e.exports="2.1.8"},function(e,t,n){var r=n(22),i=n(116);function o(e){return r.map(e.nodes(),(function(t){var n=e.node(t),i=e.parent(t),o={v:t};return r.isUndefined(n)||(o.value=n),r.isUndefined(i)||(o.parent=i),o}))}function a(e){return r.map(e.edges(),(function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.isUndefined(t.name)||(i.name=t.name),r.isUndefined(n)||(i.value=n),i}))}e.exports={write:function(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:a(e)};r.isUndefined(e.graph())||(t.value=r.clone(e.graph()));return t},read:function(e){var t=new i(e.options).setGraph(e.value);return r.each(e.nodes,(function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)})),r.each(e.edges,(function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)})),t}}},function(e,t,n){e.exports={components:n(351),dijkstra:n(191),dijkstraAll:n(352),findCycles:n(353),floydWarshall:n(354),isAcyclic:n(355),postorder:n(356),preorder:n(357),prim:n(358),tarjan:n(193),topsort:n(194)}},function(e,t,n){var r=n(22);e.exports=function(e){var t,n={},i=[];function o(i){r.has(n,i)||(n[i]=!0,t.push(i),r.each(e.successors(i),o),r.each(e.predecessors(i),o))}return r.each(e.nodes(),(function(e){t=[],o(e),t.length&&i.push(t)})),i}},function(e,t,n){var r=n(191),i=n(22);e.exports=function(e,t,n){return i.transform(e.nodes(),(function(i,o){i[o]=r(e,o,t,n)}),{})}},function(e,t,n){var r=n(22),i=n(193);e.exports=function(e){return r.filter(i(e),(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])}))}},function(e,t,n){var r=n(22);e.exports=function(e,t,n){return function(e,t,n){var r={},i=e.nodes();return i.forEach((function(e){r[e]={},r[e][e]={distance:0},i.forEach((function(t){e!==t&&(r[e][t]={distance:Number.POSITIVE_INFINITY})})),n(e).forEach((function(n){var i=n.v===e?n.w:n.v,o=t(n);r[e][i]={distance:o,predecessor:e}}))})),i.forEach((function(e){var t=r[e];i.forEach((function(n){var o=r[n];i.forEach((function(n){var r=o[e],i=t[n],a=o[n],s=r.distance+i.distance;s<a.distance&&(a.distance=s,a.predecessor=i.predecessor)}))}))})),r}(e,t||i,n||function(t){return e.outEdges(t)})};var i=r.constant(1)},function(e,t,n){var r=n(194);e.exports=function(e){try{r(e)}catch(e){if(e instanceof r.CycleException)return!1;throw e}return!0}},function(e,t,n){var r=n(195);e.exports=function(e,t){return r(e,t,"post")}},function(e,t,n){var r=n(195);e.exports=function(e,t){return r(e,t,"pre")}},function(e,t,n){var r=n(22),i=n(116),o=n(192);e.exports=function(e,t){var n,a=new i,s={},l=new o;function c(e){var r=e.v===n?e.w:e.v,i=l.priority(r);if(void 0!==i){var o=t(e);o<i&&(s[r]=n,l.decrease(r,o))}}if(0===e.nodeCount())return a;r.each(e.nodes(),(function(e){l.add(e,Number.POSITIVE_INFINITY),a.setNode(e)})),l.decrease(e.nodes()[0],0);var u=!1;for(;l.size()>0;){if(n=l.removeMin(),r.has(s,n))a.setEdge(n,s[n]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(n).forEach(c)}return a}},function(e,t,n){"use strict";var r=n(11),i=n(399),o=n(402),a=n(403),s=n(20).normalizeRanks,l=n(405),c=n(20).removeEmptyRanks,u=n(406),d=n(407),p=n(408),f=n(409),h=n(418),g=n(20),m=n(28).Graph;e.exports=function(e,t){var n=t&&t.debugTiming?g.time:g.notime;n("layout",(function(){var t=n(" buildLayoutGraph",(function(){return function(e){var t=new m({multigraph:!0,compound:!0}),n=$(e.graph());return t.setGraph(r.merge({},b,S(n,v),r.pick(n,y))),r.forEach(e.nodes(),(function(n){var i=$(e.node(n));t.setNode(n,r.defaults(S(i,x),w)),t.setParent(n,e.parent(n))})),r.forEach(e.edges(),(function(n){var i=$(e.edge(n));t.setEdge(n,r.merge({},A,S(i,k),r.pick(i,E)))})),t}(e)}));n(" runLayout",(function(){!function(e,t){t(" makeSpaceForEdgeLabels",(function(){!function(e){var t=e.graph();t.ranksep/=2,r.forEach(e.edges(),(function(n){var r=e.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(e)})),t(" removeSelfEdges",(function(){!function(e){r.forEach(e.edges(),(function(t){if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))}(e)})),t(" acyclic",(function(){i.run(e)})),t(" nestingGraph.run",(function(){u.run(e)})),t(" rank",(function(){a(g.asNonCompoundGraph(e))})),t(" injectEdgeLabelProxies",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.width&&n.height){var r=e.node(t.v),i={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};g.addDummyNode(e,"edge-proxy",i,"_ep")}}))}(e)})),t(" removeEmptyRanks",(function(){c(e)})),t(" nestingGraph.cleanup",(function(){u.cleanup(e)})),t(" normalizeRanks",(function(){s(e)})),t(" assignRankMinMax",(function(){!function(e){var t=0;r.forEach(e.nodes(),(function(n){var i=e.node(n);i.borderTop&&(i.minRank=e.node(i.borderTop).rank,i.maxRank=e.node(i.borderBottom).rank,t=r.max(t,i.maxRank))})),e.graph().maxRank=t}(e)})),t(" removeEdgeLabelProxies",(function(){!function(e){r.forEach(e.nodes(),(function(t){var n=e.node(t);"edge-proxy"===n.dummy&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))}))}(e)})),t(" normalize.run",(function(){o.run(e)})),t(" parentDummyChains",(function(){l(e)})),t(" addBorderSegments",(function(){d(e)})),t(" order",(function(){f(e)})),t(" insertSelfEdges",(function(){!function(e){var t=g.buildLayerMatrix(e);r.forEach(t,(function(t){var n=0;r.forEach(t,(function(t,i){var o=e.node(t);o.order=i+n,r.forEach(o.selfEdges,(function(t){g.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:o.rank,order:i+ ++n,e:t.e,label:t.label},"_se")})),delete o.selfEdges}))}))}(e)})),t(" adjustCoordinateSystem",(function(){p.adjust(e)})),t(" position",(function(){h(e)})),t(" positionSelfEdges",(function(){!function(e){r.forEach(e.nodes(),(function(t){var n=e.node(t);if("selfedge"===n.dummy){var r=e.node(n.e.v),i=r.x+r.width/2,o=r.y,a=n.x-i,s=r.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:i+2*a/3,y:o-s},{x:i+5*a/6,y:o-s},{x:i+a,y:o},{x:i+5*a/6,y:o+s},{x:i+2*a/3,y:o+s}],n.label.x=n.x,n.label.y=n.y}}))}(e)})),t(" removeBorderNodes",(function(){!function(e){r.forEach(e.nodes(),(function(t){if(e.children(t).length){var n=e.node(t),i=e.node(n.borderTop),o=e.node(n.borderBottom),a=e.node(r.last(n.borderLeft)),s=e.node(r.last(n.borderRight));n.width=Math.abs(s.x-a.x),n.height=Math.abs(o.y-i.y),n.x=a.x+n.width/2,n.y=i.y+n.height/2}})),r.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))}(e)})),t(" normalize.undo",(function(){o.undo(e)})),t(" fixupEdgeLabelCoords",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(r.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(e)})),t(" undoCoordinateSystem",(function(){p.undo(e)})),t(" translateGraph",(function(){!function(e){var t=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,o=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function c(e){var r=e.x,a=e.y,s=e.width,l=e.height;t=Math.min(t,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,a-l/2),o=Math.max(o,a+l/2)}r.forEach(e.nodes(),(function(t){c(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.has(n,"x")&&c(n)})),t-=s,i-=l,r.forEach(e.nodes(),(function(n){var r=e.node(n);r.x-=t,r.y-=i})),r.forEach(e.edges(),(function(n){var o=e.edge(n);r.forEach(o.points,(function(e){e.x-=t,e.y-=i})),r.has(o,"x")&&(o.x-=t),r.has(o,"y")&&(o.y-=i)})),a.width=n-t+s,a.height=o-i+l}(e)})),t(" assignNodeIntersects",(function(){!function(e){r.forEach(e.edges(),(function(t){var n,r,i=e.edge(t),o=e.node(t.v),a=e.node(t.w);i.points?(n=i.points[0],r=i.points[i.points.length-1]):(i.points=[],n=a,r=o),i.points.unshift(g.intersectRect(o,n)),i.points.push(g.intersectRect(a,r))}))}(e)})),t(" reversePoints",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);n.reversed&&n.points.reverse()}))}(e)})),t(" acyclic.undo",(function(){i.undo(e)}))}(t,n)})),n(" updateInputGraph",(function(){!function(e,t){r.forEach(e.nodes(),(function(n){var r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,t.children(n).length&&(r.width=i.width,r.height=i.height))})),r.forEach(e.edges(),(function(n){var i=e.edge(n),o=t.edge(n);i.points=o.points,r.has(o,"x")&&(i.x=o.x,i.y=o.y)})),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)}))}))};var v=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},y=["acyclicer","ranker","rankdir","align"],x=["width","height"],w={width:0,height:0},k=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function S(e,t){return r.mapValues(r.pick(e,t),Number)}function $(e){var t={};return r.forEach(e,(function(e,n){t[n.toLowerCase()]=e})),t}},function(e,t,n){var r=n(149);e.exports=function(e){return r(e,5)}},function(e,t,n){var r=n(89),i=n(57),o=n(90),a=n(48),s=Object.prototype,l=s.hasOwnProperty,c=r((function(e,t){e=Object(e);var n=-1,r=t.length,c=r>2?t[2]:void 0;for(c&&o(t[0],t[1],c)&&(r=1);++n<r;)for(var u=t[n],d=a(u),p=-1,f=d.length;++p<f;){var h=d[p],g=e[h];(void 0===g||i(g,s[h])&&!l.call(e,h))&&(e[h]=u[h])}return e}));e.exports=c},function(e,t,n){var r=n(363)(n(364));e.exports=r},function(e,t,n){var r=n(37),i=n(36),o=n(41);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!i(t)){var l=r(n,3);t=o(t),n=function(e){return l(s[e],e,s)}}var c=e(t,n,a);return c>-1?s[l?t[c]:c]:void 0}}},function(e,t,n){var r=n(188),i=n(37),o=n(365),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var l=null==n?0:o(n);return l<0&&(l=a(s+l,0)),r(e,i(t,3),l)}},function(e,t,n){var r=n(196);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},function(e,t,n){var r=n(367),i=n(23),o=n(61),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=s.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):a.test(e)?NaN:+e}},function(e,t,n){var r=n(368),i=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(i,""):e}},function(e,t){var n=/\s/;e.exports=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}},function(e,t,n){var r=n(128),i=n(169),o=n(48);e.exports=function(e,t){return null==e?e:r(e,i(t),o)}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,n){var r=n(79),i=n(127),o=n(37);e.exports=function(e,t){var n={};return t=o(t,3),i(e,(function(e,i,o){r(n,i,t(e,i,o))})),n}},function(e,t,n){var r=n(132),i=n(373),o=n(49);e.exports=function(e){return e&&e.length?r(e,o,i):void 0}},function(e,t){e.exports=function(e,t){return e>t}},function(e,t,n){var r=n(375),i=n(379)((function(e,t,n){r(e,t,n)}));e.exports=i},function(e,t,n){var r=n(73),i=n(198),o=n(128),a=n(376),s=n(23),l=n(48),c=n(199);e.exports=function e(t,n,u,d,p){t!==n&&o(n,(function(o,l){if(p||(p=new r),s(o))a(t,n,l,u,e,d,p);else{var f=d?d(c(t,l),o,l+"",t,n,p):void 0;void 0===f&&(f=o),i(t,l,f)}}),l)}},function(e,t,n){var r=n(198),i=n(155),o=n(164),a=n(156),s=n(165),l=n(66),c=n(13),u=n(189),d=n(59),p=n(64),f=n(23),h=n(377),g=n(67),m=n(199),v=n(378);e.exports=function(e,t,n,b,y,x,w){var k=m(e,n),A=m(t,n),E=w.get(A);if(E)r(e,n,E);else{var S=x?x(k,A,n+"",e,t,w):void 0,$=void 0===S;if($){var C=c(A),_=!C&&d(A),O=!C&&!_&&g(A);S=A,C||_||O?c(k)?S=k:u(k)?S=a(k):_?($=!1,S=i(A,!0)):O?($=!1,S=o(A,!0)):S=[]:h(A)||l(A)?(S=k,l(k)?S=v(k):f(k)&&!p(k)||(S=s(A))):$=!1}$&&(w.set(A,S),y(S,A,b,x,w),w.delete(A)),r(e,n,S)}}},function(e,t,n){var r=n(47),i=n(84),o=n(34),a=Function.prototype,s=Object.prototype,l=a.toString,c=s.hasOwnProperty,u=l.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=i(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==u}},function(e,t,n){var r=n(65),i=n(48);e.exports=function(e){return r(e,i(e))}},function(e,t,n){var r=n(89),i=n(90);e.exports=function(e){return r((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++r<o;){var l=n[r];l&&e(t,l,r,a)}return t}))}},function(e,t,n){var r=n(132),i=n(200),o=n(49);e.exports=function(e){return e&&e.length?r(e,o,i):void 0}},function(e,t,n){var r=n(132),i=n(37),o=n(200);e.exports=function(e,t){return e&&e.length?r(e,i(t,2),o):void 0}},function(e,t,n){var r=n(29);e.exports=function(){return r.Date.now()}},function(e,t,n){var r=n(384),i=n(387)((function(e,t){return null==e?{}:r(e,t)}));e.exports=i},function(e,t,n){var r=n(385),i=n(178);e.exports=function(e,t){return r(e,t,(function(t,n){return i(e,n)}))}},function(e,t,n){var r=n(86),i=n(386),o=n(87);e.exports=function(e,t,n){for(var a=-1,s=t.length,l={};++a<s;){var c=t[a],u=r(e,c);n(u,c)&&i(l,o(c,e),u)}return l}},function(e,t,n){var r=n(78),i=n(87),o=n(81),a=n(23),s=n(68);e.exports=function(e,t,n,l){if(!a(e))return e;for(var c=-1,u=(t=i(t,e)).length,d=u-1,p=e;null!=p&&++c<u;){var f=s(t[c]),h=n;if("__proto__"===f||"constructor"===f||"prototype"===f)return e;if(c!=d){var g=p[f];void 0===(h=l?l(g,f,p):void 0)&&(h=a(g)?g:o(t[c+1])?[]:{})}r(p,f,h),p=p[f]}return e}},function(e,t,n){var r=n(197),i=n(186),o=n(187);e.exports=function(e){return o(i(e,void 0,r),e+"")}},function(e,t,n){var r=n(389)();e.exports=r},function(e,t,n){var r=n(390),i=n(90),o=n(196);e.exports=function(e){return function(t,n,a){return a&&"number"!=typeof a&&i(t,n,a)&&(n=a=void 0),t=o(t),void 0===n?(n=t,t=0):n=o(n),a=void 0===a?t<n?1:-1:o(a),r(t,n,a,e)}}},function(e,t){var n=Math.ceil,r=Math.max;e.exports=function(e,t,i,o){for(var a=-1,s=r(n((t-e)/(i||1)),0),l=Array(s);s--;)l[o?s:++a]=e,e+=i;return l}},function(e,t,n){var r=n(131),i=n(392),o=n(89),a=n(90),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&a(e,t[0],t[1])?t=[]:n>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,r(t,1),[])}));e.exports=s},function(e,t,n){var r=n(88),i=n(86),o=n(37),a=n(184),s=n(393),l=n(82),c=n(394),u=n(49),d=n(13);e.exports=function(e,t,n){t=t.length?r(t,(function(e){return d(e)?function(t){return i(t,1===e.length?e[0]:e)}:e})):[u];var p=-1;t=r(t,l(o));var f=a(e,(function(e,n,i){return{criteria:r(t,(function(t){return t(e)})),index:++p,value:e}}));return s(f,(function(e,t){return c(e,t,n)}))}},function(e,t){e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},function(e,t,n){var r=n(395);e.exports=function(e,t,n){for(var i=-1,o=e.criteria,a=t.criteria,s=o.length,l=n.length;++i<s;){var c=r(o[i],a[i]);if(c)return i>=l?c:c*("desc"==n[i]?-1:1)}return e.index-t.index}},function(e,t,n){var r=n(61);e.exports=function(e,t){if(e!==t){var n=void 0!==e,i=null===e,o=e==e,a=r(e),s=void 0!==t,l=null===t,c=t==t,u=r(t);if(!l&&!u&&!a&&e>t||a&&s&&c&&!l&&!u||i&&s&&c||!n&&c||!o)return 1;if(!i&&!a&&!u&&e<t||u&&n&&o&&!i&&!a||l&&n&&o||!s&&o||!c)return-1}return 0}},function(e,t,n){var r=n(177),i=0;e.exports=function(e){var t=++i;return r(e)+t}},function(e,t,n){var r=n(78),i=n(398);e.exports=function(e,t){return i(e||[],t||[],r)}},function(e,t){e.exports=function(e,t,n){for(var r=-1,i=e.length,o=t.length,a={};++r<i;){var s=r<o?t[r]:void 0;n(a,e[r],s)}return a}},function(e,t,n){"use strict";var r=n(11),i=n(400);e.exports={run:function(e){var t="greedy"===e.graph().acyclicer?i(e,function(e){return function(t){return e.edge(t).weight}}(e)):function(e){var t=[],n={},i={};function o(a){r.has(i,a)||(i[a]=!0,n[a]=!0,r.forEach(e.outEdges(a),(function(e){r.has(n,e.w)?t.push(e):o(e.w)})),delete n[a])}return r.forEach(e.nodes(),o),t}(e);r.forEach(t,(function(t){var n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,r.uniqueId("rev"))}))},undo:function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.reversed){e.removeEdge(t);var r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}}))}}},function(e,t,n){var r=n(11),i=n(28).Graph,o=n(401);e.exports=function(e,t){if(e.nodeCount()<=1)return[];var n=function(e,t){var n=new i,a=0,s=0;r.forEach(e.nodes(),(function(e){n.setNode(e,{v:e,in:0,out:0})})),r.forEach(e.edges(),(function(e){var r=n.edge(e.v,e.w)||0,i=t(e),o=r+i;n.setEdge(e.v,e.w,o),s=Math.max(s,n.node(e.v).out+=i),a=Math.max(a,n.node(e.w).in+=i)}));var c=r.range(s+a+3).map((function(){return new o})),u=a+1;return r.forEach(n.nodes(),(function(e){l(c,u,n.node(e))})),{graph:n,buckets:c,zeroIdx:u}}(e,t||a),c=function(e,t,n){var r,i=[],o=t[t.length-1],a=t[0];for(;e.nodeCount();){for(;r=a.dequeue();)s(e,t,n,r);for(;r=o.dequeue();)s(e,t,n,r);if(e.nodeCount())for(var l=t.length-2;l>0;--l)if(r=t[l].dequeue()){i=i.concat(s(e,t,n,r,!0));break}}return i}(n.graph,n.buckets,n.zeroIdx);return r.flatten(r.map(c,(function(t){return e.outEdges(t.v,t.w)})),!0)};var a=r.constant(1);function s(e,t,n,i,o){var a=o?[]:void 0;return r.forEach(e.inEdges(i.v),(function(r){var i=e.edge(r),s=e.node(r.v);o&&a.push({v:r.v,w:r.w}),s.out-=i,l(t,n,s)})),r.forEach(e.outEdges(i.v),(function(r){var i=e.edge(r),o=r.w,a=e.node(o);a.in-=i,l(t,n,a)})),e.removeNode(i.v),a}function l(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}},function(e,t){function n(){var e={};e._next=e._prev=e,this._sentinel=e}function r(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function i(e,t){if("_next"!==e&&"_prev"!==e)return t}e.exports=n,n.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return r(t),t},n.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&r(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},n.prototype.toString=function(){for(var e=[],t=this._sentinel,n=t._prev;n!==t;)e.push(JSON.stringify(n,i)),n=n._prev;return"["+e.join(", ")+"]"}},function(e,t,n){"use strict";var r=n(11),i=n(20);e.exports={run:function(e){e.graph().dummyChains=[],r.forEach(e.edges(),(function(t){!function(e,t){var n,r,o,a=t.v,s=e.node(a).rank,l=t.w,c=e.node(l).rank,u=t.name,d=e.edge(t),p=d.labelRank;if(c===s+1)return;for(e.removeEdge(t),o=0,++s;s<c;++o,++s)d.points=[],r={width:0,height:0,edgeLabel:d,edgeObj:t,rank:s},n=i.addDummyNode(e,"edge",r,"_d"),s===p&&(r.width=d.width,r.height=d.height,r.dummy="edge-label",r.labelpos=d.labelpos),e.setEdge(a,n,{weight:d.weight},u),0===o&&e.graph().dummyChains.push(n),a=n;e.setEdge(a,l,{weight:d.weight},u)}(e,t)}))},undo:function(e){r.forEach(e.graph().dummyChains,(function(t){var n,r=e.node(t),i=r.edgeLabel;for(e.setEdge(r.edgeObj,i);r.dummy;)n=e.successors(t)[0],e.removeNode(t),i.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height),t=n,r=e.node(t)}))}}},function(e,t,n){"use strict";var r=n(91).longestPath,i=n(201),o=n(404);e.exports=function(e){switch(e.graph().ranker){case"network-simplex":s(e);break;case"tight-tree":!function(e){r(e),i(e)}(e);break;case"longest-path":a(e);break;default:s(e)}};var a=r;function s(e){o(e)}},function(e,t,n){"use strict";var r=n(11),i=n(201),o=n(91).slack,a=n(91).longestPath,s=n(28).alg.preorder,l=n(28).alg.postorder,c=n(20).simplify;function u(e){e=c(e),a(e);var t,n=i(e);for(f(n),d(n,e);t=g(n);)v(n,e,t,m(n,e,t))}function d(e,t){var n=l(e,e.nodes());n=n.slice(0,n.length-1),r.forEach(n,(function(n){!function(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=p(e,t,n)}(e,t,n)}))}function p(e,t,n){var i=e.node(n).parent,o=!0,a=t.edge(n,i),s=0;return a||(o=!1,a=t.edge(i,n)),s=a.weight,r.forEach(t.nodeEdges(n),(function(r){var a,l,c=r.v===n,u=c?r.w:r.v;if(u!==i){var d=c===o,p=t.edge(r).weight;if(s+=d?p:-p,a=n,l=u,e.hasEdge(a,l)){var f=e.edge(n,u).cutvalue;s+=d?-f:f}}})),s}function f(e,t){arguments.length<2&&(t=e.nodes()[0]),h(e,{},1,t)}function h(e,t,n,i,o){var a=n,s=e.node(i);return t[i]=!0,r.forEach(e.neighbors(i),(function(o){r.has(t,o)||(n=h(e,t,n,o,i))})),s.low=a,s.lim=n++,o?s.parent=o:delete s.parent,n}function g(e){return r.find(e.edges(),(function(t){return e.edge(t).cutvalue<0}))}function m(e,t,n){var i=n.v,a=n.w;t.hasEdge(i,a)||(i=n.w,a=n.v);var s=e.node(i),l=e.node(a),c=s,u=!1;s.lim>l.lim&&(c=l,u=!0);var d=r.filter(t.edges(),(function(t){return u===b(e,e.node(t.v),c)&&u!==b(e,e.node(t.w),c)}));return r.minBy(d,(function(e){return o(t,e)}))}function v(e,t,n,i){var o=n.v,a=n.w;e.removeEdge(o,a),e.setEdge(i.v,i.w,{}),f(e),d(e,t),function(e,t){var n=r.find(e.nodes(),(function(e){return!t.node(e).parent})),i=s(e,n);i=i.slice(1),r.forEach(i,(function(n){var r=e.node(n).parent,i=t.edge(n,r),o=!1;i||(i=t.edge(r,n),o=!0),t.node(n).rank=t.node(r).rank+(o?i.minlen:-i.minlen)}))}(e,t)}function b(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}e.exports=u,u.initLowLimValues=f,u.initCutValues=d,u.calcCutValue=p,u.leaveEdge=g,u.enterEdge=m,u.exchangeEdges=v},function(e,t,n){var r=n(11);e.exports=function(e){var t=function(e){var t={},n=0;function i(o){var a=n;r.forEach(e.children(o),i),t[o]={low:a,lim:n++}}return r.forEach(e.children(),i),t}(e);r.forEach(e.graph().dummyChains,(function(n){for(var r=e.node(n),i=r.edgeObj,o=function(e,t,n,r){var i,o,a=[],s=[],l=Math.min(t[n].low,t[r].low),c=Math.max(t[n].lim,t[r].lim);i=n;do{i=e.parent(i),a.push(i)}while(i&&(t[i].low>l||c>t[i].lim));o=i,i=r;for(;(i=e.parent(i))!==o;)s.push(i);return{path:a.concat(s.reverse()),lca:o}}(e,t,i.v,i.w),a=o.path,s=o.lca,l=0,c=a[l],u=!0;n!==i.w;){if(r=e.node(n),u){for(;(c=a[l])!==s&&e.node(c).maxRank<r.rank;)l++;c===s&&(u=!1)}if(!u){for(;l<a.length-1&&e.node(c=a[l+1]).minRank<=r.rank;)l++;c=a[l]}e.setParent(n,c),n=e.successors(n)[0]}}))}},function(e,t,n){var r=n(11),i=n(20);e.exports={run:function(e){var t=i.addDummyNode(e,"root",{},"_root"),n=function(e){var t={};return r.forEach(e.children(),(function(n){!function n(i,o){var a=e.children(i);a&&a.length&&r.forEach(a,(function(e){n(e,o+1)}));t[i]=o}(n,1)})),t}(e),o=r.max(r.values(n))-1,a=2*o+1;e.graph().nestingRoot=t,r.forEach(e.edges(),(function(t){e.edge(t).minlen*=a}));var s=function(e){return r.reduce(e.edges(),(function(t,n){return t+e.edge(n).weight}),0)}(e)+1;r.forEach(e.children(),(function(l){!function e(t,n,o,a,s,l,c){var u=t.children(c);if(!u.length)return void(c!==n&&t.setEdge(n,c,{weight:0,minlen:o}));var d=i.addBorderNode(t,"_bt"),p=i.addBorderNode(t,"_bb"),f=t.node(c);t.setParent(d,c),f.borderTop=d,t.setParent(p,c),f.borderBottom=p,r.forEach(u,(function(r){e(t,n,o,a,s,l,r);var i=t.node(r),u=i.borderTop?i.borderTop:r,f=i.borderBottom?i.borderBottom:r,h=i.borderTop?a:2*a,g=u!==f?1:s-l[c]+1;t.setEdge(d,u,{weight:h,minlen:g,nestingEdge:!0}),t.setEdge(f,p,{weight:h,minlen:g,nestingEdge:!0})})),t.parent(c)||t.setEdge(n,d,{weight:0,minlen:s+l[c]})}(e,t,a,s,o,n,l)})),e.graph().nodeRankFactor=a},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,r.forEach(e.edges(),(function(t){e.edge(t).nestingEdge&&e.removeEdge(t)}))}}},function(e,t,n){var r=n(11),i=n(20);function o(e,t,n,r,o,a){var s={width:0,height:0,rank:a,borderType:t},l=o[t][a-1],c=i.addDummyNode(e,"border",s,n);o[t][a]=c,e.setParent(c,r),l&&e.setEdge(l,c,{weight:1})}e.exports=function(e){r.forEach(e.children(),(function t(n){var i=e.children(n),a=e.node(n);if(i.length&&r.forEach(i,t),r.has(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var s=a.minRank,l=a.maxRank+1;s<l;++s)o(e,"borderLeft","_bl",n,a,s),o(e,"borderRight","_br",n,a,s)}}))}},function(e,t,n){"use strict";var r=n(11);function i(e){r.forEach(e.nodes(),(function(t){o(e.node(t))})),r.forEach(e.edges(),(function(t){o(e.edge(t))}))}function o(e){var t=e.width;e.width=e.height,e.height=t}function a(e){e.y=-e.y}function s(e){var t=e.x;e.x=e.y,e.y=t}e.exports={adjust:function(e){var t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||i(e)},undo:function(e){var t=e.graph().rankdir.toLowerCase();"bt"!==t&&"rl"!==t||function(e){r.forEach(e.nodes(),(function(t){a(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.forEach(n.points,a),r.has(n,"y")&&a(n)}))}(e);"lr"!==t&&"rl"!==t||(!function(e){r.forEach(e.nodes(),(function(t){s(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.forEach(n.points,s),r.has(n,"x")&&s(n)}))}(e),i(e))}}},function(e,t,n){"use strict";var r=n(11),i=n(410),o=n(411),a=n(412),s=n(416),l=n(417),c=n(28).Graph,u=n(20);function d(e,t,n){return r.map(t,(function(t){return s(e,t,n)}))}function p(e,t){var n=new c;r.forEach(e,(function(e){var i=e.graph().root,o=a(e,i,n,t);r.forEach(o.vs,(function(t,n){e.node(t).order=n})),l(e,n,o.vs)}))}function f(e,t){r.forEach(t,(function(t){r.forEach(t,(function(t,n){e.node(t).order=n}))}))}e.exports=function(e){var t=u.maxRank(e),n=d(e,r.range(1,t+1),"inEdges"),a=d(e,r.range(t-1,-1,-1),"outEdges"),s=i(e);f(e,s);for(var l,c=Number.POSITIVE_INFINITY,h=0,g=0;g<4;++h,++g){p(h%2?n:a,h%4>=2),s=u.buildLayerMatrix(e);var m=o(e,s);m<c&&(g=0,l=r.cloneDeep(s),c=m)}f(e,l)}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e){var t={},n=r.filter(e.nodes(),(function(t){return!e.children(t).length})),i=r.max(r.map(n,(function(t){return e.node(t).rank}))),o=r.map(r.range(i+1),(function(){return[]}));var a=r.sortBy(n,(function(t){return e.node(t).rank}));return r.forEach(a,(function n(i){if(r.has(t,i))return;t[i]=!0;var a=e.node(i);o[a.rank].push(i),r.forEach(e.successors(i),n)})),o}},function(e,t,n){"use strict";var r=n(11);function i(e,t,n){for(var i=r.zipObject(n,r.map(n,(function(e,t){return t}))),o=r.flatten(r.map(t,(function(t){return r.sortBy(r.map(e.outEdges(t),(function(t){return{pos:i[t.w],weight:e.edge(t).weight}})),"pos")})),!0),a=1;a<n.length;)a<<=1;var s=2*a-1;a-=1;var l=r.map(new Array(s),(function(){return 0})),c=0;return r.forEach(o.forEach((function(e){var t=e.pos+a;l[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=l[t+1]),l[t=t-1>>1]+=e.weight;c+=e.weight*n}))),c}e.exports=function(e,t){for(var n=0,r=1;r<t.length;++r)n+=i(e,t[r-1],t[r]);return n}},function(e,t,n){var r=n(11),i=n(413),o=n(414),a=n(415);e.exports=function e(t,n,s,l){var c=t.children(n),u=t.node(n),d=u?u.borderLeft:void 0,p=u?u.borderRight:void 0,f={};d&&(c=r.filter(c,(function(e){return e!==d&&e!==p})));var h=i(t,c);r.forEach(h,(function(n){if(t.children(n.v).length){var i=e(t,n.v,s,l);f[n.v]=i,r.has(i,"barycenter")&&(o=n,a=i,r.isUndefined(o.barycenter)?(o.barycenter=a.barycenter,o.weight=a.weight):(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight))}var o,a}));var g=o(h,s);!function(e,t){r.forEach(e,(function(e){e.vs=r.flatten(e.vs.map((function(e){return t[e]?t[e].vs:e})),!0)}))}(g,f);var m=a(g,l);if(d&&(m.vs=r.flatten([d,m.vs,p],!0),t.predecessors(d).length)){var v=t.node(t.predecessors(d)[0]),b=t.node(t.predecessors(p)[0]);r.has(m,"barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+v.order+b.order)/(m.weight+2),m.weight+=2}return m}},function(e,t,n){var r=n(11);e.exports=function(e,t){return r.map(t,(function(t){var n=e.inEdges(t);if(n.length){var i=r.reduce(n,(function(t,n){var r=e.edge(n),i=e.node(n.v);return{sum:t.sum+r.weight*i.order,weight:t.weight+r.weight}}),{sum:0,weight:0});return{v:t,barycenter:i.sum/i.weight,weight:i.weight}}return{v:t}}))}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e,t){var n={};return r.forEach(e,(function(e,t){var i=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};r.isUndefined(e.barycenter)||(i.barycenter=e.barycenter,i.weight=e.weight)})),r.forEach(t.edges(),(function(e){var t=n[e.v],i=n[e.w];r.isUndefined(t)||r.isUndefined(i)||(i.indegree++,t.out.push(n[e.w]))})),function(e){var t=[];function n(e){return function(t){t.merged||(r.isUndefined(t.barycenter)||r.isUndefined(e.barycenter)||t.barycenter>=e.barycenter)&&function(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight);t.weight&&(n+=t.barycenter*t.weight,r+=t.weight);e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}function i(t){return function(n){n.in.push(t),0==--n.indegree&&e.push(n)}}for(;e.length;){var o=e.pop();t.push(o),r.forEach(o.in.reverse(),n(o)),r.forEach(o.out,i(o))}return r.map(r.filter(t,(function(e){return!e.merged})),(function(e){return r.pick(e,["vs","i","barycenter","weight"])}))}(r.filter(n,(function(e){return!e.indegree})))}},function(e,t,n){var r=n(11),i=n(20);function o(e,t,n){for(var i;t.length&&(i=r.last(t)).i<=n;)t.pop(),e.push(i.vs),n++;return n}e.exports=function(e,t){var n=i.partition(e,(function(e){return r.has(e,"barycenter")})),a=n.lhs,s=r.sortBy(n.rhs,(function(e){return-e.i})),l=[],c=0,u=0,d=0;a.sort((p=!!t,function(e,t){return e.barycenter<t.barycenter?-1:e.barycenter>t.barycenter?1:p?t.i-e.i:e.i-t.i})),d=o(l,s,d),r.forEach(a,(function(e){d+=e.vs.length,l.push(e.vs),c+=e.barycenter*e.weight,u+=e.weight,d=o(l,s,d)}));var p;var f={vs:r.flatten(l,!0)};u&&(f.barycenter=c/u,f.weight=u);return f}},function(e,t,n){var r=n(11),i=n(28).Graph;e.exports=function(e,t,n){var o=function(e){var t;for(;e.hasNode(t=r.uniqueId("_root")););return t}(e),a=new i({compound:!0}).setGraph({root:o}).setDefaultNodeLabel((function(t){return e.node(t)}));return r.forEach(e.nodes(),(function(i){var s=e.node(i),l=e.parent(i);(s.rank===t||s.minRank<=t&&t<=s.maxRank)&&(a.setNode(i),a.setParent(i,l||o),r.forEach(e[n](i),(function(t){var n=t.v===i?t.w:t.v,o=a.edge(n,i),s=r.isUndefined(o)?0:o.weight;a.setEdge(n,i,{weight:e.edge(t).weight+s})})),r.has(s,"minRank")&&a.setNode(i,{borderLeft:s.borderLeft[t],borderRight:s.borderRight[t]}))})),a}},function(e,t,n){var r=n(11);e.exports=function(e,t,n){var i,o={};r.forEach(n,(function(n){for(var r,a,s=e.parent(n);s;){if((r=e.parent(s))?(a=o[r],o[r]=s):(a=i,i=s),a&&a!==s)return void t.setEdge(a,s);s=r}}))}},function(e,t,n){"use strict";var r=n(11),i=n(20),o=n(419).positionX;e.exports=function(e){(function(e){var t=i.buildLayerMatrix(e),n=e.graph().ranksep,o=0;r.forEach(t,(function(t){var i=r.max(r.map(t,(function(t){return e.node(t).height})));r.forEach(t,(function(t){e.node(t).y=o+i/2})),o+=i+n}))})(e=i.asNonCompoundGraph(e)),r.forEach(o(e),(function(t,n){e.node(n).x=t}))}},function(e,t,n){"use strict";var r=n(11),i=n(28).Graph,o=n(20);function a(e,t){var n={};return r.reduce(t,(function(t,i){var o=0,a=0,s=t.length,c=r.last(i);return r.forEach(i,(function(t,u){var d=function(e,t){if(e.node(t).dummy)return r.find(e.predecessors(t),(function(t){return e.node(t).dummy}))}(e,t),p=d?e.node(d).order:s;(d||t===c)&&(r.forEach(i.slice(a,u+1),(function(t){r.forEach(e.predecessors(t),(function(r){var i=e.node(r),a=i.order;!(a<o||p<a)||i.dummy&&e.node(t).dummy||l(n,r,t)}))})),a=u+1,o=p)})),i})),n}function s(e,t){var n={};function i(t,i,o,a,s){var c;r.forEach(r.range(i,o),(function(i){c=t[i],e.node(c).dummy&&r.forEach(e.predecessors(c),(function(t){var r=e.node(t);r.dummy&&(r.order<a||r.order>s)&&l(n,t,c)}))}))}return r.reduce(t,(function(t,n){var o,a=-1,s=0;return r.forEach(n,(function(r,l){if("border"===e.node(r).dummy){var c=e.predecessors(r);c.length&&(o=e.node(c[0]).order,i(n,s,l,a,o),s=l,a=o)}i(n,s,n.length,o,t.length)})),n})),n}function l(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function c(e,t,n){if(t>n){var i=t;t=n,n=i}return r.has(e[t],n)}function u(e,t,n,i){var o={},a={},s={};return r.forEach(t,(function(e){r.forEach(e,(function(e,t){o[e]=e,a[e]=e,s[e]=t}))})),r.forEach(t,(function(e){var t=-1;r.forEach(e,(function(e){var l=i(e);if(l.length)for(var u=((l=r.sortBy(l,(function(e){return s[e]}))).length-1)/2,d=Math.floor(u),p=Math.ceil(u);d<=p;++d){var f=l[d];a[e]===e&&t<s[f]&&!c(n,e,f)&&(a[f]=e,a[e]=o[e]=o[f],t=s[f])}}))})),{root:o,align:a}}function d(e,t,n,o,a){var s={},l=function(e,t,n,o){var a=new i,s=e.graph(),l=function(e,t,n){return function(i,o,a){var s,l=i.node(o),c=i.node(a),u=0;if(u+=l.width/2,r.has(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":s=-l.width/2;break;case"r":s=l.width/2}if(s&&(u+=n?s:-s),s=0,u+=(l.dummy?t:e)/2,u+=(c.dummy?t:e)/2,u+=c.width/2,r.has(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":s=c.width/2;break;case"r":s=-c.width/2}return s&&(u+=n?s:-s),s=0,u}}(s.nodesep,s.edgesep,o);return r.forEach(t,(function(t){var i;r.forEach(t,(function(t){var r=n[t];if(a.setNode(r),i){var o=n[i],s=a.edge(o,r);a.setEdge(o,r,Math.max(l(e,t,i),s||0))}i=t}))})),a}(e,t,n,a),c=a?"borderLeft":"borderRight";function u(e,t){for(var n=l.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}return u((function(e){s[e]=l.inEdges(e).reduce((function(e,t){return Math.max(e,s[t.v]+l.edge(t))}),0)}),l.predecessors.bind(l)),u((function(t){var n=l.outEdges(t).reduce((function(e,t){return Math.min(e,s[t.w]-l.edge(t))}),Number.POSITIVE_INFINITY),r=e.node(t);n!==Number.POSITIVE_INFINITY&&r.borderType!==c&&(s[t]=Math.max(s[t],n))}),l.successors.bind(l)),r.forEach(o,(function(e){s[e]=s[n[e]]})),s}function p(e,t){return r.minBy(r.values(t),(function(t){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return r.forIn(t,(function(t,r){var o=function(e,t){return e.node(t).width}(e,r)/2;n=Math.max(t+o,n),i=Math.min(t-o,i)})),n-i}))}function f(e,t){var n=r.values(t),i=r.min(n),o=r.max(n);r.forEach(["u","d"],(function(n){r.forEach(["l","r"],(function(a){var s,l=n+a,c=e[l];if(c!==t){var u=r.values(c);(s="l"===a?i-r.min(u):o-r.max(u))&&(e[l]=r.mapValues(c,(function(e){return e+s})))}}))}))}function h(e,t){return r.mapValues(e.ul,(function(n,i){if(t)return e[t.toLowerCase()][i];var o=r.sortBy(r.map(e,i));return(o[1]+o[2])/2}))}e.exports={positionX:function(e){var t,n=o.buildLayerMatrix(e),i=r.merge(a(e,n),s(e,n)),l={};r.forEach(["u","d"],(function(o){t="u"===o?n:r.values(n).reverse(),r.forEach(["l","r"],(function(n){"r"===n&&(t=r.map(t,(function(e){return r.values(e).reverse()})));var a=("u"===o?e.predecessors:e.successors).bind(e),s=u(e,t,i,a),c=d(e,t,s.root,s.align,"r"===n);"r"===n&&(c=r.mapValues(c,(function(e){return-e}))),l[o+n]=c}))}));var c=p(e,l);return f(l,c),h(l,e.graph().align)},findType1Conflicts:a,findType2Conflicts:s,addConflict:l,hasConflict:c,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:f,findSmallestWidthAlignment:p,balance:h}},function(e,t,n){var r=n(11),i=n(20),o=n(28).Graph;e.exports={debugOrdering:function(e){var t=i.buildLayerMatrix(e),n=new o({compound:!0,multigraph:!0}).setGraph({});return r.forEach(e.nodes(),(function(t){n.setNode(t,{label:t}),n.setParent(t,"layer"+e.node(t).rank)})),r.forEach(e.edges(),(function(e){n.setEdge(e.v,e.w,{},e.name)})),r.forEach(t,(function(e,t){var i="layer"+t;n.setNode(i,{rank:"same"}),r.reduce(e,(function(e,t){return n.setEdge(e,t,{style:"invis"}),t}))})),n}}},function(e,t){e.exports="0.8.5"},function(e,t,n){"use strict";const r=n(423);angular.module("dbt").directive("modelTree",[function(){return{scope:{tree:"="},templateUrl:r,link:function(e){e.nav_selected="project"}}}])},function(e,t){var n="/components/model_tree/model_tree.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n.menu ul ul {\n margin-left: 12px;\n}\n</style>\n\n<div class="menu">\n <ul>\n <li>\n <a ui-sref="dbt.overview()" class="menu-link menu-main">\n Overview\n </a>\n </li>\n\n <li>\n <div class="switches">\n <div class="switch ">\n <span\n class="switch-label btn btn-sm"\n ng-class="{active: (nav_selected == \'project\')}"\n ng-click="nav_selected = \'project\'">\n <svg class="icn menu-icon-on"><use xlink:href="#icn-dir-on"></use></svg>\n Project\n </span>\n </div>\n <div class="switch">\n <span\n class="switch-label btn btn-sm"\n ng-class="{active: (nav_selected == \'database\')}"\n ng-click="nav_selected = \'database\'">\n <svg class="icn menu-icon-on"><use xlink:href="#icn-tree-on"></use></svg>\n Database\n </span>\n </div>\n <div class="switch">\n <span\n class="switch-label btn btn-sm"\n ng-class="{active: (nav_selected == \'group\')}"\n ng-click="nav_selected = \'group\'">\n <svg class="icn menu-icon-on"><use xlink:href="#icn-filter"></use></svg>\n Group\n </span>\n </div>\n </div>\n </li>\n\n <li>\n <div class="menu" ng-show="nav_selected == \'project\'">\n <div ng-show="tree.sources.length > 0">\n <strong>Sources</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="source"\n ng-repeat="item in tree.sources"></source-tree-line>\n </ul>\n <br />\n </div>\n\n <div ng-show="tree.exposures.length > 0">\n <strong>Exposures</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="exposure"\n ng-repeat="item in tree.exposures"></model-tree-line>\n </ul>\n <br />\n </div>\n \n <div ng-show="tree.metrics.length > 0">\n <strong>Metrics</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="metric"\n ng-repeat="item in tree.metrics"></model-tree-line>\n </ul>\n <br />\n </div>\n \n <div ng-show="tree.semantic_models.length > 0">\n <strong>Semantic Models</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="semantic_model"\n ng-repeat="item in tree.semantic_models"></model-tree-line>\n </ul>\n <br />\n </div>\n\n <strong>Projects</strong>\n <ul>\n <model-tree-line\n item="item"\n resource-type="model"\n ng-repeat="item in tree.project"></model-tree-line>\n </ul>\n </div>\n </li>\n\n <li>\n <div class="menu" ng-show="nav_selected == \'database\'">\n <strong>Tables and Views</strong>\n <ul>\n <model-tree-line\n item="item"\n resource-type="model"\n ng-repeat="item in tree.database"></model-tree-line>\n </ul>\n </div>\n </li>\n\n <li>\n <div class="menu" ng-show="nav_selected == \'group\'">\n <strong>Public Models</strong>\n <ul><model-tree-line\n item="item"\n resource-type="model"\n ng-repeat="item in tree.groups"></model-tree-line>\n </ul>\n </div>\n </li>\n </ul>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";const r=n(425),i=n(21);n(426),angular.module("dbt").directive("modelTreeLine",["$state",function(e){return{scope:{item:"=",depth:"<",resourceType:"@"},replace:!0,templateUrl:r,link:function(t,n,r,o){t.depth||(t.depth=0);var a=t.item.name;if(a){var s=i.last(a,15).join(""),l=i.initial(a,s.length).join("");t.name={name:a,start:l,end:s},t.name_start=l,t.name_end=s,t.onFolderClick=function(n){if(n.active=!n.active,"source"==t.resourceType){var r=n.name;e.go("dbt.source_list",{source:r})}else 0===t.depth&&"database"!==n.type&&e.go("dbt.project_overview",{project_name:n.name})},t.activate=function(n){t.$emit("clearSearch"),n.active=!0;var r="dbt."+n.node.resource_type;e.go(r,{unique_id:n.unique_id})},t.getIcon=function(e,t){return"#"+{header:{on:"icn-down",off:"icn-right"},database:{on:"icn-db-on",off:"icn-db"},schema:{on:"icn-tree-on",off:"icn-tree"},table:{on:"icn-doc-on",off:"icn-doc"},folder:{on:"icn-dir-on",off:"icn-dir"},file:{on:"icn-doc-on",off:"icn-doc"},group:{on:"icn-filter",off:"icn-filter"}}[e][t]},t.getClass=function(e){return{active:e.active,"menu-tree":"header"==e.type||"schema"==e.type||"folder"==e.type,"menu-main":"header"==e.type,"menu-node":"file"==e.type||"table"==e.type}}}}}}])},function(e,t){var n="/components/model_tree/model_tree_line.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<li class=\'unselectable\'>\n\n <a ng-if="!item.unique_id"\n class=\'unselectable\'\n ng-class="getClass(item)"\n ng-click="onFolderClick(item)">\n <span class="filename">\n <span class="filename-normal">\n <svg class="icn menu-icon-on"><use xlink:href="{{ getIcon(item.type, \'on\') }}"></use></svg>\n <svg class="icn menu-icon-off"><use xlink:href="{{ getIcon(item.type, \'off\') }}"></use></svg>\n </span>\n <span class="filename-ellip">{{name.start}}</span>\n <span class="filename-normal">{{name.end}}</span>\n </span>\n </a>\n\n <a ng-if="item.unique_id"\n class=\'unselectable\'\n ng-class="getClass(item)"\n ng-click="activate(item)"\n data-nav-unique-id="{{ item.unique_id }}"\n title="{{ name.name }}">\n <span class="filename">\n <span class="filename-normal">\n <svg class="icn menu-icon-on"><use xlink:href="{{ getIcon(item.type, \'on\') }}"></use></svg>\n <svg class="icn menu-icon-off"><use xlink:href="{{ getIcon(item.type, \'off\') }}"></use></svg>\n </span>\n <span class="filename-ellip">{{name.start}}</span>\n <span class="filename-normal">{{name.end}}</span>\n </span>\n </a>\n\n <ul ng-if="item.items">\n <model-tree-line\n resource-type="{{ resourceType }}"\n item="subitem"\n depth="depth + 1"\n ng-repeat="subitem in item.items" />\n </ul>\n</li>\n')}]),e.exports=n},function(e,t,n){var r=n(427);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"\n.unselectable{\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n",""])},function(e,t,n){"use strict";const r=n(9),i=n(429);n(33);n(206),r.module("dbt").directive("docsSearch",["$sce","project",function(e,t){return{scope:{query:"=",results:"=",onSelect:"&"},replace:!0,templateUrl:i,link:function(n){n.max_results=20,n.show_all=!1,n.max_results_columns=3,n.limit_columns={},n.checkboxStatus={show_names:!1,show_descriptions:!1,show_columns:!1,show_column_descriptions:!1,show_code:!1,show_tags:!1},n.limit_search=function(e,t,r){return t<n.max_results||n.show_all},n.getState=function(e){return"dbt."+e.resource_type},n.getModelName=function(e){return"source"==e.resource_type?e.source_name+"."+e.name:"macro"==e.resource_type?e.package_name+"."+e.name:"metric"==e.resource_type?e.label:"semantic_model"==e.resource_type?e.name:"exposure"==e.resource_type||"model"==e.resource_type&&null!=e.version?e.label:e.name};function r(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function i(e){return _.words(e.toLowerCase())}n.$watchGroup(["query","checkboxStatus.show_names","checkboxStatus.show_descriptions","checkboxStatus.show_columns","checkboxStatus.show_column_descriptions","checkboxStatus.show_code","checkboxStatus.show_tags"],(function(){n.results=function(e,t){if(!_.some(_.values(t)))return e;let n=[],r=[];const{show_names:i,show_descriptions:o,show_columns:a,show_column_descriptions:s,show_code:l,show_tags:c}=t;return _.each(e,(function(e){_.each(e.matches,(function(t){if(!r.includes(e.model.unique_id)){const u=i&&("name"===t.key||"label"==t.key),d=o&&"description"==t.key,p=a&&"columns"===t.key,f=s&&"column_description"===t.key,h=l&&"raw_code"===t.key,g=c&&"tags"===t.key;(u||d||p||f||h||g)&&(r.push(e.model.unique_id),n.push(e))}}))})),n}(t.search(n.query),n.checkboxStatus)})),n.shorten=function(e){if(null!=e&&e.trim().length>0&&null!=n.query&&n.query.trim().length>0){let t=e.replace(/\s+/g," "),o=r(i(n.query)[0]),a=t.search(new RegExp(o)),s=a-75<0?0:a-75,l=a+75>t.length?t.length:a+75;return"..."+t.substring(s,l)+"..."}return e},n.highlight=function(t){if(!n.query||!t)return e.trustAsHtml(t);let o="("+i(n.query).map(e=>r(e)).join(")|(")+")";return e.trustAsHtml(t.replace(new RegExp(o,"gi"),'<span class="search-result-match">$&</span>'))},n.$watch("query",(function(e,t){0==e.length&&(n.show_all=!1,n.limit_columns={})})),n.columnFilter=function(e){var t=[];let r=i(n.query);for(var o in e)r.every(e=>-1!=o.toLowerCase().indexOf(e))&&t.push(o);return t},n.limitColumns=function(e){return void 0!==n.limit_columns[e]?n.limit_columns[e]:3}}}}])},function(e,t){var n="/components/search/search.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="app-scroll">\n <style>\n .search-result-match {\n background-color: #eee;\n }\n .spacing {\n margin-right: 0.25em;\n }\n .sub-results {\n margin-left: 36px;\n }\n </style>\n <div class="app-title">\n <div class="app-frame app-pad">\n <h1>\n <span class="break">{{ query }}</span>\n <small><span>{{ results.length }}</span> search results</small>\n </h1>\n <input type="checkbox" id="name" ng-model="checkboxStatus.show_names" ng-click="filterResults(results, checkboxStatus)" style = "margin-left:10px;margin-right:5px">\n <label for="name" style="margin-right:25px">Name</label> \n <input type="checkbox" id="desc" ng-model="checkboxStatus.show_descriptions" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="desc" style="margin-right:25px;">Description</label> \n <input type="checkbox" id="column" ng-model="checkboxStatus.show_columns" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="column" style="margin-right:25px;">Column</label> \n <input type="checkbox" id="column_description" ng-model="checkboxStatus.show_column_descriptions" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="column_description" style="margin-right:25px;">Column Description</label>\n <input type="checkbox" id="code" ng-model="checkboxStatus.show_code" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="code" style="margin-right:15px;">SQL</label>\n <input type="checkbox" id="tag" ng-model="checkboxStatus.show_tags" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="code" style="margin-right:15px;">Tags</label>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <div class="results">\n <div ng-repeat="result in results | filter:limit_search | orderBy:\'overallWeight\':true track by result.model.unique_id"\n data-ui-state="getState(result.model)" data-ui-state-params="{unique_id: result.model.unique_id}"\n ng-click="onSelect()"\n class="result search-result a">\n <div class="result-content">\n <div class="result-icn">\n <svg class="icn "><use xlink:href="#icn-doc"></use></svg>\n </div>\n <div class="result-body">\n <h4 class="a">\n <span ng-bind-html="highlight(getModelName(result.model))"></span>\n <small>{{result.model.resource_type}}</small>\n </h4>\n <p ng-bind-html="highlight(shorten(result.model.description))"></p>\n </div>\n </div>\n <div class="sub-results" ng-show="query.length > 0">\n <span ng-repeat="column in columnFilter(result.model.columns) | limitTo:limitColumns(result.model.unique_id)">\n <span ng-show="$first === true">columns:</span>\n <span ng-bind-html="highlight(column + \',\')" ng-show="$last === false"></span>\n <span ng-bind-html="highlight(column)" ng-show="$last === true"></span>\n </span>\n <a\n ng-show="columnFilter(result.model.columns).length > max_results_columns && !limit_columns[result.model.unique_id]"\n ng-click="$event.stopPropagation(); limit_columns[result.model.unique_id] = 100">Show {{ columnFilter(result.model.columns).length - max_results_columns }} more</a>\n </div>\n <div class="sub-results" ng-show="query.length > 0">\n <span>\n <span ng-bind-html = "highlight(shorten(result.model[\'raw_code\']))"></span>\n </span>\n </div>\n <div class="sub-results" ng-show="query.length > 0">\n <span ng-repeat="tag in result.model.tags">\n <span ng-show="$first === true">tags:</span>\n <span ng-bind-html="highlight(tag + \',\')" ng-show="$last === false"></span>\n <span ng-bind-html="highlight(tag)" ng-show="$last === true"></span>\n </span>\n </div>\n </div>\n <a\n ng-show="results.length >= max_results && !show_all"\n ng-click="show_all = true">Show {{ results.length - max_results }} more</a>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){e.exports={getQuoteChar:function(e){var t=(e||{}).adapter_type;return["bigquery","spark","databricks"].indexOf(t)>=0?"`":'"'}}},function(e,t,n){"use strict";const r=n(432);n(433);const i=n(21);angular.module("dbt").directive("tableDetails",["$sce","$filter","project",function(e,t,n){return{scope:{model:"=",extras:"=",exclude:"<"},templateUrl:r,link:function(e){function r(e,t){if(0==e)return"0 bytes";if(e<1&&(e*=1e6),isNaN(parseFloat(e))||!isFinite(e))return"-";void 0===t&&(t=0);var n=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,Math.floor(n))).toFixed(t)+" "+["bytes","KB","MB","GB","TB","PB"][n]}function o(e,n){return void 0===n&&(n=2),t("number")(100*e,n)+"%"}function a(e,n){return void 0===n&&(n=0),t("number")(e,n)}function s(e){var t,r,o=!e.metadata,a=e.metadata||{};t=e.database?e.database+".":"",r=o?void 0:"source"==e.resource_type?t+e.schema+"."+e.identifier:t+e.schema+"."+e.alias;const s=e.group?function(e){const{name:t,email:r}=n.project.groups[e].owner,i=[];if(t&&i.push(t),r){const e=i.length>0?`<${r}>`:r;i.push(e)}return i.join(" ")}(`group.${e.package_name}.${e.group}`):a.owner,l=!(!e.hasOwnProperty("config")||!e.config.hasOwnProperty("contract"))&&e.config.contract.enforced;var c,u=[{name:"Owner",value:s},{name:"Type",value:o?void 0:(c=a.type,"BASE TABLE"==c?{type:"table",name:"table"}:"LATE BINDING VIEW"==c?{type:"view",name:"late binding view"}:{type:c.toLowerCase(),name:c.toLowerCase()}).name},{name:"Package",value:e.package_name},{name:"Language",value:e.language},{name:"Relation",value:r},{name:"Access",value:e.access},{name:"Version",value:e.version},{name:"Contract",value:l?"Enforced":"Not Enforced"}];return i.filter(u,(function(e){return void 0!==e.value}))}e.details=[],e.extended=[],e.exclude=e.exclude||[],e.meta=null,e._show_expanded=!1,e.show_expanded=function(t){return void 0!==t&&(e._show_expanded=t),e._show_expanded},e.hasData=function(e){return!(!e||i.isEmpty(e))&&(1!=e.length||0!=e[0].include)},e.$watch("model",(function(t,n){i.property(["metadata","type"])(t);var l,c,u,d=t.hasOwnProperty("sources")&&null!=t.sources[0]?t.sources[0].source_meta:null;if(e.meta=t.meta||d,e.details=s(t),e.extended=(l=t.stats,c={rows:a,row_count:a,num_rows:a,max_varchar:a,pct_used:o,size:r,bytes:r,num_bytes:r},u=i.sortBy(i.values(l),"label"),i.map(u,(function(e){var t=i.clone(e),n=c[e.id];return n&&(t.value=n(e.value),t.label=e.label.replace("Approximate","~"),t.label=e.label.replace("Utilization","Used")),t}))),e.extras){var p=i.filter(e.extras,(function(e){return void 0!==e.value&&null!==e.value}));e.details=e.details.concat(p)}e.show_extended=i.where(e.extended,{include:!0}).length>0})),e.queryTag=function(t){e.$emit("query",t)}}}}])},function(e,t){var n="/components/table_details/table_details.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="section-content">\n <h6>Details</h6>\n <div class="panel">\n <div class="panel-body">\n <div class="details">\n <div class="details-content">\n <div class="detail-group" ng-if="hasData(meta)">\n <div class="detail-body">\n <dl class="detail"\n ng-repeat="(k, v) in meta">\n <dt class="detail-label">{{ k }}</dt>\n <dd class="detail-value">{{ v }}</dd>\n </dl>\n </div>\n </div>\n <div class="detail-group">\n <div class="detail-body">\n <dl class=\'detail\' ng-if="model.tags != undefined && exclude.indexOf(\'tags\') == -1">\n <dt class="detail-label">Tags</dt>\n <dd ng-if="model.tags.length > 0" class="detail-value">\n <span ng-repeat="tag in model.tags"><code><a ng-click=queryTag(tag)>{{ tag }}</a></code> </span>\n </dd>\n <dd ng-if="model.tags.length == 0" class="detail-value">untagged</dd>\n </dl>\n <dl class="detail"\n ng-repeat="item in details">\n <dt class="detail-label">{{ item.name }}</dt>\n <dd class="detail-value">{{ item.value }}</dd>\n </dl>\n </div>\n </div>\n <div class="detail-group" ng-if="hasData(extended)">\n <div class="detail-body">\n <dl class="detail"\n ng-repeat="item in extended"\n ng-if="item.include">\n <dt data-toggle="tooltip" title="{{ item.description }}" class="detail-label">{{ item.label }}</dt>\n <dd class="detail-value">{{ item.value }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){var r=n(434);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"\n\n.details-content {\n table-layout: fixed;\n}\n\n.detail-body {\n white-space: nowrap;\n overflow-x: scroll;\n}\n",""])},function(e,t,n){"use strict";const r=n(436),i=n(21);angular.module("dbt").directive("columnDetails",["project",function(e){return{scope:{model:"="},templateUrl:r,link:function(t){t.has_test=function(e,t){return-1!=i.pluck(e.tests,"short").indexOf(t)},t.has_constraint=function(e,t){return!!e.hasOwnProperty("constraints")&&e.constraints.some(e=>e.type===t)},t.has_more_info=function(e){var t=e.tests||[],n=e.description||"",r=e.meta||{},o=e.constraints||[];return t.length||n.length||o.length||!i.isEmpty(r)},t.toggle_column_expanded=function(e){t.has_more_info(e)&&(e.expanded=!e.expanded)},t.getState=function(e){return"dbt."+e.resource_type},t.get_col_name=function(t){return e.caseColumn(t)},t.get_columns=function(e){var t=i.chain(e.columns).values().sortBy("index").value();return i.each(t,(function(e,t){e.index=t})),t}}}}])},function(e,t){var n="/components/column_details/column_details.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="panel">\n <div class="panel-body">\n <div ng-if="_.isEmpty(model.columns)">\n Column information is not available for this seed\n </div>\n <div class="table-responsive"\n style="max-height: 800px; overflow-y: scroll;"\n ng-if="!_.isEmpty(model.columns)">\n <table class="table table-borderless table-hover">\n <thead>\n <tr>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Column</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Type</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Description</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;">Constraints</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;">Tests</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;" class=\'text-center\'>More?</th>\n </tr>\n </thead>\n <tbody>\n <tr\n ng-repeat-start="column in get_columns(model) track by column.index"\n ng-click="toggle_column_expanded(column)"\n class="column-row"\n ng-class="{\'column-row-selected\': column.expanded}"\n ng-style="{cursor: has_more_info(column) ? \'pointer\' : \'auto\'}">\n <td>\n <div>\n <span class=\'text-dark\'>{{ get_col_name(column.name) }}</span>\n </div>\n </td>\n <td>\n <span class=\'text-dark\'>{{ column.type }}</p>\n </td>\n <td style="text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; max-width: 1px;">\n <span ng-show="!column.expanded">{{ column.description }}</span>\n </td>\n <td>\n <span class="text-light" ng-show="!column.expanded">\n <span data-toggle="tooltip" title="Not Null" ng-if="has_constraint(column, \'not_null\')">N</span>\n <span data-toggle="tooltip" title="Primary Key" ng-if="has_constraint(column, \'primary_key\')">PK</span>\n <span data-toggle="tooltip" title="Foreign Key" ng-if="has_constraint(column, \'foreign_key\')">FK</span>\n <span data-toggle="tooltip" title="Check" ng-if="has_constraint(column, \'check\')">C</span>\n <span data-toggle="tooltip" title="Custom" ng-if="has_constraint(column, \'custom\')">+</span>\n </span>\n </td>\n <td>\n <span class="text-light" ng-show="!column.expanded">\n <span data-toggle="tooltip" title="Unique" ng-if="has_test(column, \'U\')">U</span>\n <span data-toggle="tooltip" title="Not Null" ng-if="has_test(column, \'N\')">N</span>\n <span data-toggle="tooltip" title="Foreign Key" ng-if="has_test(column, \'F\')">F</span>\n <span data-toggle="tooltip" title="Accepted Values" ng-if="has_test(column, \'A\')">A</span>\n <span data-toggle="tooltip" title="Custom Test" ng-if="has_test(column, \'+\')">+</span>\n </span>\n </td>\n <td class=\'text-center\'>\n <span class=\'text-light\' ng-show="has_more_info(column)">\n <span ng-if="column.expanded">\n <svg class="icn"><use xlink:href="#icn-up"></use></svg>\n </span>\n <span ng-if="!column.expanded">\n <svg class="icn"><use xlink:href="#icn-right"></use></svg>\n </span>\n </span>\n </td>\n </tr>\n <tr ng-repeat-end ng-show="column.expanded" style="background-color: white; padding: 10px">\n <td colspan="5" class="column-expanded">\n <div style="padding: 5px 20px">\n <div ng-show="column.meta">\n <h5>Details</h5>\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail"\n ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="(k, v) in column.meta">\n <dt class="detail-label">{{ k }}</dt>\n <dd class="detail-value">{{ v }}</dd>\n </dl>\n </div>\n </div>\n </div>\n\n <div style="margin-bottom: 15px" ng-if="column.description.length">\n <h5>Description</h5>\n <span marked="column.description"></span>\n </div>\n\n <div ng-show="column.constraints && column.constraints.length" style="margin-bottom: 15px">\n <h5>Constraints</h5>\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail" ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="constraint in column.constraints">\n <dt class="detail-label">Name</dt>\n <dd class="detail-value">{{ constraint.name }}</dd>\n <dt class="detail-label">Type</dt>\n <dd class="detail-value">{{ constraint.type }}</dd>\n <dt class="detail-label">Expression</dt>\n <dd class="detail-value">{{ constraint.expression }}</dd>\n </dl>\n </div>\n </div>\n </div>\n\n <div ng-show="column.tests && column.tests.length" style="margin-bottom: 15px">\n <h5>Generic Tests</h5>\n <ul class="list-unstyled" style="margin-top: 2px">\n <li ng-repeat="test in column.tests" ng-switch on="test.short" class=\'text-light\'>\n <span ng-switch-when="F">\n Foreign Key\n <span ng-if="test.fk_model.unique_id">\n <a data-ui-state="getState(test.fk_model)"\n data-ui-state-params="{unique_id: test.fk_model.unique_id}">\n to {{ test.fk_model.name }}\n </a> on <code>{{ test.fk_field }}</code>\n </span>\n </span>\n <span ng-switch-when="P">Primary Key</span>\n <span ng-switch-when="U">Unique</span>\n <span ng-switch-when="N">Not Null</span>\n <span ng-switch-default>{{ test.label }}</span>\n </li>\n </ul>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";const r=n(438);n(33),n(439);function i(e){return"python"===e?"language-python":"language-sql"}angular.module("dbt").directive("codeBlock",["code","$timeout",function(e,t){return{scope:{versions:"=",default:"<",language:"="},restrict:"E",templateUrl:r,link:function(n,r){n.selected_version=n.default,n.language_class=i(n.language),n.source=null,n.setSelected=function(r){n.selected_version=r,n.source=n.versions[r]||"";const i=n.source.trim();n.highlighted=e.highlight(i,n.language),t((function(){Prism.highlightAll()}))},n.titleCase=function(e){return e.charAt(0).toUpperCase()+e.substring(1)},n.copied=!1,n.copy_to_clipboard=function(){e.copy_to_clipboard(n.source),n.copied=!0,setTimeout((function(){n.$apply((function(){n.copied=!1}))}),1e3)},n.$watch("language",(function(e,t){e&&e!=t&&(n.language_class=i(e))}),!0),n.$watch("versions",(function(e,t){if(e)if(n.default)n.setSelected(n.default);else{var r=Object.keys(n.versions);r.length>0&&n.setSelected(r[0])}}),!0)}}}])},function(e,t){var n="/components/code_block/code_block.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<h6>Code</h6>\n<div class="panel">\n <div class="panel-body">\n <ul class="nav nav-tabs">\n <li\n ng-repeat="(version_name, version) in versions"\n ng-class="{active: version_name == selected_version}">\n <a ng-click="setSelected(version_name)">{{ titleCase(version_name) }}</a>\n </li>\n <li class=\'nav-pull-right\'></li>\n <li>\n <a class=\'unselectable\'\n ng-click="copy_to_clipboard()">{{ copied ? \'copied\' : \'copy to clipboard\' }}</a>\n </li>\n </ul>\n <div style="margin-top: 1px">\n <pre style="background-color: white"\n class=\'code line-numbers\'><code class="source-code highlight" ng-class="language_class" ng-bind-html="highlighted"></code></pre>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){var r=n(440);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"pre.code {\n border: none !important;\n overflow-y: visible !important;\n overflow-x: scroll !important;\n padding-bottom: 10px;\n}\n\npre.code code {\n font-family: Monaco, monospace !important;\n font-weight: 400 !important;\n}\n\n.line-numbers-rows {\n border: none !important;\n}\n",""])},function(e,t,n){"use strict";const r=n(442);angular.module("dbt").directive("macroArguments",[function(){return{scope:{macro:"="},templateUrl:r,link:function(e){_.each(e.macro.arguments,(function(e){e.expanded=!1}))}}}])},function(e,t){var n="/components/macro_arguments/index.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n .arg-header {\n background-color: white;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n</style>\n\n<div class="panel">\n <div class="panel-body">\n <div ng-if="macro.arguments.length == 0">\n Details are not available for this macro. This may be due to the fact that this macro doesn\'t have any\n arguments or that they haven\'t been documented yet.\n </div>\n <div ng-if="macro.arguments.length > 0" class="table-responsive" style="max-height: 800px; overflow-y: scroll;">\n <table class="table table-borderless table-hover">\n <thead>\n <tr>\n <th class="arg-header">Argument</th>\n <th class="arg-header">Type</th>\n <th class="arg-header">Description</th>\n <th style="width: 1px;" class=\'text-center\'>More?</th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat-start="arg in macro.arguments" ng-click="arg.expanded = !arg.expanded"\n ng-class="{\'column-row-selected\': arg.expanded}"\n ng-style="{cursor: arg.description ? \'pointer\' : \'auto\'}" class="column-row">\n <td>\n <div>\n <span class=\'text-dark\'>{{ arg.name }}</span>\n </div>\n </td>\n <td>\n <span class=\'text-dark\'>{{ arg.type }}</p>\n </td>\n <td style="text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; max-width: 1px;">\n <span ng-show="!arg.expanded">{{ arg.description }}</span>\n </td>\n <td class=\'text-center\'>\n <span class=\'text-light\' ng-show="arg.description">\n <span ng-if="arg.expanded">\n <svg class="icn">\n <use xlink:href="#icn-up"></use>\n </svg>\n </span>\n <span ng-if="!arg.expanded">\n <svg class="icn">\n <use xlink:href="#icn-right"></use>\n </svg>\n </span>\n </span>\n </td>\n </tr>\n <tr ng-repeat-end ng-show="arg.expanded" style="background-color: white; padding: 10px">\n <td colspan="4" class="column-expanded">\n <div style="padding: 5px 20px">\n <div style="margin-bottom: 15px">\n <h5>Description</h5>\n <span marked="arg.description"></span>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";const r=n(444);angular.module("dbt").directive("referenceList",["$state",function(e){return{scope:{references:"=",node:"="},restrict:"E",templateUrl:r,link:function(t){t.selected_type=null,t.setType=function(e){t.selected_type=e,t.nodes=t.references[t.selected_type]},t.getNodeUrl=function(t){var n="dbt."+t.resource_type;return e.href(n,{unique_id:t.unique_id,"#":null})},t.mapResourceType=function(e){return"model"==e?"Models":"seed"==e?"Seeds":"test"==e?"Tests":"snapshot"==e?"Snapshots":"analysis"==e?"Analyses":"macro"==e?"Macros":"exposure"==e?"Exposures":"metric"==e?"Metrics":"semantic_model"==e?"Semantic Models":"operation"==e?"Operations":"Nodes"},t.$watch("references",(function(e){e&&_.size(e)>0?(t.selected_type=_.keys(e)[0],t.has_references=!0,t.nodes=t.references[t.selected_type]):t.has_references=!1}))}}}])},function(e,t){var n="/components/references/index.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="panel">\n <div class="panel-body" ng-if="!has_references">\n No resources reference this {{ node.resource_type }}\n </div>\n <div class="panel-body" ng-if="has_references">\n <ul class="nav nav-tabs">\n <li\n ng-repeat="(resource_type, nodes) in references"\n ng-class="{active: resource_type == selected_type}">\n <a ng-click="setType(resource_type)">\n {{ mapResourceType(resource_type) }}\n </a>\n </li>\n </ul>\n <div style="margin-top: 15px">\n <ul class=\'list-unstyled\'>\n <li ng-repeat="node in nodes">\n <a ng-href="{{ getNodeUrl(node) }}">{{ node.name }}</a>\n </li>\n </ul>\n <div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){n(446),n(448),n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(456),n(457)},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("ModelCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.copied=!1,e.copy_to_clipboard=function(t){r.copy_to_clipboard(t),e.copied=!0,setTimeout((function(){e.$apply((function(){e.copied=!1}))}),1e3)},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"\n-- compiled code not found for this model\n"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"\n.nav-tabs li.nav-pull-right {\n flex: 1 0 auto;\n text-align: right;\n}\n\ntr.column-row-selected {\n\n}\n\ntd.column-expanded{\n padding: 0px !important;\n}\n\ntd.column-expanded > div {\n padding: 5px 10px;\n margin-left: 20px;\n height: 100%;\n\n border-left: 1px solid #ccc !important;\n}\n",""])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("SourceCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.versions={"Sample SQL":r.generateSourceSQL(e.model)},e.extra_table_fields=[{name:"Loader",value:e.model.loader},{name:"Source",value:e.model.source_name}]}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("SeedCtrl",["$scope","$state","project","code","$transitions","$anchorScroll","$location",function(e,t,n,r,o,a,s){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.versions={"Example SQL":r.generateSourceSQL(e.model)}}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("SnapshotCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"Compiled SQL is not available for this snapshot"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("TestCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"\n-- compiled code not found for this model\n"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){"use strict";const r=n(9),i=n(21),o=n(30);n(31),r.module("dbt").controller("MacroCtrl",["$scope","$state","project","code","$transitions","$anchorScroll","$location",function(e,t,n,r,a,s,l){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.macro={},n.ready((function(t){let n=t.macros[e.model_uid];if(e.macro=n,e.references=o.getMacroReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=o.getMacroParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.macro.is_adapter_macro){var r=t.metadata.adapter_type;e.versions=n.impls,n.impls[r]?e.default_version=r:n.impls.default?e.default_version="default":e.default_version=i.keys(n.impls)[0]}else e.default_version="Source",e.versions={Source:e.macro.macro_sql}}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("AnalysisCtrl",["$scope","$state","project","code","$transitions","$anchorScroll","$location",function(e,t,n,r,o,a,s){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.default_version="Source",e.versions={Source:"",Compiled:""},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language,e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code}}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("ExposureCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.exposure={},n.ready((function(t){let n=t.nodes[e.model_uid];var r;e.exposure=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length,e.language=n.language,e.exposure.owner.name&&e.exposure.owner.email?r=`${e.exposure.owner.name} <${e.exposure.owner.email}>`:e.exposure.owner.name?r=""+e.exposure.owner.name:e.exposure.owner.email&&(r=""+e.exposure.owner.email),e.extra_table_fields=[{name:"Maturity",value:e.exposure.maturity},{name:"Owner",value:r},{name:"Exposure name",value:e.exposure.name}]}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("MetricCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.metric={},n.ready((function(t){let n=t.nodes[e.model_uid];e.metric=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length;const r="expression"===e.metric.type?"Expression metric":"Aggregate metric";e.extra_table_fields=[{name:"Metric Type",value:r},{name:"Metric name",value:e.metric.name}]}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("SemanticModelCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.semantic_model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.semantic_model=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length;const r="expression"===e.semantic_model.type?"Expression semantic_model":"Aggregate semantic_model";e.extra_table_fields=[{name:"Semantic Model Type",value:r},{name:"Semantic Model name",value:e.semantic_model.name}]}))}])},function(e,t,n){"use strict";const r=n(9),i=n(30);n(31),r.module("dbt").controller("OperationCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"\n-- compiled code not found for this model\n"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){"use strict";n(9).module("dbt").controller("GraphCtrl",["$scope","$state","$window","graph","project","selectorService",function(e,t,n,r,i,o){function a(e){return e&&"source"==e.resource_type?"source:"+e.source_name+"."+e.name:e&&"exposure"==e.resource_type?"exposure:"+e.name:e&&"metric"==e.resource_type?"metric:"+e.name:e&&"semantic_model"==e.resource_type?"semantic_model:"+e.name:e&&"model"==e.resource_type&&null!=e.version?e.label:e.name?e.name:"*"}e.graph=r.graph,e.graphService=r,e.graphRendered=function(e){r.setGraphReady(e)},e.$watch((function(){return t.params.unique_id}),(function(e,t){e&&e!=t&&i.find_by_id(e,(function(e){e&&("sidebar"==r.orientation?r.showVerticalGraph(a(e),!1):r.showFullGraph(a(e)))})),e||o.clearViewNode()}))}])},function(e,t,n){"use strict";const r=n(9),i=n(21),o=n(33),a=n(460);n(461),n(206),n(469),n(471),n(474),n(478),r.module("dbt").controller("MainController",["$scope","$route","$state","project","graph","selectorService","trackingService","locationService","$transitions",function(e,t,n,r,s,l,c,u,d){function p(t){e.model_uid=t;var n=r.node(t);n&&l.resetSelection(n)}function f(e){e&&setTimeout((function(){var t=o("*[data-nav-unique-id='"+e+"']");t.length&&t[0].scrollIntoView&&t[0].scrollIntoView({behavior:"smooth",block:"center",inline:"center"})}),1)}e.tree={database:{},project:{},sources:{}},e.search={query:"",results:[],is_focused:!1},e.logo=a,e.model_uid=null,e.project={},o("body").bind("keydown",(function(e){"t"==event.key&&"INPUT"!=event.target.tagName&&(o("#search").focus(),event.preventDefault())})),e.onSearchFocus=function(t,n){e.search.is_focused=n},e.clearSearch=function(){e.search.is_focused=!1,e.search.query="",e.search.results=[],o("#search").blur()},e.$on("clearSearch",(function(){e.clearSearch()})),e.$on("query",(function(t,n){e.search.is_focused=!0,e.search.query=n})),e.onSearchKeypress=function(t){"Escape"==t.key&&(e.clearSearch(),t.preventDefault())},r.getModelTree(n.params.unique_id,(function(t){e.tree.database=t.database,e.tree.project=t.project,e.tree.sources=t.sources,e.tree.exposures=t.exposures,e.tree.metrics=t.metrics,e.tree.semantic_models=t.semantic_models,e.tree.groups=t.groups,setTimeout((function(){f(e.model_uid)}))})),d.onSuccess({},(function(t,n){var i=t.router.globals.params,o=l.getViewNode(),a=o?o.unique_id:null,s=i.unique_id,u=!0;if(t.from().name==t.to().name&&a==s&&(u=!1),u&&i.unique_id){var d=r.updateSelected(i.unique_id);e.tree.database=d.database,e.tree.groups=d.groups,e.tree.project=d.project,e.tree.sources=d.sources,e.search.query="",p(i.unique_id),setTimeout((function(){f(i.unique_id)}))}u&&c.track_pageview()})),e.$watch("search.query",(function(t){e.search.results=function(t){if(""===e.search.query)return t;let n={name:10,tags:5,description:3,raw_code:2,columns:1};return i.each(t,(function(t){t.overallWeight=0,i.each(Object.keys(n),(function(r){if(null!=t.model[r]){let o=0,a=t.model[r],s=e.search.query.toLowerCase();if("columns"===r)i.each(a,(function(e){if(e.name){let t=e.name.toLowerCase(),n=0;for(;-1!=n;)n=t.indexOf(s,n),-1!=n&&(o++,n++)}}));else if("tags"===r)i.each(a,(function(e){let t=e.toLowerCase(),n=0;for(;-1!=n;)n=t.indexOf(s,n),-1!=n&&(o++,n++)}));else{a=a.toLowerCase();let e=0;for(;-1!=e;)e=a.indexOf(s,e),-1!=e&&(o++,e++)}t.overallWeight+=o*n[r]}}))})),t}(r.search(t))})),r.init(),r.ready((function(t){e.project=t,e.search.results=r.search("");var o=i.unique(i.pluck(i.values(t.nodes),"package_name")).sort(),a=[null];i.each(t.nodes,(function(e){var t=e.tags;a=i.union(a,t).sort()})),l.init({packages:o,tags:a}),p(n.params.unique_id);var d=u.parseState(n.params);d.show_graph&&s.ready((function(){i.assign(l.selection.dirty,d.selected);var e=l.updateSelection();s.updateGraph(e)}));var f=t.metadata||{};c.init({track:f.send_anonymous_usage_stats,project_id:f.project_id})}))}])},function(e,t){e.exports="data:image/svg+xml,%3Csvg width='242' height='90' viewBox='0 0 242 90' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M240.384 74.5122L239.905 75.8589H239.728L239.249 74.5156V75.8589H238.941V74.0234H239.324L239.816 75.3872L240.309 74.0234H240.691V75.8589H240.384V74.5122ZM238.671 74.3003H238.169V75.8589H237.858V74.3003H237.352V74.0234H238.671V74.3003Z' fill='%23262A38'/%3E %3Cpath d='M154.123 13.915V75.3527H141.672V69.0868C140.37 71.2839 138.499 73.0742 136.22 74.2134C133.779 75.434 131.012 76.085 128.246 76.085C124.828 76.1664 121.41 75.1899 118.562 73.2369C115.633 71.2839 113.354 68.5986 111.889 65.425C110.262 61.7631 109.448 57.8572 109.529 53.8698C109.448 49.8825 110.262 45.9765 111.889 42.3961C113.354 39.3038 115.633 36.6185 118.481 34.7469C121.41 32.8753 124.828 31.9801 128.246 32.0615C130.931 32.0615 133.616 32.6311 135.976 33.8517C138.255 34.991 140.126 36.6999 141.428 38.8156V18.0651L154.123 13.915ZM139.15 63.2279C140.777 61.1121 141.672 58.0199 141.672 54.0326C141.672 50.0452 140.859 47.0344 139.15 44.9187C137.441 42.8029 134.755 41.5823 131.989 41.6637C129.222 41.5009 126.537 42.7215 124.746 44.8373C123.038 46.953 122.142 49.9639 122.142 53.8698C122.142 57.8572 123.038 60.9494 124.746 63.1465C126.455 65.3436 129.222 66.5642 131.989 66.4828C135.081 66.4828 137.522 65.3436 139.15 63.2279Z' fill='%23262A38'/%3E %3Cpath d='M198.635 34.6655C201.564 36.5371 203.843 39.2225 205.226 42.3147C206.853 45.8952 207.667 49.8011 207.586 53.7885C207.667 57.7758 206.853 61.7632 205.226 65.3436C203.761 68.5172 201.483 71.2026 198.553 73.1556C195.705 75.0272 192.287 76.0037 188.87 75.9223C186.103 76.0037 183.336 75.3527 180.895 74.0507C178.617 72.9114 176.745 71.1212 175.524 68.9241V75.2713H162.993V18.0651L175.606 13.915V38.9783C176.826 36.7812 178.698 34.991 180.976 33.8517C183.418 32.5498 186.103 31.8988 188.87 31.9801C192.287 31.8988 195.705 32.8753 198.635 34.6655ZM192.45 63.1465C194.159 60.9494 194.973 57.8572 194.973 53.7885C194.973 49.8825 194.159 46.8716 192.45 44.7559C190.741 42.6402 188.381 41.5823 185.289 41.5823C182.523 41.4196 179.837 42.6402 178.047 44.8373C176.338 47.0344 175.524 50.0452 175.524 53.9512C175.524 57.9386 176.338 61.0308 178.047 63.1465C179.756 65.3436 182.441 66.5642 185.289 66.4015C188.056 66.5642 190.741 65.3436 192.45 63.1465Z' fill='%23262A38'/%3E %3Cpath d='M225 42.4774V58.915C225 61.2749 225.651 62.9838 226.791 64.0416C228.093 65.1809 229.801 65.7505 231.592 65.6691C232.975 65.6691 234.44 65.425 235.742 65.0995V74.8644C233.382 75.6782 230.941 76.085 228.499 76.0037C223.292 76.0037 219.304 74.5389 216.537 71.6094C213.771 68.68 212.387 64.5299 212.387 59.1592V23.1103L225 19.0416V33.038H235.742V42.4774H225Z' fill='%23262A38'/%3E %3Cpath d='M86.1754 3.74322C88.2911 5.77758 89.6745 8.46293 90 11.3924C90 12.613 89.6745 13.4268 88.9421 14.9729C88.2098 16.519 79.1772 32.1429 76.4919 36.4557C74.9458 38.9783 74.132 41.9892 74.132 44.9186C74.132 47.9295 74.9458 50.859 76.4919 53.3816C79.1772 57.6944 88.2098 73.3996 88.9421 74.9457C89.6745 76.4919 90 77.2242 90 78.4448C89.6745 81.3743 88.3725 84.0597 86.2568 86.0127C84.2224 88.1284 81.5371 89.5118 78.689 89.7559C77.4684 89.7559 76.6546 89.4304 75.1899 88.698C73.7251 87.9656 57.7758 79.1772 53.4629 76.4919C53.1374 76.3291 52.8119 76.085 52.4051 75.9222L31.085 63.3092C31.5732 67.3779 33.3635 71.2839 36.2929 74.132C36.8626 74.7016 37.4322 75.1899 38.0832 75.6781C37.5949 75.9222 37.0253 76.1664 36.5371 76.4919C32.2242 79.1772 16.519 88.2098 14.9729 88.9421C13.4268 89.6745 12.6944 90 11.3924 90C8.46293 89.6745 5.77758 88.3725 3.82459 86.2568C1.70886 84.2224 0.325497 81.5371 0 78.6076C0.0813743 77.387 0.406872 76.1664 1.05787 75.1085C1.79024 73.5624 10.8228 57.8571 13.5081 53.5443C15.0542 51.0217 15.868 48.0922 15.868 45.0814C15.868 42.0705 15.0542 39.141 13.5081 36.6184C10.8228 32.1429 1.70886 16.4376 1.05787 14.8915C0.406872 13.8336 0.0813743 12.613 0 11.3924C0.325497 8.46293 1.62749 5.77758 3.74322 3.74322C5.77758 1.62749 8.46293 0.325497 11.3924 0C12.613 0.0813743 13.8336 0.406872 14.9729 1.05787C16.2749 1.62749 27.7486 8.30018 33.8517 11.8807L35.2351 12.6944C35.7233 13.0199 36.1302 13.264 36.4557 13.4268L37.1067 13.8336L58.8336 26.6908C58.3454 21.8083 55.8228 17.3327 51.9168 14.3219C52.4051 14.0778 52.9747 13.8336 53.4629 13.5081C57.7758 10.8228 73.481 1.70886 75.0271 1.05787C76.085 0.406872 77.3056 0.0813743 78.6076 0C81.4557 0.325497 84.1411 1.62749 86.1754 3.74322ZM46.1392 50.7776L50.7776 46.1392C51.4286 45.4882 51.4286 44.5118 50.7776 43.8608L46.1392 39.2224C45.4882 38.5714 44.5118 38.5714 43.8608 39.2224L39.2224 43.8608C38.5714 44.5118 38.5714 45.4882 39.2224 46.1392L43.8608 50.7776C44.4304 51.3472 45.4882 51.3472 46.1392 50.7776Z' fill='%23FF694A'/%3E %3C/svg%3E"},function(e,t,n){"use strict";n.r(t);var r=n(63),i=n.n(r);n(462),n(463),n(464),n(465),n(467);const o=n(9),a=(n(33),n(21));window.Prism=i.a,o.module("dbt").factory("code",["$sce",function(e){var t={copied:!1,highlight:function(t,n="sql"){if("sql"==n)var r=i.a.highlight(t,i.a.languages.sql,"sql");else if("python"==n)r=i.a.highlight(t,i.a.languages.python,"python");return e.trustAsHtml(r)},copy_to_clipboard:function(e){var t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)},generateSourceSQL:function(e){var t=["select"],n=a.size(e.columns),r=a.keys(e.columns);a.each(r,(function(e,r){var i=" "+e;r+1!=n&&(i+=","),t.push(i)}));const i=(e.database?e.database+".":"")+e.schema+"."+e.identifier;return t.push("from "+i),t.join("\n")}};return t}])},function(e,t){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},function(e,t){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern://,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},function(e,t){!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(e,t){if("PRE"===e.tagName&&e.classList.contains("line-numbers")){var n=e.querySelector(".line-numbers-rows");if(n){var r=parseInt(e.getAttribute("data-start"),10)||1,i=r+(n.children.length-1);t<r&&(t=r),t>i&&(t=i);var o=t-r;return n.children[o]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},n=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&n===window.innerWidth||(n=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var n=t.element,i=n.parentNode;if(i&&/pre/i.test(i.nodeName)&&!n.querySelector(".line-numbers-rows")&&Prism.util.isActive(n,"line-numbers")){n.classList.remove("line-numbers"),i.classList.add("line-numbers");var o,a=t.code.match(e),s=a?a.length+1:1,l=new Array(s+1).join("<span></span>");(o=document.createElement("span")).setAttribute("aria-hidden","true"),o.className="line-numbers-rows",o.innerHTML=l,i.hasAttribute("data-start")&&(i.style.counterReset="linenumber "+(parseInt(i.getAttribute("data-start"),10)-1)),t.element.appendChild(o),r([i]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(t){if(0!=(t=t.filter((function(e){var t=function(e){if(!e)return null;return window.getComputedStyle?getComputedStyle(e):e.currentStyle||null}(e)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var n=t.map((function(t){var n=t.querySelector("code"),r=t.querySelector(".line-numbers-rows");if(n&&r){var i=t.querySelector(".line-numbers-sizer"),o=n.textContent.split(e);i||((i=document.createElement("span")).className="line-numbers-sizer",n.appendChild(i)),i.innerHTML="0",i.style.display="block";var a=i.getBoundingClientRect().height;return i.innerHTML="",{element:t,lines:o,lineHeights:[],oneLinerHeight:a,sizer:i}}})).filter(Boolean);n.forEach((function(e){var t=e.sizer,n=e.lines,r=e.lineHeights,i=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach((function(e,n){if(e&&e.length>1){var o=t.appendChild(document.createElement("span"));o.style.display="block",o.textContent=e}else r[n]=i}))})),n.forEach((function(e){for(var t=e.sizer,n=e.lineHeights,r=0,i=0;i<n.length;i++)void 0===n[i]&&(n[i]=t.children[r++].getBoundingClientRect().height)})),n.forEach((function(e){var t=e.sizer,n=e.element.querySelector(".line-numbers-rows");t.style.display="none",t.innerHTML="",e.lineHeights.forEach((function(e,t){n.children[t].style.height=e+"px"}))}))}}}()},function(e,t,n){var r=n(466);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,'pre[class*="language-"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*="language-"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n',""])},function(e,t,n){var r=n(468);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,'/**\n * GHColors theme by Avi Aryan (http://aviaryan.in)\n * Inspired by Github syntax coloring\n */\n\ncode[class*="language-"],\npre[class*="language-"] {\n\tcolor: #393A34;\n\tfont-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;\n\tdirection: ltr;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tfont-size: .9em;\n\tline-height: 1.2em;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\npre > code[class*="language-"] {\n\tfont-size: 1em;\n}\n\npre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,\ncode[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {\n\tbackground: #b3d4fc;\n}\n\npre[class*="language-"]::selection, pre[class*="language-"] ::selection,\ncode[class*="language-"]::selection, code[class*="language-"] ::selection {\n\tbackground: #b3d4fc;\n}\n\n/* Code blocks */\npre[class*="language-"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n\tborder: 1px solid #dddddd;\n\tbackground-color: white;\n}\n\n/* Inline code */\n:not(pre) > code[class*="language-"] {\n\tpadding: .2em;\n\tpadding-top: 1px;\n\tpadding-bottom: 1px;\n\tbackground: #f8f8f8;\n\tborder: 1px solid #dddddd;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: #999988;\n\tfont-style: italic;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n.token.string,\n.token.attr-value {\n\tcolor: #e3116c;\n}\n\n.token.punctuation,\n.token.operator {\n\tcolor: #393A34; /* no highlight */\n}\n\n.token.entity,\n.token.url,\n.token.symbol,\n.token.number,\n.token.boolean,\n.token.variable,\n.token.constant,\n.token.property,\n.token.regex,\n.token.inserted {\n\tcolor: #36acaa;\n}\n\n.token.atrule,\n.token.keyword,\n.token.attr-name,\n.language-autohotkey .token.selector {\n\tcolor: #00a4db;\n}\n\n.token.function,\n.token.deleted,\n.language-autohotkey .token.tag {\n\tcolor: #9a050f;\n}\n\n.token.tag,\n.token.selector,\n.language-autohotkey .token.keyword {\n\tcolor: #00009f;\n}\n\n.token.important,\n.token.function,\n.token.bold {\n\tfont-weight: bold;\n}\n\n.token.italic {\n\tfont-style: italic;\n}\n',""])},function(e,t,n){n(33);const r=n(21),i=n(148),o=n(203),a=n(470);angular.module("dbt").factory("graph",["$state","$window","$q","selectorService","project","locationService",function(e,t,n,s,l,c){var u={vertical:{userPanningEnabled:!1,boxSelectionEnabled:!1,maxZoom:1.5},horizontal:{userPanningEnabled:!0,boxSelectionEnabled:!1,maxZoom:1,minZoom:.05}},d={none:{name:"null"},left_right:{name:"dagre",rankDir:"LR",rankSep:200,edgeSep:30,nodeSep:50},top_down:{name:"preset",positions:function(t){var n=e.params.unique_id;if(!n)return{x:0,y:0};var a=p.graph.pristine.dag,s=r.sortBy(o.ancestorNodes(a,n,1)),l=r.sortBy(o.descendentNodes(a,n,1)),c=r.partial(r.includes,s),u=r.partial(r.includes,l),d=a.filterNodes(c),f=a.filterNodes(u);return function(e,t,n,i){var o,a=100/(1+Math.max(t.length,n.length));if(e==i)return{x:0,y:0};if(r.includes(t,i))o={set:t,index:r.indexOf(t,i),factor:-1,type:"parent"};else{if(!r.includes(n,i))return{x:0,y:0};o={set:n,index:r.indexOf(n,i),factor:1,type:"child"}}var s=o.set.length;if("parent"==o.type)var l={x:(0+o.index)*a,y:-200-100*(s-o.index-1)};else l={x:(0+o.index)*a,y:200+100*(s-o.index-1)};return l}(n,i.alg.topsort(d),i.alg.topsort(f).reverse(),t.data("id"))}}},p={loading:!0,loaded:n.defer(),graph_element:null,orientation:"sidebar",expanded:!1,graph:{options:u.vertical,pristine:{nodes:{},edges:{},dag:null},elements:[],layout:d.none,style:[{selector:"edge.vertical",style:{"curve-style":"unbundled-bezier","target-arrow-shape":"triangle-backcurve","target-arrow-color":"#027599","arrow-scale":1.5,"line-color":"#027599",width:3,"target-distance-from-node":"5px","source-endpoint":"0% 50%","target-endpoint":"0deg"}},{selector:"edge.horizontal",style:{"curve-style":"unbundled-bezier","target-arrow-shape":"triangle-backcurve","target-arrow-color":"#006f8a","arrow-scale":1.5,"target-distance-from-node":"10px","source-distance-from-node":"5px","line-color":"#006f8a",width:3,"source-endpoint":"50% 0%","target-endpoint":"270deg"}},{selector:"edge[selected=1]",style:{"line-color":"#bd6bb6","target-arrow-color":"#bd6bb6","z-index":1}},{selector:'node[display="none"]',style:{display:"none"}},{selector:"node.vertical",style:{"text-margin-x":"5px","background-color":"#0094b3","border-color":"#0094b3","font-size":"16px",shape:"ellipse",color:"#fff",width:"5px",height:"5px",padding:"5px",content:"data(label)","font-weight":300,"text-valign":"center","text-halign":"right"}},{selector:"node.horizontal",style:{"background-color":"#0094b3","border-color":"#0094b3","font-size":"24px",shape:"roundrectangle",color:"#fff",width:"label",height:"label",padding:"12px",content:"data(label)","font-weight":300,"font-family":'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif',"text-valign":"center","text-halign":"center",ghost:"yes","ghost-offset-x":"2px","ghost-offset-y":"4px","ghost-opacity":.5,"text-outline-color":"#000","text-outline-width":"1px","text-outline-opacity":.2}},{selector:'node[resource_type="source"]',style:{"background-color":"#5fb825","border-color":"#5fb825"}},{selector:'node[resource_type="exposure"]',style:{"background-color":"#ff694b","border-color":"#ff694b"}},{selector:'node[resource_type="metric"]',style:{"background-color":"#ff5688","border-color":"#ff5688"}},{selector:'node[resource_type="semantic_model"]',style:{"background-color":"#ffa8c2","border-color":"#ffa8c2"}},{selector:'node[language="python"]',style:{"background-color":"#6a5acd","border-color":"#6a5acd"}},{selector:"node[node_color]",style:{"background-color":"data(node_color)","border-color":"data(node_color)"}},{selector:"node[selected=1]",style:{"background-color":"#bd6bb6","border-color":"#bd6bb6"}},{selector:"node.horizontal[selected=1]",style:{"background-color":"#88447d","border-color":"#88447d"}},{selector:"node.horizontal.dirty",style:{"background-color":"#919599","border-color":"#919599"}},{selector:"node[hidden=1]",style:{"background-color":"#919599","border-color":"#919599","background-opacity":.5}},{selector:'node[access="private"]',style:{"background-opacity":.2,"border-width":2,ghost:"no"}}],ready:function(e){console.log("graph ready")}}};function f(e,t,n){var i=r.map(e,(function(e){return p.graph.pristine.nodes[e]})),o=[];r.flatten(r.each(e,(function(t){var n=p.graph.pristine.edges[t];r.each(n,(function(t){r.includes(e,t.data.target)&&r.includes(e,t.data.source)&&o.push(t)}))})));var s=r.compact(i).concat(r.compact(o));return r.each(p.graph.elements,(function(e){e.data.display="none",e.data.selected=0,e.data.hidden=0,e.classes=n})),r.each(s,(function(e){e.data.display="element",e.classes=n,t&&r.includes(t,e.data.unique_id)&&(e.data.selected=1),r.get(e,["data","docs","show"],!0)||(e.data.hidden=1);var i=r.get(e,["data","docs","node_color"]);i&&a.isValidColor(i)&&(e.data.node_color=i)})),p.graph.elements=r.filter(s,(function(e){return"element"==e.data.display})),e}function h(e,t,n){var r=p.graph.pristine.dag;if(r){var i=p.graph.pristine.nodes,o=s.selectNodes(r,i,e),a=n?o.matched:[];return f(o.selected,a,t)}}return p.setGraphReady=function(e){p.loading=!1,p.loaded.resolve(),p.graph_element=e},p.ready=function(e){p.loaded.promise.then((function(){e(p)}))},p.manifest={},p.packages=[],p.selected_node=null,p.getCanvasHeight=function(){return.8*t.innerHeight+"px"},l.ready((function(e){p.manifest=e,p.packages=r.uniq(r.map(p.manifest.nodes,"package_name")),r.each(r.filter(p.manifest.nodes,(function(e){var t=r.includes(["model","seed","source","snapshot","analysis","exposure","metric","semantic_model","operation"],e.resource_type),n="test"==e.resource_type&&!e.hasOwnProperty("test_metadata");return t||n})),(function(e){var t={group:"nodes",data:r.assign(e,{parent:e.package_name,id:e.unique_id,is_group:"false"})};p.graph.pristine.nodes[e.unique_id]=t})),r.each(p.manifest.parent_map,(function(e,t){r.each(e,(function(e){var n=p.manifest.nodes[e],i=p.manifest.nodes[t];if(r.includes(["model","source","seed","snapshot","metric","semantic_model"],n.resource_type)&&("test"!=i.resource_type||!i.hasOwnProperty("test_metadata"))){var o=n.unique_id+"|"+i.unique_id,a={group:"edges",data:{source:n.unique_id,target:i.unique_id,unique_id:o}},s=i.unique_id;p.graph.pristine.edges[s]||(p.graph.pristine.edges[s]=[]),p.graph.pristine.edges[s].push(a)}}))}));var t=new i.Graph({directed:!0});r.each(p.graph.pristine.nodes,(function(e){t.setNode(e.data.unique_id,e.data.name)})),r.each(p.graph.pristine.edges,(function(e){r.each(e,(function(e){t.setEdge(e.data.source,e.data.target)}))})),p.graph.pristine.dag=t,p.graph.elements=r.flatten(r.values(p.graph.pristine.nodes).concat(r.values(p.graph.pristine.edges))),f(t.nodes())})),p.hideGraph=function(){p.orientation="sidebar",p.expanded=!1},p.showVerticalGraph=function(e,t){p.orientation="sidebar",t&&(p.expanded=!0);var n=h(r.assign({},s.options,{include:"+"+e+"+",exclude:"",hops:1}),"vertical",!0);return p.graph.layout=d.top_down,p.graph.options=u.vertical,n},p.showFullGraph=function(e){p.orientation="fullscreen",p.expanded=!0;var t=r.assign({},s.options);e?(t.include="+"+e+"+",t.exclude=""):(t.include="",t.exclude="");var n=h(t,"horizontal",!0);return p.graph.layout=d.left_right,p.graph.options=u.horizontal,c.setState(t),n},p.updateGraph=function(e){p.orientation="fullscreen",p.expanded=!0;var t=h(e,"horizontal",!1);return p.graph.layout=d.left_right,p.graph.options=u.horizontal,c.setState(e),t},p.deselectNodes=function(){"fullscreen"==p.orientation&&p.graph_element.elements().data("selected",0)},p.selectNode=function(e){if("fullscreen"==p.orientation){p.graph.pristine.nodes[e];var t=p.graph.pristine.dag,n=r.indexBy(o.ancestorNodes(t,e)),i=r.indexBy(o.descendentNodes(t,e));n[e]=e,i[e]=e;var a=p.graph_element;r.each(p.graph.elements,(function(t){var r=a.$id(t.data.id);n[t.data.source]&&n[t.data.target]||i[t.data.source]&&i[t.data.target]||t.data.unique_id==e?r.data("selected",1):r.data("selected",0)}))}},p.markDirty=function(e){p.markAllClean(),r.each(e,(function(e){p.graph_element.$id(e).addClass("dirty")}))},p.markAllClean=function(){p.graph_element&&p.graph_element.elements().removeClass("dirty")},p}])},function(e,t,n){"use strict";n.r(t),n.d(t,"isValidColor",(function(){return i}));const r=new Set(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);function i(e){if(!e)return!1;const t=e.trim().toLowerCase();if(""===t)return!1;const n=t.match(/^#([A-Fa-f0-9]{3}){1,2}$/),i=r.has(t);return Boolean(n)||i}},function(e,t,n){n(33);const r=n(21),i=n(472);angular.module("dbt").factory("selectorService",["$state",function(e){var t={include:"",exclude:"",packages:[],tags:[null],resource_types:["model","seed","snapshot","source","test","analysis","exposure","metric","semantic_model"],depth:1},n={view_node:null,selection:{clean:r.clone(t),dirty:r.clone(t)},options:{packages:[],tags:[null],resource_types:["model","seed","snapshot","source","test","analysis","exposure","metric","semantic_model"]},init:function(e){r.each(e,(function(e,r){n.options[r]=e,t[r]=e,n.selection.clean[r]=e,n.selection.dirty[r]=e}))},resetSelection:function(e){var i={include:e&&r.includes(["model","seed","snapshot"],e.resource_type)?"+"+e.name+"+":e&&"source"==e.resource_type?"+source:"+e.source_name+"."+e.name+"+":e&&"exposure"==e.resource_type?"+exposure:"+e.name:e&&"metric"==e.resource_type?"+metric:"+e.name:e&&"semantic_model"==e.resource_type?"+semantic_model:"+e.name:e&&r.includes(["analysis","test"],e.resource_type)?"+"+e.name:""},o=r.assign({},t,i);n.selection.clean=r.clone(o),n.selection.dirty=r.clone(o),n.view_node=e},getViewNode:function(){return n.view_node},excludeNode:function(e,t){var r,i=n.selection.dirty.exclude,o=t.parents?"+":"",a=t.children?"+":"",s=i.length>0?" ":"";"source"==e.resource_type?(o+="source:",r=e.source_name+"."+e.name):["exposure","metric","semantic_model"].indexOf(e.resource_type)>-1?(o+=e.resource_type+":",r=e.name):r=e.name;var l=i+s+o+r+a;return n.selection.dirty.exclude=l,n.updateSelection()},selectSource:function(e,t){var r="source:"+e+(t.children?"+":"");return n.selection.dirty.include=r,n.updateSelection()},clearViewNode:function(){n.view_node=null},isDirty:function(){return!r.isEqual(n.selection.clean,n.selection.dirty)},updateSelection:function(){return n.selection.clean=r.clone(n.selection.dirty),n.selection.clean},selectNodes:function(e,t,n){return i.selectNodes(e,t,n)}};return n}])},function(e,t,n){const r=n(21),i=n(473);function o(e,t){return t||(t=" "),r.filter(r.uniq(e.split(t)),(function(e){return e.length>0}))}function a(e){var t={raw:e,select_at:!1,select_children:!1,children_depth:null,select_parents:!1,parents_depth:null};const n=new RegExp(""+/^/.source+/(?<childs_parents>(\@))?/.source+/(?<parents>((?<parents_depth>(\d*))\+))?/.source+/((?<method>([\w.]+)):)?/.source+/(?<value>(.*?))/.source+/(?<children>(\+(?<children_depth>(\d*))))?/.source+/$/.source).exec(e).groups;t.select_at="@"==n.childs_parents,t.select_parents=!!n.parents,t.select_children=!!n.children,n.parents_depth&&(t.parents_depth=parseInt(n.parents_depth)),n.children_depth&&(t.children_depth=parseInt(n.children_depth));var r=n.method,i=n.value;return r?-1!=r.indexOf(".")&&([r,selector_modifier]=r.split(".",2),i={config:selector_modifier,value:i}):r="implicit",t.selector_type=r,t.selector_value=i,t}function s(e){var t=o(e," ");return r.map(t,(function(e){var t=o(e,",");return t.length>1?{method:"intersect",selectors:r.map(t,a)}:{method:"none",selectors:r.map([e],a)}}))}function l(e,t){var n=s(e),i=null,o=null;return r.each(n,(function(e){var n="intersect"==e.method?r.intersection:r.union;r.each(e.selectors,(function(e){var r=t(e);null===i?(i=r.matched,o=r.selected):(i=n(i,r.matched),o=n(o,r.selected))}))})),{matched:i||[],selected:o||[]}}e.exports={splitSpecs:o,parseSpec:a,parseSpecs:s,buildSpec:function(e,t,n){return{include:s(e),exclude:s(t),hops:n}},applySpec:l,selectNodes:function(e,t,n){n.include,n.exclude;var o,a=r.partial(i.getNodesFromSpec,e,t,n.hops);r.values(t),o=0==n.include.trim().length?{selected:e.nodes(),matched:[]}:l(n.include,a);var s=l(n.exclude,a),c=o.selected,u=o.matched;c=r.difference(c,s.selected),u=r.difference(u,s.matched);var d=[];return r.each(c,(function(e){var i=t[e];i.data.tags||(i.data.tags=[]);var o=r.includes(n.packages,i.data.package_name),a=r.intersection(n.tags,i.data.tags).length>0,s=r.includes(n.tags,null)&&0==i.data.tags.length,l=r.includes(n.resource_types,i.data.resource_type);o&&(a||s)&&l||d.push(i.data.unique_id)})),{selected:r.difference(c,d),matched:r.difference(u,d)}}}},function(e,t,n){const r=n(21),i=n(203);var o="fqn",a="tag",s="source",l="exposure",c="metric",u="semantic_model",d="group",p="path",f="file",h="package",g="config",m="test_name",v="test_type",b={};function y(e,t,n){var r=e.slice(-1)[0],i=e.slice(-2,-1)[0];if(t===r)return!0;if(version_options=[i,i+"_"+r,i+"."+r],n&&version_options.includes(t))return!0;var o=e.reduce((e,t)=>e.concat(t.split(".")),[]),a=t.split(".");if(o.length<a.length)return!1;for(var s=0;s<a.length;s++){var l=a[s];if("*"==l)return!0;if(o[s]!=l)return!1}return!0}function x(e,t){var n=[];return r.each(e,(function(e){var i=e.data,o=i.fqn,a=null!==i.version;if(o&&"source"!=i.resource_type&&"exposure"!=i.resource_type&&"metric"!=i.resource_type&&"semantic_model"!=i.resource_type){var s=r.rest(o);(y(o,t,a)||y(s,t,a))&&n.push(i)}})),r.uniq(n)}function w(e,t){var n=[],i=t.split("/");return r.each(e,(function(e){var t=(e.data.original_file_path||"").split("/"),o=!0;r.each(i,(function(e,n){"*"==e||""==e||e!=t[n]&&(o=!1)})),o&&n.push(e.data)})),n}function k(e,t){var n=[];return r.each(e,(function(e){var i=e.data.original_file_path.split("/");r.last(i)==t&&n.push(e.data)})),n}function A(e,t){var n=[];return r.each(e,(function(e){var i=e.data.tags;r.includes(i,t)&&n.push(e.data)})),n}function E(e,t){var n=[];return r.each(e,(function(e){e.data.package_name==t&&n.push(e.data)})),n}function S(e,t){var n=[];return r.each(e,(function(e){var r=e.data;r.config&&r.config[t.config]==t.value&&n.push(r)})),n}function $(e,t){var n=[];return r.each(e,(function(e){var r=e.data;r.test_metadata&&r.test_metadata.name==t&&n.push(r)})),n}function C(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("test"!=r.resource_type)return!1;(r.hasOwnProperty("test_metadata")&&["schema","generic"].indexOf(t)>-1||!r.hasOwnProperty("test_metadata")&&["data","singular"].indexOf(t)>-1)&&n.push(r)})),n}function _(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("source"==r.resource_type){var i,o,a=r.source_name,s=r.name;-1!=t.indexOf(".")?[i,o]=t.split(".",2):(i=t,o=null),("*"==i||i==a&&"*"===o||i==a&&o===s||i==a&&null===o)&&n.push(e.data)}})),n}b["implicit"]=function(e,t){var n=x(e,t),i=w(e,t),o=[];t.toLowerCase().endsWith(".sql")&&(o=k(e,t));var a=r.uniq([].concat(r.map(n,"unique_id"),r.map(i,"unique_id"),r.map(o,"unique_id")));return r.map(a,t=>e[t].data)},b[o]=x,b[a]=A,b[s]=_,b[l]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("exposure"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},b[c]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("metric"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},b[u]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("semantic_model"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},b[d]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;r.group==t&&n.push(r)})),n},b[p]=w,b[f]=k,b[h]=E,b[g]=S,b[m]=$,b[v]=C,e.exports={isFQNMatch:y,getNodesByFQN:x,getNodesByTag:A,getNodesBySource:_,getNodesByPath:w,getNodesByPackage:E,getNodesByConfig:S,getNodesByTestName:$,getNodesByTestType:C,getNodesFromSpec:function(e,t,n,o){const a=b[o.selector_type];if(!a)return{selected:[],matched:[]};var s=a(t,o.selector_value),l=[],c=[];return r.each(s,(function(t){var a=t.unique_id;c.push(t.unique_id);var s=[],u=[],d=[];if(o.select_at&&(d=r.union(i.selectAt(e,a))),o.select_parents){var p=n||o.parents_depth;s=i.ancestorNodes(e,a,p)}if(o.select_children){p=n||o.children_depth;u=i.descendentNodes(e,a,p)}l=r.union([a],l,u,s,d)})),{selected:l,matched:c}}}},function(e,t,n){const r=n(9);n(475);r.module("dbt").factory("trackingService",["$location","selectorService","$rootScope",function(e,t,n){var r={initialized:!1,snowplow:null,project_id:null,init:function(e){r.initialized||(r.initialized=!0,r.project_id=e.project_id,!0===e.track&&r.turn_on_tracking())},isHosted:function(){return window.location.hostname.indexOf(".getdbt.com")>-1},turn_on_tracking:function(){var e,t,n,i,o,a;e=window,t=document,n="script",e[i="snowplow"]||(e.GlobalSnowplowNamespace=e.GlobalSnowplowNamespace||[],e.GlobalSnowplowNamespace.push(i),e[i]=function(){(e[i].q=e[i].q||[]).push(arguments)},e[i].q=e[i].q||[],o=t.createElement(n),a=t.getElementsByTagName(n)[0],o.async=1,o.src="//d1fc8wv8zag5ca.cloudfront.net/2.9.0/sp.js",a.parentNode.insertBefore(o,a));var s={appId:"dbt-docs",forceSecureTracker:!0,respectDoNotTrack:!0,userFingerprint:!1,contexts:{webPage:!0}};r.isHosted()&&(s.cookieDomain=".getdbt.com"),r.snowplow=window.snowplow,r.snowplow("newTracker","sp","fishtownanalytics.sinter-collect.com",s),r.snowplow("enableActivityTracking",30,30),r.track_pageview()},fuzzUrls:function(){r.isHosted()||(r.snowplow("setCustomUrl","https://fuzzed.getdbt.com/"),r.snowplow("setReferrerUrl","https://fuzzed.getdbt.com/"))},getContext:function(){return[{schema:"iglu:com.dbt/dbt_docs/jsonschema/1-0-0",data:{is_cloud_hosted:r.isHosted(),core_project_id:r.project_id}}]},track_pageview:function(){if(r.snowplow){r.fuzzUrls();r.snowplow("trackPageView",null,r.getContext())}},track_event:function(e,t,n,i){r.snowplow&&(r.fuzzUrls(),r.snowplow("trackStructEvent","dbt-docs",e,t,n,i,r.getContext()))},track_graph_interaction:function(e,t){r.snowplow&&(r.fuzzUrls(),r.track_event("graph","interact",e,t))}};return r}])},function(e,t,n){var r,i,o,a,s;r=n(476),i=n(204).utf8,o=n(477),a=n(204).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?a.stringToBytes(e):i.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=r.bytesToWords(e),l=8*e.length,c=1732584193,u=-271733879,d=-1732584194,p=271733878,f=0;f<n.length;f++)n[f]=16711935&(n[f]<<8|n[f]>>>24)|4278255360&(n[f]<<24|n[f]>>>8);n[l>>>5]|=128<<l%32,n[14+(l+64>>>9<<4)]=l;var h=s._ff,g=s._gg,m=s._hh,v=s._ii;for(f=0;f<n.length;f+=16){var b=c,y=u,x=d,w=p;c=h(c,u,d,p,n[f+0],7,-680876936),p=h(p,c,u,d,n[f+1],12,-389564586),d=h(d,p,c,u,n[f+2],17,606105819),u=h(u,d,p,c,n[f+3],22,-1044525330),c=h(c,u,d,p,n[f+4],7,-176418897),p=h(p,c,u,d,n[f+5],12,1200080426),d=h(d,p,c,u,n[f+6],17,-1473231341),u=h(u,d,p,c,n[f+7],22,-45705983),c=h(c,u,d,p,n[f+8],7,1770035416),p=h(p,c,u,d,n[f+9],12,-1958414417),d=h(d,p,c,u,n[f+10],17,-42063),u=h(u,d,p,c,n[f+11],22,-1990404162),c=h(c,u,d,p,n[f+12],7,1804603682),p=h(p,c,u,d,n[f+13],12,-40341101),d=h(d,p,c,u,n[f+14],17,-1502002290),c=g(c,u=h(u,d,p,c,n[f+15],22,1236535329),d,p,n[f+1],5,-165796510),p=g(p,c,u,d,n[f+6],9,-1069501632),d=g(d,p,c,u,n[f+11],14,643717713),u=g(u,d,p,c,n[f+0],20,-373897302),c=g(c,u,d,p,n[f+5],5,-701558691),p=g(p,c,u,d,n[f+10],9,38016083),d=g(d,p,c,u,n[f+15],14,-660478335),u=g(u,d,p,c,n[f+4],20,-405537848),c=g(c,u,d,p,n[f+9],5,568446438),p=g(p,c,u,d,n[f+14],9,-1019803690),d=g(d,p,c,u,n[f+3],14,-187363961),u=g(u,d,p,c,n[f+8],20,1163531501),c=g(c,u,d,p,n[f+13],5,-1444681467),p=g(p,c,u,d,n[f+2],9,-51403784),d=g(d,p,c,u,n[f+7],14,1735328473),c=m(c,u=g(u,d,p,c,n[f+12],20,-1926607734),d,p,n[f+5],4,-378558),p=m(p,c,u,d,n[f+8],11,-2022574463),d=m(d,p,c,u,n[f+11],16,1839030562),u=m(u,d,p,c,n[f+14],23,-35309556),c=m(c,u,d,p,n[f+1],4,-1530992060),p=m(p,c,u,d,n[f+4],11,1272893353),d=m(d,p,c,u,n[f+7],16,-155497632),u=m(u,d,p,c,n[f+10],23,-1094730640),c=m(c,u,d,p,n[f+13],4,681279174),p=m(p,c,u,d,n[f+0],11,-358537222),d=m(d,p,c,u,n[f+3],16,-722521979),u=m(u,d,p,c,n[f+6],23,76029189),c=m(c,u,d,p,n[f+9],4,-640364487),p=m(p,c,u,d,n[f+12],11,-421815835),d=m(d,p,c,u,n[f+15],16,530742520),c=v(c,u=m(u,d,p,c,n[f+2],23,-995338651),d,p,n[f+0],6,-198630844),p=v(p,c,u,d,n[f+7],10,1126891415),d=v(d,p,c,u,n[f+14],15,-1416354905),u=v(u,d,p,c,n[f+5],21,-57434055),c=v(c,u,d,p,n[f+12],6,1700485571),p=v(p,c,u,d,n[f+3],10,-1894986606),d=v(d,p,c,u,n[f+10],15,-1051523),u=v(u,d,p,c,n[f+1],21,-2054922799),c=v(c,u,d,p,n[f+8],6,1873313359),p=v(p,c,u,d,n[f+15],10,-30611744),d=v(d,p,c,u,n[f+6],15,-1560198380),u=v(u,d,p,c,n[f+13],21,1309151649),c=v(c,u,d,p,n[f+4],6,-145523070),p=v(p,c,u,d,n[f+11],10,-1120210379),d=v(d,p,c,u,n[f+2],15,718787259),u=v(u,d,p,c,n[f+9],21,-343485551),c=c+b>>>0,u=u+y>>>0,d=d+x>>>0,p=p+w>>>0}return r.endian([c,u,d,p])})._ff=function(e,t,n,r,i,o,a){var s=e+(t&n|~t&r)+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._gg=function(e,t,n,r,i,o,a){var s=e+(t&r|n&~r)+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._hh=function(e,t,n,r,i,o,a){var s=e+(t^n^r)+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._ii=function(e,t,n,r,i,o,a){var s=e+(n^(t|~r))+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?a.bytesToString(n):r.bytesToHex(n)}},function(e,t){var n,r;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var t=[],r=0;r<e.length;r+=3)for(var i=e[r]<<16|e[r+1]<<8|e[r+2],o=0;o<4;o++)8*r+6*o<=8*e.length?t.push(n.charAt(i>>>6*(3-o)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,i=0;r<e.length;i=++r%4)0!=i&&t.push((n.indexOf(e.charAt(r-1))&Math.pow(2,-2*i+8)-1)<<2*i|n.indexOf(e.charAt(r))>>>6-2*i);return t}},e.exports=r},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)} +/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var r=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}function n(n,r){var i={dx:n.v,dv:e(n)},o=t(n,.5*r,i),a=t(n,.5*r,o),s=t(n,r,a),l=1/6*(i.dx+2*(o.dx+a.dx)+s.dx),c=1/6*(i.dv+2*(o.dv+a.dv)+s.dv);return n.x=n.x+l*r,n.v=n.v+c*r,n}return function e(t,r,i){var o,a={x:-1,v:0,tension:null,friction:null},s=[0],l=0,c=void 0,u=void 0;for(t=parseFloat(t)||500,r=parseFloat(r)||20,i=i||null,a.tension=t,a.friction=r,c=(o=null!==i)?(l=e(t,r))/i*.016:.016;u=n(u||a,c),s.push(1+u.x),l+=16,Math.abs(u.x)>1e-4&&Math.abs(u.v)>1e-4;);return o?function(e){return s[e*(s.length-1)|0]}:l}}();e.exports=r},function(e,t,n){"use strict";var r=n(0);function i(e,t,n,r,i){if(1===r)return n;var o=i(t,n,r);return null==e||((e.roundValue||e.color)&&(o=Math.round(o)),void 0!==e.min&&(o=Math.max(o,e.min)),void 0!==e.max&&(o=Math.min(o,e.max))),o}function o(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}e.exports=function(e,t,n,a,s){var l=null!=s?s.type:null;n<0?n=0:n>1&&(n=1);var c=o(e,s),u=o(t,s);if(r.number(c)&&r.number(u))return i(l,c,u,n,a);if(r.array(c)&&r.array(u)){for(var d=[],p=0;p<u.length;p++){var f=c[p],h=u[p];if(null!=f&&null!=h){var g=i(l,f,h,n,a);d.push(g)}else d.push(h)}return d}}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var i=!r,o=e,a=t._private,s=r?e:e.cy(),l=s.style();if(i){var c=o.position();a.startPosition=a.startPosition||{x:c.x,y:c.y},a.startStyle=a.startStyle||l.getAnimationStartStyle(o,a.style)}if(r){var u=s._private.pan;a.startPan=a.startPan||{x:u.x,y:u.y},a.startZoom=null!=a.startZoom?a.startZoom:s._private.zoom}a.started=!0,a.startTime=n-a.progress*a.duration}},function(e,t,n){"use strict";var r=n(11),i=n(4),o=n(0),a=n(1),s=n(6),l={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&o.element(n.target)&&r.matches(n.target)},eventFields:function(e){return{cy:e,target:e}},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},c=function(e){return o.string(e)?new s(e):e},u={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new r(a.assign({context:this},l))),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,c(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,c(t),n),this},one:function(e,t,n){return this.emitter().one(e,c(t),n),this},once:function(e,t,n){return this.emitter().one(e,c(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this}};i.eventAliasesOn(u),e.exports=u},function(e,t,n){"use strict";var r={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};r.jpeg=r.jpg,e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(0),o={layout:function(e){if(null!=e)if(null!=e.name){var t=e.name,n=this.extension("layout",t);if(null!=n){var o=void 0;o=i.string(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$();var a=new n(r.extend({},e,{cy:this,eles:o}));return a}r.error("Can not apply layout: No such layout `"+t+"` found; did you include its JS file?")}else r.error("A `name` must be specified to make a layout");else r.error("Layout options must be specified to make a layout")}};o.createLayout=o.makeLayout=o.layout,e.exports=o},function(e,t,n){"use strict";var r={notify:function(e){var t=this._private;if(t.batchingNotify){var n=t.batchNotifyEles,r=t.batchNotifyTypes;return e.eles&&n.merge(e.eles),void(r.ids[e.type]||(r.push(e.type),r.ids[e.type]=!0))}if(t.notificationsEnabled){var i=this.renderer();!this.isDestroyed()&&i&&i.notify(e)}},notifications:function(e){var t=this._private;if(void 0===e)return t.notificationsEnabled;t.notificationsEnabled=!!e},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchingStyle=e.batchingNotify=!0,e.batchStyleEles=this.collection(),e.batchNotifyEles=this.collection(),e.batchNotifyTypes=[],e.batchNotifyTypes.ids={}),e.batchCount++,this},endBatch:function(){var e=this._private;return e.batchCount--,0===e.batchCount&&(e.batchingStyle=!1,e.batchStyleEles.updateStyle(),e.batchingNotify=!1,this.notify({type:e.batchNotifyTypes,eles:e.batchNotifyEles})),this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],o=e[i];t.getElementById(i).data(o)}}))}};e.exports=r},function(e,t,n){"use strict";var r=n(1),i={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify({type:"draw"}),this},resize:function(){return this.invalidateSize(),this.notify({type:"resize"}),this.emit("resize"),this},initRenderer:function(e){var t=this.extension("renderer",e.name);null!=t?(this._private.renderer=new t(r.extend({},e,{cy:this})),this.notify({type:"init"})):r.error("Can not initialise: No such renderer `%s` found; did you include its JS file?",e.name)},destroyRenderer:function(){this.notify({type:"destroy"});var e=this.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);this._private.renderer=null},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};i.invalidateDimensions=i.resize,e.exports=i},function(e,t,n){"use strict";var r=n(0),i=n(7),o={collection:function(e,t){return r.string(e)?this.$(e):r.elementOrCollection(e)?e.collection():r.array(e)?new i(this,e,t):new i(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};o.elements=o.filter=o.$,e.exports=o},function(e,t,n){"use strict";var r=n(0),i=n(18),o={style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return r.stylesheet(e)?t.style=e.generateStyle(this):r.array(e)?t.style=i.fromJson(this,e):r.string(e)?t.style=i.fromString(this,e):t.style=i(this),t.style}};e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(5),a={apply:function(e){var t=this._private,n=t.cy.collection();t.newStyle&&(t.contextStyles={},t.propDiffs={},this.cleanElements(e,!0));for(var r=0;r<e.length;r++){var i=e[r],o=this.getContextMeta(i);if(!o.empty){n.merge(i);var a=this.getContextStyle(o),s=this.applyContextStyle(o,a,i);t.newStyle||this.updateTransitions(i,s.diffProps),this.updateStyleHints(i)}}return t.newStyle=!1,n},getPropertiesDiff:function(e,t){var n=this._private.propDiffs=this._private.propDiffs||{},r=e+"-"+t,i=n[r];if(i)return i;for(var o=[],a={},s=0;s<this.length;s++){var l=this[s],c="t"===e[s]!=("t"===t[s]),u=l.mappedProperties.length>0;if(c||u){var d=void 0;c&&u||c?d=l.properties:u&&(d=l.mappedProperties);for(var p=0;p<d.length;p++){for(var f=d[p],h=f.name,g=!1,m=s+1;m<this.length;m++){var v=this[m];if("t"===t[m]&&(g=null!=v.properties[f.name]))break}a[h]||g||(a[h]=!0,o.push(h))}}}return n[r]=o,o},getContextMeta:function(e){var t,n="",r=e._private.styleCxtKey||"";this._private.newStyle&&(r="");for(var i=0;i<this.length;i++){var o=this[i];n+=o.selector&&o.selector.matches(e)?"t":"f"}return t=this.getPropertiesDiff(r,n),e._private.styleCxtKey=n,{key:n,diffPropNames:t,empty:0===t.length}},getContextStyle:function(e){var t=e.key,n=this._private.contextStyles=this._private.contextStyles||{};if(n[t])return n[t];for(var r={_private:{key:t}},i=0;i<this.length;i++){var o=this[i];if("t"===t[i])for(var a=0;a<o.properties.length;a++){var s=o.properties[a];r[s.name]=s}}return n[t]=r,r},applyContextStyle:function(e,t,n){for(var r=e.diffPropNames,i={},o=0;o<r.length;o++){var a=r[o],s=t[a],l=n.pstyle(a);if(!s){if(!l)continue;s=l.bypass?{name:a,deleteBypassed:!0}:{name:a,delete:!0}}if(l!==s){var c=i[a]={prev:l};this.applyParsedProperty(n,s),c.next=n.pstyle(a),c.next&&c.next.bypass&&(c.next=c.next.bypassed)}}return{diffProps:i}},updateStyleHints:function(e){var t=e._private;if(!e.removed()){var n=!1;if("nodes"===t.group)for(var r=1;r<=this.pieBackgroundN;r++)if(e.pstyle("pie-"+r+"-background-size").value>0){n=!0;break}t.hasPie=n;var i=e.pstyle("text-transform").strValue,o=e.pstyle("label").strValue,a=e.pstyle("source-label").strValue,s=e.pstyle("target-label").strValue,l=e.pstyle("font-style").strValue,c=e.pstyle("font-size").pfValue+"px",u=e.pstyle("font-family").strValue,d=e.pstyle("font-weight").strValue,p=l+"$"+c+"$"+u+"$"+d+"$"+i+"$"+e.pstyle("text-valign").strValue+"$"+e.pstyle("text-valign").strValue+"$"+e.pstyle("text-outline-width").pfValue+"$"+e.pstyle("text-wrap").strValue+"$"+e.pstyle("text-max-width").pfValue;t.labelStyleKey=p,t.sourceLabelKey=p+"$"+a,t.targetLabelKey=p+"$"+s,t.labelKey=p+"$"+o,t.fontKey=l+"$"+d+"$"+c+"$"+u,t.styleKey=Date.now()}},applyParsedProperty:function(e,t){var n=this,o=t,a=e._private.style,s=void 0,l=n.types,c=n.properties[o.name].type,u=o.bypass,d=a[o.name],p=d&&d.bypass,f=e._private,h=function(){n.checkZOrderTrigger(e,o.name,d?d.value:null,o.value)};if("curve-style"===t.name&&"haystack"===t.value&&e.isEdge()&&(e.isLoop()||e.source().isParent()||e.target().isParent())&&(o=t=this.parse(t.name,"bezier",u)),o.delete)return a[o.name]=void 0,h(),!0;if(o.deleteBypassed)return d?!!d.bypass&&(d.bypassed=void 0,h(),!0):(h(),!0);if(o.deleteBypass)return d?!!d.bypass&&(a[o.name]=d.bypassed,h(),!0):(h(),!0);var g=function(){r.error("Do not assign mappings to elements without corresponding data (e.g. ele `"+e.id()+"` for property `"+o.name+"` with data field `"+o.field+"`); try a `["+o.field+"]` selector to limit scope to elements with `"+o.field+"` defined")};switch(o.mapped){case l.mapData:for(var m=o.field.split("."),v=f.data,b=0;b<m.length&&v;b++)v=v[m[b]];var y=void 0;if((y=i.number(v)?(v-o.fieldMin)/(o.fieldMax-o.fieldMin):0)<0?y=0:y>1&&(y=1),c.color){var x=o.valueMin[0],w=o.valueMax[0],k=o.valueMin[1],A=o.valueMax[1],E=o.valueMin[2],S=o.valueMax[2],$=null==o.valueMin[3]?1:o.valueMin[3],C=null==o.valueMax[3]?1:o.valueMax[3],_=[Math.round(x+(w-x)*y),Math.round(k+(A-k)*y),Math.round(E+(S-E)*y),Math.round($+(C-$)*y)];s={bypass:o.bypass,name:o.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!c.number)return!1;var O=o.valueMin+(o.valueMax-o.valueMin)*y;s=this.parse(o.name,O,o.bypass,"mapping")}s||(s=this.parse(o.name,d.strValue,o.bypass,"mapping")),s||g(),s.mapping=o,o=s;break;case l.data:var T=o.field.split("."),j=f.data;if(j)for(var P=0;P<T.length;P++)j=j[T[P]];if(!(s=this.parse(o.name,j,o.bypass,"mapping"))){var D=d?d.strValue:"";s=this.parse(o.name,D,o.bypass,"mapping")}s||g(),s.mapping=o,o=s;break;case l.fn:var R=(0,o.value)(e);(s=this.parse(o.name,R,o.bypass,"mapping")).mapping=o,o=s;break;case void 0:break;default:return!1}return u?(o.bypassed=p?d.bypassed:d,a[o.name]=o):p?d.bypassed=o:a[o.name]=o,h(),!0},cleanElements:function(e,t){for(var n=this.properties,r=0;r<e.length;r++){var i=e[r];if(t)for(var o=i._private.style,a=0;a<n.length;a++){var s=n[a],l=o[s.name];l&&(l.bypass?l.bypassed=null:o[s.name]=null)}else i._private.style={}}},update:function(){this._private.cy.mutableElements().updateStyle()},updateMappers:function(e){for(var t=this._private.cy.collection(),n=0;n<e.length;n++){for(var r=e[n],i=r._private.style,o=!1,a=0;a<this.properties.length;a++){var s=i[this.properties[a].name];if(s&&s.mapping){var l=s.mapping;this.applyParsedProperty(r,l),o=!0}}o&&(this.updateStyleHints(r),t.merge(r))}return t},updateTransitions:function(e,t,n){var r=this,a=e._private,s=e.pstyle("transition-property").value,l=e.pstyle("transition-duration").pfValue,c=e.pstyle("transition-delay").pfValue;if(s.length>0&&l>0){for(var u={},d=!1,p=0;p<s.length;p++){var f=s[p],h=e.pstyle(f),g=t[f];if(g){var m=g.prev,v=null!=g.next?g.next:h,b=!1,y=void 0;m&&(i.number(m.pfValue)&&i.number(v.pfValue)?(b=v.pfValue-m.pfValue,y=m.pfValue+1e-6*b):i.number(m.value)&&i.number(v.value)?(b=v.value-m.value,y=m.value+1e-6*b):i.array(m.value)&&i.array(v.value)&&(b=m.value[0]!==v.value[0]||m.value[1]!==v.value[1]||m.value[2]!==v.value[2],y=m.strValue),b&&(u[f]=v.strValue,this.applyBypass(e,f,y),d=!0))}}if(!d)return;a.transitioning=!0,new o((function(t){c>0?e.delayAnimation(c).play().promise().then(t):t()})).then((function(){return e.animation({style:u,duration:l,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){r.removeBypasses(e,s),e.emitAndNotify("style"),a.transitioning=!1}))}else a.transitioning&&(this.removeBypasses(e,s),e.emitAndNotify("style"),a.transitioning=!1)},checkZOrderTrigger:function(e,t,n,r){var i=this.properties[t];null==i.triggersZOrder||null!=n&&!i.triggersZOrder(n,r)||this._private.cy.notify({type:"zorder",eles:e})}};e.exports=a},function(e,t,n){"use strict";var r=n(0),i=n(1),o={applyBypass:function(e,t,n,o){var a=[];if("*"===t||"**"===t){if(void 0!==n)for(var s=0;s<this.properties.length;s++){var l=this.properties[s].name,c=this.parse(l,n,!0);c&&a.push(c)}}else if(r.string(t)){var u=this.parse(t,n,!0);u&&a.push(u)}else{if(!r.plainObject(t))return!1;var d=t;o=n;for(var p=Object.keys(d),f=0;f<p.length;f++){var h=p[f],g=(this.properties[h],d[h]);if(void 0===g&&(g=d[i.dash2camel(h)]),void 0!==g){var m=this.parse(h,g,!0);m&&a.push(m)}}}if(0===a.length)return!1;for(var v=!1,b=0;b<e.length;b++){for(var y=e[b],x={},w=void 0,k=0;k<a.length;k++){var A=a[k];if(o){var E=y.pstyle(A.name);w=x[A.name]={prev:E}}v=this.applyParsedProperty(y,A)||v,o&&(w.next=y.pstyle(A.name))}v&&this.updateStyleHints(y),o&&this.updateTransitions(y,x,!0)}return v},overrideBypass:function(e,t,n){t=i.camel2dash(t);for(var r=0;r<e.length;r++){var o=e[r],a=o._private.style[t],s=this.properties[t].type,l=s.color,c=s.mutiple;if(a&&a.bypass){var u=null!=a.pfValue?a.pfValue:a.value;a.value=n,null!=a.pfValue&&(a.pfValue=n),a.strValue=l?"rgb("+n.join(",")+")":c?n.join(" "):""+n,this.checkZOrderTrigger(o,t,u,n)}else this.applyBypass(o,t,n)}},removeAllBypasses:function(e,t){return this.removeBypasses(e,this.propertyNames,t)},removeBypasses:function(e,t,n){for(var r=0;r<e.length;r++){for(var i=e[r],o={},a=0;a<t.length;a++){var s=t[a],l=this.properties[s],c=i.pstyle(l.name);if(c&&c.bypass){var u=this.parse(s,"",!0),d=o[l.name]={prev:c};this.applyParsedProperty(i,u),d.next=i.pstyle(l.name)}}this.updateStyleHints(i),n&&this.updateTransitions(i,o,!0)}}};e.exports=o},function(e,t,n){"use strict";var r=n(3),i={getEmSizeInPixels:function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},containerCss:function(e){var t=this._private.cy.container();if(r&&t&&r.getComputedStyle)return r.getComputedStyle(t).getPropertyValue(e)}};e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(0),o={getRenderedStyle:function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},getRawStyle:function(e,t){if(e=e[0]){for(var n={},i=0;i<this.properties.length;i++){var o=this.properties[i],a=this.getStylePropertyValue(e,o.name,t);null!=a&&(n[o.name]=a,n[r.dash2camel(o.name)]=a)}return n}},getIndexedStyle:function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},getStylePropertyValue:function(e,t,n){if(e=e[0]){var r=this.properties[t];r.alias&&(r=r.pointsTo);var i=r.type,o=e.pstyle(r.name),a=e.cy().zoom();if(o){var s=o.units?i.implicitUnits||"px":null;return s?[].concat(o.pfValue).map((function(e){return e*(n?a:1)+s})).join(" "):o.strValue}}},getAnimationStartStyle:function(e,t){for(var n={},r=0;r<t.length;r++){var o=t[r].name,a=e.pstyle(o);void 0!==a&&(a=i.plainObject(a)?this.parse(o,a.strValue):this.parse(o,a)),a&&(n[o]=a)}return n},getPropsList:function(e){var t=[],n=e,i=this.properties;if(n)for(var o=Object.keys(n),a=0;a<o.length;a++){var s=o[a],l=n[s],c=i[s]||i[r.camel2dash(s)],u=this.parse(c.name,l);u&&t.push(u)}return t}};e.exports=o},function(e,t,n){"use strict";var r={appendFromJson:function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n.selector,i=n.style||n.css,o=Object.keys(i);this.selector(r);for(var a=0;a<o.length;a++){var s=o[a],l=i[s];this.css(s,l)}}return this},fromJson:function(e){return this.resetToDefault(),this.appendFromJson(e),this},json:function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,o={},a=0;a<i.length;a++){var s=i[a];o[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:o})}return e}};e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(6),o={appendFromString:function(e){var t=""+e,n=void 0,o=void 0,a=void 0;function s(){t=t.length>n.length?t.substr(n.length):""}function l(){o=o.length>a.length?o.substr(a.length):""}for(t=t.replace(/[/][*](\s|.)+?[*][/]/g,"");!t.match(/^\s*$/);){var c=t.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!c){r.error("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+t);break}n=c[0];var u=c[1];if("core"!==u&&new i(u)._private.invalid)r.error("Skipping parsing of block: Invalid selector found in string stylesheet: "+u),s();else{var d=c[2],p=!1;o=d;for(var f=[];!o.match(/^\s*$/);){var h=o.match(/^\s*(.+?)\s*:\s*(.+?)\s*;/);if(!h){r.error("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d),p=!0;break}a=h[0];var g=h[1],m=h[2];this.properties[g]?this.parse(g,m)?(f.push({name:g,val:m}),l()):(r.error("Skipping property: Invalid property definition in: "+a),l()):(r.error("Skipping property: Invalid property name in: "+a),l())}if(p){s();break}this.selector(u);for(var v=0;v<f.length;v++){var b=f[v];this.css(b.name,b.val)}s()}}return this},fromString:function(e){return this.resetToDefault(),this.appendFromString(e),this}};e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o={};!function(){var e=r.regex.number,t=r.regex.rgbaNoBackRefs,n=r.regex.hslaNoBackRefs,a=r.regex.hex3,s=r.regex.hex6,l=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},c=function(r){var i=e+"|\\w+|"+t+"|"+n+"|"+a+"|"+s;return"^"+r+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+e+")\\s*\\,\\s*("+e+")\\s*,\\s*("+i+")\\s*\\,\\s*("+i+")\\)$"},u=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];o.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials"],multiple:!0},bgClip:{enums:["none","node"]},color:{color:!0},bool:{enums:["yes","no"]},lineStyle:{enums:["solid","dotted","dashed"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontletiant:{enums:["small-caps","normal"]},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textBackgroundShape:{enums:["rectangle","roundrectangle"]},nodeShape:{enums:["rectangle","roundrectangle","cutrectangle","bottomroundrectangle","barrel","ellipse","triangle","square","pentagon","hexagon","concavehexagon","heptagon","octagon","tag","star","diamond","vee","rhomboid","polygon"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","triangle-cross","triangle-backcurve","half-triangle-overshot","vee","square","circle","diamond","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},text:{string:!0},data:{mapping:!0,regex:l("data")},layoutData:{mapping:!0,regex:l("layoutData")},scratch:{mapping:!0,regex:l("scratch")},mapData:{mapping:!0,regex:c("mapData")},mapLayoutData:{mapping:!0,regex:c("mapLayoutData")},mapScratch:{mapping:!0,regex:c("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:u,singleRegexMatchValue:!0},urls:{regexes:u,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-line"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return i.string(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]}};var d={zeroNonZero:function(e,t){return 0===e&&0!==t||0!==e&&0===t},anyDiff:function(e,t){return e!==t}},p=o.types,f=o.properties=[{name:"label",type:p.text},{name:"text-rotation",type:p.textRotation},{name:"text-margin-x",type:p.bidirectionalSize},{name:"text-margin-y",type:p.bidirectionalSize},{name:"source-label",type:p.text},{name:"source-text-rotation",type:p.textRotation},{name:"source-text-margin-x",type:p.bidirectionalSize},{name:"source-text-margin-y",type:p.bidirectionalSize},{name:"source-text-offset",type:p.size},{name:"target-label",type:p.text},{name:"target-text-rotation",type:p.textRotation},{name:"target-text-margin-x",type:p.bidirectionalSize},{name:"target-text-margin-y",type:p.bidirectionalSize},{name:"target-text-offset",type:p.size},{name:"text-valign",type:p.valign},{name:"text-halign",type:p.halign},{name:"color",type:p.color},{name:"text-outline-color",type:p.color},{name:"text-outline-width",type:p.size},{name:"text-outline-opacity",type:p.zeroOneNumber},{name:"text-opacity",type:p.zeroOneNumber},{name:"text-background-color",type:p.color},{name:"text-background-opacity",type:p.zeroOneNumber},{name:"text-background-padding",type:p.size},{name:"text-border-opacity",type:p.zeroOneNumber},{name:"text-border-color",type:p.color},{name:"text-border-width",type:p.size},{name:"text-border-style",type:p.borderStyle},{name:"text-background-shape",type:p.textBackgroundShape},{name:"text-transform",type:p.textTransform},{name:"text-wrap",type:p.textWrap},{name:"text-max-width",type:p.size},{name:"text-events",type:p.bool},{name:"font-family",type:p.fontFamily},{name:"font-style",type:p.fontStyle},{name:"font-weight",type:p.fontWeight},{name:"font-size",type:p.size},{name:"min-zoomed-font-size",type:p.size},{name:"events",type:p.bool},{name:"display",type:p.display,triggersZOrder:d.anyDiff},{name:"visibility",type:p.visibility,triggersZOrder:d.anyDiff},{name:"opacity",type:p.zeroOneNumber,triggersZOrder:d.zeroNonZero},{name:"z-compound-depth",type:p.zCompoundDepth,triggersZOrder:d.anyDiff},{name:"z-index-compare",type:p.zIndexCompare,triggersZOrder:d.anyDiff},{name:"z-index",type:p.nonNegativeInt,triggersZOrder:d.anyDiff},{name:"overlay-padding",type:p.size},{name:"overlay-color",type:p.color},{name:"overlay-opacity",type:p.zeroOneNumber},{name:"transition-property",type:p.propList},{name:"transition-duration",type:p.time},{name:"transition-delay",type:p.time},{name:"transition-timing-function",type:p.easing},{name:"height",type:p.nodeSize},{name:"width",type:p.nodeSize},{name:"shape",type:p.nodeShape},{name:"shape-polygon-points",type:p.polygonPointList},{name:"background-color",type:p.color},{name:"background-opacity",type:p.zeroOneNumber},{name:"background-blacken",type:p.nOneOneNumber},{name:"padding",type:p.sizeMaybePercent},{name:"padding-relative-to",type:p.paddingRelativeTo},{name:"border-color",type:p.color},{name:"border-opacity",type:p.zeroOneNumber},{name:"border-width",type:p.size},{name:"border-style",type:p.borderStyle},{name:"background-image",type:p.urls},{name:"background-image-crossorigin",type:p.bgCrossOrigin},{name:"background-image-opacity",type:p.zeroOneNumbers},{name:"background-position-x",type:p.bgPos},{name:"background-position-y",type:p.bgPos},{name:"background-width-relative-to",type:p.bgRelativeTo},{name:"background-height-relative-to",type:p.bgRelativeTo},{name:"background-repeat",type:p.bgRepeat},{name:"background-fit",type:p.bgFit},{name:"background-clip",type:p.bgClip},{name:"background-width",type:p.bgWH},{name:"background-height",type:p.bgWH},{name:"position",type:p.position},{name:"compound-sizing-wrt-labels",type:p.compoundIncludeLabels},{name:"min-width",type:p.size},{name:"min-width-bias-left",type:p.sizeMaybePercent},{name:"min-width-bias-right",type:p.sizeMaybePercent},{name:"min-height",type:p.size},{name:"min-height-bias-top",type:p.sizeMaybePercent},{name:"min-height-bias-bottom",type:p.sizeMaybePercent},{name:"line-style",type:p.lineStyle},{name:"line-color",type:p.color},{name:"curve-style",type:p.curveStyle},{name:"haystack-radius",type:p.zeroOneNumber},{name:"source-endpoint",type:p.edgeEndpoint},{name:"target-endpoint",type:p.edgeEndpoint},{name:"control-point-step-size",type:p.size},{name:"control-point-distances",type:p.bidirectionalSizes},{name:"control-point-weights",type:p.numbers},{name:"segment-distances",type:p.bidirectionalSizes},{name:"segment-weights",type:p.numbers},{name:"edge-distances",type:p.edgeDistances},{name:"arrow-scale",type:p.positiveNumber},{name:"loop-direction",type:p.angle},{name:"loop-sweep",type:p.angle},{name:"source-distance-from-node",type:p.size},{name:"target-distance-from-node",type:p.size},{name:"ghost",type:p.bool},{name:"ghost-offset-x",type:p.bidirectionalSize},{name:"ghost-offset-y",type:p.bidirectionalSize},{name:"ghost-opacity",type:p.zeroOneNumber},{name:"selection-box-color",type:p.color},{name:"selection-box-opacity",type:p.zeroOneNumber},{name:"selection-box-border-color",type:p.color},{name:"selection-box-border-width",type:p.size},{name:"active-bg-color",type:p.color},{name:"active-bg-opacity",type:p.zeroOneNumber},{name:"active-bg-size",type:p.size},{name:"outside-texture-bg-color",type:p.color},{name:"outside-texture-bg-opacity",type:p.zeroOneNumber}],h=o.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];o.pieBackgroundN=16,f.push({name:"pie-size",type:p.sizeMaybePercent});for(var g=1;g<=o.pieBackgroundN;g++)f.push({name:"pie-"+g+"-background-color",type:p.color}),f.push({name:"pie-"+g+"-background-size",type:p.percent}),f.push({name:"pie-"+g+"-background-opacity",type:p.zeroOneNumber});var m=o.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:p.arrowShape},{name:"arrow-color",type:p.color},{name:"arrow-fill",type:p.arrowFill}].forEach((function(e){m.forEach((function(t){var n=t+"-"+e.name,r=e.type;f.push({name:n,type:r})}))}),{}),o.propertyNames=f.map((function(e){return e.name}));for(var v=0;v<f.length;v++){var b=f[v];f[b.name]=b}for(var y=0;y<h.length;y++){var x=h[y],w=f[x.pointsTo],k={name:x.name,alias:!0,pointsTo:w};f.push(k),f[x.name]=k}}(),o.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},o.getDefaultProperties=r.memoize((function(){for(var e=r.extend({events:"yes","text-events":"no","text-valign":"top","text-halign":"center",color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-position-x":"50%","background-position-y":"50%","background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce((function(e,t){for(var n=1;n<=o.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e}),{}),{"line-style":"solid","line-color":"#999","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"edge-distances":"intersection","curve-style":"bezier","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node"},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce((function(e,t){return o.arrowPrefixes.forEach((function(n){var r=n+"-"+t.name,i=t.value;e[r]=i})),e}),{})),t={},n=0;n<this.properties.length;n++){var i=this.properties[n];if(!i.pointsTo){var a=i.name,s=e[a],l=this.parse(a,s);t[a]=l}}return t})),o.addDefaultStylesheet=function(){this.selector("$node > node").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3,"curve-style":"haystack"}).selector(":parent <-> node").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector("node:parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}).selector("core").css({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125}),this.defaultLength=this.length},e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(2),a={parse:function(e,t,n,o){if(i.fn(t))return this.parseImplWarn(e,t,n,o);var a=[e,t,n,"mapping"===o||!0===o||!1===o||null==o?"dontcare":o].join("$"),s=this.propCache=this.propCache||{},l=void 0;return(l=s[a])||(l=s[a]=this.parseImplWarn(e,t,n,o)),(n||"mapping"===o)&&(l=r.copy(l))&&(l.value=r.copy(l.value)),l},parseImplWarn:function(e,t,n,i){var o=this.parseImpl(e,t,n,i);return o||null==t||r.error("The style property `%s: %s` is invalid",e,t),o},parseImpl:function(e,t,n,a){e=r.camel2dash(e);var s=this.properties[e],l=t,c=this.types;if(!s)return null;if(void 0===t)return null;s.alias&&(s=s.pointsTo,e=s.name);var u=i.string(t);u&&(t=t.trim());var d=s.type;if(!d)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(i.fn(t))return{name:e,value:t,strValue:"fn",mapped:c.fn,bypass:n};var p=void 0,f=void 0;if(!u||a);else{if(p=new RegExp(c.data.regex).exec(t)){if(n)return!1;var h=c.data;return{name:e,value:p,strValue:""+t,mapped:h,field:p[1],bypass:n}}if(f=new RegExp(c.mapData.regex).exec(t)){if(n)return!1;if(d.multiple)return!1;var g=c.mapData;if(!d.color&&!d.number)return!1;var m=this.parse(e,f[4]);if(!m||m.mapped)return!1;var v=this.parse(e,f[5]);if(!v||v.mapped)return!1;if(m.value===v.value)return!1;if(d.color){var b=m.value,y=v.value;if(!(b[0]!==y[0]||b[1]!==y[1]||b[2]!==y[2]||b[3]!==y[3]&&(null!=b[3]&&1!==b[3]||null!=y[3]&&1!==y[3])))return!1}return{name:e,value:f,strValue:""+t,mapped:g,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:m.value,valueMax:v.value,bypass:n}}}if(d.multiple&&"multiple"!==a){var x=void 0;if(x=u?t.split(/\s+/):i.array(t)?t:[t],d.evenMultiple&&x.length%2!=0)return null;for(var w=[],k=[],A=[],E=!1,S=0;S<x.length;S++){var $=this.parse(e,x[S],n,"multiple");E=E||i.string($.value),w.push($.value),A.push(null!=$.pfValue?$.pfValue:$.value),k.push($.units)}return d.validate&&!d.validate(w,k)?null:d.singleEnum&&E?1===w.length&&i.string(w[0])?{name:e,value:w[0],strValue:w[0],bypass:n}:null:{name:e,value:w,pfValue:A,strValue:w.map((function(e,t){return e+(k[t]||"")})).join(" "),bypass:n,units:k}}var C=function(){for(var r=0;r<d.enums.length;r++)if(d.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(d.number){var _=void 0,O="px";if(d.units&&(_=d.units),d.implicitUnits&&(O=d.implicitUnits),!d.unitless)if(u){var T="px|em"+(d.allowPercent?"|\\%":"");_&&(T=_);var j=t.match("^("+r.regex.number+")("+T+")?$");j&&(t=j[1],_=j[2]||O)}else _&&!d.implicitUnits||(_=O);if(t=parseFloat(t),isNaN(t)&&void 0===d.enums)return null;if(isNaN(t)&&void 0!==d.enums)return t=l,C();if(d.integer&&!i.integer(t))return null;if(void 0!==d.min&&(t<d.min||d.strictMin&&t===d.min)||void 0!==d.max&&(t>d.max||d.strictMax&&t===d.max))return null;var P={name:e,value:t,strValue:""+t+(_||""),units:_,bypass:n};return d.unitless||"px"!==_&&"em"!==_?P.pfValue=t:P.pfValue="px"!==_&&_?this.getEmSizeInPixels()*t:t,"ms"!==_&&"s"!==_||(P.pfValue="ms"===_?t:1e3*t),"deg"!==_&&"rad"!==_||(P.pfValue="rad"===_?t:o.deg2rad(t)),"%"===_&&(P.pfValue=t/100),P}if(d.propList){var D=[],R=""+t;if("none"===R);else{for(var I=R.split(","),N=0;N<I.length;N++){var M=I[N].trim();this.properties[M]&&D.push(M)}if(0===D.length)return null}return{name:e,value:D,strValue:0===D.length?"none":D.join(", "),bypass:n}}if(d.color){var z=r.color2tuple(t);return z?{name:e,value:z,pfValue:z,strValue:""+t,bypass:n}:null}if(d.regex||d.regexes){if(d.enums){var L=C();if(L)return L}for(var B=d.regexes?d.regexes:[d.regex],F=0;F<B.length;F++){var q=new RegExp(B[F]).exec(t);if(q)return{name:e,value:d.singleRegexMatchValue?q[1]:q,strValue:""+t,bypass:n}}return null}return d.string?{name:e,value:""+t,strValue:""+t,bypass:n}:d.enums?C():null}};e.exports=a},function(e,t,n){"use strict";var r=n(0),i=n(3),o=n(2),a={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e=arguments,t=this._private.pan,n=void 0,i=void 0,o=void 0,a=void 0,s=void 0;switch(e.length){case 0:return t;case 1:if(r.string(e[0]))return t[n=e[0]];if(r.plainObject(e[0])){if(!this._private.panningEnabled)return this;a=(o=e[0]).x,s=o.y,r.number(a)&&(t.x=a),r.number(s)&&(t.y=s),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;n=e[0],i=e[1],"x"!==n&&"y"!==n||!r.number(i)||(t[n]=i),this.emit("pan viewport")}return this.notify({type:"viewport"}),this},panBy:function(e,t){var n=arguments,i=this._private.pan,o=void 0,a=void 0,s=void 0,l=void 0,c=void 0;if(!this._private.panningEnabled)return this;switch(n.length){case 1:r.plainObject(e)&&(l=(s=n[0]).x,c=s.y,r.number(l)&&(i.x+=l),r.number(c)&&(i.y+=c),this.emit("pan viewport"));break;case 2:a=t,"x"!==(o=e)&&"y"!==o||!r.number(a)||(i[o]+=a),this.emit("pan viewport")}return this.notify({type:"viewport"}),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify({type:"viewport"})}return this},getFitViewport:function(e,t){if(r.number(e)&&void 0===t&&(t=e,e=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){var n=void 0;if(r.string(e)){var i=e;e=this.$(i)}else if(r.boundingBox(e)){var o=e;(n={x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2}).w=n.x2-n.x1,n.h=n.y2-n.y1}else r.elementOrCollection(e)||(e=this.mutableElements());if(!r.elementOrCollection(e)||!e.empty()){n=n||e.boundingBox();var a=this.width(),s=this.height(),l=void 0;if(t=r.number(t)?t:0,!isNaN(a)&&!isNaN(s)&&a>0&&s>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:l=(l=(l=Math.min((a-2*t)/n.w,(s-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:l)<this._private.minZoom?this._private.minZoom:l,pan:{x:(a-l*(n.x1+n.x2))/2,y:(s-l*(n.y1+n.y2))/2}}}}},minZoom:function(e){return void 0===e?this._private.minZoom:(r.number(e)&&(this._private.minZoom=e),this)},maxZoom:function(e){return void 0===e?this._private.maxZoom:(r.number(e)&&(this._private.maxZoom=e),this)},getZoomedViewport:function(e){var t=this._private,n=t.pan,i=t.zoom,a=void 0,s=void 0,l=!1;if(t.zoomingEnabled||(l=!0),r.number(e)?s=e:r.plainObject(e)&&(s=e.level,null!=e.position?a=o.modelToRenderedPosition(e.position,i,n):null!=e.renderedPosition&&(a=e.renderedPosition),null==a||t.panningEnabled||(l=!0)),s=(s=s>t.maxZoom?t.maxZoom:s)<t.minZoom?t.minZoom:s,l||!r.number(s)||s===i||null!=a&&(!r.number(a.x)||!r.number(a.y)))return null;if(null!=a){var c=n,u=i,d=s;return{zoomed:!0,panned:!0,zoom:d,pan:{x:-d/u*(a.x-c.x)+a.x,y:-d/u*(a.y-c.y)+a.y}}}return{zoomed:!0,panned:!1,zoom:s,pan:n}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed?(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify({type:"viewport"}),this):this},viewport:function(e){var t=this._private,n=!0,i=!0,o=[],a=!1,s=!1;if(!e)return this;if(r.number(e.zoom)||(n=!1),r.plainObject(e.pan)||(i=!1),!n&&!i)return this;if(n){var l=e.zoom;l<t.minZoom||l>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=l,o.push("zoom"))}if(i&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var c=e.pan;r.number(c.x)&&(t.pan.x=c.x,s=!1),r.number(c.y)&&(t.pan.y=c.y,s=!1),s||o.push("pan")}return o.length>0&&(o.push("viewport"),this.emit(o.join(" ")),this.notify({type:"viewport"})),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify({type:"viewport"})),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(r.string(e)){var n=e;e=this.mutableElements().filter(n)}else r.elementOrCollection(e)||(e=this.mutableElements());if(0!==e.length){var i=e.boundingBox(),o=this.width(),a=this.height();return{x:(o-(t=void 0===t?this._private.zoom:t)*(i.x1+i.x2))/2,y:(a-t*(i.y1+i.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container;return n.sizeCache=n.sizeCache||(r?(e=i.getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}}};a.centre=a.center,a.autolockNodes=a.autolock,a.autoungrabifyNodes=a.autoungrabify,e.exports=a},function(e,t,n){"use strict";var r=n(1),i=n(4),o=n(7),a=n(12),s=n(95),l=n(0),c=n(11),u={},d={};function p(e,t,n){var s=n,d=function(n){r.error("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(a.prototype[t])return d(t);a.prototype[t]=n}else if("collection"===e){if(o.prototype[t])return d(t);o.prototype[t]=n}else if("layout"===e){for(var p=function(e){this.options=e,n.call(this,e),l.plainObject(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},h=p.prototype=Object.create(n.prototype),g=[],m=0;m<g.length;m++){var v=g[m];h[v]=h[v]||function(){return this}}h.start&&!h.run?h.run=function(){return this.start(),this}:!h.start&&h.run&&(h.start=function(){return this.run(),this});var b=n.prototype.stop;h.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return b?b.call(this):this.emit("layoutstop"),this},h.destroy||(h.destroy=function(){return this}),h.cy=function(){return this._private.cy};var y=function(e){return e._private.cy};r.assign(h,{createEmitter:function(){return this._private.emitter=new c({eventFields:function(e){return{layout:e,cy:y(e),target:e}},bubble:function(){return!0},parent:function(e){return y(e)},context:this}),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),i.eventAliasesOn(h),s=p}else if("renderer"===e&&"null"!==t&&"base"!==t){var x=f("renderer","base"),w=x.prototype,k=n,A=n.prototype,E=function(){x.apply(this,arguments),k.apply(this,arguments)},S=E.prototype;for(var $ in w){var C=w[$];if(null!=A[$])return d($);S[$]=C}for(var _ in A)S[_]=A[_];w.clientFunctions.forEach((function(e){S[e]=S[e]||function(){r.error("Renderer does not implement `renderer."+e+"()` on its prototype")}})),s=E}return r.setMap({map:u,keys:[e,t],value:s})}function f(e,t){return r.getMap({map:u,keys:[e,t]})}function h(e,t,n,i,o){return r.setMap({map:d,keys:[e,t,n,i],value:o})}function g(e,t,n,i){return r.getMap({map:d,keys:[e,t,n,i]})}var m=function(){return 2===arguments.length?f.apply(null,arguments):3===arguments.length?p.apply(null,arguments):4===arguments.length?g.apply(null,arguments):5===arguments.length?h.apply(null,arguments):void r.error("Invalid extension access syntax")};a.prototype.extension=m,s.forEach((function(e){e.extensions.forEach((function(t){p(e.type,t.name,t.impl)}))})),e.exports=m},function(e,t,n){"use strict";e.exports=[{type:"layout",extensions:n(96)},{type:"renderer",extensions:n(105)}]},function(e,t,n){"use strict";e.exports=[{name:"breadthfirst",impl:n(97)},{name:"circle",impl:n(98)},{name:"concentric",impl:n(99)},{name:"cose",impl:n(100)},{name:"grid",impl:n(101)},{name:"null",impl:n(102)},{name:"preset",impl:n(103)},{name:"random",impl:n(104)}]},function(e,t,n){"use strict";var r=n(1),i=n(2),o=n(0),a={fit:!0,directed:!1,padding:30,circle:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,maximalAdjustments:0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function s(e){this.options=r.extend({},a,e)}s.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=r.nodes().not(":parent"),s=r,l=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c=void 0;if(o.elementOrCollection(t.roots))c=t.roots;else if(o.array(t.roots)){for(var u=[],d=0;d<t.roots.length;d++){var p=t.roots[d],f=n.getElementById(p);u.push(f)}c=n.collection(u)}else if(o.string(t.roots))c=n.$(t.roots);else if(t.directed)c=a.roots();else{for(var h=[],g=a,m=function(){var e=n.collection();r.bfs({roots:g[0],visit:function(t,n,r,i,o){e=e.add(t)},directed:!1}),g=g.not(e),h.push(e)};g.length>0;)m();c=n.collection();for(var v=function(e){var t=h[e],n=t.maxDegree(!1),r=t.filter((function(e){return e.degree(!1)===n}));c=c.add(r)},b=0;b<h.length;b++)v(b)}var y=[],x={},w={},k={},A={},E={};s.bfs({roots:c,directed:t.directed,visit:function(e,t,n,r,i){var o=e[0],a=o.id();if(y[i]||(y[i]=[]),y[i].push(o),x[a]=!0,w[a]=i,k[a]=n,A[a]=t,n){var s=n.id();(E[s]=E[s]||[]).push(e)}}});for(var S=[],$=0;$<a.length;$++){var C=a[$];x[C.id()]||S.push(C)}for(var _=3*S.length,O=0;0!==S.length&&O<_;){for(var T=S.shift(),j=T.neighborhood().nodes(),P=!1,D=0;D<j.length;D++){var R=w[j[D].id()];if(void 0!==R){y[R].push(T),P=!0;break}}P||S.push(T),O++}for(;0!==S.length;){var I=S.shift();0===y.length&&y.push([]),y[0].push(I)}var N=function(){for(var e=0;e<y.length;e++)for(var t=y[e],n=0;n<t.length;n++){var r=t[n];null!=r?r._private.scratch.breadthfirst={depth:e,index:n}:(t.splice(n,1),n--)}};N();for(var M=function(e){for(var t=e.connectedEdges((function(t){return t.data("target")===e.id()})),n=e._private.scratch.breadthfirst,r=0,i=void 0,o=0;o<t.length;o++){var a=t[o].source()[0],s=a._private.scratch.breadthfirst;n.depth<=s.depth&&r<s.depth&&(r=s.depth,i=a)}return i},z=0;z<t.maximalAdjustments;z++){for(var L=y.length,B=[],F=0;F<L;F++)for(var q=y[F],V=q.length,U=0;U<V;U++){var H=q[U],G=H._private.scratch.breadthfirst,W=M(H);W&&(G.intEle=W,B.push(H))}for(var Y=0;Y<B.length;Y++){var X=B[Y],Z=X._private.scratch.breadthfirst,Q=Z.intEle._private.scratch.breadthfirst;y[Z.depth][Z.index]=null;for(var J=Q.depth+1;J>y.length-1;)y.push([]);y[J].push(X),Z.depth=J,Z.index=y[J].length-1}N()}var K=0;if(t.avoidOverlap)for(var ee=0;ee<a.length;ee++){var te=a[ee].layoutDimensions(t),ne=te.w,re=te.h;K=Math.max(K,ne,re)}for(var ie={},oe=function(e){if(ie[e.id()])return ie[e.id()];for(var t=e._private.scratch.breadthfirst.depth,n=e.neighborhood().nodes().not(":parent").intersection(a),r=0,i=0,o=0;o<n.length;o++){var s=n[o]._private.scratch.breadthfirst,l=s.index,c=s.depth,u=y[c].length;(t>c||0===t)&&(r+=l/u,i++)}return r/=i=Math.max(1,i),0===i&&(r=void 0),ie[e.id()]=r,r},ae=function(e,t){return oe(e)-oe(t)},se=0;se<3;se++){for(var le=0;le<y.length;le++)y[le]=y[le].sort(ae);N()}for(var ce=0,ue=0;ue<y.length;ue++)ce=Math.max(y[ue].length,ce);for(var de=l.x1+l.w/2,pe=l.x1+l.h/2,fe=function(e,n){var r=e._private.scratch.breadthfirst,i=r.depth,o=r.index,a=y[i].length,s=Math.max(l.w/(a+1),K),c=Math.max(l.h/(y.length+1),K),u=Math.min(l.w/2/y.length,l.h/2/y.length);if(u=Math.max(u,K),t.circle){if(t.circle){var d=u*i+u-(y.length>0&&y[0].length<=3?u/2:0),p=2*Math.PI/y[i].length*o;return 0===i&&1===y[0].length&&(d=1),{x:de+d*Math.cos(p),y:pe+d*Math.sin(p)}}return{x:de+(o+1-(a+1)/2)*s,y:(i+1)*c}}var f={x:de+(o+1-(a+1)/2)*s,y:(i+1)*c};return f},he={},ge=y.length-1;ge>=0;ge--)for(var me=y[ge],ve=0;ve<me.length;ve++){var be=me[ve];he[be.id()]=fe(be,y.length)}return a.layoutPositions(this,t,(function(e){return he[e.id()]})),this},e.exports=s},function(e,t,n){"use strict";var r=n(1),i=n(2),o=n(0),a={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function s(e){this.options=r.extend({},a,e)}s.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,s=r.nodes().not(":parent");t.sort&&(s=s.sort(t.sort));for(var l=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c=l.x1+l.w/2,u=l.y1+l.h/2,d=(void 0===t.sweep?2*Math.PI-2*Math.PI/s.length:t.sweep)/Math.max(1,s.length-1),p=void 0,f=0,h=0;h<s.length;h++){var g=s[h].layoutDimensions(t),m=g.w,v=g.h;f=Math.max(f,m,v)}if(p=o.number(t.radius)?t.radius:s.length<=1?0:Math.min(l.h,l.w)/2-f,s.length>1&&t.avoidOverlap){f*=1.75;var b=Math.cos(d)-Math.cos(0),y=Math.sin(d)-Math.sin(0),x=Math.sqrt(f*f/(b*b+y*y));p=Math.max(x,p)}return s.layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*d*(a?1:-1),i=p*Math.cos(r),o=p*Math.sin(r);return{x:c+i,y:u+o}})),this},e.exports=s},function(e,t,n){"use strict";var r=n(1),i=n(2),o={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,o=t.eles.nodes().not(":parent"),a=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=a.x1+a.w/2,l=a.y1+a.h/2,c=[],u=(t.startAngle,0),d=0;d<o.length;d++){var p,f=o[d];p=t.concentric(f),c.push({value:p,node:f}),f._private.scratch.concentric=p}o.updateStyle();for(var h=0;h<o.length;h++){var g=o[h].layoutDimensions(t);u=Math.max(u,g.w,g.h)}c.sort((function(e,t){return t.value-e.value}));for(var m=t.levelWidth(o),v=[[]],b=v[0],y=0;y<c.length;y++){var x=c[y];b.length>0&&Math.abs(b[0].value-x.value)>=m&&(b=[],v.push(b)),b.push(x)}var w=u+t.minNodeSpacing;if(!t.avoidOverlap){var k=v.length>0&&v[0].length>1,A=(Math.min(a.w,a.h)/2-w)/(v.length+k?1:0);w=Math.min(w,A)}for(var E=0,S=0;S<v.length;S++){var $=v[S],C=void 0===t.sweep?2*Math.PI-2*Math.PI/$.length:t.sweep,_=$.dTheta=C/Math.max(1,$.length-1);if($.length>1&&t.avoidOverlap){var O=Math.cos(_)-Math.cos(0),T=Math.sin(_)-Math.sin(0),j=Math.sqrt(w*w/(O*O+T*T));E=Math.max(j,E)}$.r=E,E+=w}if(t.equidistant){for(var P=0,D=0,R=0;R<v.length;R++){var I=v[R].r-D;P=Math.max(P,I)}D=0;for(var N=0;N<v.length;N++){var M=v[N];0===N&&(D=M.r),M.r=D,D+=P}}for(var z={},L=0;L<v.length;L++)for(var B=v[L],F=B.dTheta,q=B.r,V=0;V<B.length;V++){var U=B[V],H=t.startAngle+(n?1:-1)*F*V,G={x:s+q*Math.cos(H),y:l+q*Math.sin(H)};z[U.node.id()]=G}return o.layoutPositions(this,t,(function(e){var t=e.id();return z[t]})),this},e.exports=a},function(e,t,n){"use strict";var r,i=n(1),o=n(2),a=n(0),s=n(5),l={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1,weaver:!1};function c(e){this.options=i.extend({},l,e),this.options.layout=this}c.prototype.run=function(){var e=this.options,t=e.cy,n=this,o=this.thread,l=e.weaver?e.weaver.Thread:null,c={listeners:[],on:function(e,t){return this.listeners.push({event:e,callback:t}),this},trigger:function(e){a.string(e)&&(e={type:e});var t=function(t){t.callback(e)};return this.listeners.filter((function(t){return t.event===e.type})).forEach(t),this},pass:function(e){return this.pass=e,this},run:function(e){var t=this.pass;return new s((function(n){n(e(t))}))},stop:function(){return this},stopped:function(){return!0}};o&&!o.stopped()||(o=this.thread=l?new l:c),n.stopped=!1,!0!==e.animate&&!1!==e.animate||n.emit({type:"layoutstart",layout:n}),r=!0===e.debug;var d=u(t,n,e);r&&f(d),e.randomize&&h(d,t);var p=Date.now(),m=!1,v=function(n){n=n||{},m&&!n.next||!n.force&&Date.now()-p<e.animationThreshold||(m=!0,i.requestAnimationFrame((function(){g(d,t,e),!0===e.fit&&t.fit(e.padding),m=!1,n.next&&n.next()})))};o.on("message",(function(e){var t=e.message;d.layoutNodes=t,v()})),o.pass({layoutInfo:d,options:{animate:e.animate,refresh:e.refresh,componentSpacing:e.componentSpacing,nodeOverlap:e.nodeOverlap,nestingFactor:e.nestingFactor,gravity:e.gravity,numIter:e.numIter,initialTemp:e.initialTemp,coolingFactor:e.coolingFactor,minTemp:e.minTemp}}).run((function(e){var t,n,r=e.layoutInfo,i=e.options,o=function(e,t){for(var n=0;n<e.graphSet.length;n++)for(var r=e.graphSet[n],i=r.length,o=0;o<i;o++)for(var a=e.layoutNodes[e.idToIndex[r[o]]],l=o+1;l<i;l++){var c=e.layoutNodes[e.idToIndex[r[l]]];s(a,c,e,t)}},a=function(e){return-e+2*e*Math.random()},s=function(e,t,n,r){if(e.cmptId===t.cmptId||n.isCompound){var i=t.positionX-e.positionX,o=t.positionY-e.positionY;0===i&&0===o&&(i=a(1),o=a(1));var s=l(e,t,i,o);if(s>0)var c=(p=r.nodeOverlap*s)*i/(b=Math.sqrt(i*i+o*o)),d=p*o/b;else{var p,f=u(e,i,o),h=u(t,-1*i,-1*o),g=h.x-f.x,m=h.y-f.y,v=g*g+m*m,b=Math.sqrt(v);c=(p=(e.nodeRepulsion+t.nodeRepulsion)/v)*g/b,d=p*m/b}e.isLocked||(e.offsetX-=c,e.offsetY-=d),t.isLocked||(t.offsetX+=c,t.offsetY+=d)}},l=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var o=e.maxY-t.minY;else o=t.maxY-e.minY;return i>=0&&o>=0?Math.sqrt(i*i+o*o):0},u=function(e,t,n){var r=e.positionX,i=e.positionY,o=e.height||1,a=e.width||1,s=n/t,l=o/a,c={};return 0===t&&0<n||0===t&&0>n?(c.x=r,c.y=i+o/2,c):0<t&&-1*l<=s&&s<=l?(c.x=r+a/2,c.y=i+a*n/2/t,c):0>t&&-1*l<=s&&s<=l?(c.x=r-a/2,c.y=i-a*n/2/t,c):0<n&&(s<=-1*l||s>=l)?(c.x=r+o*t/2/n,c.y=i+o/2,c):0>n&&(s<=-1*l||s>=l)?(c.x=r-o*t/2/n,c.y=i-o/2,c):c},d=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],o=e.layoutNodes[i],a=e.idToIndex[r.targetId],s=e.layoutNodes[a],l=s.positionX-o.positionX,c=s.positionY-o.positionY;if(0!==l||0!==c){var d=u(o,l,c),p=u(s,-1*l,-1*c),f=p.x-d.x,h=p.y-d.y,g=Math.sqrt(f*f+h*h),m=Math.pow(r.idealLength-g,2)/r.elasticity;if(0!==g)var v=m*f/g,b=m*h/g;else v=0,b=0;o.isLocked||(o.offsetX+=v,o.offsetY+=b),s.isLocked||(s.offsetX-=v,s.offsetY-=b)}}},p=function(e,t){for(var n=0;n<e.graphSet.length;n++){var r=e.graphSet[n],i=r.length;if(0===n)var o=e.clientHeight/2,a=e.clientWidth/2;else{var s=e.layoutNodes[e.idToIndex[r[0]]],l=e.layoutNodes[e.idToIndex[s.parentId]];o=l.positionX,a=l.positionY}for(var c=0;c<i;c++){var u=e.layoutNodes[e.idToIndex[r[c]]];if(!u.isLocked){var d=o-u.positionX,p=a-u.positionY,f=Math.sqrt(d*d+p*p);if(f>1){var h=t.gravity*d/f,g=t.gravity*p/f;u.offsetX+=h,u.offsetY+=g}}}}},f=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var o=n[r++],a=e.idToIndex[o],s=e.layoutNodes[a],l=s.children;if(0<l.length&&!s.isLocked){for(var c=s.offsetX,u=s.offsetY,d=0;d<l.length;d++){var p=e.layoutNodes[e.idToIndex[l[d]]];p.offsetX+=c,p.offsetY+=u,n[++i]=l[d]}s.offsetX=0,s.offsetY=0}}},h=function(e,t){for(var n=0;n<e.nodeSize;n++)0<(i=e.layoutNodes[n]).children.length&&(i.maxX=void 0,i.minX=void 0,i.maxY=void 0,i.minY=void 0);for(n=0;n<e.nodeSize;n++)if(!(0<(i=e.layoutNodes[n]).children.length||i.isLocked)){var r=g(i.offsetX,i.offsetY,e.temperature);i.positionX+=r.x,i.positionY+=r.y,i.offsetX=0,i.offsetY=0,i.minX=i.positionX-i.width,i.maxX=i.positionX+i.width,i.minY=i.positionY-i.height,i.maxY=i.positionY+i.height,m(i,e)}for(n=0;n<e.nodeSize;n++){var i;0<(i=e.layoutNodes[n]).children.length&&!i.isLocked&&(i.positionX=(i.maxX+i.minX)/2,i.positionY=(i.maxY+i.minY)/2,i.width=i.maxX-i.minX,i.height=i.maxY-i.minY)}},g=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},m=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],o=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,o=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,o=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,o=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,o=!0),o?e(i,n):void 0}},v=function(e){return function(e,t,n){o(e,t),d(e,t),p(e,t),f(e,t),h(e,t)}(r,i),r.temperature=r.temperature*i.coolingFactor,!(r.temperature<i.minTemp)},b=0;do{for(var y=0;y<i.refresh&&b<i.numIter;){var x;if(!(x=v()))break;y++,b++}!0===i.animate&&(t=r.layoutNodes,n=void 0,n={type:"message",message:t},c.trigger(n))}while(x&&b+1<i.numIter);return function(e,t){for(var n=r.layoutNodes,i=[],o=0;o<n.length;o++){var a=n[o],s=a.cmptId;(i[s]=i[s]||[]).push(a)}var l=0;for(o=0;o<i.length;o++)if(m=i[o]){m.x1=1/0,m.x2=-1/0,m.y1=1/0,m.y2=-1/0;for(var c=0;c<m.length;c++){var u=m[c];m.x1=Math.min(m.x1,u.positionX-u.width/2),m.x2=Math.max(m.x2,u.positionX+u.width/2),m.y1=Math.min(m.y1,u.positionY-u.height/2),m.y2=Math.max(m.y2,u.positionY+u.height/2)}m.w=m.x2-m.x1,m.h=m.y2-m.y1,l+=m.w*m.h}i.sort((function(e,t){return t.w*t.h-e.w*e.h}));var d=0,p=0,f=0,h=0,g=Math.sqrt(l)*r.clientWidth/r.clientHeight;for(o=0;o<i.length;o++){var m;if(m=i[o]){for(c=0;c<m.length;c++)(u=m[c]).isLocked||(u.positionX+=d,u.positionY+=p);d+=m.w+t.componentSpacing,f+=m.w+t.componentSpacing,h=Math.max(h,m.h),f>g&&(p+=h+t.componentSpacing,d=0,f=0,h=0)}}}(0,i),r})).then((function(e){d.layoutNodes=e.layoutNodes,o.stop(),b()}));var b=function(){!0===e.animate||!1===e.animate?v({force:!0,next:function(){n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n})}}):e.eles.nodes().layoutPositions(n,e,(function(e){var t=d.layoutNodes[d.idToIndex[e.data("id")]];return{x:t.positionX,y:t.positionY}}))};return this},c.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},c.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var u=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),s={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:e.width(),clientHeight:e.width(),boundingBox:o.makeBoundingBox(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()})},l=n.eles.components(),c={},u=0;u<l.length;u++)for(var p=l[u],f=0;f<p.length;f++)c[p[f].id()]=u;for(u=0;u<s.nodeSize;u++){var h=(y=i[u]).layoutDimensions(n);(I={}).isLocked=y.locked(),I.id=y.data("id"),I.parentId=y.data("parent"),I.cmptId=c[y.id()],I.children=[],I.positionX=y.position("x"),I.positionY=y.position("y"),I.offsetX=0,I.offsetY=0,I.height=h.w,I.width=h.h,I.maxX=I.positionX+I.width/2,I.minX=I.positionX-I.width/2,I.maxY=I.positionY+I.height/2,I.minY=I.positionY-I.height/2,I.padLeft=parseFloat(y.style("padding")),I.padRight=parseFloat(y.style("padding")),I.padTop=parseFloat(y.style("padding")),I.padBottom=parseFloat(y.style("padding")),I.nodeRepulsion=a.fn(n.nodeRepulsion)?n.nodeRepulsion(y):n.nodeRepulsion,s.layoutNodes.push(I),s.idToIndex[I.id]=u}var g=[],m=0,v=-1,b=[];for(u=0;u<s.nodeSize;u++){var y,x=(y=s.layoutNodes[u]).parentId;null!=x?s.layoutNodes[s.idToIndex[x]].children.push(y.id):(g[++v]=y.id,b.push(y.id))}for(s.graphSet.push(b);m<=v;){var w=g[m++],k=s.idToIndex[w],A=s.layoutNodes[k].children;if(A.length>0)for(s.graphSet.push(A),u=0;u<A.length;u++)g[++v]=A[u]}for(u=0;u<s.graphSet.length;u++){var E=s.graphSet[u];for(f=0;f<E.length;f++){var S=s.idToIndex[E[f]];s.indexToGraph[S]=u}}for(u=0;u<s.edgeSize;u++){var $=r[u],C={};C.id=$.data("id"),C.sourceId=$.data("source"),C.targetId=$.data("target");var _=a.fn(n.idealEdgeLength)?n.idealEdgeLength($):n.idealEdgeLength,O=a.fn(n.edgeElasticity)?n.edgeElasticity($):n.edgeElasticity,T=s.idToIndex[C.sourceId],j=s.idToIndex[C.targetId];if(s.indexToGraph[T]!=s.indexToGraph[j]){for(var P=d(C.sourceId,C.targetId,s),D=s.graphSet[P],R=0,I=s.layoutNodes[T];-1===D.indexOf(I.id);)I=s.layoutNodes[s.idToIndex[I.parentId]],R++;for(I=s.layoutNodes[j];-1===D.indexOf(I.id);)I=s.layoutNodes[s.idToIndex[I.parentId]],R++;_*=R*n.nestingFactor}C.idealLength=_,C.elasticity=O,s.layoutEdges.push(C)}return s},d=function(e,t,n){var r=p(e,t,0,n);return 2>r.count?0:r.graph},p=function e(t,n,r,i){var o=i.graphSet[r];if(-1<o.indexOf(t)&&-1<o.indexOf(n))return{count:2,graph:r};for(var a=0,s=0;s<o.length;s++){var l=o[s],c=i.idToIndex[l],u=i.layoutNodes[c].children;if(0!==u.length){var d=e(t,n,i.indexToGraph[i.idToIndex[u[0]]],i);if(0!==d.count){if(1!==d.count)return d;if(2==++a)break}}}return{count:a,graph:r}},f=function(e){if(r){console.debug("layoutNodes:");for(var t=0;t<e.nodeSize;t++){var n=e.layoutNodes[t],i="\nindex: "+t+"\nId: "+n.id+"\nChildren: "+n.children.toString()+"\nparentId: "+n.parentId+"\npositionX: "+n.positionX+"\npositionY: "+n.positionY+"\nOffsetX: "+n.offsetX+"\nOffsetY: "+n.offsetY+"\npadLeft: "+n.padLeft+"\npadRight: "+n.padRight+"\npadTop: "+n.padTop+"\npadBottom: "+n.padBottom;console.debug(i)}for(var t in console.debug("idToIndex"),e.idToIndex)console.debug("Id: "+t+"\nIndex: "+e.idToIndex[t]);console.debug("Graph Set");var o=e.graphSet;for(t=0;t<o.length;t++)console.debug("Set : "+t+": "+o[t].toString());for(i="IndexToGraph",t=0;t<e.indexToGraph.length;t++)i+="\nIndex : "+t+" Graph: "+e.indexToGraph[t];for(console.debug(i),i="Layout Edges",t=0;t<e.layoutEdges.length;t++){var a=e.layoutEdges[t];i+="\nEdge Index: "+t+" ID: "+a.id+" SouceID: "+a.sourceId+" TargetId: "+a.targetId+" Ideal Length: "+a.idealLength}console.debug(i),i="nodeSize: "+e.nodeSize,i+="\nedgeSize: "+e.edgeSize,i+="\ntemperature: "+e.temperature,console.debug(i)}},h=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var o=e.layoutNodes[i];0!==o.children.length||o.isLocked||(o.positionX=Math.random()*n,o.positionY=Math.random()*r)}},g=function(e,t,n){var r=n.layout,i=n.eles.nodes(),o=e.boundingBox,a={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};n.boundingBox&&(i.forEach((function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];a.x1=Math.min(a.x1,n.positionX),a.x2=Math.max(a.x2,n.positionX),a.y1=Math.min(a.y1,n.positionY),a.y2=Math.max(a.y2,n.positionY)})),a.w=a.x2-a.x1,a.h=a.y2-a.y1),i.positions((function(t,r){var i=e.layoutNodes[e.idToIndex[t.data("id")]];if(n.boundingBox){var s=(i.positionX-a.x1)/a.w,l=(i.positionY-a.y1)/a.h;return{x:o.x1+s*o.w,y:o.y1+l*o.h}}return{x:i.positionX,y:i.positionY}})),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))};e.exports=c},function(e,t,n){"use strict";var r=n(1),i=n(2),o={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles.nodes().not(":parent");t.sort&&(r=r.sort(t.sort));var o=i.makeBoundingBox(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===o.h||0===o.w)r.layoutPositions(this,t,(function(e){return{x:o.x1,y:o.y1}}));else{var a=r.size(),s=Math.sqrt(a*o.h/o.w),l=Math.round(s),c=Math.round(o.w/o.h*s),u=function(e){if(null==e)return Math.min(l,c);Math.min(l,c)==l?l=e:c=e},d=function(e){if(null==e)return Math.max(l,c);Math.max(l,c)==l?l=e:c=e},p=t.rows,f=null!=t.cols?t.cols:t.columns;if(null!=p&&null!=f)l=p,c=f;else if(null!=p&&null==f)l=p,c=Math.ceil(a/l);else if(null==p&&null!=f)c=f,l=Math.ceil(a/c);else if(c*l>a){var h=u(),g=d();(h-1)*g>=a?u(h-1):(g-1)*h>=a&&d(g-1)}else for(;c*l<a;){var m=u(),v=d();(v+1)*m>=a?d(v+1):u(m+1)}var b=o.w/c,y=o.h/l;if(t.condense&&(b=0,y=0),t.avoidOverlap)for(var x=0;x<r.length;x++){var w=r[x],k=w._private.position;null!=k.x&&null!=k.y||(k.x=0,k.y=0);var A=w.layoutDimensions(t),E=t.avoidOverlapPadding,S=A.w+E,$=A.h+E;b=Math.max(b,S),y=Math.max(y,$)}for(var C={},_=function(e,t){return!!C["c-"+e+"-"+t]},O=function(e,t){C["c-"+e+"-"+t]=!0},T=0,j=0,P=function(){++j>=c&&(j=0,T++)},D={},R=0;R<r.length;R++){var I=r[R],N=t.position(I);if(N&&(void 0!==N.row||void 0!==N.col)){var M={row:N.row,col:N.col};if(void 0===M.col)for(M.col=0;_(M.row,M.col);)M.col++;else if(void 0===M.row)for(M.row=0;_(M.row,M.col);)M.row++;D[I.id()]=M,O(M.row,M.col)}}r.layoutPositions(this,t,(function(e,t){var n=void 0,r=void 0;if(e.locked()||e.isParent())return!1;var i=D[e.id()];if(i)n=i.col*b+b/2+o.x1,r=i.row*y+y/2+o.y1;else{for(;_(T,j);)P();n=j*b+b/2+o.x1,r=T*y+y/2+o.y1,O(T,j),P()}return{x:n,y:r}}))}return this},e.exports=a},function(e,t,n){"use strict";var r=n(1),i={ready:function(){},stop:function(){}};function o(e){this.options=r.extend({},i,e)}o.prototype.run=function(){var e=this.options,t=e.eles;return e.cy,this.emit("layoutstart"),t.nodes().positions((function(){return{x:0,y:0}})),this.one("layoutready",e.ready),this.emit("layoutready"),this.one("layoutstop",e.stop),this.emit("layoutstop"),this},o.prototype.stop=function(){return this},e.exports=o},function(e,t,n){"use strict";var r=n(1),i=n(0),o={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=i.fn(e.positions);return t.layoutPositions(this,e,(function(t,r){var i=function(t){if(null==e.positions)return null;if(n)return e.positions(t);var r=e.positions[t._private.data.id];return null==r?null:r}(t);return!t.locked()&&null!=i&&i})),this},e.exports=a},function(e,t,n){"use strict";var r=n(1),i=n(2),o={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function a(e){this.options=r.extend({},o,e)}a.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles.nodes().not(":parent"),r=i.makeBoundingBox(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});return n.layoutPositions(this,e,(function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}})),this},e.exports=a},function(e,t,n){"use strict";e.exports=[{name:"null",impl:n(106)},{name:"base",impl:n(107)},{name:"canvas",impl:n(123)}]},function(e,t,n){"use strict";function r(e){this.options=e,this.notifications=0}var i=function(){};r.prototype={recalculateRenderedStyle:i,notify:function(){this.notifications++},init:i},e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(3),a=function(e){this.init(e)},s=a.prototype;s.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],s.init=function(e){var t=this;t.options=e,t.cy=e.cy;var n=t.container=e.cy.container();if(o){var r=o.document,a=r.head,s="__________cytoscape_container",l=null!=r.getElementById("__________cytoscape_stylesheet");if(n.className.indexOf(s)<0&&(n.className=(n.className||"")+" "+s),!l){var c=r.createElement("style");c.id="__________cytoscape_stylesheet",c.innerHTML="."+s+" { position: relative; }",a.insertBefore(c,a.children[0])}"static"===o.getComputedStyle(n).getPropertyValue("position")&&i.error("A Cytoscape container has style position:static and so can not use UI extensions properly")}t.selection=[void 0,void 0,void 0,void 0,0],t.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],t.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},t.dragData={possibleDragElements:[]},t.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},t.redraws=0,t.showFps=e.showFps,t.debug=e.debug,t.hideEdgesOnViewport=e.hideEdgesOnViewport,t.hideLabelsOnViewport=e.hideLabelsOnViewport,t.textureOnViewport=e.textureOnViewport,t.wheelSensitivity=e.wheelSensitivity,t.motionBlurEnabled=e.motionBlur,t.forcedPixelRatio=e.pixelRatio,t.motionBlur=e.motionBlur,t.motionBlurOpacity=e.motionBlurOpacity,t.motionBlurTransparency=1-t.motionBlurOpacity,t.motionBlurPxRatio=1,t.mbPxRBlurry=1,t.minMbLowQualFrames=4,t.fullQualityMb=!1,t.clearedForMotionBlur=[],t.desktopTapThreshold=e.desktopTapThreshold,t.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,t.touchTapThreshold=e.touchTapThreshold,t.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,t.tapholdDuration=500,t.bindings=[],t.beforeRenderCallbacks=[],t.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:100},t.registerNodeShapes(),t.registerArrowShapes(),t.registerCalculationListeners()},s.notify=function(e){var t,n=this;if(!this.destroyed){t=r.array(e.type)?e.type:[e.type];for(var i={},o=0;o<t.length;o++)i[t[o]]=!0;i.init?n.load():i.destroy?n.destroy():((i.add||i.remove||i.load||i.zorder)&&n.invalidateCachedZSortedEles(),i.viewport&&n.redrawHint("select",!0),(i.load||i.resize)&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw())}},s.destroy=function(){var e=this;e.destroyed=!0,e.cy.stopAnimationLoop();for(var t=0;t<e.bindings.length;t++){var n=e.bindings[t],r=n.target;(r.off||r.removeEventListener).apply(r,n.args)}if(e.bindings=[],e.beforeRenderCallbacks=[],e.onUpdateEleCalcsFns=[],e.removeObserver&&e.removeObserver.disconnect(),e.styleObserver&&e.styleObserver.disconnect(),e.labelCalcDiv)try{document.body.removeChild(e.labelCalcDiv)}catch(e){}},[n(108),n(109),n(119),n(120),n(121),n(122)].forEach((function(e){i.extend(s,e)})),e.exports=a},function(e,t,n){"use strict";var r=n(2),i=n(0),o=n(1),a={arrowShapeWidth:.3,registerArrowShapes:function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,o,a){var s=i.x-n/2-a,l=i.x+n/2+a,c=i.y-n/2-a,u=i.y+n/2+a;return s<=e&&e<=l&&c<=t&&t<=u},a=function(e,t,n,r,i){var o=e*Math.cos(r)-t*Math.sin(r),a=(e*Math.sin(r)+t*Math.cos(r))*n;return{x:o*n+i.x,y:a+i.y}},s=function(e,t,n,r){for(var i=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];i.push(a(s,l,t,n,r))}return i},l=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},c=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},u=function(a,u){i.string(u)&&(u=e[u]),e[a]=o.extend({name:a,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,i,o,a){var c=l(s(this.points,n+2*a,i,o));return r.pointInsidePolygonPoints(e,t,c)},roughCollide:n,draw:function(e,n,r,i){var o=s(this.points,n,r,i);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:c},u)};u("none",{collide:o.falsify,roughCollide:o.falsify,draw:o.noop,spacing:o.zeroify,gap:o.zeroify}),u("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),u("arrow","triangle"),u("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,r,i,o){var l=s(this.points,n,r,i),c=this.controlPoint,u=a(c[0],c[1],n,r,i);t.arrowShapeImpl(this.name)(e,l,u)},gap:function(e){return.8*c(e)}}),u("triangle-tee",{points:[-.15,-.3,0,0,.15,-.3,-.15,-.3],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,i,o,a,c){var u=l(s(this.points,n+2*c,i,o)),d=l(s(this.pointsTee,n+2*c,i,o));return r.pointInsidePolygonPoints(e,t,u)||r.pointInsidePolygonPoints(e,t,d)},draw:function(e,n,r,i,o){var a=s(this.points,n,r,i),l=s(this.pointsTee,n,r,i);t.arrowShapeImpl(this.name)(e,a,l)}}),u("triangle-cross",{points:[-.15,-.3,0,0,.15,-.3,-.15,-.3],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e;return n[3]=n[3]-r,n[5]=n[5]-r,n},collide:function(e,t,n,i,o,a,c){var u=l(s(this.points,n+2*c,i,o)),d=l(s(this.crossLinePts(n,a),n+2*c,i,o));return r.pointInsidePolygonPoints(e,t,u)||r.pointInsidePolygonPoints(e,t,d)},draw:function(e,n,r,i,o){var a=s(this.points,n,r,i),l=s(this.crossLinePts(n,o),n,r,i);t.arrowShapeImpl(this.name)(e,a,l)}}),u("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return.525*c(e)}}),u("circle",{radius:.15,collide:function(e,t,n,r,i,o,a){var s=i;return Math.pow(s.x-e,2)+Math.pow(s.y-t,2)<=Math.pow((n+2*a)*this.radius,2)},draw:function(e,n,r,i,o){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),u("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),u("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),u("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})}};e.exports=a},function(e,t,n){"use strict";var r=n(1),i={};[n(110),n(111),n(112),n(113),n(114),n(115),n(116),n(117),n(118)].forEach((function(e){r.extend(i,e)})),e.exports=i},function(e,t,n){"use strict";var r=n(3),i=n(2),o=n(1),a=(r=n(3),{projectIntoViewport:function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],o=r[1],a=r[4],s=n.pan(),l=n.zoom();return[((e-i)/a-s.x)/l,((t-o)/a-s.y)/l]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=r.getComputedStyle(e),i=function(e){return parseFloat(n.getPropertyValue(e))},o=i("padding-left"),a=i("padding-right"),s=i("padding-top"),l=i("padding-bottom"),c=i("border-left-width"),u=i("border-right-width"),d=i("border-top-width"),p=(i("border-bottom-width"),e.clientWidth),f=e.clientHeight,h=o+a,g=s+l,m=c+u,v=t.width/(p+m),b=p-h,y=f-g,x=(t.width,t.height,t.left+o+c),w=t.top+s+d;return this.containerBB=[x,w,b,y,v]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},findNearestElements:function(e,t,n,r){var a,s,l=this,c=this,u=c.getCachedZSortedEles(),d=[],p=c.cy.zoom(),f=c.cy.hasCompoundNodes(),h=(r?24:8)/p,g=(r?8:2)/p,m=(r?8:2)/p,v=1/0;function b(e,t){if(e.isNode()){if(s)return;s=e,d.push(e)}if(e.isEdge()&&(null==t||t<v))if(a){if(a.pstyle("z-index").value===e.pstyle("z-index").value)for(var n=0;n<d.length;n++)if(d[n].isEdge()){d[n]=e,a=e,v=null!=t?t:v;break}}else d.push(e),a=e,v=null!=t?t:v}function y(n){var r=n.outerWidth()+2*g,i=n.outerHeight()+2*g,o=r/2,a=i/2,s=n.position();if(s.x-o<=e&&e<=s.x+o&&s.y-a<=t&&t<=s.y+a&&c.nodeShapes[l.getNodeShape(n)].checkPoint(e,t,0,r,i,s.x,s.y))return b(n,0),!0}function x(n){var r,o=n._private,a=o.rscratch,s=n.pstyle("width").pfValue,u=n.pstyle("arrow-scale").value,p=s/2+h,g=p*p,m=2*p,v=o.source,x=o.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var w=a.allpts,k=0;k+3<w.length;k+=2)if(i.inLineVicinity(e,t,w[k],w[k+1],w[k+2],w[k+3],m)&&g>(r=i.sqdistToFiniteLine(e,t,w[k],w[k+1],w[k+2],w[k+3])))return b(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(w=a.allpts,k=0;k+5<a.allpts.length;k+=4)if(i.inBezierVicinity(e,t,w[k],w[k+1],w[k+2],w[k+3],w[k+4],w[k+5],m)&&g>(r=i.sqdistToQuadraticBezier(e,t,w[k],w[k+1],w[k+2],w[k+3],w[k+4],w[k+5])))return b(n,r),!0;v=v||o.source,x=x||o.target;var A=l.getArrowWidth(s,u),E=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(k=0;k<E.length;k++){var S=E[k],$=c.arrowShapes[n.pstyle(S.name+"-arrow-shape").value],C=n.pstyle("width").pfValue;if($.roughCollide(e,t,A,S.angle,{x:S.x,y:S.y},C,h)&&$.collide(e,t,A,S.angle,{x:S.x,y:S.y},C,h))return b(n),!0}f&&d.length>0&&(y(v),y(x))}function w(e,t,n){return o.getPrefixedProperty(e,t,n)}function k(n,r){var o,a=n._private,s=m;o=r?r+"-":"";var l=n.pstyle(o+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var c=a.rstyle,u=n.pstyle("text-border-width").pfValue,d=n.pstyle("text-background-padding").pfValue,p=w(c,"labelWidth",r)+u+2*s+2*d,f=w(c,"labelHeight",r)+u+2*s+2*d,h=w(c,"labelX",r),g=w(c,"labelY",r),v=w(a.rscratch,"labelAngle",r),y=h-p/2,x=h+p/2,k=g-f/2,A=g+f/2;if(v){var E=Math.cos(v),S=Math.sin(v),$=function(e,t){return{x:(e-=h)*E-(t-=g)*S+h,y:e*S+t*E+g}},C=$(y,k),_=$(y,A),O=$(x,k),T=$(x,A),j=[C.x,C.y,O.x,O.y,T.x,T.y,_.x,_.y];if(i.pointInsidePolygonPoints(e,t,j))return b(n),!0}else{var P={w:p,h:f,x1:y,x2:x,y1:k,y2:A};if(i.inBoundingBox(P,e,t))return b(n),!0}}}n&&(u=u.interactive);for(var A=u.length-1;A>=0;A--){var E=u[A];E.isNode()?y(E)||k(E):x(E)||k(E)||k(E,"source")||k(E,"target")}return d},getAllInBox:function(e,t,n,r){var o=this.getCachedZSortedEles().interactive,a=[],s=Math.min(e,n),l=Math.max(e,n),c=Math.min(t,r),u=Math.max(t,r);e=s,n=l,t=c,r=u;for(var d=i.makeBoundingBox({x1:e,y1:t,x2:n,y2:r}),p=0;p<o.length;p++){var f=o[p];if(f.isNode()){var h=f,g=h.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});i.boundingBoxesIntersect(d,g)&&!i.boundingBoxInBoundingBox(g,d)&&a.push(h)}else{var m=f,v=m._private,b=v.rscratch;if(null!=b.startX&&null!=b.startY&&!i.inBoundingBox(d,b.startX,b.startY))continue;if(null!=b.endX&&null!=b.endY&&!i.inBoundingBox(d,b.endX,b.endY))continue;if("bezier"===b.edgeType||"multibezier"===b.edgeType||"self"===b.edgeType||"compound"===b.edgeType||"segments"===b.edgeType||"haystack"===b.edgeType){for(var y=v.rstyle.bezierPts||v.rstyle.linePts||v.rstyle.haystackPts,x=!0,w=0;w<y.length;w++)if(!i.pointInBoundingBox(d,y[w])){x=!1;break}x&&a.push(m)}else"haystack"!==b.edgeType&&"straight"!==b.edgeType||a.push(m)}}return a}});e.exports=a},function(e,t,n){"use strict";var r=n(2),i={calculateArrowAngles:function(e){var t,n,i,o,a,s,l=e._private.rscratch,c="haystack"===l.edgeType,u="bezier"===l.edgeType,d="multibezier"===l.edgeType,p="segments"===l.edgeType,f="compound"===l.edgeType,h="self"===l.edgeType;if(c?(i=l.haystackPts[0],o=l.haystackPts[1],a=l.haystackPts[2],s=l.haystackPts[3]):(i=l.arrowStartX,o=l.arrowStartY,a=l.arrowEndX,s=l.arrowEndY),m=l.midX,v=l.midY,p)t=i-l.segpts[0],n=o-l.segpts[1];else if(d||f||h||u){var g=l.allpts;t=i-r.qbezierAt(g[0],g[2],g[4],.1),n=o-r.qbezierAt(g[1],g[3],g[5],.1)}else t=i-m,n=o-v;l.srcArrowAngle=r.getAngleFromDisp(t,n);var m=l.midX,v=l.midY;if(c&&(m=(i+a)/2,v=(o+s)/2),t=a-i,n=s-o,p)if((g=l.allpts).length/2%2==0){var b=(y=g.length/2)-2;t=g[y]-g[b],n=g[y+1]-g[b+1]}else{b=(y=g.length/2-1)-2;var y,x=y+2;t=g[y]-g[b],n=g[y+1]-g[b+1]}else if(d||f||h){var w,k,A,E,g=l.allpts;if(l.ctrlpts.length/2%2==0){var S=2+($=2+(C=g.length/2-1));w=r.qbezierAt(g[C],g[$],g[S],0),k=r.qbezierAt(g[C+1],g[$+1],g[S+1],0),A=r.qbezierAt(g[C],g[$],g[S],1e-4),E=r.qbezierAt(g[C+1],g[$+1],g[S+1],1e-4)}else{var $,C=($=g.length/2-1)-2;S=$+2,w=r.qbezierAt(g[C],g[$],g[S],.4999),k=r.qbezierAt(g[C+1],g[$+1],g[S+1],.4999),A=r.qbezierAt(g[C],g[$],g[S],.5),E=r.qbezierAt(g[C+1],g[$+1],g[S+1],.5)}t=A-w,n=E-k}if(l.midtgtArrowAngle=r.getAngleFromDisp(t,n),l.midDispX=t,l.midDispY=n,t*=-1,n*=-1,p&&((g=l.allpts).length/2%2==0||(t=-(g[x=2+(y=g.length/2-1)]-g[y]),n=-(g[x+1]-g[y+1]))),l.midsrcArrowAngle=r.getAngleFromDisp(t,n),p)t=a-l.segpts[l.segpts.length-2],n=s-l.segpts[l.segpts.length-1];else if(d||f||h||u){var _=(g=l.allpts).length;t=a-r.qbezierAt(g[_-6],g[_-4],g[_-2],.9),n=s-r.qbezierAt(g[_-5],g[_-3],g[_-1],.9)}else t=a-m,n=s-v;l.tgtArrowAngle=r.getAngleFromDisp(t,n)}};i.getArrowWidth=i.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r||(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r,r)},e.exports=i},function(e,t,n){"use strict";var r=n(2),i=n(0),o={};function a(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}o.findEdgeControlPoints=function(e){if(e&&0!==e.length){for(var t,n,o,a,s,l=this,c=l.cy.hasCompoundNodes(),u={},d=[],p=[],f=0;f<e.length;f++){var h=(Ft=(Bt=e[f])._private).data,g="unbundled-bezier"===(D=Bt.pstyle("curve-style").value)||"segments"===D,m="unbundled-bezier"===D||"bezier"===D;if("none"!==Bt.pstyle("display").value)if("haystack"!==D){var v=h.source,b=h.target;t=v>b?b+"$-$"+v:v+"$-$"+b,g&&(t="unbundled$-$"+h.id);var y=u[t];null==y&&(y=u[t]=[],d.push(t)),y.push(Bt),g&&(y.hasUnbundled=!0),m&&(y.hasBezier=!0)}else p.push(Bt)}for(var x=0;x<d.length;x++){var w=u[t=d[x]];if(w.sort((function(e,t){return e.poolIndex()-t.poolIndex()})),Ht=w[0]._private.source,Gt=w[0]._private.target,!w.hasUnbundled&&Ht.id()>Gt.id()){var k=Ht;Ht=Gt,Gt=k}Wt=Ht.position(),Yt=Gt.position(),Xt=Ht.outerWidth(),Qt=Ht.outerHeight(),Zt=Gt.outerWidth(),Jt=Gt.outerHeight(),n=l.nodeShapes[this.getNodeShape(Ht)],o=l.nodeShapes[this.getNodeShape(Gt)],s=!1;var A={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0},E=Wt.x,S=Wt.y,$=Xt,C=Qt,_=Yt.x,O=Yt.y,T=Zt,j=Jt,P=w.length;for(f=0;f<w.length;f++){var D,R,I=(Vt=(Bt=w[f])._private.rscratch).lastEdgeIndex,N=f,M=Vt.lastNumEdges,z=(g="unbundled-bezier"===(D=Bt.pstyle("curve-style").value)||"segments"===D,Ht.id()!==Bt.source().id()),L=Bt.pstyle("control-point-distances"),B=Bt.pstyle("loop-direction").pfValue,F=Bt.pstyle("loop-sweep").pfValue,q=Bt.pstyle("control-point-weights"),V=L&&q?Math.min(L.value.length,q.value.length):1,U=Bt.pstyle("control-point-step-size").pfValue,H=L?L.pfValue[0]:void 0,G=q.value[0],W=Bt.pstyle("edge-distances").value,Y=Bt.pstyle("segment-weights"),X=Bt.pstyle("segment-distances"),Z=Math.min(Y.pfValue.length,X.pfValue.length),Q=Bt.pstyle("source-endpoint").value,J=Bt.pstyle("target-endpoint").value,K=Bt.pstyle("source-arrow-shape").value,ee=Bt.pstyle("target-arrow-shape").value,te=Bt.pstyle("arrow-scale").value,ne=Bt.pstyle("width").pfValue,re=Vt.lastSrcCtlPtX,ie=Vt.lastSrcCtlPtY,oe=Vt.lastSrcCtlPtW,ae=Vt.lastSrcCtlPtH,se=Vt.lastTgtCtlPtX,le=Vt.lastTgtCtlPtY,ce=Vt.lastTgtCtlPtW,ue=Vt.lastTgtCtlPtH,de=Vt.lastCurveStyle,pe=D,fe=Vt.lastCtrlptDists,he=L?L.strValue:null,ge=Vt.lastCtrlptWs,me=q.strValue,ve=Vt.lastSegmentWs,be=Y.strValue,ye=Vt.lastSegmentDs,xe=X.strValue,we=Vt.lastStepSize,ke=U,Ae=Vt.lastLoopDir,Ee=B,Se=Vt.lastLoopSwp,$e=F,Ce=Vt.lastEdgeDistances,_e=W,Oe=Vt.lastSrcEndpt,Te=Q,je=Vt.lastTgtEndpt,Pe=J,De=Vt.lastSrcArr,Re=K,Ie=Vt.lastTgtArr,Ne=ee,Me=Vt.lastLineW,ze=ne,Le=Vt.lastArrScl,Be=te;if(Vt.badBezier=!!s,re===E&&ie===S&&oe===$&&ae===C&&se===_&&le===O&&ce===T&&ue===j&&de===pe&&fe===he&&ge===me&&ve===be&&ye===xe&&we===ke&&Ae===Ee&&Se===$e&&Ce===_e&&Oe===Te&&je===Pe&&De===Re&&Ie===Ne&&Me===ze&&Le===Be&&(I===N&&M===P||g)?R=!0:(R=!1,Vt.lastSrcCtlPtX=E,Vt.lastSrcCtlPtY=S,Vt.lastSrcCtlPtW=$,Vt.lastSrcCtlPtH=C,Vt.lastTgtCtlPtX=_,Vt.lastTgtCtlPtY=O,Vt.lastTgtCtlPtW=T,Vt.lastTgtCtlPtH=j,Vt.lastEdgeIndex=N,Vt.lastNumEdges=P,Vt.lastCurveStyle=pe,Vt.lastCtrlptDists=he,Vt.lastCtrlptWs=me,Vt.lastSegmentDs=xe,Vt.lastSegmentWs=be,Vt.lastStepSize=ke,Vt.lastLoopDir=Ee,Vt.lastLoopSwp=$e,Vt.lastEdgeDistances=_e,Vt.lastSrcEndpt=Te,Vt.lastTgtEndpt=Pe,Vt.lastSrcArr=Re,Vt.lastTgtArr=Ne,Vt.lastLineW=ze,Vt.lastArrScl=Be),!R){if(!w.calculatedIntersection&&Ht!==Gt&&(w.hasBezier||w.hasUnbundled)){w.calculatedIntersection=!0;var Fe=n.intersectLine(Wt.x,Wt.y,Xt,Qt,Yt.x,Yt.y,0);w.srcIntn=Fe;var qe=o.intersectLine(Yt.x,Yt.y,Zt,Jt,Wt.x,Wt.y,0);w.tgtIntn=qe;var Ve={x1:Fe[0],x2:qe[0],y1:Fe[1],y2:qe[1]},Ue={x1:Wt.x,x2:Yt.x,y1:Wt.y,y2:Yt.y},He=qe[1]-Fe[1],Ge=qe[0]-Fe[0],We=Math.sqrt(Ge*Ge+He*He),Ye={x:Ge,y:He},Xe={x:Ye.x/We,y:Ye.y/We};a={x:-Xe.y,y:Xe.x},o.checkPoint(Fe[0],Fe[1],0,Zt,Jt,Yt.x,Yt.y)&&n.checkPoint(qe[0],qe[1],0,Xt,Qt,Wt.x,Wt.y)&&(a={},s=!0)}if(z?(Vt.srcIntn=w.tgtIntn,Vt.tgtIntn=w.srcIntn):(Vt.srcIntn=w.srcIntn,Vt.tgtIntn=w.tgtIntn),Ht===Gt){Vt.edgeType="self";var Ze=f,Qe=U;g&&(Ze=0,Qe=H);var Je=B-Math.PI/2,Ke=Je-F/2,et=Je+F/2,tt=String(B+"_"+F);Ze=void 0===A[tt]?A[tt]=0:++A[tt],Vt.ctrlpts=[Wt.x+1.4*Math.cos(Ke)*Qe*(Ze/3+1),Wt.y+1.4*Math.sin(Ke)*Qe*(Ze/3+1),Wt.x+1.4*Math.cos(et)*Qe*(Ze/3+1),Wt.y+1.4*Math.sin(et)*Qe*(Ze/3+1)]}else if(c&&(Ht.isParent()||Ht.isChild()||Gt.isParent()||Gt.isChild())&&(Ht.parents().anySame(Gt)||Gt.parents().anySame(Ht))){Vt.edgeType="compound",Vt.badBezier=!1,Ze=f,Qe=U,g&&(Ze=0,Qe=H);var nt={x:Wt.x-Xt/2,y:Wt.y-Qt/2},rt={x:Yt.x-Zt/2,y:Yt.y-Jt/2},it={x:Math.min(nt.x,rt.x),y:Math.min(nt.y,rt.y)},ot=Math.max(.5,Math.log(.01*Xt)),at=Math.max(.5,Math.log(.01*Zt));Vt.ctrlpts=[it.x,it.y-(1+Math.pow(50,1.12)/100)*Qe*(Ze/3+1)*ot,it.x-(1+Math.pow(50,1.12)/100)*Qe*(Ze/3+1)*at,it.y]}else if("segments"===D){Vt.edgeType="segments",Vt.segpts=[];for(var st=0;st<Z;st++){var lt=Y.pfValue[st],ct=X.pfValue[st],ut=1-lt,dt=lt,pt={x:(bt="node-position"===W?Ue:Ve).x1*ut+bt.x2*dt,y:bt.y1*ut+bt.y2*dt};Vt.segpts.push(pt.x+a.x*ct,pt.y+a.y*ct)}}else if(w.length%2!=1||f!==Math.floor(w.length/2)||g){var ft=g;Vt.edgeType=ft?"multibezier":"bezier",Vt.ctrlpts=[];for(var ht=0;ht<V;ht++){var gt,mt=(.5-w.length/2+f)*U,vt=r.signum(mt);ft&&(H=L?L.pfValue[ht]:U,G=q.value[ht]);var bt,yt=void 0!==(gt=g?H:void 0!==H?vt*H:void 0)?gt:mt;ut=1-G,dt=G,z&&(k=ut,ut=dt,dt=k),pt={x:(bt="node-position"===W?Ue:Ve).x1*ut+bt.x2*dt,y:bt.y1*ut+bt.y2*dt},Vt.ctrlpts.push(pt.x+a.x*yt,pt.y+a.y*yt)}}else Vt.edgeType="straight";this.findEndpoints(Bt);var xt=!i.number(Vt.startX)||!i.number(Vt.startY),wt=!i.number(Vt.arrowStartX)||!i.number(Vt.arrowStartY),kt=!i.number(Vt.endX)||!i.number(Vt.endY),At=!i.number(Vt.arrowEndX)||!i.number(Vt.arrowEndY),Et=this.getArrowWidth(Bt.pstyle("width").pfValue,Bt.pstyle("arrow-scale").value)*this.arrowShapeWidth*3;if("bezier"===Vt.edgeType){var St=r.dist({x:Vt.ctrlpts[0],y:Vt.ctrlpts[1]},{x:Vt.startX,y:Vt.startY}),$t=St<Et,Ct=r.dist({x:Vt.ctrlpts[0],y:Vt.ctrlpts[1]},{x:Vt.endX,y:Vt.endY}),_t=Ct<Et,Ot=!1;if(xt||wt||$t){Ot=!0;var Tt={x:Vt.ctrlpts[0]-Wt.x,y:Vt.ctrlpts[1]-Wt.y},jt=Math.sqrt(Tt.x*Tt.x+Tt.y*Tt.y),Pt={x:Tt.x/jt,y:Tt.y/jt},Dt=Math.max(Xt,Qt),Rt={x:Vt.ctrlpts[0]+2*Pt.x*Dt,y:Vt.ctrlpts[1]+2*Pt.y*Dt},It=n.intersectLine(Wt.x,Wt.y,Xt,Qt,Rt.x,Rt.y,0);$t?(Vt.ctrlpts[0]=Vt.ctrlpts[0]+Pt.x*(Et-St),Vt.ctrlpts[1]=Vt.ctrlpts[1]+Pt.y*(Et-St)):(Vt.ctrlpts[0]=It[0]+Pt.x*Et,Vt.ctrlpts[1]=It[1]+Pt.y*Et)}if(kt||At||_t){Ot=!0,Tt={x:Vt.ctrlpts[0]-Yt.x,y:Vt.ctrlpts[1]-Yt.y},jt=Math.sqrt(Tt.x*Tt.x+Tt.y*Tt.y),Pt={x:Tt.x/jt,y:Tt.y/jt},Dt=Math.max(Xt,Qt),Rt={x:Vt.ctrlpts[0]+2*Pt.x*Dt,y:Vt.ctrlpts[1]+2*Pt.y*Dt};var Nt=o.intersectLine(Yt.x,Yt.y,Zt,Jt,Rt.x,Rt.y,0);_t?(Vt.ctrlpts[0]=Vt.ctrlpts[0]+Pt.x*(Et-Ct),Vt.ctrlpts[1]=Vt.ctrlpts[1]+Pt.y*(Et-Ct)):(Vt.ctrlpts[0]=Nt[0]+Pt.x*Et,Vt.ctrlpts[1]=Nt[1]+Pt.y*Et)}Ot&&this.findEndpoints(Bt)}if("multibezier"===Vt.edgeType||"bezier"===Vt.edgeType||"self"===Vt.edgeType||"compound"===Vt.edgeType){for(Vt.allpts=[],Vt.allpts.push(Vt.startX,Vt.startY),ht=0;ht+1<Vt.ctrlpts.length;ht+=2)Vt.allpts.push(Vt.ctrlpts[ht],Vt.ctrlpts[ht+1]),ht+3<Vt.ctrlpts.length&&Vt.allpts.push((Vt.ctrlpts[ht]+Vt.ctrlpts[ht+2])/2,(Vt.ctrlpts[ht+1]+Vt.ctrlpts[ht+3])/2);var Mt;Vt.allpts.push(Vt.endX,Vt.endY),Vt.ctrlpts.length/2%2==0?(Mt=Vt.allpts.length/2-1,Vt.midX=Vt.allpts[Mt],Vt.midY=Vt.allpts[Mt+1]):(Mt=Vt.allpts.length/2-3,Vt.midX=r.qbezierAt(Vt.allpts[Mt],Vt.allpts[Mt+2],Vt.allpts[Mt+4],.5),Vt.midY=r.qbezierAt(Vt.allpts[Mt+1],Vt.allpts[Mt+3],Vt.allpts[Mt+5],.5))}else if("straight"===Vt.edgeType)Vt.allpts=[Vt.startX,Vt.startY,Vt.endX,Vt.endY],Vt.midX=(Vt.startX+Vt.endX+Vt.arrowStartX+Vt.arrowEndX)/4,Vt.midY=(Vt.startY+Vt.endY+Vt.arrowStartY+Vt.arrowEndY)/4;else if("segments"===Vt.edgeType)if(Vt.allpts=[],Vt.allpts.push(Vt.startX,Vt.startY),Vt.allpts.push.apply(Vt.allpts,Vt.segpts),Vt.allpts.push(Vt.endX,Vt.endY),Vt.segpts.length%4==0){var zt=Vt.segpts.length/2,Lt=zt-2;Vt.midX=(Vt.segpts[Lt]+Vt.segpts[zt])/2,Vt.midY=(Vt.segpts[Lt+1]+Vt.segpts[zt+1])/2}else Lt=Vt.segpts.length/2-1,Vt.midX=Vt.segpts[Lt],Vt.midY=Vt.segpts[Lt+1];this.storeEdgeProjections(Bt),this.calculateArrowAngles(Bt)}this.recalculateEdgeLabelProjections(Bt),this.calculateLabelAngles(Bt)}}for(f=0;f<p.length;f++){var Bt,Ft,qt=(Ft=(Bt=p[f])._private).rscratch,Vt=qt;if(!qt.haystack){var Ut=2*Math.random()*Math.PI;qt.source={x:Math.cos(Ut),y:Math.sin(Ut)},Ut=2*Math.random()*Math.PI,qt.target={x:Math.cos(Ut),y:Math.sin(Ut)}}var Ht=Ft.source,Gt=Ft.target,Wt=Ht.position(),Yt=Gt.position(),Xt=Ht.width(),Zt=Gt.width(),Qt=Ht.height(),Jt=Gt.height(),Kt=(Dt=Bt.pstyle("haystack-radius").value)/2;Vt.haystackPts=Vt.allpts=[Vt.source.x*Xt*Kt+Wt.x,Vt.source.y*Qt*Kt+Wt.y,Vt.target.x*Zt*Kt+Yt.x,Vt.target.y*Jt*Kt+Yt.y],Vt.midX=(Vt.allpts[0]+Vt.allpts[2])/2,Vt.midY=(Vt.allpts[1]+Vt.allpts[3])/2,qt.edgeType=qt.lastCurveStyle="haystack",qt.haystack=!0,this.storeEdgeProjections(Bt),this.calculateArrowAngles(Bt),this.recalculateEdgeLabelProjections(Bt),this.calculateLabelAngles(Bt)}}},o.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return a(t.segpts)},o.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return a(t.ctrlpts)},o.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return{x:t.midX,y:t.midY}},e.exports=o},function(e,t,n){"use strict";var r=n(2),i=n(0),o={manualEndptToPx:function(e,t){var n=e.position(),r=e.outerWidth(),i=e.outerHeight();if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*r),"%"===t.units[1]&&(o[1]=o[1]*i),o[0]+=n.x,o[1]+=n.y,o}var a=t.pfValue[0];a=-Math.PI/2+a;var s=2*Math.max(r,i),l=[n.x+Math.cos(a)*s,n.y+Math.sin(a)*s];return this.nodeShapes[this.getNodeShape(e)].intersectLine(n.x,n.y,r,i,l[0],l[1],0)},findEndpoints:function(e){var t=this,n=void 0,o=e.source()[0],a=e.target()[0],s=o.position(),l=a.position(),c=e.pstyle("target-arrow-shape").value,u=e.pstyle("source-arrow-shape").value,d=e.pstyle("target-distance-from-node").pfValue,p=e.pstyle("source-distance-from-node").pfValue,f=e._private.rscratch,h=f.edgeType,g="self"===h||"compound"===h,m="bezier"===h||"multibezier"===h||g,v="bezier"!==h,b="straight"===h||"segments"===h,y="segments"===h,x=m||v||b,w=e.pstyle("source-endpoint"),k=g?"outside-to-node":w.value,A=e.pstyle("target-endpoint"),E=g?"outside-to-node":A.value;f.srcManEndpt=w,f.tgtManEndpt=A;var S=void 0,$=void 0,C=void 0,_=void 0;if(m){var O=[f.ctrlpts[0],f.ctrlpts[1]];S=v?[f.ctrlpts[f.ctrlpts.length-2],f.ctrlpts[f.ctrlpts.length-1]]:O,$=O}else if(b){var T=y?f.segpts.slice(0,2):[l.x,l.y];S=y?f.segpts.slice(f.segpts.length-2):[s.x,s.y],$=T}"inside-to-node"===E?n=[l.x,l.y]:A.units?n=this.manualEndptToPx(a,A):"outside-to-line"===E?n=f.tgtIntn:("outside-to-node"===E?C=S:"outside-to-line"===E&&(C=[s.x,s.y]),n=t.nodeShapes[this.getNodeShape(a)].intersectLine(l.x,l.y,a.outerWidth(),a.outerHeight(),C[0],C[1],0));var j=r.shortenIntersection(n,S,t.arrowShapes[c].spacing(e)+d),P=r.shortenIntersection(n,S,t.arrowShapes[c].gap(e)+d);e.hasClass("horizontal")?(f.endX=n[0]-d,f.endY=n[1],f.arrowEndX=n[0]-d/2,f.arrowEndY=n[1]):e.hasClass("vertical")?(f.endX=n[0],f.endY=n[1]-d,f.arrowEndX=n[0],f.arrowEndY=n[1]-d/2):(f.endX=P[0],f.endY=P[1],f.arrowEndX=j[0],f.arrowEndY=j[1]),"inside-to-node"===k?n=[s.x,s.y]:w.units?n=this.manualEndptToPx(o,w):"outside-to-line"===k?n=f.srcIntn:("outside-to-node"===k?_=$:"outside-to-line"===k&&(_=[l.x,l.y]),n=t.nodeShapes[this.getNodeShape(o)].intersectLine(s.x,s.y,o.outerWidth(),o.outerHeight(),_[0],_[1],0));var D=r.shortenIntersection(n,$,t.arrowShapes[u].spacing(e)+p),R=r.shortenIntersection(n,$,t.arrowShapes[u].gap(e)+p);f.startX=R[0],f.startY=R[1],f.arrowStartX=D[0],f.arrowStartY=D[1],x&&(i.number(f.startX)&&i.number(f.startY)&&i.number(f.endX)&&i.number(f.endY)?f.badLine=!1:f.badLine=!0)},getSourceEndpoint:function(e){var t=e[0]._private.rscratch;switch(t.edgeType){case"haystack":return{x:t.haystackPts[0],y:t.haystackPts[1]};default:return{x:t.arrowStartX,y:t.arrowStartY}}},getTargetEndpoint:function(e){var t=e[0]._private.rscratch;switch(t.edgeType){case"haystack":return{x:t.haystackPts[2],y:t.haystackPts[3]};default:return{x:t.arrowEndX,y:t.arrowEndY}}}};e.exports=o},function(e,t,n){"use strict";var r=n(2),i={};function o(e,t,n){for(var i=function(e,t,n,i){return r.qbezierAt(e,t,n,i)},o=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var s=e.bezierProjPcts[a];o.push({x:i(n[0],n[2],n[4],s),y:i(n[1],n[3],n[5],s)})}}i.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)o(this,e,n.allpts.slice(i,i+6))}else if("segments"===r){var a=t.rstyle.linePts=[];for(i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]})}else if("haystack"===r){var s=n.haystackPts;t.rstyle.haystackPts=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},i.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)},e.exports=i},function(e,t,n){"use strict";var r=n(2),i=n(0),o=n(1),a={recalculateNodeLabelProjection:function(e){var t=e.pstyle("label").strValue;if(!i.emptyString(t)){var n,r,o=e._private,a=e.width(),s=e.height(),l=e.padding(),c=e.position(),u=e.pstyle("text-halign").strValue,d=e.pstyle("text-valign").strValue,p=o.rscratch,f=o.rstyle;switch(u){case"left":n=c.x-a/2-l;break;case"right":n=c.x+a/2+l;break;default:n=c.x}switch(d){case"top":r=c.y-s/2-l;break;case"bottom":r=c.y+s/2+l;break;default:r=c.y}p.labelX=n,p.labelY=r,f.labelX=n,f.labelY=r,this.applyLabelDimensions(e)}},recalculateEdgeLabelProjections:function(e){var t,n=e._private,i=n.rscratch,a=this,s={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(s.mid||s.source||s.target){t={x:i.midX,y:i.midY};var l=function(e,t,r){o.setPrefixedProperty(n.rscratch,e,t,r),o.setPrefixedProperty(n.rstyle,e,t,r)};l("labelX",null,t.x),l("labelY",null,t.y);var c=function(o){var c,u="source"===o;if(s[o]){var d=e.pstyle(o+"-text-offset").pfValue,p=function(e,t){var n=t.x-e.x,r=t.y-e.y;return Math.atan(r/n)};switch(i.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var f,h=function e(){if(e.cache)return e.cache;for(var t=[],o=0;o+5<i.allpts.length;o+=4){var s={x:i.allpts[o],y:i.allpts[o+1]},l={x:i.allpts[o+2],y:i.allpts[o+3]},c={x:i.allpts[o+4],y:i.allpts[o+5]};t.push({p0:s,p1:l,p2:c,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,d=a.bezierProjPcts.length;function p(e,t,n,i,o){var a=r.dist(t,n),s=e.segments[e.segments.length-1],l={p0:t,p1:n,t0:i,t1:o,startDist:s?s.startDist+s.length:0,length:a};e.segments.push(l),e.length+=a}for(o=0;o<t.length;o++){var f=t[o],h=t[o-1];h&&(f.startDist=h.startDist+h.length),p(f,f.p0,u[o*d],0,a.bezierProjPcts[0]);for(var g=0;g<d-1;g++)p(f,u[o*d+g],u[o*d+g+1],a.bezierProjPcts[g],a.bezierProjPcts[g+1]);p(f,u[o*d+d-1],f.p2,a.bezierProjPcts[d-1],1)}return e.cache=t}(),g=0,m=0,v=0;v<h.length;v++){for(var b=h[u?v:h.length-1-v],y=0;y<b.segments.length;y++){var x=b.segments[u?y:b.segments.length-1-y],w=v===h.length-1&&y===b.segments.length-1;if(g=m,(m+=x.length)>=d||w){f={cp:b,segment:x};break}}if(f)break}b=f.cp;var k=(d-g)/(x=f.segment).length,A=x.t1-x.t0,E=u?x.t0+A*k:x.t1-A*k;E=r.bound(0,E,1),t=r.qbezierPtAt(b.p0,b.p1,b.p2,E),c=function(e,t,n,i){var o=r.bound(0,i-.001,1),a=r.bound(0,i+.001,1),s=r.qbezierPtAt(e,t,n,o),l=r.qbezierPtAt(e,t,n,a);return p(s,l)}(b.p0,b.p1,b.p2,E);break;case"straight":case"segments":case"haystack":var S,$,C,_,O=0,T=i.allpts.length;for(v=0;v+3<T&&(u?(C={x:i.allpts[v],y:i.allpts[v+1]},_={x:i.allpts[v+2],y:i.allpts[v+3]}):(C={x:i.allpts[T-2-v],y:i.allpts[T-1-v]},_={x:i.allpts[T-4-v],y:i.allpts[T-3-v]}),$=O,!((O+=S=r.dist(C,_))>=d));v+=2);E=(d-$)/S,E=r.bound(0,E,1),t=r.lineAt(C,_,E),c=p(C,_)}l("labelX",o,t.x),l("labelY",o,t.y),l("labelAutoAngle",o,c)}};c("source"),c("target"),this.applyLabelDimensions(e)}},applyLabelDimensions:function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},applyPrefixedLabelDimensions:function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r);o.setPrefixedProperty(n.rstyle,"labelWidth",t,i.width),o.setPrefixedProperty(n.rscratch,"labelWidth",t,i.width),o.setPrefixedProperty(n.rstyle,"labelHeight",t,i.height),o.setPrefixedProperty(n.rscratch,"labelHeight",t,i.height)},getLabelText:function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,s=function(e,r){return r?(o.setPrefixedProperty(n.rscratch,e,t,r),r):o.getPrefixedProperty(n.rscratch,e,t)};"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var l=e.pstyle("text-wrap").value;if("wrap"===l){var c=s("labelKey");if(c&&s("labelWrapKey")===c)return s("labelWrapCachedText");for(var u=i.split("\n"),d=e.pstyle("text-max-width").pfValue,p=[],f=0;f<u.length;f++){var h=u[f];if(this.calculateLabelDimensions(e,h,"line="+h).width>d){for(var g=h.split(/\s+/),m="",v=0;v<g.length;v++){var b=g[v],y=0===m.length?b:m+" "+b;this.calculateLabelDimensions(e,y,"testLine="+y).width<=d?m+=b+" ":(p.push(m),m=b+" ")}m.match(/^\s+$/)||p.push(m)}else p.push(h)}s("labelWrapCachedLines",p),i=s("labelWrapCachedText",p.join("\n")),s("labelWrapKey",c)}else if("ellipsis"===l){d=e.pstyle("text-max-width").pfValue;for(var x="",w=!1,k=0;k<i.length&&!(this.calculateLabelDimensions(e,x+i[k]+"…").width>d);k++)x+=i[k],k===i.length-1&&(w=!0);return w||(x+="…"),x}return i},calculateLabelDimensions:function(e,t,n){var r=e._private.labelStyleKey+"$@$"+t;n&&(r+="$@$"+n);var i=this.labelDimCache||(this.labelDimCache={});if(i[r])return i[r];var o=e.pstyle("font-style").strValue,a=1*e.pstyle("font-size").pfValue+"px",s=e.pstyle("font-family").strValue,l=e.pstyle("font-weight").strValue,c=this.labelCalcDiv;c||(c=this.labelCalcDiv=document.createElement("div"),document.body.appendChild(c));var u=c.style;return u.fontFamily=s,u.fontStyle=o,u.fontSize=a,u.fontWeight=l,u.position="absolute",u.left="-9999px",u.top="-9999px",u.zIndex="-1",u.visibility="hidden",u.pointerEvents="none",u.padding="0",u.lineHeight="1","wrap"===e.pstyle("text-wrap").value?u.whiteSpace="pre":u.whiteSpace="normal",c.textContent=t,i[r]={width:Math.ceil(c.clientWidth/1),height:Math.ceil(c.clientHeight/1)},i[r]},calculateLabelAngles:function(e){var t=e._private.rscratch,n=e.isEdge(),r=e.pstyle("text-rotation"),i=r.strValue;"none"===i?t.labelAngle=t.sourceLabelAngle=t.targetLabelAngle=0:n&&"autorotate"===i?(t.labelAngle=Math.atan(t.midDispY/t.midDispX),t.sourceLabelAngle=t.sourceLabelAutoAngle,t.targetLabelAngle=t.targetLabelAutoAngle):t.labelAngle=t.sourceLabelAngle=t.targetLabelAngle="autorotate"===i?0:r.pfValue}};e.exports=a},function(e,t,n){"use strict";var r={getNodeShape:function(e){var t=e.pstyle("shape").value;if(e.isParent())return"rectangle"===t||"roundrectangle"===t||"cutrectangle"===t||"barrel"===t?t:"rectangle";if("polygon"===t){var n=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(n).name}return t}};e.exports=r},function(e,t,n){"use strict";var r={registerCalculationListeners:function(){var e=this.cy,t=e.collection(),n=this,r=function(e,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t.merge(e);for(var i=0;i<e.length;i++){var o=e[i],a=o._private,s=a.rstyle;r&&(s.clean=!1,a.bbCache=null);var l=s.dirtyEvents=s.dirtyEvents||{length:0};l[n.type]||(l[n.type]=!0,l.length++)}};n.binder(e).on("position.* style.* free.* bounds.*","node",(function(e){var t=e.target;r(t,e),r(t.connectedEdges(),e)})).on("add.*","node",(function(e){var t=e.target;r(t,e)})).on("background.*","node",(function(e){var t=e.target;r(t,e,!1)})).on("add.* style.*","edge",(function(e){var t=e.target;r(t,e),r(t.parallelEdges(),e)})).on("remove.*","edge",(function(e){for(var t=e.target.parallelEdges(),n=0;n<t.length;n++){var i=t[n];i.removed()||r(i,e)}})).on("dirty.*","node",(function(e){var t=e.target;r(t,e)})),n.beforeRender((function(r){if(r){var i=n.onUpdateEleCalcsFns;if(i)for(var o=0;o<i.length;o++)(0,i[o])(r,t);for(n.recalculateRenderedStyle(t,!1),o=0;o<t.length;o++)t[o]._private.rstyle.dirtyEvents=null;t=e.collection()}}),n.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},recalculateRenderedStyle:function(e,t){var n=[],r=[];if(!this.destroyed){void 0===t&&(t=!0);for(var i=0;i<e.length;i++){var o=(l=(s=e[i])._private).rstyle;t&&o.clean||s.removed()||"none"!==s.pstyle("display").value&&("nodes"===l.group?r.push(s):n.push(s),o.clean=!0)}for(i=0;i<r.length;i++){o=(l=(s=r[i])._private).rstyle;var a=s.position();this.recalculateNodeLabelProjection(s),o.nodeX=a.x,o.nodeY=a.y,o.nodeW=s.pstyle("width").pfValue,o.nodeH=s.pstyle("height").pfValue}for(this.recalculateEdgeProjections(n),i=0;i<n.length;i++){o=(l=(s=n[i])._private).rstyle;var s,l,c=l.rscratch;this.recalculateEdgeLabelProjections(s),o.srcX=c.arrowStartX,o.srcY=c.arrowStartY,o.tgtX=c.arrowEndX,o.tgtY=c.arrowEndY,o.midX=c.midX,o.midY=c.midY,o.labelAngle=c.labelAngle,o.sourceLabelAngle=c.sourceLabelAngle,o.targetLabelAngle=c.targetLabelAngle}}}};e.exports=r},function(e,t,n){"use strict";var r=n(17),i={updateCachedGrabbedEles:function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=(i=e[n])._private.rscratch;i.grabbed()&&!i.isParent()?t.push(i):r.inDragLayer?e.drag.push(i):e.nondrag.push(i)}for(n=0;n<t.length;n++){var i=t[n];e.drag.push(i)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(r),t.interactive=t.filter((function(e){return e.interactive()})),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t}};e.exports=i},function(e,t,n){"use strict";var r={getCachedImage:function(e,t,n){var r=this.imageCache=this.imageCache||{},i=r[e];if(i)return i.image.complete||i.image.addEventListener("load",n),i.image;var o=(i=r[e]=r[e]||{}).image=new Image;return o.addEventListener("load",n),o.addEventListener("error",(function(){o.error=!0})),"data:"===e.substring(0,"data:".length).toLowerCase()||(o.crossOrigin=t),o.src=e,o}};e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(2),a=(n(16),{registerBinding:function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),o=this.binder(e);return o.on.apply(o,i)},binder:function(e){var t=this,n=e===window||e===document||e===document.body||r.domElement(e);if(null==t.supportsPassiveEvents){var i=!1;try{var o=Object.defineProperty({},"passive",{get:function(){i=!0}});window.addEventListener("test",null,o)}catch(e){}t.supportsPassiveEvents=i}var a=function(r,i,o){var a=Array.prototype.slice.call(arguments);return n&&t.supportsPassiveEvents&&(a[2]={capture:null!=o&&o,passive:!1,once:!1}),t.bindings.push({target:e,args:a}),(e.addEventListener||e.on).apply(e,a),this};return{on:a,addEventListener:a,addListener:a,bind:a}},nodeIsDraggable:function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},nodeIsGrabbable:function(e){return this.nodeIsDraggable(e)&&e.interactive()}});a.load=function(){var e=this,t=function(t,n,r,o){null==t&&(t=e.cy);for(var a=0;a<n.length;a++){var s=n[a];t.emit(i.extend({originalEvent:r,type:s},o))}},n=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},a=function(t,n){var r=!0;if(e.cy.hasCompoundNodes()&&t&&t.isEdge()){for(var i=0;n&&i<n.length;i++)if((t=n[i]).isNode()&&t.isParent()){r=!1;break}}else r=!0;return r},s=function(e){e[0]._private.rscratch.inDragLayer=!0},l=function(e){e[0]._private.rscratch.isGrabTarget=!0},c=function(t,n){var r=function(t){var n;if(t.addToList&&e.cy.hasCompoundNodes()){if(!t.addToList.hasId){t.addToList.hasId={};for(var r=0;r<t.addToList.length;r++){var i=t.addToList[r];t.addToList.hasId[i.id()]=!0}}n=t.addToList.hasId}return n||{}}(n);r[t.id()]||(n.addToList.push(t),r[t.id()]=!0,function(e){e[0]._private.grabbed=!0}(t))},u=function(t,n){n=n||{};var r=t.cy().hasCompoundNodes();n.inDragLayer&&(t.forEach(s),t.neighborhood().stdFilter((function(e){return!r||e.isEdge()})).forEach(s)),n.addToList&&t.forEach((function(e){c(e,n)})),function(e,t){if(e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(s),n.connectedEdges().forEach(s)),t.addToList&&n.forEach((function(e){c(e,t)}))}}(t,n),f(t,{inDragLayer:n.inDragLayer}),e.updateCachedGrabbedEles()},d=u,p=function(t){t&&(t.hasId={},e.getCachedZSortedEles().forEach((function(e){!function(e){e[0]._private.grabbed=!1}(e),function(e){e[0]._private.rscratch.inDragLayer=!1}(e),function(e){e[0]._private.rscratch.isGrabTarget=!1}(e)})),e.updateCachedGrabbedEles())},f=function(e,t){if((null!=t.inDragLayer||null!=t.addToList)&&e.cy().hasCompoundNodes()){var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(s),r.forEach(s)),t.addToList&&r.forEach((function(e){c(e,t)}))}}},h="undefined"!=typeof MutationObserver;h?(e.removeObserver=new MutationObserver((function(t){for(var n=0;n<t.length;n++){var r=t[n].removedNodes;if(r)for(var i=0;i<r.length;i++)if(r[i]===e.container){e.destroy();break}}})),e.container.parentNode&&e.removeObserver.observe(e.container.parentNode,{childList:!0})):e.registerBinding(e.container,"DOMNodeRemoved",(function(t){e.destroy()}));var g=i.debounce((function(){e.cy.resize()}),100);h&&(e.styleObserver=new MutationObserver(g),e.styleObserver.observe(e.container,{attributes:!0})),e.registerBinding(window,"resize",g);var m=function(){e.invalidateContainerClientCoordsCache()};!function(e,t){for(;null!=e;)t(e),e=e.parentNode}(e.container,(function(t){e.registerBinding(t,"transitionend",m),e.registerBinding(t,"animationend",m),e.registerBinding(t,"scroll",m)})),e.registerBinding(e.container,"contextmenu",(function(e){e.preventDefault()}));var v,b,y,x,w,k,A,E,S,$,C,_,O,T=function(t){for(var n=e.findContainerClientCoords(),r=n[0],i=n[1],o=n[2],a=n[3],s=t.touches?t.touches:[t],l=!1,c=0;c<s.length;c++){var u=s[c];if(r<=u.clientX&&u.clientX<=r+o&&i<=u.clientY&&u.clientY<=i+a){l=!0;break}}if(!l)return!1;for(var d=e.container,p=t.target.parentNode,f=!1;p;){if(p===d){f=!0;break}p=p.parentNode}return!!f};e.registerBinding(e.container,"mousedown",(function(n){if(T(n)){n.preventDefault(),e.hoverData.capture=!0,e.hoverData.which=n.which;var r=e.cy,i=[n.clientX,n.clientY],o=e.projectIntoViewport(i[0],i[1]),a=e.selection,s=e.findNearestElements(o[0],o[1],!0,!1),c=s[0],p=e.dragData.possibleDragElements;if(e.hoverData.mdownPos=o,e.hoverData.mdownGPos=i,3==n.which){e.hoverData.cxtStarted=!0;var f={originalEvent:n,type:"cxttapstart",position:{x:o[0],y:o[1]}};c?(c.activate(),c.emit(f),e.hoverData.down=c):r.emit(f),e.hoverData.downTime=(new Date).getTime(),e.hoverData.cxtDragged=!1}else if(1==n.which){if(c&&c.activate(),null!=c&&e.nodeIsGrabbable(c)){var h=function(e){return{originalEvent:n,type:e,position:{x:o[0],y:o[1]}}};if(l(c),c.selected()){p=e.dragData.possibleDragElements=[];var g=r.$((function(t){return t.isNode()&&t.selected()&&e.nodeIsGrabbable(t)}));u(g,{addToList:p}),c.emit(h("grabon")),g.forEach((function(e){e.emit(h("grab"))}))}else p=e.dragData.possibleDragElements=[],d(c,{addToList:p}),c.emit(h("grabon")).emit(h("grab"));e.redrawHint("eles",!0),e.redrawHint("drag",!0)}e.hoverData.down=c,e.hoverData.downs=s,e.hoverData.downTime=(new Date).getTime(),t(c,["mousedown","tapstart","vmousedown"],n,{position:{x:o[0],y:o[1]}}),null==c?(a[4]=1,e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()):c.isEdge()&&(a[4]=1),e.hoverData.tapholdCancelled=!1,clearTimeout(e.hoverData.tapholdTimeout),e.hoverData.tapholdTimeout=setTimeout((function(){if(!e.hoverData.tapholdCancelled){var t=e.hoverData.down;t?t.emit({originalEvent:n,type:"taphold",position:{x:o[0],y:o[1]}}):r.emit({originalEvent:n,type:"taphold",position:{x:o[0],y:o[1]}})}}),e.tapholdDuration)}a[0]=a[2]=o[0],a[1]=a[3]=o[1]}}),!1),e.registerBinding(window,"mousemove",(function(i){if(e.hoverData.capture||T(i)){var s=!1,l=e.cy,c=l.zoom(),d=[i.clientX,i.clientY],f=e.projectIntoViewport(d[0],d[1]),h=e.hoverData.mdownPos,g=e.hoverData.mdownGPos,m=e.selection,v=null;e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.selecting||(v=e.findNearestElement(f[0],f[1],!0,!1));var b,y=e.hoverData.last,x=e.hoverData.down,w=[f[0]-m[2],f[1]-m[3]],k=e.dragData.possibleDragElements;if(g){var A=d[0]-g[0],E=A*A,S=d[1]-g[1],$=E+S*S;e.hoverData.isOverThresholdDrag=b=$>=e.desktopTapThreshold2}var C=n(i);b&&(e.hoverData.tapholdCancelled=!0),s=!0,t(v,["mousemove","vmousemove","tapdrag"],i,{position:{x:f[0],y:f[1]}});var _=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||l.emit("boxstart"),m[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(b){var O={originalEvent:i,type:"cxtdrag",position:{x:f[0],y:f[1]}};x?x.emit(O):l.emit(O),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&v===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:i,type:"cxtdragout",position:{x:f[0],y:f[1]}}),e.hoverData.cxtOver=v,v&&v.emit({originalEvent:i,type:"cxtdragover",position:{x:f[0],y:f[1]}}))}}else if(e.hoverData.dragging){if(s=!0,l.panningEnabled()&&l.userPanningEnabled()){var j;if(e.hoverData.justStartedPan){var P=e.hoverData.mdownPos;j={x:(f[0]-P[0])*c,y:(f[1]-P[1])*c},e.hoverData.justStartedPan=!1}else j={x:w[0]*c,y:w[1]*c};l.panBy(j),e.hoverData.dragged=!0}f=e.projectIntoViewport(i.clientX,i.clientY)}else if(1!=m[4]||null!=x&&!x.isEdge()){if(x&&x.isEdge()&&x.active()&&x.unactivate(),x&&x.grabbed()||v==y||(y&&t(y,["mouseout","tapdragout"],i,{position:{x:f[0],y:f[1]}}),v&&t(v,["mouseover","tapdragover"],i,{position:{x:f[0],y:f[1]}}),e.hoverData.last=v),x)if(b){if(l.boxSelectionEnabled()&&C)x&&x.grabbed()&&(p(k),x.emit("free")),_();else if(x&&x.grabbed()&&e.nodeIsDraggable(x)){var D=!e.dragData.didDrag;D&&e.redrawHint("eles",!0),e.dragData.didDrag=!0;var R=[];e.hoverData.draggingEles||u(l.collection(k),{inDragLayer:!0});for(var I=0;I<k.length;I++){var N=k[I];if(e.nodeIsDraggable(N)&&N.grabbed()){var M=N.position();if(R.push(N),r.number(w[0])&&r.number(w[1])&&(M.x+=w[0],M.y+=w[1],D)){var z=e.hoverData.dragDelta;z&&r.number(z[0])&&r.number(z[1])&&(M.x+=z[0],M.y+=z[1])}}}e.hoverData.draggingEles=!0;var L=l.collection(R);L.dirtyCompoundBoundsCache(),L.emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else!function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(w[0]),t.push(w[1])):(t[0]+=w[0],t[1]+=w[1])}();s=!0}else b&&(e.hoverData.dragging||!l.boxSelectionEnabled()||!C&&l.panningEnabled()&&l.userPanningEnabled()?!e.hoverData.selecting&&l.panningEnabled()&&l.userPanningEnabled()&&a(x,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,m[4]=0,e.data.bgActivePosistion=o.array2point(h),e.redrawHint("select",!0),e.redraw()):_(),x&&x.isEdge()&&x.active()&&x.unactivate());return m[2]=f[0],m[3]=f[1],s?(i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault(),!1):void 0}}),!1),e.registerBinding(window,"mouseup",(function(r){if(e.hoverData.capture){e.hoverData.capture=!1;var i=e.cy,o=e.projectIntoViewport(r.clientX,r.clientY),a=e.selection,s=e.findNearestElement(o[0],o[1],!0,!1),l=e.dragData.possibleDragElements,c=e.hoverData.down,u=n(r);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var d={originalEvent:r,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(d):i.emit(d),!e.hoverData.cxtDragged){var f={originalEvent:r,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):i.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||n(r)||(i.$((function(e){return e.selected()})).unselect(),l.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=l=[]),t(s,["mouseup","tapend","vmouseup"],r,{position:{x:o[0],y:o[1]}}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||t(c,["click","tap","vclick"],r,{position:{x:o[0],y:o[1]}}),s!=c||e.dragData.didDrag||e.hoverData.selecting||null!=s&&s._private.selectable&&(e.hoverData.dragging||("additive"===i.selectionType()||u?s.selected()?s.unselect():s.select():u||(i.$(":selected").unmerge(s).unselect(),s.select())),e.redrawHint("eles",!0)),e.hoverData.selecting){var h=i.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));e.redrawHint("select",!0),h.length>0&&e.redrawHint("eles",!0),i.emit("boxend");var g=function(e){return e.selectable()&&!e.selected()};"additive"===i.selectionType()||u||i.$(":selected").unmerge(h).unselect(),h.emit("box").stdFilter(g).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!a[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var m=c&&c.grabbed();p(l),m&&c.emit("free")}}a[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1),e.registerBinding(e.container,"wheel",(function(t){if(!e.scrollingPage){var n,r=e.cy,i=e.projectIntoViewport(t.clientX,t.clientY),o=[i[0]*r.zoom()+r.pan().x,i[1]*r.zoom()+r.pan().y];e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4]?t.preventDefault():r.panningEnabled()&&r.userPanningEnabled()&&r.zoomingEnabled()&&r.userZoomingEnabled()&&(t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),n=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,n*=e.wheelSensitivity,1===t.deltaMode&&(n*=33),r.zoom({level:r.zoom()*Math.pow(10,n),renderedPosition:{x:o[0],y:o[1]}}))}}),!0),e.registerBinding(window,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var j,P,D,R,I=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},N=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",j=function(n){if(T(n)){e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var r=e.cy,i=e.touchData.now,o=e.touchData.earlier;if(n.touches[0]){var a=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);i[0]=a[0],i[1]=a[1]}if(n.touches[1]&&(a=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),i[2]=a[0],i[3]=a[1]),n.touches[2]&&(a=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),i[4]=a[0],i[5]=a[1]),n.touches[1]){p(e.dragData.touchDragEles);var s=e.findContainerClientCoords();S=s[0],$=s[1],C=s[2],_=s[3],v=n.touches[0].clientX-S,b=n.touches[0].clientY-$,y=n.touches[1].clientX-S,x=n.touches[1].clientY-$,O=0<=v&&v<=C&&0<=y&&y<=C&&0<=b&&b<=_&&0<=x&&x<=_;var c=r.pan(),f=r.zoom();if(w=I(v,b,y,x),k=N(v,b,y,x),E=[((A=[(v+y)/2,(b+x)/2])[0]-c.x)/f,(A[1]-c.y)/f],k<4e4&&!n.touches[2]){var h=e.findNearestElement(i[0],i[1],!0,!0),g=e.findNearestElement(i[2],i[3],!0,!0);return h&&h.isNode()?(h.activate().emit({originalEvent:n,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=h):g&&g.isNode()?(g.activate().emit({originalEvent:n,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=g):r.emit({originalEvent:n,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(n.touches[2]);else if(n.touches[1]);else if(n.touches[0]){var m=e.findNearestElements(i[0],i[1],!0,!0),j=m[0];if(null!=j&&(j.activate(),e.touchData.start=j,e.touchData.starts=m,e.nodeIsGrabbable(j))){var P=e.dragData.touchDragEles=[],D=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),j.selected()?(D=r.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(D,{addToList:P})):d(j,{addToList:P}),l(j);var R=function(e){return{originalEvent:n,type:e,position:{x:i[0],y:i[1]}}};j.emit(R("grabon")),D?D.forEach((function(e){e.emit(R("grab"))})):j.emit(R("grab"))}t(j,["touchstart","tapstart","vmousedown"],n,{position:{x:i[0],y:i[1]}}),null==j&&(e.data.bgActivePosistion={x:a[0],y:a[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||(t(e.touchData.start,["taphold"],n,{position:{x:i[0],y:i[1]}}),e.touchData.start||r.$(":selected").unselect())}),e.tapholdDuration)}if(n.touches.length>=1){for(var M=e.touchData.startPosition=[],z=0;z<i.length;z++)M[z]=o[z]=i[z];var L=n.touches[0];e.touchData.startGPosition=[L.clientX,L.clientY]}}},!1),e.registerBinding(window,"touchmove",P=function(n){var i=e.touchData.capture;if(i||T(n)){var s=e.selection,l=e.cy,c=e.touchData.now,d=e.touchData.earlier,f=l.zoom();if(n.touches[0]){var h=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);c[0]=h[0],c[1]=h[1]}n.touches[1]&&(h=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),c[2]=h[0],c[3]=h[1]),n.touches[2]&&(h=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),c[4]=h[0],c[5]=h[1]);var g,m=e.touchData.startGPosition;if(i&&n.touches[0]&&m){for(var A=[],C=0;C<c.length;C++)A[C]=c[C]-d[C];var _=n.touches[0].clientX-m[0],j=_*_,P=n.touches[0].clientY-m[1];g=j+P*P>=e.touchTapThreshold2}if(i&&e.touchData.cxt){n.preventDefault();var D=n.touches[0].clientX-S,R=n.touches[0].clientY-$,M=n.touches[1].clientX-S,z=n.touches[1].clientY-$,L=N(D,R,M,z);if(L/k>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var B={originalEvent:n,type:"cxttapend",position:{x:c[0],y:c[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(B),e.touchData.start=null):l.emit(B)}}if(i&&e.touchData.cxt){B={originalEvent:n,type:"cxtdrag",position:{x:c[0],y:c[1]}},e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(B):l.emit(B),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var F=e.findNearestElement(c[0],c[1],!0,!0);e.touchData.cxtOver&&F===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:n,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.touchData.cxtOver=F,F&&F.emit({originalEvent:n,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}else if(i&&n.touches[2]&&l.boxSelectionEnabled())n.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||l.emit("boxstart"),e.touchData.selecting=!0,e.redrawHint("select",!0),s&&0!==s.length&&void 0!==s[0]?(s[2]=(c[0]+c[2]+c[4])/3,s[3]=(c[1]+c[3]+c[5])/3):(s[0]=(c[0]+c[2]+c[4])/3,s[1]=(c[1]+c[3]+c[5])/3,s[2]=(c[0]+c[2]+c[4])/3+1,s[3]=(c[1]+c[3]+c[5])/3+1),s[4]=1,e.touchData.selecting=!0,e.redraw();else if(i&&n.touches[1]&&l.zoomingEnabled()&&l.panningEnabled()&&l.userZoomingEnabled()&&l.userPanningEnabled()){if(n.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var q=0;q<ee.length;q++){var V=ee[q]._private;V.grabbed=!1,V.rscratch.inDragLayer=!1}}D=n.touches[0].clientX-S,R=n.touches[0].clientY-$,M=n.touches[1].clientX-S,z=n.touches[1].clientY-$;var U=I(D,R,M,z),H=U/w;if(O){var G=(D-v+(M-y))/2,W=(R-b+(z-x))/2,Y=l.zoom(),X=Y*H,Z=l.pan(),Q=E[0]*Y+Z.x,J=E[1]*Y+Z.y,K={x:-X/Y*(Q-Z.x-G)+Q,y:-X/Y*(J-Z.y-W)+J};if(e.touchData.start&&e.touchData.start.active()){var ee=e.dragData.touchDragEles;p(ee),e.redrawHint("drag",!0),e.redrawHint("eles",!0),e.touchData.start.unactivate().emit("free")}l.viewport({zoom:X,pan:K,cancelOnFailedZoom:!0}),w=U,v=D,b=R,y=M,x=z,e.pinching=!0}n.touches[0]&&(h=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY),c[0]=h[0],c[1]=h[1]),n.touches[1]&&(h=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),c[2]=h[0],c[3]=h[1]),n.touches[2]&&(h=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),c[4]=h[0],c[5]=h[1])}else if(n.touches[0]){var te=e.touchData.start,ne=e.touchData.last;if(e.hoverData.draggingEles||e.swipePanning||(F=e.findNearestElement(c[0],c[1],!0,!0)),i&&null!=te&&n.preventDefault(),i&&null!=te&&e.nodeIsDraggable(te))if(g){ee=e.dragData.touchDragEles;var re=!e.dragData.didDrag;re&&u(l.collection(ee),{inDragLayer:!0});for(var ie=0;ie<ee.length;ie++){var oe=ee[ie];if(e.nodeIsDraggable(oe)&&oe.grabbed()){e.dragData.didDrag=!0;var ae=oe.position();r.number(A[0])&&r.number(A[1])&&(ae.x+=A[0],ae.y+=A[1]),re&&(e.redrawHint("eles",!0),(le=e.touchData.dragDelta)&&r.number(le[0])&&r.number(le[1])&&(ae.x+=le[0],ae.y+=le[1]))}}var se=l.collection(ee);se.dirtyCompoundBoundsCache(),se.emit("position drag"),e.hoverData.draggingEles=!0,e.redrawHint("drag",!0),e.touchData.startPosition[0]==d[0]&&e.touchData.startPosition[1]==d[1]&&e.redrawHint("eles",!0),e.redraw()}else{var le;0===(le=e.touchData.dragDelta=e.touchData.dragDelta||[]).length?(le.push(A[0]),le.push(A[1])):(le[0]+=A[0],le[1]+=A[1])}if(t(te||F,["touchmove","tapdrag","vmousemove"],n,{position:{x:c[0],y:c[1]}}),te&&te.grabbed()||F==ne||(ne&&ne.emit({originalEvent:n,type:"tapdragout",position:{x:c[0],y:c[1]}}),F&&F.emit({originalEvent:n,type:"tapdragover",position:{x:c[0],y:c[1]}})),e.touchData.last=F,i)for(q=0;q<c.length;q++)c[q]&&e.touchData.startPosition[q]&&g&&(e.touchData.singleTouchMoved=!0);i&&(null==te||te.isEdge())&&l.panningEnabled()&&l.userPanningEnabled()&&(a(te,e.touchData.starts)&&(n.preventDefault(),e.swipePanning?l.panBy({x:A[0]*f,y:A[1]*f}):g&&(e.swipePanning=!0,l.panBy({x:_*f,y:P*f}),te&&(te.unactivate(),e.data.bgActivePosistion||(e.data.bgActivePosistion=o.array2point(e.touchData.startPosition)),e.redrawHint("select",!0),e.touchData.start=null))),h=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY),c[0]=h[0],c[1]=h[1])}for(C=0;C<c.length;C++)d[C]=c[C]}},!1),e.registerBinding(window,"touchcancel",D=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(window,"touchend",R=function(n){var r=e.touchData.start;if(e.touchData.capture){e.touchData.capture=!1,n.preventDefault();var i=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,a=e.cy,s=a.zoom(),l=e.touchData.now,c=e.touchData.earlier;if(n.touches[0]){var u=e.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);l[0]=u[0],l[1]=u[1]}if(n.touches[1]&&(u=e.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY),l[2]=u[0],l[3]=u[1]),n.touches[2]&&(u=e.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY),l[4]=u[0],l[5]=u[1]),r&&r.unactivate(),e.touchData.cxt){if(o={originalEvent:n,type:"cxttapend",position:{x:l[0],y:l[1]}},r?r.emit(o):a.emit(o),!e.touchData.cxtDragged){var d={originalEvent:n,type:"cxttap",position:{x:l[0],y:l[1]}};r?r.emit(d):a.emit(d)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!n.touches[2]&&a.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=a.collection(e.getAllInBox(i[0],i[1],i[2],i[3]));i[0]=void 0,i[1]=void 0,i[2]=void 0,i[3]=void 0,i[4]=0,e.redrawHint("select",!0),a.emit("boxend"),f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=r&&r.unactivate(),n.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(n.touches[1]);else if(n.touches[0]);else if(!n.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var h=e.dragData.touchDragEles;if(null!=r){var g=r._private.grabbed;p(h),e.redrawHint("drag",!0),e.redrawHint("eles",!0),g&&r.emit("free"),t(r,["touchend","tapend","vmouseup","tapdragout"],n,{position:{x:l[0],y:l[1]}}),r.unactivate(),e.touchData.start=null}else{var m=e.findNearestElement(l[0],l[1],!0,!0);t(m,["touchend","tapend","vmouseup","tapdragout"],n,{position:{x:l[0],y:l[1]}})}var v=e.touchData.startPosition[0]-l[0],b=v*v,y=e.touchData.startPosition[1]-l[1],x=(b+y*y)*s*s;null!=r&&!e.dragData.didDrag&&r._private.selectable&&x<e.touchTapThreshold2&&!e.pinching&&("single"===a.selectionType()?(a.$(":selected").unmerge(r).unselect(),r.select()):r.selected()?r.unselect():r.select(),e.redrawHint("eles",!0)),e.touchData.singleTouchMoved||t(r,["tap","vclick"],n,{position:{x:l[0],y:l[1]}}),e.touchData.singleTouchMoved=!0}for(var w=0;w<l.length;w++)c[w]=l[w];e.dragData.didDrag=!1,0===n.touches.length&&(e.touchData.dragDelta=[],e.touchData.startPosition=null,e.touchData.startGPosition=null),n.touches.length<2&&(e.pinching=!1,e.redrawHint("eles",!0),e.redraw())}},!1),"undefined"==typeof TouchEvent){var M=[],z=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},L=function(e){M.push(function(e){return{event:e,touch:z(e)}}(e))},B=function(e){for(var t=0;t<M.length;t++)if(M[t].event.pointerId===e.pointerId)return void M.splice(t,1)},F=function(e){e.touches=M.map((function(e){return e.touch}))},q=function(e){return"mouse"===e.pointerType||4===e.pointerType};e.registerBinding(e.container,"pointerdown",(function(e){q(e)||(e.preventDefault(),L(e),F(e),j(e))})),e.registerBinding(e.container,"pointerup",(function(e){q(e)||(B(e),F(e),R(e))})),e.registerBinding(e.container,"pointercancel",(function(e){q(e)||(B(e),F(e),D())})),e.registerBinding(e.container,"pointermove",(function(e){q(e)||(e.preventDefault(),function(e){var t=M.filter((function(t){return t.event.pointerId===e.pointerId}))[0];t.event=e,t.touch=z(e)}(e),F(e),P(e))}))}},e.exports=a},function(e,t,n){"use strict";var r=n(2),i={generatePolygon:function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,i,o,a,s){return r.polygonIntersectLine(o,a,this.points,e,t,n/2,i/2,s)},checkPoint:function(e,t,n,i,o,a,s){return r.pointInsidePolygon(e,t,this.points,a,s,i,o,[0,-1],n)}}},generateEllipse:function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){return r.intersectLineEllipse(o,a,e,t,n/2+s,i/2+s)},checkPoint:function(e,t,n,i,o,a,s){return r.checkInEllipse(e,t,i,o,a,s,n)}}},generateRoundRectangle:function(){return this.nodeShapes.roundrectangle={renderer:this,name:"roundrectangle",points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){return r.roundRectangleIntersectLine(o,a,e,t,n,i,s)},checkPoint:function(e,t,n,i,o,a,s){var l=r.getRoundRectangleRadius(i,o),c=2*l;return!!(r.pointInsidePolygon(e,t,this.points,a,s,i,o-c,[0,-1],n)||r.pointInsidePolygon(e,t,this.points,a,s,i-c,o,[0,-1],n)||r.checkInEllipse(e,t,c,c,a-i/2+l,s-o/2+l,n)||r.checkInEllipse(e,t,c,c,a+i/2-l,s-o/2+l,n)||r.checkInEllipse(e,t,c,c,a+i/2-l,s+o/2-l,n)||r.checkInEllipse(e,t,c,c,a-i/2+l,s+o/2-l,n))}}},generateCutRectangle:function(){return this.nodeShapes.cutrectangle={renderer:this,name:"cutrectangle",cornerLength:r.getCutRectangleCornerLength(),points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},generateCutTrianglePts:function(e,t,n,r){var i=this.cornerLength,o=t/2,a=e/2,s=n-a,l=n+a,c=r-o,u=r+o;return{topLeft:[s,c+i,s+i,c,s+i,c+i],topRight:[l-i,c,l,c+i,l-i,c+i],bottomRight:[l,u-i,l-i,u,l-i,u-i],bottomLeft:[s+i,u,s,u-i,s+i,u-i]}},intersectLine:function(e,t,n,i,o,a,s){var l=this.generateCutTrianglePts(n+2*s,i+2*s,e,t),c=[].concat.apply([],[l.topLeft.splice(0,4),l.topRight.splice(0,4),l.bottomRight.splice(0,4),l.bottomLeft.splice(0,4)]);return r.polygonIntersectLine(o,a,c,e,t)},checkPoint:function(e,t,n,i,o,a,s){if(r.pointInsidePolygon(e,t,this.points,a,s,i,o-2*this.cornerLength,[0,-1],n))return!0;if(r.pointInsidePolygon(e,t,this.points,a,s,i-2*this.cornerLength,o,[0,-1],n))return!0;var l=this.generateCutTrianglePts(i,o,a,s);return r.pointInsidePolygonPoints(e,t,l.topLeft)||r.pointInsidePolygonPoints(e,t,l.topRight)||r.pointInsidePolygonPoints(e,t,l.bottomRight)||r.pointInsidePolygonPoints(e,t,l.bottomLeft)}}},generateBarrel:function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){var l=this.generateBarrelBezierPts(n+2*s,i+2*s,e,t),c=function(e){var t=r.qbezierPtAt({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.15),n=r.qbezierPtAt({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.5),i=r.qbezierPtAt({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.85);return[e[0],e[1],t.x,t.y,n.x,n.y,i.x,i.y,e[4],e[5]]},u=[].concat(c(l.topLeft),c(l.topRight),c(l.bottomRight),c(l.bottomLeft));return r.polygonIntersectLine(o,a,u,e,t)},generateBarrelBezierPts:function(e,t,n,i){var o=t/2,a=e/2,s=n-a,l=n+a,c=i-o,u=i+o,d=r.getBarrelCurveConstants(e,t),p=d.heightOffset,f=d.widthOffset,h=d.ctrlPtOffsetPct*e,g={topLeft:[s,c+p,s+h,c,s+f,c],topRight:[l-f,c,l-h,c,l,c+p],bottomRight:[l,u-p,l-h,u,l-f,u],bottomLeft:[s+f,u,s+h,u,s,u-p]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,t,n,i,o,a,s){var l=r.getBarrelCurveConstants(i,o),c=l.heightOffset,u=l.widthOffset;if(r.pointInsidePolygon(e,t,this.points,a,s,i,o-2*c,[0,-1],n))return!0;if(r.pointInsidePolygon(e,t,this.points,a,s,i-2*u,o,[0,-1],n))return!0;for(var d=this.generateBarrelBezierPts(i,o,a,s),p=function(e,t,n){var i=n[4],o=n[2],a=n[0],s=n[5],l=n[1],c=Math.min(i,a),u=Math.max(i,a),d=Math.min(s,l),p=Math.max(s,l);if(c<=e&&e<=u&&d<=t&&t<=p){var f=r.bezierPtsToQuadCoeff(i,o,a),h=r.solveQuadratic(f[0],f[1],f[2],e).filter((function(e){return 0<=e&&e<=1}));if(h.length>0)return h[0]}return null},f=Object.keys(d),h=0;h<f.length;h++){var g=d[f[h]],m=p(e,t,g);if(null!=m){var v=g[5],b=g[3],y=g[1],x=r.qbezierAt(v,b,y,m);if(g.isTop&&x<=t)return!0;if(g.isBottom&&t<=x)return!0}}return!1}}},generateBottomRoundrectangle:function(){return this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottomroundrectangle",points:r.generateUnitNgonPointsFitToSquare(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,i,o,a,s){var l=e-(n/2+s),c=t-(i/2+s),u=c,d=e+(n/2+s),p=r.finiteLinesIntersect(o,a,e,t,l,c,d,u,!1);return p.length>0?p:r.roundRectangleIntersectLine(o,a,e,t,n,i,s)},checkPoint:function(e,t,n,i,o,a,s){var l=r.getRoundRectangleRadius(i,o),c=2*l;if(r.pointInsidePolygon(e,t,this.points,a,s,i,o-c,[0,-1],n))return!0;if(r.pointInsidePolygon(e,t,this.points,a,s,i-c,o,[0,-1],n))return!0;var u=i/2+2*n,d=o/2+2*n,p=[a-u,s-d,a-u,s,a+u,s,a+u,s-d];return!!r.pointInsidePolygonPoints(e,t,p)||!!r.checkInEllipse(e,t,c,c,a+i/2-l,s+o/2-l,n)||!!r.checkInEllipse(e,t,c,c,a-i/2+l,s+o/2-l,n)}}},registerNodeShapes:function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",r.generateUnitNgonPointsFitToSquare(3,0)),this.generatePolygon("rectangle",r.generateUnitNgonPointsFitToSquare(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle(),this.generatePolygon("diamond",[0,1,1,0,0,-1,-1,0]),this.generatePolygon("pentagon",r.generateUnitNgonPointsFitToSquare(5,0)),this.generatePolygon("hexagon",r.generateUnitNgonPointsFitToSquare(6,0)),this.generatePolygon("heptagon",r.generateUnitNgonPointsFitToSquare(7,0)),this.generatePolygon("octagon",r.generateUnitNgonPointsFitToSquare(8,0));var n=new Array(20),i=r.generateUnitNgonPoints(5,0),o=r.generateUnitNgonPoints(5,Math.PI/5),a=.5*(3-Math.sqrt(5));a*=1.57;for(var s=0;s<o.length/2;s++)o[2*s]*=a,o[2*s+1]*=a;for(s=0;s<5;s++)n[4*s]=i[2*s],n[4*s+1]=i[2*s+1],n[4*s+2]=o[2*s],n[4*s+3]=o[2*s+1];n=r.fitPolygonToSquare(n),this.generatePolygon("star",n),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("concavehexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]),this.generatePolygon("tag",[-1,-1,.25,-1,1,0,.25,1,-1,1]),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}}};e.exports=i},function(e,t,n){"use strict";var r=n(1),i={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(e){e=e||r.staticEmptyObject();var t=this;void 0===t.averageRedrawTime&&(t.averageRedrawTime=0),void 0===t.lastRedrawTime&&(t.lastRedrawTime=0),void 0===t.lastDrawTime&&(t.lastDrawTime=0),t.requestedFrame=!0,t.renderOptions=e},beforeRender:function(e,t){if(!this.destroyed){t=t||0;var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort((function(e,t){return t.priority-e.priority}))}}},o=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};i.startRenderLoop=function(){var e=this;e.renderLoopStarted||(e.renderLoopStarted=!0,r.requestAnimationFrame((function t(n){if(!e.destroyed){if(e.requestedFrame&&!e.skipFrame){o(e,!0,n);var i=r.performanceNow();e.render(e.renderOptions);var a=e.lastDrawTime=r.performanceNow();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var s=a-i;e.redrawTotalTime+=s,e.lastRedrawTime=s,e.averageRedrawTime=e.averageRedrawTime/2+s/2,e.requestedFrame=!1}else o(e,!1,n);e.skipFrame=!1,r.requestAnimationFrame(t)}})))},e.exports=i},function(e,t,n){"use strict";var r=n(1),i=n(0),o=n(124),a=n(125),s=c,l=c.prototype;function c(e){var t=this;t.data={canvases:new Array(l.CANVAS_LAYERS),contexts:new Array(l.CANVAS_LAYERS),canvasNeedsRedraw:new Array(l.CANVAS_LAYERS),bufferCanvases:new Array(l.BUFFER_COUNT),bufferContexts:new Array(l.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color: rgba(0,0,0,0);";t.data.canvasContainer=document.createElement("div");var r=t.data.canvasContainer.style;t.data.canvasContainer.setAttribute("style",n),r.position="relative",r.zIndex="0",r.overflow="hidden";var s=e.cy.container();s.appendChild(t.data.canvasContainer),(s.getAttribute("style")||"").indexOf(n)<0&&s.setAttribute("style",(s.getAttribute("style")||"")+n);for(var c=0;c<l.CANVAS_LAYERS;c++){var u=t.data.canvases[c]=document.createElement("canvas");t.data.contexts[c]=u.getContext("2d"),u.setAttribute("style","-webkit-user-select: none; -moz-user-select: -moz-none; user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); outline-style: none;"+(i.ms()?" -ms-touch-action: none; touch-action: none; ":"")),u.style.position="absolute",u.setAttribute("data-id","layer"+c),u.style.zIndex=String(l.CANVAS_LAYERS-c),t.data.canvasContainer.appendChild(u),t.data.canvasNeedsRedraw[c]=!1}for(t.data.topCanvas=t.data.canvases[0],t.data.canvases[l.NODE].setAttribute("data-id","layer"+l.NODE+"-node"),t.data.canvases[l.SELECT_BOX].setAttribute("data-id","layer"+l.SELECT_BOX+"-selectbox"),t.data.canvases[l.DRAG].setAttribute("data-id","layer"+l.DRAG+"-drag"),c=0;c<l.BUFFER_COUNT;c++)t.data.bufferCanvases[c]=document.createElement("canvas"),t.data.bufferContexts[c]=t.data.bufferCanvases[c].getContext("2d"),t.data.bufferCanvases[c].style.position="absolute",t.data.bufferCanvases[c].setAttribute("data-id","buffer"+c),t.data.bufferCanvases[c].style.zIndex=String(-c-1),t.data.bufferCanvases[c].style.visibility="hidden";t.pathsEnabled=!0,t.data.eleTxrCache=new o(t),t.data.lyrTxrCache=new a(t,t.data.eleTxrCache),t.onUpdateEleCalcs((function(e,n){for(var r=0;r<n.length;r++){var i=n[r],o=i._private.rstyle,a=o.dirtyEvents;if(i.isNode()&&a&&1===a.length&&a.position);else if(t.data.eleTxrCache.invalidateElement(i),i.isParent()&&a.style){var s=o.prevParentOpacity,l=i.pstyle("opacity").pfValue;if(o.prevParentOpacity=l,s!==l)for(var c=i.descendants(),u=0;u<c.length;u++)t.data.eleTxrCache.invalidateElement(c[u])}}n.length>0&&t.data.lyrTxrCache.invalidateElements(n)}))}l.CANVAS_LAYERS=3,l.SELECT_BOX=0,l.DRAG=1,l.NODE=2,l.BUFFER_COUNT=3,l.TEXTURE_BUFFER=0,l.MOTIONBLUR_BUFFER_NODE=1,l.MOTIONBLUR_BUFFER_DRAG=2,l.redrawHint=function(e,t){var n=this;switch(e){case"eles":n.data.canvasNeedsRedraw[l.NODE]=t;break;case"drag":n.data.canvasNeedsRedraw[l.DRAG]=t;break;case"select":n.data.canvasNeedsRedraw[l.SELECT_BOX]=t}};var u="undefined"!=typeof Path2D;l.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},l.usePaths=function(){return u&&this.pathsEnabled},[n(126),n(127),n(128),n(129),n(130),n(131),n(132),n(133),n(134),n(135)].forEach((function(e){r.extend(l,e)})),e.exports=s},function(e,t,n){"use strict";var r=n(2),i=n(1),o=n(9),a=n(19),s={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},l=function(e){this.renderer=e,this.onDequeues=[],this.setupDequeueing()},c=l.prototype;c.reasons=s,c.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},c.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},c.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new o((function(e,t){return t.reqs-e.reqs}))},c.getElementIdToQueue=function(){return this.eleIdToCacheQueue=this.eleIdToCacheQueue||{}},c.getElement=function(e,t,n,i,o){var a=this,l=this.renderer,c=e._private.rscratch,u=l.cy.zoom();if(0===t.w||0===t.h||!e.visible())return null;if(null==i&&(i=Math.ceil(r.log2(u*n))),i<-4)i=-4;else if(u>=3.99||i>2)return null;var d,p=Math.pow(2,i),f=t.h*p,h=t.w*p,g=c.imgCaches=c.imgCaches||{},m=g[i];if(m)return m;if(d=f<=25?25:f<=50?50:50*Math.ceil(f/50),f>1024||h>1024||e.isEdge()||e.isParent())return null;var v=a.getTextureQueue(d),b=v[v.length-2],y=function(){return a.recycleTexture(d,h)||a.addTexture(d,h)};b||(b=v[v.length-1]),b||(b=y()),b.width-b.usedWidth<h&&(b=y());for(var x,w=l.eleTextBiggerThanMin(e,p),k=function(e){return e&&e.scaledLabelShown===w},A=o&&o===s.dequeue,E=o&&o===s.highQuality,S=o&&o===s.downscale,$=i+1;$<=2;$++)if(T=g[$]){x=T;break}var C=x&&x.level===i+1?x:null,_=function(){b.context.drawImage(C.texture.canvas,C.x,0,C.width,C.height,b.usedWidth,0,h,f)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,h,d),k(C))_();else if(k(x)){if(!E)return a.queueElement(e,x.level-1),x;for($=x.level;$>i;$--)C=a.getElement(e,t,n,$,s.downscale);_()}else{var O;if(!A&&!E&&!S)for($=i-1;$>=-4;$--){var T;if(T=g[$]){O=T;break}}if(k(O))return a.queueElement(e,i),O;b.context.translate(b.usedWidth,0),b.context.scale(p,p),l.drawElement(b.context,e,t,w),b.context.scale(1/p,1/p),b.context.translate(-b.usedWidth,0)}return m=g[i]={ele:e,x:b.usedWidth,texture:b,level:i,scale:p,width:h,height:f,scaledLabelShown:w},b.usedWidth+=Math.ceil(h+8),b.eleCaches.push(m),a.checkTextureFullness(b),m},c.invalidateElement=function(e){var t=e._private.rscratch.imgCaches;if(t)for(var n=-4;n<=2;n++){var r=t[n];if(r){var o=r.texture;o.invalidatedWidth+=r.width,t[n]=null,i.removeFromArray(o.eleCaches,r),this.removeFromQueue(e),this.checkTextureUtility(o)}}},c.checkTextureUtility=function(e){e.invalidatedWidth>=.5*e.width&&this.retireTexture(e)},c.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?i.removeFromArray(t,e):e.fullnessChecks++},c.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t);i.removeFromArray(n,e),e.retired=!0;for(var r=e.eleCaches,o=0;o<r.length;o++){var a=r[o],s=a.ele,l=a.level,c=s._private.rscratch.imgCaches;c&&(c[l]=null)}i.clearArray(r),this.getRetiredTextureQueue(t).push(e)},c.addTexture=function(e,t){var n={};return this.getTextureQueue(e).push(n),n.eleCaches=[],n.height=e,n.width=Math.max(1024,t),n.usedWidth=0,n.invalidatedWidth=0,n.fullnessChecks=0,n.canvas=document.createElement("canvas"),n.canvas.width=n.width,n.canvas.height=n.height,n.context=n.canvas.getContext("2d"),n},c.recycleTexture=function(e,t){for(var n=this.getTextureQueue(e),r=this.getRetiredTextureQueue(e),o=0;o<r.length;o++){var a=r[o];if(a.width>=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,i.clearArray(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),i.removeFromArray(r,a),n.push(a),a}},c.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementIdToQueue(),i=e.id(),o=r[i];if(o)o.level=Math.max(o.level,t),o.reqs++,n.updateItem(o);else{var a={ele:e,level:t,reqs:1};n.push(a),r[i]=a}},c.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementIdToQueue(),r=[],i=0;i<1&&t.size()>0;i++){var o=t.pop(),a=o.ele;if(null==a._private.rscratch.imgCaches[o.level]){n[a.id()]=null,r.push(o);var l=a.boundingBox();this.getElement(a,l,e,o.level,s.dequeue)}}return r},c.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementIdToQueue(),r=n[e.id()];null!=r&&(r.reqs=i.MAX_INT,t.updateItem(r),t.pop(),n[e.id()]=null)},c.onDequeue=function(e){this.onDequeues.push(e)},c.offDequeue=function(e){i.removeFromArray(this.onDequeues,e)},c.setupDequeueing=a.setupDequeueing({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,i){for(var o=0;o<t.length;o++){var a=t[o].ele.boundingBox();if(r.boundingBoxesIntersect(a,i))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}}),e.exports=l},function(e,t,n){"use strict";var r=n(1),i=n(2),o=n(9),a=n(0),s=n(19),l=function(e,t){var n=this,i=n.renderer=e;n.layersByLevel={},n.firstGet=!0,n.lastInvalidationTime=r.performanceNow()-500,n.skipping=!1,i.beforeRender((function(e,t){t-n.lastInvalidationTime<=250?n.skipping=!0:n.skipping=!1})),n.layersQueue=new o((function(e,t){return t.reqs-e.reqs})),n.eleTxrCache=t,n.setupEleCacheInvalidation(),n.setupDequeueing()},c=l.prototype,u=0,d=Math.pow(2,53)-1;function p(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)}c.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),o=document.createElement("canvas");o.width=r,o.height=i;var a={id:u=++u%d,bb:e,level:t,width:r,height:i,canvas:o,context:o.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=a.context,l=-a.bb.x1,c=-a.bb.y1;return s.scale(n,n),s.translate(l,c),a},c.getLayers=function(e,t,n){var o=this,a=o.renderer.cy.zoom(),s=o.firstGet;if(o.firstGet=!1,null==n)if((n=Math.ceil(i.log2(a*t)))<-4)n=-4;else if(a>=3.99||n>2)return null;o.validateLayersElesOrdering(n,e);var l,c,u=o.layersByLevel,d=Math.pow(2,n),p=u[n]=u[n]||[];if(o.levelIsComplete(n,e))return p;!function(){var t=function(t){if(o.validateLayersElesOrdering(t,e),o.levelIsComplete(t,e))return c=u[t],!0},i=function(e){if(!c)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};i(1),i(-1);for(var a=p.length-1;a>=0;a--){var s=p[a];s.invalid&&r.removeFromArray(p,s)}}();var f=function(t){var r=(t=t||{}).after;if(function(){if(!l){l=i.makeBoundingBox();for(var t=0;t<e.length;t++)i.updateBoundingBox(l,e[t].boundingBox())}}(),l.w*d*(l.h*d)>16e6)return null;var a=o.makeLayer(l,n);if(null!=r){var s=p.indexOf(r)+1;p.splice(s,0,a)}else(void 0===t.insert||t.insert)&&p.unshift(a);return a};if(o.skipping&&!s)return null;for(var h=null,g=e.length/1,m=!s,v=0;v<e.length;v++){var b=e[v],y=b._private.rscratch,x=y.imgLayerCaches=y.imgLayerCaches||{},w=x[n];if(w)h=w;else{if((!h||h.eles.length>=g||!i.boundingBoxInBoundingBox(h.bb,b.boundingBox()))&&!(h=f({insert:!0,after:h})))return null;c||m?o.queueLayer(h,b):o.drawEleInLayer(h,b,n,t),h.eles.push(b),x[n]=h}}return c||(m?null:p)},c.getEleLevelForLayerLevel=function(e,t){return e},c.drawEleInLayer=function(e,t,n,r){var i=this.renderer,o=e.context,a=t.boundingBox();if(0!==a.w&&0!==a.h&&t.visible()){var s=this.eleTxrCache,l=s.reasons.highQuality;n=this.getEleLevelForLayerLevel(n,r);var c=s.getElement(t,a,null,n,l);c?(p(o,!1),o.drawImage(c.texture.canvas,c.x,0,c.width,c.height,a.x1,a.y1,a.w,a.h),p(o,!0)):i.drawElement(o,t)}},c.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var o=n[i];if(o.reqs>0)return!1;if(o.invalid)return!1;r+=o.eles.length}return r===t.length},c.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r<n.length;r++){for(var i=n[r],o=-1,a=0;a<t.length;a++)if(i.eles[0]===t[a]){o=a;break}if(o<0)this.invalidateLayer(i);else{var s=o;for(a=0;a<i.eles.length;a++)if(i.eles[a]!==t[s+a]){this.invalidateLayer(i);break}}}},c.updateElementsInLayers=function(e,t){for(var n=a.element(e[0]),r=0;r<e.length;r++)for(var i=n?null:e[r],o=n?e[r]:e[r].ele,s=o._private.rscratch,l=s.imgLayerCaches=s.imgLayerCaches||{},c=-4;c<=2;c++){var u=l[c];u&&(i&&this.getEleLevelForLayerLevel(u.level)!==i.level||t(u,o,i))}},c.haveLayers=function(){for(var e=!1,t=-4;t<=2;t++){var n=this.layersByLevel[t];if(n&&n.length>0){e=!0;break}}return e},c.invalidateElements=function(e){var t=this;t.lastInvalidationTime=r.performanceNow(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)}))},c.invalidateLayer=function(e){if(this.lastInvalidationTime=r.performanceNow(),!e.invalid){var t=e.level,n=e.eles,i=this.layersByLevel[t];r.removeFromArray(i,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var o=0;o<n.length;o++){var a=n[o]._private.rscratch.imgLayerCaches;a&&(a[t]=null)}}},c.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,(function(e,n,r){var i=e.replacement;if(i||((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var o=0;o<i.eles.length;o++)t.queueLayer(i,i.eles[o])}))},c.setupEleCacheInvalidation=function(){var e=this,t=[],n=r.debounce((function(){e.refineElementTextures(t),t=[]}),50);e.eleTxrCache.onDequeue((function(e){for(var r=0;r<e.length;r++)t.push(e[r]);n()}))},c.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},c.dequeue=function(e){for(var t=this.layersQueue,n=[],r=0;r<1&&0!==t.size();){var i=t.peek();if(i.replacement)t.pop();else if(i.replaces&&i!==i.replaces.replacement)t.pop();else if(i.invalid)t.pop();else{var o=i.elesQueue.shift();o&&(this.drawEleInLayer(i,o,i.level,e),r++),0===n.length&&n.push(!0),0===i.elesQueue.length&&(t.pop(),i.reqs=0,i.replaces&&this.applyLayerReplacement(i),this.requestRedraw())}}return n},c.applyLayerReplacement=function(e){var t=this.layersByLevel[e.level],n=e.replaces,r=t.indexOf(n);if(!(r<0||n.invalid)){t[r]=e;for(var i=0;i<e.eles.length;i++){var o=e.eles[i]._private,a=o.imgLayerCaches=o.imgLayerCaches||{};a&&(a[e.level]=e)}this.requestRedraw()}},c.requestRedraw=r.debounce((function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()}),100),c.setupDequeueing=s.setupDequeueing({deqRedrawThreshold:50,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t){return e.dequeue(t)},onDeqd:r.noop,shouldRedraw:r.trueify,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}}),e.exports=l},function(e,t,n){"use strict";var r,i={arrowShapeImpl:function(e){return(r||(r={polygon:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}},"triangle-backcurve":function(e,t,n){for(var r,i=0;i<t.length;i++){var o=t[i];0===i&&(r=o),e.lineTo(o.x,o.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)},"triangle-tee":function(e,t,n){e.beginPath&&e.beginPath();for(var r=t,i=0;i<r.length;i++){var o=r[i];e.lineTo(o.x,o.y)}e.closePath&&e.closePath(),e.beginPath&&e.beginPath();var a=n,s=n[0];for(e.moveTo(s.x,s.y),i=0;i<a.length;i++)o=a[i],e.lineTo(o.x,o.y);e.closePath&&e.closePath()},"triangle-cross":function(e,t,n){e.beginPath&&e.beginPath();for(var r=t,i=0;i<r.length;i++){var o=r[i];e.lineTo(o.x,o.y)}e.closePath&&e.closePath(),e.beginPath&&e.beginPath();var a=n,s=n[0];for(e.moveTo(s.x,s.y),i=0;i<a.length;i++)o=a[i],e.lineTo(o.x,o.y);e.closePath&&e.closePath()},circle:function(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}}))[e]}};e.exports=i},function(e,t,n){"use strict";var r=n(2),i={drawElement:function(e,t,n,r){t.isNode()?this.drawNode(e,t,n,r):this.drawEdge(e,t,n,r)},drawCachedElement:function(e,t,n,i){var o=t.boundingBox();if(0!==o.w&&0!==o.h&&(!i||r.boundingBoxesIntersect(o,i))){var a=this.data.eleTxrCache.getElement(t,o,n);null!=a?e.drawImage(a.texture.canvas,a.x,0,a.width,a.height,o.x1,o.y1,o.w,o.h):this.drawElement(e,t)}},drawElements:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];this.drawElement(e,r)}},drawCachedElements:function(e,t,n,r){for(var i=0;i<t.length;i++){var o=t[i];this.drawCachedElement(e,o,n,r)}},drawCachedNodes:function(e,t,n,r){for(var i=0;i<t.length;i++){var o=t[i];o.isNode()&&this.drawCachedElement(e,o,n,r)}},drawLayeredElements:function(e,t,n,r){var i=this.data.lyrTxrCache.getLayers(t,n);if(i)for(var o=0;o<i.length;o++){var a=i[o],s=a.bb;0!==s.w&&0!==s.h&&e.drawImage(a.canvas,s.x1,s.y1,s.w,s.h)}else this.drawCachedElements(e,t,n,r)},drawDebugPoints:function(e,t){for(var n=function(t,n,r){e.fillStyle=r,e.fillRect(t-1,n-1,3,3)},r=0;r<t.length;r++){var i=t[r],o=i._private.rscratch;if(i.isNode()){var a=i.position();n(a.x,a.y,"magenta")}else{for(var s=o.allpts,l=0;l+1<s.length;l+=2)n(s[l],s[l+1],"cyan");n(o.midX,o.midY,"yellow")}}}};e.exports=i},function(e,t,n){"use strict";var r={drawEdge:function(e,t,n,r){var i=this,o=t._private.rscratch,a=i.usePaths();if(t.visible()&&!o.badLine&&null!=o.allpts&&!isNaN(o.allpts[0])){var s=void 0;n&&(s=n,e.translate(-s.x1,-s.y1));var l=2*t.pstyle("overlay-padding").pfValue,c=t.pstyle("overlay-opacity").value,u=t.pstyle("overlay-color").value,d=t.pstyle("line-color").value,p=t.pstyle("opacity").value,f=t.pstyle("line-style").value,h=t.pstyle("width").pfValue,g=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;e.lineWidth=h,e.lineCap="butt",i.strokeStyle(e,d[0],d[1],d[2],n),i.drawEdgePath(t,e,o.allpts,f)},m=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;i.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var v=t.pstyle("ghost-offset-x").pfValue,b=t.pstyle("ghost-offset-y").pfValue,y=t.pstyle("ghost-opacity").value,x=p*y;e.translate(v,b),g(x),m(x),e.translate(-v,-b)}g(),m(),function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;e.lineWidth=l,"self"!==o.edgeType||a?e.lineCap="round":e.lineCap="butt",i.strokeStyle(e,u[0],u[1],u[2],n),i.drawEdgePath(t,e,o.allpts,"solid")}(),i.drawElementText(e,t,r),n&&e.translate(s.x1,s.y1)}},drawEdgePath:function(e,t,n,r){var i=e._private.rscratch,o=t,a=void 0,s=!1,l=this.usePaths();if(l){var c=n.join("$");i.pathCacheKey&&i.pathCacheKey===c?(a=t=i.pathCache,s=!0):(a=t=new Path2D,i.pathCacheKey=c,i.pathCache=a)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash([6,3]);break;case"solid":o.setLineDash([])}if(!s&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":if(e.hasClass("horizontal")){var u=n[4],d=n[5],p=(n[0]+n[4])/2;t.lineTo(n[0]+10,n[1]),t.bezierCurveTo(p,n[1],p,n[5],n[4]-10,n[5]),t.lineTo(u,d)}else if(e.hasClass("vertical")){var f=n[4],h=n[5],g=(n[1]+n[5])/2;t.bezierCurveTo(n[0],g,n[4],g,n[4],n[5]-10),t.lineTo(f,h)}else for(var m=2;m+3<n.length;m+=4)t.quadraticCurveTo(n[m],n[m+1],n[m+2],n[m+3]);break;case"straight":case"segments":case"haystack":for(var v=2;v+1<n.length;v+=2)t.lineTo(n[v],n[v+1])}t=o,l?t.stroke(a):t.stroke(),t.setLineDash&&t.setLineDash([])},drawArrowheads:function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;i||this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),i||(t.hasClass("horizontal")?this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,-Math.PI/2,n):t.hasClass("vertical")?this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,0,n):this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n))},drawArrowhead:function(e,t,n,r,i,o,a){if(!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(o)||null==o)){var s=t.pstyle(n+"-arrow-shape").value;if("none"!==s){var l="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",c=t.pstyle(n+"-arrow-fill").value,u=t.pstyle("width").pfValue,d=t.pstyle("opacity").value;void 0===a&&(a=d);var p=e.globalCompositeOperation;1===a&&"hollow"!==c||(e.globalCompositeOperation="destination-out",this.fillStyle(e,255,255,255,1),this.strokeStyle(e,255,255,255,1),this.drawArrowShape(t,n,e,l,u,s,r,i,o),e.globalCompositeOperation=p);var f=t.pstyle(n+"-arrow-color").value;this.fillStyle(e,f[0],f[1],f[2],a),this.strokeStyle(e,f[0],f[1],f[2],a),this.drawArrowShape(t,n,e,c,u,s,r,i,o)}}},drawArrowShape:function(e,t,n,r,i,o,a,s,l){var c=this.usePaths(),u=e._private.rscratch,d=!1,p=void 0,f=n,h={x:a,y:s},g=e.pstyle("arrow-scale").value,m=this.getArrowWidth(i,g),v=this.arrowShapes[o];if(c){var b=m+"$"+o+"$"+l+"$"+a+"$"+s;u.arrowPathCacheKey=u.arrowPathCacheKey||{},u.arrowPathCache=u.arrowPathCache||{},u.arrowPathCacheKey[t]===b?(p=n=u.arrowPathCache[t],d=!0):(p=n=new Path2D,u.arrowPathCacheKey[t]=b,u.arrowPathCache[t]=p)}n.beginPath&&n.beginPath(),d||v.draw(n,m,l,h,i),!v.leavePathOpen&&n.closePath&&n.closePath(),n=f,"filled"!==r&&"both"!==r||(c?n.fill(p):n.fill()),"hollow"!==r&&"both"!==r||(n.lineWidth=v.matchEdgeWidth?i:1,n.lineJoin="miter",c?n.stroke(p):n.stroke())}};e.exports=r},function(e,t,n){"use strict";var r={safeDrawImage:function(e,t,n,r,i,o,a,s,l,c){i<=0||o<=0||l<=0||c<=0||e.drawImage(t,n,r,i,o,a,s,l,c)},drawInscribedImage:function(e,t,n,r,i){var o=this,a=n.position(),s=a.x,l=a.y,c=n.cy().style(),u=c.getIndexedStyle.bind(c),d=u(n,"background-fit","value",r),p=u(n,"background-repeat","value",r),f=n.width(),h=n.height(),g=2*n.padding(),m=f+("inner"===u(n,"background-width-relative-to","value",r)?0:g),v=h+("inner"===u(n,"background-height-relative-to","value",r)?0:g),b=n._private.rscratch,y="node"===n.pstyle("background-clip").value,x=u(n,"background-image-opacity","value",r)*i,w=t.width||t.cachedW,k=t.height||t.cachedH;null!=w&&null!=k||(document.body.appendChild(t),w=t.cachedW=t.width||t.offsetWidth,k=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var A=w,E=k;if("auto"!==u(n,"background-width","value",r)&&(A="%"===u(n,"background-width","units",r)?u(n,"background-width","pfValue",r)*m:u(n,"background-width","pfValue",r)),"auto"!==u(n,"background-height","value",r)&&(E="%"===u(n,"background-height","units",r)?u(n,"background-height","pfValue",r)*v:u(n,"background-height","pfValue",r)),0!==A&&0!==E){if("contain"===d)A*=S=Math.min(m/A,v/E),E*=S;else if("cover"===d){var S;A*=S=Math.max(m/A,v/E),E*=S}var $=s-m/2;"%"===u(n,"background-position-x","units",r)?$+=(m-A)*u(n,"background-position-x","pfValue",r):$+=u(n,"background-position-x","pfValue",r);var C=l-v/2;"%"===u(n,"background-position-y","units",r)?C+=(v-E)*u(n,"background-position-y","pfValue",r):C+=u(n,"background-position-y","pfValue",r),b.pathCache&&($-=s,C-=l,s=0,l=0);var _=e.globalAlpha;if(e.globalAlpha=x,"no-repeat"===p)y&&(e.save(),b.pathCache?e.clip(b.pathCache):(o.nodeShapes[o.getNodeShape(n)].draw(e,s,l,m,v),e.clip())),o.safeDrawImage(e,t,0,0,w,k,$,C,A,E),y&&e.restore();else{var O=e.createPattern(t,p);e.fillStyle=O,o.nodeShapes[o.getNodeShape(n)].draw(e,s,l,m,v),e.translate($,C),e.fill(),e.translate(-$,-C)}e.globalAlpha=_}}};e.exports=r},function(e,t,n){"use strict";var r=n(1),i=n(2),o={eleTextBiggerThanMin:function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),o=Math.ceil(i.log2(n*r));t=Math.pow(2,o)}return!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)},drawElementText:function(e,t,n){var r=this;if(void 0===n){if(!r.eleTextBiggerThanMin(t))return}else if(!n)return;if(t.isNode()){if(!(o=t.pstyle("label"))||!o.value)return;var i=t.pstyle("text-halign").strValue;switch(t.pstyle("text-valign").strValue,i){case"left":e.textAlign="right";break;case"right":e.textAlign="left";break;default:e.textAlign="center"}e.textBaseline="bottom"}else{var o=t.pstyle("label"),a=t.pstyle("source-label"),s=t.pstyle("target-label");if(!(o&&o.value||a&&a.value||s&&s.value))return;e.textAlign="center",e.textBaseline="bottom"}r.drawText(e,t),t.isEdge()&&(r.drawText(e,t,"source"),r.drawText(e,t,"target"))}};o.drawNodeText=o.drawEdgeText=o.drawElementText,o.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},o.setupTextStyle=function(e,t){var n=t.effectiveOpacity(),r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",o=t.pstyle("font-family").strValue,a=t.pstyle("font-weight").strValue,s=t.pstyle("text-opacity").value*t.pstyle("opacity").value*n,l=t.pstyle("text-outline-opacity").value*s,c=t.pstyle("color").value,u=t.pstyle("text-outline-color").value,d=t._private.fontKey,p=this.getFontCache(e);p.key!==d&&(e.font=r+" "+a+" "+i+" "+o,p.key=d),e.lineJoin="round",this.fillStyle(e,c[0],c[1],c[2],s),this.strokeStyle(e,u[0],u[1],u[2],l)},o.drawText=function(e,t,n){var i=t._private.rscratch,o=t.effectiveOpacity();if(0!==o&&0!==t.pstyle("text-opacity").value){var a,s,l,c,u,d,p=r.getPrefixedProperty(i,"labelX",n),f=r.getPrefixedProperty(i,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(p)&&!isNaN(f)){this.setupTextStyle(e,t);var g=n?n+"-":"",m=r.getPrefixedProperty(i,"labelWidth",n),v=r.getPrefixedProperty(i,"labelHeight",n),b=r.getPrefixedProperty(i,"labelAngle",n),y=t.pstyle(g+"text-margin-x").pfValue,x=t.pstyle(g+"text-margin-y").pfValue,w=t.isEdge(),k=(t.isNode(),t.pstyle("text-halign").value),A=t.pstyle("text-valign").value;w&&(k="center",A="center"),p+=y,f+=x;var E,S=t.pstyle("text-rotation");if(0!==(E="autorotate"===S.strValue?w?b:0:"none"===S.strValue?0:S.pfValue)){var $=p,C=f;e.translate($,C),e.rotate(E),p=0,f=0}switch(A){case"top":break;case"center":f+=v/2;break;case"bottom":f+=v}var _=t.pstyle("text-background-opacity").value,O=t.pstyle("text-border-opacity").value,T=t.pstyle("text-border-width").pfValue,j=t.pstyle("text-background-padding").pfValue;if(_>0||T>0&&O>0){var P=p-j;switch(k){case"left":P-=m;break;case"center":P-=m/2}var D=f-v-j,R=m+2*j,I=v+2*j;if(_>0){var N=e.fillStyle,M=t.pstyle("text-background-color").value;e.fillStyle="rgba("+M[0]+","+M[1]+","+M[2]+","+_*o+")","roundrectangle"==t.pstyle("text-background-shape").strValue?(s=P,l=D,c=R,u=I,d=(d=2)||5,(a=e).beginPath(),a.moveTo(s+d,l),a.lineTo(s+c-d,l),a.quadraticCurveTo(s+c,l,s+c,l+d),a.lineTo(s+c,l+u-d),a.quadraticCurveTo(s+c,l+u,s+c-d,l+u),a.lineTo(s+d,l+u),a.quadraticCurveTo(s,l+u,s,l+u-d),a.lineTo(s,l+d),a.quadraticCurveTo(s,l,s+d,l),a.closePath(),a.fill()):e.fillRect(P,D,R,I),e.fillStyle=N}if(T>0&&O>0){var z=e.strokeStyle,L=e.lineWidth,B=t.pstyle("text-border-color").value,F=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+B[0]+","+B[1]+","+B[2]+","+O*o+")",e.lineWidth=T,e.setLineDash)switch(F){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=T/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(e.strokeRect(P,D,R,I),"double"===F){var q=T/2;e.strokeRect(P+q,D+q,R-2*q,I-2*q)}e.setLineDash&&e.setLineDash([]),e.lineWidth=L,e.strokeStyle=z}}var V=2*t.pstyle("text-outline-width").pfValue;if(V>0&&(e.lineWidth=V),"wrap"===t.pstyle("text-wrap").value){var U=r.getPrefixedProperty(i,"labelWrapCachedLines",n),H=v/U.length;switch(A){case"top":f-=(U.length-1)*H;break;case"center":case"bottom":f-=(U.length-1)*H}for(var G=0;G<U.length;G++)V>0&&e.strokeText(U[G],p,f),e.fillText(U[G],p,f),f+=H}else V>0&&e.strokeText(h,p,f),e.fillText(h,p,f);0!==E&&(e.rotate(-E),e.translate(-$,-C))}}},e.exports=o},function(e,t,n){"use strict";var r=n(0),i={drawNode:function(e,t,n,i){var o,a,s=this,l=t._private,c=l.rscratch,u=t.position();if(r.number(u.x)&&r.number(u.y)&&t.visible()){var d=t.effectiveOpacity(),p=s.usePaths(),f=void 0,h=!1,g=t.padding();o=t.width()+2*g,a=t.height()+2*g;var m=void 0;n&&(m=n,e.translate(-m.x1,-m.y1));for(var v=t.pstyle("background-image").value,b=new Array(v.length),y=new Array(v.length),x=0,w=0;w<v.length;w++){var k=v[w];if(b[w]=null!=k&&"none"!==k){var A=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",w);x++,y[w]=s.getCachedImage(k,A,(function(){t.emitAndNotify("background")}))}}var E=t.pstyle("background-blacken").value,S=t.pstyle("border-width").pfValue,$=t.pstyle("background-color").value,C=t.pstyle("background-opacity").value*d,_=t.pstyle("border-color").value,O=t.pstyle("border-style").value,T=t.pstyle("border-opacity").value*d;e.lineJoin="miter";var j=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C;s.fillStyle(e,$[0],$[1],$[2],t)},P=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T;s.strokeStyle(e,_[0],_[1],_[2],t)},D=t.pstyle("shape").strValue,R=t.pstyle("shape-polygon-points").pfValue;if(p){var I=D+"$"+o+"$"+a+("polygon"===D?"$"+R.join("$"):"");e.translate(u.x,u.y),c.pathCacheKey===I?(f=c.pathCache,h=!0):(f=new Path2D,c.pathCacheKey=I,c.pathCache=f)}var N,M,z,L=function(){if(!h){var n=u;p&&(n={x:0,y:0}),s.nodeShapes[s.getNodeShape(t)].draw(f||e,n.x,n.y,o,a)}p?e.fill(f):e.fill()},B=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d,r=l.backgrounding,i=0,o=0;o<y.length;o++)b[o]&&y[o].complete&&!y[o].error&&(i++,s.drawInscribedImage(e,y[o],t,o,n));l.backgrounding=!(i===x),r!==l.backgrounding&&t.updateStyle(!1)},F=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d;s.hasPie(t)&&(s.drawPie(e,t,r),n&&(p||s.nodeShapes[s.getNodeShape(t)].draw(e,u.x,u.y,o,a)))},q=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d,n=(E>0?E:-E)*t,r=E>0?0:255;0!==E&&(s.fillStyle(e,r,r,r,n),p?e.fill(f):e.fill())},V=function(){if(S>0){if(e.lineWidth=S,e.lineCap="butt",e.setLineDash)switch(O){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}if(p?e.stroke(f):e.stroke(),"double"===O){e.lineWidth=S/3;var t=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",p?e.stroke(f):e.stroke(),e.globalCompositeOperation=t}e.setLineDash&&e.setLineDash([])}};if("yes"===t.pstyle("ghost").value){var U=t.pstyle("ghost-offset-x").pfValue,H=t.pstyle("ghost-offset-y").pfValue,G=t.pstyle("ghost-opacity").value,W=G*d;e.translate(U,H),j(G*C),L(),B(W),F(0!==E||0!==S),q(W),P(G*T),V(),e.translate(-U,-H)}j(),L(),B(),F(0!==E||0!==S),q(),P(),V(),p&&e.translate(-u.x,-u.y),s.drawElementText(e,t,i),N=t.pstyle("overlay-padding").pfValue,M=t.pstyle("overlay-opacity").value,z=t.pstyle("overlay-color").value,M>0&&(s.fillStyle(e,z[0],z[1],z[2],M),s.nodeShapes.roundrectangle.draw(e,u.x,u.y,o+2*N,a+2*N),e.fill()),n&&e.translate(m.x1,m.y1)}},hasPie:function(e){return(e=e[0])._private.hasPie},drawPie:function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),o=t.pstyle("pie-size"),a=r.x,s=r.y,l=t.width(),c=t.height(),u=Math.min(l,c)/2,d=0;this.usePaths()&&(a=0,s=0),"%"===o.units?u*=o.pfValue:void 0!==o.pfValue&&(u=o.pfValue/2);for(var p=1;p<=i.pieBackgroundN;p++){var f=t.pstyle("pie-"+p+"-background-size").value,h=t.pstyle("pie-"+p+"-background-color").value,g=t.pstyle("pie-"+p+"-background-opacity").value*n,m=f/100;m+d>1&&(m=1-d);var v=1.5*Math.PI+2*Math.PI*d,b=v+2*Math.PI*m;0===f||d>=1||d+m>1||(e.beginPath(),e.moveTo(a,s),e.arc(a,s,u,v,b),e.closePath(),this.fillStyle(e,h[0],h[1],h[2],g),e.fill(),d+=m)}}};e.exports=i},function(e,t,n){"use strict";var r={},i=n(1);r.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t},r.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},r.fillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},r.strokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},r.matchCanvasSize=function(e){var t=this,n=t.data,r=t.findContainerClientCoords(),i=r[2],o=r[3],a=t.getPixelRatio(),s=t.motionBlurPxRatio;e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE]&&e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG]||(a=s);var l,c=i*a,u=o*a;if(c!==t.canvasWidth||u!==t.canvasHeight){t.fontCaches=null;var d=n.canvasContainer;d.style.width=i+"px",d.style.height=o+"px";for(var p=0;p<t.CANVAS_LAYERS;p++)(l=n.canvases[p]).width=c,l.height=u,l.style.width=i+"px",l.style.height=o+"px";for(p=0;p<t.BUFFER_COUNT;p++)(l=n.bufferCanvases[p]).width=c,l.height=u,l.style.width=i+"px",l.style.height=o+"px";t.textureMult=1,a<=1&&(l=n.bufferCanvases[t.TEXTURE_BUFFER],t.textureMult=2,l.width=c*t.textureMult,l.height=u*t.textureMult),t.canvasWidth=c,t.canvasHeight=u}},r.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},r.render=function(e){var t=(e=e||i.staticEmptyObject()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,o=e.forcedZoom,a=e.forcedPan,s=this,l=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,c=s.cy,u=s.data,d=u.canvasNeedsRedraw,p=s.textureOnViewport&&!t&&(s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming),f=void 0!==e.motionBlur?e.motionBlur:s.motionBlur,h=s.motionBlurPxRatio,g=c.hasCompoundNodes(),m=s.hoverData.draggingEles,v=!(!s.hoverData.selecting&&!s.touchData.selecting),b=f=f&&!t&&s.motionBlurEnabled&&!v;t||(s.prevPxRatio!==l&&(s.invalidateContainerClientCoordsCache(),s.matchCanvasSize(s.container),s.redrawHint("eles",!0),s.redrawHint("drag",!0)),s.prevPxRatio=l),!t&&s.motionBlurTimeout&&clearTimeout(s.motionBlurTimeout),f&&(null==s.mbFrames&&(s.mbFrames=0),s.mbFrames++,s.mbFrames<3&&(b=!1),s.mbFrames>s.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!p&&(d[s.NODE]=!0,d[s.SELECT_BOX]=!0);var y=c.style()._private.coreStyle,x=c.zoom(),w=void 0!==o?o:x,k=c.pan(),A={x:k.x,y:k.y},E={zoom:x,pan:{x:k.x,y:k.y}},S=s.prevViewport;void 0===S||E.zoom!==S.zoom||E.pan.x!==S.pan.x||E.pan.y!==S.pan.y||m&&!g||(s.motionBlurPxRatio=1),a&&(A=a),w*=l,A.x*=l,A.y*=l;var $=s.getCachedZSortedEles();function C(e,t,n,r,i){var o=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",s.fillStyle(e,255,255,255,s.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=o}function _(e,r){var i,l,c,d;s.clearingMotionBlur||e!==u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]?(i=A,l=w,c=s.canvasWidth,d=s.canvasHeight):(i={x:k.x*h,y:k.y*h},l=x*h,c=s.canvasWidth*h,d=s.canvasHeight*h),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?C(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(i.x,i.y),e.scale(l,l)),a&&e.translate(a.x,a.y),o&&e.scale(o,o)}if(p||(s.textureDrawLastFrame=!1),p){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=c.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var O=s.data.bufferContexts[s.TEXTURE_BUFFER];O.setTransform(1,0,0,1,0,0),O.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:O,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult}),(E=s.textureCache.viewport={zoom:c.zoom(),pan:c.pan(),width:s.canvasWidth,height:s.canvasHeight}).mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}d[s.DRAG]=!1,d[s.NODE]=!1;var T=u.contexts[s.NODE],j=s.textureCache.texture;E=s.textureCache.viewport,s.textureCache.bb,T.setTransform(1,0,0,1,0,0),f?C(T,0,0,E.width,E.height):T.clearRect(0,0,E.width,E.height);var P=y["outside-texture-bg-color"].value,D=y["outside-texture-bg-opacity"].value;s.fillStyle(T,P[0],P[1],P[2],D),T.fillRect(0,0,E.width,E.height),x=c.zoom(),_(T,!1),T.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/l,E.height/E.zoom/l),T.drawImage(j,E.mpan.x,E.mpan.y,E.width/E.zoom/l,E.height/E.zoom/l)}else s.textureOnViewport&&!t&&(s.textureCache=null);var R=c.extent(),I=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles,N=s.hideEdgesOnViewport&&I,M=[];if(M[s.NODE]=!d[s.NODE]&&f&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,M[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),M[s.DRAG]=!d[s.DRAG]&&f&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,M[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),d[s.NODE]||n||r||M[s.NODE]){var z=f&&!M[s.NODE]&&1!==h;_(T=t||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),f&&!z?"motionBlur":void 0),N?s.drawCachedNodes(T,$.nondrag,l,R):s.drawLayeredElements(T,$.nondrag,l,R),s.debug&&s.drawDebugPoints(T,$.nondrag),n||f||(d[s.NODE]=!1)}if(!r&&(d[s.DRAG]||n||M[s.DRAG])&&(z=f&&!M[s.DRAG]&&1!==h,_(T=t||(z?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]),f&&!z?"motionBlur":void 0),N?s.drawCachedNodes(T,$.drag,l,R):s.drawCachedElements(T,$.drag,l,R),s.debug&&s.drawDebugPoints(T,$.drag),n||f||(d[s.DRAG]=!1)),s.showFps||!r&&d[s.SELECT_BOX]&&!n){if(_(T=t||u.contexts[s.SELECT_BOX]),1==s.selection[4]&&(s.hoverData.selecting||s.touchData.selecting)){x=s.cy.zoom();var L=y["selection-box-border-width"].value/x;T.lineWidth=L,T.fillStyle="rgba("+y["selection-box-color"].value[0]+","+y["selection-box-color"].value[1]+","+y["selection-box-color"].value[2]+","+y["selection-box-opacity"].value+")",T.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),L>0&&(T.strokeStyle="rgba("+y["selection-box-border-color"].value[0]+","+y["selection-box-border-color"].value[1]+","+y["selection-box-border-color"].value[2]+","+y["selection-box-opacity"].value+")",T.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){x=s.cy.zoom();var B=u.bgActivePosistion;T.fillStyle="rgba("+y["active-bg-color"].value[0]+","+y["active-bg-color"].value[1]+","+y["active-bg-color"].value[2]+","+y["active-bg-opacity"].value+")",T.beginPath(),T.arc(B.x,B.y,y["active-bg-size"].pfValue/x,0,2*Math.PI),T.fill()}var F=s.lastRedrawTime;if(s.showFps&&F){F=Math.round(F);var q=Math.round(1e3/F);T.setTransform(1,0,0,1,0,0),T.fillStyle="rgba(255, 0, 0, 0.75)",T.strokeStyle="rgba(255, 0, 0, 0.75)",T.lineWidth=1,T.fillText("1 frame = "+F+" ms = "+q+" fps",0,20),T.strokeRect(0,30,250,20),T.fillRect(0,30,250*Math.min(q/60,1),20)}n||(d[s.SELECT_BOX]=!1)}if(f&&1!==h){var V=u.contexts[s.NODE],U=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],H=u.contexts[s.DRAG],G=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],W=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!b?e.clearRect(0,0,s.canvasWidth,s.canvasHeight):C(e,0,0,s.canvasWidth,s.canvasHeight);var r=h;e.drawImage(t,0,0,s.canvasWidth*r,s.canvasHeight*r,0,0,s.canvasWidth,s.canvasHeight)};(d[s.NODE]||M[s.NODE])&&(W(V,U,M[s.NODE]),d[s.NODE]=!1),(d[s.DRAG]||M[s.DRAG])&&(W(H,G,M[s.DRAG]),d[s.DRAG]=!1)}s.prevViewport=E,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),f&&(s.motionBlurTimeout=setTimeout((function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!p,s.mbFrames=0,d[s.NODE]=!0,d[s.DRAG]=!0,s.redraw()}),100)),t||c.emit("render")},e.exports=r},function(e,t,n){"use strict";for(var r=n(2),i={drawPolygonPath:function(e,t,n,r,i,o){var a=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+a*o[0],n+s*o[1]);for(var l=1;l<o.length/2;l++)e.lineTo(t+a*o[2*l],n+s*o[2*l+1]);e.closePath()},drawRoundRectanglePath:function(e,t,n,i,o){var a=i/2,s=o/2,l=r.getRoundRectangleRadius(i,o);e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.arcTo(t+a,n-s,t+a,n,l),e.arcTo(t+a,n+s,t,n+s,l),e.arcTo(t-a,n+s,t-a,n,l),e.arcTo(t-a,n-s,t,n-s,l),e.lineTo(t,n-s),e.closePath()},drawBottomRoundRectanglePath:function(e,t,n,i,o){var a=i/2,s=o/2,l=r.getRoundRectangleRadius(i,o);e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.lineTo(t+a,n-s),e.lineTo(t+a,n),e.arcTo(t+a,n+s,t,n+s,l),e.arcTo(t-a,n+s,t-a,n,l),e.lineTo(t-a,n-s),e.lineTo(t,n-s),e.closePath()},drawCutRectanglePath:function(e,t,n,i,o){var a=i/2,s=o/2,l=r.getCutRectangleCornerLength();e.beginPath&&e.beginPath(),e.moveTo(t-a+l,n-s),e.lineTo(t+a-l,n-s),e.lineTo(t+a,n-s+l),e.lineTo(t+a,n+s-l),e.lineTo(t+a-l,n+s),e.lineTo(t-a+l,n+s),e.lineTo(t-a,n+s-l),e.lineTo(t-a,n-s+l),e.closePath()},drawBarrelPath:function(e,t,n,i,o){var a=i/2,s=o/2,l=t-a,c=t+a,u=n-s,d=n+s,p=r.getBarrelCurveConstants(i,o),f=p.widthOffset,h=p.heightOffset,g=p.ctrlPtOffsetPct*f;e.beginPath&&e.beginPath(),e.moveTo(l,u+h),e.lineTo(l,d-h),e.quadraticCurveTo(l+g,d,l+f,d),e.lineTo(c-f,d),e.quadraticCurveTo(c-g,d,c,d-h),e.lineTo(c,u+h),e.quadraticCurveTo(c-g,u,c-f,u),e.lineTo(l+f,u),e.quadraticCurveTo(l+g,u,l,u+h),e.closePath()}},o=Math.sin(0),a=Math.cos(0),s={},l={},c=Math.PI/40,u=0*Math.PI;u<2*Math.PI;u+=c)s[u]=Math.sin(u),l[u]=Math.cos(u);i.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else for(var u,d,p=r/2,f=i/2,h=0*Math.PI;h<2*Math.PI;h+=c)u=t-p*s[h]*o+p*l[h]*a,d=n+f*l[h]*o+f*s[h]*a,0===h?e.moveTo(u,d):e.lineTo(u,d);e.closePath()},e.exports=i},function(e,t,n){"use strict";var r=n(0),i={};function o(e){var t=e.indexOf(",");return e.substr(t+1)}function a(e,t,n){var r=t.toDataURL(n,e.quality);switch(e.output){case"blob":return function(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),o=0;o<n.length;o++)i[o]=n.charCodeAt(o);return new Blob([r],{type:t})}(o(r),n);case"base64":return o(r);case"base64uri":default:return r}}i.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},i.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),i=this.findContainerClientCoords(),o=e.full?Math.ceil(n.w):i[2],a=e.full?Math.ceil(n.h):i[3],s=r.number(e.maxWidth)||r.number(e.maxHeight),l=this.getPixelRatio(),c=1;if(void 0!==e.scale)o*=e.scale,a*=e.scale,c=e.scale;else if(s){var u=1/0,d=1/0;r.number(e.maxWidth)&&(u=c*e.maxWidth/o),r.number(e.maxHeight)&&(d=c*e.maxHeight/a),o*=c=Math.min(u,d),a*=c}s||(o*=l,a*=l,c*=l);var p=document.createElement("canvas");p.width=o,p.height=a,p.style.width=o+"px",p.style.height=a+"px";var f=p.getContext("2d");if(o>0&&a>0){f.clearRect(0,0,o,a),f.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(e.full)f.translate(-n.x1*c,-n.y1*c),f.scale(c,c),this.drawElements(f,h),f.scale(1/c,1/c),f.translate(n.x1*c,n.y1*c);else{var g=t.pan(),m={x:g.x*c,y:g.y*c};c*=t.zoom(),f.translate(m.x,m.y),f.scale(c,c),this.drawElements(f,h),f.scale(1/c,1/c),f.translate(-m.x,-m.y)}e.bg&&(f.globalCompositeOperation="destination-over",f.fillStyle=e.bg,f.rect(0,0,o,a),f.fill())}return p},i.png=function(e){return a(e,this.bufferCanvasImage(e),"image/png")},i.jpg=function(e){return a(e,this.bufferCanvasImage(e),"image/jpeg")},e.exports=i},function(e,t,n){"use strict";var r={nodeShapeImpl:function(e,t,n,r,i,o,a){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,o);case"polygon":return this.drawPolygonPath(t,n,r,i,o,a);case"roundrectangle":return this.drawRoundRectanglePath(t,n,r,i,o);case"cutrectangle":return this.drawCutRectanglePath(t,n,r,i,o);case"bottomroundrectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,o);case"barrel":return this.drawBarrelPath(t,n,r,i,o)}}};e.exports=r},function(e,t,n){"use strict";var r=n(0),i=n(1),o=n(18),a=function e(){if(!(this instanceof e))return new e;this.length=0},s=a.prototype;s.instanceString=function(){return"stylesheet"},s.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},s.css=function(e,t){var n=this.length-1;if(r.string(e))this[n].properties.push({name:e,value:t});else if(r.plainObject(e))for(var a=e,s=0;s<o.properties.length;s++){var l=o.properties[s],c=a[l.name];if(void 0===c&&(c=a[i.dash2camel(l.name)]),void 0!==c){var u=l.name,d=c;this[n].properties.push({name:u,value:d})}}return this},s.style=s.css,s.generateStyle=function(e){var t=new o(e);return this.appendToStyle(t)},s.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var o=0;o<i.length;o++){var a=i[o];e.css(a.name,a.value)}}return e},e.exports=a},function(e,t,n){"use strict";e.exports="snapshot-2fd4aa6cc2-1531011493999"}])},e.exports=r(n(241),n(242))}).call(this,n(238).setImmediate)},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(239),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(35))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,i,o,a,s,l=1,c={},u=!1,d=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){h(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){o.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(i=d.documentElement,r=function(e){var t=d.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):r=function(e){setTimeout(h,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),p.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var i={callback:e,args:t};return c[l]=i,r(l),l++},p.clearImmediate=f}function f(e){delete c[e]}function h(e){if(u)setTimeout(h,0,e);else{var t=c[e];if(t){u=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{f(e),u=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(35),n(240))},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var l,c=[],u=!1,d=-1;function p(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&f())}function f(){if(!u){var e=s(p);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||u||s(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(e,t,n){(function(t){var n=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,o=/^0o[0-7]+$/i,a=parseInt,s="object"==typeof t&&t&&t.Object===Object&&t,l="object"==typeof self&&self&&self.Object===Object&&self,c=s||l||Function("return this")(),u=Object.prototype.toString,d=Math.max,p=Math.min,f=function(){return c.Date.now()};function h(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function g(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==u.call(e)}(e))return NaN;if(h(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var s=i.test(e);return s||o.test(e)?a(e.slice(2),s?2:8):r.test(e)?NaN:+e}e.exports=function(e,t,n){var r,i,o,a,s,l,c=0,u=!1,m=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function b(t){var n=r,o=i;return r=i=void 0,c=t,a=e.apply(o,n)}function y(e){return c=e,s=setTimeout(w,t),u?b(e):a}function x(e){var n=e-l;return void 0===l||n>=t||n<0||m&&e-c>=o}function w(){var e=f();if(x(e))return k(e);s=setTimeout(w,function(e){var n=t-(e-l);return m?p(n,o-(e-c)):n}(e))}function k(e){return s=void 0,v&&r?b(e):(r=i=void 0,a)}function A(){var e=f(),n=x(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return y(l);if(m)return s=setTimeout(w,t),b(l)}return void 0===s&&(s=setTimeout(w,t)),a}return t=g(t)||0,h(n)&&(u=!!n.leading,o=(m="maxWait"in n)?d(g(n.maxWait)||0,t):o,v="trailing"in n?!!n.trailing:v),A.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=i=s=void 0},A.flush=function(){return void 0===s?a:k(f())},A}}).call(this,n(35))},function(e,t,n){e.exports=n(243)},function(e,t,n){var r,i,o;(function(){var n,a,s,l,c,u,d,p,f,h,g,m,v,b,y;s=Math.floor,h=Math.min,a=function(e,t){return e<t?-1:e>t?1:0},f=function(e,t,n,r,i){var o;if(null==n&&(n=0),null==i&&(i=a),n<0)throw new Error("lo must be non-negative");for(null==r&&(r=e.length);n<r;)i(t,e[o=s((n+r)/2)])<0?r=o:n=o+1;return[].splice.apply(e,[n,n-n].concat(t)),t},u=function(e,t,n){return null==n&&(n=a),e.push(t),b(e,0,e.length-1,n)},c=function(e,t){var n,r;return null==t&&(t=a),n=e.pop(),e.length?(r=e[0],e[0]=n,y(e,0,t)):r=n,r},p=function(e,t,n){var r;return null==n&&(n=a),r=e[0],e[0]=t,y(e,0,n),r},d=function(e,t,n){var r;return null==n&&(n=a),e.length&&n(e[0],t)<0&&(t=(r=[e[0],t])[0],e[0]=r[1],y(e,0,n)),t},l=function(e,t){var n,r,i,o,l,c;for(null==t&&(t=a),l=[],r=0,i=(o=function(){c=[];for(var t=0,n=s(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)c.push(t);return c}.apply(this).reverse()).length;r<i;r++)n=o[r],l.push(y(e,n,t));return l},v=function(e,t,n){var r;if(null==n&&(n=a),-1!==(r=e.indexOf(t)))return b(e,0,r,n),y(e,r,n)},g=function(e,t,n){var r,i,o,s,c;if(null==n&&(n=a),!(i=e.slice(0,t)).length)return i;for(l(i,n),o=0,s=(c=e.slice(t)).length;o<s;o++)r=c[o],d(i,r,n);return i.sort(n).reverse()},m=function(e,t,n){var r,i,o,s,u,d,p,g,m;if(null==n&&(n=a),10*t<=e.length){if(!(o=e.slice(0,t).sort(n)).length)return o;for(i=o[o.length-1],s=0,d=(p=e.slice(t)).length;s<d;s++)n(r=p[s],i)<0&&(f(o,r,0,null,n),o.pop(),i=o[o.length-1]);return o}for(l(e,n),m=[],u=0,g=h(t,e.length);0<=g?u<g:u>g;0<=g?++u:--u)m.push(c(e,n));return m},b=function(e,t,n,r){var i,o,s;for(null==r&&(r=a),i=e[n];n>t&&r(i,o=e[s=n-1>>1])<0;)e[n]=o,n=s;return e[n]=i},y=function(e,t,n){var r,i,o,s,l;for(null==n&&(n=a),i=e.length,l=t,o=e[t],r=2*t+1;r<i;)(s=r+1)<i&&!(n(e[r],e[s])<0)&&(r=s),e[t]=e[r],r=2*(t=r)+1;return e[t]=o,b(e,l,t,n)},n=function(){function e(e){this.cmp=null!=e?e:a,this.nodes=[]}return e.push=u,e.pop=c,e.replace=p,e.pushpop=d,e.heapify=l,e.updateItem=v,e.nlargest=g,e.nsmallest=m,e.prototype.push=function(e){return u(this.nodes,e,this.cmp)},e.prototype.pop=function(){return c(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return-1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return p(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return d(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return l(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return v(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),i=[],void 0===(o="function"==typeof(r=function(){return n})?r.apply(t,i):r)||(e.exports=o)}).call(this)},function(e,t,n){var r;!function(){"use strict";var i="undefined"==typeof jQuery?null:jQuery,o=function(e,t){if(e){var n,r={menuItems:[],menuItemClasses:[],contextMenuClasses:[]};e("core","contextMenus",(function(e){var i=this;i.scratch("cycontextmenus")||i.scratch("cycontextmenus",{});var o,a=l("options"),s=l("cxtMenu");function l(e){return i.scratch("cycontextmenus")[e]}function c(e,t){i.scratch("cycontextmenus")[e]=t}function u(e){for(var t="",n=0;n<e.length;n++){t+=e[n],n!==e.length-1&&(t+=" ")}return t}function d(e){e.css("display","block")}function p(e){e.css("display","none")}function f(e,n,r){function o(n){c("currentCyEvent",n),function(e){var n=l("cxtMenuPosition"),r=e.position||e.cyPosition;if(n!=r){s.children().css("display","none"),c("anyVisibleChild",!1),c("cxtMenuPosition",r);var o=t(i.container()).offset(),a=e.renderedPosition||e.cyRenderedPosition,u=o.left+a.x,d=o.top+a.y;s.css("left",u),s.css("top",d)}}(n),e.data("show")&&(s.is(":visible")||d(s),c("anyVisibleChild",!0),d(e)),!l("anyVisibleChild")&&s.is(":visible")&&p(s)}var a,u;r&&i.on("cxttap",u=function(e){(e.target||e.cyTarget)==i&&o(e)}),n&&i.on("cxttap",n,a=function(e){o(e)}),e.data("cy-context-menus-cxtfcn",a),e.data("cy-context-menus-cxtcorefcn",u)}function h(e,t,n,r){!function(e,t){var n;e.on("click",n=function(){t(l("currentCyEvent"))}),e.data("call-on-click-function",n)}(e,t),f(e,n,r)}function g(e){for(var t=0;t<e.length;t++)m(e[t])}function m(e){var t,n=b(e);t=n,s.append(t),function(e){e.click((function(){p(s),c("cxtMenuPosition",void 0)}))}(t),h(n,e.onClickFunction,e.selector,e.coreAsWell)}function v(e,n){var r,i,o=b(e);r=o,i=t("#"+n),r.insertBefore(i),h(o,e.onClickFunction,e.selector,e.coreAsWell)}function b(e){var n,r,i,o=(n=a.menuItemClasses,r=e.hasTrailingDivider,i=u(n),i+=" cy-context-menus-cxt-menuitem",r&&(i+=" cy-context-menus-divider"),i),s='<button id="'+e.id+'" class="'+o+'"';e.tooltipText&&(s+=' title="'+e.tooltipText+'"'),e.disabled&&(s+=" disabled"),e.image?s+='><img src="'+e.image.src+'" width="'+e.image.width+'px"; height="'+e.image.height+'px"; style="position:absolute; top: '+e.image.y+"px; left: "+e.image.x+'px;">'+e.content+"</button>":s+=">"+e.content+"</button>";var l=t(s);return l.data("selector",e.selector),l.data("on-click-function",e.onClickFunction),l.data("show",void 0===e.show||e.show),l}function y(){var e;l("active")&&(e=s.children(),t(e).each((function(){x(t(this))})),i.off("tapstart",n),s.remove(),c(s=void 0,void 0),c("active",!1),c("anyVisibleChild",!1))}function x(e){var n="string"==typeof e?t("#"+e):e,r=n.data("cy-context-menus-cxtfcn"),o=n.data("selector"),a=n.data("call-on-click-function"),s=n.data("cy-context-menus-cxtcorefcn");r&&i.off("cxttap",o,r),s&&i.off("cxttap",s),a&&n.off("click",a),n.remove()}"get"!==e&&(c("options",a=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}(r,e)),l("active")&&y(),c("active",!0),o=u(a.contextMenuClasses),(s=t("<div class="+o+"></div>")).addClass("cy-context-menus-cxt-menu"),c("cxtMenu",s),t("body").append(s),s=s,g(a.menuItems),i.on("tapstart",n=function(){p(s),c("cxtMenuPosition",void 0),c("currentCyEvent",void 0)}),t(".cy-context-menus-cxt-menu").contextmenu((function(){return!1})));return function(e){return{isActive:function(){return l("active")},appendMenuItem:function(t){return m(t),e},appendMenuItems:function(t){return g(t),e},removeMenuItem:function(t){return x(t),e},setTrailingDivider:function(n,r){return function(e,n){var r=t("#"+e);n?r.addClass("cy-context-menus-divider"):r.removeClass("cy-context-menus-divider")}(n,r),e},insertBeforeMenuItem:function(t,n){return v(t,n),e},moveBeforeOtherMenuItem:function(n,r){return function(e,n){if(e!==n){var r=t("#"+e).detach(),i=t("#"+n);r.insertBefore(i)}}(n,r),e},disableMenuItem:function(n){return t("#"+n).attr("disabled",!0),e},enableMenuItem:function(n){return t("#"+n).attr("disabled",!1),e},hideMenuItem:function(n){return t("#"+n).data("show",!1),p(t("#"+n)),e},showMenuItem:function(n){return t("#"+n).data("show",!0),d(t("#"+n)),e},destroy:function(){return y(),e}}}(this)}))}};e.exports&&(e.exports=o),void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r),"undefined"!=typeof cytoscape&&i&&o(cytoscape,i)}()},function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){var r=n(1),i=function(e){e&&e("layout","dagre",r)};"undefined"!=typeof cytoscape&&i(cytoscape),e.exports=i},function(e,t,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i=n(2),o=n(3),a=n(4);function s(e){this.options=o({},i,e)}s.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,i=function(e,t){return"function"==typeof t?t.apply(e,[e]):t},o=e.boundingBox||{x1:0,y1:0,w:t.width(),h:t.height()};void 0===o.x2&&(o.x2=o.x1+o.w),void 0===o.w&&(o.w=o.x2-o.x1),void 0===o.y2&&(o.y2=o.y1+o.h),void 0===o.h&&(o.h=o.y2-o.y1);var s=new a.graphlib.Graph({multigraph:!0,compound:!0}),l={},c=function(e,t){null!=t&&(l[e]=t)};c("nodesep",e.nodeSep),c("edgesep",e.edgeSep),c("ranksep",e.rankSep),c("rankdir",e.rankDir),c("ranker",e.ranker),s.setGraph(l),s.setDefaultEdgeLabel((function(){return{}})),s.setDefaultNodeLabel((function(){return{}}));for(var u=n.nodes(),d=0;d<u.length;d++){var p=u[d],f=p.layoutDimensions(e);s.setNode(p.id(),{width:f.w,height:f.h,name:p.id()})}for(var h=0;h<u.length;h++){var g=u[h];g.isChild()&&s.setParent(g.id(),g.parent().id())}for(var m=n.edges().stdFilter((function(e){return!e.source().isParent()&&!e.target().isParent()})),v=0;v<m.length;v++){var b=m[v];s.setEdge(b.source().id(),b.target().id(),{minlen:i(b,e.minLen),weight:i(b,e.edgeWeight),name:b.id()},b.id())}a.layout(s);for(var y,x=s.nodes(),w=0;w<x.length;w++){var k=x[w],A=s.node(k);t.getElementById(k).scratch().dagre=A}return e.boundingBox?(y={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0},u.forEach((function(e){var t=e.scratch().dagre;y.x1=Math.min(y.x1,t.x),y.x2=Math.max(y.x2,t.x),y.y1=Math.min(y.y1,t.y),y.y2=Math.max(y.y2,t.y)})),y.w=y.x2-y.x1,y.h=y.y2-y.y1):y=o,u.layoutPositions(this,e,(function(t){var n=(t="object"===r(t)?t:this).scratch().dagre;return function(t){if(e.boundingBox){var n=0===y.w?0:(t.x-y.x1)/y.w,r=0===y.h?0:(t.y-y.y1)/y.h;return{x:o.x1+n*o.w,y:o.y1+r*o.h}}return t}({x:n.x,y:n.y})})),this},e.exports=s},function(e,t){var n={nodeSep:void 0,edgeSep:void 0,rankSep:void 0,rankDir:void 0,ranker:void 0,minLen:function(e){return 1},edgeWeight:function(e){return 1},fit:!0,padding:30,spacingFactor:void 0,nodeDimensionsIncludeLabels:!1,animate:!1,animateFilter:function(e,t){return!0},animationDuration:500,animationEasing:void 0,boundingBox:void 0,transform:function(e,t){return t},ready:function(){},stop:function(){}};e.exports=n},function(e,t){e.exports=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.forEach((function(t){Object.keys(t).forEach((function(n){return e[n]=t[n]}))})),e}},function(t,n){t.exports=e}])},e.exports=r(n(246))},function(e,t,n){e.exports={graphlib:n(30),layout:n(359),debug:n(420),util:{time:n(20).time,notime:n(20).notime},version:n(421)}},function(e,t,n){e.exports={Graph:n(116),version:n(348)}},function(e,t,n){var r=n(149);e.exports=function(e){return r(e,4)}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(75),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():i.call(t,n,1),--this.size,!0)}},function(e,t,n){var r=n(75);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(75);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(75);e.exports=function(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}},function(e,t,n){var r=n(74);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(74),i=n(117),o=n(118);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!i||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(64),i=n(262),o=n(23),a=n(151),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,d=c.hasOwnProperty,p=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(r(e)?p:s).test(a(e))}},function(e,t,n){var r=n(58),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r,i=n(263),o=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!o&&o in e}},function(e,t,n){var r=n(31)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var r=n(266),i=n(74),o=n(117);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},function(e,t,n){var r=n(267),i=n(268),o=n(269),a=n(270),s=n(271);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},function(e,t,n){var r=n(76);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(76),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return i.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(76),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:i.call(t,e)}},function(e,t,n){var r=n(76);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},function(e,t,n){var r=n(77);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(77);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(77);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(77);e.exports=function(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}},function(e,t,n){var r=n(65),i=n(41);e.exports=function(e,t){return e&&r(t,i(t),e)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},function(e,t,n){var r=n(47),i=n(34);e.exports=function(e){return i(e)&&"[object Arguments]"==r(e)}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var r=n(47),i=n(120),o=n(34),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!a[r(e)]}},function(e,t,n){var r=n(154)(Object.keys,Object);e.exports=r},function(e,t,n){var r=n(65),i=n(48);e.exports=function(e,t){return e&&r(t,i(t),e)}},function(e,t,n){var r=n(23),i=n(83),o=n(285),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=i(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},function(e,t,n){var r=n(65),i=n(123);e.exports=function(e,t){return r(e,i(e),t)}},function(e,t,n){var r=n(65),i=n(159);e.exports=function(e,t){return r(e,i(e),t)}},function(e,t,n){var r=n(161),i=n(159),o=n(48);e.exports=function(e){return r(e,o,i)}},function(e,t,n){var r=n(46)(n(31),"DataView");e.exports=r},function(e,t,n){var r=n(46)(n(31),"Promise");e.exports=r},function(e,t,n){var r=n(46)(n(31),"WeakMap");e.exports=r},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},function(e,t,n){var r=n(125),i=n(294),o=n(295),a=n(296),s=n(164);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return i(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return o(e);case"[object Set]":return new l;case"[object Symbol]":return a(e)}}},function(e,t,n){var r=n(125);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},function(e,t){var n=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}},function(e,t,n){var r=n(58),i=r?r.prototype:void 0,o=i?i.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},function(e,t,n){var r=n(298),i=n(82),o=n(121),a=o&&o.isMap,s=a?i(a):r;e.exports=s},function(e,t,n){var r=n(60),i=n(34);e.exports=function(e){return i(e)&&"[object Map]"==r(e)}},function(e,t,n){var r=n(300),i=n(82),o=n(121),a=o&&o.isSet,s=a?i(a):r;e.exports=s},function(e,t,n){var r=n(60),i=n(34);e.exports=function(e){return i(e)&&"[object Set]"==r(e)}},function(e,t){e.exports=function(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}},function(e,t,n){var r=n(36);e.exports=function(e,t){return function(n,i){if(null==n)return n;if(!r(n))return e(n,i);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==i(s[a],a,s););return n}}},function(e,t,n){var r=n(85);e.exports=function(e,t){var n=[];return r(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}},function(e,t,n){var r=n(305),i=n(313),o=n(176);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},function(e,t,n){var r=n(73),i=n(171);e.exports=function(e,t,n,o){var a=n.length,s=a,l=!o;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a<s;){var u=(c=n[a])[0],d=e[u],p=c[1];if(l&&c[2]){if(void 0===d&&!(u in e))return!1}else{var f=new r;if(o)var h=o(d,p,u,e,t,f);if(!(void 0===h?i(p,d,3,o,f):h))return!1}}return!0}},function(e,t,n){var r=n(73),i=n(172),o=n(310),a=n(312),s=n(60),l=n(13),c=n(59),u=n(67),d="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,f,h,g){var m=l(e),v=l(t),b=m?"[object Array]":s(e),y=v?"[object Array]":s(t),x=(b="[object Arguments]"==b?d:b)==d,w=(y="[object Arguments]"==y?d:y)==d,k=b==y;if(k&&c(e)){if(!c(t))return!1;m=!0,x=!1}if(k&&!x)return g||(g=new r),m||u(e)?i(e,t,n,f,h,g):o(e,t,b,n,f,h,g);if(!(1&n)){var A=x&&p.call(e,"__wrapped__"),E=w&&p.call(t,"__wrapped__");if(A||E){var S=A?e.value():e,$=E?t.value():t;return g||(g=new r),h(S,$,n,f,g)}}return!!k&&(g||(g=new r),a(e,t,n,f,h,g))}},function(e,t){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},function(e,t,n){var r=n(58),i=n(163),o=n(57),a=n(172),s=n(311),l=n(129),c=r?r.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,n,r,c,d,p){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var f=s;case"[object Set]":var h=1&r;if(f||(f=l),e.size!=t.size&&!h)return!1;var g=p.get(e);if(g)return g==t;r|=2,p.set(e,t);var m=a(f(e),f(t),r,c,d,p);return p.delete(e),m;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},function(e,t,n){var r=n(160),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,a,s){var l=1&n,c=r(e),u=c.length;if(u!=r(t).length&&!l)return!1;for(var d=u;d--;){var p=c[d];if(!(l?p in t:i.call(t,p)))return!1}var f=s.get(e),h=s.get(t);if(f&&h)return f==t&&h==e;var g=!0;s.set(e,t),s.set(t,e);for(var m=l;++d<u;){var v=e[p=c[d]],b=t[p];if(o)var y=l?o(b,v,p,t,e,s):o(v,b,p,e,t,s);if(!(void 0===y?v===b||a(v,b,n,o,s):y)){g=!1;break}m||(m="constructor"==p)}if(g&&!m){var x=e.constructor,w=t.constructor;x==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof x&&x instanceof x&&"function"==typeof w&&w instanceof w||(g=!1)}return s.delete(e),s.delete(t),g}},function(e,t,n){var r=n(175),i=n(41);e.exports=function(e){for(var t=i(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,r(a)]}return t}},function(e,t,n){var r=n(171),i=n(315),o=n(178),a=n(130),s=n(175),l=n(176),c=n(68);e.exports=function(e,t){return a(e)&&s(t)?l(c(e),t):function(n){var a=i(n,e);return void 0===a&&a===t?o(n,e):r(t,a,3)}}},function(e,t,n){var r=n(86);e.exports=function(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}},function(e,t,n){var r=n(317),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,n,r,i){t.push(r?i.replace(o,"$1"):n||e)})),t}));e.exports=a},function(e,t,n){var r=n(318);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},function(e,t,n){var r=n(118);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},function(e,t,n){var r=n(58),i=n(88),o=n(13),a=n(61),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,n){var r=n(180),i=n(322),o=n(130),a=n(68);e.exports=function(e){return o(e)?r(a(e)):i(e)}},function(e,t,n){var r=n(86);e.exports=function(e){return function(t){return r(t,e)}}},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e,t){return null!=e&&n.call(e,t)}},function(e,t,n){var r=n(122),i=n(60),o=n(66),a=n(13),s=n(36),l=n(59),c=n(83),u=n(67),d=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||u(e)||o(e)))return!e.length;var t=i(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(d.call(e,n))return!1;return!0}},function(e,t){e.exports=function(e,t,n,r){var i=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}},function(e,t){e.exports=function(e,t,n,r,i){return i(e,(function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)})),n}},function(e,t,n){var r=n(122),i=n(60),o=n(36),a=n(328),s=n(329);e.exports=function(e){if(null==e)return 0;if(o(e))return a(e)?s(e):e.length;var t=i(e);return"[object Map]"==t||"[object Set]"==t?e.size:r(e).length}},function(e,t,n){var r=n(47),i=n(13),o=n(34);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==r(e)}},function(e,t,n){var r=n(330),i=n(331),o=n(332);e.exports=function(e){return i(e)?o(e):r(e)}},function(e,t,n){var r=n(180)("length");e.exports=r},function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t){var n="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",i="\\ud83c[\\udffb-\\udfff]",o="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+r+"|"+i+")"+"?",c="[\\ufe0e\\ufe0f]?"+l+("(?:\\u200d(?:"+[o,a,s].join("|")+")[\\ufe0e\\ufe0f]?"+l+")*"),u="(?:"+[o+r+"?",r,a,s,n].join("|")+")",d=RegExp(i+"(?="+i+")|"+u+c,"g");e.exports=function(e){for(var t=d.lastIndex=0;d.test(e);)++t;return t}},function(e,t,n){var r=n(119),i=n(166),o=n(127),a=n(37),s=n(84),l=n(13),c=n(59),u=n(64),d=n(23),p=n(67);e.exports=function(e,t,n){var f=l(e),h=f||c(e)||p(e);if(t=a(t,4),null==n){var g=e&&e.constructor;n=h?f?new g:[]:d(e)&&u(g)?i(s(e)):{}}return(h?r:o)(e,(function(e,r,i){return t(n,e,r,i)})),n}},function(e,t,n){var r=n(131),i=n(89),o=n(339),a=n(189),s=i((function(e){return o(r(e,1,a,!0))}));e.exports=s},function(e,t,n){var r=n(58),i=n(66),o=n(13),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(a&&e&&e[a])}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var r=n(126),i=n(152),o=n(49),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=a},function(e,t){var n=Date.now;e.exports=function(e){var t=0,r=0;return function(){var i=n(),o=16-(i-r);if(r=i,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var r=n(173),i=n(340),o=n(344),a=n(174),s=n(345),l=n(129);e.exports=function(e,t,n){var c=-1,u=i,d=e.length,p=!0,f=[],h=f;if(n)p=!1,u=o;else if(d>=200){var g=t?null:s(e);if(g)return l(g);p=!1,u=a,h=new r}else h=t?[]:f;e:for(;++c<d;){var m=e[c],v=t?t(m):m;if(m=n||0!==m?m:0,p&&v==v){for(var b=h.length;b--;)if(h[b]===v)continue e;t&&h.push(v),f.push(m)}else u(h,v,n)||(h!==f&&h.push(v),f.push(m))}return f}},function(e,t,n){var r=n(341);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},function(e,t,n){var r=n(188),i=n(342),o=n(343);e.exports=function(e,t,n){return t==t?o(e,t,n):r(e,i,n)}},function(e,t){e.exports=function(e){return e!=e}},function(e,t){e.exports=function(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}},function(e,t){e.exports=function(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}},function(e,t,n){var r=n(162),i=n(346),o=n(129),a=r&&1/o(new r([,-0]))[1]==1/0?function(e){return new r(e)}:i;e.exports=a},function(e,t){e.exports=function(){}},function(e,t,n){var r=n(88);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},function(e,t){e.exports="2.1.8"},function(e,t,n){var r=n(22),i=n(116);function o(e){return r.map(e.nodes(),(function(t){var n=e.node(t),i=e.parent(t),o={v:t};return r.isUndefined(n)||(o.value=n),r.isUndefined(i)||(o.parent=i),o}))}function a(e){return r.map(e.edges(),(function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.isUndefined(t.name)||(i.name=t.name),r.isUndefined(n)||(i.value=n),i}))}e.exports={write:function(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:a(e)};r.isUndefined(e.graph())||(t.value=r.clone(e.graph()));return t},read:function(e){var t=new i(e.options).setGraph(e.value);return r.each(e.nodes,(function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)})),r.each(e.edges,(function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)})),t}}},function(e,t,n){e.exports={components:n(351),dijkstra:n(191),dijkstraAll:n(352),findCycles:n(353),floydWarshall:n(354),isAcyclic:n(355),postorder:n(356),preorder:n(357),prim:n(358),tarjan:n(193),topsort:n(194)}},function(e,t,n){var r=n(22);e.exports=function(e){var t,n={},i=[];function o(i){r.has(n,i)||(n[i]=!0,t.push(i),r.each(e.successors(i),o),r.each(e.predecessors(i),o))}return r.each(e.nodes(),(function(e){t=[],o(e),t.length&&i.push(t)})),i}},function(e,t,n){var r=n(191),i=n(22);e.exports=function(e,t,n){return i.transform(e.nodes(),(function(i,o){i[o]=r(e,o,t,n)}),{})}},function(e,t,n){var r=n(22),i=n(193);e.exports=function(e){return r.filter(i(e),(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])}))}},function(e,t,n){var r=n(22);e.exports=function(e,t,n){return function(e,t,n){var r={},i=e.nodes();return i.forEach((function(e){r[e]={},r[e][e]={distance:0},i.forEach((function(t){e!==t&&(r[e][t]={distance:Number.POSITIVE_INFINITY})})),n(e).forEach((function(n){var i=n.v===e?n.w:n.v,o=t(n);r[e][i]={distance:o,predecessor:e}}))})),i.forEach((function(e){var t=r[e];i.forEach((function(n){var o=r[n];i.forEach((function(n){var r=o[e],i=t[n],a=o[n],s=r.distance+i.distance;s<a.distance&&(a.distance=s,a.predecessor=i.predecessor)}))}))})),r}(e,t||i,n||function(t){return e.outEdges(t)})};var i=r.constant(1)},function(e,t,n){var r=n(194);e.exports=function(e){try{r(e)}catch(e){if(e instanceof r.CycleException)return!1;throw e}return!0}},function(e,t,n){var r=n(195);e.exports=function(e,t){return r(e,t,"post")}},function(e,t,n){var r=n(195);e.exports=function(e,t){return r(e,t,"pre")}},function(e,t,n){var r=n(22),i=n(116),o=n(192);e.exports=function(e,t){var n,a=new i,s={},l=new o;function c(e){var r=e.v===n?e.w:e.v,i=l.priority(r);if(void 0!==i){var o=t(e);o<i&&(s[r]=n,l.decrease(r,o))}}if(0===e.nodeCount())return a;r.each(e.nodes(),(function(e){l.add(e,Number.POSITIVE_INFINITY),a.setNode(e)})),l.decrease(e.nodes()[0],0);var u=!1;for(;l.size()>0;){if(n=l.removeMin(),r.has(s,n))a.setEdge(n,s[n]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(n).forEach(c)}return a}},function(e,t,n){"use strict";var r=n(11),i=n(399),o=n(402),a=n(403),s=n(20).normalizeRanks,l=n(405),c=n(20).removeEmptyRanks,u=n(406),d=n(407),p=n(408),f=n(409),h=n(418),g=n(20),m=n(30).Graph;e.exports=function(e,t){var n=t&&t.debugTiming?g.time:g.notime;n("layout",(function(){var t=n(" buildLayoutGraph",(function(){return function(e){var t=new m({multigraph:!0,compound:!0}),n=$(e.graph());return t.setGraph(r.merge({},b,S(n,v),r.pick(n,y))),r.forEach(e.nodes(),(function(n){var i=$(e.node(n));t.setNode(n,r.defaults(S(i,x),w)),t.setParent(n,e.parent(n))})),r.forEach(e.edges(),(function(n){var i=$(e.edge(n));t.setEdge(n,r.merge({},A,S(i,k),r.pick(i,E)))})),t}(e)}));n(" runLayout",(function(){!function(e,t){t(" makeSpaceForEdgeLabels",(function(){!function(e){var t=e.graph();t.ranksep/=2,r.forEach(e.edges(),(function(n){var r=e.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(e)})),t(" removeSelfEdges",(function(){!function(e){r.forEach(e.edges(),(function(t){if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))}(e)})),t(" acyclic",(function(){i.run(e)})),t(" nestingGraph.run",(function(){u.run(e)})),t(" rank",(function(){a(g.asNonCompoundGraph(e))})),t(" injectEdgeLabelProxies",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.width&&n.height){var r=e.node(t.v),i={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};g.addDummyNode(e,"edge-proxy",i,"_ep")}}))}(e)})),t(" removeEmptyRanks",(function(){c(e)})),t(" nestingGraph.cleanup",(function(){u.cleanup(e)})),t(" normalizeRanks",(function(){s(e)})),t(" assignRankMinMax",(function(){!function(e){var t=0;r.forEach(e.nodes(),(function(n){var i=e.node(n);i.borderTop&&(i.minRank=e.node(i.borderTop).rank,i.maxRank=e.node(i.borderBottom).rank,t=r.max(t,i.maxRank))})),e.graph().maxRank=t}(e)})),t(" removeEdgeLabelProxies",(function(){!function(e){r.forEach(e.nodes(),(function(t){var n=e.node(t);"edge-proxy"===n.dummy&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))}))}(e)})),t(" normalize.run",(function(){o.run(e)})),t(" parentDummyChains",(function(){l(e)})),t(" addBorderSegments",(function(){d(e)})),t(" order",(function(){f(e)})),t(" insertSelfEdges",(function(){!function(e){var t=g.buildLayerMatrix(e);r.forEach(t,(function(t){var n=0;r.forEach(t,(function(t,i){var o=e.node(t);o.order=i+n,r.forEach(o.selfEdges,(function(t){g.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:o.rank,order:i+ ++n,e:t.e,label:t.label},"_se")})),delete o.selfEdges}))}))}(e)})),t(" adjustCoordinateSystem",(function(){p.adjust(e)})),t(" position",(function(){h(e)})),t(" positionSelfEdges",(function(){!function(e){r.forEach(e.nodes(),(function(t){var n=e.node(t);if("selfedge"===n.dummy){var r=e.node(n.e.v),i=r.x+r.width/2,o=r.y,a=n.x-i,s=r.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:i+2*a/3,y:o-s},{x:i+5*a/6,y:o-s},{x:i+a,y:o},{x:i+5*a/6,y:o+s},{x:i+2*a/3,y:o+s}],n.label.x=n.x,n.label.y=n.y}}))}(e)})),t(" removeBorderNodes",(function(){!function(e){r.forEach(e.nodes(),(function(t){if(e.children(t).length){var n=e.node(t),i=e.node(n.borderTop),o=e.node(n.borderBottom),a=e.node(r.last(n.borderLeft)),s=e.node(r.last(n.borderRight));n.width=Math.abs(s.x-a.x),n.height=Math.abs(o.y-i.y),n.x=a.x+n.width/2,n.y=i.y+n.height/2}})),r.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))}(e)})),t(" normalize.undo",(function(){o.undo(e)})),t(" fixupEdgeLabelCoords",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(r.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(e)})),t(" undoCoordinateSystem",(function(){p.undo(e)})),t(" translateGraph",(function(){!function(e){var t=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,o=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function c(e){var r=e.x,a=e.y,s=e.width,l=e.height;t=Math.min(t,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,a-l/2),o=Math.max(o,a+l/2)}r.forEach(e.nodes(),(function(t){c(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.has(n,"x")&&c(n)})),t-=s,i-=l,r.forEach(e.nodes(),(function(n){var r=e.node(n);r.x-=t,r.y-=i})),r.forEach(e.edges(),(function(n){var o=e.edge(n);r.forEach(o.points,(function(e){e.x-=t,e.y-=i})),r.has(o,"x")&&(o.x-=t),r.has(o,"y")&&(o.y-=i)})),a.width=n-t+s,a.height=o-i+l}(e)})),t(" assignNodeIntersects",(function(){!function(e){r.forEach(e.edges(),(function(t){var n,r,i=e.edge(t),o=e.node(t.v),a=e.node(t.w);i.points?(n=i.points[0],r=i.points[i.points.length-1]):(i.points=[],n=a,r=o),i.points.unshift(g.intersectRect(o,n)),i.points.push(g.intersectRect(a,r))}))}(e)})),t(" reversePoints",(function(){!function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);n.reversed&&n.points.reverse()}))}(e)})),t(" acyclic.undo",(function(){i.undo(e)}))}(t,n)})),n(" updateInputGraph",(function(){!function(e,t){r.forEach(e.nodes(),(function(n){var r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,t.children(n).length&&(r.width=i.width,r.height=i.height))})),r.forEach(e.edges(),(function(n){var i=e.edge(n),o=t.edge(n);i.points=o.points,r.has(o,"x")&&(i.x=o.x,i.y=o.y)})),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)}))}))};var v=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},y=["acyclicer","ranker","rankdir","align"],x=["width","height"],w={width:0,height:0},k=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function S(e,t){return r.mapValues(r.pick(e,t),Number)}function $(e){var t={};return r.forEach(e,(function(e,n){t[n.toLowerCase()]=e})),t}},function(e,t,n){var r=n(149);e.exports=function(e){return r(e,5)}},function(e,t,n){var r=n(89),i=n(57),o=n(90),a=n(48),s=Object.prototype,l=s.hasOwnProperty,c=r((function(e,t){e=Object(e);var n=-1,r=t.length,c=r>2?t[2]:void 0;for(c&&o(t[0],t[1],c)&&(r=1);++n<r;)for(var u=t[n],d=a(u),p=-1,f=d.length;++p<f;){var h=d[p],g=e[h];(void 0===g||i(g,s[h])&&!l.call(e,h))&&(e[h]=u[h])}return e}));e.exports=c},function(e,t,n){var r=n(363)(n(364));e.exports=r},function(e,t,n){var r=n(37),i=n(36),o=n(41);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!i(t)){var l=r(n,3);t=o(t),n=function(e){return l(s[e],e,s)}}var c=e(t,n,a);return c>-1?s[l?t[c]:c]:void 0}}},function(e,t,n){var r=n(188),i=n(37),o=n(365),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var l=null==n?0:o(n);return l<0&&(l=a(s+l,0)),r(e,i(t,3),l)}},function(e,t,n){var r=n(196);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},function(e,t,n){var r=n(367),i=n(23),o=n(61),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=s.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):a.test(e)?NaN:+e}},function(e,t,n){var r=n(368),i=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(i,""):e}},function(e,t){var n=/\s/;e.exports=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}},function(e,t,n){var r=n(128),i=n(169),o=n(48);e.exports=function(e,t){return null==e?e:r(e,i(t),o)}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,n){var r=n(79),i=n(127),o=n(37);e.exports=function(e,t){var n={};return t=o(t,3),i(e,(function(e,i,o){r(n,i,t(e,i,o))})),n}},function(e,t,n){var r=n(132),i=n(373),o=n(49);e.exports=function(e){return e&&e.length?r(e,o,i):void 0}},function(e,t){e.exports=function(e,t){return e>t}},function(e,t,n){var r=n(375),i=n(379)((function(e,t,n){r(e,t,n)}));e.exports=i},function(e,t,n){var r=n(73),i=n(198),o=n(128),a=n(376),s=n(23),l=n(48),c=n(199);e.exports=function e(t,n,u,d,p){t!==n&&o(n,(function(o,l){if(p||(p=new r),s(o))a(t,n,l,u,e,d,p);else{var f=d?d(c(t,l),o,l+"",t,n,p):void 0;void 0===f&&(f=o),i(t,l,f)}}),l)}},function(e,t,n){var r=n(198),i=n(155),o=n(164),a=n(156),s=n(165),l=n(66),c=n(13),u=n(189),d=n(59),p=n(64),f=n(23),h=n(377),g=n(67),m=n(199),v=n(378);e.exports=function(e,t,n,b,y,x,w){var k=m(e,n),A=m(t,n),E=w.get(A);if(E)r(e,n,E);else{var S=x?x(k,A,n+"",e,t,w):void 0,$=void 0===S;if($){var C=c(A),_=!C&&d(A),O=!C&&!_&&g(A);S=A,C||_||O?c(k)?S=k:u(k)?S=a(k):_?($=!1,S=i(A,!0)):O?($=!1,S=o(A,!0)):S=[]:h(A)||l(A)?(S=k,l(k)?S=v(k):f(k)&&!p(k)||(S=s(A))):$=!1}$&&(w.set(A,S),y(S,A,b,x,w),w.delete(A)),r(e,n,S)}}},function(e,t,n){var r=n(47),i=n(84),o=n(34),a=Function.prototype,s=Object.prototype,l=a.toString,c=s.hasOwnProperty,u=l.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=i(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==u}},function(e,t,n){var r=n(65),i=n(48);e.exports=function(e){return r(e,i(e))}},function(e,t,n){var r=n(89),i=n(90);e.exports=function(e){return r((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++r<o;){var l=n[r];l&&e(t,l,r,a)}return t}))}},function(e,t,n){var r=n(132),i=n(200),o=n(49);e.exports=function(e){return e&&e.length?r(e,o,i):void 0}},function(e,t,n){var r=n(132),i=n(37),o=n(200);e.exports=function(e,t){return e&&e.length?r(e,i(t,2),o):void 0}},function(e,t,n){var r=n(31);e.exports=function(){return r.Date.now()}},function(e,t,n){var r=n(384),i=n(387)((function(e,t){return null==e?{}:r(e,t)}));e.exports=i},function(e,t,n){var r=n(385),i=n(178);e.exports=function(e,t){return r(e,t,(function(t,n){return i(e,n)}))}},function(e,t,n){var r=n(86),i=n(386),o=n(87);e.exports=function(e,t,n){for(var a=-1,s=t.length,l={};++a<s;){var c=t[a],u=r(e,c);n(u,c)&&i(l,o(c,e),u)}return l}},function(e,t,n){var r=n(78),i=n(87),o=n(81),a=n(23),s=n(68);e.exports=function(e,t,n,l){if(!a(e))return e;for(var c=-1,u=(t=i(t,e)).length,d=u-1,p=e;null!=p&&++c<u;){var f=s(t[c]),h=n;if("__proto__"===f||"constructor"===f||"prototype"===f)return e;if(c!=d){var g=p[f];void 0===(h=l?l(g,f,p):void 0)&&(h=a(g)?g:o(t[c+1])?[]:{})}r(p,f,h),p=p[f]}return e}},function(e,t,n){var r=n(197),i=n(186),o=n(187);e.exports=function(e){return o(i(e,void 0,r),e+"")}},function(e,t,n){var r=n(389)();e.exports=r},function(e,t,n){var r=n(390),i=n(90),o=n(196);e.exports=function(e){return function(t,n,a){return a&&"number"!=typeof a&&i(t,n,a)&&(n=a=void 0),t=o(t),void 0===n?(n=t,t=0):n=o(n),a=void 0===a?t<n?1:-1:o(a),r(t,n,a,e)}}},function(e,t){var n=Math.ceil,r=Math.max;e.exports=function(e,t,i,o){for(var a=-1,s=r(n((t-e)/(i||1)),0),l=Array(s);s--;)l[o?s:++a]=e,e+=i;return l}},function(e,t,n){var r=n(131),i=n(392),o=n(89),a=n(90),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&a(e,t[0],t[1])?t=[]:n>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,r(t,1),[])}));e.exports=s},function(e,t,n){var r=n(88),i=n(86),o=n(37),a=n(184),s=n(393),l=n(82),c=n(394),u=n(49),d=n(13);e.exports=function(e,t,n){t=t.length?r(t,(function(e){return d(e)?function(t){return i(t,1===e.length?e[0]:e)}:e})):[u];var p=-1;t=r(t,l(o));var f=a(e,(function(e,n,i){return{criteria:r(t,(function(t){return t(e)})),index:++p,value:e}}));return s(f,(function(e,t){return c(e,t,n)}))}},function(e,t){e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},function(e,t,n){var r=n(395);e.exports=function(e,t,n){for(var i=-1,o=e.criteria,a=t.criteria,s=o.length,l=n.length;++i<s;){var c=r(o[i],a[i]);if(c)return i>=l?c:c*("desc"==n[i]?-1:1)}return e.index-t.index}},function(e,t,n){var r=n(61);e.exports=function(e,t){if(e!==t){var n=void 0!==e,i=null===e,o=e==e,a=r(e),s=void 0!==t,l=null===t,c=t==t,u=r(t);if(!l&&!u&&!a&&e>t||a&&s&&c&&!l&&!u||i&&s&&c||!n&&c||!o)return 1;if(!i&&!a&&!u&&e<t||u&&n&&o&&!i&&!a||l&&n&&o||!s&&o||!c)return-1}return 0}},function(e,t,n){var r=n(177),i=0;e.exports=function(e){var t=++i;return r(e)+t}},function(e,t,n){var r=n(78),i=n(398);e.exports=function(e,t){return i(e||[],t||[],r)}},function(e,t){e.exports=function(e,t,n){for(var r=-1,i=e.length,o=t.length,a={};++r<i;){var s=r<o?t[r]:void 0;n(a,e[r],s)}return a}},function(e,t,n){"use strict";var r=n(11),i=n(400);e.exports={run:function(e){var t="greedy"===e.graph().acyclicer?i(e,function(e){return function(t){return e.edge(t).weight}}(e)):function(e){var t=[],n={},i={};function o(a){r.has(i,a)||(i[a]=!0,n[a]=!0,r.forEach(e.outEdges(a),(function(e){r.has(n,e.w)?t.push(e):o(e.w)})),delete n[a])}return r.forEach(e.nodes(),o),t}(e);r.forEach(t,(function(t){var n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,r.uniqueId("rev"))}))},undo:function(e){r.forEach(e.edges(),(function(t){var n=e.edge(t);if(n.reversed){e.removeEdge(t);var r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}}))}}},function(e,t,n){var r=n(11),i=n(30).Graph,o=n(401);e.exports=function(e,t){if(e.nodeCount()<=1)return[];var n=function(e,t){var n=new i,a=0,s=0;r.forEach(e.nodes(),(function(e){n.setNode(e,{v:e,in:0,out:0})})),r.forEach(e.edges(),(function(e){var r=n.edge(e.v,e.w)||0,i=t(e),o=r+i;n.setEdge(e.v,e.w,o),s=Math.max(s,n.node(e.v).out+=i),a=Math.max(a,n.node(e.w).in+=i)}));var c=r.range(s+a+3).map((function(){return new o})),u=a+1;return r.forEach(n.nodes(),(function(e){l(c,u,n.node(e))})),{graph:n,buckets:c,zeroIdx:u}}(e,t||a),c=function(e,t,n){var r,i=[],o=t[t.length-1],a=t[0];for(;e.nodeCount();){for(;r=a.dequeue();)s(e,t,n,r);for(;r=o.dequeue();)s(e,t,n,r);if(e.nodeCount())for(var l=t.length-2;l>0;--l)if(r=t[l].dequeue()){i=i.concat(s(e,t,n,r,!0));break}}return i}(n.graph,n.buckets,n.zeroIdx);return r.flatten(r.map(c,(function(t){return e.outEdges(t.v,t.w)})),!0)};var a=r.constant(1);function s(e,t,n,i,o){var a=o?[]:void 0;return r.forEach(e.inEdges(i.v),(function(r){var i=e.edge(r),s=e.node(r.v);o&&a.push({v:r.v,w:r.w}),s.out-=i,l(t,n,s)})),r.forEach(e.outEdges(i.v),(function(r){var i=e.edge(r),o=r.w,a=e.node(o);a.in-=i,l(t,n,a)})),e.removeNode(i.v),a}function l(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}},function(e,t){function n(){var e={};e._next=e._prev=e,this._sentinel=e}function r(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function i(e,t){if("_next"!==e&&"_prev"!==e)return t}e.exports=n,n.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return r(t),t},n.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&r(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},n.prototype.toString=function(){for(var e=[],t=this._sentinel,n=t._prev;n!==t;)e.push(JSON.stringify(n,i)),n=n._prev;return"["+e.join(", ")+"]"}},function(e,t,n){"use strict";var r=n(11),i=n(20);e.exports={run:function(e){e.graph().dummyChains=[],r.forEach(e.edges(),(function(t){!function(e,t){var n,r,o,a=t.v,s=e.node(a).rank,l=t.w,c=e.node(l).rank,u=t.name,d=e.edge(t),p=d.labelRank;if(c===s+1)return;for(e.removeEdge(t),o=0,++s;s<c;++o,++s)d.points=[],r={width:0,height:0,edgeLabel:d,edgeObj:t,rank:s},n=i.addDummyNode(e,"edge",r,"_d"),s===p&&(r.width=d.width,r.height=d.height,r.dummy="edge-label",r.labelpos=d.labelpos),e.setEdge(a,n,{weight:d.weight},u),0===o&&e.graph().dummyChains.push(n),a=n;e.setEdge(a,l,{weight:d.weight},u)}(e,t)}))},undo:function(e){r.forEach(e.graph().dummyChains,(function(t){var n,r=e.node(t),i=r.edgeLabel;for(e.setEdge(r.edgeObj,i);r.dummy;)n=e.successors(t)[0],e.removeNode(t),i.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height),t=n,r=e.node(t)}))}}},function(e,t,n){"use strict";var r=n(91).longestPath,i=n(201),o=n(404);e.exports=function(e){switch(e.graph().ranker){case"network-simplex":s(e);break;case"tight-tree":!function(e){r(e),i(e)}(e);break;case"longest-path":a(e);break;default:s(e)}};var a=r;function s(e){o(e)}},function(e,t,n){"use strict";var r=n(11),i=n(201),o=n(91).slack,a=n(91).longestPath,s=n(30).alg.preorder,l=n(30).alg.postorder,c=n(20).simplify;function u(e){e=c(e),a(e);var t,n=i(e);for(f(n),d(n,e);t=g(n);)v(n,e,t,m(n,e,t))}function d(e,t){var n=l(e,e.nodes());n=n.slice(0,n.length-1),r.forEach(n,(function(n){!function(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=p(e,t,n)}(e,t,n)}))}function p(e,t,n){var i=e.node(n).parent,o=!0,a=t.edge(n,i),s=0;return a||(o=!1,a=t.edge(i,n)),s=a.weight,r.forEach(t.nodeEdges(n),(function(r){var a,l,c=r.v===n,u=c?r.w:r.v;if(u!==i){var d=c===o,p=t.edge(r).weight;if(s+=d?p:-p,a=n,l=u,e.hasEdge(a,l)){var f=e.edge(n,u).cutvalue;s+=d?-f:f}}})),s}function f(e,t){arguments.length<2&&(t=e.nodes()[0]),h(e,{},1,t)}function h(e,t,n,i,o){var a=n,s=e.node(i);return t[i]=!0,r.forEach(e.neighbors(i),(function(o){r.has(t,o)||(n=h(e,t,n,o,i))})),s.low=a,s.lim=n++,o?s.parent=o:delete s.parent,n}function g(e){return r.find(e.edges(),(function(t){return e.edge(t).cutvalue<0}))}function m(e,t,n){var i=n.v,a=n.w;t.hasEdge(i,a)||(i=n.w,a=n.v);var s=e.node(i),l=e.node(a),c=s,u=!1;s.lim>l.lim&&(c=l,u=!0);var d=r.filter(t.edges(),(function(t){return u===b(e,e.node(t.v),c)&&u!==b(e,e.node(t.w),c)}));return r.minBy(d,(function(e){return o(t,e)}))}function v(e,t,n,i){var o=n.v,a=n.w;e.removeEdge(o,a),e.setEdge(i.v,i.w,{}),f(e),d(e,t),function(e,t){var n=r.find(e.nodes(),(function(e){return!t.node(e).parent})),i=s(e,n);i=i.slice(1),r.forEach(i,(function(n){var r=e.node(n).parent,i=t.edge(n,r),o=!1;i||(i=t.edge(r,n),o=!0),t.node(n).rank=t.node(r).rank+(o?i.minlen:-i.minlen)}))}(e,t)}function b(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}e.exports=u,u.initLowLimValues=f,u.initCutValues=d,u.calcCutValue=p,u.leaveEdge=g,u.enterEdge=m,u.exchangeEdges=v},function(e,t,n){var r=n(11);e.exports=function(e){var t=function(e){var t={},n=0;function i(o){var a=n;r.forEach(e.children(o),i),t[o]={low:a,lim:n++}}return r.forEach(e.children(),i),t}(e);r.forEach(e.graph().dummyChains,(function(n){for(var r=e.node(n),i=r.edgeObj,o=function(e,t,n,r){var i,o,a=[],s=[],l=Math.min(t[n].low,t[r].low),c=Math.max(t[n].lim,t[r].lim);i=n;do{i=e.parent(i),a.push(i)}while(i&&(t[i].low>l||c>t[i].lim));o=i,i=r;for(;(i=e.parent(i))!==o;)s.push(i);return{path:a.concat(s.reverse()),lca:o}}(e,t,i.v,i.w),a=o.path,s=o.lca,l=0,c=a[l],u=!0;n!==i.w;){if(r=e.node(n),u){for(;(c=a[l])!==s&&e.node(c).maxRank<r.rank;)l++;c===s&&(u=!1)}if(!u){for(;l<a.length-1&&e.node(c=a[l+1]).minRank<=r.rank;)l++;c=a[l]}e.setParent(n,c),n=e.successors(n)[0]}}))}},function(e,t,n){var r=n(11),i=n(20);e.exports={run:function(e){var t=i.addDummyNode(e,"root",{},"_root"),n=function(e){var t={};return r.forEach(e.children(),(function(n){!function n(i,o){var a=e.children(i);a&&a.length&&r.forEach(a,(function(e){n(e,o+1)}));t[i]=o}(n,1)})),t}(e),o=r.max(r.values(n))-1,a=2*o+1;e.graph().nestingRoot=t,r.forEach(e.edges(),(function(t){e.edge(t).minlen*=a}));var s=function(e){return r.reduce(e.edges(),(function(t,n){return t+e.edge(n).weight}),0)}(e)+1;r.forEach(e.children(),(function(l){!function e(t,n,o,a,s,l,c){var u=t.children(c);if(!u.length)return void(c!==n&&t.setEdge(n,c,{weight:0,minlen:o}));var d=i.addBorderNode(t,"_bt"),p=i.addBorderNode(t,"_bb"),f=t.node(c);t.setParent(d,c),f.borderTop=d,t.setParent(p,c),f.borderBottom=p,r.forEach(u,(function(r){e(t,n,o,a,s,l,r);var i=t.node(r),u=i.borderTop?i.borderTop:r,f=i.borderBottom?i.borderBottom:r,h=i.borderTop?a:2*a,g=u!==f?1:s-l[c]+1;t.setEdge(d,u,{weight:h,minlen:g,nestingEdge:!0}),t.setEdge(f,p,{weight:h,minlen:g,nestingEdge:!0})})),t.parent(c)||t.setEdge(n,d,{weight:0,minlen:s+l[c]})}(e,t,a,s,o,n,l)})),e.graph().nodeRankFactor=a},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,r.forEach(e.edges(),(function(t){e.edge(t).nestingEdge&&e.removeEdge(t)}))}}},function(e,t,n){var r=n(11),i=n(20);function o(e,t,n,r,o,a){var s={width:0,height:0,rank:a,borderType:t},l=o[t][a-1],c=i.addDummyNode(e,"border",s,n);o[t][a]=c,e.setParent(c,r),l&&e.setEdge(l,c,{weight:1})}e.exports=function(e){r.forEach(e.children(),(function t(n){var i=e.children(n),a=e.node(n);if(i.length&&r.forEach(i,t),r.has(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var s=a.minRank,l=a.maxRank+1;s<l;++s)o(e,"borderLeft","_bl",n,a,s),o(e,"borderRight","_br",n,a,s)}}))}},function(e,t,n){"use strict";var r=n(11);function i(e){r.forEach(e.nodes(),(function(t){o(e.node(t))})),r.forEach(e.edges(),(function(t){o(e.edge(t))}))}function o(e){var t=e.width;e.width=e.height,e.height=t}function a(e){e.y=-e.y}function s(e){var t=e.x;e.x=e.y,e.y=t}e.exports={adjust:function(e){var t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||i(e)},undo:function(e){var t=e.graph().rankdir.toLowerCase();"bt"!==t&&"rl"!==t||function(e){r.forEach(e.nodes(),(function(t){a(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.forEach(n.points,a),r.has(n,"y")&&a(n)}))}(e);"lr"!==t&&"rl"!==t||(!function(e){r.forEach(e.nodes(),(function(t){s(e.node(t))})),r.forEach(e.edges(),(function(t){var n=e.edge(t);r.forEach(n.points,s),r.has(n,"x")&&s(n)}))}(e),i(e))}}},function(e,t,n){"use strict";var r=n(11),i=n(410),o=n(411),a=n(412),s=n(416),l=n(417),c=n(30).Graph,u=n(20);function d(e,t,n){return r.map(t,(function(t){return s(e,t,n)}))}function p(e,t){var n=new c;r.forEach(e,(function(e){var i=e.graph().root,o=a(e,i,n,t);r.forEach(o.vs,(function(t,n){e.node(t).order=n})),l(e,n,o.vs)}))}function f(e,t){r.forEach(t,(function(t){r.forEach(t,(function(t,n){e.node(t).order=n}))}))}e.exports=function(e){var t=u.maxRank(e),n=d(e,r.range(1,t+1),"inEdges"),a=d(e,r.range(t-1,-1,-1),"outEdges"),s=i(e);f(e,s);for(var l,c=Number.POSITIVE_INFINITY,h=0,g=0;g<4;++h,++g){p(h%2?n:a,h%4>=2),s=u.buildLayerMatrix(e);var m=o(e,s);m<c&&(g=0,l=r.cloneDeep(s),c=m)}f(e,l)}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e){var t={},n=r.filter(e.nodes(),(function(t){return!e.children(t).length})),i=r.max(r.map(n,(function(t){return e.node(t).rank}))),o=r.map(r.range(i+1),(function(){return[]}));var a=r.sortBy(n,(function(t){return e.node(t).rank}));return r.forEach(a,(function n(i){if(r.has(t,i))return;t[i]=!0;var a=e.node(i);o[a.rank].push(i),r.forEach(e.successors(i),n)})),o}},function(e,t,n){"use strict";var r=n(11);function i(e,t,n){for(var i=r.zipObject(n,r.map(n,(function(e,t){return t}))),o=r.flatten(r.map(t,(function(t){return r.sortBy(r.map(e.outEdges(t),(function(t){return{pos:i[t.w],weight:e.edge(t).weight}})),"pos")})),!0),a=1;a<n.length;)a<<=1;var s=2*a-1;a-=1;var l=r.map(new Array(s),(function(){return 0})),c=0;return r.forEach(o.forEach((function(e){var t=e.pos+a;l[t]+=e.weight;for(var n=0;t>0;)t%2&&(n+=l[t+1]),l[t=t-1>>1]+=e.weight;c+=e.weight*n}))),c}e.exports=function(e,t){for(var n=0,r=1;r<t.length;++r)n+=i(e,t[r-1],t[r]);return n}},function(e,t,n){var r=n(11),i=n(413),o=n(414),a=n(415);e.exports=function e(t,n,s,l){var c=t.children(n),u=t.node(n),d=u?u.borderLeft:void 0,p=u?u.borderRight:void 0,f={};d&&(c=r.filter(c,(function(e){return e!==d&&e!==p})));var h=i(t,c);r.forEach(h,(function(n){if(t.children(n.v).length){var i=e(t,n.v,s,l);f[n.v]=i,r.has(i,"barycenter")&&(o=n,a=i,r.isUndefined(o.barycenter)?(o.barycenter=a.barycenter,o.weight=a.weight):(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight))}var o,a}));var g=o(h,s);!function(e,t){r.forEach(e,(function(e){e.vs=r.flatten(e.vs.map((function(e){return t[e]?t[e].vs:e})),!0)}))}(g,f);var m=a(g,l);if(d&&(m.vs=r.flatten([d,m.vs,p],!0),t.predecessors(d).length)){var v=t.node(t.predecessors(d)[0]),b=t.node(t.predecessors(p)[0]);r.has(m,"barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+v.order+b.order)/(m.weight+2),m.weight+=2}return m}},function(e,t,n){var r=n(11);e.exports=function(e,t){return r.map(t,(function(t){var n=e.inEdges(t);if(n.length){var i=r.reduce(n,(function(t,n){var r=e.edge(n),i=e.node(n.v);return{sum:t.sum+r.weight*i.order,weight:t.weight+r.weight}}),{sum:0,weight:0});return{v:t,barycenter:i.sum/i.weight,weight:i.weight}}return{v:t}}))}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e,t){var n={};return r.forEach(e,(function(e,t){var i=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};r.isUndefined(e.barycenter)||(i.barycenter=e.barycenter,i.weight=e.weight)})),r.forEach(t.edges(),(function(e){var t=n[e.v],i=n[e.w];r.isUndefined(t)||r.isUndefined(i)||(i.indegree++,t.out.push(n[e.w]))})),function(e){var t=[];function n(e){return function(t){t.merged||(r.isUndefined(t.barycenter)||r.isUndefined(e.barycenter)||t.barycenter>=e.barycenter)&&function(e,t){var n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight);t.weight&&(n+=t.barycenter*t.weight,r+=t.weight);e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}function i(t){return function(n){n.in.push(t),0==--n.indegree&&e.push(n)}}for(;e.length;){var o=e.pop();t.push(o),r.forEach(o.in.reverse(),n(o)),r.forEach(o.out,i(o))}return r.map(r.filter(t,(function(e){return!e.merged})),(function(e){return r.pick(e,["vs","i","barycenter","weight"])}))}(r.filter(n,(function(e){return!e.indegree})))}},function(e,t,n){var r=n(11),i=n(20);function o(e,t,n){for(var i;t.length&&(i=r.last(t)).i<=n;)t.pop(),e.push(i.vs),n++;return n}e.exports=function(e,t){var n=i.partition(e,(function(e){return r.has(e,"barycenter")})),a=n.lhs,s=r.sortBy(n.rhs,(function(e){return-e.i})),l=[],c=0,u=0,d=0;a.sort((p=!!t,function(e,t){return e.barycenter<t.barycenter?-1:e.barycenter>t.barycenter?1:p?t.i-e.i:e.i-t.i})),d=o(l,s,d),r.forEach(a,(function(e){d+=e.vs.length,l.push(e.vs),c+=e.barycenter*e.weight,u+=e.weight,d=o(l,s,d)}));var p;var f={vs:r.flatten(l,!0)};u&&(f.barycenter=c/u,f.weight=u);return f}},function(e,t,n){var r=n(11),i=n(30).Graph;e.exports=function(e,t,n){var o=function(e){var t;for(;e.hasNode(t=r.uniqueId("_root")););return t}(e),a=new i({compound:!0}).setGraph({root:o}).setDefaultNodeLabel((function(t){return e.node(t)}));return r.forEach(e.nodes(),(function(i){var s=e.node(i),l=e.parent(i);(s.rank===t||s.minRank<=t&&t<=s.maxRank)&&(a.setNode(i),a.setParent(i,l||o),r.forEach(e[n](i),(function(t){var n=t.v===i?t.w:t.v,o=a.edge(n,i),s=r.isUndefined(o)?0:o.weight;a.setEdge(n,i,{weight:e.edge(t).weight+s})})),r.has(s,"minRank")&&a.setNode(i,{borderLeft:s.borderLeft[t],borderRight:s.borderRight[t]}))})),a}},function(e,t,n){var r=n(11);e.exports=function(e,t,n){var i,o={};r.forEach(n,(function(n){for(var r,a,s=e.parent(n);s;){if((r=e.parent(s))?(a=o[r],o[r]=s):(a=i,i=s),a&&a!==s)return void t.setEdge(a,s);s=r}}))}},function(e,t,n){"use strict";var r=n(11),i=n(20),o=n(419).positionX;e.exports=function(e){(function(e){var t=i.buildLayerMatrix(e),n=e.graph().ranksep,o=0;r.forEach(t,(function(t){var i=r.max(r.map(t,(function(t){return e.node(t).height})));r.forEach(t,(function(t){e.node(t).y=o+i/2})),o+=i+n}))})(e=i.asNonCompoundGraph(e)),r.forEach(o(e),(function(t,n){e.node(n).x=t}))}},function(e,t,n){"use strict";var r=n(11),i=n(30).Graph,o=n(20);function a(e,t){var n={};return r.reduce(t,(function(t,i){var o=0,a=0,s=t.length,c=r.last(i);return r.forEach(i,(function(t,u){var d=function(e,t){if(e.node(t).dummy)return r.find(e.predecessors(t),(function(t){return e.node(t).dummy}))}(e,t),p=d?e.node(d).order:s;(d||t===c)&&(r.forEach(i.slice(a,u+1),(function(t){r.forEach(e.predecessors(t),(function(r){var i=e.node(r),a=i.order;!(a<o||p<a)||i.dummy&&e.node(t).dummy||l(n,r,t)}))})),a=u+1,o=p)})),i})),n}function s(e,t){var n={};function i(t,i,o,a,s){var c;r.forEach(r.range(i,o),(function(i){c=t[i],e.node(c).dummy&&r.forEach(e.predecessors(c),(function(t){var r=e.node(t);r.dummy&&(r.order<a||r.order>s)&&l(n,t,c)}))}))}return r.reduce(t,(function(t,n){var o,a=-1,s=0;return r.forEach(n,(function(r,l){if("border"===e.node(r).dummy){var c=e.predecessors(r);c.length&&(o=e.node(c[0]).order,i(n,s,l,a,o),s=l,a=o)}i(n,s,n.length,o,t.length)})),n})),n}function l(e,t,n){if(t>n){var r=t;t=n,n=r}var i=e[t];i||(e[t]=i={}),i[n]=!0}function c(e,t,n){if(t>n){var i=t;t=n,n=i}return r.has(e[t],n)}function u(e,t,n,i){var o={},a={},s={};return r.forEach(t,(function(e){r.forEach(e,(function(e,t){o[e]=e,a[e]=e,s[e]=t}))})),r.forEach(t,(function(e){var t=-1;r.forEach(e,(function(e){var l=i(e);if(l.length)for(var u=((l=r.sortBy(l,(function(e){return s[e]}))).length-1)/2,d=Math.floor(u),p=Math.ceil(u);d<=p;++d){var f=l[d];a[e]===e&&t<s[f]&&!c(n,e,f)&&(a[f]=e,a[e]=o[e]=o[f],t=s[f])}}))})),{root:o,align:a}}function d(e,t,n,o,a){var s={},l=function(e,t,n,o){var a=new i,s=e.graph(),l=function(e,t,n){return function(i,o,a){var s,l=i.node(o),c=i.node(a),u=0;if(u+=l.width/2,r.has(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":s=-l.width/2;break;case"r":s=l.width/2}if(s&&(u+=n?s:-s),s=0,u+=(l.dummy?t:e)/2,u+=(c.dummy?t:e)/2,u+=c.width/2,r.has(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":s=c.width/2;break;case"r":s=-c.width/2}return s&&(u+=n?s:-s),s=0,u}}(s.nodesep,s.edgesep,o);return r.forEach(t,(function(t){var i;r.forEach(t,(function(t){var r=n[t];if(a.setNode(r),i){var o=n[i],s=a.edge(o,r);a.setEdge(o,r,Math.max(l(e,t,i),s||0))}i=t}))})),a}(e,t,n,a),c=a?"borderLeft":"borderRight";function u(e,t){for(var n=l.nodes(),r=n.pop(),i={};r;)i[r]?e(r):(i[r]=!0,n.push(r),n=n.concat(t(r))),r=n.pop()}return u((function(e){s[e]=l.inEdges(e).reduce((function(e,t){return Math.max(e,s[t.v]+l.edge(t))}),0)}),l.predecessors.bind(l)),u((function(t){var n=l.outEdges(t).reduce((function(e,t){return Math.min(e,s[t.w]-l.edge(t))}),Number.POSITIVE_INFINITY),r=e.node(t);n!==Number.POSITIVE_INFINITY&&r.borderType!==c&&(s[t]=Math.max(s[t],n))}),l.successors.bind(l)),r.forEach(o,(function(e){s[e]=s[n[e]]})),s}function p(e,t){return r.minBy(r.values(t),(function(t){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return r.forIn(t,(function(t,r){var o=function(e,t){return e.node(t).width}(e,r)/2;n=Math.max(t+o,n),i=Math.min(t-o,i)})),n-i}))}function f(e,t){var n=r.values(t),i=r.min(n),o=r.max(n);r.forEach(["u","d"],(function(n){r.forEach(["l","r"],(function(a){var s,l=n+a,c=e[l];if(c!==t){var u=r.values(c);(s="l"===a?i-r.min(u):o-r.max(u))&&(e[l]=r.mapValues(c,(function(e){return e+s})))}}))}))}function h(e,t){return r.mapValues(e.ul,(function(n,i){if(t)return e[t.toLowerCase()][i];var o=r.sortBy(r.map(e,i));return(o[1]+o[2])/2}))}e.exports={positionX:function(e){var t,n=o.buildLayerMatrix(e),i=r.merge(a(e,n),s(e,n)),l={};r.forEach(["u","d"],(function(o){t="u"===o?n:r.values(n).reverse(),r.forEach(["l","r"],(function(n){"r"===n&&(t=r.map(t,(function(e){return r.values(e).reverse()})));var a=("u"===o?e.predecessors:e.successors).bind(e),s=u(e,t,i,a),c=d(e,t,s.root,s.align,"r"===n);"r"===n&&(c=r.mapValues(c,(function(e){return-e}))),l[o+n]=c}))}));var c=p(e,l);return f(l,c),h(l,e.graph().align)},findType1Conflicts:a,findType2Conflicts:s,addConflict:l,hasConflict:c,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:f,findSmallestWidthAlignment:p,balance:h}},function(e,t,n){var r=n(11),i=n(20),o=n(30).Graph;e.exports={debugOrdering:function(e){var t=i.buildLayerMatrix(e),n=new o({compound:!0,multigraph:!0}).setGraph({});return r.forEach(e.nodes(),(function(t){n.setNode(t,{label:t}),n.setParent(t,"layer"+e.node(t).rank)})),r.forEach(e.edges(),(function(e){n.setEdge(e.v,e.w,{},e.name)})),r.forEach(t,(function(e,t){var i="layer"+t;n.setNode(i,{rank:"same"}),r.reduce(e,(function(e,t){return n.setEdge(e,t,{style:"invis"}),t}))})),n}}},function(e,t){e.exports="0.8.5"},function(e,t,n){"use strict";const r=n(423);angular.module("dbt").directive("modelTree",[function(){return{scope:{tree:"="},templateUrl:r,link:function(e){e.nav_selected="project"}}}])},function(e,t){var n="/components/model_tree/model_tree.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n.menu ul ul {\n margin-left: 12px;\n}\n</style>\n\n<div class="menu">\n <ul>\n <li>\n <a ui-sref="dbt.overview()" class="menu-link menu-main">\n Overview\n </a>\n </li>\n\n <li>\n <div class="switches">\n <div class="switch ">\n <span\n class="switch-label btn btn-sm"\n ng-class="{active: (nav_selected == \'project\')}"\n ng-click="nav_selected = \'project\'">\n <svg class="icn menu-icon-on"><use xlink:href="#icn-dir-on"></use></svg>\n Project\n </span>\n </div>\n <div class="switch">\n <span\n class="switch-label btn btn-sm"\n ng-class="{active: (nav_selected == \'database\')}"\n ng-click="nav_selected = \'database\'">\n <svg class="icn menu-icon-on"><use xlink:href="#icn-tree-on"></use></svg>\n Database\n </span>\n </div>\n <div class="switch">\n <span\n class="switch-label btn btn-sm"\n ng-class="{active: (nav_selected == \'group\')}"\n ng-click="nav_selected = \'group\'">\n <svg class="icn menu-icon-on"><use xlink:href="#icn-filter"></use></svg>\n Group\n </span>\n </div>\n </div>\n </li>\n\n <li>\n <div class="menu" ng-show="nav_selected == \'project\'">\n <div ng-show="tree.sources.length > 0">\n <strong>Sources</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="source"\n ng-repeat="item in tree.sources"></source-tree-line>\n </ul>\n <br />\n </div>\n\n <div ng-show="tree.exposures.length > 0">\n <strong>Exposures</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="exposure"\n ng-repeat="item in tree.exposures"></model-tree-line>\n </ul>\n <br />\n </div>\n \n <div ng-show="tree.metrics.length > 0">\n <strong>Metrics</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="metric"\n ng-repeat="item in tree.metrics"></model-tree-line>\n </ul>\n <br />\n </div>\n \n <div ng-show="tree.semantic_models.length > 0">\n <strong>Semantic Models</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="semantic_model"\n ng-repeat="item in tree.semantic_models"></model-tree-line>\n </ul>\n <br />\n </div>\n\n\n <div ng-show="tree.saved_queries.length > 0">\n <strong>Saved Queries</strong>\n <ul style="display: block">\n <model-tree-line\n item="item"\n resource-type="saved_query"\n ng-repeat="item in tree.saved_queries"></model-tree-line>\n </ul>\n <br />\n </div>\n\n <strong>Projects</strong>\n <ul>\n <model-tree-line\n item="item"\n resource-type="model"\n ng-repeat="item in tree.project"></model-tree-line>\n </ul>\n </div>\n </li>\n\n <li>\n <div class="menu" ng-show="nav_selected == \'database\'">\n <strong>Tables and Views</strong>\n <ul>\n <model-tree-line\n item="item"\n resource-type="model"\n ng-repeat="item in tree.database"></model-tree-line>\n </ul>\n </div>\n </li>\n\n <li>\n <div class="menu" ng-show="nav_selected == \'group\'">\n <strong>Public Models</strong>\n <ul><model-tree-line\n item="item"\n resource-type="model"\n ng-repeat="item in tree.groups"></model-tree-line>\n </ul>\n </div>\n </li>\n </ul>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";const r=n(425),i=n(21);n(426),angular.module("dbt").directive("modelTreeLine",["$state",function(e){return{scope:{item:"=",depth:"<",resourceType:"@"},replace:!0,templateUrl:r,link:function(t,n,r,o){t.depth||(t.depth=0);var a=t.item.name;if(a){var s=i.last(a,15).join(""),l=i.initial(a,s.length).join("");t.name={name:a,start:l,end:s},t.name_start=l,t.name_end=s,t.onFolderClick=function(n){if(n.active=!n.active,"source"==t.resourceType){var r=n.name;e.go("dbt.source_list",{source:r})}else 0===t.depth&&"database"!==n.type&&e.go("dbt.project_overview",{project_name:n.name})},t.activate=function(n){t.$emit("clearSearch"),n.active=!0;var r="dbt."+n.node.resource_type;e.go(r,{unique_id:n.unique_id})},t.getIcon=function(e,t){return"#"+{header:{on:"icn-down",off:"icn-right"},database:{on:"icn-db-on",off:"icn-db"},schema:{on:"icn-tree-on",off:"icn-tree"},table:{on:"icn-doc-on",off:"icn-doc"},folder:{on:"icn-dir-on",off:"icn-dir"},file:{on:"icn-doc-on",off:"icn-doc"},group:{on:"icn-filter",off:"icn-filter"}}[e][t]},t.getClass=function(e){return{active:e.active,"menu-tree":"header"==e.type||"schema"==e.type||"folder"==e.type,"menu-main":"header"==e.type,"menu-node":"file"==e.type||"table"==e.type}}}}}}])},function(e,t){var n="/components/model_tree/model_tree_line.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<li class=\'unselectable\'>\n\n <a ng-if="!item.unique_id"\n class=\'unselectable\'\n ng-class="getClass(item)"\n ng-click="onFolderClick(item)">\n <span class="filename">\n <span class="filename-normal">\n <svg class="icn menu-icon-on"><use xlink:href="{{ getIcon(item.type, \'on\') }}"></use></svg>\n <svg class="icn menu-icon-off"><use xlink:href="{{ getIcon(item.type, \'off\') }}"></use></svg>\n </span>\n <span class="filename-ellip">{{name.start}}</span>\n <span class="filename-normal">{{name.end}}</span>\n </span>\n </a>\n\n <a ng-if="item.unique_id"\n class=\'unselectable\'\n ng-class="getClass(item)"\n ng-click="activate(item)"\n data-nav-unique-id="{{ item.unique_id }}"\n title="{{ name.name }}">\n <span class="filename">\n <span class="filename-normal">\n <svg class="icn menu-icon-on"><use xlink:href="{{ getIcon(item.type, \'on\') }}"></use></svg>\n <svg class="icn menu-icon-off"><use xlink:href="{{ getIcon(item.type, \'off\') }}"></use></svg>\n </span>\n <span class="filename-ellip">{{name.start}}</span>\n <span class="filename-normal">{{name.end}}</span>\n </span>\n </a>\n\n <ul ng-if="item.items">\n <model-tree-line\n resource-type="{{ resourceType }}"\n item="subitem"\n depth="depth + 1"\n ng-repeat="subitem in item.items" />\n </ul>\n</li>\n')}]),e.exports=n},function(e,t,n){var r=n(427);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"\n.unselectable{\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n",""])},function(e,t,n){"use strict";const r=n(8),i=n(429);n(33);n(206),r.module("dbt").directive("docsSearch",["$sce","project",function(e,t){return{scope:{query:"=",results:"=",onSelect:"&"},replace:!0,templateUrl:i,link:function(n){n.max_results=20,n.show_all=!1,n.max_results_columns=3,n.limit_columns={},n.checkboxStatus={show_names:!1,show_descriptions:!1,show_columns:!1,show_column_descriptions:!1,show_code:!1,show_tags:!1},n.limit_search=function(e,t,r){return t<n.max_results||n.show_all},n.getState=function(e){return"dbt."+e.resource_type},n.getModelName=function(e){return"source"==e.resource_type?e.source_name+"."+e.name:"macro"==e.resource_type?e.package_name+"."+e.name:"metric"==e.resource_type?e.label:"semantic_model"==e.resource_type||"saved_query"==e.resource_type?e.name:"exposure"==e.resource_type||"model"==e.resource_type&&null!=e.version?e.label:e.name};function r(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function i(e){return _.words(e.toLowerCase())}n.$watchGroup(["query","checkboxStatus.show_names","checkboxStatus.show_descriptions","checkboxStatus.show_columns","checkboxStatus.show_column_descriptions","checkboxStatus.show_code","checkboxStatus.show_tags"],(function(){n.results=function(e,t){if(!_.some(_.values(t)))return e;let n=[],r=[];const{show_names:i,show_descriptions:o,show_columns:a,show_column_descriptions:s,show_code:l,show_tags:c}=t;return _.each(e,(function(e){_.each(e.matches,(function(t){if(!r.includes(e.model.unique_id)){const u=i&&("name"===t.key||"label"==t.key),d=o&&"description"==t.key,p=a&&"columns"===t.key,f=s&&"column_description"===t.key,h=l&&"raw_code"===t.key,g=c&&"tags"===t.key;(u||d||p||f||h||g)&&(r.push(e.model.unique_id),n.push(e))}}))})),n}(t.search(n.query),n.checkboxStatus)})),n.shorten=function(e){if(null!=e&&e.trim().length>0&&null!=n.query&&n.query.trim().length>0){let t=e.replace(/\s+/g," "),o=r(i(n.query)[0]),a=t.search(new RegExp(o)),s=a-75<0?0:a-75,l=a+75>t.length?t.length:a+75;return"..."+t.substring(s,l)+"..."}return e},n.highlight=function(t){if(!n.query||!t)return e.trustAsHtml(t);let o="("+i(n.query).map(e=>r(e)).join(")|(")+")";return e.trustAsHtml(t.replace(new RegExp(o,"gi"),'<span class="search-result-match">$&</span>'))},n.$watch("query",(function(e,t){0==e.length&&(n.show_all=!1,n.limit_columns={})})),n.columnFilter=function(e){var t=[];let r=i(n.query);for(var o in e)r.every(e=>-1!=o.toLowerCase().indexOf(e))&&t.push(o);return t},n.limitColumns=function(e){return void 0!==n.limit_columns[e]?n.limit_columns[e]:3}}}}])},function(e,t){var n="/components/search/search.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="app-scroll">\n <style>\n .search-result-match {\n background-color: #eee;\n }\n .spacing {\n margin-right: 0.25em;\n }\n .sub-results {\n margin-left: 36px;\n }\n </style>\n <div class="app-title">\n <div class="app-frame app-pad">\n <h1>\n <span class="break">{{ query }}</span>\n <small><span>{{ results.length }}</span> search results</small>\n </h1>\n <input type="checkbox" id="name" ng-model="checkboxStatus.show_names" ng-click="filterResults(results, checkboxStatus)" style = "margin-left:10px;margin-right:5px">\n <label for="name" style="margin-right:25px">Name</label> \n <input type="checkbox" id="desc" ng-model="checkboxStatus.show_descriptions" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="desc" style="margin-right:25px;">Description</label> \n <input type="checkbox" id="column" ng-model="checkboxStatus.show_columns" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="column" style="margin-right:25px;">Column</label> \n <input type="checkbox" id="column_description" ng-model="checkboxStatus.show_column_descriptions" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="column_description" style="margin-right:25px;">Column Description</label>\n <input type="checkbox" id="code" ng-model="checkboxStatus.show_code" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="code" style="margin-right:15px;">SQL</label>\n <input type="checkbox" id="tag" ng-model="checkboxStatus.show_tags" ng-click = "filterResults(results, checkboxStatus)" style = "margin-right:5px">\n <label for="code" style="margin-right:15px;">Tags</label>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <div class="results">\n <div ng-repeat="result in results | filter:limit_search | orderBy:\'overallWeight\':true track by result.model.unique_id"\n data-ui-state="getState(result.model)" data-ui-state-params="{unique_id: result.model.unique_id}"\n ng-click="onSelect()"\n class="result search-result a">\n <div class="result-content">\n <div class="result-icn">\n <svg class="icn "><use xlink:href="#icn-doc"></use></svg>\n </div>\n <div class="result-body">\n <h4 class="a">\n <span ng-bind-html="highlight(getModelName(result.model))"></span>\n <small>{{result.model.resource_type}}</small>\n </h4>\n <p ng-bind-html="highlight(shorten(result.model.description))"></p>\n </div>\n </div>\n <div class="sub-results" ng-show="query.length > 0">\n <span ng-repeat="column in columnFilter(result.model.columns) | limitTo:limitColumns(result.model.unique_id)">\n <span ng-show="$first === true">columns:</span>\n <span ng-bind-html="highlight(column + \',\')" ng-show="$last === false"></span>\n <span ng-bind-html="highlight(column)" ng-show="$last === true"></span>\n </span>\n <a\n ng-show="columnFilter(result.model.columns).length > max_results_columns && !limit_columns[result.model.unique_id]"\n ng-click="$event.stopPropagation(); limit_columns[result.model.unique_id] = 100">Show {{ columnFilter(result.model.columns).length - max_results_columns }} more</a>\n </div>\n <div class="sub-results" ng-show="query.length > 0">\n <span>\n <span ng-bind-html = "highlight(shorten(result.model[\'raw_code\']))"></span>\n </span>\n </div>\n <div class="sub-results" ng-show="query.length > 0">\n <span ng-repeat="tag in result.model.tags">\n <span ng-show="$first === true">tags:</span>\n <span ng-bind-html="highlight(tag + \',\')" ng-show="$last === false"></span>\n <span ng-bind-html="highlight(tag)" ng-show="$last === true"></span>\n </span>\n </div>\n </div>\n <a\n ng-show="results.length >= max_results && !show_all"\n ng-click="show_all = true">Show {{ results.length - max_results }} more</a>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){e.exports={getQuoteChar:function(e){var t=(e||{}).adapter_type;return["bigquery","spark","databricks"].indexOf(t)>=0?"`":'"'}}},function(e,t,n){"use strict";const r=n(432);n(433);const i=n(21);angular.module("dbt").directive("tableDetails",["$sce","$filter","project",function(e,t,n){return{scope:{model:"=",extras:"=",exclude:"<"},templateUrl:r,link:function(e){function r(e,t){if(0==e)return"0 bytes";if(e<1&&(e*=1e6),isNaN(parseFloat(e))||!isFinite(e))return"-";void 0===t&&(t=0);var n=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,Math.floor(n))).toFixed(t)+" "+["bytes","KB","MB","GB","TB","PB"][n]}function o(e,n){return void 0===n&&(n=2),t("number")(100*e,n)+"%"}function a(e,n){return void 0===n&&(n=0),t("number")(e,n)}function s(e){var t,r,o=!e.metadata,a=e.metadata||{};t=e.database?e.database+".":"",r=o?void 0:"source"==e.resource_type?t+e.schema+"."+e.identifier:t+e.schema+"."+e.alias;const s=e.group?function(e){const{name:t,email:r}=n.project.groups[e].owner,i=[];if(t&&i.push(t),r){const e=i.length>0?`<${r}>`:r;i.push(e)}return i.join(" ")}(`group.${e.package_name}.${e.group}`):a.owner,l=!(!e.hasOwnProperty("config")||!e.config.hasOwnProperty("contract"))&&e.config.contract.enforced;var c,u=[{name:"Owner",value:s},{name:"Type",value:o?void 0:(c=a.type,"BASE TABLE"==c?{type:"table",name:"table"}:"LATE BINDING VIEW"==c?{type:"view",name:"late binding view"}:{type:c.toLowerCase(),name:c.toLowerCase()}).name},{name:"Package",value:e.package_name},{name:"Language",value:e.language},{name:"Relation",value:r},{name:"Access",value:e.access},{name:"Version",value:e.version},{name:"Contract",value:l?"Enforced":"Not Enforced"}];return i.filter(u,(function(e){return void 0!==e.value}))}e.details=[],e.extended=[],e.exclude=e.exclude||[],e.meta=null,e._show_expanded=!1,e.show_expanded=function(t){return void 0!==t&&(e._show_expanded=t),e._show_expanded},e.hasData=function(e){return!(!e||i.isEmpty(e))&&(1!=e.length||0!=e[0].include)},e.$watch("model",(function(t,n){i.property(["metadata","type"])(t);var l,c,u,d=t.hasOwnProperty("sources")&&null!=t.sources[0]?t.sources[0].source_meta:null;if(e.meta=t.meta||d,e.details=s(t),e.extended=(l=t.stats,c={rows:a,row_count:a,num_rows:a,max_varchar:a,pct_used:o,size:r,bytes:r,num_bytes:r},u=i.sortBy(i.values(l),"label"),i.map(u,(function(e){var t=i.clone(e),n=c[e.id];return n&&(t.value=n(e.value),t.label=e.label.replace("Approximate","~"),t.label=e.label.replace("Utilization","Used")),t}))),e.extras){var p=i.filter(e.extras,(function(e){return void 0!==e.value&&null!==e.value}));e.details=e.details.concat(p)}e.show_extended=i.where(e.extended,{include:!0}).length>0})),e.queryTag=function(t){e.$emit("query",t)}}}}])},function(e,t){var n="/components/table_details/table_details.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="section-content">\n <h6>Details</h6>\n <div class="panel">\n <div class="panel-body">\n <div class="details">\n <div class="details-content">\n <div class="detail-group" ng-if="hasData(meta)">\n <div class="detail-body">\n <dl class="detail"\n ng-repeat="(k, v) in meta">\n <dt class="detail-label">{{ k }}</dt>\n <dd class="detail-value">{{ v }}</dd>\n </dl>\n </div>\n </div>\n <div class="detail-group">\n <div class="detail-body">\n <dl class=\'detail\' ng-if="model.tags != undefined && exclude.indexOf(\'tags\') == -1">\n <dt class="detail-label">Tags</dt>\n <dd ng-if="model.tags.length > 0" class="detail-value">\n <span ng-repeat="tag in model.tags"><code><a ng-click=queryTag(tag)>{{ tag }}</a></code> </span>\n </dd>\n <dd ng-if="model.tags.length == 0" class="detail-value">untagged</dd>\n </dl>\n <dl class="detail"\n ng-repeat="item in details">\n <dt class="detail-label">{{ item.name }}</dt>\n <dd class="detail-value">{{ item.value }}</dd>\n </dl>\n </div>\n </div>\n <div class="detail-group" ng-if="hasData(extended)">\n <div class="detail-body">\n <dl class="detail"\n ng-repeat="item in extended"\n ng-if="item.include">\n <dt data-toggle="tooltip" title="{{ item.description }}" class="detail-label">{{ item.label }}</dt>\n <dd class="detail-value">{{ item.value }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){var r=n(434);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"\n\n.details-content {\n table-layout: fixed;\n}\n\n.detail-body {\n white-space: nowrap;\n overflow-x: scroll;\n}\n",""])},function(e,t,n){"use strict";const r=n(436),i=n(21);angular.module("dbt").directive("columnDetails",["project",function(e){return{scope:{model:"="},templateUrl:r,link:function(t){t.has_test=function(e,t){return-1!=i.pluck(e.tests,"short").indexOf(t)},t.has_constraint=function(e,t){return!!e.hasOwnProperty("constraints")&&e.constraints.some(e=>e.type===t)},t.has_more_info=function(e){var t=e.tests||[],n=e.description||"",r=e.meta||{},o=e.constraints||[];return t.length||n.length||o.length||!i.isEmpty(r)},t.toggle_column_expanded=function(e){t.has_more_info(e)&&(e.expanded=!e.expanded)},t.getState=function(e){return"dbt."+e.resource_type},t.get_col_name=function(t){return e.caseColumn(t)},t.get_columns=function(e){var t=i.chain(e.columns).values().sortBy("index").value();return i.each(t,(function(e,t){e.index=t})),t}}}}])},function(e,t){var n="/components/column_details/column_details.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="panel">\n <div class="panel-body">\n <div ng-if="_.isEmpty(model.columns)">\n Column information is not available for this seed\n </div>\n <div class="table-responsive"\n style="max-height: 800px; overflow-y: scroll;"\n ng-if="!_.isEmpty(model.columns)">\n <table class="table table-borderless table-hover">\n <thead>\n <tr>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Column</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Type</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Description</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;">Constraints</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;">Data Tests</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;" class=\'text-center\'>More?</th>\n </tr>\n </thead>\n <tbody>\n <tr\n ng-repeat-start="column in get_columns(model) track by column.index"\n ng-click="toggle_column_expanded(column)"\n class="column-row"\n ng-class="{\'column-row-selected\': column.expanded}"\n ng-style="{cursor: has_more_info(column) ? \'pointer\' : \'auto\'}">\n <td>\n <div>\n <span class=\'text-dark\'>{{ get_col_name(column.name) }}</span>\n </div>\n </td>\n <td>\n <span class=\'text-dark\'>{{ column.type }}</p>\n </td>\n <td style="text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; max-width: 1px;">\n <span ng-show="!column.expanded">{{ column.description }}</span>\n </td>\n <td>\n <span class="text-light" ng-show="!column.expanded">\n <span data-toggle="tooltip" title="Not Null" ng-if="has_constraint(column, \'not_null\')">N</span>\n <span data-toggle="tooltip" title="Primary Key" ng-if="has_constraint(column, \'primary_key\')">PK</span>\n <span data-toggle="tooltip" title="Foreign Key" ng-if="has_constraint(column, \'foreign_key\')">FK</span>\n <span data-toggle="tooltip" title="Check" ng-if="has_constraint(column, \'check\')">C</span>\n <span data-toggle="tooltip" title="Custom" ng-if="has_constraint(column, \'custom\')">+</span>\n </span>\n </td>\n <td>\n <span class="text-light" ng-show="!column.expanded">\n <span data-toggle="tooltip" title="Unique" ng-if="has_test(column, \'U\')">U</span>\n <span data-toggle="tooltip" title="Not Null" ng-if="has_test(column, \'N\')">N</span>\n <span data-toggle="tooltip" title="Foreign Key" ng-if="has_test(column, \'F\')">F</span>\n <span data-toggle="tooltip" title="Accepted Values" ng-if="has_test(column, \'A\')">A</span>\n <span data-toggle="tooltip" title="Custom Test" ng-if="has_test(column, \'+\')">+</span>\n </span>\n </td>\n <td class=\'text-center\'>\n <span class=\'text-light\' ng-show="has_more_info(column)">\n <span ng-if="column.expanded">\n <svg class="icn"><use xlink:href="#icn-up"></use></svg>\n </span>\n <span ng-if="!column.expanded">\n <svg class="icn"><use xlink:href="#icn-right"></use></svg>\n </span>\n </span>\n </td>\n </tr>\n <tr ng-repeat-end ng-show="column.expanded" style="background-color: white; padding: 10px">\n <td colspan="5" class="column-expanded">\n <div style="padding: 5px 20px">\n <div ng-show="column.meta">\n <h5>Details</h5>\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail"\n ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="(k, v) in column.meta">\n <dt class="detail-label">{{ k }}</dt>\n <dd class="detail-value">{{ v }}</dd>\n </dl>\n </div>\n </div>\n </div>\n\n <div style="margin-bottom: 15px" ng-if="column.description.length">\n <h5>Description</h5>\n <span marked="column.description"></span>\n </div>\n\n <div ng-show="column.constraints && column.constraints.length" style="margin-bottom: 15px">\n <h5>Constraints</h5>\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail" ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="constraint in column.constraints">\n <dt class="detail-label">Name</dt>\n <dd class="detail-value">{{ constraint.name }}</dd>\n <dt class="detail-label">Type</dt>\n <dd class="detail-value">{{ constraint.type }}</dd>\n <dt class="detail-label">Expression</dt>\n <dd class="detail-value">{{ constraint.expression }}</dd>\n </dl>\n </div>\n </div>\n </div>\n\n <div ng-show="column.tests && column.tests.length" style="margin-bottom: 15px">\n <h5>Generic Data Tests</h5>\n <ul class="list-unstyled" style="margin-top: 2px">\n <li ng-repeat="test in column.tests" ng-switch on="test.short" class=\'text-light\'>\n <span ng-switch-when="F">\n Foreign Key\n <span ng-if="test.fk_model.unique_id">\n <a data-ui-state="getState(test.fk_model)"\n data-ui-state-params="{unique_id: test.fk_model.unique_id}">\n to {{ test.fk_model.name }}\n </a> on <code>{{ test.fk_field }}</code>\n </span>\n </span>\n <span ng-switch-when="P">Primary Key</span>\n <span ng-switch-when="U">Unique</span>\n <span ng-switch-when="N">Not Null</span>\n <span ng-switch-default>{{ test.label }}</span>\n </li>\n </ul>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";const r=n(438);n(33),n(439);function i(e){return"python"===e?"language-python":"language-sql"}angular.module("dbt").directive("codeBlock",["code","$timeout",function(e,t){return{scope:{versions:"=",default:"<",language:"="},restrict:"E",templateUrl:r,link:function(n,r){n.selected_version=n.default,n.language_class=i(n.language),n.source=null,n.setSelected=function(r){n.selected_version=r,n.source=n.versions[r]||"";const i=n.source.trim();n.highlighted=e.highlight(i,n.language),t((function(){Prism.highlightAll()}))},n.titleCase=function(e){return e.charAt(0).toUpperCase()+e.substring(1)},n.copied=!1,n.copy_to_clipboard=function(){e.copy_to_clipboard(n.source),n.copied=!0,setTimeout((function(){n.$apply((function(){n.copied=!1}))}),1e3)},n.$watch("language",(function(e,t){e&&e!=t&&(n.language_class=i(e))}),!0),n.$watch("versions",(function(e,t){if(e)if(n.default)n.setSelected(n.default);else{var r=Object.keys(n.versions);r.length>0&&n.setSelected(r[0])}}),!0)}}}])},function(e,t){var n="/components/code_block/code_block.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<h6>Code</h6>\n<div class="panel">\n <div class="panel-body">\n <ul class="nav nav-tabs">\n <li\n ng-repeat="(version_name, version) in versions"\n ng-class="{active: version_name == selected_version}">\n <a ng-click="setSelected(version_name)">{{ titleCase(version_name) }}</a>\n </li>\n <li class=\'nav-pull-right\'></li>\n <li>\n <a class=\'unselectable\'\n ng-click="copy_to_clipboard()">{{ copied ? \'copied\' : \'copy to clipboard\' }}</a>\n </li>\n </ul>\n <div style="margin-top: 1px">\n <pre style="background-color: white"\n class=\'code line-numbers\'><code class="source-code highlight" ng-class="language_class" ng-bind-html="highlighted"></code></pre>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){var r=n(440);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"pre.code {\n border: none !important;\n overflow-y: visible !important;\n overflow-x: scroll !important;\n padding-bottom: 10px;\n}\n\npre.code code {\n font-family: Monaco, monospace !important;\n font-weight: 400 !important;\n}\n\n.line-numbers-rows {\n border: none !important;\n}\n",""])},function(e,t,n){"use strict";const r=n(442);angular.module("dbt").directive("macroArguments",[function(){return{scope:{macro:"="},templateUrl:r,link:function(e){_.each(e.macro.arguments,(function(e){e.expanded=!1}))}}}])},function(e,t){var n="/components/macro_arguments/index.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n .arg-header {\n background-color: white;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n</style>\n\n<div class="panel">\n <div class="panel-body">\n <div ng-if="macro.arguments.length == 0">\n Details are not available for this macro. This may be due to the fact that this macro doesn\'t have any\n arguments or that they haven\'t been documented yet.\n </div>\n <div ng-if="macro.arguments.length > 0" class="table-responsive" style="max-height: 800px; overflow-y: scroll;">\n <table class="table table-borderless table-hover">\n <thead>\n <tr>\n <th class="arg-header">Argument</th>\n <th class="arg-header">Type</th>\n <th class="arg-header">Description</th>\n <th style="width: 1px;" class=\'text-center\'>More?</th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat-start="arg in macro.arguments" ng-click="arg.expanded = !arg.expanded"\n ng-class="{\'column-row-selected\': arg.expanded}"\n ng-style="{cursor: arg.description ? \'pointer\' : \'auto\'}" class="column-row">\n <td>\n <div>\n <span class=\'text-dark\'>{{ arg.name }}</span>\n </div>\n </td>\n <td>\n <span class=\'text-dark\'>{{ arg.type }}</p>\n </td>\n <td style="text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; max-width: 1px;">\n <span ng-show="!arg.expanded">{{ arg.description }}</span>\n </td>\n <td class=\'text-center\'>\n <span class=\'text-light\' ng-show="arg.description">\n <span ng-if="arg.expanded">\n <svg class="icn">\n <use xlink:href="#icn-up"></use>\n </svg>\n </span>\n <span ng-if="!arg.expanded">\n <svg class="icn">\n <use xlink:href="#icn-right"></use>\n </svg>\n </span>\n </span>\n </td>\n </tr>\n <tr ng-repeat-end ng-show="arg.expanded" style="background-color: white; padding: 10px">\n <td colspan="4" class="column-expanded">\n <div style="padding: 5px 20px">\n <div style="margin-bottom: 15px">\n <h5>Description</h5>\n <span marked="arg.description"></span>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){"use strict";const r=n(444);angular.module("dbt").directive("referenceList",["$state",function(e){return{scope:{references:"=",node:"="},restrict:"E",templateUrl:r,link:function(t){t.selected_type=null,t.setType=function(e){t.selected_type=e,t.nodes=t.references[t.selected_type]},t.getNodeUrl=function(t){var n="dbt."+t.resource_type;return e.href(n,{unique_id:t.unique_id,"#":null})},t.mapResourceType=function(e){return"model"==e?"Models":"seed"==e?"Seeds":"test"==e?"Data Tests":"unit_test"==e?"Unit Tests":"snapshot"==e?"Snapshots":"analysis"==e?"Analyses":"macro"==e?"Macros":"exposure"==e?"Exposures":"metric"==e?"Metrics":"semantic_model"==e?"Semantic Models":"saved_query"==e?"Saved Queries":"operation"==e?"Operations":"Nodes"},t.$watch("references",(function(e){e&&_.size(e)>0?(t.selected_type=_.keys(e)[0],t.has_references=!0,t.nodes=t.references[t.selected_type]):t.has_references=!1}))}}}])},function(e,t){var n="/components/references/index.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="panel">\n <div class="panel-body" ng-if="!has_references">\n No resources reference this {{ node.resource_type }}\n </div>\n <div class="panel-body" ng-if="has_references">\n <ul class="nav nav-tabs">\n <li\n ng-repeat="(resource_type, nodes) in references"\n ng-class="{active: resource_type == selected_type}">\n <a ng-click="setType(resource_type)">\n {{ mapResourceType(resource_type) }}\n </a>\n </li>\n </ul>\n <div style="margin-top: 15px">\n <ul class=\'list-unstyled\'>\n <li ng-repeat="node in nodes">\n <a ng-href="{{ getNodeUrl(node) }}">{{ node.name }}</a>\n </li>\n </ul>\n <div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t,n){n(446),n(448),n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(456),n(457),n(458)},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("ModelCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.copied=!1,e.copy_to_clipboard=function(t){r.copy_to_clipboard(t),e.copied=!0,setTimeout((function(){e.$apply((function(){e.copied=!1}))}),1e3)},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"\n-- compiled code not found for this model\n"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,"\n.nav-tabs li.nav-pull-right {\n flex: 1 0 auto;\n text-align: right;\n}\n\ntr.column-row-selected {\n\n}\n\ntd.column-expanded{\n padding: 0px !important;\n}\n\ntd.column-expanded > div {\n padding: 5px 10px;\n margin-left: 20px;\n height: 100%;\n\n border-left: 1px solid #ccc !important;\n}\n",""])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("SourceCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.versions={"Sample SQL":r.generateSourceSQL(e.model)},e.extra_table_fields=[{name:"Loader",value:e.model.loader},{name:"Source",value:e.model.source_name}]}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("SeedCtrl",["$scope","$state","project","code","$transitions","$anchorScroll","$location",function(e,t,n,r,o,a,s){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.versions={"Example SQL":r.generateSourceSQL(e.model)}}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("SnapshotCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"Compiled SQL is not available for this snapshot"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("TestCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"\n-- compiled code not found for this model\n"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){"use strict";const r=n(8),i=n(21),o=n(24);n(25),r.module("dbt").controller("MacroCtrl",["$scope","$state","project","code","$transitions","$anchorScroll","$location",function(e,t,n,r,a,s,l){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.macro={},n.ready((function(t){let n=t.macros[e.model_uid];if(e.macro=n,e.references=o.getMacroReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=o.getMacroParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.macro.is_adapter_macro){var r=t.metadata.adapter_type;e.versions=n.impls,n.impls[r]?e.default_version=r:n.impls.default?e.default_version="default":e.default_version=i.keys(n.impls)[0]}else e.default_version="Source",e.versions={Source:e.macro.macro_sql}}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("AnalysisCtrl",["$scope","$state","project","code","$transitions","$anchorScroll","$location",function(e,t,n,r,o,a,s){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.default_version="Source",e.versions={Source:"",Compiled:""},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language,e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code}}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("ExposureCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.exposure={},n.ready((function(t){let n=t.nodes[e.model_uid];var r;e.exposure=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length,e.language=n.language,e.exposure.owner.name&&e.exposure.owner.email?r=`${e.exposure.owner.name} <${e.exposure.owner.email}>`:e.exposure.owner.name?r=""+e.exposure.owner.name:e.exposure.owner.email&&(r=""+e.exposure.owner.email),e.extra_table_fields=[{name:"Maturity",value:e.exposure.maturity},{name:"Owner",value:r},{name:"Exposure name",value:e.exposure.name}]}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("MetricCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.metric={},n.ready((function(t){let n=t.nodes[e.model_uid];e.metric=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length;const r="expression"===e.metric.type?"Expression metric":"Aggregate metric";e.extra_table_fields=[{name:"Metric Type",value:r},{name:"Metric name",value:e.metric.name}]}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("SemanticModelCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.semantic_model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.semantic_model=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length;const r="expression"===e.semantic_model.type?"Expression semantic_model":"Aggregate semantic_model";e.extra_table_fields=[{name:"Semantic Model Type",value:r},{name:"Semantic Model name",value:e.semantic_model.name}]}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("SavedQueryCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.project=n,e.codeService=r,e.extra_table_fields=[],e.versions={},e.saved_query={},n.ready((function(t){let n=t.nodes[e.model_uid];e.saved_query=n,e.parents=i.getParents(t,n),e.parentsLength=e.parents.length;const r="expression"===e.saved_query.type?"Expression saved_query":"Aggregate saved_query";e.extra_table_fields=[{name:"Saved Query Type",value:r},{name:"Saved Query name",value:e.saved_query.name}]}))}])},function(e,t,n){"use strict";const r=n(8),i=n(24);n(25),r.module("dbt").controller("OperationCtrl",["$scope","$state","project","code","$anchorScroll","$location",function(e,t,n,r,o,a){e.model_uid=t.params.unique_id,e.tab=t.params.tab,e.project=n,e.codeService=r,e.versions={},e.model={},n.ready((function(t){let n=t.nodes[e.model_uid];e.model=n,e.references=i.getReferences(t,n),e.referencesLength=Object.keys(e.references).length,e.parents=i.getParents(t,n),e.parentsLength=Object.keys(e.parents).length,e.language=n.language;e.versions={Source:e.model.raw_code,Compiled:e.model.compiled_code||"\n-- compiled code not found for this model\n"},setTimeout((function(){o()}),0)}))}])},function(e,t,n){"use strict";n(8).module("dbt").controller("GraphCtrl",["$scope","$state","$window","graph","project","selectorService",function(e,t,n,r,i,o){function a(e){return e&&"source"==e.resource_type?"source:"+e.source_name+"."+e.name:e&&"exposure"==e.resource_type?"exposure:"+e.name:e&&"metric"==e.resource_type?"metric:"+e.name:e&&"semantic_model"==e.resource_type?"semantic_model:"+e.name:e&&"saved_query"==e.resource_type?"saved_query:"+e.name:e&&"model"==e.resource_type&&null!=e.version?e.label:e.name?e.name:"*"}e.graph=r.graph,e.graphService=r,e.graphRendered=function(e){r.setGraphReady(e)},e.$watch((function(){return t.params.unique_id}),(function(e,t){e&&e!=t&&i.find_by_id(e,(function(e){e&&("sidebar"==r.orientation?r.showVerticalGraph(a(e),!1):r.showFullGraph(a(e)))})),e||o.clearViewNode()}))}])},function(e,t,n){"use strict";const r=n(8),i=n(21),o=n(33),a=n(461);n(462),n(206),n(470),n(472),n(475),n(479),r.module("dbt").controller("MainController",["$scope","$route","$state","project","graph","selectorService","trackingService","locationService","$transitions",function(e,t,n,r,s,l,c,u,d){function p(t){e.model_uid=t;var n=r.node(t);n&&l.resetSelection(n)}function f(e){e&&setTimeout((function(){var t=o("*[data-nav-unique-id='"+e+"']");t.length&&t[0].scrollIntoView&&t[0].scrollIntoView({behavior:"smooth",block:"center",inline:"center"})}),1)}e.tree={database:{},project:{},sources:{}},e.search={query:"",results:[],is_focused:!1},e.logo=a,e.model_uid=null,e.project={},o("body").bind("keydown",(function(e){"t"==event.key&&"INPUT"!=event.target.tagName&&(o("#search").focus(),event.preventDefault())})),e.onSearchFocus=function(t,n){e.search.is_focused=n},e.clearSearch=function(){e.search.is_focused=!1,e.search.query="",e.search.results=[],o("#search").blur()},e.$on("clearSearch",(function(){e.clearSearch()})),e.$on("query",(function(t,n){e.search.is_focused=!0,e.search.query=n})),e.onSearchKeypress=function(t){"Escape"==t.key&&(e.clearSearch(),t.preventDefault())},r.getModelTree(n.params.unique_id,(function(t){e.tree.database=t.database,e.tree.project=t.project,e.tree.sources=t.sources,e.tree.exposures=t.exposures,e.tree.metrics=t.metrics,e.tree.semantic_models=t.semantic_models,e.tree.saved_queries=t.saved_queries,e.tree.groups=t.groups,setTimeout((function(){f(e.model_uid)}))})),d.onSuccess({},(function(t,n){var i=t.router.globals.params,o=l.getViewNode(),a=o?o.unique_id:null,s=i.unique_id,u=!0;if(t.from().name==t.to().name&&a==s&&(u=!1),u&&i.unique_id){var d=r.updateSelected(i.unique_id);e.tree.database=d.database,e.tree.groups=d.groups,e.tree.project=d.project,e.tree.sources=d.sources,e.search.query="",p(i.unique_id),setTimeout((function(){f(i.unique_id)}))}u&&c.track_pageview()})),e.$watch("search.query",(function(t){e.search.results=function(t){if(""===e.search.query)return t;let n={name:10,tags:5,description:3,raw_code:2,columns:1};return i.each(t,(function(t){t.overallWeight=0,i.each(Object.keys(n),(function(r){if(null!=t.model[r]){let o=0,a=t.model[r],s=e.search.query.toLowerCase();if("columns"===r)i.each(a,(function(e){if(e.name){let t=e.name.toLowerCase(),n=0;for(;-1!=n;)n=t.indexOf(s,n),-1!=n&&(o++,n++)}}));else if("tags"===r)i.each(a,(function(e){let t=e.toLowerCase(),n=0;for(;-1!=n;)n=t.indexOf(s,n),-1!=n&&(o++,n++)}));else{a=a.toLowerCase();let e=0;for(;-1!=e;)e=a.indexOf(s,e),-1!=e&&(o++,e++)}t.overallWeight+=o*n[r]}}))})),t}(r.search(t))})),r.init(),r.ready((function(t){e.project=t,e.search.results=r.search("");var o=i.unique(i.pluck(i.values(t.nodes),"package_name")).sort(),a=[null];i.each(t.nodes,(function(e){var t=e.tags;a=i.union(a,t).sort()})),l.init({packages:o,tags:a}),p(n.params.unique_id);var d=u.parseState(n.params);d.show_graph&&s.ready((function(){i.assign(l.selection.dirty,d.selected);var e=l.updateSelection();s.updateGraph(e)}));var f=t.metadata||{};c.init({track:f.send_anonymous_usage_stats,project_id:f.project_id})}))}])},function(e,t){e.exports="data:image/svg+xml,%3Csvg width='242' height='90' viewBox='0 0 242 90' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M240.384 74.5122L239.905 75.8589H239.728L239.249 74.5156V75.8589H238.941V74.0234H239.324L239.816 75.3872L240.309 74.0234H240.691V75.8589H240.384V74.5122ZM238.671 74.3003H238.169V75.8589H237.858V74.3003H237.352V74.0234H238.671V74.3003Z' fill='%23262A38'/%3E %3Cpath d='M154.123 13.915V75.3527H141.672V69.0868C140.37 71.2839 138.499 73.0742 136.22 74.2134C133.779 75.434 131.012 76.085 128.246 76.085C124.828 76.1664 121.41 75.1899 118.562 73.2369C115.633 71.2839 113.354 68.5986 111.889 65.425C110.262 61.7631 109.448 57.8572 109.529 53.8698C109.448 49.8825 110.262 45.9765 111.889 42.3961C113.354 39.3038 115.633 36.6185 118.481 34.7469C121.41 32.8753 124.828 31.9801 128.246 32.0615C130.931 32.0615 133.616 32.6311 135.976 33.8517C138.255 34.991 140.126 36.6999 141.428 38.8156V18.0651L154.123 13.915ZM139.15 63.2279C140.777 61.1121 141.672 58.0199 141.672 54.0326C141.672 50.0452 140.859 47.0344 139.15 44.9187C137.441 42.8029 134.755 41.5823 131.989 41.6637C129.222 41.5009 126.537 42.7215 124.746 44.8373C123.038 46.953 122.142 49.9639 122.142 53.8698C122.142 57.8572 123.038 60.9494 124.746 63.1465C126.455 65.3436 129.222 66.5642 131.989 66.4828C135.081 66.4828 137.522 65.3436 139.15 63.2279Z' fill='%23262A38'/%3E %3Cpath d='M198.635 34.6655C201.564 36.5371 203.843 39.2225 205.226 42.3147C206.853 45.8952 207.667 49.8011 207.586 53.7885C207.667 57.7758 206.853 61.7632 205.226 65.3436C203.761 68.5172 201.483 71.2026 198.553 73.1556C195.705 75.0272 192.287 76.0037 188.87 75.9223C186.103 76.0037 183.336 75.3527 180.895 74.0507C178.617 72.9114 176.745 71.1212 175.524 68.9241V75.2713H162.993V18.0651L175.606 13.915V38.9783C176.826 36.7812 178.698 34.991 180.976 33.8517C183.418 32.5498 186.103 31.8988 188.87 31.9801C192.287 31.8988 195.705 32.8753 198.635 34.6655ZM192.45 63.1465C194.159 60.9494 194.973 57.8572 194.973 53.7885C194.973 49.8825 194.159 46.8716 192.45 44.7559C190.741 42.6402 188.381 41.5823 185.289 41.5823C182.523 41.4196 179.837 42.6402 178.047 44.8373C176.338 47.0344 175.524 50.0452 175.524 53.9512C175.524 57.9386 176.338 61.0308 178.047 63.1465C179.756 65.3436 182.441 66.5642 185.289 66.4015C188.056 66.5642 190.741 65.3436 192.45 63.1465Z' fill='%23262A38'/%3E %3Cpath d='M225 42.4774V58.915C225 61.2749 225.651 62.9838 226.791 64.0416C228.093 65.1809 229.801 65.7505 231.592 65.6691C232.975 65.6691 234.44 65.425 235.742 65.0995V74.8644C233.382 75.6782 230.941 76.085 228.499 76.0037C223.292 76.0037 219.304 74.5389 216.537 71.6094C213.771 68.68 212.387 64.5299 212.387 59.1592V23.1103L225 19.0416V33.038H235.742V42.4774H225Z' fill='%23262A38'/%3E %3Cpath d='M86.1754 3.74322C88.2911 5.77758 89.6745 8.46293 90 11.3924C90 12.613 89.6745 13.4268 88.9421 14.9729C88.2098 16.519 79.1772 32.1429 76.4919 36.4557C74.9458 38.9783 74.132 41.9892 74.132 44.9186C74.132 47.9295 74.9458 50.859 76.4919 53.3816C79.1772 57.6944 88.2098 73.3996 88.9421 74.9457C89.6745 76.4919 90 77.2242 90 78.4448C89.6745 81.3743 88.3725 84.0597 86.2568 86.0127C84.2224 88.1284 81.5371 89.5118 78.689 89.7559C77.4684 89.7559 76.6546 89.4304 75.1899 88.698C73.7251 87.9656 57.7758 79.1772 53.4629 76.4919C53.1374 76.3291 52.8119 76.085 52.4051 75.9222L31.085 63.3092C31.5732 67.3779 33.3635 71.2839 36.2929 74.132C36.8626 74.7016 37.4322 75.1899 38.0832 75.6781C37.5949 75.9222 37.0253 76.1664 36.5371 76.4919C32.2242 79.1772 16.519 88.2098 14.9729 88.9421C13.4268 89.6745 12.6944 90 11.3924 90C8.46293 89.6745 5.77758 88.3725 3.82459 86.2568C1.70886 84.2224 0.325497 81.5371 0 78.6076C0.0813743 77.387 0.406872 76.1664 1.05787 75.1085C1.79024 73.5624 10.8228 57.8571 13.5081 53.5443C15.0542 51.0217 15.868 48.0922 15.868 45.0814C15.868 42.0705 15.0542 39.141 13.5081 36.6184C10.8228 32.1429 1.70886 16.4376 1.05787 14.8915C0.406872 13.8336 0.0813743 12.613 0 11.3924C0.325497 8.46293 1.62749 5.77758 3.74322 3.74322C5.77758 1.62749 8.46293 0.325497 11.3924 0C12.613 0.0813743 13.8336 0.406872 14.9729 1.05787C16.2749 1.62749 27.7486 8.30018 33.8517 11.8807L35.2351 12.6944C35.7233 13.0199 36.1302 13.264 36.4557 13.4268L37.1067 13.8336L58.8336 26.6908C58.3454 21.8083 55.8228 17.3327 51.9168 14.3219C52.4051 14.0778 52.9747 13.8336 53.4629 13.5081C57.7758 10.8228 73.481 1.70886 75.0271 1.05787C76.085 0.406872 77.3056 0.0813743 78.6076 0C81.4557 0.325497 84.1411 1.62749 86.1754 3.74322ZM46.1392 50.7776L50.7776 46.1392C51.4286 45.4882 51.4286 44.5118 50.7776 43.8608L46.1392 39.2224C45.4882 38.5714 44.5118 38.5714 43.8608 39.2224L39.2224 43.8608C38.5714 44.5118 38.5714 45.4882 39.2224 46.1392L43.8608 50.7776C44.4304 51.3472 45.4882 51.3472 46.1392 50.7776Z' fill='%23FF694A'/%3E %3C/svg%3E"},function(e,t,n){"use strict";n.r(t);var r=n(63),i=n.n(r);n(463),n(464),n(465),n(466),n(468);const o=n(8),a=(n(33),n(21));window.Prism=i.a,o.module("dbt").factory("code",["$sce",function(e){var t={copied:!1,highlight:function(t,n="sql"){if("sql"==n)var r=i.a.highlight(t,i.a.languages.sql,"sql");else if("python"==n)r=i.a.highlight(t,i.a.languages.python,"python");return e.trustAsHtml(r)},copy_to_clipboard:function(e){var t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)},generateSourceSQL:function(e){var t=["select"],n=a.size(e.columns),r=a.keys(e.columns);a.each(r,(function(e,r){var i=" "+e;r+1!=n&&(i+=","),t.push(i)}));const i=(e.database?e.database+".":"")+e.schema+"."+e.identifier;return t.push("from "+i),t.join("\n")}};return t}])},function(e,t){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},function(e,t){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern://,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},function(e,t){!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(e,t){if("PRE"===e.tagName&&e.classList.contains("line-numbers")){var n=e.querySelector(".line-numbers-rows");if(n){var r=parseInt(e.getAttribute("data-start"),10)||1,i=r+(n.children.length-1);t<r&&(t=r),t>i&&(t=i);var o=t-r;return n.children[o]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},n=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&n===window.innerWidth||(n=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var n=t.element,i=n.parentNode;if(i&&/pre/i.test(i.nodeName)&&!n.querySelector(".line-numbers-rows")&&Prism.util.isActive(n,"line-numbers")){n.classList.remove("line-numbers"),i.classList.add("line-numbers");var o,a=t.code.match(e),s=a?a.length+1:1,l=new Array(s+1).join("<span></span>");(o=document.createElement("span")).setAttribute("aria-hidden","true"),o.className="line-numbers-rows",o.innerHTML=l,i.hasAttribute("data-start")&&(i.style.counterReset="linenumber "+(parseInt(i.getAttribute("data-start"),10)-1)),t.element.appendChild(o),r([i]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(t){if(0!=(t=t.filter((function(e){var t=function(e){if(!e)return null;return window.getComputedStyle?getComputedStyle(e):e.currentStyle||null}(e)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var n=t.map((function(t){var n=t.querySelector("code"),r=t.querySelector(".line-numbers-rows");if(n&&r){var i=t.querySelector(".line-numbers-sizer"),o=n.textContent.split(e);i||((i=document.createElement("span")).className="line-numbers-sizer",n.appendChild(i)),i.innerHTML="0",i.style.display="block";var a=i.getBoundingClientRect().height;return i.innerHTML="",{element:t,lines:o,lineHeights:[],oneLinerHeight:a,sizer:i}}})).filter(Boolean);n.forEach((function(e){var t=e.sizer,n=e.lines,r=e.lineHeights,i=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach((function(e,n){if(e&&e.length>1){var o=t.appendChild(document.createElement("span"));o.style.display="block",o.textContent=e}else r[n]=i}))})),n.forEach((function(e){for(var t=e.sizer,n=e.lineHeights,r=0,i=0;i<n.length;i++)void 0===n[i]&&(n[i]=t.children[r++].getBoundingClientRect().height)})),n.forEach((function(e){var t=e.sizer,n=e.element.querySelector(".line-numbers-rows");t.style.display="none",t.innerHTML="",e.lineHeights.forEach((function(e,t){n.children[t].style.height=e+"px"}))}))}}}()},function(e,t,n){var r=n(467);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,'pre[class*="language-"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*="language-"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n',""])},function(e,t,n){var r=n(469);"string"==typeof r&&(r=[[e.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(40)(r,i);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(39)(!1)).push([e.i,'/**\n * GHColors theme by Avi Aryan (http://aviaryan.in)\n * Inspired by Github syntax coloring\n */\n\ncode[class*="language-"],\npre[class*="language-"] {\n\tcolor: #393A34;\n\tfont-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;\n\tdirection: ltr;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tfont-size: .9em;\n\tline-height: 1.2em;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\npre > code[class*="language-"] {\n\tfont-size: 1em;\n}\n\npre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,\ncode[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {\n\tbackground: #b3d4fc;\n}\n\npre[class*="language-"]::selection, pre[class*="language-"] ::selection,\ncode[class*="language-"]::selection, code[class*="language-"] ::selection {\n\tbackground: #b3d4fc;\n}\n\n/* Code blocks */\npre[class*="language-"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n\tborder: 1px solid #dddddd;\n\tbackground-color: white;\n}\n\n/* Inline code */\n:not(pre) > code[class*="language-"] {\n\tpadding: .2em;\n\tpadding-top: 1px;\n\tpadding-bottom: 1px;\n\tbackground: #f8f8f8;\n\tborder: 1px solid #dddddd;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: #999988;\n\tfont-style: italic;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n.token.string,\n.token.attr-value {\n\tcolor: #e3116c;\n}\n\n.token.punctuation,\n.token.operator {\n\tcolor: #393A34; /* no highlight */\n}\n\n.token.entity,\n.token.url,\n.token.symbol,\n.token.number,\n.token.boolean,\n.token.variable,\n.token.constant,\n.token.property,\n.token.regex,\n.token.inserted {\n\tcolor: #36acaa;\n}\n\n.token.atrule,\n.token.keyword,\n.token.attr-name,\n.language-autohotkey .token.selector {\n\tcolor: #00a4db;\n}\n\n.token.function,\n.token.deleted,\n.language-autohotkey .token.tag {\n\tcolor: #9a050f;\n}\n\n.token.tag,\n.token.selector,\n.language-autohotkey .token.keyword {\n\tcolor: #00009f;\n}\n\n.token.important,\n.token.function,\n.token.bold {\n\tfont-weight: bold;\n}\n\n.token.italic {\n\tfont-style: italic;\n}\n',""])},function(e,t,n){n(33);const r=n(21),i=n(148),o=n(203),a=n(471);angular.module("dbt").factory("graph",["$state","$window","$q","selectorService","project","locationService",function(e,t,n,s,l,c){var u={vertical:{userPanningEnabled:!1,boxSelectionEnabled:!1,maxZoom:1.5},horizontal:{userPanningEnabled:!0,boxSelectionEnabled:!1,maxZoom:1,minZoom:.05}},d={none:{name:"null"},left_right:{name:"dagre",rankDir:"LR",rankSep:200,edgeSep:30,nodeSep:50},top_down:{name:"preset",positions:function(t){var n=e.params.unique_id;if(!n)return{x:0,y:0};var a=p.graph.pristine.dag,s=r.sortBy(o.ancestorNodes(a,n,1)),l=r.sortBy(o.descendentNodes(a,n,1)),c=r.partial(r.includes,s),u=r.partial(r.includes,l),d=a.filterNodes(c),f=a.filterNodes(u);return function(e,t,n,i){var o,a=100/(1+Math.max(t.length,n.length));if(e==i)return{x:0,y:0};if(r.includes(t,i))o={set:t,index:r.indexOf(t,i),factor:-1,type:"parent"};else{if(!r.includes(n,i))return{x:0,y:0};o={set:n,index:r.indexOf(n,i),factor:1,type:"child"}}var s=o.set.length;if("parent"==o.type)var l={x:(0+o.index)*a,y:-200-100*(s-o.index-1)};else l={x:(0+o.index)*a,y:200+100*(s-o.index-1)};return l}(n,i.alg.topsort(d),i.alg.topsort(f).reverse(),t.data("id"))}}},p={loading:!0,loaded:n.defer(),graph_element:null,orientation:"sidebar",expanded:!1,graph:{options:u.vertical,pristine:{nodes:{},edges:{},dag:null},elements:[],layout:d.none,style:[{selector:"edge.vertical",style:{"curve-style":"unbundled-bezier","target-arrow-shape":"triangle-backcurve","target-arrow-color":"#027599","arrow-scale":1.5,"line-color":"#027599",width:3,"target-distance-from-node":"5px","source-endpoint":"0% 50%","target-endpoint":"0deg"}},{selector:"edge.horizontal",style:{"curve-style":"unbundled-bezier","target-arrow-shape":"triangle-backcurve","target-arrow-color":"#006f8a","arrow-scale":1.5,"target-distance-from-node":"10px","source-distance-from-node":"5px","line-color":"#006f8a",width:3,"source-endpoint":"50% 0%","target-endpoint":"270deg"}},{selector:"edge[selected=1]",style:{"line-color":"#bd6bb6","target-arrow-color":"#bd6bb6","z-index":1}},{selector:'node[display="none"]',style:{display:"none"}},{selector:"node.vertical",style:{"text-margin-x":"5px","background-color":"#0094b3","border-color":"#0094b3","font-size":"16px",shape:"ellipse",color:"#fff",width:"5px",height:"5px",padding:"5px",content:"data(label)","font-weight":300,"text-valign":"center","text-halign":"right"}},{selector:"node.horizontal",style:{"background-color":"#0094b3","border-color":"#0094b3","font-size":"24px",shape:"roundrectangle",color:"#fff",width:"label",height:"label",padding:"12px",content:"data(label)","font-weight":300,"font-family":'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif',"text-valign":"center","text-halign":"center",ghost:"yes","ghost-offset-x":"2px","ghost-offset-y":"4px","ghost-opacity":.5,"text-outline-color":"#000","text-outline-width":"1px","text-outline-opacity":.2}},{selector:'node[resource_type="source"]',style:{"background-color":"#5fb825","border-color":"#5fb825"}},{selector:'node[resource_type="exposure"]',style:{"background-color":"#ff694b","border-color":"#ff694b"}},{selector:'node[resource_type="metric"]',style:{"background-color":"#ff5688","border-color":"#ff5688"}},{selector:'node[resource_type="semantic_model"]',style:{"background-color":"#ffa8c2","border-color":"#ffa8c2"}},{selector:'node[resource_type="saved_query"]',style:{"background-color":"#ff7f50","border-color":"#ff7f50"}},{selector:'node[language="python"]',style:{"background-color":"#6a5acd","border-color":"#6a5acd"}},{selector:"node[node_color]",style:{"background-color":"data(node_color)","border-color":"data(node_color)"}},{selector:"node[selected=1]",style:{"background-color":"#bd6bb6","border-color":"#bd6bb6"}},{selector:"node.horizontal[selected=1]",style:{"background-color":"#88447d","border-color":"#88447d"}},{selector:"node.horizontal.dirty",style:{"background-color":"#919599","border-color":"#919599"}},{selector:"node[hidden=1]",style:{"background-color":"#919599","border-color":"#919599","background-opacity":.5}},{selector:'node[access="private"]',style:{"background-opacity":.2,"border-width":2,ghost:"no"}}],ready:function(e){console.log("graph ready")}}};function f(e,t,n){var i=r.map(e,(function(e){return p.graph.pristine.nodes[e]})),o=[];r.flatten(r.each(e,(function(t){var n=p.graph.pristine.edges[t];r.each(n,(function(t){r.includes(e,t.data.target)&&r.includes(e,t.data.source)&&o.push(t)}))})));var s=r.compact(i).concat(r.compact(o));return r.each(p.graph.elements,(function(e){e.data.display="none",e.data.selected=0,e.data.hidden=0,e.classes=n})),r.each(s,(function(e){e.data.display="element",e.classes=n,t&&r.includes(t,e.data.unique_id)&&(e.data.selected=1),r.get(e,["data","docs","show"],!0)||(e.data.hidden=1);var i=r.get(e,["data","docs","node_color"]);i&&a.isValidColor(i)&&(e.data.node_color=i)})),p.graph.elements=r.filter(s,(function(e){return"element"==e.data.display})),e}function h(e,t,n){var r=p.graph.pristine.dag;if(r){var i=p.graph.pristine.nodes,o=s.selectNodes(r,i,e),a=n?o.matched:[];return f(o.selected,a,t)}}return p.setGraphReady=function(e){p.loading=!1,p.loaded.resolve(),p.graph_element=e},p.ready=function(e){p.loaded.promise.then((function(){e(p)}))},p.manifest={},p.packages=[],p.selected_node=null,p.getCanvasHeight=function(){return.8*t.innerHeight+"px"},l.ready((function(e){p.manifest=e,p.packages=r.uniq(r.map(p.manifest.nodes,"package_name")),r.each(r.filter(p.manifest.nodes,(function(e){var t=r.includes(["model","seed","source","snapshot","analysis","exposure","metric","semantic_model","operation","saved_query"],e.resource_type),n="test"===e.resource_type&&!e.hasOwnProperty("test_metadata"),i="unit_test"===e.resource_type;return t||n||i})),(function(e){var t={group:"nodes",data:r.assign(e,{parent:e.package_name,id:e.unique_id,is_group:"false"})};p.graph.pristine.nodes[e.unique_id]=t})),r.each(p.manifest.parent_map,(function(e,t){r.each(e,(function(e){var n=p.manifest.nodes[e],i=p.manifest.nodes[t];if(r.includes(["model","source","seed","snapshot","metric","semantic_model","saved_query"],n.resource_type)&&("test"!=i.resource_type||!i.hasOwnProperty("test_metadata"))){var o=n.unique_id+"|"+i.unique_id,a={group:"edges",data:{source:n.unique_id,target:i.unique_id,unique_id:o}},s=i.unique_id;p.graph.pristine.edges[s]||(p.graph.pristine.edges[s]=[]),p.graph.pristine.edges[s].push(a)}}))}));var t=new i.Graph({directed:!0});r.each(p.graph.pristine.nodes,(function(e){t.setNode(e.data.unique_id,e.data.name)})),r.each(p.graph.pristine.edges,(function(e){r.each(e,(function(e){t.setEdge(e.data.source,e.data.target)}))})),p.graph.pristine.dag=t,p.graph.elements=r.flatten(r.values(p.graph.pristine.nodes).concat(r.values(p.graph.pristine.edges))),f(t.nodes())})),p.hideGraph=function(){p.orientation="sidebar",p.expanded=!1},p.showVerticalGraph=function(e,t){p.orientation="sidebar",t&&(p.expanded=!0);var n=h(r.assign({},s.options,{include:"+"+e+"+",exclude:"",hops:1}),"vertical",!0);return p.graph.layout=d.top_down,p.graph.options=u.vertical,n},p.showFullGraph=function(e){p.orientation="fullscreen",p.expanded=!0;var t=r.assign({},s.options);e?(t.include="+"+e+"+",t.exclude=""):(t.include="",t.exclude="");var n=h(t,"horizontal",!0);return p.graph.layout=d.left_right,p.graph.options=u.horizontal,c.setState(t),n},p.updateGraph=function(e){p.orientation="fullscreen",p.expanded=!0;var t=h(e,"horizontal",!1);return p.graph.layout=d.left_right,p.graph.options=u.horizontal,c.setState(e),t},p.deselectNodes=function(){"fullscreen"==p.orientation&&p.graph_element.elements().data("selected",0)},p.selectNode=function(e){if("fullscreen"==p.orientation){p.graph.pristine.nodes[e];var t=p.graph.pristine.dag,n=r.indexBy(o.ancestorNodes(t,e)),i=r.indexBy(o.descendentNodes(t,e));n[e]=e,i[e]=e;var a=p.graph_element;r.each(p.graph.elements,(function(t){var r=a.$id(t.data.id);n[t.data.source]&&n[t.data.target]||i[t.data.source]&&i[t.data.target]||t.data.unique_id==e?r.data("selected",1):r.data("selected",0)}))}},p.markDirty=function(e){p.markAllClean(),r.each(e,(function(e){p.graph_element.$id(e).addClass("dirty")}))},p.markAllClean=function(){p.graph_element&&p.graph_element.elements().removeClass("dirty")},p}])},function(e,t,n){"use strict";n.r(t),n.d(t,"isValidColor",(function(){return i}));const r=new Set(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);function i(e){if(!e)return!1;const t=e.trim().toLowerCase();if(""===t)return!1;const n=t.match(/^#([A-Fa-f0-9]{3}){1,2}$/),i=r.has(t);return Boolean(n)||i}},function(e,t,n){n(33);const r=n(21),i=n(473);angular.module("dbt").factory("selectorService",["$state",function(e){var t={include:"",exclude:"",packages:[],tags:[null],resource_types:["model","seed","snapshot","source","test","unit_test","analysis","exposure","metric","semantic_model","saved_query"],depth:1},n={view_node:null,selection:{clean:r.clone(t),dirty:r.clone(t)},options:{packages:[],tags:[null],resource_types:["model","seed","snapshot","source","test","analysis","exposure","metric","semantic_model","unit_test","saved_query"]},init:function(e){r.each(e,(function(e,r){n.options[r]=e,t[r]=e,n.selection.clean[r]=e,n.selection.dirty[r]=e}))},resetSelection:function(e){var i={include:e&&r.includes(["model","seed","snapshot"],e.resource_type)?"+"+e.name+"+":e&&"source"==e.resource_type?"+source:"+e.source_name+"."+e.name+"+":e&&"exposure"==e.resource_type?"+exposure:"+e.name:e&&"metric"==e.resource_type?"+metric:"+e.name:e&&"semantic_model"==e.resource_type?"+semantic_model:"+e.name:e&&"saved_query"==e.resource_type?"+saved_query:"+e.name:e&&r.includes(["analysis","test","unit_test"],e.resource_type)?"+"+e.name:""},o=r.assign({},t,i);n.selection.clean=r.clone(o),n.selection.dirty=r.clone(o),n.view_node=e},getViewNode:function(){return n.view_node},excludeNode:function(e,t){var r,i=n.selection.dirty.exclude,o=t.parents?"+":"",a=t.children?"+":"",s=i.length>0?" ":"";"source"==e.resource_type?(o+="source:",r=e.source_name+"."+e.name):["exposure","metric","semantic_model","saved_query"].indexOf(e.resource_type)>-1?(o+=e.resource_type+":",r=e.name):r=e.name;var l=i+s+o+r+a;return n.selection.dirty.exclude=l,n.updateSelection()},selectSource:function(e,t){var r="source:"+e+(t.children?"+":"");return n.selection.dirty.include=r,n.updateSelection()},clearViewNode:function(){n.view_node=null},isDirty:function(){return!r.isEqual(n.selection.clean,n.selection.dirty)},updateSelection:function(){return n.selection.clean=r.clone(n.selection.dirty),n.selection.clean},selectNodes:function(e,t,n){return i.selectNodes(e,t,n)}};return n}])},function(e,t,n){const r=n(21),i=n(474);function o(e,t){return t||(t=" "),r.filter(r.uniq(e.split(t)),(function(e){return e.length>0}))}function a(e){var t={raw:e,select_at:!1,select_children:!1,children_depth:null,select_parents:!1,parents_depth:null};const n=new RegExp(""+/^/.source+/(?<childs_parents>(\@))?/.source+/(?<parents>((?<parents_depth>(\d*))\+))?/.source+/((?<method>([\w.]+)):)?/.source+/(?<value>(.*?))/.source+/(?<children>(\+(?<children_depth>(\d*))))?/.source+/$/.source).exec(e).groups;t.select_at="@"==n.childs_parents,t.select_parents=!!n.parents,t.select_children=!!n.children,n.parents_depth&&(t.parents_depth=parseInt(n.parents_depth)),n.children_depth&&(t.children_depth=parseInt(n.children_depth));var r=n.method,i=n.value;return r?-1!=r.indexOf(".")&&([r,selector_modifier]=r.split(".",2),i={config:selector_modifier,value:i}):r="implicit",t.selector_type=r,t.selector_value=i,t}function s(e){var t=o(e," ");return r.map(t,(function(e){var t=o(e,",");return t.length>1?{method:"intersect",selectors:r.map(t,a)}:{method:"none",selectors:r.map([e],a)}}))}function l(e,t){var n=s(e),i=null,o=null;return r.each(n,(function(e){var n="intersect"==e.method?r.intersection:r.union;r.each(e.selectors,(function(e){var r=t(e);null===i?(i=r.matched,o=r.selected):(i=n(i,r.matched),o=n(o,r.selected))}))})),{matched:i||[],selected:o||[]}}e.exports={splitSpecs:o,parseSpec:a,parseSpecs:s,buildSpec:function(e,t,n){return{include:s(e),exclude:s(t),hops:n}},applySpec:l,selectNodes:function(e,t,n){n.include,n.exclude;var o,a=r.partial(i.getNodesFromSpec,e,t,n.hops);r.values(t),o=0==n.include.trim().length?{selected:e.nodes(),matched:[]}:l(n.include,a);var s=l(n.exclude,a),c=o.selected,u=o.matched;c=r.difference(c,s.selected),u=r.difference(u,s.matched);var d=[];return r.each(c,(function(e){var i=t[e];i.data.tags||(i.data.tags=[]);var o=r.includes(n.packages,i.data.package_name),a=r.intersection(n.tags,i.data.tags).length>0,s=r.includes(n.tags,null)&&0==i.data.tags.length,l=r.includes(n.resource_types,i.data.resource_type);o&&(a||s)&&l||d.push(i.data.unique_id)})),{selected:r.difference(c,d),matched:r.difference(u,d)}}}},function(e,t,n){const r=n(21),i=n(203);var o="fqn",a="tag",s="source",l="exposure",c="metric",u="semantic_model",d="saved_query",p="group",f="path",h="file",g="package",m="config",v="test_name",b="test_type",y={};function x(e,t,n){var r=e.slice(-1)[0],i=e.slice(-2,-1)[0];if(t===r)return!0;if(version_options=[i,i+"_"+r,i+"."+r],n&&version_options.includes(t))return!0;var o=e.reduce((e,t)=>e.concat(t.split(".")),[]),a=t.split(".");if(o.length<a.length)return!1;for(var s=0;s<a.length;s++){var l=a[s];if("*"==l)return!0;if(o[s]!=l)return!1}return!0}function w(e,t){var n=[];return r.each(e,(function(e){var i=e.data,o=i.fqn,a=null!==i.version;if(o&&"source"!=i.resource_type&&"exposure"!=i.resource_type&&"metric"!=i.resource_type&&"semantic_model"!=i.resource_type&&"saved_query"!=i.resource_type){var s=r.rest(o);(x(o,t,a)||x(s,t,a))&&n.push(i)}})),r.uniq(n)}function k(e,t){var n=[],i=t.split("/");return r.each(e,(function(e){var t=(e.data.original_file_path||"").split("/"),o=!0;r.each(i,(function(e,n){"*"==e||""==e||e!=t[n]&&(o=!1)})),o&&n.push(e.data)})),n}function A(e,t){var n=[];return r.each(e,(function(e){var i=e.data.original_file_path.split("/");r.last(i)==t&&n.push(e.data)})),n}function E(e,t){var n=[];return r.each(e,(function(e){var i=e.data.tags;r.includes(i,t)&&n.push(e.data)})),n}function S(e,t){var n=[];return r.each(e,(function(e){e.data.package_name==t&&n.push(e.data)})),n}function $(e,t){var n=[];return r.each(e,(function(e){var r=e.data;r.config&&r.config[t.config]==t.value&&n.push(r)})),n}function C(e,t){var n=[];return r.each(e,(function(e){var r=e.data;r.test_metadata&&r.test_metadata.name==t&&n.push(r)})),n}function _(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("test"!=r.resource_type)return!1;(r.hasOwnProperty("test_metadata")&&["schema","generic"].indexOf(t)>-1||!r.hasOwnProperty("test_metadata")&&["data","singular"].indexOf(t)>-1)&&n.push(r)})),n}function O(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("source"==r.resource_type){var i,o,a=r.source_name,s=r.name;-1!=t.indexOf(".")?[i,o]=t.split(".",2):(i=t,o=null),("*"==i||i==a&&"*"===o||i==a&&o===s||i==a&&null===o)&&n.push(e.data)}})),n}y["implicit"]=function(e,t){var n=w(e,t),i=k(e,t),o=[];t.toLowerCase().endsWith(".sql")&&(o=A(e,t));var a=r.uniq([].concat(r.map(n,"unique_id"),r.map(i,"unique_id"),r.map(o,"unique_id")));return r.map(a,t=>e[t].data)},y[o]=w,y[a]=E,y[s]=O,y[l]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("exposure"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},y[c]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("metric"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},y[u]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("semantic_model"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},y[d]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;if("saved_query"==r.resource_type){var i=r.name;("*"==t||t==i)&&n.push(e.data)}})),n},y[p]=function(e,t){var n=[];return r.each(e,(function(e){var r=e.data;r.group==t&&n.push(r)})),n},y[f]=k,y[h]=A,y[g]=S,y[m]=$,y[v]=C,y[b]=_,e.exports={isFQNMatch:x,getNodesByFQN:w,getNodesByTag:E,getNodesBySource:O,getNodesByPath:k,getNodesByPackage:S,getNodesByConfig:$,getNodesByTestName:C,getNodesByTestType:_,getNodesFromSpec:function(e,t,n,o){const a=y[o.selector_type];if(!a)return{selected:[],matched:[]};var s=a(t,o.selector_value),l=[],c=[];return r.each(s,(function(t){var a=t.unique_id;c.push(t.unique_id);var s=[],u=[],d=[];if(o.select_at&&(d=r.union(i.selectAt(e,a))),o.select_parents){var p=n||o.parents_depth;s=i.ancestorNodes(e,a,p)}if(o.select_children){p=n||o.children_depth;u=i.descendentNodes(e,a,p)}l=r.union([a],l,u,s,d)})),{selected:l,matched:c}}}},function(e,t,n){const r=n(8);n(476);r.module("dbt").factory("trackingService",["$location","selectorService","$rootScope",function(e,t,n){var r={initialized:!1,snowplow:null,project_id:null,init:function(e){r.initialized||(r.initialized=!0,r.project_id=e.project_id,!0===e.track&&r.turn_on_tracking())},isHosted:function(){return hostedgetdbt=window.location.hostname.indexOf(".getdbt.com")>-1,hosteddbt=window.location.hostname.indexOf(".dbt.com")>-1,hostedgetdbt||hosteddbt},turn_on_tracking:function(){var e,t,n,i,o,a;e=window,t=document,n="script",e[i="snowplow"]||(e.GlobalSnowplowNamespace=e.GlobalSnowplowNamespace||[],e.GlobalSnowplowNamespace.push(i),e[i]=function(){(e[i].q=e[i].q||[]).push(arguments)},e[i].q=e[i].q||[],o=t.createElement(n),a=t.getElementsByTagName(n)[0],o.async=1,o.src="//d1fc8wv8zag5ca.cloudfront.net/2.9.0/sp.js",a.parentNode.insertBefore(o,a));var s={appId:"dbt-docs",forceSecureTracker:!0,respectDoNotTrack:!0,userFingerprint:!1,contexts:{webPage:!0}};r.isHosted()&&(window.location.hostname.indexOf(".getdbt.com")>-1?s.cookieDomain=".getdbt.com":s.cookieDomain=".dbt.com"),r.snowplow=window.snowplow,r.snowplow("newTracker","sp","fishtownanalytics.sinter-collect.com",s),r.snowplow("enableActivityTracking",30,30),r.track_pageview()},fuzzUrls:function(){r.isHosted()||(r.snowplow("setCustomUrl","https://fuzzed.getdbt.com/"),r.snowplow("setReferrerUrl","https://fuzzed.getdbt.com/"))},getContext:function(){return[{schema:"iglu:com.dbt/dbt_docs/jsonschema/1-0-0",data:{is_cloud_hosted:r.isHosted(),core_project_id:r.project_id}}]},track_pageview:function(){if(r.snowplow){r.fuzzUrls();r.snowplow("trackPageView",null,r.getContext())}},track_event:function(e,t,n,i){r.snowplow&&(r.fuzzUrls(),r.snowplow("trackStructEvent","dbt-docs",e,t,n,i,r.getContext()))},track_graph_interaction:function(e,t){r.snowplow&&(r.fuzzUrls(),r.track_event("graph","interact",e,t))}};return r}])},function(e,t,n){var r,i,o,a,s;r=n(477),i=n(204).utf8,o=n(478),a=n(204).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?a.stringToBytes(e):i.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=r.bytesToWords(e),l=8*e.length,c=1732584193,u=-271733879,d=-1732584194,p=271733878,f=0;f<n.length;f++)n[f]=16711935&(n[f]<<8|n[f]>>>24)|4278255360&(n[f]<<24|n[f]>>>8);n[l>>>5]|=128<<l%32,n[14+(l+64>>>9<<4)]=l;var h=s._ff,g=s._gg,m=s._hh,v=s._ii;for(f=0;f<n.length;f+=16){var b=c,y=u,x=d,w=p;c=h(c,u,d,p,n[f+0],7,-680876936),p=h(p,c,u,d,n[f+1],12,-389564586),d=h(d,p,c,u,n[f+2],17,606105819),u=h(u,d,p,c,n[f+3],22,-1044525330),c=h(c,u,d,p,n[f+4],7,-176418897),p=h(p,c,u,d,n[f+5],12,1200080426),d=h(d,p,c,u,n[f+6],17,-1473231341),u=h(u,d,p,c,n[f+7],22,-45705983),c=h(c,u,d,p,n[f+8],7,1770035416),p=h(p,c,u,d,n[f+9],12,-1958414417),d=h(d,p,c,u,n[f+10],17,-42063),u=h(u,d,p,c,n[f+11],22,-1990404162),c=h(c,u,d,p,n[f+12],7,1804603682),p=h(p,c,u,d,n[f+13],12,-40341101),d=h(d,p,c,u,n[f+14],17,-1502002290),c=g(c,u=h(u,d,p,c,n[f+15],22,1236535329),d,p,n[f+1],5,-165796510),p=g(p,c,u,d,n[f+6],9,-1069501632),d=g(d,p,c,u,n[f+11],14,643717713),u=g(u,d,p,c,n[f+0],20,-373897302),c=g(c,u,d,p,n[f+5],5,-701558691),p=g(p,c,u,d,n[f+10],9,38016083),d=g(d,p,c,u,n[f+15],14,-660478335),u=g(u,d,p,c,n[f+4],20,-405537848),c=g(c,u,d,p,n[f+9],5,568446438),p=g(p,c,u,d,n[f+14],9,-1019803690),d=g(d,p,c,u,n[f+3],14,-187363961),u=g(u,d,p,c,n[f+8],20,1163531501),c=g(c,u,d,p,n[f+13],5,-1444681467),p=g(p,c,u,d,n[f+2],9,-51403784),d=g(d,p,c,u,n[f+7],14,1735328473),c=m(c,u=g(u,d,p,c,n[f+12],20,-1926607734),d,p,n[f+5],4,-378558),p=m(p,c,u,d,n[f+8],11,-2022574463),d=m(d,p,c,u,n[f+11],16,1839030562),u=m(u,d,p,c,n[f+14],23,-35309556),c=m(c,u,d,p,n[f+1],4,-1530992060),p=m(p,c,u,d,n[f+4],11,1272893353),d=m(d,p,c,u,n[f+7],16,-155497632),u=m(u,d,p,c,n[f+10],23,-1094730640),c=m(c,u,d,p,n[f+13],4,681279174),p=m(p,c,u,d,n[f+0],11,-358537222),d=m(d,p,c,u,n[f+3],16,-722521979),u=m(u,d,p,c,n[f+6],23,76029189),c=m(c,u,d,p,n[f+9],4,-640364487),p=m(p,c,u,d,n[f+12],11,-421815835),d=m(d,p,c,u,n[f+15],16,530742520),c=v(c,u=m(u,d,p,c,n[f+2],23,-995338651),d,p,n[f+0],6,-198630844),p=v(p,c,u,d,n[f+7],10,1126891415),d=v(d,p,c,u,n[f+14],15,-1416354905),u=v(u,d,p,c,n[f+5],21,-57434055),c=v(c,u,d,p,n[f+12],6,1700485571),p=v(p,c,u,d,n[f+3],10,-1894986606),d=v(d,p,c,u,n[f+10],15,-1051523),u=v(u,d,p,c,n[f+1],21,-2054922799),c=v(c,u,d,p,n[f+8],6,1873313359),p=v(p,c,u,d,n[f+15],10,-30611744),d=v(d,p,c,u,n[f+6],15,-1560198380),u=v(u,d,p,c,n[f+13],21,1309151649),c=v(c,u,d,p,n[f+4],6,-145523070),p=v(p,c,u,d,n[f+11],10,-1120210379),d=v(d,p,c,u,n[f+2],15,718787259),u=v(u,d,p,c,n[f+9],21,-343485551),c=c+b>>>0,u=u+y>>>0,d=d+x>>>0,p=p+w>>>0}return r.endian([c,u,d,p])})._ff=function(e,t,n,r,i,o,a){var s=e+(t&n|~t&r)+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._gg=function(e,t,n,r,i,o,a){var s=e+(t&r|n&~r)+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._hh=function(e,t,n,r,i,o,a){var s=e+(t^n^r)+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._ii=function(e,t,n,r,i,o,a){var s=e+(n^(t|~r))+(i>>>0)+a;return(s<<o|s>>>32-o)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?a.bytesToString(n):r.bytesToHex(n)}},function(e,t){var n,r;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var t=[],r=0;r<e.length;r+=3)for(var i=e[r]<<16|e[r+1]<<8|e[r+2],o=0;o<4;o++)8*r+6*o<=8*e.length?t.push(n.charAt(i>>>6*(3-o)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,i=0;r<e.length;i=++r%4)0!=i&&t.push((n.indexOf(e.charAt(r-1))&Math.pow(2,-2*i+8)-1)<<2*i|n.indexOf(e.charAt(r))>>>6-2*i);return t}},e.exports=r},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)} /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh <https://feross.org> * @license MIT */ -e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){n(9).module("dbt").factory("locationService",["$state",function(e){var t={};return t.parseState=function(e){return function(e){return{selected:{include:e.g_i||"",exclude:e.g_e||""},show_graph:!!e.g_v}}(e)},t.setState=function(t){var n=function(e){var t={g_v:1};return t.g_i=e.include,t.g_e=e.exclude,t}(t),r=e.current.name;e.go(r,n)},t.clearState=function(){var t=e.current.name;e.go(t,{g_i:null,g_e:null,g_v:null})},t}])},function(e,t,n){"use strict";const r=n(9),i=n(202);r.module("dbt").controller("OverviewCtrl",["$scope","$state","project",function(e,t,n){e.overview_md="(loading)",n.ready((function(n){let r=t.params.project_name?t.params.project_name:null;var o=n.docs["doc.dbt.__overview__"],a=i.filter(n.docs,{name:"__overview__"});if(i.each(a,(function(e){"dbt"!=e.package_name&&(o=e)})),null!==r){o=n.docs[`doc.${r}.__${r}__`]||o;let e=i.filter(n.docs,{name:`__${r}__`});i.each(e,e=>{e.package_name!==r&&(o=e)})}e.overview_md=o.block_contents}))}])},function(e,t,n){"use strict";n(9).module("dbt").controller("SourceListCtrl",["$scope","$state","project",function(e,t,n){e.source=t.params.source,e.model={},e.extra_table_fields=[],e.has_more_info=function(e){return(e.description||"").length},e.toggle_source_expanded=function(t){e.has_more_info(t)&&(t.expanded=!t.expanded)},n.ready((function(t){var n=_.filter(t.nodes,(function(t){return t.source_name==e.source}));if(0!=n.length){n.sort((e,t)=>e.name.localeCompare(t.name));var r=n[0];e.model={name:e.source,source_description:r.source_description,sources:n};var i=_.uniq(_.map(n,"metadata.owner")),o=_.uniq(_.map(n,"database")),a=_.uniq(_.map(n,"schema"));e.extra_table_fields=[{name:"Loader",value:r.loader},{name:1==i.length?"Owner":"Owners",value:i.join(", ")},{name:1==o.length?"Database":"Databases",value:o.join(", ")},{name:1==a.length?"Schema":"Schemas",value:a.join(", ")},{name:"Tables",value:n.length}]}}))}])},function(e,t,n){const r=n(9),i={main:n(482),overview:n(483),graph:n(484),source:n(205),source_list:n(485),model:n(486),source:n(205),snapshot:n(487),seed:n(488),test:n(489),analysis:n(490),macro:n(491),exposure:n(492),metric:n(493),semantic_model:n(494),operation:n(495)};r.module("dbt").config(["$stateProvider","$urlRouterProvider",function(e,t){var n="g_v&g_i&g_e&g_p&g_n";t.otherwise("/overview"),e.state("dbt",{url:"/",abstract:!0,controller:"MainController",templateUrl:i.main}).state("dbt.overview",{url:"overview?"+n,controller:"OverviewCtrl",templateUrl:i.overview}).state("dbt.project_overview",{url:"overview/:project_name?"+n,controller:"OverviewCtrl",templateUrl:i.overview,params:{project_name:{type:"string"}}}).state("dbt.graph",{url:"graph",controller:"GraphCtrl",templateUrl:i.graph}).state("dbt.model",{url:"model/:unique_id?section&"+n,controller:"ModelCtrl",templateUrl:i.model,params:{unique_id:{type:"string"}}}).state("dbt.seed",{url:"seed/:unique_id?section&"+n,controller:"SeedCtrl",templateUrl:i.seed,params:{unique_id:{type:"string"}}}).state("dbt.snapshot",{url:"snapshot/:unique_id?section&"+n,controller:"SnapshotCtrl",templateUrl:i.snapshot,params:{unique_id:{type:"string"}}}).state("dbt.test",{url:"test/:unique_id?section&"+n,controller:"TestCtrl",templateUrl:i.test,params:{unique_id:{type:"string"}}}).state("dbt.analysis",{url:"analysis/:unique_id?section&"+n,controller:"AnalysisCtrl",templateUrl:i.analysis,params:{unique_id:{type:"string"}}}).state("dbt.source",{url:"source/:unique_id?section&"+n,controller:"SourceCtrl",templateUrl:i.source,params:{unique_id:{type:"string"}}}).state("dbt.source_list",{url:"source_list/:source?section&"+n,controller:"SourceListCtrl",templateUrl:i.source_list,params:{source:{type:"string"}}}).state("dbt.macro",{url:"macro/:unique_id?section",controller:"MacroCtrl",templateUrl:i.macro,params:{unique_id:{type:"string"}}}).state("dbt.exposure",{url:"exposure/:unique_id?section&"+n,controller:"ExposureCtrl",templateUrl:i.exposure,params:{unique_id:{type:"string"}}}).state("dbt.metric",{url:"metric/:unique_id?section&"+n,controller:"MetricCtrl",templateUrl:i.metric,params:{unique_id:{type:"string"}}}).state("dbt.semantic_model",{url:"semantic_model/:unique_id?section&"+n,controller:"SemanticModelCtrl",templateUrl:i.semantic_model,params:{unique_id:{type:"string"}}}).state("dbt.operation",{url:"operation/:unique_id?section&"+n,controller:"OperationCtrl",templateUrl:i.operation,params:{unique_id:{type:"string"}}})}])},function(e,t){var n="/main/main.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n.no-x-overflow {\n overflow-x: hidden;\n}\n\n.logo {\n width: 140px;\n height: 46px ;\n}\n</style>\n\n<div>\n <graph-launcher></graph-launcher>\n\n <div class="app app-row">\n <div class="app-menu app-column">\n <div class="app-overlay" data-toggle=".app-menu"></div>\n <div class="app-header app-navbar app-shadow app-pad">\n <div class="app-row app-middle">\n <div class="app-body">\n <div class="logo">\n <a ui-sref="dbt.overview()">\n <img style="width: 100px; height: 40px" class="logo" ng-src="{{ logo }}" />\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class="app-body">\n <div class="app-scroll app-pad app-flush-right no-x-overflow">\n <model-tree tree="tree"></model-tree>\n </div>\n </div>\n </div>\n <div class="app-content app-column">\n <div class="app-header app-navbar app-shadow">\n <div class="app-frame app-pad app-row app-middle">\n <input\n id="search"\n ng-model="search.query"\n ng-focus="onSearchFocus($event, true)"\n ng-keydown="onSearchKeypress($event)"\n type="text"\n class="form-control"\n placeholder="Search for models..." />\n <div class="app-body">\n </div>\n <div class="app-footer app-icn" ng-show="search.is_focused" ng-click="clearSearch()">\n <svg class="icn icn-md"><use xlink:href="#icn-close"></use></svg>\n </div>\n </div>\n </div>\n <div class=\'app-body\' ng-show=\'!search.is_focused\' ui-view></div>\n <div class="app-body" ng-show="search.is_focused">\n <docs-search query="search.query" results="search.results" on-select="clearSearch()"></docs-search>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/overview/overview.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="app-details app-scroll app-pad">\n <app-scroll div class="app-frame app-pad">\n <div class="panel panel-default">\n <div class="panel-body">\n <p marked=\'overview_md\'></p>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/graph/graph.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div ng-controller="GraphCtrl" id=\'graph-container\' style="width: 100%">\n <div class=\'row viz-container\' style="margin: 0">\n <div class=\'col-md-12\'>\n <div graph-viz\n viz-options="graph.options"\n viz-elements="graph.elements"\n viz-style="graph.style"\n viz-layout="graph.layout"\n viz-ready="graph.ready"\n viz-size="{height: \'800px\', width: \'100%\'}"></div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/sources/source_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ source }}</span>\n <small>source</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source_list({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source_list({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source_list({\'#\': \'sources\'})">Sources</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" extras="extra_table_fields"/>\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.source_description" class="model-markdown" marked="model.source_description"></div>\n <div ng-if="!model.source_description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n\n <section class="section">\n <div class="section-target" id="sources"></div>\n <div class="section-content">\n <h6>Source Tables</h6>\n <div class="panel">\n <div class="panel-body">\n <div class="table-responsive" style="max-height: 800px; overflow-y: scroll;" ng-if="!_.isEmpty(model.sources)">\n <table class="table table-borderless table-hover">\n <thead>\n <tr>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Source</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Table</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Description</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Link</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;" class=\'text-center\'>More?</th>\n </tr>\n </thead>\n <tbody>\n <tr\n ng-repeat-start="source in model.sources track by source.name"\n ng-click="toggle_source_expanded(source)"\n class="column-row"\n ng-class="{\'column-row-selected\': source.expanded}"\n ng-style="{cursor: has_more_info(source) ? \'pointer\' : \'auto\'}">\n <td>\n <div>\n <span class=\'text-dark\'>{{ source.source_name }}</span>\n </div>\n </td>\n <td>\n <span class=\'text-dark\'>{{ source.name }}</p>\n </td>\n <td style="text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; max-width: 1px;">\n <span ng-show="!column.expanded">{{ source.description }}</span>\n </td>\n <td>\n <a ui-sref="dbt.source({unique_id: source.unique_id})">View docs</a>\n </td>\n <td class=\'text-center\'>\n <span class=\'text-light\' ng-show="has_more_info(source)">\n <span ng-if="source.expanded">\n <svg class="icn"><use xlink:href="#icn-up"></use></svg>\n </span>\n <span ng-if="!source.expanded">\n <svg class="icn"><use xlink:href="#icn-right"></use></svg>\n </span>\n </span>\n </td>\n </tr>\n <tr ng-repeat-end ng-show="source.expanded" style="background-color: white; padding: 10px">\n <td colspan="5" class="column-expanded">\n <div style="padding: 5px 20px">\n <div style="margin-bottom: 15px">\n <h5>Description</h5>\n <span marked="source.description"></span>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/model.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This model is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>{{ model.config.materialized }}</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.model({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.model({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'code\'})">Code</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model"></table-details>\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/snapshot.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This {{ model.resource_type }} is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>{{ model.config.materialized }}</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.snapshot({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.snapshot({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/seed.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This {{ model.resource_type }} is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>{{ model.config.materialized }}</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.seed({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.seed({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/test.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>test</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.test({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.test({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.test({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/analysis.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This {{ model.resource_type }} is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>Analysis</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.analysis({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.analysis({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.analysis({\'#\': \'sql\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="sql"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/macro.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ macro.package_name }}.{{ macro.name }}</span>\n <small ng-if="macro.is_adapter_macro">adapter macro</small>\n <small ng-if="!macro.is_adapter_macro">macro</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.macro({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.macro({\'#\': \'arguments\'})">Arguments</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.macro({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.macro({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.macro({\'#\': \'code\'})">Code</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="macro.description" class="model-markdown" marked="macro.description"></div>\n <div ng-if="!macro.description">This {{ macro.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="arguments"></div>\n <div class="section-content">\n <h6>Arguments</h6>\n <macro-arguments macro="macro"></macro-arguments>\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="macro" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="macro" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/exposure.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ exposure.label }}</span>\n <small>exposure</small>\n\n <div class=\'pull-right\' ng-show="exposure.url">\n <a class=\'btn text-white btn-primary btn-sm\' ng-href="{{ exposure.url }}" target="_blank">View this exposure</a>\n </div>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.exposure({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.exposure({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.exposure({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="exposure" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="exposure.description" class="model-markdown" marked="exposure.description"></div>\n <div ng-if="!exposure.description">This {{ exposure.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="exposure" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/metric.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ metric.label }}</span>\n <small>metric</small>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.metric({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.metric({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.metric({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="metric" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="metric.description" class="model-markdown" marked="metric.description"></div>\n <div ng-if="!metric.description">This {{ metric.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="metric" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/semantic_model.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ semantic_model.name }}</span>\n <small>semantic_model</small>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.semantic_model({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.semantic_model({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.semantic_model({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="semantic_model" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="semantic_model.description" class="model-markdown" marked="semantic_model.description"></div>\n <div ng-if="!semantic_model.description">This {{ semantic_model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "semantic_model.entities.length != 0">\n <div class="section-target" id="entities"></div>\n <div class="section-content">\n <h6>Entities</h6>\n\n <div class="panel">\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail" ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="entity in semantic_model.entities">\n <dt class="detail-label">Name</dt>\n <dd class="detail-value" ng-if="entity.name">{{ entity.name }}</dd>\n <dd class="detail-value" ng-if="!entity.name">None</dd>\n <dt class="detail-label">Type</dt>\n <dd class="detail-value" ng-if="entity.type">{{ entity.type }}</dd>\n <dd class="detail-value" ng-if="!entity.type">None</dd>\n <dt class="detail-label">Expression</dt>\n <dd class="detail-value" ng-if="entity.expr">{{ entity.expr }}</dd>\n <dd class="detail-value" ng-if="!entity.expr">None</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="semantic_model" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/operation.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>operation</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.operation({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.operation({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.operation({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n}]); +e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){n(8).module("dbt").factory("locationService",["$state",function(e){var t={};return t.parseState=function(e){return function(e){return{selected:{include:e.g_i||"",exclude:e.g_e||""},show_graph:!!e.g_v}}(e)},t.setState=function(t){var n=function(e){var t={g_v:1};return t.g_i=e.include,t.g_e=e.exclude,t}(t),r=e.current.name;e.go(r,n)},t.clearState=function(){var t=e.current.name;e.go(t,{g_i:null,g_e:null,g_v:null})},t}])},function(e,t,n){"use strict";const r=n(8),i=n(202);r.module("dbt").controller("OverviewCtrl",["$scope","$state","project",function(e,t,n){e.overview_md="(loading)",n.ready((function(n){let r=t.params.project_name?t.params.project_name:null;var o=n.docs["doc.dbt.__overview__"],a=i.filter(n.docs,{name:"__overview__"});if(i.each(a,(function(e){"dbt"!=e.package_name&&(o=e)})),null!==r){o=n.docs[`doc.${r}.__${r}__`]||o;let e=i.filter(n.docs,{name:`__${r}__`});i.each(e,e=>{e.package_name!==r&&(o=e)})}e.overview_md=o.block_contents}))}])},function(e,t,n){"use strict";n(8).module("dbt").controller("SourceListCtrl",["$scope","$state","project",function(e,t,n){e.source=t.params.source,e.model={},e.extra_table_fields=[],e.has_more_info=function(e){return(e.description||"").length},e.toggle_source_expanded=function(t){e.has_more_info(t)&&(t.expanded=!t.expanded)},n.ready((function(t){var n=_.filter(t.nodes,(function(t){return t.source_name==e.source}));if(0!=n.length){n.sort((e,t)=>e.name.localeCompare(t.name));var r=n[0];e.model={name:e.source,source_description:r.source_description,sources:n};var i=_.uniq(_.map(n,"metadata.owner")),o=_.uniq(_.map(n,"database")),a=_.uniq(_.map(n,"schema"));e.extra_table_fields=[{name:"Loader",value:r.loader},{name:1==i.length?"Owner":"Owners",value:i.join(", ")},{name:1==o.length?"Database":"Databases",value:o.join(", ")},{name:1==a.length?"Schema":"Schemas",value:a.join(", ")},{name:"Tables",value:n.length}]}}))}])},function(e,t,n){const r=n(8),i={main:n(483),overview:n(484),graph:n(485),source:n(205),source_list:n(486),model:n(487),source:n(205),snapshot:n(488),seed:n(489),unit_test:n(490),test:n(491),analysis:n(492),macro:n(493),exposure:n(494),metric:n(495),semantic_model:n(496),saved_query:n(497),operation:n(498)};r.module("dbt").config(["$stateProvider","$urlRouterProvider",function(e,t){var n="g_v&g_i&g_e&g_p&g_n";t.otherwise("/overview"),e.state("dbt",{url:"/",abstract:!0,controller:"MainController",templateUrl:i.main}).state("dbt.overview",{url:"overview?"+n,controller:"OverviewCtrl",templateUrl:i.overview}).state("dbt.project_overview",{url:"overview/:project_name?"+n,controller:"OverviewCtrl",templateUrl:i.overview,params:{project_name:{type:"string"}}}).state("dbt.graph",{url:"graph",controller:"GraphCtrl",templateUrl:i.graph}).state("dbt.model",{url:"model/:unique_id?section&"+n,controller:"ModelCtrl",templateUrl:i.model,params:{unique_id:{type:"string"}}}).state("dbt.seed",{url:"seed/:unique_id?section&"+n,controller:"SeedCtrl",templateUrl:i.seed,params:{unique_id:{type:"string"}}}).state("dbt.snapshot",{url:"snapshot/:unique_id?section&"+n,controller:"SnapshotCtrl",templateUrl:i.snapshot,params:{unique_id:{type:"string"}}}).state("dbt.unit_test",{url:"unit_test/:unique_id?section&"+n,controller:"TestCtrl",templateUrl:i.unit_test,params:{unique_id:{type:"string"}}}).state("dbt.test",{url:"test/:unique_id?section&"+n,controller:"TestCtrl",templateUrl:i.test,params:{unique_id:{type:"string"}}}).state("dbt.analysis",{url:"analysis/:unique_id?section&"+n,controller:"AnalysisCtrl",templateUrl:i.analysis,params:{unique_id:{type:"string"}}}).state("dbt.source",{url:"source/:unique_id?section&"+n,controller:"SourceCtrl",templateUrl:i.source,params:{unique_id:{type:"string"}}}).state("dbt.source_list",{url:"source_list/:source?section&"+n,controller:"SourceListCtrl",templateUrl:i.source_list,params:{source:{type:"string"}}}).state("dbt.macro",{url:"macro/:unique_id?section",controller:"MacroCtrl",templateUrl:i.macro,params:{unique_id:{type:"string"}}}).state("dbt.exposure",{url:"exposure/:unique_id?section&"+n,controller:"ExposureCtrl",templateUrl:i.exposure,params:{unique_id:{type:"string"}}}).state("dbt.metric",{url:"metric/:unique_id?section&"+n,controller:"MetricCtrl",templateUrl:i.metric,params:{unique_id:{type:"string"}}}).state("dbt.semantic_model",{url:"semantic_model/:unique_id?section&"+n,controller:"SemanticModelCtrl",templateUrl:i.semantic_model,params:{unique_id:{type:"string"}}}).state("dbt.saved_query",{url:"saved_query/:unique_id?section&"+n,controller:"SavedQueryCtrl",templateUrl:i.saved_query,params:{unique_id:{type:"string"}}}).state("dbt.operation",{url:"operation/:unique_id?section&"+n,controller:"OperationCtrl",templateUrl:i.operation,params:{unique_id:{type:"string"}}})}])},function(e,t){var n="/main/main.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n.no-x-overflow {\n overflow-x: hidden;\n}\n\n.logo {\n width: 140px;\n height: 46px ;\n}\n</style>\n\n<div>\n <graph-launcher></graph-launcher>\n\n <div class="app app-row">\n <div class="app-menu app-column">\n <div class="app-overlay" data-toggle=".app-menu"></div>\n <div class="app-header app-navbar app-shadow app-pad">\n <div class="app-row app-middle">\n <div class="app-body">\n <div class="logo">\n <a ui-sref="dbt.overview()">\n <img style="width: 100px; height: 40px" class="logo" ng-src="{{ logo }}" />\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class="app-body">\n <div class="app-scroll app-pad app-flush-right no-x-overflow">\n <model-tree tree="tree"></model-tree>\n </div>\n </div>\n </div>\n <div class="app-content app-column">\n <div class="app-header app-navbar app-shadow">\n <div class="app-frame app-pad app-row app-middle">\n <input\n id="search"\n ng-model="search.query"\n ng-focus="onSearchFocus($event, true)"\n ng-keydown="onSearchKeypress($event)"\n type="text"\n class="form-control"\n placeholder="Search for models..." />\n <div class="app-body">\n </div>\n <div class="app-footer app-icn" ng-show="search.is_focused" ng-click="clearSearch()">\n <svg class="icn icn-md"><use xlink:href="#icn-close"></use></svg>\n </div>\n </div>\n </div>\n <div class=\'app-body\' ng-show=\'!search.is_focused\' ui-view></div>\n <div class="app-body" ng-show="search.is_focused">\n <docs-search query="search.query" results="search.results" on-select="clearSearch()"></docs-search>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/overview/overview.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div class="app-details app-scroll app-pad">\n <app-scroll div class="app-frame app-pad">\n <div class="panel panel-default">\n <div class="panel-body">\n <p marked=\'overview_md\'></p>\n </div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/graph/graph.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<div ng-controller="GraphCtrl" id=\'graph-container\' style="width: 100%">\n <div class=\'row viz-container\' style="margin: 0">\n <div class=\'col-md-12\'>\n <div graph-viz\n viz-options="graph.options"\n viz-elements="graph.elements"\n viz-style="graph.style"\n viz-layout="graph.layout"\n viz-ready="graph.ready"\n viz-size="{height: \'800px\', width: \'100%\'}"></div>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/sources/source_list.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ source }}</span>\n <small>source</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source_list({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source_list({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.source_list({\'#\': \'sources\'})">Sources</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" extras="extra_table_fields"/>\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.source_description" class="model-markdown" marked="model.source_description"></div>\n <div ng-if="!model.source_description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n\n <section class="section">\n <div class="section-target" id="sources"></div>\n <div class="section-content">\n <h6>Source Tables</h6>\n <div class="panel">\n <div class="panel-body">\n <div class="table-responsive" style="max-height: 800px; overflow-y: scroll;" ng-if="!_.isEmpty(model.sources)">\n <table class="table table-borderless table-hover">\n <thead>\n <tr>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Source</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Table</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Description</th>\n <th style="background-color: white; position: sticky; top: 0; z-index: 1;">Link</th>\n <th style="width: 1px; background-color: white; position: sticky; top: 0; z-index: 1;" class=\'text-center\'>More?</th>\n </tr>\n </thead>\n <tbody>\n <tr\n ng-repeat-start="source in model.sources track by source.name"\n ng-click="toggle_source_expanded(source)"\n class="column-row"\n ng-class="{\'column-row-selected\': source.expanded}"\n ng-style="{cursor: has_more_info(source) ? \'pointer\' : \'auto\'}">\n <td>\n <div>\n <span class=\'text-dark\'>{{ source.source_name }}</span>\n </div>\n </td>\n <td>\n <span class=\'text-dark\'>{{ source.name }}</p>\n </td>\n <td style="text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; max-width: 1px;">\n <span ng-show="!column.expanded">{{ source.description }}</span>\n </td>\n <td>\n <a ui-sref="dbt.source({unique_id: source.unique_id})">View docs</a>\n </td>\n <td class=\'text-center\'>\n <span class=\'text-light\' ng-show="has_more_info(source)">\n <span ng-if="source.expanded">\n <svg class="icn"><use xlink:href="#icn-up"></use></svg>\n </span>\n <span ng-if="!source.expanded">\n <svg class="icn"><use xlink:href="#icn-right"></use></svg>\n </span>\n </span>\n </td>\n </tr>\n <tr ng-repeat-end ng-show="source.expanded" style="background-color: white; padding: 10px">\n <td colspan="5" class="column-expanded">\n <div style="padding: 5px 20px">\n <div style="margin-bottom: 15px">\n <h5>Description</h5>\n <span marked="source.description"></span>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/model.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This model is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>{{ model.config.materialized }}</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.model({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.model({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.model({\'#\': \'code\'})">Code</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model"></table-details>\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/snapshot.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This {{ model.resource_type }} is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>{{ model.config.materialized }}</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.snapshot({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.snapshot({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.snapshot({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/seed.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This {{ model.resource_type }} is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>{{ model.config.materialized }}</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'columns\'})">Columns</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.seed({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.seed({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.seed({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="model" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n <section class="section">\n <div class="section-target" id="columns"></div>\n <div class="section-content">\n <h6>Columns</h6>\n <column-details model="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="model" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/unit_test.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>unit test</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.unit_test({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.unit_test({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/test.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>test</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.test({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.test({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.test({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/analysis.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1 ng-if="model.docs.show === false">\n <small class=\'text-bold text-right\'>\n <i data-icon="eye"></i>\n This {{ model.resource_type }} is hidden\n </small>\n </h1>\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>Analysis</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.analysis({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.analysis({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.analysis({\'#\': \'sql\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="sql"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/macro.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ macro.package_name }}.{{ macro.name }}</span>\n <small ng-if="macro.is_adapter_macro">adapter macro</small>\n <small ng-if="!macro.is_adapter_macro">macro</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.macro({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.macro({\'#\': \'arguments\'})">Arguments</a></li>\n <li ui-sref-active=\'active\' ng-show = "referencesLength != 0"><a ui-sref="dbt.macro({\'#\': \'referenced_by\'})">Referenced By</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.macro({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.macro({\'#\': \'code\'})">Code</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="macro.description" class="model-markdown" marked="macro.description"></div>\n <div ng-if="!macro.description">This {{ macro.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="arguments"></div>\n <div class="section-content">\n <h6>Arguments</h6>\n <macro-arguments macro="macro"></macro-arguments>\n </div>\n </section>\n\n <section class="section" ng-show = "referencesLength != 0">\n <div class="section-target" id="referenced_by"></div>\n <div class="section-content">\n <h6>Referenced By</h6>\n <reference-list references="references" node="macro" />\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="macro" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/exposure.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ exposure.label }}</span>\n <small>exposure</small>\n\n <div class=\'pull-right\' ng-show="exposure.url">\n <a class=\'btn text-white btn-primary btn-sm\' ng-href="{{ exposure.url }}" target="_blank">View this exposure</a>\n </div>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.exposure({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.exposure({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.exposure({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="exposure" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="exposure.description" class="model-markdown" marked="exposure.description"></div>\n <div ng-if="!exposure.description">This {{ exposure.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="exposure" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/metric.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ metric.label }}</span>\n <small>metric</small>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.metric({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.metric({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.metric({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="metric" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="metric.description" class="model-markdown" marked="metric.description"></div>\n <div ng-if="!metric.description">This {{ metric.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="metric" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/semantic_model.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ semantic_model.name }}</span>\n <small>semantic_model</small>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.semantic_model({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.semantic_model({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.semantic_model({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="semantic_model" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="semantic_model.description" class="model-markdown" marked="semantic_model.description"></div>\n <div ng-if="!semantic_model.description">This {{ semantic_model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "semantic_model.entities.length != 0">\n <div class="section-target" id="entities"></div>\n <div class="section-content">\n <h6>Entities</h6>\n\n <div class="panel">\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail" ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="entity in semantic_model.entities">\n <dt class="detail-label">Name</dt>\n <dd class="detail-value" ng-if="entity.name">{{ entity.name }}</dd>\n <dd class="detail-value" ng-if="!entity.name">None</dd>\n <dt class="detail-label">Type</dt>\n <dd class="detail-value" ng-if="entity.type">{{ entity.type }}</dd>\n <dd class="detail-value" ng-if="!entity.type">None</dd>\n <dt class="detail-label">Expression</dt>\n <dd class="detail-value" ng-if="entity.expr">{{ entity.expr }}</dd>\n <dd class="detail-value" ng-if="!entity.expr">None</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="semantic_model" />\n </div>\n </section>\n\n </div>\n </div>\n</div>\n')}]),e.exports=n},function(e,t){var n="/docs/saved_query.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n\n <h1>\n <span class="break">{{ saved_query.name }}</span>\n <small>saved_query</small>\n\n <div class=\'clearfix\'></div>\n </h1>\n\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.saved_query({\'#\': \'details\'})">Details</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.saved_query({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.saved_query({\'#\': \'depends_on\'})">Depends On</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n\n <section class="section">\n <div class="section-target" id="details"></div>\n <table-details model="saved_query" extras="extra_table_fields" />\n </section>\n\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="saved_query.description" class="model-markdown" marked="saved_query.description"></div>\n <div ng-if="!saved_query.description">This {{ saved_query.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "saved_query.entities.length != 0">\n <div class="section-target" id="entities"></div>\n <div class="section-content">\n <h6>Entities</h6>\n\n <div class="panel">\n <div class="detail-group" style="padding-bottom: 0">\n <div class="detail-body" style="padding-left: 0">\n <dl class="detail" ng-style="{\'padding-left\': $index == 0 ? 0 : \'auto\'}"\n ng-repeat="entity in saved_query.entities">\n <dt class="detail-label">Name</dt>\n <dd class="detail-value" ng-if="entity.name">{{ entity.name }}</dd>\n <dd class="detail-value" ng-if="!entity.name">None</dd>\n <dt class="detail-label">Type</dt>\n <dd class="detail-value" ng-if="entity.type">{{ entity.type }}</dd>\n <dd class="detail-value" ng-if="!entity.type">None</dd>\n <dt class="detail-label">Expression</dt>\n <dd class="detail-value" ng-if="entity.expr">{{ entity.expr }}</dd>\n <dd class="detail-value" ng-if="!entity.expr">None</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="saved_query" />\n </div>\n </section>\n\n </div>\n </div>\n</div>')}]),e.exports=n},function(e,t){var n="/docs/operation.html";window.angular.module("ng").run(["$templateCache",function(e){e.put(n,'<style>\n/* TODO */\n.section-target {\n top: -8em;\n}\n\n.noflex {\n flex: 0 0 160px !important;\n}\n\n.highlight {\n color: #24292e;\n background-color: white;\n}\n\n</style>\n\n<div class=\'app-scroll\'>\n <div class="app-links app-sticky">\n <div class="app-title">\n <div class="app-frame app-pad app-flush-bottom">\n <h1>\n <span class="break">{{ model.name }}</span>\n <small>operation</small>\n </h1>\n </div>\n </div>\n <div class="app-frame app-pad-h">\n <ul class="nav nav-tabs">\n <li ui-sref-active=\'active\'><a ui-sref="dbt.operation({\'#\': \'description\'})">Description</a></li>\n <li ui-sref-active=\'active\' ng-show = "parentsLength != 0"><a ui-sref="dbt.operation({\'#\': \'depends_on\'})">Depends On</a></li>\n <li ui-sref-active=\'active\'><a ui-sref="dbt.operation({\'#\': \'code\'})">SQL</a></li>\n </ul>\n </div>\n </div>\n <div class="app-details">\n <div class="app-frame app-pad">\n <section class="section">\n <div class="section-target" id="description"></div>\n <div class="section-content">\n <h6>Description</h6>\n <div class="panel">\n <div class="panel-body">\n <div ng-if="model.description" class="model-markdown" marked="model.description"></div>\n <div ng-if="!model.description">This {{ model.resource_type }} is not currently documented</div>\n </div>\n </div>\n </div>\n </section>\n\n <section class="section" ng-show = "parentsLength != 0">\n <div class="section-target" id="depends_on"></div>\n <div class="section-content">\n <h6>Depends On</h6>\n <reference-list references="parents" node="model" />\n </div>\n </section>\n\n <section class="section">\n <div class="section-target" id="code"></div>\n <div class="section-content">\n <code-block versions="versions" default="default_version" language="language"></code-block>\n </div>\n </section>\n </div>\n </div>\n</div>\n')}]),e.exports=n}]); //# sourceMappingURL=main.js.map</script></body></html> diff --git a/docs/manifest.json b/docs/manifest.json index e9915a2..cc5224a 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1 +1 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v11.json", "dbt_version": "1.7.17", "generated_at": "2024-07-18T20:05:00.115967Z", "invocation_id": "2a69ab7c-befa-4b06-89b7-0cc5e741d25e", "env": {}, "project_name": "linkedin_source_integration_tests", "project_id": "00754b0736d5a00cfd93b63d7957000d", "user_id": "81581f81-d5af-4143-8fbf-c2f0001e4f56", "send_anonymous_usage_stats": true, "adapter_type": "postgres"}, "nodes": {"seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_group_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_campaign_group_history_data.csv", "original_file_path": "seeds/linkedin_campaign_group_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_campaign_group_history_data"], "alias": "linkedin_campaign_group_history_data", "checksum": {"name": "sha256", "checksum": "48aeff219340dccafbdb2de6c0086e94cca22a741c15ad8ce23f1e207fa15fd2"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}}, "created_at": 1721333069.61671, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "raw_code": "", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_account_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_account_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_account_history_data.csv", "original_file_path": "seeds/linkedin_account_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_account_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_account_history_data"], "alias": "linkedin_account_history_data", "checksum": {"name": "sha256", "checksum": "f57fbb5e5a881a56457ed9b37150ec111e83e2e43deff5cc82891125ef61bc1d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}}, "created_at": 1721333069.625143, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "raw_code": "", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_campaign_history_data.csv", "original_file_path": "seeds/linkedin_campaign_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_campaign_history_data"], "alias": "linkedin_campaign_history_data", "checksum": {"name": "sha256", "checksum": "a5048ef45ea9355c819caeb1e623f192785c2f20f9e99896c227483b4e50b39b"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}}, "created_at": 1721333069.626532, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "raw_code": "", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_creative_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_creative_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_creative_history_data.csv", "original_file_path": "seeds/linkedin_creative_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_creative_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_creative_history_data"], "alias": "linkedin_creative_history_data", "checksum": {"name": "sha256", "checksum": "2c6cfcea1f7d29ef5295480d5cb6a3465d7d14efb8cd2785e4128f83f54e68ad"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp", "created_at": "timestamp", "last_modified_at": "timestamp", "click_uri": "varchar", "intended_status": "varchar", "status": "varchar"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp", "created_at": "timestamp", "last_modified_at": "timestamp", "click_uri": "{{ 'string' if target.type in ('bigquery','spark','databricks') else 'varchar' }}", "intended_status": "{{ 'string' if target.type in ('bigquery','spark','databricks') else 'varchar' }}", "status": "{{ 'string' if target.type in ('bigquery','spark','databricks') else 'varchar' }}"}}, "created_at": 1721333069.6278841, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "raw_code": "", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_creative_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_ad_analytics_by_creative_data.csv", "original_file_path": "seeds/linkedin_ad_analytics_by_creative_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data", "fqn": ["linkedin_source_integration_tests", "linkedin_ad_analytics_by_creative_data"], "alias": "linkedin_ad_analytics_by_creative_data", "checksum": {"name": "sha256", "checksum": "b5958b032b3396d36be3b8e4e7664029927e507034d9a7e5f2e7045e8366cc24"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"day": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"column_types": {"day": "timestamp"}}, "created_at": 1721333069.629338, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "raw_code": "", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_campaign_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_ad_analytics_by_campaign_data.csv", "original_file_path": "seeds/linkedin_ad_analytics_by_campaign_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data", "fqn": ["linkedin_source_integration_tests", "linkedin_ad_analytics_by_campaign_data"], "alias": "linkedin_ad_analytics_by_campaign_data", "checksum": {"name": "sha256", "checksum": "dec68acdcaa2099504ee9e6bd884bce8da395cd79929be58256f562b390b7c3d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.630584, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "raw_code": "", "root_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "depends_on": {"macros": []}}, "model.linkedin_source.stg_linkedin_ads__creative_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__creative_history.sql", "original_file_path": "models/stg_linkedin_ads__creative_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history", "fqn": ["linkedin_source", "stg_linkedin_ads__creative_history"], "alias": "stg_linkedin_ads__creative_history", "checksum": {"name": "sha256", "checksum": "559125ae69af3c1a6852e7444aa527530fccd8479f194fc07239fbd6c0e9c0a9"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of a creative.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_id": {"name": "creative_id", "description": "Unique internal ID representing the creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the creative was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the campaign the creative belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Creative creation is complete and creative is available for review and serve.\nPAUSED - Creative creation is complete and creative is current, but should temporarily not be served. This status is not valid upon creation.\nDRAFT - Creative creation is incomplete and may still be edited.\nARCHIVED - Creative creation is complete, but creative should not be served and should be separated from non-archived creatives in any UI.\nCANCELED - Creative is permanently canceled.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "click_uri": {"name": "click_uri", "description": "Required when creative type is TEXT_AD. Maximum character limit of 500 after URL encoding all special characters. \nLimit does not include the \"https://\" prefix.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "url_host": {"name": "url_host", "description": "The URL host of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "url_path": {"name": "url_path", "description": "The URL path of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_source": {"name": "utm_source", "description": "The utm_source parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_medium": {"name": "utm_medium", "description": "The utm_medium parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_campaign": {"name": "utm_campaign", "description": "The utm_campaign parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_content": {"name": "utm_content", "description": "The utm_content parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_term": {"name": "utm_term", "description": "The utm_term parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1721333069.911754, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__creative_history_tmp') }}\n\n), macro as (\n\n select \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__creative_history_tmp')),\n staging_columns=get_creative_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select\n source_relation,\n id as creative_id,\n campaign_id,\n coalesce(status, intended_status) as status,\n click_uri,\n cast(coalesce(last_modified_time, last_modified_at) as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(coalesce(created_time, created_at) as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by source_relation, id order by coalesce(last_modified_time, last_modified_at) desc) = 1 as is_latest_version\n\n from macro\n\n), url_fields as (\n\n select \n *,\n {{ dbt.split_part('click_uri', \"'?'\", 1) }} as base_url,\n {{ dbt_utils.get_url_host('click_uri') }} as url_host,\n '/' || {{ dbt_utils.get_url_path('click_uri') }} as url_path,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_source') }} as utm_source,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_medium') }} as utm_medium,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_campaign') }} as utm_campaign,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_content') }} as utm_content,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_term') }} as utm_term\n \n from fields\n)\n\nselect *\nfrom url_fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__creative_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__creative_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_creative_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp", "macro.dbt.split_part", "macro.dbt_utils.get_url_host", "macro.dbt_utils.get_url_path", "macro.linkedin_source.linkedin_ads_extract_url_parameter"], "nodes": ["model.linkedin_source.stg_linkedin_ads__creative_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__creative_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history_tmp\"\n\n), macro as (\n\n select \n \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n click_uri\n \n as \n \n click_uri\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n cast(null as timestamp) as \n \n created_at\n \n , \n \n \n id\n \n as \n \n id\n \n, \n cast(null as timestamp) as \n \n last_modified_time\n \n , \n \n \n last_modified_at\n \n as \n \n last_modified_at\n \n, \n \n \n intended_status\n \n as \n \n intended_status\n \n, \n cast(null as TEXT) as \n \n status\n \n \n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select\n source_relation,\n id as creative_id,\n campaign_id,\n coalesce(status, intended_status) as status,\n click_uri,\n cast(coalesce(last_modified_time, last_modified_at) as timestamp) as last_modified_at,\n cast(coalesce(created_time, created_at) as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by coalesce(last_modified_time, last_modified_at) desc) = 1 as is_latest_version\n\n from macro\n\n), url_fields as (\n\n select \n *,\n \n\n \n \n\n split_part(\n click_uri,\n '?',\n 1\n )\n\n\n \n\n as base_url,\n \n \n cast(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n \n\n replace(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'android-app://',\n ''\n )\n\n\n,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/',\n 1\n )\n\n\n \n\n,\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_host,\n '/' || \n \n cast(\n\n \n \n\n split_part(\n \n\n right(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n \n\n length(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n )-coalesce(\n nullif(\n\n position(\n '/' in \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ), 0),\n \n\n position(\n '?' in \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ) - 1\n )\n ),\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_path,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_source=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_source,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_medium=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_medium,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_campaign=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_campaign,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_content=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_content,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_term=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_term\n \n from fields\n)\n\nselect *\nfrom url_fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__campaign_history.sql", "original_file_path": "models/stg_linkedin_ads__campaign_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history", "fqn": ["linkedin_source", "stg_linkedin_ads__campaign_history"], "alias": "stg_linkedin_ads__campaign_history", "checksum": {"name": "sha256", "checksum": "c4d92f9ceab27d6533e3b2dd36e2db445814c8dee4bcf382046eb95047e79cf8"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of a campaign.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique internal ID representing the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_id": {"name": "campaign_group_id", "description": "The ID of the campaign group the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the campaign was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A label for the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_audience_expansion_enabled": {"name": "is_audience_expansion_enabled", "description": "Boolean (default=false) representing whether Audience Expansion is enabled for the campaign provides query expansion for certain targeting criteria.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_type": {"name": "cost_type", "description": "CPM - Cost per thousand advertising impressions. If type=SPONSORED_INMAILS; cost per send(CPS) is measured as CPM x 1000.\nCPC- Cost per individual click on the associated link.\nCPV- Cost per view for video ads.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_selection": {"name": "creative_selection", "description": "ROUND_ROBIN - Rotate through available creatives to serve them as evenly as possible.\nOPTIMIZED (default) - Bias selection taking into account such as expected performance. Not available for Message and Conversation Ads (type=SPONSORED_INMAILS).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_amount": {"name": "daily_budget_amount", "description": "Maximum amount to spend per day UTC. The amount of money as a real number string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_currency_code": {"name": "daily_budget_currency_code", "description": "ISO currency code. The currency must match that of the parent account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "format": {"name": "format", "description": "The ad format on the campaign level. See https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/campaign-formats?view=li-lms-2022-07", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_country": {"name": "locale_country", "description": "Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_language": {"name": "locale_language", "description": "Locale of the campaign. A lowercase two-letter language code as defined by ISO-639.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "objective_type": {"name": "objective_type", "description": "Campaign Objective type values. Click [here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ad-budget-pricing-type-combinations?view=li-lms-2022-07) for Campaign Objective descriptions. One of: - BRAND_AWARENESS - ENGAGEMENT - JOB_APPLICANTS - LEAD_GENERATION - WEBSITE_CONVERSIONS - WEBSITE_VISITS - VIDEO_VIEWS\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_offsite_delivery_enabled": {"name": "is_offsite_delivery_enabled", "description": "Boolean indicating if this campaign to allowed to be served on the LinkedIn Audience Network to extend the reach of your campaign by delivering ads beyond the LinkedIn feed to members on third-party apps and sites.\t(default will be \"True\" from June 30, 2022)\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "optimization_target_type": {"name": "optimization_target_type", "description": "Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to the documentation here. Default = 'NONE'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start_at": {"name": "run_schedule_start_at", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the inclusive (greater than or equal to) value in which to start the range.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end_at": {"name": "run_schedule_end_at", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the exclusive (strictly less than) value in which to end the range, if provided.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Denotes that the campaign is fully servable.\nPAUSED - Denotes that the campaign meets all requirements to be served, but temporarily should not be.\nARCHIVED - Denotes that the campaign is presently inactive, and should mostly be hidden in the UI until un-archived.\nCOMPLETED - Denotes that the campaign has reached a specified budgetary or chronological limit.\nCANCELED - Denotes that the campaign has been permanently canceled, such as when an advertising account is permanently closed.\nDRAFT - Denotes that the campaign is still being edited and not eligible for serving. Some validation will be postponed until the campaign is activated.\nPENDING_DELETION - Denotes that the campaign has been requested to be deleted that is currently pending.\nREMOVED - Denotes that the campaign was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "TEXT_AD - Text-based ads that show up in the right column or top of the page on LinkedIn.\nSPONSORED_UPDATES - Native ads that promote a company's content updates in the LinkedIn feed.\nSPONSORED_INMAILS - Personalized messages with a call-to-action button delivered to a LinkedIn's member inbox.\nDYNAMIC - Ads that are dynamically personalized.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_amount": {"name": "unit_cost_amount", "description": "This value is used as one of the following: amount to bid (for manual bidding), amount which is the target cost (for target cost bidding) per click, impression, or other event depending on the pricing model, or cost cap (for cost cap bidding). The amount of money as a real number string. The amount should be non-negative if the bidding strategy is manual, target cost, or cost cap bidding. The default is 0 with the currency code set to match that of the associated account.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_currency_code": {"name": "unit_cost_currency_code", "description": "Amount to bid per click, impression, or other event depending on the pricing model. The default is 0 with the currency code set to match that of the associated account. ISO currency code.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1721333069.914974, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__campaign_history_tmp') }}\n\n), macro as (\n\n select \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__campaign_history_tmp')),\n staging_columns=get_campaign_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_id,\n name as campaign_name,\n cast(version_tag as numeric) as version_tag,\n campaign_group_id,\n account_id,\n status,\n type,\n cost_type,\n creative_selection,\n daily_budget_amount,\n daily_budget_currency_code,\n unit_cost_amount,\n unit_cost_currency_code,\n format,\n locale_country,\n locale_language,\n objective_type,\n optimization_target_type,\n audience_expansion_enabled as is_audience_expansion_enabled,\n offsite_delivery_enabled as is_offsite_delivery_enabled,\n cast(run_schedule_start as {{ dbt.type_timestamp() }}) as run_schedule_start_at,\n cast(run_schedule_end as {{ dbt.type_timestamp() }}) as run_schedule_end_at,\n cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(created_time as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__campaign_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_campaign_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__campaign_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history_tmp\"\n\n), macro as (\n\n select \n \n \n \n account_id\n \n as \n \n account_id\n \n, \n cast(null as boolean) as \n \n audience_expansion_enabled\n \n , \n \n \n campaign_group_id\n \n as \n \n campaign_group_id\n \n, \n cast(null as TEXT) as \n \n cost_type\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n cast(null as TEXT) as \n \n creative_selection\n \n , \n cast(null as float) as \n \n daily_budget_amount\n \n , \n cast(null as TEXT) as \n \n daily_budget_currency_code\n \n , \n cast(null as TEXT) as \n \n format\n \n , \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n cast(null as TEXT) as \n \n locale_country\n \n , \n cast(null as TEXT) as \n \n locale_language\n \n , \n \n \n name\n \n as \n \n name\n \n, \n cast(null as TEXT) as \n \n objective_type\n \n , \n cast(null as boolean) as \n \n offsite_delivery_enabled\n \n , \n cast(null as TEXT) as \n \n optimization_target_type\n \n , \n cast(null as timestamp) as \n \n run_schedule_end\n \n , \n cast(null as timestamp) as \n \n run_schedule_start\n \n , \n cast(null as TEXT) as \n \n status\n \n , \n cast(null as TEXT) as \n \n type\n \n , \n cast(null as float) as \n \n unit_cost_amount\n \n , \n cast(null as TEXT) as \n \n unit_cost_currency_code\n \n , \n \n \n version_tag\n \n as \n \n version_tag\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_id,\n name as campaign_name,\n cast(version_tag as numeric) as version_tag,\n campaign_group_id,\n account_id,\n status,\n type,\n cost_type,\n creative_selection,\n daily_budget_amount,\n daily_budget_currency_code,\n unit_cost_amount,\n unit_cost_currency_code,\n format,\n locale_country,\n locale_language,\n objective_type,\n optimization_target_type,\n audience_expansion_enabled as is_audience_expansion_enabled,\n offsite_delivery_enabled as is_offsite_delivery_enabled,\n cast(run_schedule_start as timestamp) as run_schedule_start_at,\n cast(run_schedule_end as timestamp) as run_schedule_end_at,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__ad_analytics_by_campaign.sql", "original_file_path": "models/stg_linkedin_ads__ad_analytics_by_campaign.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign", "fqn": ["linkedin_source", "stg_linkedin_ads__ad_analytics_by_campaign"], "alias": "stg_linkedin_ads__ad_analytics_by_campaign", "checksum": {"name": "sha256", "checksum": "bd52a1a729a1dcdf80948ec4d697a562a30a7c1434ccbaeef7b015a819c66845"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the campaign level.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "date_day": {"name": "date_day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost": {"name": "cost", "description": "The cost of the ads in the local currency or USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1721333069.90957, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_linkedin_ads__ad_analytics_by_campaign_tmp') }}\n),\n\nmacro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__ad_analytics_by_campaign_tmp')),\n staging_columns=get_ad_analytics_by_campaign_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n),\n\nfields as (\n \n select \n source_relation,\n {{ dbt.date_trunc('day', 'day') }} as date_day,\n campaign_id,\n clicks,\n impressions,\n {% if var('linkedin_ads__use_local_currency', false) %}\n cost_in_local_currency as cost,\n {% else %}\n cost_in_usd as cost,\n {% endif %}\n\n coalesce(cast(conversion_value_in_local_currency as {{ dbt.type_float() }}), 0) as conversion_value_in_local_currency\n\n {% for conversion in var('linkedin_ads__conversion_fields', []) %}\n , coalesce(cast({{ conversion }} as {{ dbt.type_bigint() }}), 0) as {{ conversion }}\n {% endfor %}\n\n {{ linkedin_ads_fill_pass_through_columns(pass_through_fields=var('linkedin_ads__campaign_passthrough_metrics'), except=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n from macro\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_ad_analytics_by_campaign_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.date_trunc", "macro.dbt.type_float", "macro.linkedin_source.linkedin_ads_fill_pass_through_columns"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__ad_analytics_by_campaign.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign_tmp\"\n),\n\nmacro as (\n\n select\n \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clicks\n \n as \n \n clicks\n \n, \n \n \n cost_in_local_currency\n \n as \n \n cost_in_local_currency\n \n, \n \n \n cost_in_usd\n \n as \n \n cost_in_usd\n \n, \n \n \n day\n \n as \n \n day\n \n, \n \n \n impressions\n \n as \n \n impressions\n \n, \n \n \n conversion_value_in_local_currency\n \n as \n \n conversion_value_in_local_currency\n \n, \n \n \n external_website_conversions\n \n as \n \n external_website_conversions\n \n, \n \n \n one_click_leads\n \n as \n \n one_click_leads\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n),\n\nfields as (\n \n select \n source_relation,\n date_trunc('day', day) as date_day,\n campaign_id,\n clicks,\n impressions,\n \n cost_in_usd as cost,\n \n\n cast(coalesce(conversion_value_in_local_currency, 0) as float) as conversion_value_in_local_currency\n\n \n , coalesce(external_website_conversions, 0) as external_website_conversions\n \n , coalesce(one_click_leads, 0) as one_click_leads\n \n\n \n\n\n\n\n\n from macro\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__campaign_group_history.sql", "original_file_path": "models/stg_linkedin_ads__campaign_group_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history", "fqn": ["linkedin_source", "stg_linkedin_ads__campaign_group_history"], "alias": "stg_linkedin_ads__campaign_group_history", "checksum": {"name": "sha256", "checksum": "87e765f2462f412b9e9e340c37c8d227862258c2d7368761342870e22dc7fd18"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of a campaign group.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_id": {"name": "campaign_group_id", "description": "Unique internal ID representing the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign group belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the campaign group was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_name": {"name": "campaign_group_name", "description": "A label for the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_backfilled": {"name": "is_backfilled", "description": "Flag that denotes whether the campaign group was created organically or to backfill existing campaigns. This is a read-only field set by the system. Default = false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start_at": {"name": "run_schedule_start_at", "description": "Represents the inclusive (greater than or equal to) date when to start running the associated campaigns under this campaign group. This field is required.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end_at": {"name": "run_schedule_end_at", "description": "Represents the exclusive (strictly less than) date when to stop running the associated campaigns under this campaign group. If this field is unset, it indicates an open range with no end date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "Status of campaign group. Possible values are: ACTIVE - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). ARCHIVED - Denotes that the campaign group is presently inactive, and should mostly be hidden in the UI until un-archived. CANCELLED - Denotes that the campaign group has been permanently canceled and cannot be reactivated. Not a settable status. DRAFT - Denotes that the campaign group is in a preliminary state and should temporarily not be served. PAUSED - Denotes that the campaign group meets all requirements to be served, but temporarily should not be. PENDING_DELETION - Denotes that the campaign group has been requested to be deleted that is currently pending. REMOVED - Denoted that the campaign group was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1721333069.915679, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__campaign_group_history_tmp') }}\n\n), macro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__campaign_group_history_tmp')),\n staging_columns=get_campaign_group_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_group_id,\n name as campaign_group_name,\n account_id,\n status,\n backfilled as is_backfilled,\n cast(run_schedule_start as {{ dbt.type_timestamp() }}) as run_schedule_start_at,\n cast(run_schedule_end as {{ dbt.type_timestamp() }}) as run_schedule_end_at,\n cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(created_time as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__campaign_group_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_campaign_group_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__campaign_group_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history_tmp\"\n\n), macro as (\n\n select\n \n \n \n account_id\n \n as \n \n account_id\n \n, \n cast(null as boolean) as \n \n backfilled\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n \n \n name\n \n as \n \n name\n \n, \n cast(null as timestamp) as \n \n run_schedule_end\n \n , \n cast(null as timestamp) as \n \n run_schedule_start\n \n , \n cast(null as TEXT) as \n \n status\n \n \n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_group_id,\n name as campaign_group_name,\n account_id,\n status,\n backfilled as is_backfilled,\n cast(run_schedule_start as timestamp) as run_schedule_start_at,\n cast(run_schedule_end as timestamp) as run_schedule_end_at,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__account_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__account_history.sql", "original_file_path": "models/stg_linkedin_ads__account_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history", "fqn": ["linkedin_source", "stg_linkedin_ads__account_history"], "alias": "stg_linkedin_ads__account_history", "checksum": {"name": "sha256", "checksum": "c9a77c7118e632df070b7d30bf13f924e4b787dbef81ad0d1320df5a1a83be9c"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of an account.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "Unique internal ID representing the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the account was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_name": {"name": "account_name", "description": "A label for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The ISO 4217 currency code of the account, such as 'USD' for United States Dollar (default).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Account is active; this is the default state\nCANCELLED - Account has been permanently cancelled\nDRAFT - Account is in draft status, meaning it's not yet fully set up and it is not serving\nPENDING_DELETION - Denotes that the account has been requested to be deleted that is currently pending\nREMOVED - Denotes that the account was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "BUSINESS - This is the only value allowed when creating accounts through the API.\nENTERPRISE - This value cannot be used to create accounts through the API and is reserved for accounts created by LinkedIn's internal ad operations systems.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1721333069.9163961, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__account_history_tmp') }}\n\n), macro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__account_history_tmp')),\n staging_columns=get_account_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as account_id,\n name as account_name,\n currency,\n cast(version_tag as numeric) as version_tag,\n status,\n type,\n cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(created_time as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__account_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_account_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__account_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history_tmp\"\n\n), macro as (\n\n select\n \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n \n \n name\n \n as \n \n name\n \n, \n cast(null as TEXT) as \n \n status\n \n , \n cast(null as TEXT) as \n \n type\n \n , \n \n \n version_tag\n \n as \n \n version_tag\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as account_id,\n name as account_name,\n currency,\n cast(version_tag as numeric) as version_tag,\n status,\n type,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__ad_analytics_by_creative.sql", "original_file_path": "models/stg_linkedin_ads__ad_analytics_by_creative.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative", "fqn": ["linkedin_source", "stg_linkedin_ads__ad_analytics_by_creative"], "alias": "stg_linkedin_ads__ad_analytics_by_creative", "checksum": {"name": "sha256", "checksum": "eecd8fa5a195827bb473dbbfacbc4263af1be5cc0c98b26e9f47d959fac4cf32"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the creative level.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_id": {"name": "creative_id", "description": "The ID of the related creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "date_day": {"name": "date_day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost": {"name": "cost", "description": "The cost of the ads in the local currency or USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1721333069.908844, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__ad_analytics_by_creative_tmp') }}\n\n), macro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__ad_analytics_by_creative_tmp')),\n staging_columns=get_ad_analytics_by_creative_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select\n source_relation,\n {{ dbt.date_trunc('day', 'day') }} as date_day,\n creative_id,\n clicks, \n impressions,\n {% if var('linkedin_ads__use_local_currency', false) %}\n cost_in_local_currency as cost,\n {% else %}\n cost_in_usd as cost,\n {% endif %}\n\n coalesce(cast(conversion_value_in_local_currency as {{ dbt.type_float() }}), 0) as conversion_value_in_local_currency\n\n {% for conversion in var('linkedin_ads__conversion_fields', []) %}\n , coalesce(cast({{ conversion }} as {{ dbt.type_bigint() }}), 0) as {{ conversion }}\n {% endfor %}\n\n {{ linkedin_ads_fill_pass_through_columns(pass_through_fields=var('linkedin_ads__creative_passthrough_metrics'), except=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_ad_analytics_by_creative_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.date_trunc", "macro.dbt.type_float", "macro.linkedin_source.linkedin_ads_fill_pass_through_columns"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__ad_analytics_by_creative.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative_tmp\"\n\n), macro as (\n\n select\n \n \n \n clicks\n \n as \n \n clicks\n \n, \n \n \n cost_in_local_currency\n \n as \n \n cost_in_local_currency\n \n, \n \n \n cost_in_usd\n \n as \n \n cost_in_usd\n \n, \n \n \n creative_id\n \n as \n \n creative_id\n \n, \n \n \n day\n \n as \n \n day\n \n, \n \n \n impressions\n \n as \n \n impressions\n \n, \n \n \n conversion_value_in_local_currency\n \n as \n \n conversion_value_in_local_currency\n \n, \n \n \n external_website_conversions\n \n as \n \n external_website_conversions\n \n, \n \n \n one_click_leads\n \n as \n \n one_click_leads\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select\n source_relation,\n date_trunc('day', day) as date_day,\n creative_id,\n clicks, \n impressions,\n \n cost_in_usd as cost,\n \n\n cast(coalesce(conversion_value_in_local_currency, 0) as float) as conversion_value_in_local_currency\n\n \n , coalesce(external_website_conversions, 0) as external_website_conversions\n \n , coalesce(one_click_leads, 0) as one_click_leads\n \n\n \n\n\n\n\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__ad_analytics_by_creative_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__ad_analytics_by_creative_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__ad_analytics_by_creative_tmp"], "alias": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "checksum": {"name": "sha256", "checksum": "3875350fd6f19fb9585c697c1f6413f7e56e37cf7419dc340b5c94b94d0fe987"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1721333069.800045, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='ad_analytics_by_creative', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='ad_analytics_by_creative',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "ad_analytics_by_creative"], ["linkedin_ads", "ad_analytics_by_creative"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__ad_analytics_by_creative_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__campaign_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__campaign_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__campaign_history_tmp"], "alias": "stg_linkedin_ads__campaign_history_tmp", "checksum": {"name": "sha256", "checksum": "57277904daa40b519f861f012daf16c101dfef12ba3e9d613b718c5cdb8de610"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1721333069.8169699, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='campaign_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='campaign_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "campaign_history"], ["linkedin_ads", "campaign_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__campaign_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__account_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__account_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__account_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__account_history_tmp"], "alias": "stg_linkedin_ads__account_history_tmp", "checksum": {"name": "sha256", "checksum": "caea086945e8fcbcc122f063bc8667a1f509f2b210498598e49fa310ab53c04b"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1721333069.82092, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='account_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='account_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "account_history"], ["linkedin_ads", "account_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__account_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__campaign_group_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__campaign_group_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__campaign_group_history_tmp"], "alias": "stg_linkedin_ads__campaign_group_history_tmp", "checksum": {"name": "sha256", "checksum": "ab81fdc6f9397f2481b6b809fc4a571f4c82405a2b1ff9fd526bd00e5c2b9aca"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1721333069.825313, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='campaign_group_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='campaign_group_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "campaign_group_history"], ["linkedin_ads", "campaign_group_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__campaign_group_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__creative_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__creative_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__creative_history_tmp"], "alias": "stg_linkedin_ads__creative_history_tmp", "checksum": {"name": "sha256", "checksum": "8834c1345f54ac9a8e39e4a0efcad9912cf619fc02ba4c686764f0cd332a6fe2"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1721333069.860794, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='creative_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='creative_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "creative_history"], ["linkedin_ads", "creative_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.creative_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__creative_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__ad_analytics_by_campaign_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__ad_analytics_by_campaign_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__ad_analytics_by_campaign_tmp"], "alias": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "checksum": {"name": "sha256", "checksum": "1970c620d47208b109aea8708b078f745b755c3961e4be604524ee6c6af698f5"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1721333069.865163, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='ad_analytics_by_campaign', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='ad_analytics_by_campaign',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "ad_analytics_by_campaign"], ["linkedin_ads", "ad_analytics_by_campaign"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__ad_analytics_by_campaign_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "creative_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_creative')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.9567502, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect creative_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\nwhere creative_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "creative_id", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_creative", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_creative')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.958032, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "date_day", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_creative", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "date_day", "creative_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_creative')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id"], "alias": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810"}, "created_at": 1721333069.95907, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, date_day, creative_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\n group by source_relation, date_day, creative_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_creative", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_campaign')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.965811, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "campaign_id", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_campaign", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_campaign')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.966954, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "date_day", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_campaign", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "date_day", "campaign_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_campaign')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id"], "alias": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06"}, "created_at": 1721333069.967938, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, date_day, campaign_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\n group by source_relation, date_day, campaign_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_campaign", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"}, "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "creative_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__creative_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__creative_history_creative_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__creative_history_creative_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__creative_history_creative_id"], "alias": "not_null_stg_linkedin_ads__creative_history_creative_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.970206, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__creative_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__creative_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__creative_history_creative_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect creative_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history\"\nwhere creative_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "creative_id", "file_key_name": "models.stg_linkedin_ads__creative_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__creative_history"}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_history_campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__campaign_history_campaign_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_history_campaign_id"], "alias": "not_null_stg_linkedin_ads__campaign_history_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.97134, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__campaign_history_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "campaign_id", "file_key_name": "models.stg_linkedin_ads__campaign_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_history"}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "version_tag", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_history_version_tag", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__campaign_history_version_tag.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_history_version_tag"], "alias": "not_null_stg_linkedin_ads__campaign_history_version_tag", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.9723141, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__campaign_history_version_tag.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect version_tag\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\nwhere version_tag is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "version_tag", "file_key_name": "models.stg_linkedin_ads__campaign_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_history"}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "version_tag", "campaign_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id"], "alias": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370"}, "created_at": 1721333069.973301, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, version_tag, campaign_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\n group by source_relation, version_tag, campaign_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__campaign_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_history"}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_group_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_group_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id"], "alias": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a"}, "created_at": 1721333069.975744, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_group_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\nwhere campaign_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "campaign_group_id", "file_key_name": "models.stg_linkedin_ads__campaign_group_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_group_history"}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "last_modified_at", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_group_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_group_history_last_modified_at", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_group_history_last_modified_at"], "alias": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd"}, "created_at": 1721333069.976717, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_modified_at\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\nwhere last_modified_at is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "last_modified_at", "file_key_name": "models.stg_linkedin_ads__campaign_group_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_group_history"}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "last_modified_at", "campaign_group_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_group_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id"], "alias": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31"}, "created_at": 1721333069.977685, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, last_modified_at, campaign_group_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\n group by source_relation, last_modified_at, campaign_group_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__campaign_group_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_group_history"}, "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "account_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__account_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__account_history_account_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__account_history_account_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__account_history_account_id"], "alias": "not_null_stg_linkedin_ads__account_history_account_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.9800751, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__account_history_account_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect account_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\nwhere account_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "account_id", "file_key_name": "models.stg_linkedin_ads__account_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__account_history"}, "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81": {"test_metadata": {"name": "not_null", "kwargs": {"column_name": "version_tag", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__account_history')) }}"}, "namespace": null}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__account_history_version_tag", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__account_history_version_tag.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__account_history_version_tag"], "alias": "not_null_stg_linkedin_ads__account_history_version_tag", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {}, "created_at": 1721333069.981046, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__account_history_version_tag.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect version_tag\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\nwhere version_tag is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "version_tag", "file_key_name": "models.stg_linkedin_ads__account_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__account_history"}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c": {"test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "account_id", "version_tag"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__account_history')) }}"}, "namespace": "dbt_utils"}, "database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag"], "alias": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "deferred": false, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1"}, "created_at": 1721333069.982016, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, account_id, version_tag\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\n group by source_relation, account_id, version_tag\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__account_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__account_history"}}, "sources": {"source.linkedin_source.linkedin_ads.ad_analytics_by_creative": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "ad_analytics_by_creative", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_creative", "fqn": ["linkedin_source", "linkedin_ads", "ad_analytics_by_creative"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_ad_analytics_by_creative_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record in this table represents the daily performance of ads at the creative level.", "columns": {"creative_id": {"name": "creative_id", "description": "The ID of the related creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "day": {"name": "day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_local_currency": {"name": "cost_in_local_currency", "description": "The cost of the ads in the local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_usd": {"name": "cost_in_usd", "description": "The cost of the ads in the USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "created_at": 1721333070.02657}, "source.linkedin_source.linkedin_ads.creative_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "creative_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.creative_history", "fqn": ["linkedin_source", "linkedin_ads", "creative_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_creative_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of a creative.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated (Linkedin Ads pre-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated (Linkedin Ads post-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the creative was created (Linkedin Ads pre-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the creative was created (Linkedin Ads post-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the campaign the creative belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "click_uri": {"name": "click_uri", "description": "Required when creative type is TEXT_AD. Maximum character limit of 500 after URL encoding all special characters. \nLimit does not include the \"https://\" prefix.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "intended_status": {"name": "intended_status", "description": "ACTIVE - Creative creation is complete and creative is available for review and serve.\nPAUSED - Creative creation is complete and creative is current, but should temporarily not be served. This status is not valid upon creation.\nDRAFT - Creative creation is incomplete and may still be edited.\nARCHIVED - Creative creation is complete, but creative should not be served and should be separated from non-archived creatives in any UI.\nCANCELED - Creative is permanently canceled.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "created_at": 1721333070.026743}, "source.linkedin_source.linkedin_ads.campaign_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "campaign_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.campaign_history", "fqn": ["linkedin_source", "linkedin_ads", "campaign_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_campaign_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of a campaign.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_id": {"name": "campaign_group_id", "description": "The ID of the campaign group the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the campaign was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "name": {"name": "name", "description": "A label for the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "audience_expansion_enabled": {"name": "audience_expansion_enabled", "description": "Boolean (default=false) representing whether Audience Expansion is enabled for the campaign provides query expansion for certain targeting criteria.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_type": {"name": "cost_type", "description": "CPM - Cost per thousand advertising impressions. If type=SPONSORED_INMAILS; cost per send(CPS) is measured as CPM x 1000.\nCPC- Cost per individual click on the associated link.\nCPV- Cost per view for video ads.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_selection": {"name": "creative_selection", "description": "ROUND_ROBIN - Rotate through available creatives to serve them as evenly as possible.\nOPTIMIZED (default) - Bias selection taking into account such as expected performance. Not available for Message and Conversation Ads (type=SPONSORED_INMAILS).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_amount": {"name": "daily_budget_amount", "description": "Maximum amount to spend per day UTC. The amount of money as a real number string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_currency_code": {"name": "daily_budget_currency_code", "description": "ISO currency code. The currency must match that of the parent account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "format": {"name": "format", "description": "The ad format on the campaign level. See https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/campaign-formats?view=li-lms-2022-07", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_country": {"name": "locale_country", "description": "Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_language": {"name": "locale_language", "description": "Locale of the campaign. A lowercase two-letter language code as defined by ISO-639.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "objective_type": {"name": "objective_type", "description": "Campaign Objective type values. Click [here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ad-budget-pricing-type-combinations?view=li-lms-2022-07) for Campaign Objective descriptions. One of: - BRAND_AWARENESS - ENGAGEMENT - JOB_APPLICANTS - LEAD_GENERATION - WEBSITE_CONVERSIONS - WEBSITE_VISITS - VIDEO_VIEWS\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "offsite_delivery_enabled": {"name": "offsite_delivery_enabled", "description": "Boolean indicating if this campaign to allowed to be served on the LinkedIn Audience Network to extend the reach of your campaign by delivering ads beyond the LinkedIn feed to members on third-party apps and sites.\t(default will be \"True\" from June 30, 2022)\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "optimization_target_type": {"name": "optimization_target_type", "description": "Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to the documentation here. Default = 'NONE'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start": {"name": "run_schedule_start", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the inclusive (greater than or equal to) value in which to start the range.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end": {"name": "run_schedule_end", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the exclusive (strictly less than) value in which to end the range, if provided.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Denotes that the campaign is fully servable.\nPAUSED - Denotes that the campaign meets all requirements to be served, but temporarily should not be.\nARCHIVED - Denotes that the campaign is presently inactive, and should mostly be hidden in the UI until un-archived.\nCOMPLETED - Denotes that the campaign has reached a specified budgetary or chronological limit.\nCANCELED - Denotes that the campaign has been permanently canceled, such as when an advertising account is permanently closed.\nDRAFT - Denotes that the campaign is still being edited and not eligible for serving. Some validation will be postponed until the campaign is activated.\nPENDING_DELETION - Denotes that the campaign has been requested to be deleted that is currently pending.\nREMOVED - Denotes that the campaign was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "TEXT_AD - Text-based ads that show up in the right column or top of the page on LinkedIn.\nSPONSORED_UPDATES - Native ads that promote a company's content updates in the LinkedIn feed.\nSPONSORED_INMAILS - Personalized messages with a call-to-action button delivered to a LinkedIn's member inbox.\nDYNAMIC - Ads that are dynamically personalized.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_amount": {"name": "unit_cost_amount", "description": "This value is used as one of the following: amount to bid (for manual bidding), amount which is the target cost (for target cost bidding) per click, impression, or other event depending on the pricing model, or cost cap (for cost cap bidding). The amount of money as a real number string. The amount should be non-negative if the bidding strategy is manual, target cost, or cost cap bidding. The default is 0 with the currency code set to match that of the associated account.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_currency_code": {"name": "unit_cost_currency_code", "description": "Amount to bid per click, impression, or other event depending on the pricing model. The default is 0 with the currency code set to match that of the associated account. ISO currency code.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "created_at": 1721333070.026876}, "source.linkedin_source.linkedin_ads.campaign_group_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "campaign_group_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.campaign_group_history", "fqn": ["linkedin_source", "linkedin_ads", "campaign_group_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_campaign_group_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of a campaign group.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign group belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the campaign group was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "name": {"name": "name", "description": "A label for the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "backfilled": {"name": "backfilled", "description": "Flag that denotes whether the campaign group was created organically or to backfill existing campaigns. This is a read-only field set by the system. Default = false", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start": {"name": "run_schedule_start", "description": "Represents the inclusive (greater than or equal to) date when to start running the associated campaigns under this campaign group. This field is required.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end": {"name": "run_schedule_end", "description": "Represents the exclusive (strictly less than) date when to stop running the associated campaigns under this campaign group. If this field is unset, it indicates an open range with no end date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "Status of campaign group. Possible values are: ACTIVE - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). ARCHIVED - Denotes that the campaign group is presently inactive, and should mostly be hidden in the UI until un-archived. CANCELLED - Denotes that the campaign group has been permanently canceled and cannot be reactivated. Not a settable status. DRAFT - Denotes that the campaign group is in a preliminary state and should temporarily not be served. PAUSED - Denotes that the campaign group meets all requirements to be served, but temporarily should not be. PENDING_DELETION - Denotes that the campaign group has been requested to be deleted that is currently pending. REMOVED - Denoted that the campaign group was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "created_at": 1721333070.026981}, "source.linkedin_source.linkedin_ads.account_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "account_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.account_history", "fqn": ["linkedin_source", "linkedin_ads", "account_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_account_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of an account.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the account was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "name": {"name": "name", "description": "A label for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The ISO 4217 currency code of the account, such as 'USD' for United States Dollar (default).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_campaign_optimization": {"name": "notified_on_campaign_optimization", "description": "Boolean (default=false) indicating if the campaign contact is notified about campaign optimization opportunities", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_creative_approval": {"name": "notified_on_creative_approval", "description": "Boolean (default=false) indicating if the creative contact is notified when a creative has been reviewed and approved", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_creative_rejection": {"name": "notified_on_creative_rejection", "description": "Boolean (default=false) indicating if the creative contact is notified when a creative has been rejected due to content", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_end_of_campaign": {"name": "notified_on_end_of_campaign", "description": "Boolean (default=false) indicating if the campaign contact is notified when an associated campaign has been completed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Account is active; this is the default state\nCANCELLED - Account has been permanently cancelled\nDRAFT - Account is in draft status, meaning it's not yet fully set up and it is not serving\nPENDING_DELETION - Denotes that the account has been requested to be deleted that is currently pending\nREMOVED - Denotes that the account was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "BUSINESS - This is the only value allowed when creating accounts through the API.\nENTERPRISE - This value cannot be used to create accounts through the API and is reserved for accounts created by LinkedIn's internal ad operations systems.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "created_at": 1721333070.027085}, "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "ad_analytics_by_campaign", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign", "fqn": ["linkedin_source", "linkedin_ads", "ad_analytics_by_campaign"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_ad_analytics_by_campaign_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record in this table represents the daily performance of ads at the campaign level.", "columns": {"campaign_id": {"name": "campaign_id", "description": "The ID of the related campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "day": {"name": "day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_local_currency": {"name": "cost_in_local_currency", "description": "The cost of the ads in the local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_usd": {"name": "cost_in_usd", "description": "The cost of the ads in the USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "created_at": 1721333070.027188}}, "macros": {"macro.dbt_postgres.postgres__current_timestamp": {"name": "postgres__current_timestamp", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.954093, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"name": "postgres__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "macro_sql": "{% macro postgres__snapshot_string_as_time(timestamp) -%}\n {%- set result = \"'\" ~ timestamp ~ \"'::timestamp without time zone\" -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.954326, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"name": "postgres__snapshot_get_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.954436, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"name": "postgres__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9545379, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"name": "postgres__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro postgres__current_timestamp_in_utc_backcompat() %}\n (current_timestamp at time zone 'utc')::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9546392, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog_relations": {"name": "postgres__get_catalog_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog_relations", "macro_sql": "{% macro postgres__get_catalog_relations(information_schema, relations) -%}\n {%- call statement('catalog', fetch_result=True) -%}\n\n {#\n If the user has multiple databases set and the first one is wrong, this will fail.\n But we won't fail in the case where there are multiple quoting-difference-only dbs, which is better.\n #}\n {% set database = information_schema.database %}\n {{ adapter.verify_database(database) }}\n\n select\n '{{ database }}' as table_database,\n sch.nspname as table_schema,\n tbl.relname as table_name,\n case tbl.relkind\n when 'v' then 'VIEW'\n when 'm' then 'MATERIALIZED VIEW'\n else 'BASE TABLE'\n end as table_type,\n tbl_desc.description as table_comment,\n col.attname as column_name,\n col.attnum as column_index,\n pg_catalog.format_type(col.atttypid, col.atttypmod) as column_type,\n col_desc.description as column_comment,\n pg_get_userbyid(tbl.relowner) as table_owner\n\n from pg_catalog.pg_namespace sch\n join pg_catalog.pg_class tbl on tbl.relnamespace = sch.oid\n join pg_catalog.pg_attribute col on col.attrelid = tbl.oid\n left outer join pg_catalog.pg_description tbl_desc on (tbl_desc.objoid = tbl.oid and tbl_desc.objsubid = 0)\n left outer join pg_catalog.pg_description col_desc on (col_desc.objoid = tbl.oid and col_desc.objsubid = col.attnum)\n where (\n {%- for relation in relations -%}\n {%- if relation.identifier -%}\n (upper(sch.nspname) = upper('{{ relation.schema }}') and\n upper(tbl.relname) = upper('{{ relation.identifier }}'))\n {%- else-%}\n upper(sch.nspname) = upper('{{ relation.schema }}')\n {%- endif -%}\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n and not pg_is_other_temp_schema(sch.oid) -- not a temporary schema belonging to another session\n and tbl.relpersistence in ('p', 'u') -- [p]ermanent table or [u]nlogged table. Exclude [t]emporary tables\n and tbl.relkind in ('r', 'v', 'f', 'p', 'm') -- o[r]dinary table, [v]iew, [f]oreign table, [p]artitioned table, [m]aterialized view. Other values are [i]ndex, [S]equence, [c]omposite type, [t]OAST table\n and col.attnum > 0 -- negative numbers are used for system columns such as oid\n and not col.attisdropped -- column as not been dropped\n\n order by\n sch.nspname,\n tbl.relname,\n col.attnum\n\n {%- endcall -%}\n\n {{ return(load_result('catalog').table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9561658, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"name": "postgres__get_catalog", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog", "macro_sql": "{% macro postgres__get_catalog(information_schema, schemas) -%}\n {%- set relations = [] -%}\n {%- for schema in schemas -%}\n {%- set dummy = relations.append({'schema': schema}) -%}\n {%- endfor -%}\n {{ return(postgres__get_catalog_relations(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.956525, "supported_languages": null}, "macro.dbt_postgres.postgres__get_relations": {"name": "postgres__get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres__get_relations", "macro_sql": "{% macro postgres__get_relations() -%}\n\n {#\n -- in pg_depend, objid is the dependent, refobjid is the referenced object\n -- > a pg_depend entry indicates that the referenced object cannot be\n -- > dropped without also dropping the dependent object.\n #}\n\n {%- call statement('relations', fetch_result=True) -%}\n with relation as (\n select\n pg_rewrite.ev_class as class,\n pg_rewrite.oid as id\n from pg_rewrite\n ),\n class as (\n select\n oid as id,\n relname as name,\n relnamespace as schema,\n relkind as kind\n from pg_class\n ),\n dependency as (\n select distinct\n pg_depend.objid as id,\n pg_depend.refobjid as ref\n from pg_depend\n ),\n schema as (\n select\n pg_namespace.oid as id,\n pg_namespace.nspname as name\n from pg_namespace\n where nspname != 'information_schema' and nspname not like 'pg\\_%'\n ),\n referenced as (\n select\n relation.id AS id,\n referenced_class.name ,\n referenced_class.schema ,\n referenced_class.kind\n from relation\n join class as referenced_class on relation.class=referenced_class.id\n where referenced_class.kind in ('r', 'v', 'm')\n ),\n relationships as (\n select\n referenced.name as referenced_name,\n referenced.schema as referenced_schema_id,\n dependent_class.name as dependent_name,\n dependent_class.schema as dependent_schema_id,\n referenced.kind as kind\n from referenced\n join dependency on referenced.id=dependency.id\n join class as dependent_class on dependency.ref=dependent_class.id\n where\n (referenced.name != dependent_class.name or\n referenced.schema != dependent_class.schema)\n )\n\n select\n referenced_schema.name as referenced_schema,\n relationships.referenced_name as referenced_name,\n dependent_schema.name as dependent_schema,\n relationships.dependent_name as dependent_name\n from relationships\n join schema as dependent_schema on relationships.dependent_schema_id=dependent_schema.id\n join schema as referenced_schema on relationships.referenced_schema_id=referenced_schema.id\n group by referenced_schema, referenced_name, dependent_schema, dependent_name\n order by referenced_schema, referenced_name, dependent_schema, dependent_name;\n\n {%- endcall -%}\n\n {{ return(load_result('relations').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9571579, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"name": "postgres_get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres_get_relations", "macro_sql": "{% macro postgres_get_relations() %}\n {{ return(postgres__get_relations()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.957281, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"name": "postgres__create_table_as", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_table_as", "macro_sql": "{% macro postgres__create_table_as(temporary, relation, sql) -%}\n {%- set unlogged = config.get('unlogged', default=false) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary -%}\n temporary\n {%- elif unlogged -%}\n unlogged\n {%- endif %} table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {% endif -%}\n {% if contract_config.enforced and (not temporary) -%}\n {{ get_table_columns_and_constraints() }} ;\n insert into {{ relation }} (\n {{ adapter.dispatch('get_column_names', 'dbt')() }}\n )\n {%- set sql = get_select_subquery(sql) %}\n {% else %}\n as\n {% endif %}\n (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.default__get_column_names", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.965118, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"name": "postgres__get_create_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "macro_sql": "{% macro postgres__get_create_index_sql(relation, index_dict) -%}\n {%- set index_config = adapter.parse_index(index_dict) -%}\n {%- set comma_separated_columns = \", \".join(index_config.columns) -%}\n {%- set index_name = index_config.render(relation) -%}\n\n create {% if index_config.unique -%}\n unique\n {%- endif %} index if not exists\n \"{{ index_name }}\"\n on {{ relation }} {% if index_config.type -%}\n using {{ index_config.type }}\n {%- endif %}\n ({{ comma_separated_columns }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9655948, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"name": "postgres__create_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_schema", "macro_sql": "{% macro postgres__create_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier().include(database=False) }}\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.965885, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"name": "postgres__drop_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__drop_schema", "macro_sql": "{% macro postgres__drop_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier().include(database=False) }} cascade\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.966169, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"name": "postgres__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "macro_sql": "{% macro postgres__get_columns_in_relation(relation) -%}\n {% call statement('get_columns_in_relation', fetch_result=True) %}\n select\n column_name,\n data_type,\n character_maximum_length,\n numeric_precision,\n numeric_scale\n\n from {{ relation.information_schema('columns') }}\n where table_name = '{{ relation.identifier }}'\n {% if relation.schema %}\n and table_schema = '{{ relation.schema }}'\n {% endif %}\n order by ordinal_position\n\n {% endcall %}\n {% set table = load_result('get_columns_in_relation').table %}\n {{ return(sql_convert_columns_in_relation(table)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.sql_convert_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.966597, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"name": "postgres__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "macro_sql": "{% macro postgres__list_relations_without_caching(schema_relation) %}\n {% call statement('list_relations_without_caching', fetch_result=True) -%}\n select\n '{{ schema_relation.database }}' as database,\n tablename as name,\n schemaname as schema,\n 'table' as type\n from pg_tables\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n viewname as name,\n schemaname as schema,\n 'view' as type\n from pg_views\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n matviewname as name,\n schemaname as schema,\n 'materialized_view' as type\n from pg_matviews\n where schemaname ilike '{{ schema_relation.schema }}'\n {% endcall %}\n {{ return(load_result('list_relations_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9669938, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"name": "postgres__information_schema_name", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__information_schema_name", "macro_sql": "{% macro postgres__information_schema_name(database) -%}\n {% if database_name -%}\n {{ adapter.verify_database(database_name) }}\n {%- endif -%}\n information_schema\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9671528, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"name": "postgres__list_schemas", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_schemas", "macro_sql": "{% macro postgres__list_schemas(database) %}\n {% if database -%}\n {{ adapter.verify_database(database) }}\n {%- endif -%}\n {% call statement('list_schemas', fetch_result=True, auto_begin=False) %}\n select distinct nspname from pg_namespace\n {% endcall %}\n {{ return(load_result('list_schemas').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.967475, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"name": "postgres__check_schema_exists", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "macro_sql": "{% macro postgres__check_schema_exists(information_schema, schema) -%}\n {% if information_schema.database -%}\n {{ adapter.verify_database(information_schema.database) }}\n {%- endif -%}\n {% call statement('check_schema_exists', fetch_result=True, auto_begin=False) %}\n select count(*) from pg_namespace where nspname = '{{ schema }}'\n {% endcall %}\n {{ return(load_result('check_schema_exists').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.967825, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"name": "postgres__make_relation_with_suffix", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "macro_sql": "{% macro postgres__make_relation_with_suffix(base_relation, suffix, dstring) %}\n {% if dstring %}\n {% set dt = modules.datetime.datetime.now() %}\n {% set dtstring = dt.strftime(\"%H%M%S%f\") %}\n {% set suffix = suffix ~ dtstring %}\n {% endif %}\n {% set suffix_length = suffix|length %}\n {% set relation_max_name_length = base_relation.relation_max_name_length() %}\n {% if suffix_length > relation_max_name_length %}\n {% do exceptions.raise_compiler_error('Relation suffix is too long (' ~ suffix_length ~ ' characters). Maximum length is ' ~ relation_max_name_length ~ ' characters.') %}\n {% endif %}\n {% set identifier = base_relation.identifier[:relation_max_name_length - suffix_length] ~ suffix %}\n\n {{ return(base_relation.incorporate(path={\"identifier\": identifier })) }}\n\n {% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.968683, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"name": "postgres__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "macro_sql": "{% macro postgres__make_intermediate_relation(base_relation, suffix) %}\n {{ return(postgres__make_relation_with_suffix(base_relation, suffix, dstring=False)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.968868, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"name": "postgres__make_temp_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "macro_sql": "{% macro postgres__make_temp_relation(base_relation, suffix) %}\n {% set temp_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=True) %}\n {{ return(temp_relation.incorporate(path={\"schema\": none,\n \"database\": none})) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9691808, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"name": "postgres__make_backup_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "macro_sql": "{% macro postgres__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {% set backup_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=False) %}\n {{ return(backup_relation.incorporate(type=backup_relation_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.969433, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"name": "postgres_escape_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres_escape_comment", "macro_sql": "{% macro postgres_escape_comment(comment) -%}\n {% if comment is not string %}\n {% do exceptions.raise_compiler_error('cannot escape a non-string: ' ~ comment) %}\n {% endif %}\n {%- set magic = '$dbt_comment_literal_block$' -%}\n {%- if magic in comment -%}\n {%- do exceptions.raise_compiler_error('The string ' ~ magic ~ ' is not allowed in comments.') -%}\n {%- endif -%}\n {{ magic }}{{ comment }}{{ magic }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9698188, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"name": "postgres__alter_relation_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "macro_sql": "{% macro postgres__alter_relation_comment(relation, comment) %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on {{ relation.type }} {{ relation }} is {{ escaped_comment }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.970022, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"name": "postgres__alter_column_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "macro_sql": "{% macro postgres__alter_column_comment(relation, column_dict) %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% for column_name in column_dict if (column_name in existing_columns) %}\n {% set comment = column_dict[column_name]['description'] %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on column {{ relation }}.{{ adapter.quote(column_name) if column_dict[column_name]['quote'] else column_name }} is {{ escaped_comment }};\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.970558, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"name": "postgres__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "macro_sql": "\n\n{%- macro postgres__get_show_grant_sql(relation) -%}\n select grantee, privilege_type\n from {{ relation.information_schema('role_table_grants') }}\n where grantor = current_role\n and grantee != current_role\n and table_schema = '{{ relation.schema }}'\n and table_name = '{{ relation.identifier }}'\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.970757, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"name": "postgres__copy_grants", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.970863, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_indexes_sql": {"name": "postgres__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_indexes_sql", "macro_sql": "{% macro postgres__get_show_indexes_sql(relation) %}\n select\n i.relname as name,\n m.amname as method,\n ix.indisunique as \"unique\",\n array_to_string(array_agg(a.attname), ',') as column_names\n from pg_index ix\n join pg_class i\n on i.oid = ix.indexrelid\n join pg_am m\n on m.oid=i.relam\n join pg_class t\n on t.oid = ix.indrelid\n join pg_namespace n\n on n.oid = t.relnamespace\n join pg_attribute a\n on a.attrelid = t.oid\n and a.attnum = ANY(ix.indkey)\n where t.relname = '{{ relation.identifier }}'\n and n.nspname = '{{ relation.schema }}'\n and t.relkind in ('r', 'm')\n group by 1, 2, 3\n order by 1, 2, 3\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.971029, "supported_languages": null}, "macro.dbt_postgres.postgres__get_drop_index_sql": {"name": "postgres__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_drop_index_sql", "macro_sql": "\n\n\n{%- macro postgres__get_drop_index_sql(relation, index_name) -%}\n drop index if exists \"{{ relation.schema }}\".\"{{ index_name }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.971154, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"name": "postgres__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "macro_sql": "{% macro postgres__get_incremental_default_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(get_incremental_delete_insert_sql(arg_dict)) %}\n {% else %}\n {% do return(get_incremental_append_sql(arg_dict)) %}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_delete_insert_sql", "macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.971505, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"name": "postgres__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "macro_sql": "{% macro postgres__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n update {{ target }}\n set dbt_valid_to = DBT_INTERNAL_SOURCE.dbt_valid_to\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_scd_id::text = {{ target }}.dbt_scd_id::text\n and DBT_INTERNAL_SOURCE.dbt_change_type::text in ('update'::text, 'delete'::text)\n and {{ target }}.dbt_valid_to is null;\n\n insert into {{ target }} ({{ insert_cols_csv }})\n select {% for column in insert_cols -%}\n DBT_INTERNAL_SOURCE.{{ column }} {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_change_type::text = 'insert'::text;\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9721541, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_materialized_view": {"name": "postgres__drop_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_materialized_view", "macro_sql": "{% macro postgres__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.972283, "supported_languages": null}, "macro.dbt_postgres.postgres__describe_materialized_view": {"name": "postgres__describe_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/describe.sql", "original_file_path": "macros/relations/materialized_view/describe.sql", "unique_id": "macro.dbt_postgres.postgres__describe_materialized_view", "macro_sql": "{% macro postgres__describe_materialized_view(relation) %}\n -- for now just get the indexes, we don't need the name or the query yet\n {% set _indexes = run_query(get_show_indexes_sql(relation)) %}\n {% do return({'indexes': _indexes}) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.97255, "supported_languages": null}, "macro.dbt_postgres.postgres__refresh_materialized_view": {"name": "postgres__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt_postgres.postgres__refresh_materialized_view", "macro_sql": "{% macro postgres__refresh_materialized_view(relation) %}\n refresh materialized view {{ relation }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9726799, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_materialized_view_sql": {"name": "postgres__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_materialized_view_sql", "macro_sql": "{% macro postgres__get_rename_materialized_view_sql(relation, new_name) %}\n alter materialized view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9728372, "supported_languages": null}, "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql": {"name": "postgres__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n\n -- apply a full refresh immediately if needed\n {% if configuration_changes.requires_full_refresh %}\n\n {{ get_replace_sql(existing_relation, relation, sql) }}\n\n -- otherwise apply individual changes as needed\n {% else %}\n\n {{ postgres__update_indexes_on_materialized_view(relation, configuration_changes.indexes) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_sql", "macro.dbt_postgres.postgres__update_indexes_on_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.97364, "supported_languages": null}, "macro.dbt_postgres.postgres__update_indexes_on_materialized_view": {"name": "postgres__update_indexes_on_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__update_indexes_on_materialized_view", "macro_sql": "\n\n\n{%- macro postgres__update_indexes_on_materialized_view(relation, index_changes) -%}\n {{- log(\"Applying UPDATE INDEXES to: \" ~ relation) -}}\n\n {%- for _index_change in index_changes -%}\n {%- set _index = _index_change.context -%}\n\n {%- if _index_change.action == \"drop\" -%}\n\n {{ postgres__get_drop_index_sql(relation, _index.name) }}\n\n {%- elif _index_change.action == \"create\" -%}\n\n {{ postgres__get_create_index_sql(relation, _index.as_node_config) }}\n\n {%- endif -%}\n {{ ';' if not loop.last else \"\" }}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql", "macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.974135, "supported_languages": null}, "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes": {"name": "postgres__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes", "macro_sql": "{% macro postgres__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {% set _existing_materialized_view = postgres__describe_materialized_view(existing_relation) %}\n {% set _configuration_changes = existing_relation.get_materialized_view_config_change_collection(_existing_materialized_view, new_config) %}\n {% do return(_configuration_changes) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__describe_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.974472, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql": {"name": "postgres__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_create_materialized_view_as_sql(relation, sql) %}\n create materialized view if not exists {{ relation }} as {{ sql }};\n\n {% for _index_dict in config.get('indexes', []) -%}\n {{- get_create_index_sql(relation, _index_dict) -}}{{ ';' if not loop.last else \"\" }}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.974875, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_table": {"name": "postgres__drop_table", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_table", "macro_sql": "{% macro postgres__drop_table(relation) -%}\n drop table if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.975004, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_table_sql": {"name": "postgres__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_table_sql", "macro_sql": "{% macro postgres__get_replace_table_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.975623, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_table_sql": {"name": "postgres__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_table_sql", "macro_sql": "{% macro postgres__get_rename_table_sql(relation, new_name) %}\n alter table {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9757829, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_view": {"name": "postgres__drop_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_view", "macro_sql": "{% macro postgres__drop_view(relation) -%}\n drop view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9759018, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_view_sql": {"name": "postgres__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_view_sql", "macro_sql": "{% macro postgres__get_replace_view_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace view {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9764118, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_view_sql": {"name": "postgres__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_view_sql", "macro_sql": "{% macro postgres__get_rename_view_sql(relation, new_name) %}\n alter view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9765692, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"name": "postgres__dateadd", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_postgres.postgres__dateadd", "macro_sql": "{% macro postgres__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {{ from_date_or_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.976762, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"name": "postgres__listagg", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_postgres.postgres__listagg", "macro_sql": "{% macro postgres__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n (array_agg(\n {{ measure }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n ))[1:{{ limit_num }}],\n {{ delimiter_text }}\n )\n {%- else %}\n string_agg(\n {{ measure }},\n {{ delimiter_text }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n )\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.97731, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"name": "postgres__datediff", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt_postgres.postgres__datediff", "macro_sql": "{% macro postgres__datediff(first_date, second_date, datepart) -%}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.980201, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"name": "postgres__any_value", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt_postgres.postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.980347, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"name": "postgres__last_day", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt_postgres.postgres__last_day", "macro_sql": "{% macro postgres__last_day(date, datepart) -%}\n\n {%- if datepart == 'quarter' -%}\n -- postgres dateadd does not support quarter interval.\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd('month', '3', dbt.date_trunc(datepart, date))\n )}}\n as date)\n {%- else -%}\n {{dbt.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9808, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"name": "postgres__split_part", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_postgres.postgres__split_part", "macro_sql": "{% macro postgres__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__split_part", "macro.dbt._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.981167, "supported_languages": null}, "macro.dbt.run_hooks": {"name": "run_hooks", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.run_hooks", "macro_sql": "{% macro run_hooks(hooks, inside_transaction=True) %}\n {% for hook in hooks | selectattr('transaction', 'equalto', inside_transaction) %}\n {% if not inside_transaction and loop.first %}\n {% call statement(auto_begin=inside_transaction) %}\n commit;\n {% endcall %}\n {% endif %}\n {% set rendered = render(hook.get('sql')) | trim %}\n {% if (rendered | length) > 0 %}\n {% call statement(auto_begin=inside_transaction) %}\n {{ rendered }}\n {% endcall %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.982153, "supported_languages": null}, "macro.dbt.make_hook_config": {"name": "make_hook_config", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.982327, "supported_languages": null}, "macro.dbt.before_begin": {"name": "before_begin", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.982458, "supported_languages": null}, "macro.dbt.in_transaction": {"name": "in_transaction", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9826071, "supported_languages": null}, "macro.dbt.after_commit": {"name": "after_commit", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.982738, "supported_languages": null}, "macro.dbt.set_sql_header": {"name": "set_sql_header", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9830751, "supported_languages": null}, "macro.dbt.should_full_refresh": {"name": "should_full_refresh", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_full_refresh", "macro_sql": "{% macro should_full_refresh() %}\n {% set config_full_refresh = config.get('full_refresh') %}\n {% if config_full_refresh is none %}\n {% set config_full_refresh = flags.FULL_REFRESH %}\n {% endif %}\n {% do return(config_full_refresh) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.983347, "supported_languages": null}, "macro.dbt.should_store_failures": {"name": "should_store_failures", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_store_failures", "macro_sql": "{% macro should_store_failures() %}\n {% set config_store_failures = config.get('store_failures') %}\n {% if config_store_failures is none %}\n {% set config_store_failures = flags.STORE_FAILURES %}\n {% endif %}\n {% do return(config_store_failures) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.983619, "supported_languages": null}, "macro.dbt.snapshot_merge_sql": {"name": "snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.snapshot_merge_sql", "macro_sql": "{% macro snapshot_merge_sql(target, source, insert_cols) -%}\n {{ adapter.dispatch('snapshot_merge_sql', 'dbt')(target, source, insert_cols) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9840121, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"name": "default__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.default__snapshot_merge_sql", "macro_sql": "{% macro default__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.dbt_scd_id = DBT_INTERNAL_DEST.dbt_scd_id\n\n when matched\n and DBT_INTERNAL_DEST.dbt_valid_to is null\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set dbt_valid_to = DBT_INTERNAL_SOURCE.dbt_valid_to\n\n when not matched\n and DBT_INTERNAL_SOURCE.dbt_change_type = 'insert'\n then insert ({{ insert_cols_csv }})\n values ({{ insert_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.984256, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"name": "strategy_dispatch", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.strategy_dispatch", "macro_sql": "{% macro strategy_dispatch(name) -%}\n{% set original_name = name %}\n {% if '.' in name %}\n {% set package_name, name = name.split(\".\", 1) %}\n {% else %}\n {% set package_name = none %}\n {% endif %}\n\n {% if package_name is none %}\n {% set package_context = context %}\n {% elif package_name in context %}\n {% set package_context = context[package_name] %}\n {% else %}\n {% set error_msg %}\n Could not find package '{{package_name}}', called with '{{original_name}}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n\n {%- set search_name = 'snapshot_' ~ name ~ '_strategy' -%}\n\n {% if search_name not in package_context %}\n {% set error_msg %}\n The specified strategy macro '{{name}}' was not found in package '{{ package_name }}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n {{ return(package_context[search_name]) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.987475, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"name": "snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.987631, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"name": "default__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_hash_arguments", "macro_sql": "{% macro default__snapshot_hash_arguments(args) -%}\n md5({%- for arg in args -%}\n coalesce(cast({{ arg }} as varchar ), '')\n {% if not loop.last %} || '|' || {% endif %}\n {%- endfor -%})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.987831, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"name": "snapshot_timestamp_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_timestamp_strategy", "macro_sql": "{% macro snapshot_timestamp_strategy(node, snapshotted_rel, current_rel, config, target_exists) %}\n {% set primary_key = config['unique_key'] %}\n {% set updated_at = config['updated_at'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\n\n {#/*\n The snapshot relation might not have an {{ updated_at }} value if the\n snapshot strategy is changed from `check` to `timestamp`. We\n should use a dbt-created column for the comparison in the snapshot\n table instead of assuming that the user-supplied {{ updated_at }}\n will be present in the historical data.\n\n See https://github.com/dbt-labs/dbt-core/issues/2350\n */ #}\n {% set row_changed_expr -%}\n ({{ snapshotted_rel }}.dbt_valid_from < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.988481, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"name": "snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.988631, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"name": "default__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_string_as_time", "macro_sql": "{% macro default__snapshot_string_as_time(timestamp) %}\n {% do exceptions.raise_not_implemented(\n 'snapshot_string_as_time macro not implemented for adapter '+adapter.type()\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.98879, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"name": "snapshot_check_all_get_existing_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "macro_sql": "{% macro snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) -%}\n {%- if not target_exists -%}\n {#-- no table yet -> return whatever the query does --#}\n {{ return((false, query_columns)) }}\n {%- endif -%}\n\n {#-- handle any schema changes --#}\n {%- set target_relation = adapter.get_relation(database=node.database, schema=node.schema, identifier=node.alias) -%}\n\n {% if check_cols_config == 'all' %}\n {%- set query_columns = get_columns_in_query(node['compiled_code']) -%}\n\n {% elif check_cols_config is iterable and (check_cols_config | length) > 0 %}\n {#-- query for proper casing/quoting, to support comparison below --#}\n {%- set select_check_cols_from_target -%}\n {#-- N.B. The whitespace below is necessary to avoid edge case issue with comments --#}\n {#-- See: https://github.com/dbt-labs/dbt-core/issues/6781 --#}\n select {{ check_cols_config | join(', ') }} from (\n {{ node['compiled_code'] }}\n ) subq\n {%- endset -%}\n {% set query_columns = get_columns_in_query(select_check_cols_from_target) %}\n\n {% else %}\n {% do exceptions.raise_compiler_error(\"Invalid value for 'check_cols': \" ~ check_cols_config) %}\n {% endif %}\n\n {%- set existing_cols = adapter.get_columns_in_relation(target_relation) | map(attribute = 'name') | list -%}\n {%- set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {%- set ns.column_added = false -%}\n\n {%- set intersection = [] -%}\n {%- for col in query_columns -%}\n {%- if col in existing_cols -%}\n {%- do intersection.append(adapter.quote(col)) -%}\n {%- else -%}\n {% set ns.column_added = true %}\n {%- endif -%}\n {%- endfor -%}\n {{ return((ns.column_added, intersection)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.990068, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"name": "snapshot_check_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_strategy", "macro_sql": "{% macro snapshot_check_strategy(node, snapshotted_rel, current_rel, config, target_exists) %}\n {% set check_cols_config = config['check_cols'] %}\n {% set primary_key = config['unique_key'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\n {% set updated_at = config.get('updated_at', snapshot_get_time()) %}\n\n {% set column_added = false %}\n\n {% set column_added, check_cols = snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) %}\n\n {%- set row_changed_expr -%}\n (\n {%- if column_added -%}\n {{ get_true_sql() }}\n {%- else -%}\n {%- for col in check_cols -%}\n {{ snapshotted_rel }}.{{ col }} != {{ current_rel }}.{{ col }}\n or\n (\n (({{ snapshotted_rel }}.{{ col }} is null) and not ({{ current_rel }}.{{ col }} is null))\n or\n ((not {{ snapshotted_rel }}.{{ col }} is null) and ({{ current_rel }}.{{ col }} is null))\n )\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n {%- endif -%}\n )\n {%- endset %}\n\n {% set scd_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt.snapshot_check_all_get_existing_columns", "macro.dbt.get_true_sql", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.991301, "supported_languages": null}, "macro.dbt.create_columns": {"name": "create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9947531, "supported_languages": null}, "macro.dbt.default__create_columns": {"name": "default__create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__create_columns", "macro_sql": "{% macro default__create_columns(relation, columns) %}\n {% for column in columns %}\n {% call statement() %}\n alter table {{ relation }} add column \"{{ column.name }}\" {{ column.data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.995009, "supported_languages": null}, "macro.dbt.post_snapshot": {"name": "post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.99516, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"name": "default__post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.99524, "supported_languages": null}, "macro.dbt.get_true_sql": {"name": "get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.995373, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"name": "default__get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.995473, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"name": "snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.snapshot_staging_table", "macro_sql": "{% macro snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {{ adapter.dispatch('snapshot_staging_table', 'dbt')(strategy, source_sql, target_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.995656, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"name": "default__snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__snapshot_staging_table", "macro_sql": "{% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}\n\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *,\n {{ strategy.unique_key }} as dbt_unique_key\n\n from {{ target_relation }}\n where dbt_valid_to is null\n\n ),\n\n insertions_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to,\n {{ strategy.scd_id }} as dbt_scd_id\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n {{ strategy.updated_at }} as dbt_valid_to\n\n from snapshot_query\n ),\n\n {%- if strategy.invalidate_hard_deletes %}\n\n deletes_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key\n from snapshot_query\n ),\n {% endif %}\n\n insertions as (\n\n select\n 'insert' as dbt_change_type,\n source_data.*\n\n from insertions_source_data as source_data\n left outer join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where snapshotted_data.dbt_unique_key is null\n or (\n snapshotted_data.dbt_unique_key is not null\n and (\n {{ strategy.row_changed }}\n )\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.dbt_scd_id\n\n from updates_source_data as source_data\n join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where (\n {{ strategy.row_changed }}\n )\n )\n\n {%- if strategy.invalidate_hard_deletes -%}\n ,\n\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as dbt_valid_from,\n {{ snapshot_get_time() }} as dbt_updated_at,\n {{ snapshot_get_time() }} as dbt_valid_to,\n snapshotted_data.dbt_scd_id\n\n from snapshotted_data\n left join deletes_source_data as source_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where source_data.dbt_unique_key is null\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.invalidate_hard_deletes %}\n union all\n select * from deletes\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.996456, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"name": "build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.996629, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"name": "default__build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__build_snapshot_table", "macro_sql": "{% macro default__build_snapshot_table(strategy, sql) %}\n\n select *,\n {{ strategy.scd_id }} as dbt_scd_id,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.9968581, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"name": "build_snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_staging_table", "macro_sql": "{% macro build_snapshot_staging_table(strategy, sql, target_relation) %}\n {% set temp_relation = make_temp_relation(target_relation) %}\n\n {% set select = snapshot_staging_table(strategy, sql, target_relation) %}\n\n {% call statement('build_snapshot_staging_relation') %}\n {{ create_table_as(True, temp_relation, select) }}\n {% endcall %}\n\n {% do return(temp_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_temp_relation", "macro.dbt.snapshot_staging_table", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333068.997248, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"name": "materialization_snapshot_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "unique_id": "macro.dbt.materialization_snapshot_default", "macro_sql": "{% materialization snapshot, default %}\n {%- set config = model['config'] -%}\n\n {%- set target_table = model.get('alias', model.get('name')) -%}\n\n {%- set strategy_name = config.get('strategy') -%}\n {%- set unique_key = config.get('unique_key') %}\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {% set target_relation_exists, target_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table,\n type='table') -%}\n\n {%- if not target_relation.is_table -%}\n {% do exceptions.relation_wrong_type(target_relation, 'table') %}\n {%- endif -%}\n\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set strategy_macro = strategy_dispatch(strategy_name) %}\n {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", config, target_relation_exists) %}\n\n {% if not target_relation_exists %}\n\n {% set build_sql = build_snapshot_table(strategy, model['compiled_code']) %}\n {% set final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {{ adapter.valid_snapshot_target(target_relation) }}\n\n {% set staging_table = build_snapshot_staging_table(strategy, sql, target_relation) %}\n\n -- this may no-op if the database does not require column expansion\n {% do adapter.expand_target_column_types(from_relation=staging_table,\n to_relation=target_relation) %}\n\n {% set missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\n | list %}\n\n {% do create_columns(target_relation, missing_columns) %}\n\n {% set source_columns = adapter.get_columns_in_relation(staging_table)\n | rejectattr('name', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\n | list %}\n\n {% set quoted_source_columns = [] %}\n {% for column in source_columns %}\n {% do quoted_source_columns.append(adapter.quote(column.name)) %}\n {% endfor %}\n\n {% set final_sql = snapshot_merge_sql(\n target = target_relation,\n source = staging_table,\n insert_cols = quoted_source_columns\n )\n %}\n\n {% endif %}\n\n {% call statement('main') %}\n {{ final_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(target_relation_exists, full_refresh_mode=False) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if not target_relation_exists %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {% if staging_table is defined %}\n {% do post_snapshot(staging_table) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.get_or_create_relation", "macro.dbt.run_hooks", "macro.dbt.strategy_dispatch", "macro.dbt.build_snapshot_table", "macro.dbt.create_table_as", "macro.dbt.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes", "macro.dbt.post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.002579, "supported_languages": ["sql"]}, "macro.dbt.materialization_test_default": {"name": "materialization_test_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "unique_id": "macro.dbt.materialization_test_default", "macro_sql": "{%- materialization test, default -%}\n\n {% set relations = [] %}\n\n {% if should_store_failures() %}\n\n {% set identifier = model['alias'] %}\n {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% set store_failures_as = config.get('store_failures_as') %}\n -- if `--store-failures` is invoked via command line and `store_failures_as` is not set,\n -- config.get('store_failures_as', 'table') returns None, not 'table'\n {% if store_failures_as == none %}{% set store_failures_as = 'table' %}{% endif %}\n {% if store_failures_as not in ['table', 'view'] %}\n {{ exceptions.raise_compiler_error(\n \"'\" ~ store_failures_as ~ \"' is not a valid value for `store_failures_as`. \"\n \"Accepted values are: ['ephemeral', 'table', 'view']\"\n ) }}\n {% endif %}\n\n {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type=store_failures_as) -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {{ get_create_sql(target_relation, sql) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\n {% set main_sql %}\n select *\n from {{ target_relation }}\n {% endset %}\n\n {{ adapter.commit() }}\n\n {% else %}\n\n {% set main_sql = sql %}\n\n {% endif %}\n\n {% set limit = config.get('limit') %}\n {% set fail_calc = config.get('fail_calc') %}\n {% set warn_if = config.get('warn_if') %}\n {% set error_if = config.get('error_if') %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.get_create_sql", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0050292, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"name": "get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_test_sql", "macro_sql": "{% macro get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n {{ adapter.dispatch('get_test_sql', 'dbt')(main_sql, fail_calc, warn_if, error_if, limit) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.005446, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"name": "default__get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_test_sql", "macro_sql": "{% macro default__get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n select\n {{ fail_calc }} as failures,\n {{ fail_calc }} {{ warn_if }} as should_warn,\n {{ fail_calc }} {{ error_if }} as should_error\n from (\n {{ main_sql }}\n {{ \"limit \" ~ limit if limit != none }}\n ) dbt_internal_test\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0057228, "supported_languages": null}, "macro.dbt.get_where_subquery": {"name": "get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.006054, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"name": "default__get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.default__get_where_subquery", "macro_sql": "{% macro default__get_where_subquery(relation) -%}\n {% set where = config.get('where', '') %}\n {% if where %}\n {%- set filtered -%}\n (select * from {{ relation }} where {{ where }}) dbt_subquery\n {%- endset -%}\n {% do return(filtered) %}\n {%- else -%}\n {% do return(relation) %}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.006387, "supported_languages": null}, "macro.dbt.materialization_materialized_view_default": {"name": "materialization_materialized_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialization_materialized_view_default", "macro_sql": "{% materialization materialized_view, default %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.MaterializedView) %}\n {% set intermediate_relation = make_intermediate_relation(target_relation) %}\n {% set backup_relation_type = target_relation.MaterializedView if existing_relation is none else existing_relation.type %}\n {% set backup_relation = make_backup_relation(target_relation, backup_relation_type) %}\n\n {{ materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) }}\n\n {% set build_sql = materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% if build_sql == '' %}\n {{ materialized_view_execute_no_op(target_relation) }}\n {% else %}\n {{ materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) }}\n {% endif %}\n\n {{ materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.materialized_view_setup", "macro.dbt.materialized_view_get_build_sql", "macro.dbt.materialized_view_execute_no_op", "macro.dbt.materialized_view_execute_build_sql", "macro.dbt.materialized_view_teardown"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.010595, "supported_languages": ["sql"]}, "macro.dbt.materialized_view_setup": {"name": "materialized_view_setup", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_setup", "macro_sql": "{% macro materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) %}\n\n -- backup_relation and intermediate_relation should not already exist in the database\n -- it's possible these exist because of a previous run that exited unexpectedly\n {% set preexisting_backup_relation = load_cached_relation(backup_relation) %}\n {% set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.010952, "supported_languages": null}, "macro.dbt.materialized_view_teardown": {"name": "materialized_view_teardown", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_teardown", "macro_sql": "{% macro materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) %}\n\n -- drop the temp relations if they exist to leave the database clean for the next run\n {{ drop_relation_if_exists(backup_relation) }}\n {{ drop_relation_if_exists(intermediate_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.011178, "supported_languages": null}, "macro.dbt.materialized_view_get_build_sql": {"name": "materialized_view_get_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_get_build_sql", "macro_sql": "{% macro materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% set full_refresh_mode = should_full_refresh() %}\n\n -- determine the scenario we're in: create, full_refresh, alter, refresh data\n {% if existing_relation is none %}\n {% set build_sql = get_create_materialized_view_as_sql(target_relation, sql) %}\n {% elif full_refresh_mode or not existing_relation.is_materialized_view %}\n {% set build_sql = get_replace_sql(existing_relation, target_relation, sql) %}\n {% else %}\n\n -- get config options\n {% set on_configuration_change = config.get('on_configuration_change') %}\n {% set configuration_changes = get_materialized_view_configuration_changes(existing_relation, config) %}\n\n {% if configuration_changes is none %}\n {% set build_sql = refresh_materialized_view(target_relation) %}\n\n {% elif on_configuration_change == 'apply' %}\n {% set build_sql = get_alter_materialized_view_as_sql(target_relation, configuration_changes, sql, existing_relation, backup_relation, intermediate_relation) %}\n {% elif on_configuration_change == 'continue' %}\n {% set build_sql = '' %}\n {{ exceptions.warn(\"Configuration changes were identified and `on_configuration_change` was set to `continue` for `\" ~ target_relation ~ \"`\") }}\n {% elif on_configuration_change == 'fail' %}\n {{ exceptions.raise_fail_fast_error(\"Configuration changes were identified and `on_configuration_change` was set to `fail` for `\" ~ target_relation ~ \"`\") }}\n\n {% else %}\n -- this only happens if the user provides a value other than `apply`, 'skip', 'fail'\n {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario\") }}\n\n {% endif %}\n\n {% endif %}\n\n {% do return(build_sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.get_create_materialized_view_as_sql", "macro.dbt.get_replace_sql", "macro.dbt.get_materialized_view_configuration_changes", "macro.dbt.refresh_materialized_view", "macro.dbt.get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.012351, "supported_languages": null}, "macro.dbt.materialized_view_execute_no_op": {"name": "materialized_view_execute_no_op", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_no_op", "macro_sql": "{% macro materialized_view_execute_no_op(target_relation) %}\n {% do store_raw_result(\n name=\"main\",\n message=\"skip \" ~ target_relation,\n code=\"skip\",\n rows_affected=\"-1\"\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.012564, "supported_languages": null}, "macro.dbt.materialized_view_execute_build_sql": {"name": "materialized_view_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_build_sql", "macro_sql": "{% macro materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) %}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.01316, "supported_languages": null}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view.sql", "original_file_path": "macros/materializations/models/view.sql", "unique_id": "macro.dbt.materialization_view_default", "macro_sql": "{%- materialization view, default -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='view') -%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n This relation (probably) doesn't exist yet. If it does exist, it's a leftover from\n a previous run, and we're going to try to drop it immediately. At the end of this\n materialization, we're going to rename the \"existing_relation\" to this identifier,\n and then we're going to drop it. In order to make sure we run the correct one of:\n - drop view ...\n - drop table ...\n\n We need to set the type of this relation to be the type of the existing_relation, if it exists,\n or else \"view\" as a sane default if it does not. Note that if the existing_relation does not\n exist, then there is nothing to move out of the way and subsequentally drop. In that case,\n this relation will be effectively unused.\n */\n {%- set backup_relation_type = 'view' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n -- move the existing view out of the way\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.run_hooks", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0158222, "supported_languages": ["sql"]}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table.sql", "original_file_path": "macros/materializations/models/table.sql", "unique_id": "macro.dbt.materialization_table_default", "macro_sql": "{% materialization table, default %}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') %}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n See ../view/view.sql for more information about this relation.\n */\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_table_as_sql(False, intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% do create_indexes(target_relation) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n -- finally, drop the existing/backup relation after the commit\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.018402, "supported_languages": ["sql"]}, "macro.dbt.get_quoted_csv": {"name": "get_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_quoted_csv", "macro_sql": "{% macro get_quoted_csv(column_names) %}\n\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote(col)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.020034, "supported_languages": null}, "macro.dbt.diff_columns": {"name": "diff_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_columns", "macro_sql": "{% macro diff_columns(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% set source_names = source_columns | map(attribute = 'column') | list %}\n {% set target_names = target_columns | map(attribute = 'column') | list %}\n\n {# --check whether the name attribute exists in the target - this does not perform a data type check #}\n {% for sc in source_columns %}\n {% if sc.name not in target_names %}\n {{ result.append(sc) }}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.02057, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"name": "diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_column_data_types", "macro_sql": "{% macro diff_column_data_types(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% for sc in source_columns %}\n {% set tc = target_columns | selectattr(\"name\", \"equalto\", sc.name) | list | first %}\n {% if tc %}\n {% if sc.data_type != tc.data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.data_type } ) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0211682, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"name": "get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_merge_update_columns", "macro_sql": "{% macro get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {{ return(adapter.dispatch('get_merge_update_columns', 'dbt')(merge_update_columns, merge_exclude_columns, dest_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0213919, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"name": "default__get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__get_merge_update_columns", "macro_sql": "{% macro default__get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {%- set default_cols = dest_columns | map(attribute=\"quoted\") | list -%}\n\n {%- if merge_update_columns and merge_exclude_columns -%}\n {{ exceptions.raise_compiler_error(\n 'Model cannot specify merge_update_columns and merge_exclude_columns. Please update model to use only one config'\n )}}\n {%- elif merge_update_columns -%}\n {%- set update_columns = merge_update_columns -%}\n {%- elif merge_exclude_columns -%}\n {%- set update_columns = [] -%}\n {%- for column in dest_columns -%}\n {% if column.column | lower not in merge_exclude_columns | map(\"lower\") | list %}\n {%- do update_columns.append(column.quoted) -%}\n {% endif %}\n {%- endfor -%}\n {%- else -%}\n {%- set update_columns = default_cols -%}\n {%- endif -%}\n\n {{ return(update_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.022027, "supported_languages": null}, "macro.dbt.get_merge_sql": {"name": "get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n -- back compat for old kwarg name\n {% set incremental_predicates = kwargs.get('predicates', incremental_predicates) %}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.027118, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"name": "default__get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n {%- set predicates = [] if incremental_predicates is none else [] + incremental_predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set merge_update_columns = config.get('merge_update_columns') -%}\n {%- set merge_exclude_columns = config.get('merge_exclude_columns') -%}\n {%- set update_columns = get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not mapping and unique_key is not string %}\n {% for key in unique_key %}\n {% set this_key_match %}\n DBT_INTERNAL_SOURCE.{{ key }} = DBT_INTERNAL_DEST.{{ key }}\n {% endset %}\n {% do predicates.append(this_key_match) %}\n {% endfor %}\n {% else %}\n {% set unique_key_match %}\n DBT_INTERNAL_SOURCE.{{ unique_key }} = DBT_INTERNAL_DEST.{{ unique_key }}\n {% endset %}\n {% do predicates.append(unique_key_match) %}\n {% endif %}\n {% else %}\n {% do predicates.append('FALSE') %}\n {% endif %}\n\n {{ sql_header if sql_header is not none }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on {{\"(\" ~ predicates | join(\") and (\") ~ \")\"}}\n\n {% if unique_key %}\n when matched then update set\n {% for column_name in update_columns -%}\n {{ column_name }} = DBT_INTERNAL_SOURCE.{{ column_name }}\n {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n {% endif %}\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv", "macro.dbt.get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.028507, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"name": "get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0287411, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"name": "default__get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not string %}\n delete from {{target }}\n using {{ source }}\n where (\n {% for key in unique_key %}\n {{ source }}.{{ key }} = {{ target }}.{{ key }}\n {{ \"and \" if not loop.last}}\n {% endfor %}\n {% if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {% endif %}\n );\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n )\n {%- if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {%- endif -%};\n\n {% endif %}\n {% endif %}\n\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0296068, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"name": "get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "macro_sql": "{% macro get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header=false) -%}\n {{ adapter.dispatch('get_insert_overwrite_merge_sql', 'dbt')(target, source, dest_columns, predicates, include_sql_header) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.029995, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"name": "default__get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "macro_sql": "{% macro default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) -%}\n {#-- The only time include_sql_header is True: --#}\n {#-- BigQuery + insert_overwrite strategy + \"static\" partitions config --#}\n {#-- We should consider including the sql header at the materialization level instead --#}\n\n {%- set predicates = [] if predicates is none else [] + predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none and include_sql_header }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on FALSE\n\n when not matched by source\n {% if predicates %} and {{ predicates | join(' and ') }} {% endif %}\n then delete\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.030668, "supported_languages": null}, "macro.dbt.is_incremental": {"name": "is_incremental", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "unique_id": "macro.dbt.is_incremental", "macro_sql": "{% macro is_incremental() %}\n {#-- do not run introspective queries in parsing #}\n {% if not execute %}\n {{ return(False) }}\n {% else %}\n {% set relation = adapter.get_relation(this.database, this.schema, this.table) %}\n {{ return(relation is not none\n and relation.type == 'table'\n and model.config.materialized == 'incremental'\n and not should_full_refresh()) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.031302, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"name": "get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_append_sql", "macro_sql": "{% macro get_incremental_append_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_append_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.032116, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"name": "default__get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_append_sql", "macro_sql": "{% macro default__get_incremental_append_sql(arg_dict) %}\n\n {% do return(get_insert_into_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.032345, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"name": "get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_delete_insert_sql", "macro_sql": "{% macro get_incremental_delete_insert_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_delete_insert_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_delete_insert_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.032532, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"name": "default__get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "macro_sql": "{% macro default__get_incremental_delete_insert_sql(arg_dict) %}\n\n {% do return(get_delete_insert_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.032813, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"name": "get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_merge_sql", "macro_sql": "{% macro get_incremental_merge_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.033074, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"name": "default__get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_merge_sql", "macro_sql": "{% macro default__get_incremental_merge_sql(arg_dict) %}\n\n {% do return(get_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.033345, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"name": "get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "macro_sql": "{% macro get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_insert_overwrite_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0335202, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"name": "default__get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "macro_sql": "{% macro default__get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {% do return(get_insert_overwrite_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0337641, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"name": "get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_default_sql", "macro_sql": "{% macro get_incremental_default_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_default_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0339358, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"name": "default__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_default_sql", "macro_sql": "{% macro default__get_incremental_default_sql(arg_dict) %}\n\n {% do return(get_incremental_append_sql(arg_dict)) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.034082, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"name": "get_insert_into_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_insert_into_sql", "macro_sql": "{% macro get_insert_into_sql(target_relation, temp_relation, dest_columns) %}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n insert into {{ target_relation }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ temp_relation }}\n )\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.034345, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"name": "materialization_incremental_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "unique_id": "macro.dbt.materialization_incremental_default", "macro_sql": "{% materialization incremental, default -%}\n\n -- relations\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation)-%}\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n\n -- configs\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%}\n {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%}\n\n -- the temp_ and backup_ relations should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation. This has to happen before\n -- BEGIN, in a separate transaction\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation)-%}\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set to_drop = [] %}\n\n {% if existing_relation is none %}\n {% set build_sql = get_create_table_as_sql(False, target_relation, sql) %}\n {% elif full_refresh_mode %}\n {% set build_sql = get_create_table_as_sql(False, intermediate_relation, sql) %}\n {% set need_swap = true %}\n {% else %}\n {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\n {#-- Process schema changes. Returns dict of changes if successful. Use source columns for upserting/merging --#}\n {% set dest_columns = process_schema_changes(on_schema_change, temp_relation, existing_relation) %}\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n\n {#-- Get the incremental_strategy, the macro to use for the strategy, and build the sql --#}\n {% set incremental_strategy = config.get('incremental_strategy') or 'default' %}\n {% set incremental_predicates = config.get('predicates', none) or config.get('incremental_predicates', none) %}\n {% set strategy_sql_macro_func = adapter.get_incremental_strategy_macro(context, incremental_strategy) %}\n {% set strategy_arg_dict = ({'target_relation': target_relation, 'temp_relation': temp_relation, 'unique_key': unique_key, 'dest_columns': dest_columns, 'incremental_predicates': incremental_predicates }) %}\n {% set build_sql = strategy_sql_macro_func(strategy_arg_dict) %}\n\n {% endif %}\n\n {% call statement(\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% if need_swap %}\n {% do adapter.rename_relation(target_relation, backup_relation) %}\n {% do adapter.rename_relation(intermediate_relation, target_relation) %}\n {% do to_drop.append(backup_relation) %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if existing_relation is none or existing_relation.is_view or should_full_refresh() %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {% do adapter.commit() %}\n\n {% for rel in to_drop %}\n {% do adapter.drop_relation(rel) %}\n {% endfor %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_temp_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.should_full_refresh", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.get_create_table_as_sql", "macro.dbt.run_query", "macro.dbt.process_schema_changes", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.038962, "supported_languages": ["sql"]}, "macro.dbt.incremental_validate_on_schema_change": {"name": "incremental_validate_on_schema_change", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.incremental_validate_on_schema_change", "macro_sql": "{% macro incremental_validate_on_schema_change(on_schema_change, default='ignore') %}\n\n {% if on_schema_change not in ['sync_all_columns', 'append_new_columns', 'fail', 'ignore'] %}\n\n {% set log_message = 'Invalid value for on_schema_change (%s) specified. Setting default value of %s.' % (on_schema_change, default) %}\n {% do log(log_message) %}\n\n {{ return(default) }}\n\n {% else %}\n\n {{ return(on_schema_change) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.043754, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"name": "check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.check_for_schema_changes", "macro_sql": "{% macro check_for_schema_changes(source_relation, target_relation) %}\n\n {% set schema_changed = False %}\n\n {%- set source_columns = adapter.get_columns_in_relation(source_relation) -%}\n {%- set target_columns = adapter.get_columns_in_relation(target_relation) -%}\n {%- set source_not_in_target = diff_columns(source_columns, target_columns) -%}\n {%- set target_not_in_source = diff_columns(target_columns, source_columns) -%}\n\n {% set new_target_types = diff_column_data_types(source_columns, target_columns) %}\n\n {% if source_not_in_target != [] %}\n {% set schema_changed = True %}\n {% elif target_not_in_source != [] or new_target_types != [] %}\n {% set schema_changed = True %}\n {% elif new_target_types != [] %}\n {% set schema_changed = True %}\n {% endif %}\n\n {% set changes_dict = {\n 'schema_changed': schema_changed,\n 'source_not_in_target': source_not_in_target,\n 'target_not_in_source': target_not_in_source,\n 'source_columns': source_columns,\n 'target_columns': target_columns,\n 'new_target_types': new_target_types\n } %}\n\n {% set msg %}\n In {{ target_relation }}:\n Schema changed: {{ schema_changed }}\n Source columns not in target: {{ source_not_in_target }}\n Target columns not in source: {{ target_not_in_source }}\n New column types: {{ new_target_types }}\n {% endset %}\n\n {% do log(msg) %}\n\n {{ return(changes_dict) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.diff_columns", "macro.dbt.diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.044863, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"name": "sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.sync_column_schemas", "macro_sql": "{% macro sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\n\n {%- if on_schema_change == 'append_new_columns'-%}\n {%- if add_to_target_arr | length > 0 -%}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, none) -%}\n {%- endif -%}\n\n {% elif on_schema_change == 'sync_all_columns' %}\n {%- set remove_from_target_arr = schema_changes_dict['target_not_in_source'] -%}\n {%- set new_target_types = schema_changes_dict['new_target_types'] -%}\n\n {% if add_to_target_arr | length > 0 or remove_from_target_arr | length > 0 %}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, remove_from_target_arr) -%}\n {% endif %}\n\n {% if new_target_types != [] %}\n {% for ntt in new_target_types %}\n {% set column_name = ntt['column_name'] %}\n {% set new_type = ntt['new_type'] %}\n {% do alter_column_type(target_relation, column_name, new_type) %}\n {% endfor %}\n {% endif %}\n\n {% endif %}\n\n {% set schema_change_message %}\n In {{ target_relation }}:\n Schema change approach: {{ on_schema_change }}\n Columns added: {{ add_to_target_arr }}\n Columns removed: {{ remove_from_target_arr }}\n Data types changed: {{ new_target_types }}\n {% endset %}\n\n {% do log(schema_change_message) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.alter_relation_add_remove_columns", "macro.dbt.alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.045995, "supported_languages": null}, "macro.dbt.process_schema_changes": {"name": "process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.process_schema_changes", "macro_sql": "{% macro process_schema_changes(on_schema_change, source_relation, target_relation) %}\n\n {% if on_schema_change == 'ignore' %}\n\n {{ return({}) }}\n\n {% else %}\n\n {% set schema_changes_dict = check_for_schema_changes(source_relation, target_relation) %}\n\n {% if schema_changes_dict['schema_changed'] %}\n\n {% if on_schema_change == 'fail' %}\n\n {% set fail_msg %}\n The source and target schemas on this incremental model are out of sync!\n They can be reconciled in several ways:\n - set the `on_schema_change` config to either append_new_columns or sync_all_columns, depending on your situation.\n - Re-run the incremental model with `full_refresh: True` to update the target schema.\n - update the schema manually and re-run the process.\n\n Additional troubleshooting context:\n Source columns not in target: {{ schema_changes_dict['source_not_in_target'] }}\n Target columns not in source: {{ schema_changes_dict['target_not_in_source'] }}\n New column types: {{ schema_changes_dict['new_target_types'] }}\n {% endset %}\n\n {% do exceptions.raise_compiler_error(fail_msg) %}\n\n {# -- unless we ignore, run the sync operation per the config #}\n {% else %}\n\n {% do sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {% endif %}\n\n {% endif %}\n\n {{ return(schema_changes_dict['source_columns']) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.check_for_schema_changes", "macro.dbt.sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.046763, "supported_languages": null}, "macro.dbt.can_clone_table": {"name": "can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.can_clone_table", "macro_sql": "{% macro can_clone_table() %}\n {{ return(adapter.dispatch('can_clone_table', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__can_clone_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.046981, "supported_languages": null}, "macro.dbt.default__can_clone_table": {"name": "default__can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.default__can_clone_table", "macro_sql": "{% macro default__can_clone_table() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0470898, "supported_languages": null}, "macro.dbt.create_or_replace_clone": {"name": "create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.create_or_replace_clone", "macro_sql": "{% macro create_or_replace_clone(this_relation, defer_relation) %}\n {{ return(adapter.dispatch('create_or_replace_clone', 'dbt')(this_relation, defer_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_or_replace_clone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.047359, "supported_languages": null}, "macro.dbt.default__create_or_replace_clone": {"name": "default__create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.default__create_or_replace_clone", "macro_sql": "{% macro default__create_or_replace_clone(this_relation, defer_relation) %}\n create or replace table {{ this_relation }} clone {{ defer_relation }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.047482, "supported_languages": null}, "macro.dbt.materialization_clone_default": {"name": "materialization_clone_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/clone.sql", "original_file_path": "macros/materializations/models/clone/clone.sql", "unique_id": "macro.dbt.materialization_clone_default", "macro_sql": "{%- materialization clone, default -%}\n\n {%- set relations = {'relations': []} -%}\n\n {%- if not defer_relation -%}\n -- nothing to do\n {{ log(\"No relation found in state manifest for \" ~ model.unique_id, info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n\n {%- if existing_relation and not flags.FULL_REFRESH -%}\n -- noop!\n {{ log(\"Relation \" ~ existing_relation ~ \" already exists\", info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set other_existing_relation = load_cached_relation(defer_relation) -%}\n\n -- If this is a database that can do zero-copy cloning of tables, and the other relation is a table, then this will be a table\n -- Otherwise, this will be a view\n\n {% set can_clone_table = can_clone_table() %}\n\n {%- if other_existing_relation and other_existing_relation.type == 'table' and can_clone_table -%}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {% if existing_relation is not none and not existing_relation.is_table %}\n {{ log(\"Dropping relation \" ~ existing_relation ~ \" because it is of type \" ~ existing_relation.type) }}\n {{ drop_relation_if_exists(existing_relation) }}\n {% endif %}\n\n -- as a general rule, data platforms that can clone tables can also do atomic 'create or replace'\n {% call statement('main') %}\n {% if target_relation and defer_relation and target_relation == defer_relation %}\n {{ log(\"Target relation and defer relation are the same, skipping clone for relation: \" ~ target_relation) }}\n {% else %}\n {{ create_or_replace_clone(target_relation, defer_relation) }}\n {% endif %}\n\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n {%- else -%}\n\n {%- set target_relation = this.incorporate(type='view') -%}\n\n -- reuse the view materialization\n -- TODO: support actual dispatch for materialization macros\n -- Tracking ticket: https://github.com/dbt-labs/dbt-core/issues/7799\n {% set search_name = \"materialization_view_\" ~ adapter.type() %}\n {% if not search_name in context %}\n {% set search_name = \"materialization_view_default\" %}\n {% endif %}\n {% set materialization_macro = context[search_name] %}\n {% set relations = materialization_macro() %}\n {{ return(relations) }}\n\n {%- endif -%}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.can_clone_table", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.create_or_replace_clone", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.050866, "supported_languages": ["sql"]}, "macro.dbt.materialization_seed_default": {"name": "materialization_seed_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "unique_id": "macro.dbt.materialization_seed_default", "macro_sql": "{% materialization seed, default %}\n\n {%- set identifier = model['alias'] -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n\n {%- set exists_as_table = (old_relation is not none and old_relation.is_table) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set grant_config = config.get('grants') -%}\n {%- set agate_table = load_agate_table() -%}\n -- grab current tables grants config for comparison later on\n\n {%- do store_result('agate_table', response='OK', agate_table=agate_table) -%}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% set create_table_sql = \"\" %}\n {% if exists_as_view %}\n {{ exceptions.raise_compiler_error(\"Cannot seed to '{}', it is a view\".format(old_relation)) }}\n {% elif exists_as_table %}\n {% set create_table_sql = reset_csv_table(model, full_refresh_mode, old_relation, agate_table) %}\n {% else %}\n {% set create_table_sql = create_csv_table(model, agate_table) %}\n {% endif %}\n\n {% set code = 'CREATE' if full_refresh_mode else 'INSERT' %}\n {% set rows_affected = (agate_table.rows | length) %}\n {% set sql = load_csv_rows(model, agate_table) %}\n\n {% call noop_statement('main', code ~ ' ' ~ rows_affected, code, rows_affected) %}\n {{ get_csv_sql(create_table_sql, sql) }};\n {% endcall %}\n\n {% set target_relation = this.incorporate(type='table') %}\n\n {% set should_revoke = should_revoke(old_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if full_refresh_mode or not exists_as_table %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.run_hooks", "macro.dbt.reset_csv_table", "macro.dbt.create_csv_table", "macro.dbt.load_csv_rows", "macro.dbt.noop_statement", "macro.dbt.get_csv_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.05377, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"name": "create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.057982, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"name": "default__create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__create_csv_table", "macro_sql": "{% macro default__create_csv_table(model, agate_table) %}\n {%- set column_override = model['config'].get('column_types', {}) -%}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n\n {% set sql %}\n create table {{ this.render() }} (\n {%- for col_name in agate_table.column_names -%}\n {%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}\n {%- set type = column_override.get(col_name, inferred_type) -%}\n {%- set column_name = (col_name | string) -%}\n {{ adapter.quote_seed_column(column_name, quote_seed_column) }} {{ type }} {%- if not loop.last -%}, {%- endif -%}\n {%- endfor -%}\n )\n {% endset %}\n\n {% call statement('_') -%}\n {{ sql }}\n {%- endcall %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.058799, "supported_languages": null}, "macro.dbt.reset_csv_table": {"name": "reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.reset_csv_table", "macro_sql": "{% macro reset_csv_table(model, full_refresh, old_relation, agate_table) -%}\n {{ adapter.dispatch('reset_csv_table', 'dbt')(model, full_refresh, old_relation, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0590122, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"name": "default__reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__reset_csv_table", "macro_sql": "{% macro default__reset_csv_table(model, full_refresh, old_relation, agate_table) %}\n {% set sql = \"\" %}\n {% if full_refresh %}\n {{ adapter.drop_relation(old_relation) }}\n {% set sql = create_csv_table(model, agate_table) %}\n {% else %}\n {{ adapter.truncate_relation(old_relation) }}\n {% set sql = \"truncate table \" ~ old_relation %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0594418, "supported_languages": null}, "macro.dbt.get_csv_sql": {"name": "get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_csv_sql", "macro_sql": "{% macro get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ adapter.dispatch('get_csv_sql', 'dbt')(create_or_truncate_sql, insert_sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.059618, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"name": "default__get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_csv_sql", "macro_sql": "{% macro default__get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ create_or_truncate_sql }};\n -- dbt seed --\n {{ insert_sql }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0597372, "supported_languages": null}, "macro.dbt.get_binding_char": {"name": "get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0598662, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"name": "default__get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.059974, "supported_languages": null}, "macro.dbt.get_batch_size": {"name": "get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0601192, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"name": "default__get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0602272, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"name": "get_seed_column_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_seed_column_quoted_csv", "macro_sql": "{% macro get_seed_column_quoted_csv(model, column_names) %}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote_seed_column(col, quote_seed_column)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.060652, "supported_languages": null}, "macro.dbt.load_csv_rows": {"name": "load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.060822, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"name": "default__load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__load_csv_rows", "macro_sql": "{% macro default__load_csv_rows(model, agate_table) %}\n\n {% set batch_size = get_batch_size() %}\n\n {% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}\n {% set bindings = [] %}\n\n {% set statements = [] %}\n\n {% for chunk in agate_table.rows | batch(batch_size) %}\n {% set bindings = [] %}\n\n {% for row in chunk %}\n {% do bindings.extend(row) %}\n {% endfor %}\n\n {% set sql %}\n insert into {{ this.render() }} ({{ cols_sql }}) values\n {% for row in chunk -%}\n ({%- for column in agate_table.column_names -%}\n {{ get_binding_char() }}\n {%- if not loop.last%},{%- endif %}\n {%- endfor -%})\n {%- if not loop.last%},{%- endif %}\n {%- endfor %}\n {% endset %}\n\n {% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}\n\n {% if loop.index0 == 0 %}\n {% do statements.append(sql) %}\n {% endif %}\n {% endfor %}\n\n {# Return SQL so we can render it out into the compiled files #}\n {{ return(statements[0]) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_batch_size", "macro.dbt.get_seed_column_quoted_csv", "macro.dbt.get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0620039, "supported_languages": null}, "macro.dbt.generate_alias_name": {"name": "generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.generate_alias_name", "macro_sql": "{% macro generate_alias_name(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_alias_name', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0623949, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"name": "default__generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.default__generate_alias_name", "macro_sql": "{% macro default__generate_alias_name(custom_alias_name=none, node=none) -%}\n\n {%- if custom_alias_name -%}\n\n {{ custom_alias_name | trim }}\n\n {%- elif node.version -%}\n\n {{ return(node.name ~ \"_v\" ~ (node.version | replace(\".\", \"_\"))) }}\n\n {%- else -%}\n\n {{ node.name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0627441, "supported_languages": null}, "macro.dbt.generate_schema_name": {"name": "generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name", "macro_sql": "{% macro generate_schema_name(custom_schema_name=none, node=none) -%}\n {{ return(adapter.dispatch('generate_schema_name', 'dbt')(custom_schema_name, node)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0632188, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"name": "default__generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.default__generate_schema_name", "macro_sql": "{% macro default__generate_schema_name(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if custom_schema_name is none -%}\n\n {{ default_schema }}\n\n {%- else -%}\n\n {{ default_schema }}_{{ custom_schema_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.063458, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"name": "generate_schema_name_for_env", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name_for_env", "macro_sql": "{% macro generate_schema_name_for_env(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if target.name == 'prod' and custom_schema_name is not none -%}\n\n {{ custom_schema_name | trim }}\n\n {%- else -%}\n\n {{ default_schema }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.06372, "supported_languages": null}, "macro.dbt.generate_database_name": {"name": "generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.generate_database_name", "macro_sql": "{% macro generate_database_name(custom_database_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_database_name', 'dbt')(custom_database_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0640728, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"name": "default__generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.default__generate_database_name", "macro_sql": "{% macro default__generate_database_name(custom_database_name=none, node=none) -%}\n {%- set default_database = target.database -%}\n {%- if custom_database_name is none -%}\n\n {{ default_database }}\n\n {%- else -%}\n\n {{ custom_database_name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.064306, "supported_languages": null}, "macro.dbt.get_drop_sql": {"name": "get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.get_drop_sql", "macro_sql": "{%- macro get_drop_sql(relation) -%}\n {{- log('Applying DROP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.064935, "supported_languages": null}, "macro.dbt.default__get_drop_sql": {"name": "default__get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__get_drop_sql", "macro_sql": "{%- macro default__get_drop_sql(relation) -%}\n\n {%- if relation.is_view -%}\n {{ drop_view(relation) }}\n\n {%- elif relation.is_table -%}\n {{ drop_table(relation) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ drop_materialized_view(relation) }}\n\n {%- else -%}\n drop {{ relation.type }} if exists {{ relation }} cascade\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.drop_view", "macro.dbt.drop_table", "macro.dbt.drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.065268, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.065436, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n {{ get_drop_sql(relation) }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0656152, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation_if_exists", "macro_sql": "{% macro drop_relation_if_exists(relation) %}\n {% if relation is not none %}\n {{ adapter.drop_relation(relation) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0657978, "supported_languages": null}, "macro.dbt.get_replace_sql": {"name": "get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.get_replace_sql", "macro_sql": "{% macro get_replace_sql(existing_relation, target_relation, sql) %}\n {{- log('Applying REPLACE to: ' ~ existing_relation) -}}\n {{- adapter.dispatch('get_replace_sql', 'dbt')(existing_relation, target_relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.066539, "supported_languages": null}, "macro.dbt.default__get_replace_sql": {"name": "default__get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.default__get_replace_sql", "macro_sql": "{% macro default__get_replace_sql(existing_relation, target_relation, sql) %}\n\n {# /* use a create or replace statement if possible */ #}\n\n {% set is_replaceable = existing_relation.type == target_relation_type and existing_relation.can_be_replaced %}\n\n {% if is_replaceable and existing_relation.is_view %}\n {{ get_replace_view_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_table %}\n {{ get_replace_table_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_materialized_view %}\n {{ get_replace_materialized_view_sql(target_relation, sql) }}\n\n {# /* a create or replace statement is not possible, so try to stage and/or backup to be safe */ #}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one using a backup */ #}\n {%- elif target_relation.can_be_renamed and existing_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one without using a backup */ #}\n {%- elif target_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_drop_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }}\n\n {# /* create target_relation in place by first backing up the existing relation */ #}\n {%- elif existing_relation.can_be_renamed -%}\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* no renaming is allowed, so just drop and create */ #}\n {%- else -%}\n {{ get_drop_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_view_sql", "macro.dbt.get_replace_table_sql", "macro.dbt.get_replace_materialized_view_sql", "macro.dbt.get_create_intermediate_sql", "macro.dbt.get_create_backup_sql", "macro.dbt.get_rename_intermediate_sql", "macro.dbt.get_drop_backup_sql", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.067708, "supported_languages": null}, "macro.dbt.get_create_intermediate_sql": {"name": "get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.get_create_intermediate_sql", "macro_sql": "{%- macro get_create_intermediate_sql(relation, sql) -%}\n {{- log('Applying CREATE INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_intermediate_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.068054, "supported_languages": null}, "macro.dbt.default__get_create_intermediate_sql": {"name": "default__get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.default__get_create_intermediate_sql", "macro_sql": "{%- macro default__get_create_intermediate_sql(relation, sql) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n -- drop any pre-existing intermediate\n {{ get_drop_sql(intermediate_relation) }};\n\n {{ get_create_sql(intermediate_relation, sql) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0682812, "supported_languages": null}, "macro.dbt.get_drop_backup_sql": {"name": "get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.get_drop_backup_sql", "macro_sql": "{%- macro get_drop_backup_sql(relation) -%}\n {{- log('Applying DROP BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.068574, "supported_languages": null}, "macro.dbt.default__get_drop_backup_sql": {"name": "default__get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.default__get_drop_backup_sql", "macro_sql": "{%- macro default__get_drop_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n {{ get_drop_sql(backup_relation) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0687659, "supported_languages": null}, "macro.dbt.get_rename_sql": {"name": "get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.get_rename_sql", "macro_sql": "{%- macro get_rename_sql(relation, new_name) -%}\n {{- log('Applying RENAME to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_sql', 'dbt')(relation, new_name) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0693948, "supported_languages": null}, "macro.dbt.default__get_rename_sql": {"name": "default__get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__get_rename_sql", "macro_sql": "{%- macro default__get_rename_sql(relation, new_name) -%}\n\n {%- if relation.is_view -%}\n {{ get_rename_view_sql(relation, new_name) }}\n\n {%- elif relation.is_table -%}\n {{ get_rename_table_sql(relation, new_name) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_rename_materialized_view_sql(relation, new_name) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_rename_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.get_rename_view_sql", "macro.dbt.get_rename_table_sql", "macro.dbt.get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.069788, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.069979, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__rename_relation", "macro_sql": "{% macro default__rename_relation(from_relation, to_relation) -%}\n {% set target_name = adapter.quote_as_configured(to_relation.identifier, 'identifier') %}\n {% call statement('rename_relation') -%}\n alter table {{ from_relation }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.070233, "supported_languages": null}, "macro.dbt.get_create_backup_sql": {"name": "get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.get_create_backup_sql", "macro_sql": "{%- macro get_create_backup_sql(relation) -%}\n {{- log('Applying CREATE BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.070549, "supported_languages": null}, "macro.dbt.default__get_create_backup_sql": {"name": "default__get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.default__get_create_backup_sql", "macro_sql": "{%- macro default__get_create_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n -- drop any pre-existing backup\n {{ get_drop_sql(backup_relation) }};\n\n {{ get_rename_sql(relation, backup_relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.070795, "supported_languages": null}, "macro.dbt.get_create_sql": {"name": "get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.get_create_sql", "macro_sql": "{%- macro get_create_sql(relation, sql) -%}\n {{- log('Applying CREATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.071216, "supported_languages": null}, "macro.dbt.default__get_create_sql": {"name": "default__get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.default__get_create_sql", "macro_sql": "{%- macro default__get_create_sql(relation, sql) -%}\n\n {%- if relation.is_view -%}\n {{ get_create_view_as_sql(relation, sql) }}\n\n {%- elif relation.is_table -%}\n {{ get_create_table_as_sql(False, relation, sql) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_create_materialized_view_as_sql(relation, sql) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_create_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.get_create_view_as_sql", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.071622, "supported_languages": null}, "macro.dbt.get_rename_intermediate_sql": {"name": "get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.get_rename_intermediate_sql", "macro_sql": "{%- macro get_rename_intermediate_sql(relation) -%}\n {{- log('Applying RENAME INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_intermediate_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.071929, "supported_languages": null}, "macro.dbt.default__get_rename_intermediate_sql": {"name": "default__get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.default__get_rename_intermediate_sql", "macro_sql": "{%- macro default__get_rename_intermediate_sql(relation) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n {{ get_rename_sql(intermediate_relation, relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0721338, "supported_languages": null}, "macro.dbt.drop_materialized_view": {"name": "drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.drop_materialized_view", "macro_sql": "{% macro drop_materialized_view(relation) -%}\n {{ return(adapter.dispatch('drop_materialized_view', 'dbt')(relation)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.072381, "supported_languages": null}, "macro.dbt.default__drop_materialized_view": {"name": "default__drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.default__drop_materialized_view", "macro_sql": "{% macro default__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.072476, "supported_languages": null}, "macro.dbt.get_replace_materialized_view_sql": {"name": "get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.get_replace_materialized_view_sql", "macro_sql": "{% macro get_replace_materialized_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_materialized_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.072733, "supported_languages": null}, "macro.dbt.default__get_replace_materialized_view_sql": {"name": "default__get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.default__get_replace_materialized_view_sql", "macro_sql": "{% macro default__get_replace_materialized_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.072866, "supported_languages": null}, "macro.dbt.refresh_materialized_view": {"name": "refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.refresh_materialized_view", "macro_sql": "{% macro refresh_materialized_view(relation) %}\n {{- log('Applying REFRESH to: ' ~ relation) -}}\n {{- adapter.dispatch('refresh_materialized_view', 'dbt')(relation) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__refresh_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0731468, "supported_languages": null}, "macro.dbt.default__refresh_materialized_view": {"name": "default__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.default__refresh_materialized_view", "macro_sql": "{% macro default__refresh_materialized_view(relation) %}\n {{ exceptions.raise_compiler_error(\"`refresh_materialized_view` has not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.073333, "supported_languages": null}, "macro.dbt.get_rename_materialized_view_sql": {"name": "get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.get_rename_materialized_view_sql", "macro_sql": "{% macro get_rename_materialized_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_materialized_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.073584, "supported_languages": null}, "macro.dbt.default__get_rename_materialized_view_sql": {"name": "default__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.default__get_rename_materialized_view_sql", "macro_sql": "{% macro default__get_rename_materialized_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.07372, "supported_languages": null}, "macro.dbt.get_alter_materialized_view_as_sql": {"name": "get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_alter_materialized_view_as_sql", "macro_sql": "{% macro get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{- log('Applying ALTER to: ' ~ relation) -}}\n {{- adapter.dispatch('get_alter_materialized_view_as_sql', 'dbt')(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n ) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0742772, "supported_languages": null}, "macro.dbt.default__get_alter_materialized_view_as_sql": {"name": "default__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_alter_materialized_view_as_sql", "macro_sql": "{% macro default__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.07445, "supported_languages": null}, "macro.dbt.get_materialized_view_configuration_changes": {"name": "get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_materialized_view_configuration_changes", "macro_sql": "{% macro get_materialized_view_configuration_changes(existing_relation, new_config) %}\n /* {#\n It's recommended that configuration changes be formatted as follows:\n {\"<change_category>\": [{\"action\": \"<name>\", \"context\": ...}]}\n\n For example:\n {\n \"indexes\": [\n {\"action\": \"drop\", \"context\": \"index_abc\"},\n {\"action\": \"create\", \"context\": {\"columns\": [\"column_1\", \"column_2\"], \"type\": \"hash\", \"unique\": True}},\n ],\n }\n\n Either way, `get_materialized_view_configuration_changes` needs to align with `get_alter_materialized_view_as_sql`.\n #} */\n {{- log('Determining configuration changes on: ' ~ existing_relation) -}}\n {%- do return(adapter.dispatch('get_materialized_view_configuration_changes', 'dbt')(existing_relation, new_config)) -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_materialized_view_configuration_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.074708, "supported_languages": null}, "macro.dbt.default__get_materialized_view_configuration_changes": {"name": "default__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_materialized_view_configuration_changes", "macro_sql": "{% macro default__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.074841, "supported_languages": null}, "macro.dbt.get_create_materialized_view_as_sql": {"name": "get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.get_create_materialized_view_as_sql", "macro_sql": "{% macro get_create_materialized_view_as_sql(relation, sql) -%}\n {{- adapter.dispatch('get_create_materialized_view_as_sql', 'dbt')(relation, sql) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.07509, "supported_languages": null}, "macro.dbt.default__get_create_materialized_view_as_sql": {"name": "default__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.default__get_create_materialized_view_as_sql", "macro_sql": "{% macro default__get_create_materialized_view_as_sql(relation, sql) -%}\n {{ exceptions.raise_compiler_error(\n \"`get_create_materialized_view_as_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.07523, "supported_languages": null}, "macro.dbt.get_table_columns_and_constraints": {"name": "get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_table_columns_and_constraints", "macro_sql": "{%- macro get_table_columns_and_constraints() -%}\n {{ adapter.dispatch('get_table_columns_and_constraints', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.076137, "supported_languages": null}, "macro.dbt.default__get_table_columns_and_constraints": {"name": "default__get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_table_columns_and_constraints", "macro_sql": "{% macro default__get_table_columns_and_constraints() -%}\n {{ return(table_columns_and_constraints()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0762439, "supported_languages": null}, "macro.dbt.table_columns_and_constraints": {"name": "table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.table_columns_and_constraints", "macro_sql": "{% macro table_columns_and_constraints() %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_column_constraints = adapter.render_raw_columns_constraints(raw_columns=model['columns']) -%}\n {%- set raw_model_constraints = adapter.render_raw_model_constraints(raw_constraints=model['constraints']) -%}\n (\n {% for c in raw_column_constraints -%}\n {{ c }}{{ \",\" if not loop.last or raw_model_constraints }}\n {% endfor %}\n {% for c in raw_model_constraints -%}\n {{ c }}{{ \",\" if not loop.last }}\n {% endfor -%}\n )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.076729, "supported_languages": null}, "macro.dbt.get_assert_columns_equivalent": {"name": "get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_assert_columns_equivalent", "macro_sql": "\n\n{%- macro get_assert_columns_equivalent(sql) -%}\n {{ adapter.dispatch('get_assert_columns_equivalent', 'dbt')(sql) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.07688, "supported_languages": null}, "macro.dbt.default__get_assert_columns_equivalent": {"name": "default__get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_assert_columns_equivalent", "macro_sql": "{% macro default__get_assert_columns_equivalent(sql) -%}\n {{ return(assert_columns_equivalent(sql)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.077003, "supported_languages": null}, "macro.dbt.assert_columns_equivalent": {"name": "assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.assert_columns_equivalent", "macro_sql": "{% macro assert_columns_equivalent(sql) %}\n\n {#-- First ensure the user has defined 'columns' in yaml specification --#}\n {%- set user_defined_columns = model['columns'] -%}\n {%- if not user_defined_columns -%}\n {{ exceptions.raise_contract_error([], []) }}\n {%- endif -%}\n\n {#-- Obtain the column schema provided by sql file. #}\n {%- set sql_file_provided_columns = get_column_schema_from_query(sql, config.get('sql_header', none)) -%}\n {#--Obtain the column schema provided by the schema file by generating an 'empty schema' query from the model's columns. #}\n {%- set schema_file_provided_columns = get_column_schema_from_query(get_empty_schema_sql(user_defined_columns)) -%}\n\n {#-- create dictionaries with name and formatted data type and strings for exception #}\n {%- set sql_columns = format_columns(sql_file_provided_columns) -%}\n {%- set yaml_columns = format_columns(schema_file_provided_columns) -%}\n\n {%- if sql_columns|length != yaml_columns|length -%}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n\n {%- for sql_col in sql_columns -%}\n {%- set yaml_col = [] -%}\n {%- for this_col in yaml_columns -%}\n {%- if this_col['name'] == sql_col['name'] -%}\n {%- do yaml_col.append(this_col) -%}\n {%- break -%}\n {%- endif -%}\n {%- endfor -%}\n {%- if not yaml_col -%}\n {#-- Column with name not found in yaml #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- if sql_col['formatted'] != yaml_col[0]['formatted'] -%}\n {#-- Column data types don't match #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query", "macro.dbt.get_empty_schema_sql", "macro.dbt.format_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.078243, "supported_languages": null}, "macro.dbt.format_columns": {"name": "format_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.format_columns", "macro_sql": "{% macro format_columns(columns) %}\n {% set formatted_columns = [] %}\n {% for column in columns %}\n {%- set formatted_column = adapter.dispatch('format_column', 'dbt')(column) -%}\n {%- do formatted_columns.append(formatted_column) -%}\n {% endfor %}\n {{ return(formatted_columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__format_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.078593, "supported_languages": null}, "macro.dbt.default__format_column": {"name": "default__format_column", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__format_column", "macro_sql": "{% macro default__format_column(column) -%}\n {% set data_type = column.dtype %}\n {% set formatted = column.column.lower() ~ \" \" ~ data_type %}\n {{ return({'name': column.name, 'data_type': data_type, 'formatted': formatted}) }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.078908, "supported_languages": null}, "macro.dbt.drop_table": {"name": "drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.drop_table", "macro_sql": "{% macro drop_table(relation) -%}\n {{ return(adapter.dispatch('drop_table', 'dbt')(relation)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.079158, "supported_languages": null}, "macro.dbt.default__drop_table": {"name": "default__drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.default__drop_table", "macro_sql": "{% macro default__drop_table(relation) -%}\n drop table if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.079253, "supported_languages": null}, "macro.dbt.get_replace_table_sql": {"name": "get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.get_replace_table_sql", "macro_sql": "{% macro get_replace_table_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_table_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0795012, "supported_languages": null}, "macro.dbt.default__get_replace_table_sql": {"name": "default__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.default__get_replace_table_sql", "macro_sql": "{% macro default__get_replace_table_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.079638, "supported_languages": null}, "macro.dbt.get_rename_table_sql": {"name": "get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.get_rename_table_sql", "macro_sql": "{% macro get_rename_table_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_table_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.079884, "supported_languages": null}, "macro.dbt.default__get_rename_table_sql": {"name": "default__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.default__get_rename_table_sql", "macro_sql": "{% macro default__get_rename_table_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.08002, "supported_languages": null}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_create_table_as_sql", "macro_sql": "{% macro get_create_table_as_sql(temporary, relation, sql) -%}\n {{ adapter.dispatch('get_create_table_as_sql', 'dbt')(temporary, relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.080788, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"name": "default__get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_create_table_as_sql", "macro_sql": "{% macro default__get_create_table_as_sql(temporary, relation, sql) -%}\n {{ return(create_table_as(temporary, relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.080959, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.create_table_as", "macro_sql": "{% macro create_table_as(temporary, relation, compiled_code, language='sql') -%}\n {# backward compatibility for create_table_as that does not support language #}\n {% if language == \"sql\" %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code)}}\n {% else %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code, language) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.081345, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__create_table_as", "macro_sql": "{% macro default__create_table_as(temporary, relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary: -%}temporary{%- endif %} table\n {{ relation.include(database=(not temporary), schema=(not temporary)) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced and (not temporary) %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.081986, "supported_languages": null}, "macro.dbt.default__get_column_names": {"name": "default__get_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_column_names", "macro_sql": "{% macro default__get_column_names() %}\n {#- loop through user_provided_columns to get column names -#}\n {%- set user_provided_columns = model['columns'] -%}\n {%- for i in user_provided_columns %}\n {%- set col = user_provided_columns[i] -%}\n {%- set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] -%}\n {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.08241, "supported_languages": null}, "macro.dbt.get_select_subquery": {"name": "get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_select_subquery", "macro_sql": "{% macro get_select_subquery(sql) %}\n {{ return(adapter.dispatch('get_select_subquery', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.082579, "supported_languages": null}, "macro.dbt.default__get_select_subquery": {"name": "default__get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_select_subquery", "macro_sql": "{% macro default__get_select_subquery(sql) %}\n select {{ adapter.dispatch('get_column_names', 'dbt')() }}\n from (\n {{ sql }}\n ) as model_subq\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.082749, "supported_languages": null}, "macro.dbt.drop_view": {"name": "drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.drop_view", "macro_sql": "{% macro drop_view(relation) -%}\n {{ return(adapter.dispatch('drop_view', 'dbt')(relation)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0829911, "supported_languages": null}, "macro.dbt.default__drop_view": {"name": "default__drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.default__drop_view", "macro_sql": "{% macro default__drop_view(relation) -%}\n drop view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.083085, "supported_languages": null}, "macro.dbt.get_replace_view_sql": {"name": "get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.get_replace_view_sql", "macro_sql": "{% macro get_replace_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0838609, "supported_languages": null}, "macro.dbt.default__get_replace_view_sql": {"name": "default__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__get_replace_view_sql", "macro_sql": "{% macro default__get_replace_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.083997, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.create_or_replace_view", "macro_sql": "{% macro create_or_replace_view() %}\n {%- set identifier = model['alias'] -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database,\n type='view') -%}\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks) }}\n\n -- If there's a table with the same name and we weren't told to full refresh,\n -- that's an error. If we were told to full refresh, drop it. This behavior differs\n -- for Snowflake and BigQuery, so multiple dispatch is used.\n {%- if old_relation is not none and old_relation.is_table -%}\n {{ handle_existing_table(should_full_refresh(), old_relation) }}\n {%- endif -%}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(target_relation, sql) }}\n {%- endcall %}\n\n {% set should_revoke = should_revoke(exists_as_view, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.handle_existing_table", "macro.dbt.should_full_refresh", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0851011, "supported_languages": null}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.handle_existing_table", "macro_sql": "{% macro handle_existing_table(full_refresh, old_relation) %}\n {{ adapter.dispatch('handle_existing_table', 'dbt')(full_refresh, old_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.085282, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__handle_existing_table", "macro_sql": "{% macro default__handle_existing_table(full_refresh, old_relation) %}\n {{ log(\"Dropping relation \" ~ old_relation ~ \" because it is of type \" ~ old_relation.type) }}\n {{ adapter.drop_relation(old_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0854862, "supported_languages": null}, "macro.dbt.get_rename_view_sql": {"name": "get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.get_rename_view_sql", "macro_sql": "{% macro get_rename_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.085731, "supported_languages": null}, "macro.dbt.default__get_rename_view_sql": {"name": "default__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.default__get_rename_view_sql", "macro_sql": "{% macro default__get_rename_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0858638, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.get_create_view_as_sql", "macro_sql": "{% macro get_create_view_as_sql(relation, sql) -%}\n {{ adapter.dispatch('get_create_view_as_sql', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.086236, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"name": "default__get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__get_create_view_as_sql", "macro_sql": "{% macro default__get_create_view_as_sql(relation, sql) -%}\n {{ return(create_view_as(relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.086389, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.086557, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__create_view_as", "macro_sql": "{% macro default__create_view_as(relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n create view {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.086945, "supported_languages": null}, "macro.dbt.default__test_relationships": {"name": "default__test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "unique_id": "macro.dbt.default__test_relationships", "macro_sql": "{% macro default__test_relationships(model, column_name, to, field) %}\n\nwith child as (\n select {{ column_name }} as from_field\n from {{ model }}\n where {{ column_name }} is not null\n),\n\nparent as (\n select {{ field }} as to_field\n from {{ to }}\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0872698, "supported_languages": null}, "macro.dbt.default__test_not_null": {"name": "default__test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "unique_id": "macro.dbt.default__test_not_null", "macro_sql": "{% macro default__test_not_null(model, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else column_name %}\n\nselect {{ column_list }}\nfrom {{ model }}\nwhere {{ column_name }} is null\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0876741, "supported_languages": null}, "macro.dbt.default__test_unique": {"name": "default__test_unique", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "unique_id": "macro.dbt.default__test_unique", "macro_sql": "{% macro default__test_unique(model, column_name) %}\n\nselect\n {{ column_name }} as unique_field,\n count(*) as n_records\n\nfrom {{ model }}\nwhere {{ column_name }} is not null\ngroup by {{ column_name }}\nhaving count(*) > 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.087949, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"name": "default__test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "unique_id": "macro.dbt.default__test_accepted_values", "macro_sql": "{% macro default__test_accepted_values(model, column_name, values, quote=True) %}\n\nwith all_values as (\n\n select\n {{ column_name }} as value_field,\n count(*) as n_records\n\n from {{ model }}\n group by {{ column_name }}\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n)\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.088471, "supported_languages": null}, "macro.dbt.statement": {"name": "statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.statement", "macro_sql": "\n{%- macro statement(name=None, fetch_result=False, auto_begin=True, language='sql') -%}\n {%- if execute: -%}\n {%- set compiled_code = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime {} for node \"{}\"'.format(language, model['unique_id'])) }}\n {{ write(compiled_code) }}\n {%- endif -%}\n {%- if language == 'sql'-%}\n {%- set res, table = adapter.execute(compiled_code, auto_begin=auto_begin, fetch=fetch_result) -%}\n {%- elif language == 'python' -%}\n {%- set res = submit_python_job(model, compiled_code) -%}\n {#-- TODO: What should table be for python models? --#}\n {%- set table = None -%}\n {%- else -%}\n {% do exceptions.raise_compiler_error(\"statement macro didn't get supported language\") %}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_result(name, response=res, agate_table=table) }}\n {%- endif -%}\n\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.089772, "supported_languages": null}, "macro.dbt.noop_statement": {"name": "noop_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.noop_statement", "macro_sql": "{% macro noop_statement(name=None, message=None, code=None, rows_affected=None, res=None) -%}\n {%- set sql = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime SQL for node \"{}\"'.format(model['unique_id'])) }}\n {{ write(sql) }}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_raw_result(name, message=message, code=code, rows_affected=rows_affected, agate_table=res) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0902882, "supported_languages": null}, "macro.dbt.run_query": {"name": "run_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.run_query", "macro_sql": "{% macro run_query(sql) %}\n {% call statement(\"run_query_statement\", fetch_result=true, auto_begin=false) %}\n {{ sql }}\n {% endcall %}\n\n {% do return(load_result(\"run_query_statement\").table) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.090549, "supported_languages": null}, "macro.dbt.convert_datetime": {"name": "convert_datetime", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.convert_datetime", "macro_sql": "{% macro convert_datetime(date_str, date_fmt) %}\n\n {% set error_msg -%}\n The provided partition date '{{ date_str }}' does not match the expected format '{{ date_fmt }}'\n {%- endset %}\n\n {% set res = try_or_compiler_error(error_msg, modules.datetime.datetime.strptime, date_str.strip(), date_fmt) %}\n {{ return(res) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.092133, "supported_languages": null}, "macro.dbt.dates_in_range": {"name": "dates_in_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.dates_in_range", "macro_sql": "{% macro dates_in_range(start_date_str, end_date_str=none, in_fmt=\"%Y%m%d\", out_fmt=\"%Y%m%d\") %}\n {% set end_date_str = start_date_str if end_date_str is none else end_date_str %}\n\n {% set start_date = convert_datetime(start_date_str, in_fmt) %}\n {% set end_date = convert_datetime(end_date_str, in_fmt) %}\n\n {% set day_count = (end_date - start_date).days %}\n {% if day_count < 0 %}\n {% set msg -%}\n Partition start date is after the end date ({{ start_date }}, {{ end_date }})\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg, model) }}\n {% endif %}\n\n {% set date_list = [] %}\n {% for i in range(0, day_count + 1) %}\n {% set the_date = (modules.datetime.timedelta(days=i) + start_date) %}\n {% if not out_fmt %}\n {% set _ = date_list.append(the_date) %}\n {% else %}\n {% set _ = date_list.append(the_date.strftime(out_fmt)) %}\n {% endif %}\n {% endfor %}\n\n {{ return(date_list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0933151, "supported_languages": null}, "macro.dbt.partition_range": {"name": "partition_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.partition_range", "macro_sql": "{% macro partition_range(raw_partition_date, date_fmt='%Y%m%d') %}\n {% set partition_range = (raw_partition_date | string).split(\",\") %}\n\n {% if (partition_range | length) == 1 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = none %}\n {% elif (partition_range | length) == 2 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = partition_range[1] %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"Invalid partition time. Expected format: {Start Date}[,{End Date}]. Got: \" ~ raw_partition_date) }}\n {% endif %}\n\n {{ return(dates_in_range(start_date, end_date, in_fmt=date_fmt)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0939891, "supported_languages": null}, "macro.dbt.py_current_timestring": {"name": "py_current_timestring", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.py_current_timestring", "macro_sql": "{% macro py_current_timestring() %}\n {% set dt = modules.datetime.datetime.now() %}\n {% do return(dt.strftime(\"%Y%m%d%H%M%S%f\")) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.094205, "supported_languages": null}, "macro.dbt.except": {"name": "except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.094413, "supported_languages": null}, "macro.dbt.default__except": {"name": "default__except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0944839, "supported_languages": null}, "macro.dbt.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.095144, "supported_languages": null}, "macro.dbt.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.095676, "supported_languages": null}, "macro.dbt.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.095894, "supported_languages": null}, "macro.dbt.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n {# call as follows:\n\n date_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n ) #}\n\n\n with rawdata as (\n\n {{dbt.generate_series(\n dbt.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.generate_series", "macro.dbt.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.096233, "supported_languages": null}, "macro.dbt.replace": {"name": "replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0965278, "supported_languages": null}, "macro.dbt.default__replace": {"name": "default__replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.default__replace", "macro_sql": "{% macro default__replace(field, old_chars, new_chars) %}\n\n replace(\n {{ field }},\n {{ old_chars }},\n {{ new_chars }}\n )\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.096677, "supported_languages": null}, "macro.dbt.concat": {"name": "concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.096899, "supported_languages": null}, "macro.dbt.default__concat": {"name": "default__concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.097012, "supported_languages": null}, "macro.dbt.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.097961, "supported_languages": null}, "macro.dbt.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.098403, "supported_languages": null}, "macro.dbt.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.098593, "supported_languages": null}, "macro.dbt.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.099145, "supported_languages": null}, "macro.dbt.length": {"name": "length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.099443, "supported_languages": null}, "macro.dbt.default__length": {"name": "default__length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.099547, "supported_languages": null}, "macro.dbt.dateadd": {"name": "dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.dateadd", "macro_sql": "{% macro dateadd(datepart, interval, from_date_or_timestamp) %}\n {{ return(adapter.dispatch('dateadd', 'dbt')(datepart, interval, from_date_or_timestamp)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.0998662, "supported_languages": null}, "macro.dbt.default__dateadd": {"name": "default__dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.default__dateadd", "macro_sql": "{% macro default__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_date_or_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.100011, "supported_languages": null}, "macro.dbt.intersect": {"name": "intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.100208, "supported_languages": null}, "macro.dbt.default__intersect": {"name": "default__intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.10038, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"name": "escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.100613, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"name": "default__escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1007411, "supported_languages": null}, "macro.dbt.right": {"name": "right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.100996, "supported_languages": null}, "macro.dbt.default__right": {"name": "default__right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.101119, "supported_languages": null}, "macro.dbt.listagg": {"name": "listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.listagg", "macro_sql": "{% macro listagg(measure, delimiter_text=\"','\", order_by_clause=none, limit_num=none) -%}\n {{ return(adapter.dispatch('listagg', 'dbt') (measure, delimiter_text, order_by_clause, limit_num)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.101675, "supported_languages": null}, "macro.dbt.default__listagg": {"name": "default__listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.default__listagg", "macro_sql": "{% macro default__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n array_slice(\n array_agg(\n {{ measure }}\n ){% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n ,0\n ,{{ limit_num }}\n ),\n {{ delimiter_text }}\n )\n {%- else %}\n listagg(\n {{ measure }},\n {{ delimiter_text }}\n )\n {% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.102062, "supported_languages": null}, "macro.dbt.datediff": {"name": "datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.102376, "supported_languages": null}, "macro.dbt.default__datediff": {"name": "default__datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.default__datediff", "macro_sql": "{% macro default__datediff(first_date, second_date, datepart) -%}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.102525, "supported_languages": null}, "macro.dbt.safe_cast": {"name": "safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.102786, "supported_languages": null}, "macro.dbt.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.default__safe_cast", "macro_sql": "{% macro default__safe_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.102922, "supported_languages": null}, "macro.dbt.hash": {"name": "hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.103159, "supported_languages": null}, "macro.dbt.default__hash": {"name": "default__hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.103318, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"name": "cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.103539, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"name": "default__cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.default__cast_bool_to_text", "macro_sql": "{% macro default__cast_bool_to_text(field) %}\n cast({{ field }} as {{ api.Column.translate_type('string') }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.103691, "supported_languages": null}, "macro.dbt.any_value": {"name": "any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.103919, "supported_languages": null}, "macro.dbt.default__any_value": {"name": "default__any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1040199, "supported_languages": null}, "macro.dbt.position": {"name": "position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1044009, "supported_languages": null}, "macro.dbt.default__position": {"name": "default__position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.104544, "supported_languages": null}, "macro.dbt.string_literal": {"name": "string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1047812, "supported_languages": null}, "macro.dbt.default__string_literal": {"name": "default__string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.104949, "supported_languages": null}, "macro.dbt.type_string": {"name": "type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.105802, "supported_languages": null}, "macro.dbt.default__type_string": {"name": "default__type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.105945, "supported_languages": null}, "macro.dbt.type_timestamp": {"name": "type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.106097, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"name": "default__type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.106234, "supported_languages": null}, "macro.dbt.type_float": {"name": "type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.10638, "supported_languages": null}, "macro.dbt.default__type_float": {"name": "default__type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1065311, "supported_languages": null}, "macro.dbt.type_numeric": {"name": "type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1066802, "supported_languages": null}, "macro.dbt.default__type_numeric": {"name": "default__type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.106847, "supported_languages": null}, "macro.dbt.type_bigint": {"name": "type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.107007, "supported_languages": null}, "macro.dbt.default__type_bigint": {"name": "default__type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.107153, "supported_languages": null}, "macro.dbt.type_int": {"name": "type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1073, "supported_languages": null}, "macro.dbt.default__type_int": {"name": "default__type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.107432, "supported_languages": null}, "macro.dbt.type_boolean": {"name": "type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.10758, "supported_languages": null}, "macro.dbt.default__type_boolean": {"name": "default__type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1077151, "supported_languages": null}, "macro.dbt.array_concat": {"name": "array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1079721, "supported_languages": null}, "macro.dbt.default__array_concat": {"name": "default__array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.108093, "supported_languages": null}, "macro.dbt.bool_or": {"name": "bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.108331, "supported_languages": null}, "macro.dbt.default__bool_or": {"name": "default__bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.108428, "supported_languages": null}, "macro.dbt.last_day": {"name": "last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.108803, "supported_languages": null}, "macro.dbt.default_last_day": {"name": "default_last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default_last_day", "macro_sql": "\n\n{%- macro default_last_day(date, datepart) -%}\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd(datepart, '1', dbt.date_trunc(datepart, date))\n )}}\n as date)\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.109055, "supported_languages": null}, "macro.dbt.default__last_day": {"name": "default__last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.109191, "supported_languages": null}, "macro.dbt.split_part": {"name": "split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.split_part", "macro_sql": "{% macro split_part(string_text, delimiter_text, part_number) %}\n {{ return(adapter.dispatch('split_part', 'dbt') (string_text, delimiter_text, part_number)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.109793, "supported_languages": null}, "macro.dbt.default__split_part": {"name": "default__split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.default__split_part", "macro_sql": "{% macro default__split_part(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1099432, "supported_languages": null}, "macro.dbt._split_part_negative": {"name": "_split_part_negative", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt._split_part_negative", "macro_sql": "{% macro _split_part_negative(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n length({{ string_text }})\n - length(\n replace({{ string_text }}, {{ delimiter_text }}, '')\n ) + 2 + {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.110137, "supported_languages": null}, "macro.dbt.date_trunc": {"name": "date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1103842, "supported_languages": null}, "macro.dbt.default__date_trunc": {"name": "default__date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.110504, "supported_languages": null}, "macro.dbt.array_construct": {"name": "array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.array_construct", "macro_sql": "{% macro array_construct(inputs=[], data_type=api.Column.translate_type('integer')) -%}\n {{ return(adapter.dispatch('array_construct', 'dbt')(inputs, data_type)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.110843, "supported_languages": null}, "macro.dbt.default__array_construct": {"name": "default__array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.default__array_construct", "macro_sql": "{% macro default__array_construct(inputs, data_type) -%}\n {% if inputs|length > 0 %}\n array[ {{ inputs|join(' , ') }} ]\n {% else %}\n array[]::{{data_type}}[]\n {% endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.111061, "supported_languages": null}, "macro.dbt.array_append": {"name": "array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.111308, "supported_languages": null}, "macro.dbt.default__array_append": {"name": "default__array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.111427, "supported_languages": null}, "macro.dbt.create_schema": {"name": "create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.111755, "supported_languages": null}, "macro.dbt.default__create_schema": {"name": "default__create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__create_schema", "macro_sql": "{% macro default__create_schema(relation) -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier() }}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1119192, "supported_languages": null}, "macro.dbt.drop_schema": {"name": "drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.112065, "supported_languages": null}, "macro.dbt.default__drop_schema": {"name": "default__drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__drop_schema", "macro_sql": "{% macro default__drop_schema(relation) -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier() }} cascade\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.112233, "supported_languages": null}, "macro.dbt.current_timestamp": {"name": "current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.112661, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"name": "default__current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp", "macro_sql": "{% macro default__current_timestamp() -%}\n {{ exceptions.raise_not_implemented(\n 'current_timestamp macro not implemented for adapter ' + adapter.type()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1127942, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"name": "snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.112917, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"name": "default__snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.113008, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"name": "current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1132312, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"name": "default__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1133, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"name": "current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "macro_sql": "{% macro current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_in_utc_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.113445, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"name": "default__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro default__current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp_backcompat", "macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.113594, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"name": "get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_create_index_sql", "macro_sql": "{% macro get_create_index_sql(relation, index_dict) -%}\n {{ return(adapter.dispatch('get_create_index_sql', 'dbt')(relation, index_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.114325, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"name": "default__get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1144488, "supported_languages": null}, "macro.dbt.create_indexes": {"name": "create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.114588, "supported_languages": null}, "macro.dbt.default__create_indexes": {"name": "default__create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__create_indexes", "macro_sql": "{% macro default__create_indexes(relation) -%}\n {%- set _indexes = config.get('indexes', default=[]) -%}\n\n {% for _index_dict in _indexes %}\n {% set create_index_sql = get_create_index_sql(relation, _index_dict) %}\n {% if create_index_sql %}\n {% do run_query(create_index_sql) %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.114935, "supported_languages": null}, "macro.dbt.get_drop_index_sql": {"name": "get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_drop_index_sql", "macro_sql": "{% macro get_drop_index_sql(relation, index_name) -%}\n {{ adapter.dispatch('get_drop_index_sql', 'dbt')(relation, index_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.115097, "supported_languages": null}, "macro.dbt.default__get_drop_index_sql": {"name": "default__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_drop_index_sql", "macro_sql": "{% macro default__get_drop_index_sql(relation, index_name) -%}\n {{ exceptions.raise_compiler_error(\"`get_drop_index_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.115215, "supported_languages": null}, "macro.dbt.get_show_indexes_sql": {"name": "get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_show_indexes_sql", "macro_sql": "{% macro get_show_indexes_sql(relation) -%}\n {{ adapter.dispatch('get_show_indexes_sql', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.115353, "supported_languages": null}, "macro.dbt.default__get_show_indexes_sql": {"name": "default__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_show_indexes_sql", "macro_sql": "{% macro default__get_show_indexes_sql(relation) -%}\n {{ exceptions.raise_compiler_error(\"`get_show_indexes_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.115465, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"name": "make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_intermediate_relation", "macro_sql": "{% macro make_intermediate_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_intermediate_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.117131, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"name": "default__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_intermediate_relation", "macro_sql": "{% macro default__make_intermediate_relation(base_relation, suffix) %}\n {{ return(default__make_temp_relation(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1172822, "supported_languages": null}, "macro.dbt.make_temp_relation": {"name": "make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_temp_relation", "macro_sql": "{% macro make_temp_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.117472, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"name": "default__make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_temp_relation", "macro_sql": "{% macro default__make_temp_relation(base_relation, suffix) %}\n {%- set temp_identifier = base_relation.identifier ~ suffix -%}\n {%- set temp_relation = base_relation.incorporate(\n path={\"identifier\": temp_identifier}) -%}\n\n {{ return(temp_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.117731, "supported_languages": null}, "macro.dbt.make_backup_relation": {"name": "make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_backup_relation", "macro_sql": "{% macro make_backup_relation(base_relation, backup_relation_type, suffix='__dbt_backup') %}\n {{ return(adapter.dispatch('make_backup_relation', 'dbt')(base_relation, backup_relation_type, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1179478, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"name": "default__make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_backup_relation", "macro_sql": "{% macro default__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {%- set backup_identifier = base_relation.identifier ~ suffix -%}\n {%- set backup_relation = base_relation.incorporate(\n path={\"identifier\": backup_identifier},\n type=backup_relation_type\n ) -%}\n {{ return(backup_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.118229, "supported_languages": null}, "macro.dbt.truncate_relation": {"name": "truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1183958, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"name": "default__truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1186, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"name": "get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.get_or_create_relation", "macro_sql": "{% macro get_or_create_relation(database, schema, identifier, type) -%}\n {{ return(adapter.dispatch('get_or_create_relation', 'dbt')(database, schema, identifier, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.118815, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"name": "default__get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__get_or_create_relation", "macro_sql": "{% macro default__get_or_create_relation(database, schema, identifier, type) %}\n {%- set target_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% if target_relation %}\n {% do return([true, target_relation]) %}\n {% endif %}\n\n {%- set new_relation = api.Relation.create(\n database=database,\n schema=schema,\n identifier=identifier,\n type=type\n ) -%}\n {% do return([false, new_relation]) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.119306, "supported_languages": null}, "macro.dbt.load_cached_relation": {"name": "load_cached_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_cached_relation", "macro_sql": "{% macro load_cached_relation(relation) %}\n {% do return(adapter.get_relation(\n database=relation.database,\n schema=relation.schema,\n identifier=relation.identifier\n )) -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.119642, "supported_languages": null}, "macro.dbt.load_relation": {"name": "load_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.119829, "supported_languages": null}, "macro.dbt.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1203551, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n select\n max({{ loaded_at_field }}) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endcall %}\n {{ return(load_result('collect_freshness')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.120777, "supported_languages": null}, "macro.dbt.validate_sql": {"name": "validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.validate_sql", "macro_sql": "{% macro validate_sql(sql) -%}\n {{ return(adapter.dispatch('validate_sql', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__validate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.121048, "supported_languages": null}, "macro.dbt.default__validate_sql": {"name": "default__validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.default__validate_sql", "macro_sql": "{% macro default__validate_sql(sql) -%}\n {% call statement('validate_sql') -%}\n explain {{ sql }}\n {% endcall %}\n {{ return(load_result('validate_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.121252, "supported_languages": null}, "macro.dbt.copy_grants": {"name": "copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.122827, "supported_languages": null}, "macro.dbt.default__copy_grants": {"name": "default__copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.122952, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"name": "support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "macro_sql": "{% macro support_multiple_grantees_per_dcl_statement() %}\n {{ return(adapter.dispatch('support_multiple_grantees_per_dcl_statement', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.123122, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"name": "default__support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "macro_sql": "\n\n{%- macro default__support_multiple_grantees_per_dcl_statement() -%}\n {{ return(True) }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.123234, "supported_languages": null}, "macro.dbt.should_revoke": {"name": "should_revoke", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.should_revoke", "macro_sql": "{% macro should_revoke(existing_relation, full_refresh_mode=True) %}\n\n {% if not existing_relation %}\n {#-- The table doesn't already exist, so no grants to copy over --#}\n {{ return(False) }}\n {% elif full_refresh_mode %}\n {#-- The object is being REPLACED -- whether grants are copied over depends on the value of user config --#}\n {{ return(copy_grants()) }}\n {% else %}\n {#-- The table is being merged/upserted/inserted -- grants will be carried over --#}\n {{ return(True) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.12356, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"name": "get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.123733, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"name": "default__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.123828, "supported_languages": null}, "macro.dbt.get_grant_sql": {"name": "get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_grant_sql", "macro_sql": "{% macro get_grant_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_grant_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1240351, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"name": "default__get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_grant_sql", "macro_sql": "\n\n{%- macro default__get_grant_sql(relation, privilege, grantees) -%}\n grant {{ privilege }} on {{ relation }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.124222, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"name": "get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_revoke_sql", "macro_sql": "{% macro get_revoke_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_revoke_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.124438, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"name": "default__get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_revoke_sql", "macro_sql": "\n\n{%- macro default__get_revoke_sql(relation, privilege, grantees) -%}\n revoke {{ privilege }} on {{ relation }} from {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.124938, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"name": "get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_dcl_statement_list", "macro_sql": "{% macro get_dcl_statement_list(relation, grant_config, get_dcl_macro) %}\n {{ return(adapter.dispatch('get_dcl_statement_list', 'dbt')(relation, grant_config, get_dcl_macro)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.125168, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"name": "default__get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_dcl_statement_list", "macro_sql": "\n\n{%- macro default__get_dcl_statement_list(relation, grant_config, get_dcl_macro) -%}\n {#\n -- Unpack grant_config into specific privileges and the set of users who need them granted/revoked.\n -- Depending on whether this database supports multiple grantees per statement, pass in the list of\n -- all grantees per privilege, or (if not) template one statement per privilege-grantee pair.\n -- `get_dcl_macro` will be either `get_grant_sql` or `get_revoke_sql`\n #}\n {%- set dcl_statements = [] -%}\n {%- for privilege, grantees in grant_config.items() %}\n {%- if support_multiple_grantees_per_dcl_statement() and grantees -%}\n {%- set dcl = get_dcl_macro(relation, privilege, grantees) -%}\n {%- do dcl_statements.append(dcl) -%}\n {%- else -%}\n {%- for grantee in grantees -%}\n {% set dcl = get_dcl_macro(relation, privilege, [grantee]) %}\n {%- do dcl_statements.append(dcl) -%}\n {% endfor -%}\n {%- endif -%}\n {%- endfor -%}\n {{ return(dcl_statements) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.125828, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"name": "call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.call_dcl_statements", "macro_sql": "{% macro call_dcl_statements(dcl_statement_list) %}\n {{ return(adapter.dispatch(\"call_dcl_statements\", \"dbt\")(dcl_statement_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.126008, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"name": "default__call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__call_dcl_statements", "macro_sql": "{% macro default__call_dcl_statements(dcl_statement_list) %}\n {#\n -- By default, supply all grant + revoke statements in a single semicolon-separated block,\n -- so that they're all processed together.\n\n -- Some databases do not support this. Those adapters will need to override this macro\n -- to run each statement individually.\n #}\n {% call statement('grants') %}\n {% for dcl_statement in dcl_statement_list %}\n {{ dcl_statement }};\n {% endfor %}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.126229, "supported_languages": null}, "macro.dbt.apply_grants": {"name": "apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.apply_grants", "macro_sql": "{% macro apply_grants(relation, grant_config, should_revoke) %}\n {{ return(adapter.dispatch(\"apply_grants\", \"dbt\")(relation, grant_config, should_revoke)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1264472, "supported_languages": null}, "macro.dbt.default__apply_grants": {"name": "default__apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__apply_grants", "macro_sql": "{% macro default__apply_grants(relation, grant_config, should_revoke=True) %}\n {#-- If grant_config is {} or None, this is a no-op --#}\n {% if grant_config %}\n {% if should_revoke %}\n {#-- We think previous grants may have carried over --#}\n {#-- Show current grants and calculate diffs --#}\n {% set current_grants_table = run_query(get_show_grant_sql(relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set needs_granting = diff_of_two_dicts(grant_config, current_grants_dict) %}\n {% set needs_revoking = diff_of_two_dicts(current_grants_dict, grant_config) %}\n {% if not (needs_granting or needs_revoking) %}\n {{ log('On ' ~ relation ~': All grants are in place, no revocation or granting needed.')}}\n {% endif %}\n {% else %}\n {#-- We don't think there's any chance of previous grants having carried over. --#}\n {#-- Jump straight to granting what the user has configured. --#}\n {% set needs_revoking = {} %}\n {% set needs_granting = grant_config %}\n {% endif %}\n {% if needs_granting or needs_revoking %}\n {% set revoke_statement_list = get_dcl_statement_list(relation, needs_revoking, get_revoke_sql) %}\n {% set grant_statement_list = get_dcl_statement_list(relation, needs_granting, get_grant_sql) %}\n {% set dcl_statement_list = revoke_statement_list + grant_statement_list %}\n {% if dcl_statement_list %}\n {{ call_dcl_statements(dcl_statement_list) }}\n {% endif %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_dcl_statement_list", "macro.dbt.call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.127527, "supported_languages": null}, "macro.dbt.get_show_sql": {"name": "get_show_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_show_sql", "macro_sql": "{% macro get_show_sql(compiled_code, sql_header, limit) -%}\n {%- if sql_header -%}\n {{ sql_header }}\n {%- endif -%}\n {%- if limit is not none -%}\n {{ get_limit_subquery_sql(compiled_code, limit) }}\n {%- else -%}\n {{ compiled_code }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.128025, "supported_languages": null}, "macro.dbt.get_limit_subquery_sql": {"name": "get_limit_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_limit_subquery_sql", "macro_sql": "{% macro get_limit_subquery_sql(sql, limit) %}\n {{ adapter.dispatch('get_limit_subquery_sql', 'dbt')(sql, limit) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_limit_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.128206, "supported_languages": null}, "macro.dbt.default__get_limit_subquery_sql": {"name": "default__get_limit_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.default__get_limit_subquery_sql", "macro_sql": "{% macro default__get_limit_subquery_sql(sql, limit) %}\n select *\n from (\n {{ sql }}\n ) as model_limit_subq\n limit {{ limit }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.128335, "supported_languages": null}, "macro.dbt.alter_column_comment": {"name": "alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_column_comment", "macro_sql": "{% macro alter_column_comment(relation, column_dict) -%}\n {{ return(adapter.dispatch('alter_column_comment', 'dbt')(relation, column_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1289558, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"name": "default__alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_column_comment", "macro_sql": "{% macro default__alter_column_comment(relation, column_dict) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_column_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.129118, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"name": "alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_relation_comment", "macro_sql": "{% macro alter_relation_comment(relation, relation_comment) -%}\n {{ return(adapter.dispatch('alter_relation_comment', 'dbt')(relation, relation_comment)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1293068, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"name": "default__alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_relation_comment", "macro_sql": "{% macro default__alter_relation_comment(relation, relation_comment) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_relation_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.129469, "supported_languages": null}, "macro.dbt.persist_docs": {"name": "persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.persist_docs", "macro_sql": "{% macro persist_docs(relation, model, for_relation=true, for_columns=true) -%}\n {{ return(adapter.dispatch('persist_docs', 'dbt')(relation, model, for_relation, for_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.129716, "supported_languages": null}, "macro.dbt.default__persist_docs": {"name": "default__persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__persist_docs", "macro_sql": "{% macro default__persist_docs(relation, model, for_relation, for_columns) -%}\n {% if for_relation and config.persist_relation_docs() and model.description %}\n {% do run_query(alter_relation_comment(relation, model.description)) %}\n {% endif %}\n\n {% if for_columns and config.persist_column_docs() and model.columns %}\n {% do run_query(alter_column_comment(relation, model.columns)) %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.alter_relation_comment", "macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.130162, "supported_languages": null}, "macro.dbt.get_catalog_relations": {"name": "get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_relations", "macro_sql": "{% macro get_catalog_relations(information_schema, relations) -%}\n {{ return(adapter.dispatch('get_catalog_relations', 'dbt')(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.132731, "supported_languages": null}, "macro.dbt.default__get_catalog_relations": {"name": "default__get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_relations", "macro_sql": "{% macro default__get_catalog_relations(information_schema, relations) -%}\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog_relations not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.132973, "supported_languages": null}, "macro.dbt.get_catalog": {"name": "get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.133161, "supported_languages": null}, "macro.dbt.default__get_catalog": {"name": "default__get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog", "macro_sql": "{% macro default__get_catalog(information_schema, schemas) -%}\n\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.133465, "supported_languages": null}, "macro.dbt.information_schema_name": {"name": "information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.133636, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"name": "default__information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__information_schema_name", "macro_sql": "{% macro default__information_schema_name(database) -%}\n {%- if database -%}\n {{ database }}.INFORMATION_SCHEMA\n {%- else -%}\n INFORMATION_SCHEMA\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.133776, "supported_languages": null}, "macro.dbt.list_schemas": {"name": "list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.133939, "supported_languages": null}, "macro.dbt.default__list_schemas": {"name": "default__list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_schemas", "macro_sql": "{% macro default__list_schemas(database) -%}\n {% set sql %}\n select distinct schema_name\n from {{ information_schema_name(database) }}.SCHEMATA\n where catalog_name ilike '{{ database }}'\n {% endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.information_schema_name", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1341639, "supported_languages": null}, "macro.dbt.check_schema_exists": {"name": "check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.check_schema_exists", "macro_sql": "{% macro check_schema_exists(information_schema, schema) -%}\n {{ return(adapter.dispatch('check_schema_exists', 'dbt')(information_schema, schema)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.13435, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"name": "default__check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__check_schema_exists", "macro_sql": "{% macro default__check_schema_exists(information_schema, schema) -%}\n {% set sql -%}\n select count(*)\n from {{ information_schema.replace(information_schema_view='SCHEMATA') }}\n where catalog_name='{{ information_schema.database }}'\n and schema_name='{{ schema }}'\n {%- endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.134638, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"name": "list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_relations_without_caching", "macro_sql": "{% macro list_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.134808, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"name": "default__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_relations_without_caching", "macro_sql": "{% macro default__list_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.134955, "supported_languages": null}, "macro.dbt.get_relations": {"name": "get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relations", "macro_sql": "{% macro get_relations() %}\n {{ return(adapter.dispatch('get_relations', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.135107, "supported_languages": null}, "macro.dbt.default__get_relations": {"name": "default__get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relations", "macro_sql": "{% macro default__get_relations() %}\n {{ exceptions.raise_not_implemented(\n 'get_relations macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1352499, "supported_languages": null}, "macro.dbt.get_relation_last_modified": {"name": "get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relation_last_modified", "macro_sql": "{% macro get_relation_last_modified(information_schema, relations) %}\n {{ return(adapter.dispatch('get_relation_last_modified', 'dbt')(information_schema, relations)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_relation_last_modified"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.135447, "supported_languages": null}, "macro.dbt.default__get_relation_last_modified": {"name": "default__get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relation_last_modified", "macro_sql": "{% macro default__get_relation_last_modified(information_schema, relations) %}\n {{ exceptions.raise_not_implemented(\n 'get_relation_last_modified macro not implemented for adapter ' + adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1356091, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"name": "get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.137635, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"name": "default__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_relation", "macro_sql": "{% macro default__get_columns_in_relation(relation) -%}\n {{ exceptions.raise_not_implemented(\n 'get_columns_in_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.137782, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"name": "sql_convert_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.sql_convert_columns_in_relation", "macro_sql": "{% macro sql_convert_columns_in_relation(table) -%}\n {% set columns = [] %}\n {% for row in table %}\n {% do columns.append(api.Column(*row)) %}\n {% endfor %}\n {{ return(columns) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.138067, "supported_languages": null}, "macro.dbt.get_empty_subquery_sql": {"name": "get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_subquery_sql", "macro_sql": "{% macro get_empty_subquery_sql(select_sql, select_sql_header=none) -%}\n {{ return(adapter.dispatch('get_empty_subquery_sql', 'dbt')(select_sql, select_sql_header)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.138268, "supported_languages": null}, "macro.dbt.default__get_empty_subquery_sql": {"name": "default__get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_subquery_sql", "macro_sql": "{% macro default__get_empty_subquery_sql(select_sql, select_sql_header=none) %}\n {%- if select_sql_header is not none -%}\n {{ select_sql_header }}\n {%- endif -%}\n select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.138452, "supported_languages": null}, "macro.dbt.get_empty_schema_sql": {"name": "get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_schema_sql", "macro_sql": "{% macro get_empty_schema_sql(columns) -%}\n {{ return(adapter.dispatch('get_empty_schema_sql', 'dbt')(columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_schema_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.138622, "supported_languages": null}, "macro.dbt.default__get_empty_schema_sql": {"name": "default__get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_schema_sql", "macro_sql": "{% macro default__get_empty_schema_sql(columns) %}\n {%- set col_err = [] -%}\n {%- set col_naked_numeric = [] -%}\n select\n {% for i in columns %}\n {%- set col = columns[i] -%}\n {%- if col['data_type'] is not defined -%}\n {%- do col_err.append(col['name']) -%}\n {#-- If this column's type is just 'numeric' then it is missing precision/scale, raise a warning --#}\n {%- elif col['data_type'].strip().lower() in ('numeric', 'decimal', 'number') -%}\n {%- do col_naked_numeric.append(col['name']) -%}\n {%- endif -%}\n {% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}\n cast(null as {{ col['data_type'] }}) as {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n {%- if (col_err | length) > 0 -%}\n {{ exceptions.column_type_missing(column_names=col_err) }}\n {%- elif (col_naked_numeric | length) > 0 -%}\n {{ exceptions.warn(\"Detected columns with numeric type and unspecified precision/scale, this can lead to unintended rounding: \" ~ col_naked_numeric ~ \"`\") }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.139755, "supported_languages": null}, "macro.dbt.get_column_schema_from_query": {"name": "get_column_schema_from_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_column_schema_from_query", "macro_sql": "{% macro get_column_schema_from_query(select_sql, select_sql_header=none) -%}\n {% set columns = [] %}\n {# -- Using an 'empty subquery' here to get the same schema as the given select_sql statement, without necessitating a data scan.#}\n {% set sql = get_empty_subquery_sql(select_sql, select_sql_header) %}\n {% set column_schema = adapter.get_column_schema_from_query(sql) %}\n {{ return(column_schema) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.140076, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"name": "get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_query", "macro_sql": "{% macro get_columns_in_query(select_sql) -%}\n {{ return(adapter.dispatch('get_columns_in_query', 'dbt')(select_sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.140245, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"name": "default__get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_query", "macro_sql": "{% macro default__get_columns_in_query(select_sql) %}\n {% call statement('get_columns_in_query', fetch_result=True, auto_begin=False) -%}\n {{ get_empty_subquery_sql(select_sql) }}\n {% endcall %}\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.140565, "supported_languages": null}, "macro.dbt.alter_column_type": {"name": "alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_column_type", "macro_sql": "{% macro alter_column_type(relation, column_name, new_column_type) -%}\n {{ return(adapter.dispatch('alter_column_type', 'dbt')(relation, column_name, new_column_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1407769, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"name": "default__alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_column_type", "macro_sql": "{% macro default__alter_column_type(relation, column_name, new_column_type) -%}\n {#\n 1. Create a new column (w/ temp name and correct type)\n 2. Copy data over to it\n 3. Drop the existing column (cascade!)\n 4. Rename the new column to existing column\n #}\n {%- set tmp_column = column_name + \"__dbt_alter\" -%}\n\n {% call statement('alter_column_type') %}\n alter table {{ relation }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation }} rename column {{ adapter.quote(tmp_column) }} to {{ adapter.quote(column_name) }}\n {% endcall %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1413171, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"name": "alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_relation_add_remove_columns", "macro_sql": "{% macro alter_relation_add_remove_columns(relation, add_columns = none, remove_columns = none) -%}\n {{ return(adapter.dispatch('alter_relation_add_remove_columns', 'dbt')(relation, add_columns, remove_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1415732, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"name": "default__alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "macro_sql": "{% macro default__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}\n\n {% if add_columns is none %}\n {% set add_columns = [] %}\n {% endif %}\n {% if remove_columns is none %}\n {% set remove_columns = [] %}\n {% endif %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation }}\n\n {% for column in add_columns %}\n add column {{ column.name }} {{ column.data_type }}{{ ',' if not loop.last }}\n {% endfor %}{{ ',' if add_columns and remove_columns }}\n\n {% for column in remove_columns %}\n drop column {{ column.name }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {% do run_query(sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.142287, "supported_languages": null}, "macro.dbt.resolve_model_name": {"name": "resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.resolve_model_name", "macro_sql": "{% macro resolve_model_name(input_model_name) %}\n {{ return(adapter.dispatch('resolve_model_name', 'dbt')(input_model_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.143745, "supported_languages": null}, "macro.dbt.default__resolve_model_name": {"name": "default__resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.default__resolve_model_name", "macro_sql": "\n\n{%- macro default__resolve_model_name(input_model_name) -%}\n {{ input_model_name | string | replace('\"', '\\\"') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1438878, "supported_languages": null}, "macro.dbt.build_ref_function": {"name": "build_ref_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_ref_function", "macro_sql": "{% macro build_ref_function(model) %}\n\n {%- set ref_dict = {} -%}\n {%- for _ref in model.refs -%}\n {% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}\n {%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}\n {%- if _ref.get('version') -%}\n {% do _ref_args.extend([\"v\" ~ _ref['version']]) %}\n {%- endif -%}\n {%- do ref_dict.update({_ref_args | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args, **kwargs):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\n version = kwargs.get(\"v\") or kwargs.get(\"version\")\n if version:\n key += f\".v{version}\"\n dbt_load_df_function = kwargs.get(\"dbt_load_df_function\")\n return dbt_load_df_function(refs[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.144655, "supported_languages": null}, "macro.dbt.build_source_function": {"name": "build_source_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_source_function", "macro_sql": "{% macro build_source_function(model) %}\n\n {%- set source_dict = {} -%}\n {%- for _source in model.sources -%}\n {%- set resolved = source(*_source) -%}\n {%- do source_dict.update({_source | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef source(*args, dbt_load_df_function):\n sources = {{ source_dict | tojson }}\n key = '.'.join(args)\n return dbt_load_df_function(sources[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.145024, "supported_languages": null}, "macro.dbt.build_config_dict": {"name": "build_config_dict", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {% set config_dbt_used = zip(model.config.config_keys_used, model.config.config_keys_defaults) | list %}\n {%- for key, default in config_dbt_used -%}\n {# weird type testing with enum, would be much easier to write this logic in Python! #}\n {%- if key == \"language\" -%}\n {%- set value = \"python\" -%}\n {%- endif -%}\n {%- set value = model.config.get(key, default) -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.145559, "supported_languages": null}, "macro.dbt.py_script_postfix": {"name": "py_script_postfix", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_postfix", "macro_sql": "{% macro py_script_postfix(model) %}\n# This part is user provided model code\n# you will need to copy the next section to run the code\n# COMMAND ----------\n# this part is dbt logic for get ref work, do not modify\n\n{{ build_ref_function(model ) }}\n{{ build_source_function(model ) }}\n{{ build_config_dict(model) }}\n\nclass config:\n def __init__(self, *args, **kwargs):\n pass\n\n @staticmethod\n def get(key, default=None):\n return config_dict.get(key, default)\n\nclass this:\n \"\"\"dbt.this() or dbt.this.identifier\"\"\"\n database = \"{{ this.database }}\"\n schema = \"{{ this.schema }}\"\n identifier = \"{{ this.identifier }}\"\n {% set this_relation_name = resolve_model_name(this) %}\n def __repr__(self):\n return '{{ this_relation_name }}'\n\n\nclass dbtObj:\n def __init__(self, load_df_function) -> None:\n self.source = lambda *args: source(*args, dbt_load_df_function=load_df_function)\n self.ref = lambda *args, **kwargs: ref(*args, **kwargs, dbt_load_df_function=load_df_function)\n self.config = config\n self.this = this()\n self.is_incremental = {{ is_incremental() }}\n\n# COMMAND ----------\n{{py_script_comment()}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.resolve_model_name", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.145988, "supported_languages": null}, "macro.dbt.py_script_comment": {"name": "py_script_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.146058, "supported_languages": null}, "macro.dbt.test_unique": {"name": "test_unique", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.146522, "supported_languages": null}, "macro.dbt.test_not_null": {"name": "test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_not_null", "macro_sql": "{% test not_null(model, column_name) %}\n {% set macro = adapter.dispatch('test_not_null', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1467361, "supported_languages": null}, "macro.dbt.test_accepted_values": {"name": "test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_accepted_values", "macro_sql": "{% test accepted_values(model, column_name, values, quote=True) %}\n {% set macro = adapter.dispatch('test_accepted_values', 'dbt') %}\n {{ macro(model, column_name, values, quote) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1469991, "supported_languages": null}, "macro.dbt.test_relationships": {"name": "test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_relationships", "macro_sql": "{% test relationships(model, column_name, to, field) %}\n {% set macro = adapter.dispatch('test_relationships', 'dbt') %}\n {{ macro(model, column_name, to, field) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1472461, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"name": "get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.147564, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"name": "default__get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n dbt.split_part(\n dbt.split_part(\n dbt.replace(\n dbt.replace(\n dbt.replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part", "macro.dbt.replace", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.14808, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"name": "get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1485062, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"name": "default__get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n dbt.replace(\n dbt.replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ dbt.position(\"'/'\", stripped_url) }}, 0),\n {{ dbt.position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n dbt.split_part(\n dbt.right(\n stripped_url,\n dbt.length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ dbt.safe_cast(\n parsed_path,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.position", "macro.dbt.split_part", "macro.dbt.right", "macro.dbt.length", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1491148, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"name": "get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.get_url_parameter", "macro_sql": "{% macro get_url_parameter(field, url_parameter) -%}\n {{ return(adapter.dispatch('get_url_parameter', 'dbt_utils')(field, url_parameter)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1494012, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"name": "default__get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.default__get_url_parameter", "macro_sql": "{% macro default__get_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"='\" -%}\n\n{%- set split = dbt.split_part(dbt.split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.149698, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"name": "test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.test_fewer_rows_than", "macro_sql": "{% test fewer_rows_than(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_fewer_rows_than', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_fewer_rows_than"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.150709, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"name": "default__test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "macro_sql": "{% macro default__test_fewer_rows_than(model, compare_model, group_by_columns) %}\n\n{{ config(fail_calc = 'sum(coalesce(row_count_delta, 0))') }}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in equal_rowcount. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_fewer_rows_than'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_our_model \n from {{ model }}\n {{ groupby_gb_cols }}\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_comparison_model \n from {{ compare_model }}\n {{ groupby_gb_cols }}\n\n),\ncounts as (\n\n select\n\n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_our_model,\n count_comparison_model\n from a\n full join b on \n a.id_dbtutils_test_fewer_rows_than = b.id_dbtutils_test_fewer_rows_than\n {{ join_gb_cols }}\n\n),\nfinal as (\n\n select *,\n case\n -- fail the test if we have more rows than the reference model and return the row count delta\n when count_our_model > count_comparison_model then (count_our_model - count_comparison_model)\n -- fail the test if they are the same number\n when count_our_model = count_comparison_model then 1\n -- pass the test if the delta is positive (i.e. return the number 0)\n else 0\n end as row_count_delta\n from counts\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.151645, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"name": "test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.test_equal_rowcount", "macro_sql": "{% test equal_rowcount(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_equal_rowcount', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.152458, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"name": "default__test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.default__test_equal_rowcount", "macro_sql": "{% macro default__test_equal_rowcount(model, compare_model, group_by_columns) %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = 'sum(coalesce(diff_count, 0))') }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(', ') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in fewer_rows_than. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_equal_rowcount'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_a \n from {{ model }}\n {{groupby_gb_cols}}\n\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_b \n from {{ compare_model }}\n {{groupby_gb_cols}}\n\n),\nfinal as (\n\n select\n \n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_a,\n count_b,\n abs(count_a - count_b) as diff_count\n\n from a\n full join b\n on\n a.id_dbtutils_test_equal_rowcount = b.id_dbtutils_test_equal_rowcount\n {{join_gb_cols}}\n\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.153453, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"name": "test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.test_relationships_where", "macro_sql": "{% test relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n {{ return(adapter.dispatch('test_relationships_where', 'dbt_utils')(model, column_name, to, field, from_condition, to_condition)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.154069, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"name": "default__test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.default__test_relationships_where", "macro_sql": "{% macro default__test_relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n\n{# T-SQL has no boolean data type so we use 1=1 which returns TRUE #}\n{# ref https://stackoverflow.com/a/7170753/3842610 #}\n\nwith left_table as (\n\n select\n {{column_name}} as id\n\n from {{model}}\n\n where {{column_name}} is not null\n and {{from_condition}}\n\n),\n\nright_table as (\n\n select\n {{field}} as id\n\n from {{to}}\n\n where {{field}} is not null\n and {{to_condition}}\n\n),\n\nexceptions as (\n\n select\n left_table.id,\n right_table.id as right_id\n\n from left_table\n\n left join right_table\n on left_table.id = right_table.id\n\n where right_table.id is null\n\n)\n\nselect * from exceptions\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.154384, "supported_languages": null}, "macro.dbt_utils.test_recency": {"name": "test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, ignore_time_component=False, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, ignore_time_component, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.155042, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"name": "default__test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, ignore_time_component, group_by_columns) %}\n\n{% set threshold = 'cast(' ~ dbt.dateadd(datepart, interval * -1, dbt.current_timestamp()) ~ ' as ' ~ ('date' if ignore_time_component else dbt.type_timestamp()) ~ ')' %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nwith recency as (\n\n select \n\n {{ select_gb_cols }}\n {% if ignore_time_component %}\n cast(max({{ field }}) as date) as most_recent\n {%- else %}\n max({{ field }}) as most_recent\n {%- endif %}\n\n from {{ model }}\n\n {{ groupby_gb_cols }}\n\n)\n\nselect\n\n {{ select_gb_cols }}\n most_recent,\n {{ threshold }} as threshold\n\nfrom recency\nwhere most_recent < {{ threshold }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.155821, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"name": "test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.test_not_constant", "macro_sql": "{% test not_constant(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_constant', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1562371, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"name": "default__test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.default__test_not_constant", "macro_sql": "{% macro default__test_not_constant(model, column_name, group_by_columns) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nselect\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count(distinct {{ column_name }}) as filler_column\n\nfrom {{ model }}\n\n {{groupby_gb_cols}}\n\nhaving count(distinct {{ column_name }}) = 1\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1566641, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"name": "test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.test_accepted_range", "macro_sql": "{% test accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n {{ return(adapter.dispatch('test_accepted_range', 'dbt_utils')(model, column_name, min_value, max_value, inclusive)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1572201, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"name": "default__test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.default__test_accepted_range", "macro_sql": "{% macro default__test_accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n\nwith meet_condition as(\n select *\n from {{ model }}\n),\n\nvalidation_errors as (\n select *\n from meet_condition\n where\n -- never true, defaults to an empty result set. Exists to ensure any combo of the `or` clauses below succeeds\n 1 = 2\n\n {%- if min_value is not none %}\n -- records with a value >= min_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} > {{- \"=\" if inclusive }} {{ min_value }}\n {%- endif %}\n\n {%- if max_value is not none %}\n -- records with a value <= max_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} < {{- \"=\" if inclusive }} {{ max_value }}\n {%- endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.157662, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"name": "test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.test_not_accepted_values", "macro_sql": "{% test not_accepted_values(model, column_name, values, quote=True) %}\n {{ return(adapter.dispatch('test_not_accepted_values', 'dbt_utils')(model, column_name, values, quote)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.15815, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"name": "default__test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.default__test_not_accepted_values", "macro_sql": "{% macro default__test_not_accepted_values(model, column_name, values, quote=True) %}\nwith all_values as (\n\n select distinct\n {{ column_name }} as value_field\n\n from {{ model }}\n\n),\n\nvalidation_errors as (\n\n select\n value_field\n\n from all_values\n where value_field in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n )\n\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1585789, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"name": "test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.test_at_least_one", "macro_sql": "{% test at_least_one(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_at_least_one', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_at_least_one"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.159174, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"name": "default__test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(model, column_name, group_by_columns) %}\n\n{% set pruned_cols = [column_name] %}\n\n{% if group_by_columns|length() > 0 %}\n\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n {% set pruned_cols = group_by_columns %}\n\n {% if column_name not in pruned_cols %}\n {% do pruned_cols.append(column_name) %}\n {% endif %}\n\n{% endif %}\n\n{% set select_pruned_cols = pruned_cols|join(' ,') %}\n\nselect *\nfrom (\n with pruned_rows as (\n select\n {{ select_pruned_cols }}\n from {{ model }}\n where {{ column_name }} is not null\n limit 1\n )\n select\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count({{ column_name }}) as filler_column\n\n from pruned_rows\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.159908, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"name": "test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "macro_sql": "{% test unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n {{ return(adapter.dispatch('test_unique_combination_of_columns', 'dbt_utils')(model, combination_of_columns, quote_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_combination_of_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1604779, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"name": "default__test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "macro_sql": "{% macro default__test_unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n\n{% if not quote_columns %}\n {%- set column_list=combination_of_columns %}\n{% elif quote_columns %}\n {%- set column_list=[] %}\n {% for column in combination_of_columns -%}\n {% set column_list = column_list.append( adapter.quote(column) ) %}\n {%- endfor %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`quote_columns` argument for unique_combination_of_columns test must be one of [True, False] Got: '\" ~ quote ~\"'.'\"\n ) }}\n{% endif %}\n\n{%- set columns_csv=column_list | join(', ') %}\n\n\nwith validation_errors as (\n\n select\n {{ columns_csv }}\n from {{ model }}\n group by {{ columns_csv }}\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1610692, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"name": "test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.test_cardinality_equality", "macro_sql": "{% test cardinality_equality(model, column_name, to, field) %}\n {{ return(adapter.dispatch('test_cardinality_equality', 'dbt_utils')(model, column_name, to, field)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1616, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"name": "default__test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.default__test_cardinality_equality", "macro_sql": "{% macro default__test_cardinality_equality(model, column_name, to, field) %}\n\n{# T-SQL does not let you use numbers as aliases for columns #}\n{# Thus, no \"GROUP BY 1\" #}\n\nwith table_a as (\nselect\n {{ column_name }},\n count(*) as num_rows\nfrom {{ model }}\ngroup by {{ column_name }}\n),\n\ntable_b as (\nselect\n {{ field }},\n count(*) as num_rows\nfrom {{ to }}\ngroup by {{ field }}\n),\n\nexcept_a as (\n select *\n from table_a\n {{ dbt.except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ dbt.except() }}\n select *\n from table_a\n),\n\nunioned as (\n select *\n from except_a\n union all\n select *\n from except_b\n)\n\nselect *\nfrom unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.161921, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"name": "test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None) %}\n {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_expression_is_true"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.162282, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"name": "default__test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nselect\n {{ column_list }}\nfrom {{ model }}\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1626098, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"name": "test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.test_not_null_proportion", "macro_sql": "{% macro test_not_null_proportion(model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_null_proportion', 'dbt_utils')(model, group_by_columns, **kwargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_proportion"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1632152, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"name": "default__test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.default__test_not_null_proportion", "macro_sql": "{% macro default__test_not_null_proportion(model, group_by_columns) %}\n\n{% set column_name = kwargs.get('column_name', kwargs.get('arg')) %}\n{% set at_least = kwargs.get('at_least', kwargs.get('arg')) %}\n{% set at_most = kwargs.get('at_most', kwargs.get('arg', 1)) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith validation as (\n select\n {{select_gb_cols}}\n sum(case when {{ column_name }} is null then 0 else 1 end) / cast(count(*) as numeric) as not_null_proportion\n from {{ model }}\n {{groupby_gb_cols}}\n),\nvalidation_errors as (\n select\n {{select_gb_cols}}\n not_null_proportion\n from validation\n where not_null_proportion < {{ at_least }} or not_null_proportion > {{ at_most }}\n)\nselect\n *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1639638, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"name": "test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.test_sequential_values", "macro_sql": "{% test sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n {{ return(adapter.dispatch('test_sequential_values', 'dbt_utils')(model, column_name, interval, datepart, group_by_columns)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.164779, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"name": "default__test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.default__test_sequential_values", "macro_sql": "{% macro default__test_sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n{% set previous_column_name = \"previous_\" ~ dbt_utils.slugify(column_name) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(',') + ', ' %}\n {% set partition_gb_cols = 'partition by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith windowed as (\n\n select\n {{ select_gb_cols }}\n {{ column_name }},\n lag({{ column_name }}) over (\n {{partition_gb_cols}}\n order by {{ column_name }}\n ) as {{ previous_column_name }}\n from {{ model }}\n),\n\nvalidation_errors as (\n select\n *\n from windowed\n {% if datepart %}\n where not(cast({{ column_name }} as {{ dbt.type_timestamp() }})= cast({{ dbt.dateadd(datepart, interval, previous_column_name) }} as {{ dbt.type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.slugify", "macro.dbt.type_timestamp", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1656609, "supported_languages": null}, "macro.dbt_utils.test_equality": {"name": "test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.test_equality", "macro_sql": "{% test equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns, exclude_columns, precision)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.167412, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"name": "default__test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.default__test_equality", "macro_sql": "{% macro default__test_equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n\n{%- if compare_columns and exclude_columns -%}\n {{ exceptions.raise_compiler_error(\"Both a compare and an ignore list were provided to the `equality` macro. Only one is allowed\") }}\n{%- endif -%}\n\n{% set set_diff %}\n count(*) + coalesce(abs(\n sum(case when which_diff = 'a_minus_b' then 1 else 0 end) -\n sum(case when which_diff = 'b_minus_a' then 1 else 0 end)\n ), 0)\n{% endset %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = set_diff) }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n\n\n-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{# Ensure there are no extra columns in the compare_model vs model #}\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- do dbt_utils._is_ephemeral(compare_model, 'test_equality') -%}\n\n {%- set model_columns = adapter.get_columns_in_relation(model) -%}\n {%- set compare_model_columns = adapter.get_columns_in_relation(compare_model) -%}\n\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- set include_model_columns = [] %}\n {%- for column in model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n {%- for column in compare_model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_model_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns_set = set(include_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(include_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- else -%}\n {%- set compare_columns_set = set(model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(compare_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- endif -%}\n\n {% if compare_columns_set != compare_model_columns_set %}\n {{ exceptions.raise_compiler_error(compare_model ~\" has less columns than \" ~ model ~ \", please ensure they have the same columns or use the `compare_columns` or `exclude_columns` arguments to subset them.\") }}\n {% endif %}\n\n\n{% endif %}\n\n{%- if not precision -%}\n {%- if not compare_columns -%}\n {# \n You cannot get the columns in an ephemeral model (due to not existing in the information schema),\n so if the user does not provide an explicit list of columns we must error in the case it is ephemeral\n #}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model)-%}\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- for column in compare_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns = include_columns | map(attribute='quoted') %}\n {%- else -%} {# Compare columns provided #}\n {%- set compare_columns = compare_columns | map(attribute='quoted') %}\n {%- endif -%}\n {%- endif -%}\n\n {% set compare_cols_csv = compare_columns | join(', ') %}\n\n{% else %} {# Precision required #}\n {#-\n If rounding is required, we need to get the types, so it cannot be ephemeral even if they provide column names\n -#}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set columns = adapter.get_columns_in_relation(model) -%}\n\n {% set columns_list = [] %}\n {%- for col in columns -%}\n {%- if (\n (col.name|lower in compare_columns|map('lower') or not compare_columns) and\n (col.name|lower not in exclude_columns|map('lower') or not exclude_columns)\n ) -%}\n {# Databricks double type is not picked up by any number type checks in dbt #}\n {%- if col.is_float() or col.is_numeric() or col.data_type == 'double' -%}\n {# Cast is required due to postgres not having round for a double precision number #}\n {%- do columns_list.append('round(cast(' ~ col.quoted ~ ' as ' ~ dbt.type_numeric() ~ '),' ~ precision ~ ') as ' ~ col.quoted) -%}\n {%- else -%} {# Non-numeric type #}\n {%- do columns_list.append(col.quoted) -%}\n {%- endif -%}\n {% endif %}\n {%- endfor -%}\n\n {% set compare_cols_csv = columns_list | join(', ') %}\n\n{% endif %}\n\nwith a as (\n\n select * from {{ model }}\n\n),\n\nb as (\n\n select * from {{ compare_model }}\n\n),\n\na_minus_b as (\n\n select {{compare_cols_csv}} from a\n {{ dbt.except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ dbt.except() }}\n select {{compare_cols_csv}} from a\n\n),\n\nunioned as (\n\n select 'a_minus_b' as which_diff, a_minus_b.* from a_minus_b\n union all\n select 'b_minus_a' as which_diff, b_minus_a.* from b_minus_a\n\n)\n\nselect * from unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_numeric", "macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.171084, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"name": "test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.test_not_empty_string", "macro_sql": "{% test not_empty_string(model, column_name, trim_whitespace=true) %}\n\n {{ return(adapter.dispatch('test_not_empty_string', 'dbt_utils')(model, column_name, trim_whitespace)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_empty_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.171561, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"name": "default__test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.default__test_not_empty_string", "macro_sql": "{% macro default__test_not_empty_string(model, column_name, trim_whitespace=true) %}\n\n with\n \n all_values as (\n\n select \n\n\n {% if trim_whitespace == true -%}\n\n trim({{ column_name }}) as {{ column_name }}\n\n {%- else -%}\n\n {{ column_name }}\n\n {%- endif %}\n \n from {{ model }}\n\n ),\n\n errors as (\n\n select * from all_values\n where {{ column_name }} = ''\n\n )\n\n select * from errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.17184, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"name": "test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "macro_sql": "{% test mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n {{ return(adapter.dispatch('test_mutually_exclusive_ranges', 'dbt_utils')(model, lower_bound_column, upper_bound_column, partition_by, gaps, zero_length_range_allowed)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_mutually_exclusive_ranges"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1749382, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"name": "default__test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "macro_sql": "{% macro default__test_mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n{% if gaps == 'not_allowed' %}\n {% set allow_gaps_operator='=' %}\n {% set allow_gaps_operator_in_words='equal_to' %}\n{% elif gaps == 'allowed' %}\n {% set allow_gaps_operator='<=' %}\n {% set allow_gaps_operator_in_words='less_than_or_equal_to' %}\n{% elif gaps == 'required' %}\n {% set allow_gaps_operator='<' %}\n {% set allow_gaps_operator_in_words='less_than' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`gaps` argument for mutually_exclusive_ranges test must be one of ['not_allowed', 'allowed', 'required'] Got: '\" ~ gaps ~\"'.'\"\n ) }}\n{% endif %}\n{% if not zero_length_range_allowed %}\n {% set allow_zero_length_operator='<' %}\n {% set allow_zero_length_operator_in_words='less_than' %}\n{% elif zero_length_range_allowed %}\n {% set allow_zero_length_operator='<=' %}\n {% set allow_zero_length_operator_in_words='less_than_or_equal_to' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`zero_length_range_allowed` argument for mutually_exclusive_ranges test must be one of [true, false] Got: '\" ~ zero_length_range_allowed ~\"'.'\"\n ) }}\n{% endif %}\n\n{% set partition_clause=\"partition by \" ~ partition_by if partition_by else '' %}\n\nwith window_functions as (\n\n select\n {% if partition_by %}\n {{ partition_by }} as partition_by_col,\n {% endif %}\n {{ lower_bound_column }} as lower_bound,\n {{ upper_bound_column }} as upper_bound,\n\n lead({{ lower_bound_column }}) over (\n {{ partition_clause }}\n order by {{ lower_bound_column }}, {{ upper_bound_column }}\n ) as next_lower_bound,\n\n row_number() over (\n {{ partition_clause }}\n order by {{ lower_bound_column }} desc, {{ upper_bound_column }} desc\n ) = 1 as is_last_record\n\n from {{ model }}\n\n),\n\ncalc as (\n -- We want to return records where one of our assumptions fails, so we'll use\n -- the `not` function with `and` statements so we can write our assumptions more cleanly\n select\n *,\n\n -- For each record: lower_bound should be < upper_bound.\n -- Coalesce it to return an error on the null case (implicit assumption\n -- these columns are not_null)\n coalesce(\n lower_bound {{ allow_zero_length_operator }} upper_bound,\n false\n ) as lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound,\n\n -- For each record: upper_bound {{ allow_gaps_operator }} the next lower_bound.\n -- Coalesce it to handle null cases for the last record.\n coalesce(\n upper_bound {{ allow_gaps_operator }} next_lower_bound,\n is_last_record,\n false\n ) as upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n\n from window_functions\n\n),\n\nvalidation_errors as (\n\n select\n *\n from calc\n\n where not(\n -- THE FOLLOWING SHOULD BE TRUE --\n lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound\n and upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n )\n)\n\nselect * from validation_errors\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.176322, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"name": "pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.176571, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"name": "default__pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.176725, "supported_languages": null}, "macro.dbt_utils._is_relation": {"name": "_is_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "unique_id": "macro.dbt_utils._is_relation", "macro_sql": "{% macro _is_relation(obj, macro) %}\n {%- if not (obj is mapping and obj.get('metadata', {}).get('type', '').endswith('Relation')) -%}\n {%- do exceptions.raise_compiler_error(\"Macro \" ~ macro ~ \" expected a Relation but received the value: \" ~ obj) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1771278, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"name": "pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1773791, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"name": "default__pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.177562, "supported_languages": null}, "macro.dbt_utils.log_info": {"name": "log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1777909, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"name": "default__log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.177946, "supported_languages": null}, "macro.dbt_utils.slugify": {"name": "slugify", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "unique_id": "macro.dbt_utils.slugify", "macro_sql": "{% macro slugify(string) %}\n\n{#- Lower case the string -#}\n{% set string = string | lower %}\n{#- Replace spaces and dashes with underscores -#}\n{% set string = modules.re.sub('[ -]+', '_', string) %}\n{#- Only take letters, numbers, and underscores -#}\n{% set string = modules.re.sub('[^a-z0-9_]+', '', string) %}\n{#- Prepends \"_\" if string begins with a number -#}\n{% set string = modules.re.sub('^[0-9]', '_' + string[0], string) %}\n\n{{ return(string) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1785212, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"name": "_is_ephemeral", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "unique_id": "macro.dbt_utils._is_ephemeral", "macro_sql": "{% macro _is_ephemeral(obj, macro) %}\n {%- if obj.is_cte -%}\n {% set ephemeral_prefix = api.Relation.add_ephemeral_prefix('') %}\n {% if obj.name.startswith(ephemeral_prefix) %}\n {% set model_name = obj.name[(ephemeral_prefix|length):] %}\n {% else %}\n {% set model_name = obj.name %}\n {%- endif -%}\n {% set error_message %}\nThe `{{ macro }}` macro cannot be used with ephemeral models, as it relies on the information schema.\n\n`{{ model_name }}` is an ephemeral model. Consider making it a view or table instead.\n {% endset %}\n {%- do exceptions.raise_compiler_error(error_message) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1792781, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt_utils')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.179913, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1804512, "supported_languages": null}, "macro.dbt_utils.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt_utils')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1806688, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n{# call as follows:\n\ndate_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n) #}\n\n\nwith rawdata as (\n\n {{dbt_utils.generate_series(\n dbt_utils.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n),\n\nall_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n)\n\nselect * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.generate_series", "macro.dbt_utils.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.181, "supported_languages": null}, "macro.dbt_utils.safe_subtract": {"name": "safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.safe_subtract", "macro_sql": "{%- macro safe_subtract(field_list) -%}\n {{ return(adapter.dispatch('safe_subtract', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_subtract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.181343, "supported_languages": null}, "macro.dbt_utils.default__safe_subtract": {"name": "default__safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.default__safe_subtract", "macro_sql": "\n\n{%- macro default__safe_subtract(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_subtract` macro takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' -\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1819131, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"name": "nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.182199, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"name": "default__nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.default__nullcheck_table", "macro_sql": "{% macro default__nullcheck_table(relation) %}\n\n {%- do dbt_utils._is_relation(relation, 'nullcheck_table') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'nullcheck_table') -%}\n {% set cols = adapter.get_columns_in_relation(relation) %}\n\n select {{ dbt_utils.nullcheck(cols) }}\n from {{relation}}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.182519, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"name": "get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.get_relations_by_pattern", "macro_sql": "{% macro get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_pattern', 'dbt_utils')(schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1831129, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"name": "default__get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "macro_sql": "{% macro default__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.183879, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1846569, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1850471, "supported_languages": null}, "macro.dbt_utils.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.185227, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt_utils.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1857011, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"name": "get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.get_relations_by_prefix", "macro_sql": "{% macro get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_prefix', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1862972, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"name": "default__get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "macro_sql": "{% macro default__get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_prefix_sql(schema, prefix, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.187073, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"name": "get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "macro_sql": "{% macro get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_prefix_sql', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1874402, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"name": "default__get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "macro_sql": "{% macro default__get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(\n schema_pattern = schema,\n table_pattern = prefix ~ '%',\n exclude = exclude,\n database = database\n ) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.187697, "supported_languages": null}, "macro.dbt_utils.star": {"name": "star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix, quote_identifiers)) }}\r\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1887639, "supported_languages": null}, "macro.dbt_utils.default__star": {"name": "default__star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {%- do dbt_utils._is_relation(from, 'star') -%}\r\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\r\n\r\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\r\n {%- if not execute -%}\r\n {% do return('*') %}\r\n {%- endif -%}\r\n\r\n {% set cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\r\n\r\n {%- if cols|length <= 0 -%}\r\n {% if flags.WHICH == 'compile' %}\r\n {% set response %}\r\n*\r\n/* No columns were returned. Maybe the relation doesn't exist yet \r\nor all columns were excluded. This star is only output during \r\ndbt compile, and exists to keep SQLFluff happy. */\r\n {% endset %}\r\n {% do return(response) %}\r\n {% else %}\r\n {% do return(\"/* no columns returned from star() macro */\") %}\r\n {% endif %}\r\n {%- else -%}\r\n {%- for col in cols %}\r\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}\r\n {%- if quote_identifiers -%}\r\n {{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {%- else -%}\r\n {{ col|trim }} {%- if prefix!='' or suffix!='' %} as {{ (prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {% endif %}\r\n {%- if not loop.last %},{{ '\\n ' }}{%- endif -%}\r\n {%- endfor -%}\r\n {% endif %}\r\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.190145, "supported_languages": null}, "macro.dbt_utils.unpivot": {"name": "unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.unpivot", "macro_sql": "{% macro unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value') -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1913228, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"name": "default__unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.default__unpivot", "macro_sql": "{% macro default__unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value') -%}\n\n {% if not relation %}\n {{ exceptions.raise_compiler_error(\"Error: argument `relation` is required for `unpivot` macro.\") }}\n {% endif %}\n\n {%- set exclude = exclude if exclude is not none else [] %}\n {%- set remove = remove if remove is not none else [] %}\n\n {%- set include_cols = [] %}\n\n {%- set table_columns = {} %}\n\n {%- do table_columns.update({relation: []}) %}\n\n {%- do dbt_utils._is_relation(relation, 'unpivot') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'unpivot') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) %}\n\n {%- for col in cols -%}\n {%- if col.column.lower() not in remove|map('lower') and col.column.lower() not in exclude|map('lower') -%}\n {% do include_cols.append(col) %}\n {%- endif %}\n {%- endfor %}\n\n\n {%- for col in include_cols -%}\n select\n {%- for exclude_col in exclude %}\n {{ exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(col.column) }}\n {% else %}\n {{ col.column }}\n {% endif %}\n as {{ cast_to }}) as {{ value_name }}\n\n from {{ relation }}\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n {%- endfor -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_string", "macro.dbt.cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.192818, "supported_languages": null}, "macro.dbt_utils.safe_divide": {"name": "safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.safe_divide", "macro_sql": "{% macro safe_divide(numerator, denominator) -%}\n {{ return(adapter.dispatch('safe_divide', 'dbt_utils')(numerator, denominator)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_divide"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.193095, "supported_languages": null}, "macro.dbt_utils.default__safe_divide": {"name": "default__safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.default__safe_divide", "macro_sql": "{% macro default__safe_divide(numerator, denominator) %}\n ( {{ numerator }} ) / nullif( ( {{ denominator }} ), 0)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1932218, "supported_languages": null}, "macro.dbt_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations', 'dbt_utils')(relations, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.195925, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"name": "default__union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.default__union_relations", "macro_sql": "\n\n{%- macro default__union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ relation }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.1990972, "supported_languages": null}, "macro.dbt_utils.group_by": {"name": "group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.199397, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"name": "default__group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.default__group_by", "macro_sql": "\n\n{%- macro default__group_by(n) -%}\n\n group by {% for i in range(1, n + 1) -%}\n {{ i }}{{ ',' if not loop.last }} \n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.199643, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"name": "deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2004979, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"name": "default__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.default__deduplicate", "macro_sql": "\n\n{%- macro default__deduplicate(relation, partition_by, order_by) -%}\n\n with row_numbered as (\n select\n _inner.*,\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) as rn\n from {{ relation }} as _inner\n )\n\n select\n distinct data.*\n from {{ relation }} as data\n {#\n -- Not all DBs will support natural joins but the ones that do include:\n -- Oracle, MySQL, SQLite, Redshift, Teradata, Materialize, Databricks\n -- Apache Spark, SingleStore, Vertica\n -- Those that do not appear to support natural joins include:\n -- SQLServer, Trino, Presto, Rockset, Athena\n #}\n natural join row_numbered\n where row_numbered.rn = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2007082, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"name": "redshift__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.redshift__deduplicate", "macro_sql": "{% macro redshift__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }} as tt\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.200861, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"name": "postgres__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.postgres__deduplicate", "macro_sql": "\n{%- macro postgres__deduplicate(relation, partition_by, order_by) -%}\n\n select\n distinct on ({{ partition_by }}) *\n from {{ relation }}\n order by {{ partition_by }}{{ ',' ~ order_by }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2011, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"name": "snowflake__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.snowflake__deduplicate", "macro_sql": "\n{%- macro snowflake__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2012851, "supported_languages": null}, "macro.dbt_utils.databricks__deduplicate": {"name": "databricks__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.databricks__deduplicate", "macro_sql": "\n{%- macro databricks__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2014542, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"name": "bigquery__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.bigquery__deduplicate", "macro_sql": "\n{%- macro bigquery__deduplicate(relation, partition_by, order_by) -%}\n\n select unique.*\n from (\n select\n array_agg (\n original\n order by {{ order_by }}\n limit 1\n )[offset(0)] unique\n from {{ relation }} original\n group by {{ partition_by }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.201619, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"name": "surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.surrogate_key", "macro_sql": "{%- macro surrogate_key(field_list) -%}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('surrogate_key', 'dbt_utils')(field_list, *varargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.202013, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"name": "default__surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.default__surrogate_key", "macro_sql": "\n\n{%- macro default__surrogate_key(field_list) -%}\n\n{%- set error_message = '\nWarning: `dbt_utils.surrogate_key` has been replaced by \\\n`dbt_utils.generate_surrogate_key`. The new macro treats null values \\\ndifferently to empty strings. To restore the behaviour of the original \\\nmacro, add a global variable in dbt_project.yml called \\\n`surrogate_key_treat_nulls_as_empty_strings` to your \\\ndbt_project.yml file with a value of True. \\\nThe {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2022479, "supported_languages": null}, "macro.dbt_utils.safe_add": {"name": "safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.202624, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"name": "default__safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.default__safe_add", "macro_sql": "\n\n{%- macro default__safe_add(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_add` macro now takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.warn(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' +\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2031949, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"name": "nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.203525, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"name": "default__nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.default__nullcheck", "macro_sql": "{% macro default__nullcheck(cols) %}\n{%- for col in cols %}\n\n {% if col.is_string() -%}\n\n nullif({{col.name}},'') as {{col.name}}\n\n {%- else -%}\n\n {{col.name}}\n\n {%- endif -%}\n\n{%- if not loop.last -%} , {%- endif -%}\n\n{%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2038221, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"name": "get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "macro_sql": "{% macro get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_pattern_sql', 'dbt_utils')\n (schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.206534, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"name": "default__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "macro_sql": "{% macro default__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from {{ database }}.information_schema.tables\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.206947, "supported_languages": null}, "macro.dbt_utils.redshift__get_tables_by_pattern_sql": {"name": "redshift__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.redshift__get_tables_by_pattern_sql", "macro_sql": "{% macro redshift__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% set sql %}\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from \"{{ database }}\".\"information_schema\".\"tables\"\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n union all\n select distinct\n schemaname as {{ adapter.quote('table_schema') }},\n tablename as {{ adapter.quote('table_name') }},\n 'external' as {{ adapter.quote('table_type') }}\n from svv_external_tables\n where redshift_database_name = '{{ database }}'\n and schemaname ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n {% endset %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.207566, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"name": "bigquery__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "macro_sql": "{% macro bigquery__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% if '%' in schema_pattern %}\n {% set schemata=dbt_utils._bigquery__get_matching_schemata(schema_pattern, database) %}\n {% else %}\n {% set schemata=[schema_pattern] %}\n {% endif %}\n\n {% set sql %}\n {% for schema in schemata %}\n select distinct\n table_schema,\n table_name,\n {{ dbt_utils.get_table_types_sql() }}\n\n from {{ adapter.quote(database) }}.{{ schema }}.INFORMATION_SCHEMA.TABLES\n where lower(table_name) like lower ('{{ table_pattern }}')\n and lower(table_name) not like lower ('{{ exclude }}')\n\n {% if not loop.last %} union all {% endif %}\n\n {% endfor %}\n {% endset %}\n\n {{ return(sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._bigquery__get_matching_schemata", "macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.208226, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"name": "_bigquery__get_matching_schemata", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "macro_sql": "{% macro _bigquery__get_matching_schemata(schema_pattern, database) %}\n {% if execute %}\n\n {% set sql %}\n select schema_name from {{ adapter.quote(database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like lower('{{ schema_pattern }}')\n {% endset %}\n\n {% set results=run_query(sql) %}\n\n {% set schemata=results.columns['schema_name'].values() %}\n\n {{ return(schemata) }}\n\n {% else %}\n\n {{ return([]) }}\n\n {% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.208691, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"name": "get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.get_column_values", "macro_sql": "{% macro get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {{ return(adapter.dispatch('get_column_values', 'dbt_utils')(table, column, order_by, max_records, default, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.20969, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"name": "default__get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.default__get_column_values", "macro_sql": "{% macro default__get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {% set default = [] if not default %}\n {{ return(default) }}\n {% endif %}\n\n {%- do dbt_utils._is_ephemeral(table, 'get_column_values') -%}\n\n {# Not all relations are tables. Renaming for internal clarity without breaking functionality for anyone using named arguments #}\n {# TODO: Change the method signature in a future 0.x.0 release #}\n {%- set target_relation = table -%}\n\n {# adapter.load_relation is a convenience wrapper to avoid building a Relation when we already have one #}\n {% set relation_exists = (load_relation(target_relation)) is not none %}\n\n {%- call statement('get_column_values', fetch_result=true) %}\n\n {%- if not relation_exists and default is none -%}\n\n {{ exceptions.raise_compiler_error(\"In get_column_values(): relation \" ~ target_relation ~ \" does not exist and no default value was provided.\") }}\n\n {%- elif not relation_exists and default is not none -%}\n\n {{ log(\"Relation \" ~ target_relation ~ \" does not exist. Returning the default value: \" ~ default) }}\n\n {{ return(default) }}\n\n {%- else -%}\n\n\n select\n {{ column }} as value\n\n from {{ target_relation }}\n\n {% if where is not none %}\n where {{ where }}\n {% endif %}\n\n group by {{ column }}\n order by {{ order_by }}\n\n {% if max_records is not none %}\n limit {{ max_records }}\n {% endif %}\n\n {% endif %}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_column_values') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values) }}\n {%- else -%}\n {{ return(default) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_ephemeral", "macro.dbt.load_relation", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2111502, "supported_languages": null}, "macro.dbt_utils.pivot": {"name": "pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.pivot", "macro_sql": "{% macro pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {{ return(adapter.dispatch('pivot', 'dbt_utils')(column, values, alias, agg, cmp, prefix, suffix, then_value, else_value, quote_identifiers, distinct)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.212265, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"name": "default__pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.default__pivot", "macro_sql": "{% macro default__pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {% for value in values %}\n {{ agg }}(\n {% if distinct %} distinct {% endif %}\n case\n when {{ column }} {{ cmp }} '{{ dbt.escape_single_quotes(value) }}'\n then {{ then_value }}\n else {{ else_value }}\n end\n )\n {% if alias %}\n {% if quote_identifiers %}\n as {{ adapter.quote(prefix ~ value ~ suffix) }}\n {% else %}\n as {{ dbt_utils.slugify(prefix ~ value ~ suffix) }}\n {% endif %}\n {% endif %}\n {% if not loop.last %},{% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.escape_single_quotes", "macro.dbt_utils.slugify"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2130718, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"name": "get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "macro_sql": "{% macro get_filtered_columns_in_relation(from, except=[]) -%}\n {{ return(adapter.dispatch('get_filtered_columns_in_relation', 'dbt_utils')(from, except)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.213519, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"name": "default__get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "macro_sql": "{% macro default__get_filtered_columns_in_relation(from, except=[]) -%}\n {%- do dbt_utils._is_relation(from, 'get_filtered_columns_in_relation') -%}\n {%- do dbt_utils._is_ephemeral(from, 'get_filtered_columns_in_relation') -%}\n\n {# -- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {{ return('') }}\n {% endif %}\n\n {%- set include_cols = [] %}\n {%- set cols = adapter.get_columns_in_relation(from) -%}\n {%- set except = except | map(\"lower\") | list %}\n {%- for col in cols -%}\n {%- if col.column|lower not in except -%}\n {% do include_cols.append(col.column) %}\n {%- endif %}\n {%- endfor %}\n\n {{ return(include_cols) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.214207, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"name": "width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.width_bucket", "macro_sql": "{% macro width_bucket(expr, min_value, max_value, num_buckets) %}\n {{ return(adapter.dispatch('width_bucket', 'dbt_utils') (expr, min_value, max_value, num_buckets)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.214931, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"name": "default__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.default__width_bucket", "macro_sql": "{% macro default__width_bucket(expr, min_value, max_value, num_buckets) -%}\n\n {% set bin_size -%}\n (( {{ max_value }} - {{ min_value }} ) / {{ num_buckets }} )\n {%- endset %}\n (\n -- to break ties when the amount is eaxtly at the bucket egde\n case\n when\n mod(\n {{ dbt.safe_cast(expr, dbt.type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, dbt.type_numeric() ) }}\n ) = 0\n then 1\n else 0\n end\n ) +\n -- Anything over max_value goes the N+1 bucket\n least(\n ceil(\n ({{ expr }} - {{ min_value }})/{{ bin_size }}\n ),\n {{ num_buckets }} + 1\n )\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.safe_cast", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2153568, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"name": "snowflake__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.snowflake__width_bucket", "macro_sql": "{% macro snowflake__width_bucket(expr, min_value, max_value, num_buckets) %}\n width_bucket({{ expr }}, {{ min_value }}, {{ max_value }}, {{ num_buckets }} )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.215534, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"name": "get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.get_query_results_as_dict", "macro_sql": "{% macro get_query_results_as_dict(query) %}\n {{ return(adapter.dispatch('get_query_results_as_dict', 'dbt_utils')(query)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_query_results_as_dict"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.215891, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"name": "default__get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "macro_sql": "{% macro default__get_query_results_as_dict(query) %}\n\n{# This macro returns a dictionary of the form {column_name: (tuple_of_results)} #}\n\n {%- call statement('get_query_results', fetch_result=True,auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {% set sql_results={} %}\n\n {%- if execute -%}\n {% set sql_results_table = load_result('get_query_results').table.columns %}\n {% for column_name, column in sql_results_table.items() %}\n {% do sql_results.update({column_name: column.values()}) %}\n {% endfor %}\n {%- endif -%}\n\n {{ return(sql_results) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.216514, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"name": "generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.216939, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"name": "default__generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.default__generate_surrogate_key", "macro_sql": "\n\n{%- macro default__generate_surrogate_key(field_list) -%}\n\n{%- if var('surrogate_key_treat_nulls_as_empty_strings', False) -%}\n {%- set default_null_value = \"\" -%}\n{%- else -%}\n {%- set default_null_value = '_dbt_utils_surrogate_key_null_' -%}\n{%- endif -%}\n\n{%- set fields = [] -%}\n\n{%- for field in field_list -%}\n\n {%- do fields.append(\n \"coalesce(cast(\" ~ field ~ \" as \" ~ dbt.type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ dbt.hash(dbt.concat(fields)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.hash", "macro.dbt.concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.217494, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"name": "get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.get_table_types_sql", "macro_sql": "{%- macro get_table_types_sql() -%}\n {{ return(adapter.dispatch('get_table_types_sql', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils.postgres__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2179399, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"name": "default__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.default__get_table_types_sql", "macro_sql": "{% macro default__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'EXTERNAL TABLE' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2180638, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"name": "postgres__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "macro_sql": "{% macro postgres__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'FOREIGN' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.218186, "supported_languages": null}, "macro.dbt_utils.databricks__get_table_types_sql": {"name": "databricks__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.databricks__get_table_types_sql", "macro_sql": "{% macro databricks__get_table_types_sql() %}\n case table_type\n when 'MANAGED' then 'table'\n when 'BASE TABLE' then 'table'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.218305, "supported_languages": null}, "macro.dbt_utils.get_single_value": {"name": "get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.get_single_value", "macro_sql": "{% macro get_single_value(query, default=none) %}\n {{ return(adapter.dispatch('get_single_value', 'dbt_utils')(query, default)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_single_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2188191, "supported_languages": null}, "macro.dbt_utils.default__get_single_value": {"name": "default__get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.default__get_single_value", "macro_sql": "{% macro default__get_single_value(query, default) %}\n\n{# This macro returns the (0, 0) record in a query, i.e. the first row of the first column #}\n\n {%- call statement('get_query_result', fetch_result=True, auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {%- if execute -%}\n\n {% set r = load_result('get_query_result').table.columns[0].values() %}\n {% if r | length == 0 %}\n {% do print('Query `' ~ query ~ '` returned no rows. Using the default value: ' ~ default) %}\n {% set sql_result = default %}\n {% else %}\n {% set sql_result = r[0] %}\n {% endif %}\n \n {%- else -%}\n \n {% set sql_result = default %}\n \n {%- endif -%}\n\n {% do return(sql_result) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.219473, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"name": "degrees_to_radians", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.220426, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"name": "haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.haversine_distance", "macro_sql": "{% macro haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n {{ return(adapter.dispatch('haversine_distance', 'dbt_utils')(lat1,lon1,lat2,lon2,unit)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.220669, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"name": "default__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.default__haversine_distance", "macro_sql": "{% macro default__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n\n 2 * 3961 * asin(sqrt(power((sin(radians(({{ lat2 }} - {{ lat1 }}) / 2))), 2) +\n cos(radians({{lat1}})) * cos(radians({{lat2}})) *\n power((sin(radians(({{ lon2 }} - {{ lon1 }}) / 2))), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.221277, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"name": "bigquery__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.bigquery__haversine_distance", "macro_sql": "{% macro bigquery__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{% set radians_lat1 = dbt_utils.degrees_to_radians(lat1) %}\n{% set radians_lat2 = dbt_utils.degrees_to_radians(lat2) %}\n{% set radians_lon1 = dbt_utils.degrees_to_radians(lon1) %}\n{% set radians_lon2 = dbt_utils.degrees_to_radians(lon2) %}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n 2 * 3961 * asin(sqrt(power(sin(({{ radians_lat2 }} - {{ radians_lat1 }}) / 2), 2) +\n cos({{ radians_lat1 }}) * cos({{ radians_lat2 }}) *\n power(sin(({{ radians_lon2 }} - {{ radians_lon1 }}) / 2), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.222188, "supported_languages": null}, "macro.linkedin_source.get_creative_history_columns": {"name": "get_creative_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_creative_history_columns.sql", "original_file_path": "macros/get_creative_history_columns.sql", "unique_id": "macro.linkedin_source.get_creative_history_columns", "macro_sql": "{% macro get_creative_history_columns() %}\n\n{% set columns = [\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"click_uri\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"last_modified_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"intended_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.223249, "supported_languages": null}, "macro.linkedin_source.linkedin_ads_extract_url_parameter": {"name": "linkedin_ads_extract_url_parameter", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_extract_url_parameters.sql", "original_file_path": "macros/linkedin_ads_extract_url_parameters.sql", "unique_id": "macro.linkedin_source.linkedin_ads_extract_url_parameter", "macro_sql": "{% macro linkedin_ads_extract_url_parameter(field, url_parameter) -%}\n\n{{ return(adapter.dispatch('linkedin_ads_extract_url_parameter', 'linkedin_source') (field, url_parameter)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.linkedin_source.default__linkedin_ads_extract_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2236009, "supported_languages": null}, "macro.linkedin_source.default__linkedin_ads_extract_url_parameter": {"name": "default__linkedin_ads_extract_url_parameter", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_extract_url_parameters.sql", "original_file_path": "macros/linkedin_ads_extract_url_parameters.sql", "unique_id": "macro.linkedin_source.default__linkedin_ads_extract_url_parameter", "macro_sql": "{% macro default__linkedin_ads_extract_url_parameter(field, url_parameter) -%}\n\n{{ dbt_utils.get_url_parameter(field, url_parameter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.223743, "supported_languages": null}, "macro.linkedin_source.spark__linkedin_ads_extract_url_parameter": {"name": "spark__linkedin_ads_extract_url_parameter", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_extract_url_parameters.sql", "original_file_path": "macros/linkedin_ads_extract_url_parameters.sql", "unique_id": "macro.linkedin_source.spark__linkedin_ads_extract_url_parameter", "macro_sql": "{% macro spark__linkedin_ads_extract_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"=([^&]+)'\" -%}\nnullif(regexp_extract({{ field }}, {{ formatted_url_parameter }}, 1), '')\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2239308, "supported_languages": null}, "macro.linkedin_source.linkedin_ads_add_pass_through_columns": {"name": "linkedin_ads_add_pass_through_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_add_pass_through_columns.sql", "original_file_path": "macros/linkedin_ads_add_pass_through_columns.sql", "unique_id": "macro.linkedin_source.linkedin_ads_add_pass_through_columns", "macro_sql": "{% macro linkedin_ads_add_pass_through_columns(base_columns, pass_through_fields, except_fields=[]) %}\n\n{% if pass_through_fields %}\n {% for column in pass_through_fields %}\n\n {% if column is mapping %}\n {% set col_name = column.alias|default(column.name)|lower %}\n \n {% if col_name not in except_fields %}\n {% if column.alias %}\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n {% else %}\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n {% endif %}\n {% endif %}\n\n {% else %}\n {% if column|lower not in except_fields %}\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n {% endif %}\n {% endif %}\n\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.22541, "supported_languages": null}, "macro.linkedin_source.linkedin_ads_fill_pass_through_columns": {"name": "linkedin_ads_fill_pass_through_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_fill_pass_through_columns.sql", "original_file_path": "macros/linkedin_ads_fill_pass_through_columns.sql", "unique_id": "macro.linkedin_source.linkedin_ads_fill_pass_through_columns", "macro_sql": "{% macro linkedin_ads_fill_pass_through_columns(pass_through_fields, except=[]) %}\n\n{% if pass_through_fields %}\n {% for field in pass_through_fields %}\n {% if (field.alias if field.alias else field.name) not in except %}\n {% if field.transform_sql %}\n , coalesce(cast({{ field.transform_sql }} as {{ dbt.type_float() }}), 0) as {{ field.alias if field.alias else field.name }}\n {% else %}\n , coalesce(cast({{ field.alias if field.alias else field.name }} as {{ dbt.type_float() }}), 0) as {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2263732, "supported_languages": null}, "macro.linkedin_source.get_campaign_group_history_columns": {"name": "get_campaign_group_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_campaign_group_history_columns.sql", "original_file_path": "macros/get_campaign_group_history_columns.sql", "unique_id": "macro.linkedin_source.get_campaign_group_history_columns", "macro_sql": "{% macro get_campaign_group_history_columns() %}\n\n{% set columns = [\n {\"name\": \"account_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"backfilled\", \"datatype\": \"boolean\"},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"run_schedule_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"run_schedule_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.227456, "supported_languages": null}, "macro.linkedin_source.get_ad_analytics_by_campaign_columns": {"name": "get_ad_analytics_by_campaign_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_ad_analytics_by_campaign_columns.sql", "original_file_path": "macros/get_ad_analytics_by_campaign_columns.sql", "unique_id": "macro.linkedin_source.get_ad_analytics_by_campaign_columns", "macro_sql": "{% macro get_ad_analytics_by_campaign_columns() %}\n\n{% set columns = [\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"clicks\", \"datatype\": dbt.type_int()},\n {\"name\": \"cost_in_local_currency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cost_in_usd\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"day\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impressions\", \"datatype\": dbt.type_int()},\n {\"name\": \"conversion_value_in_local_currency\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('linkedin_ads__conversion_fields')) }}\n\n{# Doing it this way in case users were bringing in conversion metrics via passthrough columns prior to us adding them by default #}\n{{ linkedin_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('linkedin_ads__campaign_passthrough_metrics'), except_fields=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.fivetran_utils.add_pass_through_columns", "macro.linkedin_source.linkedin_ads_add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.228641, "supported_languages": null}, "macro.linkedin_source.get_campaign_history_columns": {"name": "get_campaign_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_campaign_history_columns.sql", "original_file_path": "macros/get_campaign_history_columns.sql", "unique_id": "macro.linkedin_source.get_campaign_history_columns", "macro_sql": "{% macro get_campaign_history_columns() %}\n\n{% set columns = [\n {\"name\": \"account_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"audience_expansion_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"campaign_group_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"cost_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"creative_selection\", \"datatype\": dbt.type_string()},\n {\"name\": \"daily_budget_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"daily_budget_currency_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"format\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"locale_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"locale_language\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"objective_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"offsite_delivery_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"optimization_target_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"run_schedule_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"run_schedule_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_cost_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"unit_cost_currency_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"version_tag\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_timestamp", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.23123, "supported_languages": null}, "macro.linkedin_source.get_ad_analytics_by_creative_columns": {"name": "get_ad_analytics_by_creative_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_ad_analytics_by_creative_columns.sql", "original_file_path": "macros/get_ad_analytics_by_creative_columns.sql", "unique_id": "macro.linkedin_source.get_ad_analytics_by_creative_columns", "macro_sql": "{% macro get_ad_analytics_by_creative_columns() %}\n\n{% set columns = [\n {\"name\": \"clicks\", \"datatype\": dbt.type_int()},\n {\"name\": \"cost_in_local_currency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cost_in_usd\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"creative_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"day\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impressions\", \"datatype\": dbt.type_int()},\n {\"name\": \"conversion_value_in_local_currency\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('linkedin_ads__conversion_fields')) }}\n\n{# Doing it this way in case users were bringing in conversion metrics via passthrough columns prior to us adding them by default #}\n{{ linkedin_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('linkedin_ads__creative_passthrough_metrics'), except_fields=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.fivetran_utils.add_pass_through_columns", "macro.linkedin_source.linkedin_ads_add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.232351, "supported_languages": null}, "macro.linkedin_source.get_account_history_columns": {"name": "get_account_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_account_history_columns.sql", "original_file_path": "macros/get_account_history_columns.sql", "unique_id": "macro.linkedin_source.get_account_history_columns", "macro_sql": "{% macro get_account_history_columns() %}\n\n{% set columns = [\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"version_tag\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2332458, "supported_languages": null}, "macro.spark_utils.get_tables": {"name": "get_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_tables", "macro_sql": "{% macro get_tables(table_regex_pattern='.*') %}\n\n {% set tables = [] %}\n {% for database in spark__list_schemas('not_used') %}\n {% for table in spark__list_relations_without_caching(database[0]) %}\n {% set db_tablename = database[0] ~ \".\" ~ table[1] %}\n {% set is_match = modules.re.match(table_regex_pattern, db_tablename) %}\n {% if is_match %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('type', 'TYPE', 'Type'))|first %}\n {% if table_type[1]|lower != 'view' %}\n {{ tables.append(db_tablename) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endfor %}\n {{ return(tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.23789, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"name": "get_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_delta_tables", "macro_sql": "{% macro get_delta_tables(table_regex_pattern='.*') %}\n\n {% set delta_tables = [] %}\n {% for db_tablename in get_tables(table_regex_pattern) %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('provider', 'PROVIDER', 'Provider'))|first %}\n {% if table_type[1]|lower == 'delta' %}\n {{ delta_tables.append(db_tablename) }}\n {% endif %}\n {% endfor %}\n {{ return(delta_tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.238546, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"name": "get_statistic_columns", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_statistic_columns", "macro_sql": "{% macro get_statistic_columns(table) %}\n\n {% call statement('input_columns', fetch_result=True) %}\n SHOW COLUMNS IN {{ table }}\n {% endcall %}\n {% set input_columns = load_result('input_columns').table %}\n\n {% set output_columns = [] %}\n {% for column in input_columns %}\n {% call statement('column_information', fetch_result=True) %}\n DESCRIBE TABLE {{ table }} `{{ column[0] }}`\n {% endcall %}\n {% if not load_result('column_information').table[1][1].startswith('struct') and not load_result('column_information').table[1][1].startswith('array') %}\n {{ output_columns.append('`' ~ column[0] ~ '`') }}\n {% endif %}\n {% endfor %}\n {{ return(output_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.23938, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"name": "spark_optimize_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_optimize_delta_tables", "macro_sql": "{% macro spark_optimize_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Optimizing \" ~ table) }}\n {% do run_query(\"optimize \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.240062, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"name": "spark_vacuum_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "macro_sql": "{% macro spark_vacuum_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Vacuuming \" ~ table) }}\n {% do run_query(\"vacuum \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.240746, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"name": "spark_analyze_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_analyze_tables", "macro_sql": "{% macro spark_analyze_tables(table_regex_pattern='.*') %}\n\n {% for table in get_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set columns = get_statistic_columns(table) | join(',') %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Analyzing \" ~ table) }}\n {% if columns != '' %}\n {% do run_query(\"analyze table \" ~ table ~ \" compute statistics for columns \" ~ columns) %}\n {% endif %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.spark_utils.get_statistic_columns", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.241567, "supported_languages": null}, "macro.spark_utils.spark__concat": {"name": "spark__concat", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "unique_id": "macro.spark_utils.spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.24174, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"name": "spark__type_numeric", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "unique_id": "macro.spark_utils.spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.241843, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"name": "spark__dateadd", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "unique_id": "macro.spark_utils.spark__dateadd", "macro_sql": "{% macro spark__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {%- set clock_component -%}\n {# make sure the dates + timestamps are real, otherwise raise an error asap #}\n to_unix_timestamp({{ spark_utils.assert_not_null('to_timestamp', from_date_or_timestamp) }})\n - to_unix_timestamp({{ spark_utils.assert_not_null('date', from_date_or_timestamp) }})\n {%- endset -%}\n\n {%- if datepart in ['day', 'week'] -%}\n \n {%- set multiplier = 7 if datepart == 'week' else 1 -%}\n\n to_timestamp(\n to_unix_timestamp(\n date_add(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ['month', 'quarter', 'year'] -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'month' -%} 1\n {%- elif datepart == 'quarter' -%} 3\n {%- elif datepart == 'year' -%} 12\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n to_unix_timestamp(\n add_months(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n {{ spark_utils.assert_not_null('to_unix_timestamp', from_date_or_timestamp) }}\n + cast({{interval}} * {{multiplier}} as int)\n )\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro dateadd not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.244737, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"name": "spark__datediff", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "unique_id": "macro.spark_utils.spark__datediff", "macro_sql": "{% macro spark__datediff(first_date, second_date, datepart) %}\n\n {%- if datepart in ['day', 'week', 'month', 'quarter', 'year'] -%}\n \n {# make sure the dates are real, otherwise raise an error asap #}\n {% set first_date = spark_utils.assert_not_null('date', first_date) %}\n {% set second_date = spark_utils.assert_not_null('date', second_date) %}\n \n {%- endif -%}\n \n {%- if datepart == 'day' -%}\n \n datediff({{second_date}}, {{first_date}})\n \n {%- elif datepart == 'week' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(datediff({{second_date}}, {{first_date}})/7)\n else ceil(datediff({{second_date}}, {{first_date}})/7)\n end\n \n -- did we cross a week boundary (Sunday)?\n + case\n when {{first_date}} < {{second_date}} and dayofweek({{second_date}}) < dayofweek({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofweek({{second_date}}) > dayofweek({{first_date}}) then -1\n else 0 end\n\n {%- elif datepart == 'month' -%}\n\n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}})))\n else ceil(months_between(date({{second_date}}), date({{first_date}})))\n end\n \n -- did we cross a month boundary?\n + case\n when {{first_date}} < {{second_date}} and dayofmonth({{second_date}}) < dayofmonth({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofmonth({{second_date}}) > dayofmonth({{first_date}}) then -1\n else 0 end\n \n {%- elif datepart == 'quarter' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}}))/3)\n else ceil(months_between(date({{second_date}}), date({{first_date}}))/3)\n end\n \n -- did we cross a quarter boundary?\n + case\n when {{first_date}} < {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n < (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then 1\n when {{first_date}} > {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n > (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then -1\n else 0 end\n\n {%- elif datepart == 'year' -%}\n \n year({{second_date}}) - year({{first_date}})\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set divisor -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n case when {{first_date}} < {{second_date}}\n then ceil((\n {# make sure the timestamps are real, otherwise raise an error asap #}\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n else floor((\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n end\n \n {% if datepart == 'millisecond' %}\n + cast(date_format({{second_date}}, 'SSS') as int)\n - cast(date_format({{first_date}}, 'SSS') as int)\n {% endif %}\n \n {% if datepart == 'microsecond' %} \n {% set capture_str = '[0-9]{4}-[0-9]{2}-[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}.([0-9]{6})' %}\n -- Spark doesn't really support microseconds, so this is a massive hack!\n -- It will only work if the timestamp-string is of the format\n -- 'yyyy-MM-dd-HH mm.ss.SSSSSS'\n + cast(regexp_extract({{second_date}}, '{{capture_str}}', 1) as int)\n - cast(regexp_extract({{first_date}}, '{{capture_str}}', 1) as int) \n {% endif %}\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro datediff not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.251358, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"name": "spark__current_timestamp", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.251497, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"name": "spark__current_timestamp_in_utc", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2515671, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"name": "spark__split_part", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "unique_id": "macro.spark_utils.spark__split_part", "macro_sql": "{% macro spark__split_part(string_text, delimiter_text, part_number) %}\n\n {% set delimiter_expr %}\n \n -- escape if starts with a special character\n case when regexp_extract({{ delimiter_text }}, '([^A-Za-z0-9])(.*)', 1) != '_'\n then concat('\\\\', {{ delimiter_text }})\n else {{ delimiter_text }} end\n \n {% endset %}\n\n {% set split_part_expr %}\n \n split(\n {{ string_text }},\n {{ delimiter_expr }}\n )[({{ part_number - 1 }})]\n \n {% endset %}\n \n {{ return(split_part_expr) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2520902, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"name": "spark__get_relations_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "macro_sql": "{% macro spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n show table extended in {{ schema_pattern }} like '{{ table_pattern }}'\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=None,\n schema=row[0],\n identifier=row[1],\n type=('view' if 'Type: VIEW' in row[3] else 'table')\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.253555, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"name": "spark__get_relations_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "macro_sql": "{% macro spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {% set table_pattern = table_pattern ~ '*' %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.253862, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"name": "spark__get_tables_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "macro_sql": "{% macro spark__get_tables_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.254117, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"name": "spark__get_tables_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "macro_sql": "{% macro spark__get_tables_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.254369, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"name": "assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.254664, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"name": "default__assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.default__assert_not_null", "macro_sql": "{% macro default__assert_not_null(function, arg) %}\n\n coalesce({{function}}({{arg}}), nvl2({{function}}({{arg}}), assert_true({{function}}({{arg}}) is not null), null))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.254849, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"name": "spark__convert_timezone", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "unique_id": "macro.spark_utils.spark__convert_timezone", "macro_sql": "{% macro spark__convert_timezone(in_tz, out_tz, in_timestamp) %}\n from_utc_timestamp(to_utc_timestamp({{in_timestamp}}, {{in_tz}}), {{out_tz}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2550368, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"name": "enabled_vars", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "unique_id": "macro.fivetran_utils.enabled_vars", "macro_sql": "{% macro enabled_vars(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, True) == False %}\n {{ return(False) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(True) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.255404, "supported_languages": null}, "macro.fivetran_utils.percentile": {"name": "percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.percentile", "macro_sql": "{% macro percentile(percentile_field, partition_field, percent) -%}\n\n{{ adapter.dispatch('percentile', 'fivetran_utils') (percentile_field, partition_field, percent) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2562509, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"name": "default__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.default__percentile", "macro_sql": "{% macro default__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.256406, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"name": "redshift__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.redshift__percentile", "macro_sql": "{% macro redshift__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.256557, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"name": "bigquery__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.bigquery__percentile", "macro_sql": "{% macro bigquery__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.256704, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"name": "postgres__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.postgres__percentile", "macro_sql": "{% macro postgres__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n /* have to group by partition field */\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.256841, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"name": "spark__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.spark__percentile", "macro_sql": "{% macro spark__percentile(percentile_field, partition_field, percent) %}\n\n percentile( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.256991, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"name": "pivot_json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "unique_id": "macro.fivetran_utils.pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n{%- if property is mapping -%}\nreplace( {{ fivetran_utils.json_extract(string, property.name) }}, '\"', '') as {{ property.alias if property.alias else property.name | replace(' ', '_') | replace('.', '_') | lower }}\n\n{%- else -%}\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- endif -%}\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.25778, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"name": "persist_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.persist_pass_through_columns", "macro_sql": "{% macro persist_pass_through_columns(pass_through_variable, identifier=none, transform='') %}\n\n{% if var(pass_through_variable, none) %}\n {% for field in var(pass_through_variable) %}\n , {{ transform ~ '(' ~ (identifier ~ '.' if identifier else '') ~ (field.alias if field.alias else field.name) ~ ')' }} as {{ field.alias if field.alias else field.name }}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.258376, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"name": "json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2596018, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"name": "default__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.default__json_parse", "macro_sql": "{% macro default__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.259834, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"name": "redshift__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.redshift__json_parse", "macro_sql": "{% macro redshift__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.260066, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"name": "bigquery__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.bigquery__json_parse", "macro_sql": "{% macro bigquery__json_parse(string, string_path) %}\n\n \n json_extract_scalar({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.260289, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"name": "postgres__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.postgres__json_parse", "macro_sql": "{% macro postgres__json_parse(string, string_path) %}\n\n {{string}}::json #>> '{ {%- for s in string_path -%}{{ s }}{%- if not loop.last -%},{%- endif -%}{%- endfor -%} }'\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2605078, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"name": "snowflake__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.snowflake__json_parse", "macro_sql": "{% macro snowflake__json_parse(string, string_path) %}\n\n parse_json( {{string}} ) {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.260751, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"name": "spark__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.spark__json_parse", "macro_sql": "{% macro spark__json_parse(string, string_path) %}\n\n {{string}} : {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2609909, "supported_languages": null}, "macro.fivetran_utils.sqlserver__json_parse": {"name": "sqlserver__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.sqlserver__json_parse", "macro_sql": "{% macro sqlserver__json_parse(string, string_path) %}\n\n json_value({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.261208, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"name": "max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.261512, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"name": "default__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.261605, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"name": "snowflake__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.261703, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"name": "bigquery__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.261804, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"name": "calculated_fields", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "unique_id": "macro.fivetran_utils.calculated_fields", "macro_sql": "{% macro calculated_fields(variable) -%}\n\n{% if var(variable, none) %}\n {% for field in var(variable) %}\n , {{ field.transform_sql }} as {{ field.name }} \n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.262142, "supported_languages": null}, "macro.fivetran_utils.drop_schemas_automation": {"name": "drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.drop_schemas_automation", "macro_sql": "{% macro drop_schemas_automation(drop_target_schema=true) %}\n {{ return(adapter.dispatch('drop_schemas_automation', 'fivetran_utils')(drop_target_schema)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__drop_schemas_automation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2627609, "supported_languages": null}, "macro.fivetran_utils.default__drop_schemas_automation": {"name": "default__drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.default__drop_schemas_automation", "macro_sql": "{% macro default__drop_schemas_automation(drop_target_schema=true) %}\n\n{% set fetch_list_sql %}\n {% if target.type not in ('databricks', 'spark') %}\n select schema_name\n from \n {{ wrap_in_quotes(target.database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like '{{ target.schema | lower }}{%- if not drop_target_schema -%}_{%- endif -%}%'\n {% else %}\n SHOW SCHEMAS LIKE '{{ target.schema }}{%- if not drop_target_schema -%}_{%- endif -%}*'\n {% endif %}\n{% endset %}\n\n{% set results = run_query(fetch_list_sql) %}\n\n{% if execute %}\n {% set results_list = results.columns[0].values() %}\n{% else %}\n {% set results_list = [] %}\n{% endif %}\n\n{% for schema_to_drop in results_list %}\n {% do adapter.drop_schema(api.Relation.create(database=target.database, schema=schema_to_drop)) %}\n {{ print('Schema ' ~ schema_to_drop ~ ' successfully dropped from the ' ~ target.database ~ ' database.\\n')}}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.wrap_in_quotes", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.263752, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"name": "seed_data_helper", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "unique_id": "macro.fivetran_utils.seed_data_helper", "macro_sql": "{% macro seed_data_helper(seed_name, warehouses) %}\n\n{% if target.type in warehouses %}\n {% for w in warehouses %}\n {% if target.type == w %}\n {{ return(ref(seed_name ~ \"_\" ~ w ~ \"\")) }}\n {% endif %}\n {% endfor %}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2643, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"name": "fill_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.fill_pass_through_columns", "macro_sql": "{% macro fill_pass_through_columns(pass_through_variable) %}\n\n{% if var(pass_through_variable) %}\n {% for field in var(pass_through_variable) %}\n {% if field is mapping %}\n {% if field.transform_sql %}\n , {{ field.transform_sql }} as {{ field.alias if field.alias else field.name }}\n {% else %}\n , {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% else %}\n , {{ field }}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2650099, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"name": "string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.string_agg", "macro_sql": "{% macro string_agg(field_to_agg, delimiter) -%}\n\n{{ adapter.dispatch('string_agg', 'fivetran_utils') (field_to_agg, delimiter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.26544, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"name": "default__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.265564, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"name": "snowflake__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.265685, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"name": "redshift__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.265805, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"name": "spark__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.spark__string_agg", "macro_sql": "{% macro spark__string_agg(field_to_agg, delimiter) %}\n -- collect set will remove duplicates\n replace(replace(replace(cast( collect_set({{ field_to_agg }}) as string), '[', ''), ']', ''), ', ', {{ delimiter }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.26593, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"name": "timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.timestamp_diff", "macro_sql": "{% macro timestamp_diff(first_date, second_date, datepart) %}\n {{ adapter.dispatch('timestamp_diff', 'fivetran_utils')(first_date, second_date, datepart) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.268505, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"name": "default__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.default__timestamp_diff", "macro_sql": "{% macro default__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.268655, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"name": "redshift__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "macro_sql": "{% macro redshift__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.268806, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"name": "bigquery__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "macro_sql": "{% macro bigquery__timestamp_diff(first_date, second_date, datepart) %}\n\n timestamp_diff(\n {{second_date}},\n {{first_date}},\n {{datepart}}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.268947, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"name": "postgres__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "macro_sql": "{% macro postgres__timestamp_diff(first_date, second_date, datepart) %}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ dbt.datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2705522, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"name": "try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.271401, "supported_languages": null}, "macro.fivetran_utils.default__try_cast": {"name": "default__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.default__try_cast", "macro_sql": "{% macro default__try_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.271532, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"name": "redshift__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.redshift__try_cast", "macro_sql": "{% macro redshift__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when trim({{field}}) ~ '^(0|[1-9][0-9]*)$' then trim({{field}})\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.271789, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"name": "postgres__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.postgres__try_cast", "macro_sql": "{% macro postgres__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2720551, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"name": "snowflake__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.272176, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"name": "bigquery__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2722912, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"name": "spark__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.272403, "supported_languages": null}, "macro.fivetran_utils.sqlserver__try_cast": {"name": "sqlserver__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.sqlserver__try_cast", "macro_sql": "{% macro sqlserver__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.272514, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"name": "source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.source_relation", "macro_sql": "{% macro source_relation(union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('source_relation', 'fivetran_utils') (union_schema_variable, union_database_variable) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.272959, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"name": "default__source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.default__source_relation", "macro_sql": "{% macro default__source_relation(union_schema_variable, union_database_variable) %}\n\n{% if var(union_schema_variable, none) %}\n, case\n {% for schema in var(union_schema_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%.{{ schema|lower }}.%' then '{{ schema|lower }}'\n {% endfor %}\n end as source_relation\n{% elif var(union_database_variable, none) %}\n, case\n {% for database in var(union_database_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%{{ database|lower }}.%' then '{{ database|lower }}'\n {% endfor %}\n end as source_relation\n{% else %}\n, cast('' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.273479, "supported_languages": null}, "macro.fivetran_utils.first_value": {"name": "first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.first_value", "macro_sql": "{% macro first_value(first_value_field, partition_field, order_by_field, order=\"asc\") -%}\n\n{{ adapter.dispatch('first_value', 'fivetran_utils') (first_value_field, partition_field, order_by_field, order) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.273942, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"name": "default__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.default__first_value", "macro_sql": "{% macro default__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.274128, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"name": "redshift__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.redshift__first_value", "macro_sql": "{% macro redshift__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} , {{ partition_field }} rows unbounded preceding )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.274338, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"name": "add_dbt_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "unique_id": "macro.fivetran_utils.add_dbt_source_relation", "macro_sql": "{% macro add_dbt_source_relation() %}\n\n{% if var('union_schemas', none) or var('union_databases', none) %}\n, _dbt_source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.27457, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"name": "add_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.add_pass_through_columns", "macro_sql": "{% macro add_pass_through_columns(base_columns, pass_through_var) %}\n\n {% if pass_through_var %}\n\n {% for column in pass_through_var %}\n\n {% if column is mapping %}\n\n {% if column.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n \n {% endif %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n\n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.275651, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n {%- set source_column_name = source_column_name if source_column_name is not none else '_dbt_source_relation' -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column in exclude -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column not in include -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ aliases[loop.index0] if aliases else relation }}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.279217, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"name": "union_tables", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_tables", "macro_sql": "{%- macro union_tables(tables, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_table') -%}\n\n {%- do exceptions.warn(\"Warning: the `union_tables` macro is no longer supported and will be deprecated in a future release of dbt-utils. Use the `union_relations` macro instead\") -%}\n\n {{ return(dbt_utils.union_relations(tables, column_override, include, exclude, source_column_name)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.279561, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"name": "snowflake_seed_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "unique_id": "macro.fivetran_utils.snowflake_seed_data", "macro_sql": "{% macro snowflake_seed_data(seed_name) %}\n\n{% if target.type == 'snowflake' %}\n{{ return(ref(seed_name ~ '_snowflake')) }}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.279897, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"name": "fill_staging_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.fill_staging_columns", "macro_sql": "{% macro fill_staging_columns(source_columns, staging_columns) -%}\n\n{%- set source_column_names = source_columns|map(attribute='name')|map('lower')|list -%}\n\n{%- for column in staging_columns %}\n {% if column.name|lower in source_column_names -%}\n {{ fivetran_utils.quote_column(column) }} as \n {%- if 'alias' in column %} {{ column.alias }} {% else %} {{ fivetran_utils.quote_column(column) }} {%- endif -%}\n {%- else -%}\n cast(null as {{ column.datatype }})\n {%- if 'alias' in column %} as {{ column.alias }} {% else %} as {{ fivetran_utils.quote_column(column) }} {% endif -%}\n {%- endif -%}\n {%- if not loop.last -%} , {% endif -%}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.281291, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"name": "quote_column", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark', 'databricks') %}\n `{{ column.name }}`\n {% elif target.type == 'snowflake' %}\n \"{{ column.name | upper }}\"\n {% else %}\n \"{{ column.name }}\"\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.281803, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"name": "json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.282319, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"name": "default__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.282464, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"name": "snowflake__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.snowflake__json_extract", "macro_sql": "{% macro snowflake__json_extract(string, string_path) %}\n\n json_extract_path_text(try_parse_json( {{string}} ), {{ \"'\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.282607, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"name": "redshift__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.redshift__json_extract", "macro_sql": "{% macro redshift__json_extract(string, string_path) %}\n\n case when is_valid_json( {{string}} ) then json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} ) else null end\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.282763, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"name": "bigquery__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.282902, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"name": "postgres__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.283036, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.283787, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n\n {%- set enabled_array = [] -%}\n {% for node in graph.sources.values() %}\n {% if node.identifier == source.identifier %}\n {% if (node.meta['is_enabled'] | default(true)) %}\n {%- do enabled_array.append(1) -%}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% set is_enabled = (enabled_array != []) %}\n\n select\n {% if is_enabled %}\n max({{ loaded_at_field }})\n {% else %} \n {{ current_timestamp() }} {% endif %} as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n\n {% if is_enabled %}\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endif %}\n\n {% endcall %}\n\n {% if dbt_version.split('.') | map('int') | list >= [1, 5, 0] %}\n {{ return(load_result('collect_freshness')) }}\n {% else %}\n {{ return(load_result('collect_freshness').table) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2849479, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"name": "timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.timestamp_add", "macro_sql": "{% macro timestamp_add(datepart, interval, from_timestamp) -%}\n\n{{ adapter.dispatch('timestamp_add', 'fivetran_utils') (datepart, interval, from_timestamp) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2855942, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"name": "default__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.default__timestamp_add", "macro_sql": "{% macro default__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestampadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.285745, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"name": "bigquery__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "macro_sql": "{% macro bigquery__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestamp_add({{ from_timestamp }}, interval {{ interval }} {{ datepart }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.285889, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"name": "redshift__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_add", "macro_sql": "{% macro redshift__timestamp_add(datepart, interval, from_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.286036, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"name": "postgres__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.286178, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"name": "spark__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.286335, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"name": "ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.286562, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"name": "default__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.286655, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"name": "snowflake__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.286746, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"name": "remove_prefix_from_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "macro_sql": "{% macro remove_prefix_from_columns(columns, prefix='', exclude=[]) %}\n\n {%- for col in columns if col.name not in exclude -%}\n {%- if col.name[:prefix|length]|lower == prefix -%}\n {{ col.name }} as {{ col.name[prefix|length:] }}\n {%- else -%}\n {{ col.name }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.287318, "supported_languages": null}, "macro.fivetran_utils.fivetran_date_spine": {"name": "fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.fivetran_date_spine", "macro_sql": "{% macro fivetran_date_spine(datepart, start_date, end_date) -%}\n\n{{ return(adapter.dispatch('fivetran_date_spine', 'fivetran_utils') (datepart, start_date, end_date)) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__fivetran_date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.288468, "supported_languages": null}, "macro.fivetran_utils.default__fivetran_date_spine": {"name": "default__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.default__fivetran_date_spine", "macro_sql": "{% macro default__fivetran_date_spine(datepart, start_date, end_date) %}\n\n {{ dbt_utils.date_spine(datepart, start_date, end_date) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.288645, "supported_languages": null}, "macro.fivetran_utils.sqlserver__fivetran_date_spine": {"name": "sqlserver__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.sqlserver__fivetran_date_spine", "macro_sql": "{% macro sqlserver__fivetran_date_spine(datepart, start_date, end_date) -%}\n\n {% set date_spine_query %}\n with\n\n l0 as (\n\n select c\n from (select 1 union all select 1) as d(c)\n\n ),\n l1 as (\n\n select\n 1 as c\n from l0 as a\n cross join l0 as b\n\n ),\n\n l2 as (\n\n select 1 as c\n from l1 as a\n cross join l1 as b\n ),\n\n l3 as (\n\n select 1 as c\n from l2 as a\n cross join l2 as b\n ),\n\n l4 as (\n\n select 1 as c\n from l3 as a\n cross join l3 as b\n ),\n\n l5 as (\n\n select 1 as c\n from l4 as a\n cross join l4 as b\n ),\n\n nums as (\n\n select row_number() over (order by (select null)) as rownum\n from l5\n ),\n\n rawdata as (\n\n select top ({{dbt.datediff(start_date, end_date, datepart)}}) rownum -1 as n\n from nums\n order by rownum\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n 'n',\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n order by 1\n\n {% endset %}\n\n {% set results = run_query(date_spine_query) %}\n\n {% if execute %}\n\n {% set results_list = results.columns[0].values() %}\n \n {% else %}\n\n {% set results_list = [] %}\n\n {% endif %}\n\n {%- for date_field in results_list %}\n select cast('{{ date_field }}' as date) as date_{{datepart}} {{ 'union all ' if not loop.last else '' }}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.289408, "supported_languages": null}, "macro.fivetran_utils.union_data": {"name": "union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.union_data", "macro_sql": "{%- macro union_data(table_identifier, database_variable, schema_variable, default_database, default_schema, default_variable, union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('union_data', 'fivetran_utils') (\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.292537, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"name": "default__union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.default__union_data", "macro_sql": "{%- macro default__union_data(\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) -%}\n\n{%- if var(union_schema_variable, none) -%}\n\n {%- set relations = [] -%}\n \n {%- if var(union_schema_variable) is string -%}\n {%- set trimmed = var(union_schema_variable)|trim('[')|trim(']') -%}\n {%- set schemas = trimmed.split(',')|map('trim',\" \")|map('trim','\"')|map('trim',\"'\") -%}\n {%- else -%}\n {%- set schemas = var(union_schema_variable) -%}\n {%- endif -%}\n\n {%- for schema in var(union_schema_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else var(database_variable, default_database),\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else schema,\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n \n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n \n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- elif var(union_database_variable, none) -%}\n\n {%- set relations = [] -%}\n\n {%- for database in var(union_database_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else database,\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else var(schema_variable, default_schema),\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n\n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n\n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- else -%}\n {% set exception_schemas = {\"linkedin_company_pages\": \"linkedin_pages\", \"instagram_business_pages\": \"instagram_business\"} %}\n {% set relation = namespace(value=\"\") %}\n {% if default_schema in exception_schemas.keys() %}\n {% for corrected_schema_name in exception_schemas.items() %} \n {% if default_schema in corrected_schema_name %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = corrected_schema_name[1] + \"_\" + table_identifier + \"_identifier\" %}\n {%- set relation.value=adapter.get_relation(\n database=source(corrected_schema_name[1], table_identifier).database,\n schema=source(corrected_schema_name[1], table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n {% endfor %}\n {% else %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifier\" %}\n {# Unfortunately the Twitter Organic identifiers were misspelled. As such, we will need to account for this in the model. This will be adjusted in the Twitter Organic package, but to ensure backwards compatibility, this needs to be included. #}\n {% if var(identifier_var, none) is none %} \n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifer\" %}\n {% endif %}\n {%- set relation.value=adapter.get_relation(\n database=source(default_schema, table_identifier).database,\n schema=source(default_schema, table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n{%- set table_exists=relation.value is not none -%}\n\n{%- if table_exists -%}\n select * \n from {{ relation.value }}\n{%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n{%- endif -%}\n{%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.296871, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"name": "dummy_coalesce_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "unique_id": "macro.fivetran_utils.dummy_coalesce_value", "macro_sql": "{% macro dummy_coalesce_value(column) %}\n\n{% set coalesce_value = {\n 'STRING': \"'DUMMY_STRING'\",\n 'BOOLEAN': 'null',\n 'INT': 999999999,\n 'FLOAT': 999999999.99,\n 'TIMESTAMP': 'cast(\"2099-12-31\" as timestamp)',\n 'DATE': 'cast(\"2099-12-31\" as date)',\n} %}\n\n{% if column.is_float() %}\n{{ return(coalesce_value['FLOAT']) }}\n\n{% elif column.is_numeric() %}\n{{ return(coalesce_value['INT']) }}\n\n{% elif column.is_string() %}\n{{ return(coalesce_value['STRING']) }}\n\n{% elif column.data_type|lower == 'boolean' %}\n{{ return(coalesce_value['BOOLEAN']) }}\n\n{% elif 'timestamp' in column.data_type|lower %}\n{{ return(coalesce_value['TIMESTAMP']) }}\n\n{% elif 'date' in column.data_type|lower %}\n{{ return(coalesce_value['DATE']) }}\n\n{% elif 'int' in column.data_type|lower %}\n{{ return(coalesce_value['INT']) }}\n\n{% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.298239, "supported_languages": null}, "macro.fivetran_utils.extract_url_parameter": {"name": "extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.extract_url_parameter", "macro_sql": "{% macro extract_url_parameter(field, url_parameter) -%}\n\n{{ adapter.dispatch('extract_url_parameter', 'fivetran_utils') (field, url_parameter) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__extract_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.298573, "supported_languages": null}, "macro.fivetran_utils.default__extract_url_parameter": {"name": "default__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.default__extract_url_parameter", "macro_sql": "{% macro default__extract_url_parameter(field, url_parameter) -%}\n\n{{ dbt_utils.get_url_parameter(field, url_parameter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.298717, "supported_languages": null}, "macro.fivetran_utils.spark__extract_url_parameter": {"name": "spark__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.spark__extract_url_parameter", "macro_sql": "{% macro spark__extract_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"=([^&]+)'\" -%}\nnullif(regexp_extract({{ field }}, {{ formatted_url_parameter }}, 1), '')\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.298916, "supported_languages": null}, "macro.fivetran_utils.wrap_in_quotes": {"name": "wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.wrap_in_quotes", "macro_sql": "{%- macro wrap_in_quotes(object_to_quote) -%}\n\n{{ return(adapter.dispatch('wrap_in_quotes', 'fivetran_utils')(object_to_quote)) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.postgres__wrap_in_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.299335, "supported_languages": null}, "macro.fivetran_utils.default__wrap_in_quotes": {"name": "default__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.default__wrap_in_quotes", "macro_sql": "{%- macro default__wrap_in_quotes(object_to_quote) -%}\n{# bigquery, spark, databricks #}\n `{{ object_to_quote }}`\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.299454, "supported_languages": null}, "macro.fivetran_utils.snowflake__wrap_in_quotes": {"name": "snowflake__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.snowflake__wrap_in_quotes", "macro_sql": "{%- macro snowflake__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote | upper }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2995641, "supported_languages": null}, "macro.fivetran_utils.redshift__wrap_in_quotes": {"name": "redshift__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.redshift__wrap_in_quotes", "macro_sql": "{%- macro redshift__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.299658, "supported_languages": null}, "macro.fivetran_utils.postgres__wrap_in_quotes": {"name": "postgres__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.postgres__wrap_in_quotes", "macro_sql": "{%- macro postgres__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.299747, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"name": "array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.2999942, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"name": "default__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.3001, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"name": "redshift__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.300189, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"name": "empty_variable_warning", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "unique_id": "macro.fivetran_utils.empty_variable_warning", "macro_sql": "{% macro empty_variable_warning(variable, downstream_model) %}\n\n{% if not var(variable) %}\n{{ log(\n \"\"\"\n Warning: You have passed an empty list to the \"\"\" ~ variable ~ \"\"\".\n As a result, you won't see the history of any columns in the \"\"\" ~ downstream_model ~ \"\"\" model.\n \"\"\",\n info=True\n) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.300564, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"name": "enabled_vars_one_true", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "unique_id": "macro.fivetran_utils.enabled_vars_one_true", "macro_sql": "{% macro enabled_vars_one_true(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, False) == True %}\n {{ return(True) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(False) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1721333069.3009238, "supported_languages": null}}, "docs": {"doc.dbt.__overview__": {"name": "__overview__", "resource_type": "doc", "package_name": "dbt", "path": "overview.md", "original_file_path": "docs/overview.md", "unique_id": "doc.dbt.__overview__", "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion"}, "doc.linkedin_source.source_relation": {"name": "source_relation", "resource_type": "doc", "package_name": "linkedin_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.linkedin_source.source_relation", "block_contents": "The source of the record if the unioning functionality is being used. If not this field will be empty."}}, "exposures": {}, "metrics": {}, "groups": {}, "selectors": {}, "disabled": {}, "parent_map": {"seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": [], "seed.linkedin_source_integration_tests.linkedin_account_history_data": [], "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": [], "seed.linkedin_source_integration_tests.linkedin_creative_history_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": [], "model.linkedin_source.stg_linkedin_ads__creative_history": ["model.linkedin_source.stg_linkedin_ads__creative_history_tmp"], "model.linkedin_source.stg_linkedin_ads__campaign_history": ["model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"], "model.linkedin_source.stg_linkedin_ads__account_history": ["model.linkedin_source.stg_linkedin_ads__account_history_tmp"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": ["source.linkedin_source.linkedin_ads.ad_analytics_by_creative"], "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": ["source.linkedin_source.linkedin_ads.campaign_history"], "model.linkedin_source.stg_linkedin_ads__account_history_tmp": ["source.linkedin_source.linkedin_ads.account_history"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": ["source.linkedin_source.linkedin_ads.campaign_group_history"], "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": ["source.linkedin_source.linkedin_ads.creative_history"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": ["source.linkedin_source.linkedin_ads.ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474": ["model.linkedin_source.stg_linkedin_ads__creative_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0": ["model.linkedin_source.stg_linkedin_ads__account_history"], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81": ["model.linkedin_source.stg_linkedin_ads__account_history"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c": ["model.linkedin_source.stg_linkedin_ads__account_history"], "source.linkedin_source.linkedin_ads.ad_analytics_by_creative": [], "source.linkedin_source.linkedin_ads.creative_history": [], "source.linkedin_source.linkedin_ads.campaign_history": [], "source.linkedin_source.linkedin_ads.campaign_group_history": [], "source.linkedin_source.linkedin_ads.account_history": [], "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": []}, "child_map": {"seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": [], "seed.linkedin_source_integration_tests.linkedin_account_history_data": [], "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": [], "seed.linkedin_source_integration_tests.linkedin_creative_history_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": [], "model.linkedin_source.stg_linkedin_ads__creative_history": ["test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474"], "model.linkedin_source.stg_linkedin_ads__campaign_history": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea"], "model.linkedin_source.stg_linkedin_ads__account_history": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c", "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0", "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "model.linkedin_source.stg_linkedin_ads__account_history_tmp": ["model.linkedin_source.stg_linkedin_ads__account_history"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": ["model.linkedin_source.stg_linkedin_ads__creative_history"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b": [], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38": [], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a": [], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322": [], "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639": [], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0": [], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c": [], "source.linkedin_source.linkedin_ads.ad_analytics_by_creative": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"], "source.linkedin_source.linkedin_ads.creative_history": ["model.linkedin_source.stg_linkedin_ads__creative_history_tmp"], "source.linkedin_source.linkedin_ads.campaign_history": ["model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"], "source.linkedin_source.linkedin_ads.campaign_group_history": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"], "source.linkedin_source.linkedin_ads.account_history": ["model.linkedin_source.stg_linkedin_ads__account_history_tmp"], "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"]}, "group_map": {}, "saved_queries": {}, "semantic_models": {}} \ No newline at end of file +{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v12.json", "dbt_version": "1.8.6", "generated_at": "2024-12-03T22:23:23.064924Z", "invocation_id": "242f85b6-1924-4c87-8860-40aa076d32ef", "env": {}, "project_name": "linkedin_source_integration_tests", "project_id": "00754b0736d5a00cfd93b63d7957000d", "user_id": "8929baf0-9bc1-477e-9a57-eb8b0db4da62", "send_anonymous_usage_stats": true, "adapter_type": "postgres"}, "nodes": {"seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_group_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_campaign_group_history_data.csv", "original_file_path": "seeds/linkedin_campaign_group_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_campaign_group_history_data"], "alias": "linkedin_campaign_group_history_data", "checksum": {"name": "sha256", "checksum": "48aeff219340dccafbdb2de6c0086e94cca22a741c15ad8ce23f1e207fa15fd2"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}}, "created_at": 1733264564.933504, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "raw_code": "", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_account_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_account_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_account_history_data.csv", "original_file_path": "seeds/linkedin_account_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_account_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_account_history_data"], "alias": "linkedin_account_history_data", "checksum": {"name": "sha256", "checksum": "f57fbb5e5a881a56457ed9b37150ec111e83e2e43deff5cc82891125ef61bc1d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}}, "created_at": 1733264564.9459012, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "raw_code": "", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_campaign_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_campaign_history_data.csv", "original_file_path": "seeds/linkedin_campaign_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_campaign_history_data"], "alias": "linkedin_campaign_history_data", "checksum": {"name": "sha256", "checksum": "a5048ef45ea9355c819caeb1e623f192785c2f20f9e99896c227483b4e50b39b"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp"}}, "created_at": 1733264564.947328, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "raw_code": "", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_creative_history_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_creative_history_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_creative_history_data.csv", "original_file_path": "seeds/linkedin_creative_history_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_creative_history_data", "fqn": ["linkedin_source_integration_tests", "linkedin_creative_history_data"], "alias": "linkedin_creative_history_data", "checksum": {"name": "sha256", "checksum": "f505b76fba655f34214388f03f53ccfb83225b27d502874865d4daef6954fde8"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"created_time": "timestamp", "last_modified_time": "timestamp", "created_at": "timestamp", "last_modified_at": "timestamp", "click_uri": "varchar", "intended_status": "varchar", "status": "varchar"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"column_types": {"created_time": "timestamp", "last_modified_time": "timestamp", "created_at": "timestamp", "last_modified_at": "timestamp", "click_uri": "{{ 'string' if target.type in ('bigquery','spark','databricks') else 'varchar' }}", "intended_status": "{{ 'string' if target.type in ('bigquery','spark','databricks') else 'varchar' }}", "status": "{{ 'string' if target.type in ('bigquery','spark','databricks') else 'varchar' }}"}}, "created_at": 1733264564.948735, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "raw_code": "", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_creative_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_ad_analytics_by_creative_data.csv", "original_file_path": "seeds/linkedin_ad_analytics_by_creative_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data", "fqn": ["linkedin_source_integration_tests", "linkedin_ad_analytics_by_creative_data"], "alias": "linkedin_ad_analytics_by_creative_data", "checksum": {"name": "sha256", "checksum": "b5958b032b3396d36be3b8e4e7664029927e507034d9a7e5f2e7045e8366cc24"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {"day": "timestamp"}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"column_types": {"day": "timestamp"}}, "created_at": 1733264564.95019, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "raw_code": "", "depends_on": {"macros": []}}, "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "linkedin_ad_analytics_by_campaign_data", "resource_type": "seed", "package_name": "linkedin_source_integration_tests", "path": "linkedin_ad_analytics_by_campaign_data.csv", "original_file_path": "seeds/linkedin_ad_analytics_by_campaign_data.csv", "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data", "fqn": ["linkedin_source_integration_tests", "linkedin_ad_analytics_by_campaign_data"], "alias": "linkedin_ad_analytics_by_campaign_data", "checksum": {"name": "sha256", "checksum": "dec68acdcaa2099504ee9e6bd884bce8da395cd79929be58256f562b390b7c3d"}, "config": {"enabled": true, "alias": null, "schema": null, "database": null, "tags": [], "meta": {}, "group": null, "materialized": "seed", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "delimiter": ",", "quote_columns": null}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264564.95152, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "raw_code": "", "depends_on": {"macros": []}}, "model.linkedin_source.stg_linkedin_ads__creative_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__creative_history.sql", "original_file_path": "models/stg_linkedin_ads__creative_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history", "fqn": ["linkedin_source", "stg_linkedin_ads__creative_history"], "alias": "stg_linkedin_ads__creative_history", "checksum": {"name": "sha256", "checksum": "30d7363c0b9ff9f5079187cbe2ba628a765dd48b2f0f47077e7ee1bade4ee2c6"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of a creative.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_id": {"name": "creative_id", "description": "Unique internal ID representing the creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the creative was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the campaign the creative belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Creative creation is complete and creative is available for review and serve.\nPAUSED - Creative creation is complete and creative is current, but should temporarily not be served. This status is not valid upon creation.\nDRAFT - Creative creation is incomplete and may still be edited.\nARCHIVED - Creative creation is complete, but creative should not be served and should be separated from non-archived creatives in any UI.\nCANCELED - Creative is permanently canceled.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "click_uri": {"name": "click_uri", "description": "The URL where the member should be redirected to, on clicking the text ad or spotlight ad.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "click_uri_type": {"name": "click_uri_type", "description": "Will either be `text_ad`, `spotlight`, or `null` to indicate the origin of the click_uri.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "base_url": {"name": "base_url", "description": "The base URL of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "url_host": {"name": "url_host", "description": "The URL host of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "url_path": {"name": "url_path", "description": "The URL path of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_source": {"name": "utm_source", "description": "The utm_source parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_medium": {"name": "utm_medium", "description": "The utm_medium parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_campaign": {"name": "utm_campaign", "description": "The utm_campaign parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_content": {"name": "utm_content", "description": "The utm_content parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "utm_term": {"name": "utm_term", "description": "The utm_term parameter of the ad, extracted from the `click_uri`.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1733264565.285782, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__creative_history_tmp') }}\n\n), macro as (\n\n select \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__creative_history_tmp')),\n staging_columns=get_creative_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select\n source_relation,\n id as creative_id,\n campaign_id,\n coalesce(status, intended_status) as status,\n coalesce(text_ad_landing_page, spotlight_landing_page, click_uri) as click_uri,\n cast(coalesce(last_modified_time, last_modified_at) as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(coalesce(created_time, created_at) as {{ dbt.type_timestamp() }}) as created_at,\n case when text_ad_landing_page is not null then 'text_ad'\n when spotlight_landing_page is not null then 'spotlight'\n else cast(null as {{ dbt.type_string() }})\n end as click_uri_type\n\n from macro\n\n), url_fields as (\n\n select \n *,\n row_number() over (partition by creative_id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_at desc) = 1 as is_latest_version,\n {{ dbt.split_part('click_uri', \"'?'\", 1) }} as base_url,\n {{ dbt_utils.get_url_host('click_uri') }} as url_host,\n '/' || {{ dbt_utils.get_url_path('click_uri') }} as url_path,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_source') }} as utm_source,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_medium') }} as utm_medium,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_campaign') }} as utm_campaign,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_content') }} as utm_content,\n {{ linkedin_source.linkedin_ads_extract_url_parameter('click_uri', 'utm_term') }} as utm_term\n \n from fields\n)\n\nselect *\nfrom url_fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__creative_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__creative_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_creative_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.split_part", "macro.dbt_utils.get_url_host", "macro.dbt_utils.get_url_path", "macro.linkedin_source.linkedin_ads_extract_url_parameter"], "nodes": ["model.linkedin_source.stg_linkedin_ads__creative_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__creative_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history_tmp\"\n\n), macro as (\n\n select \n \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n click_uri\n \n as \n \n click_uri\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n cast(null as timestamp) as \n \n created_at\n \n , \n \n \n id\n \n as \n \n id\n \n, \n cast(null as timestamp) as \n \n last_modified_time\n \n , \n \n \n last_modified_at\n \n as \n \n last_modified_at\n \n, \n \n \n intended_status\n \n as \n \n intended_status\n \n, \n cast(null as TEXT) as \n \n status\n \n , \n \n \n text_ad_landing_page\n \n as \n \n text_ad_landing_page\n \n, \n \n \n spotlight_landing_page\n \n as \n \n spotlight_landing_page\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select\n source_relation,\n id as creative_id,\n campaign_id,\n coalesce(status, intended_status) as status,\n coalesce(text_ad_landing_page, spotlight_landing_page, click_uri) as click_uri,\n cast(coalesce(last_modified_time, last_modified_at) as timestamp) as last_modified_at,\n cast(coalesce(created_time, created_at) as timestamp) as created_at,\n case when text_ad_landing_page is not null then 'text_ad'\n when spotlight_landing_page is not null then 'spotlight'\n else cast(null as TEXT)\n end as click_uri_type\n\n from macro\n\n), url_fields as (\n\n select \n *,\n row_number() over (partition by creative_id order by last_modified_at desc) = 1 as is_latest_version,\n \n\n \n \n\n split_part(\n click_uri,\n '?',\n 1\n )\n\n\n \n\n as base_url,\n \n \n cast(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n \n\n replace(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'android-app://',\n ''\n )\n\n\n,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/',\n 1\n )\n\n\n \n\n,\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_host,\n '/' || \n \n cast(\n\n \n \n\n split_part(\n \n\n right(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n \n\n length(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n )-coalesce(\n nullif(\n\n position(\n '/' in \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ), 0),\n \n\n position(\n '?' in \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ) - 1\n )\n ),\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_path,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_source=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_source,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_medium=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_medium,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_campaign=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_campaign,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_content=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_content,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_term=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_term\n \n from fields\n)\n\nselect *\nfrom url_fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__campaign_history.sql", "original_file_path": "models/stg_linkedin_ads__campaign_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history", "fqn": ["linkedin_source", "stg_linkedin_ads__campaign_history"], "alias": "stg_linkedin_ads__campaign_history", "checksum": {"name": "sha256", "checksum": "52762e6568594efdf86d7a2c9d7835ea0731487902dd9c7746979e47dd1caa13"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of a campaign.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "Unique internal ID representing the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_id": {"name": "campaign_group_id", "description": "The ID of the campaign group the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the campaign was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_name": {"name": "campaign_name", "description": "A label for the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_audience_expansion_enabled": {"name": "is_audience_expansion_enabled", "description": "Boolean (default=false) representing whether Audience Expansion is enabled for the campaign provides query expansion for certain targeting criteria.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_type": {"name": "cost_type", "description": "CPM - Cost per thousand advertising impressions. If type=SPONSORED_INMAILS; cost per send(CPS) is measured as CPM x 1000.\nCPC- Cost per individual click on the associated link.\nCPV- Cost per view for video ads.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_selection": {"name": "creative_selection", "description": "ROUND_ROBIN - Rotate through available creatives to serve them as evenly as possible.\nOPTIMIZED (default) - Bias selection taking into account such as expected performance. Not available for Message and Conversation Ads (type=SPONSORED_INMAILS).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_amount": {"name": "daily_budget_amount", "description": "Maximum amount to spend per day UTC. The amount of money as a real number string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_currency_code": {"name": "daily_budget_currency_code", "description": "ISO currency code. The currency must match that of the parent account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "format": {"name": "format", "description": "The ad format on the campaign level. See https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/campaign-formats?view=li-lms-2022-07", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_country": {"name": "locale_country", "description": "Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_language": {"name": "locale_language", "description": "Locale of the campaign. A lowercase two-letter language code as defined by ISO-639.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "objective_type": {"name": "objective_type", "description": "Campaign Objective type values. Click [here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ad-budget-pricing-type-combinations?view=li-lms-2022-07) for Campaign Objective descriptions. One of: - BRAND_AWARENESS - ENGAGEMENT - JOB_APPLICANTS - LEAD_GENERATION - WEBSITE_CONVERSIONS - WEBSITE_VISITS - VIDEO_VIEWS\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_offsite_delivery_enabled": {"name": "is_offsite_delivery_enabled", "description": "Boolean indicating if this campaign to allowed to be served on the LinkedIn Audience Network to extend the reach of your campaign by delivering ads beyond the LinkedIn feed to members on third-party apps and sites.\t(default will be \"True\" from June 30, 2022)\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "optimization_target_type": {"name": "optimization_target_type", "description": "Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to the documentation here. Default = 'NONE'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start_at": {"name": "run_schedule_start_at", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the inclusive (greater than or equal to) value in which to start the range.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end_at": {"name": "run_schedule_end_at", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the exclusive (strictly less than) value in which to end the range, if provided.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Denotes that the campaign is fully servable.\nPAUSED - Denotes that the campaign meets all requirements to be served, but temporarily should not be.\nARCHIVED - Denotes that the campaign is presently inactive, and should mostly be hidden in the UI until un-archived.\nCOMPLETED - Denotes that the campaign has reached a specified budgetary or chronological limit.\nCANCELED - Denotes that the campaign has been permanently canceled, such as when an advertising account is permanently closed.\nDRAFT - Denotes that the campaign is still being edited and not eligible for serving. Some validation will be postponed until the campaign is activated.\nPENDING_DELETION - Denotes that the campaign has been requested to be deleted that is currently pending.\nREMOVED - Denotes that the campaign was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "TEXT_AD - Text-based ads that show up in the right column or top of the page on LinkedIn.\nSPONSORED_UPDATES - Native ads that promote a company's content updates in the LinkedIn feed.\nSPONSORED_INMAILS - Personalized messages with a call-to-action button delivered to a LinkedIn's member inbox.\nDYNAMIC - Ads that are dynamically personalized.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_amount": {"name": "unit_cost_amount", "description": "This value is used as one of the following: amount to bid (for manual bidding), amount which is the target cost (for target cost bidding) per click, impression, or other event depending on the pricing model, or cost cap (for cost cap bidding). The amount of money as a real number string. The amount should be non-negative if the bidding strategy is manual, target cost, or cost cap bidding. The default is 0 with the currency code set to match that of the associated account.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_currency_code": {"name": "unit_cost_currency_code", "description": "Amount to bid per click, impression, or other event depending on the pricing model. The default is 0 with the currency code set to match that of the associated account. ISO currency code.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1733264565.2893388, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__campaign_history_tmp') }}\n\n), macro as (\n\n select \n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__campaign_history_tmp')),\n staging_columns=get_campaign_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_id,\n name as campaign_name,\n cast(version_tag as numeric) as version_tag,\n campaign_group_id,\n account_id,\n status,\n type,\n cost_type,\n creative_selection,\n daily_budget_amount,\n daily_budget_currency_code,\n unit_cost_amount,\n unit_cost_currency_code,\n format,\n locale_country,\n locale_language,\n objective_type,\n optimization_target_type,\n audience_expansion_enabled as is_audience_expansion_enabled,\n offsite_delivery_enabled as is_offsite_delivery_enabled,\n cast(run_schedule_start as {{ dbt.type_timestamp() }}) as run_schedule_start_at,\n cast(run_schedule_end as {{ dbt.type_timestamp() }}) as run_schedule_end_at,\n cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(created_time as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__campaign_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_campaign_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__campaign_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history_tmp\"\n\n), macro as (\n\n select \n \n \n \n account_id\n \n as \n \n account_id\n \n, \n cast(null as boolean) as \n \n audience_expansion_enabled\n \n , \n \n \n campaign_group_id\n \n as \n \n campaign_group_id\n \n, \n cast(null as TEXT) as \n \n cost_type\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n cast(null as TEXT) as \n \n creative_selection\n \n , \n cast(null as float) as \n \n daily_budget_amount\n \n , \n cast(null as TEXT) as \n \n daily_budget_currency_code\n \n , \n cast(null as TEXT) as \n \n format\n \n , \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n cast(null as TEXT) as \n \n locale_country\n \n , \n cast(null as TEXT) as \n \n locale_language\n \n , \n \n \n name\n \n as \n \n name\n \n, \n cast(null as TEXT) as \n \n objective_type\n \n , \n cast(null as boolean) as \n \n offsite_delivery_enabled\n \n , \n cast(null as TEXT) as \n \n optimization_target_type\n \n , \n cast(null as timestamp) as \n \n run_schedule_end\n \n , \n cast(null as timestamp) as \n \n run_schedule_start\n \n , \n cast(null as TEXT) as \n \n status\n \n , \n cast(null as TEXT) as \n \n type\n \n , \n cast(null as float) as \n \n unit_cost_amount\n \n , \n cast(null as TEXT) as \n \n unit_cost_currency_code\n \n , \n \n \n version_tag\n \n as \n \n version_tag\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_id,\n name as campaign_name,\n cast(version_tag as numeric) as version_tag,\n campaign_group_id,\n account_id,\n status,\n type,\n cost_type,\n creative_selection,\n daily_budget_amount,\n daily_budget_currency_code,\n unit_cost_amount,\n unit_cost_currency_code,\n format,\n locale_country,\n locale_language,\n objective_type,\n optimization_target_type,\n audience_expansion_enabled as is_audience_expansion_enabled,\n offsite_delivery_enabled as is_offsite_delivery_enabled,\n cast(run_schedule_start as timestamp) as run_schedule_start_at,\n cast(run_schedule_end as timestamp) as run_schedule_end_at,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__ad_analytics_by_campaign.sql", "original_file_path": "models/stg_linkedin_ads__ad_analytics_by_campaign.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign", "fqn": ["linkedin_source", "stg_linkedin_ads__ad_analytics_by_campaign"], "alias": "stg_linkedin_ads__ad_analytics_by_campaign", "checksum": {"name": "sha256", "checksum": "1b532a9a4e1b9aeeccd19e0294f9420fff6721de9807f6854aa40d4b8f584a68"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the campaign level.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the related creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "date_day": {"name": "date_day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost": {"name": "cost", "description": "The cost of the ads in the local currency or USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1733264565.283303, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select * \n from {{ ref('stg_linkedin_ads__ad_analytics_by_campaign_tmp') }}\n),\n\nmacro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__ad_analytics_by_campaign_tmp')),\n staging_columns=get_ad_analytics_by_campaign_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n),\n\nfields as (\n \n select \n source_relation,\n {{ dbt.date_trunc('day', 'day') }} as date_day,\n campaign_id,\n clicks,\n impressions,\n {% if var('linkedin_ads__use_local_currency', false) %}\n cost_in_local_currency as cost,\n {% else %}\n cost_in_usd as cost,\n {% endif %}\n\n coalesce(cast(conversion_value_in_local_currency as {{ dbt.type_float() }}), 0) as conversion_value_in_local_currency\n\n {% for conversion in var('linkedin_ads__conversion_fields', []) %}\n , coalesce(cast({{ conversion }} as {{ dbt.type_bigint() }}), 0) as {{ conversion }}\n {% endfor %}\n\n {{ linkedin_ads_fill_pass_through_columns(pass_through_fields=var('linkedin_ads__campaign_passthrough_metrics'), except=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n from macro\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_ad_analytics_by_campaign_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.date_trunc", "macro.dbt.type_float", "macro.dbt.type_bigint", "macro.linkedin_source.linkedin_ads_fill_pass_through_columns"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__ad_analytics_by_campaign.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign_tmp\"\n),\n\nmacro as (\n\n select\n \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clicks\n \n as \n \n clicks\n \n, \n \n \n cost_in_local_currency\n \n as \n \n cost_in_local_currency\n \n, \n \n \n cost_in_usd\n \n as \n \n cost_in_usd\n \n, \n \n \n day\n \n as \n \n day\n \n, \n \n \n impressions\n \n as \n \n impressions\n \n, \n \n \n conversion_value_in_local_currency\n \n as \n \n conversion_value_in_local_currency\n \n, \n \n \n external_website_conversions\n \n as \n \n external_website_conversions\n \n, \n \n \n one_click_leads\n \n as \n \n one_click_leads\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n),\n\nfields as (\n \n select \n source_relation,\n date_trunc('day', day) as date_day,\n campaign_id,\n clicks,\n impressions,\n \n cost_in_usd as cost,\n \n\n coalesce(cast(conversion_value_in_local_currency as float), 0) as conversion_value_in_local_currency\n\n \n , coalesce(cast(external_website_conversions as bigint), 0) as external_website_conversions\n \n , coalesce(cast(one_click_leads as bigint), 0) as one_click_leads\n \n\n \n\n\n\n\n\n from macro\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__campaign_group_history.sql", "original_file_path": "models/stg_linkedin_ads__campaign_group_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history", "fqn": ["linkedin_source", "stg_linkedin_ads__campaign_group_history"], "alias": "stg_linkedin_ads__campaign_group_history", "checksum": {"name": "sha256", "checksum": "1648f6e9422ceab665ee1431a805182beca8cb470d1bb839628796f653f83322"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of a campaign group.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_id": {"name": "campaign_group_id", "description": "Unique internal ID representing the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign group belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the campaign group was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_name": {"name": "campaign_group_name", "description": "A label for the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_backfilled": {"name": "is_backfilled", "description": "Flag that denotes whether the campaign group was created organically or to backfill existing campaigns. This is a read-only field set by the system. Default = false.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start_at": {"name": "run_schedule_start_at", "description": "Represents the inclusive (greater than or equal to) date when to start running the associated campaigns under this campaign group. This field is required.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end_at": {"name": "run_schedule_end_at", "description": "Represents the exclusive (strictly less than) date when to stop running the associated campaigns under this campaign group. If this field is unset, it indicates an open range with no end date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "Status of campaign group. Possible values are: ACTIVE - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). ARCHIVED - Denotes that the campaign group is presently inactive, and should mostly be hidden in the UI until un-archived. CANCELLED - Denotes that the campaign group has been permanently canceled and cannot be reactivated. Not a settable status. DRAFT - Denotes that the campaign group is in a preliminary state and should temporarily not be served. PAUSED - Denotes that the campaign group meets all requirements to be served, but temporarily should not be. PENDING_DELETION - Denotes that the campaign group has been requested to be deleted that is currently pending. REMOVED - Denoted that the campaign group was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1733264565.290184, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__campaign_group_history_tmp') }}\n\n), macro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__campaign_group_history_tmp')),\n staging_columns=get_campaign_group_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_group_id,\n name as campaign_group_name,\n account_id,\n status,\n backfilled as is_backfilled,\n cast(run_schedule_start as {{ dbt.type_timestamp() }}) as run_schedule_start_at,\n cast(run_schedule_end as {{ dbt.type_timestamp() }}) as run_schedule_end_at,\n cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(created_time as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__campaign_group_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_campaign_group_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__campaign_group_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history_tmp\"\n\n), macro as (\n\n select\n \n \n \n account_id\n \n as \n \n account_id\n \n, \n cast(null as boolean) as \n \n backfilled\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n \n \n name\n \n as \n \n name\n \n, \n cast(null as timestamp) as \n \n run_schedule_end\n \n , \n cast(null as timestamp) as \n \n run_schedule_start\n \n , \n cast(null as TEXT) as \n \n status\n \n \n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_group_id,\n name as campaign_group_name,\n account_id,\n status,\n backfilled as is_backfilled,\n cast(run_schedule_start as timestamp) as run_schedule_start_at,\n cast(run_schedule_end as timestamp) as run_schedule_end_at,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__account_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__account_history.sql", "original_file_path": "models/stg_linkedin_ads__account_history.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history", "fqn": ["linkedin_source", "stg_linkedin_ads__account_history"], "alias": "stg_linkedin_ads__account_history", "checksum": {"name": "sha256", "checksum": "2acd5b14f8536cc29cbc2f326e20e451073a9d7098db5d7e654839a3c58b8dba"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record represents a 'version' of an account.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "Unique internal ID representing the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the account was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_name": {"name": "account_name", "description": "A label for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The ISO 4217 currency code of the account, such as 'USD' for United States Dollar (default).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Account is active; this is the default state\nCANCELLED - Account has been permanently cancelled\nDRAFT - Account is in draft status, meaning it's not yet fully set up and it is not serving\nPENDING_DELETION - Denotes that the account has been requested to be deleted that is currently pending\nREMOVED - Denotes that the account was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "BUSINESS - This is the only value allowed when creating accounts through the API.\nENTERPRISE - This value cannot be used to create accounts through the API and is reserved for accounts created by LinkedIn's internal ad operations systems.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "is_latest_version": {"name": "is_latest_version", "description": "Boolean of whether the record is the latest version of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1733264565.291098, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__account_history_tmp') }}\n\n), macro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__account_history_tmp')),\n staging_columns=get_account_history_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as account_id,\n name as account_name,\n currency,\n cast(version_tag as numeric) as version_tag,\n status,\n type,\n cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at,\n cast(created_time as {{ dbt.type_timestamp() }}) as created_at,\n row_number() over (partition by id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__account_history_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_account_history_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.type_timestamp"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__account_history.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history_tmp\"\n\n), macro as (\n\n select\n \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n \n \n name\n \n as \n \n name\n \n, \n cast(null as TEXT) as \n \n status\n \n , \n cast(null as TEXT) as \n \n type\n \n , \n \n \n version_tag\n \n as \n \n version_tag\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as account_id,\n name as account_name,\n currency,\n cast(version_tag as numeric) as version_tag,\n status,\n type,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative", "resource_type": "model", "package_name": "linkedin_source", "path": "stg_linkedin_ads__ad_analytics_by_creative.sql", "original_file_path": "models/stg_linkedin_ads__ad_analytics_by_creative.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative", "fqn": ["linkedin_source", "stg_linkedin_ads__ad_analytics_by_creative"], "alias": "stg_linkedin_ads__ad_analytics_by_creative", "checksum": {"name": "sha256", "checksum": "c8c3dd2d342376a278622b3d904ca93abbf7f3108ef7ad2c3c2a7471a6019e58"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "table", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "Each record in this table represents the daily performance of ads at the creative level.", "columns": {"source_relation": {"name": "source_relation", "description": "The source of the record if the unioning functionality is being used. If not this field will be empty.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_id": {"name": "creative_id", "description": "The ID of the related creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "date_day": {"name": "date_day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost": {"name": "cost", "description": "The cost of the ads in the local currency or USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": "linkedin_source://models/stg_linkedin.yml", "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "table", "enabled": true}, "created_at": 1733264565.2821162, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\nwith base as (\n\n select *\n from {{ ref('stg_linkedin_ads__ad_analytics_by_creative_tmp') }}\n\n), macro as (\n\n select\n {{\n fivetran_utils.fill_staging_columns(\n source_columns=adapter.get_columns_in_relation(ref('stg_linkedin_ads__ad_analytics_by_creative_tmp')),\n staging_columns=get_ad_analytics_by_creative_columns()\n )\n }}\n \n {{ fivetran_utils.source_relation(\n union_schema_variable='linkedin_ads_union_schemas', \n union_database_variable='linkedin_ads_union_databases') \n }}\n\n from base\n\n), fields as (\n\n select\n source_relation,\n {{ dbt.date_trunc('day', 'day') }} as date_day,\n creative_id,\n clicks, \n impressions,\n {% if var('linkedin_ads__use_local_currency', false) %}\n cost_in_local_currency as cost,\n {% else %}\n cost_in_usd as cost,\n {% endif %}\n\n coalesce(cast(conversion_value_in_local_currency as {{ dbt.type_float() }}), 0) as conversion_value_in_local_currency\n\n {% for conversion in var('linkedin_ads__conversion_fields', []) %}\n , coalesce(cast({{ conversion }} as {{ dbt.type_bigint() }}), 0) as {{ conversion }}\n {% endfor %}\n\n {{ linkedin_ads_fill_pass_through_columns(pass_through_fields=var('linkedin_ads__creative_passthrough_metrics'), except=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n from macro\n\n)\n\nselect *\nfrom fields", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "package": null, "version": null}, {"name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.linkedin_source.get_ad_analytics_by_creative_columns", "macro.fivetran_utils.fill_staging_columns", "macro.fivetran_utils.source_relation", "macro.dbt.date_trunc", "macro.dbt.type_float", "macro.dbt.type_bigint", "macro.linkedin_source.linkedin_ads_fill_pass_through_columns"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin_ads__ad_analytics_by_creative.sql", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative_tmp\"\n\n), macro as (\n\n select\n \n \n \n clicks\n \n as \n \n clicks\n \n, \n \n \n cost_in_local_currency\n \n as \n \n cost_in_local_currency\n \n, \n \n \n cost_in_usd\n \n as \n \n cost_in_usd\n \n, \n \n \n creative_id\n \n as \n \n creative_id\n \n, \n \n \n day\n \n as \n \n day\n \n, \n \n \n impressions\n \n as \n \n impressions\n \n, \n \n \n conversion_value_in_local_currency\n \n as \n \n conversion_value_in_local_currency\n \n, \n \n \n external_website_conversions\n \n as \n \n external_website_conversions\n \n, \n \n \n one_click_leads\n \n as \n \n one_click_leads\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select\n source_relation,\n date_trunc('day', day) as date_day,\n creative_id,\n clicks, \n impressions,\n \n cost_in_usd as cost,\n \n\n coalesce(cast(conversion_value_in_local_currency as float), 0) as conversion_value_in_local_currency\n\n \n , coalesce(cast(external_website_conversions as bigint), 0) as external_website_conversions\n \n , coalesce(cast(one_click_leads as bigint), 0) as one_click_leads\n \n\n \n\n\n\n\n\n from macro\n\n)\n\nselect *\nfrom fields", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__ad_analytics_by_creative_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__ad_analytics_by_creative_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__ad_analytics_by_creative_tmp"], "alias": "stg_linkedin_ads__ad_analytics_by_creative_tmp", "checksum": {"name": "sha256", "checksum": "3875350fd6f19fb9585c697c1f6413f7e56e37cf7419dc340b5c94b94d0fe987"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1733264565.157279, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='ad_analytics_by_creative', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='ad_analytics_by_creative',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "ad_analytics_by_creative"], ["linkedin_ads", "ad_analytics_by_creative"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__ad_analytics_by_creative_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__campaign_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__campaign_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__campaign_history_tmp"], "alias": "stg_linkedin_ads__campaign_history_tmp", "checksum": {"name": "sha256", "checksum": "57277904daa40b519f861f012daf16c101dfef12ba3e9d613b718c5cdb8de610"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1733264565.17628, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='campaign_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='campaign_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "campaign_history"], ["linkedin_ads", "campaign_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__campaign_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__account_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__account_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__account_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__account_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__account_history_tmp"], "alias": "stg_linkedin_ads__account_history_tmp", "checksum": {"name": "sha256", "checksum": "caea086945e8fcbcc122f063bc8667a1f509f2b210498598e49fa310ab53c04b"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1733264565.18033, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='account_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='account_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "account_history"], ["linkedin_ads", "account_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__account_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__campaign_group_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__campaign_group_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__campaign_group_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__campaign_group_history_tmp"], "alias": "stg_linkedin_ads__campaign_group_history_tmp", "checksum": {"name": "sha256", "checksum": "ab81fdc6f9397f2481b6b809fc4a571f4c82405a2b1ff9fd526bd00e5c2b9aca"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1733264565.183856, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='campaign_group_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='campaign_group_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "campaign_group_history"], ["linkedin_ads", "campaign_group_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__campaign_group_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__creative_history_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__creative_history_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__creative_history_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__creative_history_tmp"], "alias": "stg_linkedin_ads__creative_history_tmp", "checksum": {"name": "sha256", "checksum": "8834c1345f54ac9a8e39e4a0efcad9912cf619fc02ba4c686764f0cd332a6fe2"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1733264565.187223, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='creative_history', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='creative_history',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "creative_history"], ["linkedin_ads", "creative_history"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.creative_history"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__creative_history_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_linkedin_ads_source", "name": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "resource_type": "model", "package_name": "linkedin_source", "path": "tmp/stg_linkedin_ads__ad_analytics_by_campaign_tmp.sql", "original_file_path": "models/tmp/stg_linkedin_ads__ad_analytics_by_campaign_tmp.sql", "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp", "fqn": ["linkedin_source", "tmp", "stg_linkedin_ads__ad_analytics_by_campaign_tmp"], "alias": "stg_linkedin_ads__ad_analytics_by_campaign_tmp", "checksum": {"name": "sha256", "checksum": "1970c620d47208b109aea8708b078f745b755c3961e4be604524ee6c6af698f5"}, "config": {"enabled": true, "alias": null, "schema": "linkedin_ads_source", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "view", "incremental_strategy": null, "persist_docs": {}, "post-hook": [], "pre-hook": [], "quoting": {}, "column_types": {}, "full_refresh": null, "unique_key": null, "on_schema_change": "ignore", "on_configuration_change": "apply", "grants": {}, "packages": [], "docs": {"show": true, "node_color": null}, "contract": {"enforced": false, "alias_types": true}, "access": "protected"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"schema": "linkedin_ads_source", "materialized": "view", "enabled": true}, "created_at": 1733264565.19218, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign_tmp\"", "raw_code": "{{ config(enabled=var('ad_reporting__linkedin_ads_enabled', True)) }}\n\n{{\n fivetran_utils.union_data(\n table_identifier='ad_analytics_by_campaign', \n database_variable='linkedin_ads_database', \n schema_variable='linkedin_ads_schema', \n default_database=target.database,\n default_schema='linkedin_ads',\n default_variable='ad_analytics_by_campaign',\n union_schema_variable='linkedin_ads_union_schemas',\n union_database_variable='linkedin_ads_union_databases'\n )\n}}", "language": "sql", "refs": [], "sources": [["linkedin_ads", "ad_analytics_by_campaign"], ["linkedin_ads", "ad_analytics_by_campaign"]], "metrics": [], "depends_on": {"macros": ["macro.fivetran_utils.union_data"], "nodes": ["source.linkedin_source.linkedin_ads.ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/tmp/stg_linkedin_ads__ad_analytics_by_campaign_tmp.sql", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "access": "protected", "constraints": [], "version": null, "latest_version": null, "deprecation_date": null}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.3451478, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect creative_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\nwhere creative_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "creative_id", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_creative", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "creative_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_creative')) }}"}, "namespace": null}}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.346509, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "date_day", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_creative", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_creative')) }}"}, "namespace": null}}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id"], "alias": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810"}, "created_at": 1733264565.347529, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_creative", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_27fe99a89d69bef1d8b10f8babd3a810.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, date_day, creative_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\n group by source_relation, date_day, creative_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_creative", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "date_day", "creative_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_creative')) }}"}, "namespace": "dbt_utils"}}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.359475, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "campaign_id", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_campaign", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_campaign')) }}"}, "namespace": null}}, "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day"], "alias": "not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.3603652, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\nwhere date_day is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "date_day", "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_campaign", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "date_day", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_campaign')) }}"}, "namespace": null}}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id"], "alias": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06"}, "created_at": 1733264565.3612359, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__ad_analytics_by_campaign", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_ebd2a9cba40b0235f303b2d953035a06.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, date_day, campaign_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\n group by source_relation, date_day, campaign_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__ad_analytics_by_campaign", "attached_node": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "date_day", "campaign_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__ad_analytics_by_campaign')) }}"}, "namespace": "dbt_utils"}}, "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__creative_history_creative_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__creative_history_creative_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__creative_history_creative_id"], "alias": "not_null_stg_linkedin_ads__creative_history_creative_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.364235, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__creative_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__creative_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__creative_history_creative_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect creative_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history\"\nwhere creative_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "creative_id", "file_key_name": "models.stg_linkedin_ads__creative_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__creative_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "creative_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__creative_history')) }}"}, "namespace": null}}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_history_campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__campaign_history_campaign_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_history_campaign_id"], "alias": "not_null_stg_linkedin_ads__campaign_history_campaign_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.3651829, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__campaign_history_campaign_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\nwhere campaign_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "campaign_id", "file_key_name": "models.stg_linkedin_ads__campaign_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_history')) }}"}, "namespace": null}}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_history_version_tag", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__campaign_history_version_tag.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_history_version_tag"], "alias": "not_null_stg_linkedin_ads__campaign_history_version_tag", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.3662798, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__campaign_history_version_tag.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect version_tag\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\nwhere version_tag is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "version_tag", "file_key_name": "models.stg_linkedin_ads__campaign_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "version_tag", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_history')) }}"}, "namespace": null}}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id"], "alias": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370"}, "created_at": 1733264565.367245, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_037e01e42bcd4895e5b4ed988fe91370.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, version_tag, campaign_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\n group by source_relation, version_tag, campaign_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__campaign_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_history", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "version_tag", "campaign_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_history')) }}"}, "namespace": "dbt_utils"}}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id"], "alias": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a"}, "created_at": 1733264565.369382, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__cam_ff659fc451955e2142e65b7eefd44f9a.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_group_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\nwhere campaign_group_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "campaign_group_id", "file_key_name": "models.stg_linkedin_ads__campaign_group_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_group_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "campaign_group_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_group_history')) }}"}, "namespace": null}}, "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__campaign_group_history_last_modified_at", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__campaign_group_history_last_modified_at"], "alias": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd"}, "created_at": 1733264565.370334, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}{{ config(alias=\"not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__cam_2e7858c2b570943ef2af34e42f5302bd.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_modified_at\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\nwhere last_modified_at is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "last_modified_at", "file_key_name": "models.stg_linkedin_ads__campaign_group_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_group_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "last_modified_at", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_group_history')) }}"}, "namespace": null}}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id"], "alias": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31"}, "created_at": 1733264565.3712032, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__campaign_group_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_c50e86db2d7fc409fa436dcd11fe4e31.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, last_modified_at, campaign_group_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\n group by source_relation, last_modified_at, campaign_group_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__campaign_group_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__campaign_group_history", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "last_modified_at", "campaign_group_id"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__campaign_group_history')) }}"}, "namespace": "dbt_utils"}}, "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__account_history_account_id", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__account_history_account_id.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__account_history_account_id"], "alias": "not_null_stg_linkedin_ads__account_history_account_id", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.373281, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__account_history_account_id.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect account_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\nwhere account_id is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "account_id", "file_key_name": "models.stg_linkedin_ads__account_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__account_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "account_id", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__account_history')) }}"}, "namespace": null}}, "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "not_null_stg_linkedin_ads__account_history_version_tag", "resource_type": "test", "package_name": "linkedin_source", "path": "not_null_stg_linkedin_ads__account_history_version_tag.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81", "fqn": ["linkedin_source", "not_null_stg_linkedin_ads__account_history_version_tag"], "alias": "not_null_stg_linkedin_ads__account_history_version_tag", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": null, "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {}, "created_at": 1733264565.3742342, "relation_name": null, "raw_code": "{{ test_not_null(**_dbt_generic_test_kwargs) }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt.test_not_null", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/not_null_stg_linkedin_ads__account_history_version_tag.sql", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect version_tag\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\nwhere version_tag is null\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": "version_tag", "file_key_name": "models.stg_linkedin_ads__account_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__account_history", "test_metadata": {"name": "not_null", "kwargs": {"column_name": "version_tag", "model": "{{ get_where_subquery(ref('stg_linkedin_ads__account_history')) }}"}, "namespace": null}}, "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c": {"database": "postgres", "schema": "linkedin_source_integration_tests_3_dbt_test__audit", "name": "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag", "resource_type": "test", "package_name": "linkedin_source", "path": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1.sql", "original_file_path": "models/stg_linkedin.yml", "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c", "fqn": ["linkedin_source", "dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag"], "alias": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1", "checksum": {"name": "none", "checksum": ""}, "config": {"enabled": true, "alias": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1", "schema": "dbt_test__audit", "database": null, "tags": [], "meta": {}, "group": null, "materialized": "test", "severity": "ERROR", "store_failures": null, "store_failures_as": null, "where": null, "limit": null, "fail_calc": "count(*)", "warn_if": "!= 0", "error_if": "!= 0"}, "tags": [], "description": "", "columns": {}, "meta": {}, "group": null, "docs": {"show": true, "node_color": null}, "patch_path": null, "build_path": null, "unrendered_config": {"alias": "dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1"}, "created_at": 1733264565.375092, "relation_name": null, "raw_code": "{{ dbt_utils.test_unique_combination_of_columns(**_dbt_generic_test_kwargs) }}{{ config(alias=\"dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1\") }}", "language": "sql", "refs": [{"name": "stg_linkedin_ads__account_history", "package": null, "version": null}], "sources": [], "metrics": [], "depends_on": {"macros": ["macro.dbt_utils.test_unique_combination_of_columns", "macro.dbt.get_where_subquery"], "nodes": ["model.linkedin_source.stg_linkedin_ads__account_history"]}, "compiled_path": "target/compiled/linkedin_source/models/stg_linkedin.yml/dbt_utils_unique_combination_o_4ac77ca02713a84c278cce8733000fc1.sql", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, account_id, version_tag\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\n group by source_relation, account_id, version_tag\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "extra_ctes_injected": true, "extra_ctes": [], "contract": {"enforced": false, "alias_types": true, "checksum": null}, "column_name": null, "file_key_name": "models.stg_linkedin_ads__account_history", "attached_node": "model.linkedin_source.stg_linkedin_ads__account_history", "test_metadata": {"name": "unique_combination_of_columns", "kwargs": {"combination_of_columns": ["source_relation", "account_id", "version_tag"], "model": "{{ get_where_subquery(ref('stg_linkedin_ads__account_history')) }}"}, "namespace": "dbt_utils"}}}, "sources": {"source.linkedin_source.linkedin_ads.ad_analytics_by_creative": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "ad_analytics_by_creative", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_creative", "fqn": ["linkedin_source", "linkedin_ads", "ad_analytics_by_creative"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_ad_analytics_by_creative_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record in this table represents the daily performance of ads at the creative level.", "columns": {"creative_id": {"name": "creative_id", "description": "The ID of the related creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "day": {"name": "day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_local_currency": {"name": "cost_in_local_currency", "description": "The cost of the ads in the local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_usd": {"name": "cost_in_usd", "description": "The cost of the ads in the USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "created_at": 1733264565.430264}, "source.linkedin_source.linkedin_ads.creative_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "creative_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.creative_history", "fqn": ["linkedin_source", "linkedin_ads", "creative_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_creative_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of a creative.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the creative.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated (Linkedin Ads pre-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_at": {"name": "last_modified_at", "description": "The timestamp of when the version was updated (Linkedin Ads post-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the creative was created (Linkedin Ads pre-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_at": {"name": "created_at", "description": "The timestamp of when the creative was created (Linkedin Ads post-January 2023 API Update).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_id": {"name": "campaign_id", "description": "The ID of the campaign the creative belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "click_uri": {"name": "click_uri", "description": "Deprecated url field. Please refer to the text_ad_landing_page and spotlight_landing_page fields for relevant landing page information.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "text_ad_landing_page": {"name": "text_ad_landing_page", "description": "The URL where the member should be redirected to, on clicking the text ad.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "spotlight_landing_page": {"name": "spotlight_landing_page", "description": "The URL where the member should be redirected to, on clicking the spotlight ad.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "intended_status": {"name": "intended_status", "description": "ACTIVE - Creative creation is complete and creative is available for review and serve.\nPAUSED - Creative creation is complete and creative is current, but should temporarily not be served. This status is not valid upon creation.\nDRAFT - Creative creation is incomplete and may still be edited.\nARCHIVED - Creative creation is complete, but creative should not be served and should be separated from non-archived creatives in any UI.\nCANCELED - Creative is permanently canceled.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "created_at": 1733264565.431114}, "source.linkedin_source.linkedin_ads.campaign_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "campaign_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.campaign_history", "fqn": ["linkedin_source", "linkedin_ads", "campaign_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_campaign_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of a campaign.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "campaign_group_id": {"name": "campaign_group_id", "description": "The ID of the campaign group the campaign belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the campaign was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "name": {"name": "name", "description": "A label for the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "audience_expansion_enabled": {"name": "audience_expansion_enabled", "description": "Boolean (default=false) representing whether Audience Expansion is enabled for the campaign provides query expansion for certain targeting criteria.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_type": {"name": "cost_type", "description": "CPM - Cost per thousand advertising impressions. If type=SPONSORED_INMAILS; cost per send(CPS) is measured as CPM x 1000.\nCPC- Cost per individual click on the associated link.\nCPV- Cost per view for video ads.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "creative_selection": {"name": "creative_selection", "description": "ROUND_ROBIN - Rotate through available creatives to serve them as evenly as possible.\nOPTIMIZED (default) - Bias selection taking into account such as expected performance. Not available for Message and Conversation Ads (type=SPONSORED_INMAILS).\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_amount": {"name": "daily_budget_amount", "description": "Maximum amount to spend per day UTC. The amount of money as a real number string.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "daily_budget_currency_code": {"name": "daily_budget_currency_code", "description": "ISO currency code. The currency must match that of the parent account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "format": {"name": "format", "description": "The ad format on the campaign level. See https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/campaign-formats?view=li-lms-2022-07", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_country": {"name": "locale_country", "description": "Locale of the campaign. An uppercase two-letter country code as defined by ISO-3166.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "locale_language": {"name": "locale_language", "description": "Locale of the campaign. A lowercase two-letter language code as defined by ISO-639.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "objective_type": {"name": "objective_type", "description": "Campaign Objective type values. Click [here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ad-budget-pricing-type-combinations?view=li-lms-2022-07) for Campaign Objective descriptions. One of: - BRAND_AWARENESS - ENGAGEMENT - JOB_APPLICANTS - LEAD_GENERATION - WEBSITE_CONVERSIONS - WEBSITE_VISITS - VIDEO_VIEWS\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "offsite_delivery_enabled": {"name": "offsite_delivery_enabled", "description": "Boolean indicating if this campaign to allowed to be served on the LinkedIn Audience Network to extend the reach of your campaign by delivering ads beyond the LinkedIn feed to members on third-party apps and sites.\t(default will be \"True\" from June 30, 2022)\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "optimization_target_type": {"name": "optimization_target_type", "description": "Determines how this campaign is optimized for spending. If this is not set, there is no optimization. Refer to the documentation here. Default = 'NONE'.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start": {"name": "run_schedule_start", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the inclusive (greater than or equal to) value in which to start the range.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end": {"name": "run_schedule_end", "description": "Scheduled date range to run associated creatives. The start date must be non-null. Represents the exclusive (strictly less than) value in which to end the range, if provided.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Denotes that the campaign is fully servable.\nPAUSED - Denotes that the campaign meets all requirements to be served, but temporarily should not be.\nARCHIVED - Denotes that the campaign is presently inactive, and should mostly be hidden in the UI until un-archived.\nCOMPLETED - Denotes that the campaign has reached a specified budgetary or chronological limit.\nCANCELED - Denotes that the campaign has been permanently canceled, such as when an advertising account is permanently closed.\nDRAFT - Denotes that the campaign is still being edited and not eligible for serving. Some validation will be postponed until the campaign is activated.\nPENDING_DELETION - Denotes that the campaign has been requested to be deleted that is currently pending.\nREMOVED - Denotes that the campaign was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "TEXT_AD - Text-based ads that show up in the right column or top of the page on LinkedIn.\nSPONSORED_UPDATES - Native ads that promote a company's content updates in the LinkedIn feed.\nSPONSORED_INMAILS - Personalized messages with a call-to-action button delivered to a LinkedIn's member inbox.\nDYNAMIC - Ads that are dynamically personalized.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_amount": {"name": "unit_cost_amount", "description": "This value is used as one of the following: amount to bid (for manual bidding), amount which is the target cost (for target cost bidding) per click, impression, or other event depending on the pricing model, or cost cap (for cost cap bidding). The amount of money as a real number string. The amount should be non-negative if the bidding strategy is manual, target cost, or cost cap bidding. The default is 0 with the currency code set to match that of the associated account.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "unit_cost_currency_code": {"name": "unit_cost_currency_code", "description": "Amount to bid per click, impression, or other event depending on the pricing model. The default is 0 with the currency code set to match that of the associated account. ISO currency code.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "created_at": 1733264565.431253}, "source.linkedin_source.linkedin_ads.campaign_group_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "campaign_group_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.campaign_group_history", "fqn": ["linkedin_source", "linkedin_ads", "campaign_group_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_campaign_group_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of a campaign group.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "account_id": {"name": "account_id", "description": "The ID of the account the campaign group belongs to.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the campaign group was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "name": {"name": "name", "description": "A label for the campaign group.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "backfilled": {"name": "backfilled", "description": "Flag that denotes whether the campaign group was created organically or to backfill existing campaigns. This is a read-only field set by the system. Default = false", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_start": {"name": "run_schedule_start", "description": "Represents the inclusive (greater than or equal to) date when to start running the associated campaigns under this campaign group. This field is required.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "run_schedule_end": {"name": "run_schedule_end", "description": "Represents the exclusive (strictly less than) date when to stop running the associated campaigns under this campaign group. If this field is unset, it indicates an open range with no end date.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "Status of campaign group. Possible values are: ACTIVE - Denotes that the campaign group is capable of serving ads, subject to run date and budget limitations (as well as any other limitations at the account or campaign level). ARCHIVED - Denotes that the campaign group is presently inactive, and should mostly be hidden in the UI until un-archived. CANCELLED - Denotes that the campaign group has been permanently canceled and cannot be reactivated. Not a settable status. DRAFT - Denotes that the campaign group is in a preliminary state and should temporarily not be served. PAUSED - Denotes that the campaign group meets all requirements to be served, but temporarily should not be. PENDING_DELETION - Denotes that the campaign group has been requested to be deleted that is currently pending. REMOVED - Denoted that the campaign group was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "created_at": 1733264565.431456}, "source.linkedin_source.linkedin_ads.account_history": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "account_history", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.account_history", "fqn": ["linkedin_source", "linkedin_ads", "account_history"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_account_history_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record represents a 'version' of an account.", "columns": {"id": {"name": "id", "description": "Unique internal ID representing the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "last_modified_time": {"name": "last_modified_time", "description": "The timestamp of when the version was updated.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "created_time": {"name": "created_time", "description": "The timestamp of when the account was created.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "name": {"name": "name", "description": "A label for the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "currency": {"name": "currency", "description": "The ISO 4217 currency code of the account, such as 'USD' for United States Dollar (default).", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "version_tag": {"name": "version_tag", "description": "An integer representation of the version of the account.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_campaign_optimization": {"name": "notified_on_campaign_optimization", "description": "Boolean (default=false) indicating if the campaign contact is notified about campaign optimization opportunities", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_creative_approval": {"name": "notified_on_creative_approval", "description": "Boolean (default=false) indicating if the creative contact is notified when a creative has been reviewed and approved", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_creative_rejection": {"name": "notified_on_creative_rejection", "description": "Boolean (default=false) indicating if the creative contact is notified when a creative has been rejected due to content", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "notified_on_end_of_campaign": {"name": "notified_on_end_of_campaign", "description": "Boolean (default=false) indicating if the campaign contact is notified when an associated campaign has been completed", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "status": {"name": "status", "description": "ACTIVE - Account is active; this is the default state\nCANCELLED - Account has been permanently cancelled\nDRAFT - Account is in draft status, meaning it's not yet fully set up and it is not serving\nPENDING_DELETION - Denotes that the account has been requested to be deleted that is currently pending\nREMOVED - Denotes that the account was deleted, but must remain fetchable due to the existence of performance data.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "type": {"name": "type", "description": "BUSINESS - This is the only value allowed when creating accounts through the API.\nENTERPRISE - This value cannot be used to create accounts through the API and is reserved for accounts created by LinkedIn's internal ad operations systems.\n", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "created_at": 1733264565.431605}, "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": {"database": "postgres", "schema": "linkedin_source_integration_tests_3", "name": "ad_analytics_by_campaign", "resource_type": "source", "package_name": "linkedin_source", "path": "models/src_linkedin.yml", "original_file_path": "models/src_linkedin.yml", "unique_id": "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign", "fqn": ["linkedin_source", "linkedin_ads", "ad_analytics_by_campaign"], "source_name": "linkedin_ads", "source_description": "", "loader": "fivetran", "identifier": "linkedin_ad_analytics_by_campaign_data", "quoting": {"database": null, "schema": null, "identifier": null, "column": null}, "loaded_at_field": "_fivetran_synced", "freshness": {"warn_after": {"count": 48, "period": "hour"}, "error_after": {"count": 168, "period": "hour"}, "filter": null}, "external": null, "description": "Each record in this table represents the daily performance of ads at the campaign level.", "columns": {"campaign_id": {"name": "campaign_id", "description": "The ID of the related campaign.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "day": {"name": "day", "description": "The day of the activity.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "clicks": {"name": "clicks", "description": "The count of chargeable clicks.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "impressions": {"name": "impressions", "description": "This is the count of \"impressions\" for Direct Ads and Sponsored Updates and \"sends\" for InMails.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_local_currency": {"name": "cost_in_local_currency", "description": "The cost of the ads in the local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "cost_in_usd": {"name": "cost_in_usd", "description": "The cost of the ads in the USD.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "conversion_value_in_local_currency": {"name": "conversion_value_in_local_currency", "description": "The value generated by your conversions, displayed in your LinkedIn account's local currency.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "external_website_conversions": {"name": "external_website_conversions", "description": "The actions taken on your website that you've defined as valuable to your business after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}, "one_click_leads": {"name": "one_click_leads", "description": "Leads submitted after clicking on LinkedIn ads.", "meta": {}, "data_type": null, "constraints": [], "quote": null, "tags": []}}, "meta": {}, "source_meta": {}, "tags": [], "config": {"enabled": true}, "patch_path": null, "unrendered_config": {"enabled": true}, "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "created_at": 1733264565.431712}}, "macros": {"macro.dbt_postgres.postgres__current_timestamp": {"name": "postgres__current_timestamp", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp", "macro_sql": "{% macro postgres__current_timestamp() -%}\n now()\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.1985931, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_string_as_time": {"name": "postgres__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_string_as_time", "macro_sql": "{% macro postgres__snapshot_string_as_time(timestamp) -%}\n {%- set result = \"'\" ~ timestamp ~ \"'::timestamp without time zone\" -%}\n {{ return(result) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.198817, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_get_time": {"name": "postgres__snapshot_get_time", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_get_time", "macro_sql": "{% macro postgres__snapshot_get_time() -%}\n {{ current_timestamp() }}::timestamp without time zone\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.198921, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_backcompat": {"name": "postgres__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_backcompat", "macro_sql": "{% macro postgres__current_timestamp_backcompat() %}\n current_timestamp::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.1990242, "supported_languages": null}, "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat": {"name": "postgres__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/timestamps.sql", "original_file_path": "macros/timestamps.sql", "unique_id": "macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro postgres__current_timestamp_in_utc_backcompat() %}\n (current_timestamp at time zone 'utc')::{{ type_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.199133, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog_relations": {"name": "postgres__get_catalog_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog_relations", "macro_sql": "{% macro postgres__get_catalog_relations(information_schema, relations) -%}\n {%- call statement('catalog', fetch_result=True) -%}\n\n {#\n If the user has multiple databases set and the first one is wrong, this will fail.\n But we won't fail in the case where there are multiple quoting-difference-only dbs, which is better.\n #}\n {% set database = information_schema.database %}\n {{ adapter.verify_database(database) }}\n\n select\n '{{ database }}' as table_database,\n sch.nspname as table_schema,\n tbl.relname as table_name,\n case tbl.relkind\n when 'v' then 'VIEW'\n when 'm' then 'MATERIALIZED VIEW'\n else 'BASE TABLE'\n end as table_type,\n tbl_desc.description as table_comment,\n col.attname as column_name,\n col.attnum as column_index,\n pg_catalog.format_type(col.atttypid, col.atttypmod) as column_type,\n col_desc.description as column_comment,\n pg_get_userbyid(tbl.relowner) as table_owner\n\n from pg_catalog.pg_namespace sch\n join pg_catalog.pg_class tbl on tbl.relnamespace = sch.oid\n join pg_catalog.pg_attribute col on col.attrelid = tbl.oid\n left outer join pg_catalog.pg_description tbl_desc on (tbl_desc.objoid = tbl.oid and tbl_desc.objsubid = 0)\n left outer join pg_catalog.pg_description col_desc on (col_desc.objoid = tbl.oid and col_desc.objsubid = col.attnum)\n where (\n {%- for relation in relations -%}\n {%- if relation.identifier -%}\n (upper(sch.nspname) = upper('{{ relation.schema }}') and\n upper(tbl.relname) = upper('{{ relation.identifier }}'))\n {%- else-%}\n upper(sch.nspname) = upper('{{ relation.schema }}')\n {%- endif -%}\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n )\n and not pg_is_other_temp_schema(sch.oid) -- not a temporary schema belonging to another session\n and tbl.relpersistence in ('p', 'u') -- [p]ermanent table or [u]nlogged table. Exclude [t]emporary tables\n and tbl.relkind in ('r', 'v', 'f', 'p', 'm') -- o[r]dinary table, [v]iew, [f]oreign table, [p]artitioned table, [m]aterialized view. Other values are [i]ndex, [S]equence, [c]omposite type, [t]OAST table\n and col.attnum > 0 -- negative numbers are used for system columns such as oid\n and not col.attisdropped -- column as not been dropped\n\n order by\n sch.nspname,\n tbl.relname,\n col.attnum\n\n {%- endcall -%}\n\n {{ return(load_result('catalog').table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.201031, "supported_languages": null}, "macro.dbt_postgres.postgres__get_catalog": {"name": "postgres__get_catalog", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/catalog.sql", "original_file_path": "macros/catalog.sql", "unique_id": "macro.dbt_postgres.postgres__get_catalog", "macro_sql": "{% macro postgres__get_catalog(information_schema, schemas) -%}\n {%- set relations = [] -%}\n {%- for schema in schemas -%}\n {%- set dummy = relations.append({'schema': schema}) -%}\n {%- endfor -%}\n {{ return(postgres__get_catalog_relations(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2013912, "supported_languages": null}, "macro.dbt_postgres.postgres__get_relations": {"name": "postgres__get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres__get_relations", "macro_sql": "{% macro postgres__get_relations() -%}\n\n {#\n -- in pg_depend, objid is the dependent, refobjid is the referenced object\n -- > a pg_depend entry indicates that the referenced object cannot be\n -- > dropped without also dropping the dependent object.\n #}\n\n {%- call statement('relations', fetch_result=True) -%}\n with relation as (\n select\n pg_rewrite.ev_class as class,\n pg_rewrite.oid as id\n from pg_rewrite\n ),\n class as (\n select\n oid as id,\n relname as name,\n relnamespace as schema,\n relkind as kind\n from pg_class\n ),\n dependency as (\n select distinct\n pg_depend.objid as id,\n pg_depend.refobjid as ref\n from pg_depend\n ),\n schema as (\n select\n pg_namespace.oid as id,\n pg_namespace.nspname as name\n from pg_namespace\n where nspname != 'information_schema' and nspname not like 'pg\\_%'\n ),\n referenced as (\n select\n relation.id AS id,\n referenced_class.name ,\n referenced_class.schema ,\n referenced_class.kind\n from relation\n join class as referenced_class on relation.class=referenced_class.id\n where referenced_class.kind in ('r', 'v', 'm')\n ),\n relationships as (\n select\n referenced.name as referenced_name,\n referenced.schema as referenced_schema_id,\n dependent_class.name as dependent_name,\n dependent_class.schema as dependent_schema_id,\n referenced.kind as kind\n from referenced\n join dependency on referenced.id=dependency.id\n join class as dependent_class on dependency.ref=dependent_class.id\n where\n (referenced.name != dependent_class.name or\n referenced.schema != dependent_class.schema)\n )\n\n select\n referenced_schema.name as referenced_schema,\n relationships.referenced_name as referenced_name,\n dependent_schema.name as dependent_schema,\n relationships.dependent_name as dependent_name\n from relationships\n join schema as dependent_schema on relationships.dependent_schema_id=dependent_schema.id\n join schema as referenced_schema on relationships.referenced_schema_id=referenced_schema.id\n group by referenced_schema, referenced_name, dependent_schema, dependent_name\n order by referenced_schema, referenced_name, dependent_schema, dependent_name;\n\n {%- endcall -%}\n\n {{ return(load_result('relations').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.202016, "supported_languages": null}, "macro.dbt_postgres.postgres_get_relations": {"name": "postgres_get_relations", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations.sql", "original_file_path": "macros/relations.sql", "unique_id": "macro.dbt_postgres.postgres_get_relations", "macro_sql": "{% macro postgres_get_relations() %}\n {{ return(postgres__get_relations()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.202139, "supported_languages": null}, "macro.dbt_postgres.postgres__create_table_as": {"name": "postgres__create_table_as", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_table_as", "macro_sql": "{% macro postgres__create_table_as(temporary, relation, sql) -%}\n {%- set unlogged = config.get('unlogged', default=false) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary -%}\n temporary\n {%- elif unlogged -%}\n unlogged\n {%- endif %} table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {% endif -%}\n {% if contract_config.enforced and (not temporary) -%}\n {{ get_table_columns_and_constraints() }} ;\n insert into {{ relation }} (\n {{ adapter.dispatch('get_column_names', 'dbt')() }}\n )\n {%- set sql = get_select_subquery(sql) %}\n {% else %}\n as\n {% endif %}\n (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.default__get_column_names", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.210871, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_index_sql": {"name": "postgres__get_create_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_index_sql", "macro_sql": "{% macro postgres__get_create_index_sql(relation, index_dict) -%}\n {%- set index_config = adapter.parse_index(index_dict) -%}\n {%- set comma_separated_columns = \", \".join(index_config.columns) -%}\n {%- set index_name = index_config.render(relation) -%}\n\n create {% if index_config.unique -%}\n unique\n {%- endif %} index if not exists\n \"{{ index_name }}\"\n on {{ relation }} {% if index_config.type -%}\n using {{ index_config.type }}\n {%- endif %}\n ({{ comma_separated_columns }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.211366, "supported_languages": null}, "macro.dbt_postgres.postgres__create_schema": {"name": "postgres__create_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__create_schema", "macro_sql": "{% macro postgres__create_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier().include(database=False) }}\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.211667, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_schema": {"name": "postgres__drop_schema", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__drop_schema", "macro_sql": "{% macro postgres__drop_schema(relation) -%}\n {% if relation.database -%}\n {{ adapter.verify_database(relation.database) }}\n {%- endif -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier().include(database=False) }} cascade\n {%- endcall -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.211939, "supported_languages": null}, "macro.dbt_postgres.postgres__get_columns_in_relation": {"name": "postgres__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_columns_in_relation", "macro_sql": "{% macro postgres__get_columns_in_relation(relation) -%}\n {% call statement('get_columns_in_relation', fetch_result=True) %}\n select\n column_name,\n data_type,\n character_maximum_length,\n numeric_precision,\n numeric_scale\n\n from {{ relation.information_schema('columns') }}\n where table_name = '{{ relation.identifier }}'\n {% if relation.schema %}\n and table_schema = '{{ relation.schema }}'\n {% endif %}\n order by ordinal_position\n\n {% endcall %}\n {% set table = load_result('get_columns_in_relation').table %}\n {{ return(sql_convert_columns_in_relation(table)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.sql_convert_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.212362, "supported_languages": null}, "macro.dbt_postgres.postgres__list_relations_without_caching": {"name": "postgres__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_relations_without_caching", "macro_sql": "{% macro postgres__list_relations_without_caching(schema_relation) %}\n {% call statement('list_relations_without_caching', fetch_result=True) -%}\n select\n '{{ schema_relation.database }}' as database,\n tablename as name,\n schemaname as schema,\n 'table' as type\n from pg_tables\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n viewname as name,\n schemaname as schema,\n 'view' as type\n from pg_views\n where schemaname ilike '{{ schema_relation.schema }}'\n union all\n select\n '{{ schema_relation.database }}' as database,\n matviewname as name,\n schemaname as schema,\n 'materialized_view' as type\n from pg_matviews\n where schemaname ilike '{{ schema_relation.schema }}'\n {% endcall %}\n {{ return(load_result('list_relations_without_caching').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.212745, "supported_languages": null}, "macro.dbt_postgres.postgres__information_schema_name": {"name": "postgres__information_schema_name", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__information_schema_name", "macro_sql": "{% macro postgres__information_schema_name(database) -%}\n {% if database_name -%}\n {{ adapter.verify_database(database_name) }}\n {%- endif -%}\n information_schema\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2129018, "supported_languages": null}, "macro.dbt_postgres.postgres__list_schemas": {"name": "postgres__list_schemas", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__list_schemas", "macro_sql": "{% macro postgres__list_schemas(database) %}\n {% if database -%}\n {{ adapter.verify_database(database) }}\n {%- endif -%}\n {% call statement('list_schemas', fetch_result=True, auto_begin=False) %}\n select distinct nspname from pg_namespace\n {% endcall %}\n {{ return(load_result('list_schemas').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.213196, "supported_languages": null}, "macro.dbt_postgres.postgres__check_schema_exists": {"name": "postgres__check_schema_exists", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__check_schema_exists", "macro_sql": "{% macro postgres__check_schema_exists(information_schema, schema) -%}\n {% if information_schema.database -%}\n {{ adapter.verify_database(information_schema.database) }}\n {%- endif -%}\n {% call statement('check_schema_exists', fetch_result=True, auto_begin=False) %}\n select count(*) from pg_namespace where nspname = '{{ schema }}'\n {% endcall %}\n {{ return(load_result('check_schema_exists').table) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.213525, "supported_languages": null}, "macro.dbt_postgres.postgres__make_relation_with_suffix": {"name": "postgres__make_relation_with_suffix", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_relation_with_suffix", "macro_sql": "{% macro postgres__make_relation_with_suffix(base_relation, suffix, dstring) %}\n {% if dstring %}\n {% set dt = modules.datetime.datetime.now() %}\n {% set dtstring = dt.strftime(\"%H%M%S%f\") %}\n {% set suffix = suffix ~ dtstring %}\n {% endif %}\n {% set suffix_length = suffix|length %}\n {% set relation_max_name_length = base_relation.relation_max_name_length() %}\n {% if suffix_length > relation_max_name_length %}\n {% do exceptions.raise_compiler_error('Relation suffix is too long (' ~ suffix_length ~ ' characters). Maximum length is ' ~ relation_max_name_length ~ ' characters.') %}\n {% endif %}\n {% set identifier = base_relation.identifier[:relation_max_name_length - suffix_length] ~ suffix %}\n\n {{ return(base_relation.incorporate(path={\"identifier\": identifier })) }}\n\n {% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2143931, "supported_languages": null}, "macro.dbt_postgres.postgres__make_intermediate_relation": {"name": "postgres__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_intermediate_relation", "macro_sql": "{% macro postgres__make_intermediate_relation(base_relation, suffix) %}\n {{ return(postgres__make_relation_with_suffix(base_relation, suffix, dstring=False)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.214616, "supported_languages": null}, "macro.dbt_postgres.postgres__make_temp_relation": {"name": "postgres__make_temp_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_temp_relation", "macro_sql": "{% macro postgres__make_temp_relation(base_relation, suffix) %}\n {% set temp_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=True) %}\n {{ return(temp_relation.incorporate(path={\"schema\": none,\n \"database\": none})) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.214967, "supported_languages": null}, "macro.dbt_postgres.postgres__make_backup_relation": {"name": "postgres__make_backup_relation", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__make_backup_relation", "macro_sql": "{% macro postgres__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {% set backup_relation = postgres__make_relation_with_suffix(base_relation, suffix, dstring=False) %}\n {{ return(backup_relation.incorporate(type=backup_relation_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_relation_with_suffix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.215331, "supported_languages": null}, "macro.dbt_postgres.postgres_escape_comment": {"name": "postgres_escape_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres_escape_comment", "macro_sql": "{% macro postgres_escape_comment(comment) -%}\n {% if comment is not string %}\n {% do exceptions.raise_compiler_error('cannot escape a non-string: ' ~ comment) %}\n {% endif %}\n {%- set magic = '$dbt_comment_literal_block$' -%}\n {%- if magic in comment -%}\n {%- do exceptions.raise_compiler_error('The string ' ~ magic ~ ' is not allowed in comments.') -%}\n {%- endif -%}\n {{ magic }}{{ comment }}{{ magic }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.215749, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_relation_comment": {"name": "postgres__alter_relation_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_relation_comment", "macro_sql": "{% macro postgres__alter_relation_comment(relation, comment) %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on {{ relation.type }} {{ relation }} is {{ escaped_comment }};\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.216008, "supported_languages": null}, "macro.dbt_postgres.postgres__alter_column_comment": {"name": "postgres__alter_column_comment", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__alter_column_comment", "macro_sql": "{% macro postgres__alter_column_comment(relation, column_dict) %}\n {% set existing_columns = adapter.get_columns_in_relation(relation) | map(attribute=\"name\") | list %}\n {% for column_name in column_dict if (column_name in existing_columns) %}\n {% set comment = column_dict[column_name]['description'] %}\n {% set escaped_comment = postgres_escape_comment(comment) %}\n comment on column {{ relation }}.{{ adapter.quote(column_name) if column_dict[column_name]['quote'] else column_name }} is {{ escaped_comment }};\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres_escape_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.216544, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_grant_sql": {"name": "postgres__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_grant_sql", "macro_sql": "\n\n{%- macro postgres__get_show_grant_sql(relation) -%}\n select grantee, privilege_type\n from {{ relation.information_schema('role_table_grants') }}\n where grantor = current_role\n and grantee != current_role\n and table_schema = '{{ relation.schema }}'\n and table_name = '{{ relation.identifier }}'\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.216726, "supported_languages": null}, "macro.dbt_postgres.postgres__copy_grants": {"name": "postgres__copy_grants", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__copy_grants", "macro_sql": "{% macro postgres__copy_grants() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2168279, "supported_languages": null}, "macro.dbt_postgres.postgres__get_show_indexes_sql": {"name": "postgres__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_show_indexes_sql", "macro_sql": "{% macro postgres__get_show_indexes_sql(relation) %}\n select\n i.relname as name,\n m.amname as method,\n ix.indisunique as \"unique\",\n array_to_string(array_agg(a.attname), ',') as column_names\n from pg_index ix\n join pg_class i\n on i.oid = ix.indexrelid\n join pg_am m\n on m.oid=i.relam\n join pg_class t\n on t.oid = ix.indrelid\n join pg_namespace n\n on n.oid = t.relnamespace\n join pg_attribute a\n on a.attrelid = t.oid\n and a.attnum = ANY(ix.indkey)\n where t.relname = '{{ relation.identifier }}'\n and n.nspname = '{{ relation.schema }}'\n and t.relkind in ('r', 'm')\n group by 1, 2, 3\n order by 1, 2, 3\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.216994, "supported_languages": null}, "macro.dbt_postgres.postgres__get_drop_index_sql": {"name": "postgres__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/adapters.sql", "original_file_path": "macros/adapters.sql", "unique_id": "macro.dbt_postgres.postgres__get_drop_index_sql", "macro_sql": "\n\n\n{%- macro postgres__get_drop_index_sql(relation, index_name) -%}\n drop index if exists \"{{ relation.schema }}\".\"{{ index_name }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2171159, "supported_languages": null}, "macro.dbt_postgres.postgres__get_incremental_default_sql": {"name": "postgres__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/incremental_strategies.sql", "original_file_path": "macros/materializations/incremental_strategies.sql", "unique_id": "macro.dbt_postgres.postgres__get_incremental_default_sql", "macro_sql": "{% macro postgres__get_incremental_default_sql(arg_dict) %}\n\n {% if arg_dict[\"unique_key\"] %}\n {% do return(get_incremental_delete_insert_sql(arg_dict)) %}\n {% else %}\n {% do return(get_incremental_append_sql(arg_dict)) %}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_delete_insert_sql", "macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.217471, "supported_languages": null}, "macro.dbt_postgres.postgres__snapshot_merge_sql": {"name": "postgres__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/materializations/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshot_merge.sql", "unique_id": "macro.dbt_postgres.postgres__snapshot_merge_sql", "macro_sql": "{% macro postgres__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n update {{ target }}\n set dbt_valid_to = DBT_INTERNAL_SOURCE.dbt_valid_to\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_scd_id::text = {{ target }}.dbt_scd_id::text\n and DBT_INTERNAL_SOURCE.dbt_change_type::text in ('update'::text, 'delete'::text)\n and {{ target }}.dbt_valid_to is null;\n\n insert into {{ target }} ({{ insert_cols_csv }})\n select {% for column in insert_cols -%}\n DBT_INTERNAL_SOURCE.{{ column }} {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n from {{ source }} as DBT_INTERNAL_SOURCE\n where DBT_INTERNAL_SOURCE.dbt_change_type::text = 'insert'::text;\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.218081, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_materialized_view": {"name": "postgres__drop_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_materialized_view", "macro_sql": "{% macro postgres__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.218208, "supported_languages": null}, "macro.dbt_postgres.postgres__describe_materialized_view": {"name": "postgres__describe_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/describe.sql", "original_file_path": "macros/relations/materialized_view/describe.sql", "unique_id": "macro.dbt_postgres.postgres__describe_materialized_view", "macro_sql": "{% macro postgres__describe_materialized_view(relation) %}\n -- for now just get the indexes, we don't need the name or the query yet\n {% set _indexes = run_query(get_show_indexes_sql(relation)) %}\n {% do return({'indexes': _indexes}) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.218464, "supported_languages": null}, "macro.dbt_postgres.postgres__refresh_materialized_view": {"name": "postgres__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt_postgres.postgres__refresh_materialized_view", "macro_sql": "{% macro postgres__refresh_materialized_view(relation) %}\n refresh materialized view {{ relation }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2185888, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_materialized_view_sql": {"name": "postgres__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_materialized_view_sql", "macro_sql": "{% macro postgres__get_rename_materialized_view_sql(relation, new_name) %}\n alter materialized view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2187352, "supported_languages": null}, "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql": {"name": "postgres__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n\n -- apply a full refresh immediately if needed\n {% if configuration_changes.requires_full_refresh %}\n\n {{ get_replace_sql(existing_relation, relation, sql) }}\n\n -- otherwise apply individual changes as needed\n {% else %}\n\n {{ postgres__update_indexes_on_materialized_view(relation, configuration_changes.indexes) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_sql", "macro.dbt_postgres.postgres__update_indexes_on_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2196832, "supported_languages": null}, "macro.dbt_postgres.postgres__update_indexes_on_materialized_view": {"name": "postgres__update_indexes_on_materialized_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__update_indexes_on_materialized_view", "macro_sql": "\n\n\n{%- macro postgres__update_indexes_on_materialized_view(relation, index_changes) -%}\n {{- log(\"Applying UPDATE INDEXES to: \" ~ relation) -}}\n\n {%- for _index_change in index_changes -%}\n {%- set _index = _index_change.context -%}\n\n {%- if _index_change.action == \"drop\" -%}\n\n {{ postgres__get_drop_index_sql(relation, _index.name) }}\n\n {%- elif _index_change.action == \"create\" -%}\n\n {{ postgres__get_create_index_sql(relation, _index.as_node_config) }}\n\n {%- endif -%}\n\t{{ ';' if not loop.last else \"\" }}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql", "macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2203379, "supported_languages": null}, "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes": {"name": "postgres__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt_postgres.postgres__get_materialized_view_configuration_changes", "macro_sql": "{% macro postgres__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {% set _existing_materialized_view = postgres__describe_materialized_view(existing_relation) %}\n {% set _configuration_changes = existing_relation.get_materialized_view_config_change_collection(_existing_materialized_view, new_config.model) %}\n {% do return(_configuration_changes) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__describe_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2207448, "supported_languages": null}, "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql": {"name": "postgres__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt_postgres.postgres__get_create_materialized_view_as_sql", "macro_sql": "{% macro postgres__get_create_materialized_view_as_sql(relation, sql) %}\n create materialized view if not exists {{ relation }} as {{ sql }};\n\n {% for _index_dict in config.get('indexes', []) -%}\n {{- get_create_index_sql(relation, _index_dict) -}}{{ ';' if not loop.last else \"\" }}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2211761, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_table": {"name": "postgres__drop_table", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_table", "macro_sql": "{% macro postgres__drop_table(relation) -%}\n drop table if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.221318, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_table_sql": {"name": "postgres__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_table_sql", "macro_sql": "{% macro postgres__get_replace_table_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace table {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.221921, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_table_sql": {"name": "postgres__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_table_sql", "macro_sql": "{% macro postgres__get_rename_table_sql(relation, new_name) %}\n alter table {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.222081, "supported_languages": null}, "macro.dbt_postgres.postgres__drop_view": {"name": "postgres__drop_view", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt_postgres.postgres__drop_view", "macro_sql": "{% macro postgres__drop_view(relation) -%}\n drop view if exists {{ relation }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.222204, "supported_languages": null}, "macro.dbt_postgres.postgres__get_replace_view_sql": {"name": "postgres__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt_postgres.postgres__get_replace_view_sql", "macro_sql": "{% macro postgres__get_replace_view_sql(relation, sql) -%}\n\n {%- set sql_header = config.get('sql_header', none) -%}\n {{ sql_header if sql_header is not none }}\n\n create or replace view {{ relation }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.222682, "supported_languages": null}, "macro.dbt_postgres.postgres__get_rename_view_sql": {"name": "postgres__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt_postgres.postgres__get_rename_view_sql", "macro_sql": "{% macro postgres__get_rename_view_sql(relation, new_name) %}\n alter view {{ relation }} rename to {{ new_name }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2228422, "supported_languages": null}, "macro.dbt_postgres.postgres__dateadd": {"name": "postgres__dateadd", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt_postgres.postgres__dateadd", "macro_sql": "{% macro postgres__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {{ from_date_or_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.22303, "supported_languages": null}, "macro.dbt_postgres.postgres__listagg": {"name": "postgres__listagg", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt_postgres.postgres__listagg", "macro_sql": "{% macro postgres__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n (array_agg(\n {{ measure }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n ))[1:{{ limit_num }}],\n {{ delimiter_text }}\n )\n {%- else %}\n string_agg(\n {{ measure }},\n {{ delimiter_text }}\n {% if order_by_clause -%}\n {{ order_by_clause }}\n {%- endif %}\n )\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.223558, "supported_languages": null}, "macro.dbt_postgres.postgres__datediff": {"name": "postgres__datediff", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt_postgres.postgres__datediff", "macro_sql": "{% macro postgres__datediff(first_date, second_date, datepart) -%}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.226354, "supported_languages": null}, "macro.dbt_postgres.postgres__any_value": {"name": "postgres__any_value", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt_postgres.postgres__any_value", "macro_sql": "{% macro postgres__any_value(expression) -%}\n\n min({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.226495, "supported_languages": null}, "macro.dbt_postgres.postgres__last_day": {"name": "postgres__last_day", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt_postgres.postgres__last_day", "macro_sql": "{% macro postgres__last_day(date, datepart) -%}\n\n {%- if datepart == 'quarter' -%}\n -- postgres dateadd does not support quarter interval.\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd('month', '3', dbt.date_trunc(datepart, date))\n )}}\n as date)\n {%- else -%}\n {{dbt.default_last_day(date, datepart)}}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc", "macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.226927, "supported_languages": null}, "macro.dbt_postgres.postgres__split_part": {"name": "postgres__split_part", "resource_type": "macro", "package_name": "dbt_postgres", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt_postgres.postgres__split_part", "macro_sql": "{% macro postgres__split_part(string_text, delimiter_text, part_number) %}\n\n {% if part_number >= 0 %}\n {{ dbt.default__split_part(string_text, delimiter_text, part_number) }}\n {% else %}\n {{ dbt._split_part_negative(string_text, delimiter_text, part_number) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__split_part", "macro.dbt._split_part_negative"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.227275, "supported_languages": null}, "macro.dbt.run_hooks": {"name": "run_hooks", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.run_hooks", "macro_sql": "{% macro run_hooks(hooks, inside_transaction=True) %}\n {% for hook in hooks | selectattr('transaction', 'equalto', inside_transaction) %}\n {% if not inside_transaction and loop.first %}\n {% call statement(auto_begin=inside_transaction) %}\n commit;\n {% endcall %}\n {% endif %}\n {% set rendered = render(hook.get('sql')) | trim %}\n {% if (rendered | length) > 0 %}\n {% call statement(auto_begin=inside_transaction) %}\n {{ rendered }}\n {% endcall %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.228193, "supported_languages": null}, "macro.dbt.make_hook_config": {"name": "make_hook_config", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.make_hook_config", "macro_sql": "{% macro make_hook_config(sql, inside_transaction) %}\n {{ tojson({\"sql\": sql, \"transaction\": inside_transaction}) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2283661, "supported_languages": null}, "macro.dbt.before_begin": {"name": "before_begin", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.before_begin", "macro_sql": "{% macro before_begin(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.228489, "supported_languages": null}, "macro.dbt.in_transaction": {"name": "in_transaction", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.in_transaction", "macro_sql": "{% macro in_transaction(sql) %}\n {{ make_hook_config(sql, inside_transaction=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2286122, "supported_languages": null}, "macro.dbt.after_commit": {"name": "after_commit", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/hooks.sql", "original_file_path": "macros/materializations/hooks.sql", "unique_id": "macro.dbt.after_commit", "macro_sql": "{% macro after_commit(sql) %}\n {{ make_hook_config(sql, inside_transaction=False) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_hook_config"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2287319, "supported_languages": null}, "macro.dbt.set_sql_header": {"name": "set_sql_header", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.set_sql_header", "macro_sql": "{% macro set_sql_header(config) -%}\n {{ config.set('sql_header', caller()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2290492, "supported_languages": null}, "macro.dbt.should_full_refresh": {"name": "should_full_refresh", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_full_refresh", "macro_sql": "{% macro should_full_refresh() %}\n {% set config_full_refresh = config.get('full_refresh') %}\n {% if config_full_refresh is none %}\n {% set config_full_refresh = flags.FULL_REFRESH %}\n {% endif %}\n {% do return(config_full_refresh) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2292988, "supported_languages": null}, "macro.dbt.should_store_failures": {"name": "should_store_failures", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/configs.sql", "original_file_path": "macros/materializations/configs.sql", "unique_id": "macro.dbt.should_store_failures", "macro_sql": "{% macro should_store_failures() %}\n {% set config_store_failures = config.get('store_failures') %}\n {% if config_store_failures is none %}\n {% set config_store_failures = flags.STORE_FAILURES %}\n {% endif %}\n {% do return(config_store_failures) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.229595, "supported_languages": null}, "macro.dbt.snapshot_merge_sql": {"name": "snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.snapshot_merge_sql", "macro_sql": "{% macro snapshot_merge_sql(target, source, insert_cols) -%}\n {{ adapter.dispatch('snapshot_merge_sql', 'dbt')(target, source, insert_cols) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2301319, "supported_languages": null}, "macro.dbt.default__snapshot_merge_sql": {"name": "default__snapshot_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot_merge.sql", "original_file_path": "macros/materializations/snapshots/snapshot_merge.sql", "unique_id": "macro.dbt.default__snapshot_merge_sql", "macro_sql": "{% macro default__snapshot_merge_sql(target, source, insert_cols) -%}\n {%- set insert_cols_csv = insert_cols | join(', ') -%}\n\n merge into {{ target.render() }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on DBT_INTERNAL_SOURCE.dbt_scd_id = DBT_INTERNAL_DEST.dbt_scd_id\n\n when matched\n and DBT_INTERNAL_DEST.dbt_valid_to is null\n and DBT_INTERNAL_SOURCE.dbt_change_type in ('update', 'delete')\n then update\n set dbt_valid_to = DBT_INTERNAL_SOURCE.dbt_valid_to\n\n when not matched\n and DBT_INTERNAL_SOURCE.dbt_change_type = 'insert'\n then insert ({{ insert_cols_csv }})\n values ({{ insert_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.230436, "supported_languages": null}, "macro.dbt.strategy_dispatch": {"name": "strategy_dispatch", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.strategy_dispatch", "macro_sql": "{% macro strategy_dispatch(name) -%}\n{% set original_name = name %}\n {% if '.' in name %}\n {% set package_name, name = name.split(\".\", 1) %}\n {% else %}\n {% set package_name = none %}\n {% endif %}\n\n {% if package_name is none %}\n {% set package_context = context %}\n {% elif package_name in context %}\n {% set package_context = context[package_name] %}\n {% else %}\n {% set error_msg %}\n Could not find package '{{package_name}}', called with '{{original_name}}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n\n {%- set search_name = 'snapshot_' ~ name ~ '_strategy' -%}\n\n {% if search_name not in package_context %}\n {% set error_msg %}\n The specified strategy macro '{{name}}' was not found in package '{{ package_name }}'\n {% endset %}\n {{ exceptions.raise_compiler_error(error_msg | trim) }}\n {% endif %}\n {{ return(package_context[search_name]) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.233778, "supported_languages": null}, "macro.dbt.snapshot_hash_arguments": {"name": "snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_hash_arguments", "macro_sql": "{% macro snapshot_hash_arguments(args) -%}\n {{ adapter.dispatch('snapshot_hash_arguments', 'dbt')(args) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.233943, "supported_languages": null}, "macro.dbt.default__snapshot_hash_arguments": {"name": "default__snapshot_hash_arguments", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_hash_arguments", "macro_sql": "{% macro default__snapshot_hash_arguments(args) -%}\n md5({%- for arg in args -%}\n coalesce(cast({{ arg }} as varchar ), '')\n {% if not loop.last %} || '|' || {% endif %}\n {%- endfor -%})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.234134, "supported_languages": null}, "macro.dbt.snapshot_timestamp_strategy": {"name": "snapshot_timestamp_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_timestamp_strategy", "macro_sql": "{% macro snapshot_timestamp_strategy(node, snapshotted_rel, current_rel, config, target_exists) %}\n {% set primary_key = config['unique_key'] %}\n {% set updated_at = config['updated_at'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\n\n {#/*\n The snapshot relation might not have an {{ updated_at }} value if the\n snapshot strategy is changed from `check` to `timestamp`. We\n should use a dbt-created column for the comparison in the snapshot\n table instead of assuming that the user-supplied {{ updated_at }}\n will be present in the historical data.\n\n See https://github.com/dbt-labs/dbt-core/issues/2350\n */ #}\n {% set row_changed_expr -%}\n ({{ snapshotted_rel }}.dbt_valid_from < {{ current_rel }}.{{ updated_at }})\n {%- endset %}\n\n {% set scd_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.23473, "supported_languages": null}, "macro.dbt.snapshot_string_as_time": {"name": "snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_string_as_time", "macro_sql": "{% macro snapshot_string_as_time(timestamp) -%}\n {{ adapter.dispatch('snapshot_string_as_time', 'dbt')(timestamp) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_string_as_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.234874, "supported_languages": null}, "macro.dbt.default__snapshot_string_as_time": {"name": "default__snapshot_string_as_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.default__snapshot_string_as_time", "macro_sql": "{% macro default__snapshot_string_as_time(timestamp) %}\n {% do exceptions.raise_not_implemented(\n 'snapshot_string_as_time macro not implemented for adapter '+adapter.type()\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.23502, "supported_languages": null}, "macro.dbt.snapshot_check_all_get_existing_columns": {"name": "snapshot_check_all_get_existing_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_all_get_existing_columns", "macro_sql": "{% macro snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) -%}\n {%- if not target_exists -%}\n {#-- no table yet -> return whatever the query does --#}\n {{ return((false, query_columns)) }}\n {%- endif -%}\n\n {#-- handle any schema changes --#}\n {%- set target_relation = adapter.get_relation(database=node.database, schema=node.schema, identifier=node.alias) -%}\n\n {% if check_cols_config == 'all' %}\n {%- set query_columns = get_columns_in_query(node['compiled_code']) -%}\n\n {% elif check_cols_config is iterable and (check_cols_config | length) > 0 %}\n {#-- query for proper casing/quoting, to support comparison below --#}\n {%- set select_check_cols_from_target -%}\n {#-- N.B. The whitespace below is necessary to avoid edge case issue with comments --#}\n {#-- See: https://github.com/dbt-labs/dbt-core/issues/6781 --#}\n select {{ check_cols_config | join(', ') }} from (\n {{ node['compiled_code'] }}\n ) subq\n {%- endset -%}\n {% set query_columns = get_columns_in_query(select_check_cols_from_target) %}\n\n {% else %}\n {% do exceptions.raise_compiler_error(\"Invalid value for 'check_cols': \" ~ check_cols_config) %}\n {% endif %}\n\n {%- set existing_cols = adapter.get_columns_in_relation(target_relation) | map(attribute = 'name') | list -%}\n {%- set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {%- set ns.column_added = false -%}\n\n {%- set intersection = [] -%}\n {%- for col in query_columns -%}\n {%- if col in existing_cols -%}\n {%- do intersection.append(adapter.quote(col)) -%}\n {%- else -%}\n {% set ns.column_added = true %}\n {%- endif -%}\n {%- endfor -%}\n {{ return((ns.column_added, intersection)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.236178, "supported_languages": null}, "macro.dbt.snapshot_check_strategy": {"name": "snapshot_check_strategy", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/strategies.sql", "original_file_path": "macros/materializations/snapshots/strategies.sql", "unique_id": "macro.dbt.snapshot_check_strategy", "macro_sql": "{% macro snapshot_check_strategy(node, snapshotted_rel, current_rel, config, target_exists) %}\n {% set check_cols_config = config['check_cols'] %}\n {% set primary_key = config['unique_key'] %}\n {% set invalidate_hard_deletes = config.get('invalidate_hard_deletes', false) %}\n {% set updated_at = config.get('updated_at', snapshot_get_time()) %}\n\n {% set column_added = false %}\n\n {% set column_added, check_cols = snapshot_check_all_get_existing_columns(node, target_exists, check_cols_config) %}\n\n {%- set row_changed_expr -%}\n (\n {%- if column_added -%}\n {{ get_true_sql() }}\n {%- else -%}\n {%- for col in check_cols -%}\n {{ snapshotted_rel }}.{{ col }} != {{ current_rel }}.{{ col }}\n or\n (\n (({{ snapshotted_rel }}.{{ col }} is null) and not ({{ current_rel }}.{{ col }} is null))\n or\n ((not {{ snapshotted_rel }}.{{ col }} is null) and ({{ current_rel }}.{{ col }} is null))\n )\n {%- if not loop.last %} or {% endif -%}\n {%- endfor -%}\n {%- endif -%}\n )\n {%- endset %}\n\n {% set scd_id_expr = snapshot_hash_arguments([primary_key, updated_at]) %}\n\n {% do return({\n \"unique_key\": primary_key,\n \"updated_at\": updated_at,\n \"row_changed\": row_changed_expr,\n \"scd_id\": scd_id_expr,\n \"invalidate_hard_deletes\": invalidate_hard_deletes\n }) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt.snapshot_check_all_get_existing_columns", "macro.dbt.get_true_sql", "macro.dbt.snapshot_hash_arguments"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.237291, "supported_languages": null}, "macro.dbt.create_columns": {"name": "create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.create_columns", "macro_sql": "{% macro create_columns(relation, columns) %}\n {{ adapter.dispatch('create_columns', 'dbt')(relation, columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.241445, "supported_languages": null}, "macro.dbt.default__create_columns": {"name": "default__create_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__create_columns", "macro_sql": "{% macro default__create_columns(relation, columns) %}\n {% for column in columns %}\n {% call statement() %}\n alter table {{ relation.render() }} add column \"{{ column.name }}\" {{ column.data_type }};\n {% endcall %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.241745, "supported_languages": null}, "macro.dbt.post_snapshot": {"name": "post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.post_snapshot", "macro_sql": "{% macro post_snapshot(staging_relation) %}\n {{ adapter.dispatch('post_snapshot', 'dbt')(staging_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.241909, "supported_languages": null}, "macro.dbt.default__post_snapshot": {"name": "default__post_snapshot", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__post_snapshot", "macro_sql": "{% macro default__post_snapshot(staging_relation) %}\n {# no-op #}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.241995, "supported_languages": null}, "macro.dbt.get_true_sql": {"name": "get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_true_sql", "macro_sql": "{% macro get_true_sql() %}\n {{ adapter.dispatch('get_true_sql', 'dbt')() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_true_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.242133, "supported_languages": null}, "macro.dbt.default__get_true_sql": {"name": "default__get_true_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__get_true_sql", "macro_sql": "{% macro default__get_true_sql() %}\n {{ return('TRUE') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2422972, "supported_languages": null}, "macro.dbt.snapshot_staging_table": {"name": "snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.snapshot_staging_table", "macro_sql": "{% macro snapshot_staging_table(strategy, source_sql, target_relation) -%}\n {{ adapter.dispatch('snapshot_staging_table', 'dbt')(strategy, source_sql, target_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__snapshot_staging_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.242517, "supported_languages": null}, "macro.dbt.default__snapshot_staging_table": {"name": "default__snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__snapshot_staging_table", "macro_sql": "{% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}\n\n with snapshot_query as (\n\n {{ source_sql }}\n\n ),\n\n snapshotted_data as (\n\n select *,\n {{ strategy.unique_key }} as dbt_unique_key\n\n from {{ target_relation }}\n where dbt_valid_to is null\n\n ),\n\n insertions_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to,\n {{ strategy.scd_id }} as dbt_scd_id\n\n from snapshot_query\n ),\n\n updates_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n {{ strategy.updated_at }} as dbt_valid_to\n\n from snapshot_query\n ),\n\n {%- if strategy.invalidate_hard_deletes %}\n\n deletes_source_data as (\n\n select\n *,\n {{ strategy.unique_key }} as dbt_unique_key\n from snapshot_query\n ),\n {% endif %}\n\n insertions as (\n\n select\n 'insert' as dbt_change_type,\n source_data.*\n\n from insertions_source_data as source_data\n left outer join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where snapshotted_data.dbt_unique_key is null\n or (\n snapshotted_data.dbt_unique_key is not null\n and (\n {{ strategy.row_changed }}\n )\n )\n\n ),\n\n updates as (\n\n select\n 'update' as dbt_change_type,\n source_data.*,\n snapshotted_data.dbt_scd_id\n\n from updates_source_data as source_data\n join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where (\n {{ strategy.row_changed }}\n )\n )\n\n {%- if strategy.invalidate_hard_deletes -%}\n ,\n\n deletes as (\n\n select\n 'delete' as dbt_change_type,\n source_data.*,\n {{ snapshot_get_time() }} as dbt_valid_from,\n {{ snapshot_get_time() }} as dbt_updated_at,\n {{ snapshot_get_time() }} as dbt_valid_to,\n snapshotted_data.dbt_scd_id\n\n from snapshotted_data\n left join deletes_source_data as source_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key\n where source_data.dbt_unique_key is null\n )\n {%- endif %}\n\n select * from insertions\n union all\n select * from updates\n {%- if strategy.invalidate_hard_deletes %}\n union all\n select * from deletes\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.243347, "supported_languages": null}, "macro.dbt.build_snapshot_table": {"name": "build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_table", "macro_sql": "{% macro build_snapshot_table(strategy, sql) -%}\n {{ adapter.dispatch('build_snapshot_table', 'dbt')(strategy, sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__build_snapshot_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2435799, "supported_languages": null}, "macro.dbt.default__build_snapshot_table": {"name": "default__build_snapshot_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.default__build_snapshot_table", "macro_sql": "{% macro default__build_snapshot_table(strategy, sql) %}\n\n select *,\n {{ strategy.scd_id }} as dbt_scd_id,\n {{ strategy.updated_at }} as dbt_updated_at,\n {{ strategy.updated_at }} as dbt_valid_from,\n nullif({{ strategy.updated_at }}, {{ strategy.updated_at }}) as dbt_valid_to\n from (\n {{ sql }}\n ) sbq\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2438111, "supported_languages": null}, "macro.dbt.build_snapshot_staging_table": {"name": "build_snapshot_staging_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.build_snapshot_staging_table", "macro_sql": "{% macro build_snapshot_staging_table(strategy, sql, target_relation) %}\n {% set temp_relation = make_temp_relation(target_relation) %}\n\n {% set select = snapshot_staging_table(strategy, sql, target_relation) %}\n\n {% call statement('build_snapshot_staging_relation') %}\n {{ create_table_as(True, temp_relation, select) }}\n {% endcall %}\n\n {% do return(temp_relation) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.make_temp_relation", "macro.dbt.snapshot_staging_table", "macro.dbt.statement", "macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2441752, "supported_languages": null}, "macro.dbt.get_updated_at_column_data_type": {"name": "get_updated_at_column_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.get_updated_at_column_data_type", "macro_sql": "{% macro get_updated_at_column_data_type(snapshot_sql) %}\n {% set snapshot_sql_column_schema = get_column_schema_from_query(snapshot_sql) %}\n {% set dbt_updated_at_data_type = null %}\n {% set ns = namespace() -%} {#-- handle for-loop scoping with a namespace --#}\n {% set ns.dbt_updated_at_data_type = null -%}\n {% for column in snapshot_sql_column_schema %}\n {% if ((column.column == 'dbt_updated_at') or (column.column == 'DBT_UPDATED_AT')) %}\n {% set ns.dbt_updated_at_data_type = column.dtype %}\n {% endif %}\n {% endfor %}\n {{ return(ns.dbt_updated_at_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.24469, "supported_languages": null}, "macro.dbt.check_time_data_types": {"name": "check_time_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/helpers.sql", "original_file_path": "macros/materializations/snapshots/helpers.sql", "unique_id": "macro.dbt.check_time_data_types", "macro_sql": "{% macro check_time_data_types(sql) %}\n {% set dbt_updated_at_data_type = get_updated_at_column_data_type(sql) %}\n {% set snapshot_get_time_data_type = get_snapshot_get_time_data_type() %}\n {% if snapshot_get_time_data_type is not none and dbt_updated_at_data_type is not none and snapshot_get_time_data_type != dbt_updated_at_data_type %}\n {% if exceptions.warn_snapshot_timestamp_data_types %}\n {{ exceptions.warn_snapshot_timestamp_data_types(snapshot_get_time_data_type, dbt_updated_at_data_type) }}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_updated_at_column_data_type", "macro.dbt.get_snapshot_get_time_data_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.245069, "supported_languages": null}, "macro.dbt.materialization_snapshot_default": {"name": "materialization_snapshot_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/snapshots/snapshot.sql", "original_file_path": "macros/materializations/snapshots/snapshot.sql", "unique_id": "macro.dbt.materialization_snapshot_default", "macro_sql": "{% materialization snapshot, default %}\n {%- set config = model['config'] -%}\n\n {%- set target_table = model.get('alias', model.get('name')) -%}\n\n {%- set strategy_name = config.get('strategy') -%}\n {%- set unique_key = config.get('unique_key') %}\n -- grab current tables grants config for comparision later on\n {%- set grant_config = config.get('grants') -%}\n\n {% set target_relation_exists, target_relation = get_or_create_relation(\n database=model.database,\n schema=model.schema,\n identifier=target_table,\n type='table') -%}\n\n {%- if not target_relation.is_table -%}\n {% do exceptions.relation_wrong_type(target_relation, 'table') %}\n {%- endif -%}\n\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set strategy_macro = strategy_dispatch(strategy_name) %}\n {% set strategy = strategy_macro(model, \"snapshotted_data\", \"source_data\", config, target_relation_exists) %}\n\n {% if not target_relation_exists %}\n\n {% set build_sql = build_snapshot_table(strategy, model['compiled_code']) %}\n {% set build_or_select_sql = build_sql %}\n {% set final_sql = create_table_as(False, target_relation, build_sql) %}\n\n {% else %}\n\n {{ adapter.valid_snapshot_target(target_relation) }}\n\n {% set build_or_select_sql = snapshot_staging_table(strategy, sql, target_relation) %}\n {% set staging_table = build_snapshot_staging_table(strategy, sql, target_relation) %}\n\n -- this may no-op if the database does not require column expansion\n {% do adapter.expand_target_column_types(from_relation=staging_table,\n to_relation=target_relation) %}\n\n {% set missing_columns = adapter.get_missing_columns(staging_table, target_relation)\n | rejectattr('name', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\n | list %}\n\n {% do create_columns(target_relation, missing_columns) %}\n\n {% set source_columns = adapter.get_columns_in_relation(staging_table)\n | rejectattr('name', 'equalto', 'dbt_change_type')\n | rejectattr('name', 'equalto', 'DBT_CHANGE_TYPE')\n | rejectattr('name', 'equalto', 'dbt_unique_key')\n | rejectattr('name', 'equalto', 'DBT_UNIQUE_KEY')\n | list %}\n\n {% set quoted_source_columns = [] %}\n {% for column in source_columns %}\n {% do quoted_source_columns.append(adapter.quote(column.name)) %}\n {% endfor %}\n\n {% set final_sql = snapshot_merge_sql(\n target = target_relation,\n source = staging_table,\n insert_cols = quoted_source_columns\n )\n %}\n\n {% endif %}\n\n\n {{ check_time_data_types(build_or_select_sql) }}\n\n {% call statement('main') %}\n {{ final_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(target_relation_exists, full_refresh_mode=False) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if not target_relation_exists %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {% if staging_table is defined %}\n {% do post_snapshot(staging_table) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.get_or_create_relation", "macro.dbt.run_hooks", "macro.dbt.strategy_dispatch", "macro.dbt.build_snapshot_table", "macro.dbt.create_table_as", "macro.dbt.snapshot_staging_table", "macro.dbt.build_snapshot_staging_table", "macro.dbt.create_columns", "macro.dbt.snapshot_merge_sql", "macro.dbt.check_time_data_types", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes", "macro.dbt.post_snapshot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2513, "supported_languages": ["sql"]}, "macro.dbt.materialization_test_default": {"name": "materialization_test_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/test.sql", "original_file_path": "macros/materializations/tests/test.sql", "unique_id": "macro.dbt.materialization_test_default", "macro_sql": "{%- materialization test, default -%}\n\n {% set relations = [] %}\n\n {% if should_store_failures() %}\n\n {% set identifier = model['alias'] %}\n {% set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% set store_failures_as = config.get('store_failures_as') %}\n -- if `--store-failures` is invoked via command line and `store_failures_as` is not set,\n -- config.get('store_failures_as', 'table') returns None, not 'table'\n {% if store_failures_as == none %}{% set store_failures_as = 'table' %}{% endif %}\n {% if store_failures_as not in ['table', 'view'] %}\n {{ exceptions.raise_compiler_error(\n \"'\" ~ store_failures_as ~ \"' is not a valid value for `store_failures_as`. \"\n \"Accepted values are: ['ephemeral', 'table', 'view']\"\n ) }}\n {% endif %}\n\n {% set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database, type=store_failures_as) -%} %}\n\n {% if old_relation %}\n {% do adapter.drop_relation(old_relation) %}\n {% endif %}\n\n {% call statement(auto_begin=True) %}\n {{ get_create_sql(target_relation, sql) }}\n {% endcall %}\n\n {% do relations.append(target_relation) %}\n\n {% set main_sql %}\n select *\n from {{ target_relation }}\n {% endset %}\n\n {{ adapter.commit() }}\n\n {% else %}\n\n {% set main_sql = sql %}\n\n {% endif %}\n\n {% set limit = config.get('limit') %}\n {% set fail_calc = config.get('fail_calc') %}\n {% set warn_if = config.get('warn_if') %}\n {% set error_if = config.get('error_if') %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {{ get_test_sql(main_sql, fail_calc, warn_if, error_if, limit)}}\n\n {%- endcall %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.should_store_failures", "macro.dbt.statement", "macro.dbt.get_create_sql", "macro.dbt.get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.253789, "supported_languages": ["sql"]}, "macro.dbt.get_test_sql": {"name": "get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_test_sql", "macro_sql": "{% macro get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n {{ adapter.dispatch('get_test_sql', 'dbt')(main_sql, fail_calc, warn_if, error_if, limit) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.254771, "supported_languages": null}, "macro.dbt.default__get_test_sql": {"name": "default__get_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_test_sql", "macro_sql": "{% macro default__get_test_sql(main_sql, fail_calc, warn_if, error_if, limit) -%}\n select\n {{ fail_calc }} as failures,\n {{ fail_calc }} {{ warn_if }} as should_warn,\n {{ fail_calc }} {{ error_if }} as should_error\n from (\n {{ main_sql }}\n {{ \"limit \" ~ limit if limit != none }}\n ) dbt_internal_test\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.255023, "supported_languages": null}, "macro.dbt.get_unit_test_sql": {"name": "get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.get_unit_test_sql", "macro_sql": "{% macro get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n {{ adapter.dispatch('get_unit_test_sql', 'dbt')(main_sql, expected_fixture_sql, expected_column_names) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_unit_test_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.255201, "supported_languages": null}, "macro.dbt.default__get_unit_test_sql": {"name": "default__get_unit_test_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/helpers.sql", "original_file_path": "macros/materializations/tests/helpers.sql", "unique_id": "macro.dbt.default__get_unit_test_sql", "macro_sql": "{% macro default__get_unit_test_sql(main_sql, expected_fixture_sql, expected_column_names) -%}\n-- Build actual result given inputs\nwith dbt_internal_unit_test_actual as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%},{% endif %}{%- endfor -%}, {{ dbt.string_literal(\"actual\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ main_sql }}\n ) _dbt_internal_unit_test_actual\n),\n-- Build expected result\ndbt_internal_unit_test_expected as (\n select\n {% for expected_column_name in expected_column_names %}{{expected_column_name}}{% if not loop.last -%}, {% endif %}{%- endfor -%}, {{ dbt.string_literal(\"expected\") }} as {{ adapter.quote(\"actual_or_expected\") }}\n from (\n {{ expected_fixture_sql }}\n ) _dbt_internal_unit_test_expected\n)\n-- Union actual and expected results\nselect * from dbt_internal_unit_test_actual\nunion all\nselect * from dbt_internal_unit_test_expected\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.255695, "supported_languages": null}, "macro.dbt.get_where_subquery": {"name": "get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.get_where_subquery", "macro_sql": "{% macro get_where_subquery(relation) -%}\n {% do return(adapter.dispatch('get_where_subquery', 'dbt')(relation)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_where_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2560132, "supported_languages": null}, "macro.dbt.default__get_where_subquery": {"name": "default__get_where_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/where_subquery.sql", "original_file_path": "macros/materializations/tests/where_subquery.sql", "unique_id": "macro.dbt.default__get_where_subquery", "macro_sql": "{% macro default__get_where_subquery(relation) -%}\n {% set where = config.get('where', '') %}\n {% if where %}\n {%- set filtered -%}\n (select * from {{ relation }} where {{ where }}) dbt_subquery\n {%- endset -%}\n {% do return(filtered) %}\n {%- else -%}\n {% do return(relation) %}\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.25632, "supported_languages": null}, "macro.dbt.materialization_unit_default": {"name": "materialization_unit_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/tests/unit.sql", "original_file_path": "macros/materializations/tests/unit.sql", "unique_id": "macro.dbt.materialization_unit_default", "macro_sql": "{%- materialization unit, default -%}\n\n {% set relations = [] %}\n\n {% set expected_rows = config.get('expected_rows') %}\n {% set expected_sql = config.get('expected_sql') %}\n {% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %} %}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {% do run_query(get_create_table_as_sql(True, temp_relation, get_empty_subquery_sql(sql))) %}\n {%- set columns_in_relation = adapter.get_columns_in_relation(temp_relation) -%}\n {%- set column_name_to_data_types = {} -%}\n {%- for column in columns_in_relation -%}\n {%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n {%- endfor -%}\n\n {% if not expected_sql %}\n {% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types) %}\n {% endif %}\n {% set unit_test_sql = get_unit_test_sql(sql, expected_sql, tested_expected_column_names) %}\n\n {% call statement('main', fetch_result=True) -%}\n\n {{ unit_test_sql }}\n\n {%- endcall %}\n\n {% do adapter.drop_relation(temp_relation) %}\n\n {{ return({'relations': relations}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.get_columns_in_query", "macro.dbt.make_temp_relation", "macro.dbt.run_query", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_empty_subquery_sql", "macro.dbt.get_expected_sql", "macro.dbt.get_unit_test_sql", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2577631, "supported_languages": ["sql"]}, "macro.dbt.materialization_materialized_view_default": {"name": "materialization_materialized_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialization_materialized_view_default", "macro_sql": "{% materialization materialized_view, default %}\n {% set existing_relation = load_cached_relation(this) %}\n {% set target_relation = this.incorporate(type=this.MaterializedView) %}\n {% set intermediate_relation = make_intermediate_relation(target_relation) %}\n {% set backup_relation_type = target_relation.MaterializedView if existing_relation is none else existing_relation.type %}\n {% set backup_relation = make_backup_relation(target_relation, backup_relation_type) %}\n\n {{ materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) }}\n\n {% set build_sql = materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% if build_sql == '' %}\n {{ materialized_view_execute_no_op(target_relation) }}\n {% else %}\n {{ materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) }}\n {% endif %}\n\n {{ materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.materialized_view_setup", "macro.dbt.materialized_view_get_build_sql", "macro.dbt.materialized_view_execute_no_op", "macro.dbt.materialized_view_execute_build_sql", "macro.dbt.materialized_view_teardown"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.262103, "supported_languages": ["sql"]}, "macro.dbt.materialized_view_setup": {"name": "materialized_view_setup", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_setup", "macro_sql": "{% macro materialized_view_setup(backup_relation, intermediate_relation, pre_hooks) %}\n\n -- backup_relation and intermediate_relation should not already exist in the database\n -- it's possible these exist because of a previous run that exited unexpectedly\n {% set preexisting_backup_relation = load_cached_relation(backup_relation) %}\n {% set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.26253, "supported_languages": null}, "macro.dbt.materialized_view_teardown": {"name": "materialized_view_teardown", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_teardown", "macro_sql": "{% macro materialized_view_teardown(backup_relation, intermediate_relation, post_hooks) %}\n\n -- drop the temp relations if they exist to leave the database clean for the next run\n {{ drop_relation_if_exists(backup_relation) }}\n {{ drop_relation_if_exists(intermediate_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.26278, "supported_languages": null}, "macro.dbt.materialized_view_get_build_sql": {"name": "materialized_view_get_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_get_build_sql", "macro_sql": "{% macro materialized_view_get_build_sql(existing_relation, target_relation, backup_relation, intermediate_relation) %}\n\n {% set full_refresh_mode = should_full_refresh() %}\n\n -- determine the scenario we're in: create, full_refresh, alter, refresh data\n {% if existing_relation is none %}\n {% set build_sql = get_create_materialized_view_as_sql(target_relation, sql) %}\n {% elif full_refresh_mode or not existing_relation.is_materialized_view %}\n {% set build_sql = get_replace_sql(existing_relation, target_relation, sql) %}\n {% else %}\n\n -- get config options\n {% set on_configuration_change = config.get('on_configuration_change') %}\n {% set configuration_changes = get_materialized_view_configuration_changes(existing_relation, config) %}\n\n {% if configuration_changes is none %}\n {% set build_sql = refresh_materialized_view(target_relation) %}\n\n {% elif on_configuration_change == 'apply' %}\n {% set build_sql = get_alter_materialized_view_as_sql(target_relation, configuration_changes, sql, existing_relation, backup_relation, intermediate_relation) %}\n {% elif on_configuration_change == 'continue' %}\n {% set build_sql = '' %}\n {{ exceptions.warn(\"Configuration changes were identified and `on_configuration_change` was set to `continue` for `\" ~ target_relation.render() ~ \"`\") }}\n {% elif on_configuration_change == 'fail' %}\n {{ exceptions.raise_fail_fast_error(\"Configuration changes were identified and `on_configuration_change` was set to `fail` for `\" ~ target_relation.render() ~ \"`\") }}\n\n {% else %}\n -- this only happens if the user provides a value other than `apply`, 'skip', 'fail'\n {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario\") }}\n\n {% endif %}\n\n {% endif %}\n\n {% do return(build_sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.get_create_materialized_view_as_sql", "macro.dbt.get_replace_sql", "macro.dbt.get_materialized_view_configuration_changes", "macro.dbt.refresh_materialized_view", "macro.dbt.get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2640588, "supported_languages": null}, "macro.dbt.materialized_view_execute_no_op": {"name": "materialized_view_execute_no_op", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_no_op", "macro_sql": "{% macro materialized_view_execute_no_op(target_relation) %}\n {% do store_raw_result(\n name=\"main\",\n message=\"skip \" ~ target_relation,\n code=\"skip\",\n rows_affected=\"-1\"\n ) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.264294, "supported_languages": null}, "macro.dbt.materialized_view_execute_build_sql": {"name": "materialized_view_execute_build_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/materialized_view.sql", "original_file_path": "macros/materializations/models/materialized_view.sql", "unique_id": "macro.dbt.materialized_view_execute_build_sql", "macro_sql": "{% macro materialized_view_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) %}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set grant_config = config.get('grants') %}\n\n {% call statement(name=\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.26487, "supported_languages": null}, "macro.dbt.materialization_view_default": {"name": "materialization_view_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/view.sql", "original_file_path": "macros/materializations/models/view.sql", "unique_id": "macro.dbt.materialization_view_default", "macro_sql": "{%- materialization view, default -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='view') -%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n This relation (probably) doesn't exist yet. If it does exist, it's a leftover from\n a previous run, and we're going to try to drop it immediately. At the end of this\n materialization, we're going to rename the \"existing_relation\" to this identifier,\n and then we're going to drop it. In order to make sure we run the correct one of:\n - drop view ...\n - drop table ...\n\n We need to set the type of this relation to be the type of the existing_relation, if it exists,\n or else \"view\" as a sane default if it does not. Note that if the existing_relation does not\n exist, then there is nothing to move out of the way and subsequentally drop. In that case,\n this relation will be effectively unused.\n */\n {%- set backup_relation_type = 'view' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n -- move the existing view out of the way\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {{ adapter.commit() }}\n\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.run_hooks", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.267422, "supported_languages": ["sql"]}, "macro.dbt.materialization_table_default": {"name": "materialization_table_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/table.sql", "original_file_path": "macros/materializations/models/table.sql", "unique_id": "macro.dbt.materialization_table_default", "macro_sql": "{% materialization table, default %}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') %}\n {%- set intermediate_relation = make_intermediate_relation(target_relation) -%}\n -- the intermediate_relation should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation) -%}\n /*\n See ../view/view.sql for more information about this relation.\n */\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n -- as above, the backup_relation should not already exist\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n\n -- drop the temp relations if they exist already in the database\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_table_as_sql(False, intermediate_relation, sql) }}\n {%- endcall %}\n\n -- cleanup\n {% if existing_relation is not none %}\n /* Do the equivalent of rename_if_exists. 'existing_relation' could have been dropped\n since the variable was first set. */\n {% set existing_relation = load_cached_relation(existing_relation) %}\n {% if existing_relation is not none %}\n {{ adapter.rename_relation(existing_relation, backup_relation) }}\n {% endif %}\n {% endif %}\n\n {{ adapter.rename_relation(intermediate_relation, target_relation) }}\n\n {% do create_indexes(target_relation) %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n -- finally, drop the existing/backup relation after the commit\n {{ drop_relation_if_exists(backup_relation) }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.statement", "macro.dbt.get_create_table_as_sql", "macro.dbt.create_indexes", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.270061, "supported_languages": ["sql"]}, "macro.dbt.get_quoted_csv": {"name": "get_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_quoted_csv", "macro_sql": "{% macro get_quoted_csv(column_names) %}\n\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote(col)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.271619, "supported_languages": null}, "macro.dbt.diff_columns": {"name": "diff_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_columns", "macro_sql": "{% macro diff_columns(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% set source_names = source_columns | map(attribute = 'column') | list %}\n {% set target_names = target_columns | map(attribute = 'column') | list %}\n\n {# --check whether the name attribute exists in the target - this does not perform a data type check #}\n {% for sc in source_columns %}\n {% if sc.name not in target_names %}\n {{ result.append(sc) }}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.27212, "supported_languages": null}, "macro.dbt.diff_column_data_types": {"name": "diff_column_data_types", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.diff_column_data_types", "macro_sql": "{% macro diff_column_data_types(source_columns, target_columns) %}\n\n {% set result = [] %}\n {% for sc in source_columns %}\n {% set tc = target_columns | selectattr(\"name\", \"equalto\", sc.name) | list | first %}\n {% if tc %}\n {% if sc.data_type != tc.data_type and not sc.can_expand_to(other_column=tc) %}\n {{ result.append( { 'column_name': tc.name, 'new_type': sc.data_type } ) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n\n {{ return(result) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.272846, "supported_languages": null}, "macro.dbt.get_merge_update_columns": {"name": "get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.get_merge_update_columns", "macro_sql": "{% macro get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {{ return(adapter.dispatch('get_merge_update_columns', 'dbt')(merge_update_columns, merge_exclude_columns, dest_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2730901, "supported_languages": null}, "macro.dbt.default__get_merge_update_columns": {"name": "default__get_merge_update_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/column_helpers.sql", "original_file_path": "macros/materializations/models/incremental/column_helpers.sql", "unique_id": "macro.dbt.default__get_merge_update_columns", "macro_sql": "{% macro default__get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %}\n {%- set default_cols = dest_columns | map(attribute=\"quoted\") | list -%}\n\n {%- if merge_update_columns and merge_exclude_columns -%}\n {{ exceptions.raise_compiler_error(\n 'Model cannot specify merge_update_columns and merge_exclude_columns. Please update model to use only one config'\n )}}\n {%- elif merge_update_columns -%}\n {%- set update_columns = merge_update_columns -%}\n {%- elif merge_exclude_columns -%}\n {%- set update_columns = [] -%}\n {%- for column in dest_columns -%}\n {% if column.column | lower not in merge_exclude_columns | map(\"lower\") | list %}\n {%- do update_columns.append(column.quoted) -%}\n {% endif %}\n {%- endfor -%}\n {%- else -%}\n {%- set update_columns = default_cols -%}\n {%- endif -%}\n\n {{ return(update_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.273702, "supported_languages": null}, "macro.dbt.get_merge_sql": {"name": "get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_merge_sql", "macro_sql": "{% macro get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n -- back compat for old kwarg name\n {% set incremental_predicates = kwargs.get('predicates', incremental_predicates) %}\n {{ adapter.dispatch('get_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2787929, "supported_languages": null}, "macro.dbt.default__get_merge_sql": {"name": "default__get_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_merge_sql", "macro_sql": "{% macro default__get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates=none) -%}\n {%- set predicates = [] if incremental_predicates is none else [] + incremental_predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set merge_update_columns = config.get('merge_update_columns') -%}\n {%- set merge_exclude_columns = config.get('merge_exclude_columns') -%}\n {%- set update_columns = get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not mapping and unique_key is not string %}\n {% for key in unique_key %}\n {% set this_key_match %}\n DBT_INTERNAL_SOURCE.{{ key }} = DBT_INTERNAL_DEST.{{ key }}\n {% endset %}\n {% do predicates.append(this_key_match) %}\n {% endfor %}\n {% else %}\n {% set unique_key_match %}\n DBT_INTERNAL_SOURCE.{{ unique_key }} = DBT_INTERNAL_DEST.{{ unique_key }}\n {% endset %}\n {% do predicates.append(unique_key_match) %}\n {% endif %}\n {% else %}\n {% do predicates.append('FALSE') %}\n {% endif %}\n\n {{ sql_header if sql_header is not none }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on {{\"(\" ~ predicates | join(\") and (\") ~ \")\"}}\n\n {% if unique_key %}\n when matched then update set\n {% for column_name in update_columns -%}\n {{ column_name }} = DBT_INTERNAL_SOURCE.{{ column_name }}\n {%- if not loop.last %}, {%- endif %}\n {%- endfor %}\n {% endif %}\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv", "macro.dbt.get_merge_update_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2801569, "supported_languages": null}, "macro.dbt.get_delete_insert_merge_sql": {"name": "get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_delete_insert_merge_sql", "macro_sql": "{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n {{ adapter.dispatch('get_delete_insert_merge_sql', 'dbt')(target, source, unique_key, dest_columns, incremental_predicates) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.280378, "supported_languages": null}, "macro.dbt.default__get_delete_insert_merge_sql": {"name": "default__get_delete_insert_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_delete_insert_merge_sql", "macro_sql": "{% macro default__get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n {% if unique_key %}\n {% if unique_key is sequence and unique_key is not string %}\n delete from {{target }}\n using {{ source }}\n where (\n {% for key in unique_key %}\n {{ source }}.{{ key }} = {{ target }}.{{ key }}\n {{ \"and \" if not loop.last}}\n {% endfor %}\n {% if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {% endif %}\n );\n {% else %}\n delete from {{ target }}\n where (\n {{ unique_key }}) in (\n select ({{ unique_key }})\n from {{ source }}\n )\n {%- if incremental_predicates %}\n {% for predicate in incremental_predicates %}\n and {{ predicate }}\n {% endfor %}\n {%- endif -%};\n\n {% endif %}\n {% endif %}\n\n insert into {{ target }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ source }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.281378, "supported_languages": null}, "macro.dbt.get_insert_overwrite_merge_sql": {"name": "get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.get_insert_overwrite_merge_sql", "macro_sql": "{% macro get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header=false) -%}\n {{ adapter.dispatch('get_insert_overwrite_merge_sql', 'dbt')(target, source, dest_columns, predicates, include_sql_header) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2816808, "supported_languages": null}, "macro.dbt.default__get_insert_overwrite_merge_sql": {"name": "default__get_insert_overwrite_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/merge.sql", "original_file_path": "macros/materializations/models/incremental/merge.sql", "unique_id": "macro.dbt.default__get_insert_overwrite_merge_sql", "macro_sql": "{% macro default__get_insert_overwrite_merge_sql(target, source, dest_columns, predicates, include_sql_header) -%}\n {#-- The only time include_sql_header is True: --#}\n {#-- BigQuery + insert_overwrite strategy + \"static\" partitions config --#}\n {#-- We should consider including the sql header at the materialization level instead --#}\n\n {%- set predicates = [] if predicates is none else [] + predicates -%}\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none and include_sql_header }}\n\n merge into {{ target }} as DBT_INTERNAL_DEST\n using {{ source }} as DBT_INTERNAL_SOURCE\n on FALSE\n\n when not matched by source\n {% if predicates %} and {{ predicates | join(' and ') }} {% endif %}\n then delete\n\n when not matched then insert\n ({{ dest_cols_csv }})\n values\n ({{ dest_cols_csv }})\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2822778, "supported_languages": null}, "macro.dbt.is_incremental": {"name": "is_incremental", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/is_incremental.sql", "original_file_path": "macros/materializations/models/incremental/is_incremental.sql", "unique_id": "macro.dbt.is_incremental", "macro_sql": "{% macro is_incremental() %}\n {#-- do not run introspective queries in parsing #}\n {% if not execute %}\n {{ return(False) }}\n {% else %}\n {% set relation = adapter.get_relation(this.database, this.schema, this.table) %}\n {{ return(relation is not none\n and relation.type == 'table'\n and model.config.materialized == 'incremental'\n and not should_full_refresh()) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2828531, "supported_languages": null}, "macro.dbt.get_incremental_append_sql": {"name": "get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_append_sql", "macro_sql": "{% macro get_incremental_append_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_append_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.28399, "supported_languages": null}, "macro.dbt.default__get_incremental_append_sql": {"name": "default__get_incremental_append_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_append_sql", "macro_sql": "{% macro default__get_incremental_append_sql(arg_dict) %}\n\n {% do return(get_insert_into_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_into_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2842, "supported_languages": null}, "macro.dbt.get_incremental_delete_insert_sql": {"name": "get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_delete_insert_sql", "macro_sql": "{% macro get_incremental_delete_insert_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_delete_insert_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_delete_insert_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.284363, "supported_languages": null}, "macro.dbt.default__get_incremental_delete_insert_sql": {"name": "default__get_incremental_delete_insert_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_delete_insert_sql", "macro_sql": "{% macro default__get_incremental_delete_insert_sql(arg_dict) %}\n\n {% do return(get_delete_insert_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_delete_insert_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2846231, "supported_languages": null}, "macro.dbt.get_incremental_merge_sql": {"name": "get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_merge_sql", "macro_sql": "{% macro get_incremental_merge_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_merge_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2847948, "supported_languages": null}, "macro.dbt.default__get_incremental_merge_sql": {"name": "default__get_incremental_merge_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_merge_sql", "macro_sql": "{% macro default__get_incremental_merge_sql(arg_dict) %}\n\n {% do return(get_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"unique_key\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.285047, "supported_languages": null}, "macro.dbt.get_incremental_insert_overwrite_sql": {"name": "get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_insert_overwrite_sql", "macro_sql": "{% macro get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_insert_overwrite_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_insert_overwrite_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.285208, "supported_languages": null}, "macro.dbt.default__get_incremental_insert_overwrite_sql": {"name": "default__get_incremental_insert_overwrite_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_insert_overwrite_sql", "macro_sql": "{% macro default__get_incremental_insert_overwrite_sql(arg_dict) %}\n\n {% do return(get_insert_overwrite_merge_sql(arg_dict[\"target_relation\"], arg_dict[\"temp_relation\"], arg_dict[\"dest_columns\"], arg_dict[\"incremental_predicates\"])) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_insert_overwrite_merge_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.285434, "supported_languages": null}, "macro.dbt.get_incremental_default_sql": {"name": "get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_default_sql", "macro_sql": "{% macro get_incremental_default_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_default_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_incremental_default_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.285599, "supported_languages": null}, "macro.dbt.default__get_incremental_default_sql": {"name": "default__get_incremental_default_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_default_sql", "macro_sql": "{% macro default__get_incremental_default_sql(arg_dict) %}\n\n {% do return(get_incremental_append_sql(arg_dict)) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_incremental_append_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2857332, "supported_languages": null}, "macro.dbt.get_incremental_microbatch_sql": {"name": "get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_incremental_microbatch_sql", "macro_sql": "{% macro get_incremental_microbatch_sql(arg_dict) %}\n\n {{ return(adapter.dispatch('get_incremental_microbatch_sql', 'dbt')(arg_dict)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_incremental_microbatch_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.285889, "supported_languages": null}, "macro.dbt.default__get_incremental_microbatch_sql": {"name": "default__get_incremental_microbatch_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.default__get_incremental_microbatch_sql", "macro_sql": "{% macro default__get_incremental_microbatch_sql(arg_dict) %}\n\n {{ exceptions.raise_not_implemented('microbatch materialization strategy not implemented for adapter ' + adapter.type()) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.286032, "supported_languages": null}, "macro.dbt.get_insert_into_sql": {"name": "get_insert_into_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/strategies.sql", "original_file_path": "macros/materializations/models/incremental/strategies.sql", "unique_id": "macro.dbt.get_insert_into_sql", "macro_sql": "{% macro get_insert_into_sql(target_relation, temp_relation, dest_columns) %}\n\n {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute=\"name\")) -%}\n\n insert into {{ target_relation }} ({{ dest_cols_csv }})\n (\n select {{ dest_cols_csv }}\n from {{ temp_relation }}\n )\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_quoted_csv"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.286274, "supported_languages": null}, "macro.dbt.materialization_incremental_default": {"name": "materialization_incremental_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/incremental.sql", "original_file_path": "macros/materializations/models/incremental/incremental.sql", "unique_id": "macro.dbt.materialization_incremental_default", "macro_sql": "{% materialization incremental, default -%}\n\n -- relations\n {%- set existing_relation = load_cached_relation(this) -%}\n {%- set target_relation = this.incorporate(type='table') -%}\n {%- set temp_relation = make_temp_relation(target_relation)-%}\n {%- set intermediate_relation = make_intermediate_relation(target_relation)-%}\n {%- set backup_relation_type = 'table' if existing_relation is none else existing_relation.type -%}\n {%- set backup_relation = make_backup_relation(target_relation, backup_relation_type) -%}\n\n -- configs\n {%- set unique_key = config.get('unique_key') -%}\n {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%}\n {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%}\n\n -- the temp_ and backup_ relations should not already exist in the database; get_relation\n -- will return None in that case. Otherwise, we get a relation that we can drop\n -- later, before we try to use this name for the current operation. This has to happen before\n -- BEGIN, in a separate transaction\n {%- set preexisting_intermediate_relation = load_cached_relation(intermediate_relation)-%}\n {%- set preexisting_backup_relation = load_cached_relation(backup_relation) -%}\n -- grab current tables grants config for comparision later on\n {% set grant_config = config.get('grants') %}\n {{ drop_relation_if_exists(preexisting_intermediate_relation) }}\n {{ drop_relation_if_exists(preexisting_backup_relation) }}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n {% set to_drop = [] %}\n\n {% if existing_relation is none %}\n {% set build_sql = get_create_table_as_sql(False, target_relation, sql) %}\n {% elif full_refresh_mode %}\n {% set build_sql = get_create_table_as_sql(False, intermediate_relation, sql) %}\n {% set need_swap = true %}\n {% else %}\n {% do run_query(get_create_table_as_sql(True, temp_relation, sql)) %}\n {% set contract_config = config.get('contract') %}\n {% if not contract_config or not contract_config.enforced %}\n {% do adapter.expand_target_column_types(\n from_relation=temp_relation,\n to_relation=target_relation) %}\n {% endif %}\n {#-- Process schema changes. Returns dict of changes if successful. Use source columns for upserting/merging --#}\n {% set dest_columns = process_schema_changes(on_schema_change, temp_relation, existing_relation) %}\n {% if not dest_columns %}\n {% set dest_columns = adapter.get_columns_in_relation(existing_relation) %}\n {% endif %}\n\n {#-- Get the incremental_strategy, the macro to use for the strategy, and build the sql --#}\n {% set incremental_strategy = config.get('incremental_strategy') or 'default' %}\n {% set incremental_predicates = config.get('predicates', none) or config.get('incremental_predicates', none) %}\n {% set strategy_sql_macro_func = adapter.get_incremental_strategy_macro(context, incremental_strategy) %}\n {% set strategy_arg_dict = ({'target_relation': target_relation, 'temp_relation': temp_relation, 'unique_key': unique_key, 'dest_columns': dest_columns, 'incremental_predicates': incremental_predicates }) %}\n {% set build_sql = strategy_sql_macro_func(strategy_arg_dict) %}\n\n {% endif %}\n\n {% call statement(\"main\") %}\n {{ build_sql }}\n {% endcall %}\n\n {% if need_swap %}\n {% do adapter.rename_relation(target_relation, backup_relation) %}\n {% do adapter.rename_relation(intermediate_relation, target_relation) %}\n {% do to_drop.append(backup_relation) %}\n {% endif %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if existing_relation is none or existing_relation.is_view or should_full_refresh() %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {% do adapter.commit() %}\n\n {% for rel in to_drop %}\n {% do adapter.drop_relation(rel) %}\n {% endfor %}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{%- endmaterialization %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.make_temp_relation", "macro.dbt.make_intermediate_relation", "macro.dbt.make_backup_relation", "macro.dbt.should_full_refresh", "macro.dbt.incremental_validate_on_schema_change", "macro.dbt.drop_relation_if_exists", "macro.dbt.run_hooks", "macro.dbt.get_create_table_as_sql", "macro.dbt.run_query", "macro.dbt.process_schema_changes", "macro.dbt.statement", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2906659, "supported_languages": ["sql"]}, "macro.dbt.incremental_validate_on_schema_change": {"name": "incremental_validate_on_schema_change", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.incremental_validate_on_schema_change", "macro_sql": "{% macro incremental_validate_on_schema_change(on_schema_change, default='ignore') %}\n\n {% if on_schema_change not in ['sync_all_columns', 'append_new_columns', 'fail', 'ignore'] %}\n\n {% set log_message = 'Invalid value for on_schema_change (%s) specified. Setting default value of %s.' % (on_schema_change, default) %}\n {% do log(log_message) %}\n\n {{ return(default) }}\n\n {% else %}\n\n {{ return(on_schema_change) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.29529, "supported_languages": null}, "macro.dbt.check_for_schema_changes": {"name": "check_for_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.check_for_schema_changes", "macro_sql": "{% macro check_for_schema_changes(source_relation, target_relation) %}\n\n {% set schema_changed = False %}\n\n {%- set source_columns = adapter.get_columns_in_relation(source_relation) -%}\n {%- set target_columns = adapter.get_columns_in_relation(target_relation) -%}\n {%- set source_not_in_target = diff_columns(source_columns, target_columns) -%}\n {%- set target_not_in_source = diff_columns(target_columns, source_columns) -%}\n\n {% set new_target_types = diff_column_data_types(source_columns, target_columns) %}\n\n {% if source_not_in_target != [] %}\n {% set schema_changed = True %}\n {% elif target_not_in_source != [] or new_target_types != [] %}\n {% set schema_changed = True %}\n {% elif new_target_types != [] %}\n {% set schema_changed = True %}\n {% endif %}\n\n {% set changes_dict = {\n 'schema_changed': schema_changed,\n 'source_not_in_target': source_not_in_target,\n 'target_not_in_source': target_not_in_source,\n 'source_columns': source_columns,\n 'target_columns': target_columns,\n 'new_target_types': new_target_types\n } %}\n\n {% set msg %}\n In {{ target_relation }}:\n Schema changed: {{ schema_changed }}\n Source columns not in target: {{ source_not_in_target }}\n Target columns not in source: {{ target_not_in_source }}\n New column types: {{ new_target_types }}\n {% endset %}\n\n {% do log(msg) %}\n\n {{ return(changes_dict) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.diff_columns", "macro.dbt.diff_column_data_types"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.296282, "supported_languages": null}, "macro.dbt.sync_column_schemas": {"name": "sync_column_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.sync_column_schemas", "macro_sql": "{% macro sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {%- set add_to_target_arr = schema_changes_dict['source_not_in_target'] -%}\n\n {%- if on_schema_change == 'append_new_columns'-%}\n {%- if add_to_target_arr | length > 0 -%}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, none) -%}\n {%- endif -%}\n\n {% elif on_schema_change == 'sync_all_columns' %}\n {%- set remove_from_target_arr = schema_changes_dict['target_not_in_source'] -%}\n {%- set new_target_types = schema_changes_dict['new_target_types'] -%}\n\n {% if add_to_target_arr | length > 0 or remove_from_target_arr | length > 0 %}\n {%- do alter_relation_add_remove_columns(target_relation, add_to_target_arr, remove_from_target_arr) -%}\n {% endif %}\n\n {% if new_target_types != [] %}\n {% for ntt in new_target_types %}\n {% set column_name = ntt['column_name'] %}\n {% set new_type = ntt['new_type'] %}\n {% do alter_column_type(target_relation, column_name, new_type) %}\n {% endfor %}\n {% endif %}\n\n {% endif %}\n\n {% set schema_change_message %}\n In {{ target_relation }}:\n Schema change approach: {{ on_schema_change }}\n Columns added: {{ add_to_target_arr }}\n Columns removed: {{ remove_from_target_arr }}\n Data types changed: {{ new_target_types }}\n {% endset %}\n\n {% do log(schema_change_message) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.alter_relation_add_remove_columns", "macro.dbt.alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.297248, "supported_languages": null}, "macro.dbt.process_schema_changes": {"name": "process_schema_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/incremental/on_schema_change.sql", "original_file_path": "macros/materializations/models/incremental/on_schema_change.sql", "unique_id": "macro.dbt.process_schema_changes", "macro_sql": "{% macro process_schema_changes(on_schema_change, source_relation, target_relation) %}\n\n {% if on_schema_change == 'ignore' %}\n\n {{ return({}) }}\n\n {% else %}\n\n {% set schema_changes_dict = check_for_schema_changes(source_relation, target_relation) %}\n\n {% if schema_changes_dict['schema_changed'] %}\n\n {% if on_schema_change == 'fail' %}\n\n {% set fail_msg %}\n The source and target schemas on this incremental model are out of sync!\n They can be reconciled in several ways:\n - set the `on_schema_change` config to either append_new_columns or sync_all_columns, depending on your situation.\n - Re-run the incremental model with `full_refresh: True` to update the target schema.\n - update the schema manually and re-run the process.\n\n Additional troubleshooting context:\n Source columns not in target: {{ schema_changes_dict['source_not_in_target'] }}\n Target columns not in source: {{ schema_changes_dict['target_not_in_source'] }}\n New column types: {{ schema_changes_dict['new_target_types'] }}\n {% endset %}\n\n {% do exceptions.raise_compiler_error(fail_msg) %}\n\n {# -- unless we ignore, run the sync operation per the config #}\n {% else %}\n\n {% do sync_column_schemas(on_schema_change, target_relation, schema_changes_dict) %}\n\n {% endif %}\n\n {% endif %}\n\n {{ return(schema_changes_dict['source_columns']) }}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.check_for_schema_changes", "macro.dbt.sync_column_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.297937, "supported_languages": null}, "macro.dbt.can_clone_table": {"name": "can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.can_clone_table", "macro_sql": "{% macro can_clone_table() %}\n {{ return(adapter.dispatch('can_clone_table', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__can_clone_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.298149, "supported_languages": null}, "macro.dbt.default__can_clone_table": {"name": "default__can_clone_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/can_clone_table.sql", "original_file_path": "macros/materializations/models/clone/can_clone_table.sql", "unique_id": "macro.dbt.default__can_clone_table", "macro_sql": "{% macro default__can_clone_table() %}\n {{ return(False) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2982469, "supported_languages": null}, "macro.dbt.create_or_replace_clone": {"name": "create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.create_or_replace_clone", "macro_sql": "{% macro create_or_replace_clone(this_relation, defer_relation) %}\n {{ return(adapter.dispatch('create_or_replace_clone', 'dbt')(this_relation, defer_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_or_replace_clone"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.2984939, "supported_languages": null}, "macro.dbt.default__create_or_replace_clone": {"name": "default__create_or_replace_clone", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/create_or_replace_clone.sql", "original_file_path": "macros/materializations/models/clone/create_or_replace_clone.sql", "unique_id": "macro.dbt.default__create_or_replace_clone", "macro_sql": "{% macro default__create_or_replace_clone(this_relation, defer_relation) %}\n create or replace table {{ this_relation.render() }} clone {{ defer_relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.298636, "supported_languages": null}, "macro.dbt.materialization_clone_default": {"name": "materialization_clone_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/models/clone/clone.sql", "original_file_path": "macros/materializations/models/clone/clone.sql", "unique_id": "macro.dbt.materialization_clone_default", "macro_sql": "{%- materialization clone, default -%}\n\n {%- set relations = {'relations': []} -%}\n\n {%- if not defer_relation -%}\n -- nothing to do\n {{ log(\"No relation found in state manifest for \" ~ model.unique_id, info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set existing_relation = load_cached_relation(this) -%}\n\n {%- if existing_relation and not flags.FULL_REFRESH -%}\n -- noop!\n {{ log(\"Relation \" ~ existing_relation ~ \" already exists\", info=True) }}\n {{ return(relations) }}\n {%- endif -%}\n\n {%- set other_existing_relation = load_cached_relation(defer_relation) -%}\n\n -- If this is a database that can do zero-copy cloning of tables, and the other relation is a table, then this will be a table\n -- Otherwise, this will be a view\n\n {% set can_clone_table = can_clone_table() %}\n\n {%- if other_existing_relation and other_existing_relation.type == 'table' and can_clone_table -%}\n\n {%- set target_relation = this.incorporate(type='table') -%}\n {% if existing_relation is not none and not existing_relation.is_table %}\n {{ log(\"Dropping relation \" ~ existing_relation.render() ~ \" because it is of type \" ~ existing_relation.type) }}\n {{ drop_relation_if_exists(existing_relation) }}\n {% endif %}\n\n -- as a general rule, data platforms that can clone tables can also do atomic 'create or replace'\n {% call statement('main') %}\n {% if target_relation and defer_relation and target_relation == defer_relation %}\n {{ log(\"Target relation and defer relation are the same, skipping clone for relation: \" ~ target_relation.render()) }}\n {% else %}\n {{ create_or_replace_clone(target_relation, defer_relation) }}\n {% endif %}\n\n {% endcall %}\n\n {% set should_revoke = should_revoke(existing_relation, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n {% do persist_docs(target_relation, model) %}\n\n {{ return({'relations': [target_relation]}) }}\n\n {%- else -%}\n\n {%- set target_relation = this.incorporate(type='view') -%}\n\n -- reuse the view materialization\n -- TODO: support actual dispatch for materialization macros\n -- Tracking ticket: https://github.com/dbt-labs/dbt-core/issues/7799\n {% set search_name = \"materialization_view_\" ~ adapter.type() %}\n {% if not search_name in context %}\n {% set search_name = \"materialization_view_default\" %}\n {% endif %}\n {% set materialization_macro = context[search_name] %}\n {% set relations = materialization_macro() %}\n {{ return(relations) }}\n\n {%- endif -%}\n\n{%- endmaterialization -%}", "depends_on": {"macros": ["macro.dbt.load_cached_relation", "macro.dbt.can_clone_table", "macro.dbt.drop_relation_if_exists", "macro.dbt.statement", "macro.dbt.create_or_replace_clone", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3019578, "supported_languages": ["sql"]}, "macro.dbt.materialization_seed_default": {"name": "materialization_seed_default", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/seed.sql", "original_file_path": "macros/materializations/seeds/seed.sql", "unique_id": "macro.dbt.materialization_seed_default", "macro_sql": "{% materialization seed, default %}\n\n {%- set identifier = model['alias'] -%}\n {%- set full_refresh_mode = (should_full_refresh()) -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n\n {%- set exists_as_table = (old_relation is not none and old_relation.is_table) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set grant_config = config.get('grants') -%}\n {%- set agate_table = load_agate_table() -%}\n -- grab current tables grants config for comparison later on\n\n {%- do store_result('agate_table', response='OK', agate_table=agate_table) -%}\n\n {{ run_hooks(pre_hooks, inside_transaction=False) }}\n\n -- `BEGIN` happens here:\n {{ run_hooks(pre_hooks, inside_transaction=True) }}\n\n -- build model\n {% set create_table_sql = \"\" %}\n {% if exists_as_view %}\n {{ exceptions.raise_compiler_error(\"Cannot seed to '{}', it is a view\".format(old_relation.render())) }}\n {% elif exists_as_table %}\n {% set create_table_sql = reset_csv_table(model, full_refresh_mode, old_relation, agate_table) %}\n {% else %}\n {% set create_table_sql = create_csv_table(model, agate_table) %}\n {% endif %}\n\n {% set code = 'CREATE' if full_refresh_mode else 'INSERT' %}\n {% set rows_affected = (agate_table.rows | length) %}\n {% set sql = load_csv_rows(model, agate_table) %}\n\n {% call noop_statement('main', code ~ ' ' ~ rows_affected, code, rows_affected) %}\n {{ get_csv_sql(create_table_sql, sql) }};\n {% endcall %}\n\n {% set target_relation = this.incorporate(type='table') %}\n\n {% set should_revoke = should_revoke(old_relation, full_refresh_mode) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {% do persist_docs(target_relation, model) %}\n\n {% if full_refresh_mode or not exists_as_table %}\n {% do create_indexes(target_relation) %}\n {% endif %}\n\n {{ run_hooks(post_hooks, inside_transaction=True) }}\n\n -- `COMMIT` happens here\n {{ adapter.commit() }}\n\n {{ run_hooks(post_hooks, inside_transaction=False) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmaterialization %}", "depends_on": {"macros": ["macro.dbt.should_full_refresh", "macro.dbt.run_hooks", "macro.dbt.reset_csv_table", "macro.dbt.create_csv_table", "macro.dbt.load_csv_rows", "macro.dbt.noop_statement", "macro.dbt.get_csv_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants", "macro.dbt.persist_docs", "macro.dbt.create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.304974, "supported_languages": ["sql"]}, "macro.dbt.create_csv_table": {"name": "create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.create_csv_table", "macro_sql": "{% macro create_csv_table(model, agate_table) -%}\n {{ adapter.dispatch('create_csv_table', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.309212, "supported_languages": null}, "macro.dbt.default__create_csv_table": {"name": "default__create_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__create_csv_table", "macro_sql": "{% macro default__create_csv_table(model, agate_table) %}\n {%- set column_override = model['config'].get('column_types', {}) -%}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n\n {% set sql %}\n create table {{ this.render() }} (\n {%- for col_name in agate_table.column_names -%}\n {%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}\n {%- set type = column_override.get(col_name, inferred_type) -%}\n {%- set column_name = (col_name | string) -%}\n {{ adapter.quote_seed_column(column_name, quote_seed_column) }} {{ type }} {%- if not loop.last -%}, {%- endif -%}\n {%- endfor -%}\n )\n {% endset %}\n\n {% call statement('_') -%}\n {{ sql }}\n {%- endcall %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3099499, "supported_languages": null}, "macro.dbt.reset_csv_table": {"name": "reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.reset_csv_table", "macro_sql": "{% macro reset_csv_table(model, full_refresh, old_relation, agate_table) -%}\n {{ adapter.dispatch('reset_csv_table', 'dbt')(model, full_refresh, old_relation, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__reset_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.310153, "supported_languages": null}, "macro.dbt.default__reset_csv_table": {"name": "default__reset_csv_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__reset_csv_table", "macro_sql": "{% macro default__reset_csv_table(model, full_refresh, old_relation, agate_table) %}\n {% set sql = \"\" %}\n {% if full_refresh %}\n {{ adapter.drop_relation(old_relation) }}\n {% set sql = create_csv_table(model, agate_table) %}\n {% else %}\n {{ adapter.truncate_relation(old_relation) }}\n {% set sql = \"truncate table \" ~ old_relation.render() %}\n {% endif %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_csv_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.31055, "supported_languages": null}, "macro.dbt.get_csv_sql": {"name": "get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_csv_sql", "macro_sql": "{% macro get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ adapter.dispatch('get_csv_sql', 'dbt')(create_or_truncate_sql, insert_sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_csv_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3107111, "supported_languages": null}, "macro.dbt.default__get_csv_sql": {"name": "default__get_csv_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_csv_sql", "macro_sql": "{% macro default__get_csv_sql(create_or_truncate_sql, insert_sql) %}\n {{ create_or_truncate_sql }};\n -- dbt seed --\n {{ insert_sql }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3108218, "supported_languages": null}, "macro.dbt.get_binding_char": {"name": "get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_binding_char", "macro_sql": "{% macro get_binding_char() -%}\n {{ adapter.dispatch('get_binding_char', 'dbt')() }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.310943, "supported_languages": null}, "macro.dbt.default__get_binding_char": {"name": "default__get_binding_char", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_binding_char", "macro_sql": "{% macro default__get_binding_char() %}\n {{ return('%s') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3112772, "supported_languages": null}, "macro.dbt.get_batch_size": {"name": "get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_batch_size", "macro_sql": "{% macro get_batch_size() -%}\n {{ return(adapter.dispatch('get_batch_size', 'dbt')()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_batch_size"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.311511, "supported_languages": null}, "macro.dbt.default__get_batch_size": {"name": "default__get_batch_size", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__get_batch_size", "macro_sql": "{% macro default__get_batch_size() %}\n {{ return(10000) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.311636, "supported_languages": null}, "macro.dbt.get_seed_column_quoted_csv": {"name": "get_seed_column_quoted_csv", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.get_seed_column_quoted_csv", "macro_sql": "{% macro get_seed_column_quoted_csv(model, column_names) %}\n {%- set quote_seed_column = model['config'].get('quote_columns', None) -%}\n {% set quoted = [] %}\n {% for col in column_names -%}\n {%- do quoted.append(adapter.quote_seed_column(col, quote_seed_column)) -%}\n {%- endfor %}\n\n {%- set dest_cols_csv = quoted | join(', ') -%}\n {{ return(dest_cols_csv) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3120909, "supported_languages": null}, "macro.dbt.load_csv_rows": {"name": "load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.load_csv_rows", "macro_sql": "{% macro load_csv_rows(model, agate_table) -%}\n {{ adapter.dispatch('load_csv_rows', 'dbt')(model, agate_table) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__load_csv_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3122659, "supported_languages": null}, "macro.dbt.default__load_csv_rows": {"name": "default__load_csv_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/materializations/seeds/helpers.sql", "original_file_path": "macros/materializations/seeds/helpers.sql", "unique_id": "macro.dbt.default__load_csv_rows", "macro_sql": "{% macro default__load_csv_rows(model, agate_table) %}\n\n {% set batch_size = get_batch_size() %}\n\n {% set cols_sql = get_seed_column_quoted_csv(model, agate_table.column_names) %}\n {% set bindings = [] %}\n\n {% set statements = [] %}\n\n {% for chunk in agate_table.rows | batch(batch_size) %}\n {% set bindings = [] %}\n\n {% for row in chunk %}\n {% do bindings.extend(row) %}\n {% endfor %}\n\n {% set sql %}\n insert into {{ this.render() }} ({{ cols_sql }}) values\n {% for row in chunk -%}\n ({%- for column in agate_table.column_names -%}\n {{ get_binding_char() }}\n {%- if not loop.last%},{%- endif %}\n {%- endfor -%})\n {%- if not loop.last%},{%- endif %}\n {%- endfor %}\n {% endset %}\n\n {% do adapter.add_query(sql, bindings=bindings, abridge_sql_log=True) %}\n\n {% if loop.index0 == 0 %}\n {% do statements.append(sql) %}\n {% endif %}\n {% endfor %}\n\n {# Return SQL so we can render it out into the compiled files #}\n {{ return(statements[0]) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_batch_size", "macro.dbt.get_seed_column_quoted_csv", "macro.dbt.get_binding_char"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.31349, "supported_languages": null}, "macro.dbt.generate_alias_name": {"name": "generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.generate_alias_name", "macro_sql": "{% macro generate_alias_name(custom_alias_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_alias_name', 'dbt')(custom_alias_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_alias_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.313966, "supported_languages": null}, "macro.dbt.default__generate_alias_name": {"name": "default__generate_alias_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_alias.sql", "original_file_path": "macros/get_custom_name/get_custom_alias.sql", "unique_id": "macro.dbt.default__generate_alias_name", "macro_sql": "{% macro default__generate_alias_name(custom_alias_name=none, node=none) -%}\n\n {%- if custom_alias_name -%}\n\n {{ custom_alias_name | trim }}\n\n {%- elif node.version -%}\n\n {{ return(node.name ~ \"_v\" ~ (node.version | replace(\".\", \"_\"))) }}\n\n {%- else -%}\n\n {{ node.name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.314305, "supported_languages": null}, "macro.dbt.generate_schema_name": {"name": "generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name", "macro_sql": "{% macro generate_schema_name(custom_schema_name=none, node=none) -%}\n {{ return(adapter.dispatch('generate_schema_name', 'dbt')(custom_schema_name, node)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.314806, "supported_languages": null}, "macro.dbt.default__generate_schema_name": {"name": "default__generate_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.default__generate_schema_name", "macro_sql": "{% macro default__generate_schema_name(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if custom_schema_name is none -%}\n\n {{ default_schema }}\n\n {%- else -%}\n\n {{ default_schema }}_{{ custom_schema_name | trim }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.315072, "supported_languages": null}, "macro.dbt.generate_schema_name_for_env": {"name": "generate_schema_name_for_env", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_schema.sql", "original_file_path": "macros/get_custom_name/get_custom_schema.sql", "unique_id": "macro.dbt.generate_schema_name_for_env", "macro_sql": "{% macro generate_schema_name_for_env(custom_schema_name, node) -%}\n\n {%- set default_schema = target.schema -%}\n {%- if target.name == 'prod' and custom_schema_name is not none -%}\n\n {{ custom_schema_name | trim }}\n\n {%- else -%}\n\n {{ default_schema }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.315336, "supported_languages": null}, "macro.dbt.generate_database_name": {"name": "generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.generate_database_name", "macro_sql": "{% macro generate_database_name(custom_database_name=none, node=none) -%}\n {% do return(adapter.dispatch('generate_database_name', 'dbt')(custom_database_name, node)) %}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_database_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.31571, "supported_languages": null}, "macro.dbt.default__generate_database_name": {"name": "default__generate_database_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/get_custom_name/get_custom_database.sql", "original_file_path": "macros/get_custom_name/get_custom_database.sql", "unique_id": "macro.dbt.default__generate_database_name", "macro_sql": "{% macro default__generate_database_name(custom_database_name=none, node=none) -%}\n {%- set default_database = target.database -%}\n {%- if custom_database_name is none -%}\n\n {{ default_database }}\n\n {%- else -%}\n\n {{ custom_database_name }}\n\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3159559, "supported_languages": null}, "macro.dbt.get_drop_sql": {"name": "get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.get_drop_sql", "macro_sql": "{%- macro get_drop_sql(relation) -%}\n {{- log('Applying DROP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.316724, "supported_languages": null}, "macro.dbt.default__get_drop_sql": {"name": "default__get_drop_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__get_drop_sql", "macro_sql": "{%- macro default__get_drop_sql(relation) -%}\n\n {%- if relation.is_view -%}\n {{ drop_view(relation) }}\n\n {%- elif relation.is_table -%}\n {{ drop_table(relation) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ drop_materialized_view(relation) }}\n\n {%- else -%}\n drop {{ relation.type }} if exists {{ relation.render() }} cascade\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.drop_view", "macro.dbt.drop_table", "macro.dbt.drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3170419, "supported_languages": null}, "macro.dbt.drop_relation": {"name": "drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation", "macro_sql": "{% macro drop_relation(relation) -%}\n {{ return(adapter.dispatch('drop_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.317197, "supported_languages": null}, "macro.dbt.default__drop_relation": {"name": "default__drop_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.default__drop_relation", "macro_sql": "{% macro default__drop_relation(relation) -%}\n {% call statement('drop_relation', auto_begin=False) -%}\n {{ get_drop_sql(relation) }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.317363, "supported_languages": null}, "macro.dbt.drop_relation_if_exists": {"name": "drop_relation_if_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop.sql", "original_file_path": "macros/relations/drop.sql", "unique_id": "macro.dbt.drop_relation_if_exists", "macro_sql": "{% macro drop_relation_if_exists(relation) %}\n {% if relation is not none %}\n {{ adapter.drop_relation(relation) }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.317525, "supported_languages": null}, "macro.dbt.get_replace_sql": {"name": "get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.get_replace_sql", "macro_sql": "{% macro get_replace_sql(existing_relation, target_relation, sql) %}\n {{- log('Applying REPLACE to: ' ~ existing_relation) -}}\n {{- adapter.dispatch('get_replace_sql', 'dbt')(existing_relation, target_relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.318235, "supported_languages": null}, "macro.dbt.default__get_replace_sql": {"name": "default__get_replace_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/replace.sql", "original_file_path": "macros/relations/replace.sql", "unique_id": "macro.dbt.default__get_replace_sql", "macro_sql": "{% macro default__get_replace_sql(existing_relation, target_relation, sql) %}\n\n {# /* use a create or replace statement if possible */ #}\n\n {% set is_replaceable = existing_relation.type == target_relation_type and existing_relation.can_be_replaced %}\n\n {% if is_replaceable and existing_relation.is_view %}\n {{ get_replace_view_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_table %}\n {{ get_replace_table_sql(target_relation, sql) }}\n\n {% elif is_replaceable and existing_relation.is_materialized_view %}\n {{ get_replace_materialized_view_sql(target_relation, sql) }}\n\n {# /* a create or replace statement is not possible, so try to stage and/or backup to be safe */ #}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one using a backup */ #}\n {%- elif target_relation.can_be_renamed and existing_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* create target_relation as an intermediate relation, then swap it out with the existing one without using a backup */ #}\n {%- elif target_relation.can_be_renamed -%}\n {{ get_create_intermediate_sql(target_relation, sql) }};\n {{ get_drop_sql(existing_relation) }};\n {{ get_rename_intermediate_sql(target_relation) }}\n\n {# /* create target_relation in place by first backing up the existing relation */ #}\n {%- elif existing_relation.can_be_renamed -%}\n {{ get_create_backup_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }};\n {{ get_drop_backup_sql(existing_relation) }}\n\n {# /* no renaming is allowed, so just drop and create */ #}\n {%- else -%}\n {{ get_drop_sql(existing_relation) }};\n {{ get_create_sql(target_relation, sql) }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_replace_view_sql", "macro.dbt.get_replace_table_sql", "macro.dbt.get_replace_materialized_view_sql", "macro.dbt.get_create_intermediate_sql", "macro.dbt.get_create_backup_sql", "macro.dbt.get_rename_intermediate_sql", "macro.dbt.get_drop_backup_sql", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.319443, "supported_languages": null}, "macro.dbt.get_create_intermediate_sql": {"name": "get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.get_create_intermediate_sql", "macro_sql": "{%- macro get_create_intermediate_sql(relation, sql) -%}\n {{- log('Applying CREATE INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_intermediate_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.319763, "supported_languages": null}, "macro.dbt.default__get_create_intermediate_sql": {"name": "default__get_create_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_intermediate.sql", "original_file_path": "macros/relations/create_intermediate.sql", "unique_id": "macro.dbt.default__get_create_intermediate_sql", "macro_sql": "{%- macro default__get_create_intermediate_sql(relation, sql) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n -- drop any pre-existing intermediate\n {{ get_drop_sql(intermediate_relation) }};\n\n {{ get_create_sql(intermediate_relation, sql) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.319972, "supported_languages": null}, "macro.dbt.drop_schema_named": {"name": "drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.drop_schema_named", "macro_sql": "{% macro drop_schema_named(schema_name) %}\n {{ return(adapter.dispatch('drop_schema_named', 'dbt') (schema_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__drop_schema_named"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3201962, "supported_languages": null}, "macro.dbt.default__drop_schema_named": {"name": "default__drop_schema_named", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/schema.sql", "original_file_path": "macros/relations/schema.sql", "unique_id": "macro.dbt.default__drop_schema_named", "macro_sql": "{% macro default__drop_schema_named(schema_name) %}\n {% set schema_relation = api.Relation.create(schema=schema_name) %}\n {{ adapter.drop_schema(schema_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.320367, "supported_languages": null}, "macro.dbt.get_drop_backup_sql": {"name": "get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.get_drop_backup_sql", "macro_sql": "{%- macro get_drop_backup_sql(relation) -%}\n {{- log('Applying DROP BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_drop_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_drop_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.320631, "supported_languages": null}, "macro.dbt.default__get_drop_backup_sql": {"name": "default__get_drop_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/drop_backup.sql", "original_file_path": "macros/relations/drop_backup.sql", "unique_id": "macro.dbt.default__get_drop_backup_sql", "macro_sql": "{%- macro default__get_drop_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n {{ get_drop_sql(backup_relation) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3208032, "supported_languages": null}, "macro.dbt.get_rename_sql": {"name": "get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.get_rename_sql", "macro_sql": "{%- macro get_rename_sql(relation, new_name) -%}\n {{- log('Applying RENAME to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_sql', 'dbt')(relation, new_name) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3216288, "supported_languages": null}, "macro.dbt.default__get_rename_sql": {"name": "default__get_rename_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__get_rename_sql", "macro_sql": "{%- macro default__get_rename_sql(relation, new_name) -%}\n\n {%- if relation.is_view -%}\n {{ get_rename_view_sql(relation, new_name) }}\n\n {%- elif relation.is_table -%}\n {{ get_rename_table_sql(relation, new_name) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_rename_materialized_view_sql(relation, new_name) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_rename_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.get_rename_view_sql", "macro.dbt.get_rename_table_sql", "macro.dbt.get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.322038, "supported_languages": null}, "macro.dbt.rename_relation": {"name": "rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.rename_relation", "macro_sql": "{% macro rename_relation(from_relation, to_relation) -%}\n {{ return(adapter.dispatch('rename_relation', 'dbt')(from_relation, to_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__rename_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.322273, "supported_languages": null}, "macro.dbt.default__rename_relation": {"name": "default__rename_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename.sql", "original_file_path": "macros/relations/rename.sql", "unique_id": "macro.dbt.default__rename_relation", "macro_sql": "{% macro default__rename_relation(from_relation, to_relation) -%}\n {% set target_name = adapter.quote_as_configured(to_relation.identifier, 'identifier') %}\n {% call statement('rename_relation') -%}\n alter table {{ from_relation.render() }} rename to {{ target_name }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.322569, "supported_languages": null}, "macro.dbt.get_create_backup_sql": {"name": "get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.get_create_backup_sql", "macro_sql": "{%- macro get_create_backup_sql(relation) -%}\n {{- log('Applying CREATE BACKUP to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_backup_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_backup_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.322904, "supported_languages": null}, "macro.dbt.default__get_create_backup_sql": {"name": "default__get_create_backup_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create_backup.sql", "original_file_path": "macros/relations/create_backup.sql", "unique_id": "macro.dbt.default__get_create_backup_sql", "macro_sql": "{%- macro default__get_create_backup_sql(relation) -%}\n\n -- get the standard backup name\n {% set backup_relation = make_backup_relation(relation, relation.type) %}\n\n -- drop any pre-existing backup\n {{ get_drop_sql(backup_relation) }};\n\n {{ get_rename_sql(relation, backup_relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_backup_relation", "macro.dbt.get_drop_sql", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.323145, "supported_languages": null}, "macro.dbt.get_create_sql": {"name": "get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.get_create_sql", "macro_sql": "{%- macro get_create_sql(relation, sql) -%}\n {{- log('Applying CREATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_create_sql', 'dbt')(relation, sql) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_create_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3235588, "supported_languages": null}, "macro.dbt.default__get_create_sql": {"name": "default__get_create_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/create.sql", "original_file_path": "macros/relations/create.sql", "unique_id": "macro.dbt.default__get_create_sql", "macro_sql": "{%- macro default__get_create_sql(relation, sql) -%}\n\n {%- if relation.is_view -%}\n {{ get_create_view_as_sql(relation, sql) }}\n\n {%- elif relation.is_table -%}\n {{ get_create_table_as_sql(False, relation, sql) }}\n\n {%- elif relation.is_materialized_view -%}\n {{ get_create_materialized_view_as_sql(relation, sql) }}\n\n {%- else -%}\n {{- exceptions.raise_compiler_error(\"`get_create_sql` has not been implemented for: \" ~ relation.type ) -}}\n\n {%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.get_create_view_as_sql", "macro.dbt.get_create_table_as_sql", "macro.dbt.get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.32393, "supported_languages": null}, "macro.dbt.get_rename_intermediate_sql": {"name": "get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.get_rename_intermediate_sql", "macro_sql": "{%- macro get_rename_intermediate_sql(relation) -%}\n {{- log('Applying RENAME INTERMEDIATE to: ' ~ relation) -}}\n {{- adapter.dispatch('get_rename_intermediate_sql', 'dbt')(relation) -}}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": ["macro.dbt.default__get_rename_intermediate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.324224, "supported_languages": null}, "macro.dbt.default__get_rename_intermediate_sql": {"name": "default__get_rename_intermediate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/rename_intermediate.sql", "original_file_path": "macros/relations/rename_intermediate.sql", "unique_id": "macro.dbt.default__get_rename_intermediate_sql", "macro_sql": "{%- macro default__get_rename_intermediate_sql(relation) -%}\n\n -- get the standard intermediate name\n {% set intermediate_relation = make_intermediate_relation(relation) %}\n\n {{ get_rename_sql(intermediate_relation, relation.identifier) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.make_intermediate_relation", "macro.dbt.get_rename_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.324404, "supported_languages": null}, "macro.dbt.drop_materialized_view": {"name": "drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.drop_materialized_view", "macro_sql": "{% macro drop_materialized_view(relation) -%}\n {{- adapter.dispatch('drop_materialized_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.324631, "supported_languages": null}, "macro.dbt.default__drop_materialized_view": {"name": "default__drop_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/drop.sql", "original_file_path": "macros/relations/materialized_view/drop.sql", "unique_id": "macro.dbt.default__drop_materialized_view", "macro_sql": "{% macro default__drop_materialized_view(relation) -%}\n drop materialized view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.324749, "supported_languages": null}, "macro.dbt.get_replace_materialized_view_sql": {"name": "get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.get_replace_materialized_view_sql", "macro_sql": "{% macro get_replace_materialized_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_materialized_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_replace_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3249888, "supported_languages": null}, "macro.dbt.default__get_replace_materialized_view_sql": {"name": "default__get_replace_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/replace.sql", "original_file_path": "macros/relations/materialized_view/replace.sql", "unique_id": "macro.dbt.default__get_replace_materialized_view_sql", "macro_sql": "{% macro default__get_replace_materialized_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.325224, "supported_languages": null}, "macro.dbt.refresh_materialized_view": {"name": "refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.refresh_materialized_view", "macro_sql": "{% macro refresh_materialized_view(relation) %}\n {{- log('Applying REFRESH to: ' ~ relation) -}}\n {{- adapter.dispatch('refresh_materialized_view', 'dbt')(relation) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__refresh_materialized_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.325521, "supported_languages": null}, "macro.dbt.default__refresh_materialized_view": {"name": "default__refresh_materialized_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/refresh.sql", "original_file_path": "macros/relations/materialized_view/refresh.sql", "unique_id": "macro.dbt.default__refresh_materialized_view", "macro_sql": "{% macro default__refresh_materialized_view(relation) %}\n {{ exceptions.raise_compiler_error(\"`refresh_materialized_view` has not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3256729, "supported_languages": null}, "macro.dbt.get_rename_materialized_view_sql": {"name": "get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.get_rename_materialized_view_sql", "macro_sql": "{% macro get_rename_materialized_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_materialized_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_materialized_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3259149, "supported_languages": null}, "macro.dbt.default__get_rename_materialized_view_sql": {"name": "default__get_rename_materialized_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/rename.sql", "original_file_path": "macros/relations/materialized_view/rename.sql", "unique_id": "macro.dbt.default__get_rename_materialized_view_sql", "macro_sql": "{% macro default__get_rename_materialized_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_materialized_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3260422, "supported_languages": null}, "macro.dbt.get_alter_materialized_view_as_sql": {"name": "get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_alter_materialized_view_as_sql", "macro_sql": "{% macro get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{- log('Applying ALTER to: ' ~ relation) -}}\n {{- adapter.dispatch('get_alter_materialized_view_as_sql', 'dbt')(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n ) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_alter_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3265622, "supported_languages": null}, "macro.dbt.default__get_alter_materialized_view_as_sql": {"name": "default__get_alter_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_alter_materialized_view_as_sql", "macro_sql": "{% macro default__get_alter_materialized_view_as_sql(\n relation,\n configuration_changes,\n sql,\n existing_relation,\n backup_relation,\n intermediate_relation\n) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.326715, "supported_languages": null}, "macro.dbt.get_materialized_view_configuration_changes": {"name": "get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.get_materialized_view_configuration_changes", "macro_sql": "{% macro get_materialized_view_configuration_changes(existing_relation, new_config) %}\n /* {#\n It's recommended that configuration changes be formatted as follows:\n {\"<change_category>\": [{\"action\": \"<name>\", \"context\": ...}]}\n\n For example:\n {\n \"indexes\": [\n {\"action\": \"drop\", \"context\": \"index_abc\"},\n {\"action\": \"create\", \"context\": {\"columns\": [\"column_1\", \"column_2\"], \"type\": \"hash\", \"unique\": True}},\n ],\n }\n\n Either way, `get_materialized_view_configuration_changes` needs to align with `get_alter_materialized_view_as_sql`.\n #} */\n {{- log('Determining configuration changes on: ' ~ existing_relation) -}}\n {%- do return(adapter.dispatch('get_materialized_view_configuration_changes', 'dbt')(existing_relation, new_config)) -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_materialized_view_configuration_changes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.326951, "supported_languages": null}, "macro.dbt.default__get_materialized_view_configuration_changes": {"name": "default__get_materialized_view_configuration_changes", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/alter.sql", "original_file_path": "macros/relations/materialized_view/alter.sql", "unique_id": "macro.dbt.default__get_materialized_view_configuration_changes", "macro_sql": "{% macro default__get_materialized_view_configuration_changes(existing_relation, new_config) %}\n {{ exceptions.raise_compiler_error(\"Materialized views have not been implemented for this adapter.\") }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.327072, "supported_languages": null}, "macro.dbt.get_create_materialized_view_as_sql": {"name": "get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.get_create_materialized_view_as_sql", "macro_sql": "{% macro get_create_materialized_view_as_sql(relation, sql) -%}\n {{- adapter.dispatch('get_create_materialized_view_as_sql', 'dbt')(relation, sql) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_materialized_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.327302, "supported_languages": null}, "macro.dbt.default__get_create_materialized_view_as_sql": {"name": "default__get_create_materialized_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/materialized_view/create.sql", "original_file_path": "macros/relations/materialized_view/create.sql", "unique_id": "macro.dbt.default__get_create_materialized_view_as_sql", "macro_sql": "{% macro default__get_create_materialized_view_as_sql(relation, sql) -%}\n {{ exceptions.raise_compiler_error(\n \"`get_create_materialized_view_as_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.327421, "supported_languages": null}, "macro.dbt.get_table_columns_and_constraints": {"name": "get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_table_columns_and_constraints", "macro_sql": "{%- macro get_table_columns_and_constraints() -%}\n {{ adapter.dispatch('get_table_columns_and_constraints', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.328275, "supported_languages": null}, "macro.dbt.default__get_table_columns_and_constraints": {"name": "default__get_table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_table_columns_and_constraints", "macro_sql": "{% macro default__get_table_columns_and_constraints() -%}\n {{ return(table_columns_and_constraints()) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.table_columns_and_constraints"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.328376, "supported_languages": null}, "macro.dbt.table_columns_and_constraints": {"name": "table_columns_and_constraints", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.table_columns_and_constraints", "macro_sql": "{% macro table_columns_and_constraints() %}\n {# loop through user_provided_columns to create DDL with data types and constraints #}\n {%- set raw_column_constraints = adapter.render_raw_columns_constraints(raw_columns=model['columns']) -%}\n {%- set raw_model_constraints = adapter.render_raw_model_constraints(raw_constraints=model['constraints']) -%}\n (\n {% for c in raw_column_constraints -%}\n {{ c }}{{ \",\" if not loop.last or raw_model_constraints }}\n {% endfor %}\n {% for c in raw_model_constraints -%}\n {{ c }}{{ \",\" if not loop.last }}\n {% endfor -%}\n )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.328811, "supported_languages": null}, "macro.dbt.get_assert_columns_equivalent": {"name": "get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.get_assert_columns_equivalent", "macro_sql": "\n\n{%- macro get_assert_columns_equivalent(sql) -%}\n {{ adapter.dispatch('get_assert_columns_equivalent', 'dbt')(sql) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.328953, "supported_languages": null}, "macro.dbt.default__get_assert_columns_equivalent": {"name": "default__get_assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__get_assert_columns_equivalent", "macro_sql": "{% macro default__get_assert_columns_equivalent(sql) -%}\n {{ return(assert_columns_equivalent(sql)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.329068, "supported_languages": null}, "macro.dbt.assert_columns_equivalent": {"name": "assert_columns_equivalent", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.assert_columns_equivalent", "macro_sql": "{% macro assert_columns_equivalent(sql) %}\n\n {#-- First ensure the user has defined 'columns' in yaml specification --#}\n {%- set user_defined_columns = model['columns'] -%}\n {%- if not user_defined_columns -%}\n {{ exceptions.raise_contract_error([], []) }}\n {%- endif -%}\n\n {#-- Obtain the column schema provided by sql file. #}\n {%- set sql_file_provided_columns = get_column_schema_from_query(sql, config.get('sql_header', none)) -%}\n {#--Obtain the column schema provided by the schema file by generating an 'empty schema' query from the model's columns. #}\n {%- set schema_file_provided_columns = get_column_schema_from_query(get_empty_schema_sql(user_defined_columns)) -%}\n\n {#-- create dictionaries with name and formatted data type and strings for exception #}\n {%- set sql_columns = format_columns(sql_file_provided_columns) -%}\n {%- set yaml_columns = format_columns(schema_file_provided_columns) -%}\n\n {%- if sql_columns|length != yaml_columns|length -%}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n\n {%- for sql_col in sql_columns -%}\n {%- set yaml_col = [] -%}\n {%- for this_col in yaml_columns -%}\n {%- if this_col['name'] == sql_col['name'] -%}\n {%- do yaml_col.append(this_col) -%}\n {%- break -%}\n {%- endif -%}\n {%- endfor -%}\n {%- if not yaml_col -%}\n {#-- Column with name not found in yaml #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- if sql_col['formatted'] != yaml_col[0]['formatted'] -%}\n {#-- Column data types don't match #}\n {%- do exceptions.raise_contract_error(yaml_columns, sql_columns) -%}\n {%- endif -%}\n {%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_column_schema_from_query", "macro.dbt.get_empty_schema_sql", "macro.dbt.format_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.330177, "supported_languages": null}, "macro.dbt.format_columns": {"name": "format_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.format_columns", "macro_sql": "{% macro format_columns(columns) %}\n {% set formatted_columns = [] %}\n {% for column in columns %}\n {%- set formatted_column = adapter.dispatch('format_column', 'dbt')(column) -%}\n {%- do formatted_columns.append(formatted_column) -%}\n {% endfor %}\n {{ return(formatted_columns) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__format_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.330485, "supported_languages": null}, "macro.dbt.default__format_column": {"name": "default__format_column", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/column/columns_spec_ddl.sql", "original_file_path": "macros/relations/column/columns_spec_ddl.sql", "unique_id": "macro.dbt.default__format_column", "macro_sql": "{% macro default__format_column(column) -%}\n {% set data_type = column.dtype %}\n {% set formatted = column.column.lower() ~ \" \" ~ data_type %}\n {{ return({'name': column.name, 'data_type': data_type, 'formatted': formatted}) }}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.330765, "supported_languages": null}, "macro.dbt.drop_table": {"name": "drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.drop_table", "macro_sql": "{% macro drop_table(relation) -%}\n {{- adapter.dispatch('drop_table', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.330977, "supported_languages": null}, "macro.dbt.default__drop_table": {"name": "default__drop_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/drop.sql", "original_file_path": "macros/relations/table/drop.sql", "unique_id": "macro.dbt.default__drop_table", "macro_sql": "{% macro default__drop_table(relation) -%}\n drop table if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.331161, "supported_languages": null}, "macro.dbt.get_replace_table_sql": {"name": "get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.get_replace_table_sql", "macro_sql": "{% macro get_replace_table_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_table_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.331497, "supported_languages": null}, "macro.dbt.default__get_replace_table_sql": {"name": "default__get_replace_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/replace.sql", "original_file_path": "macros/relations/table/replace.sql", "unique_id": "macro.dbt.default__get_replace_table_sql", "macro_sql": "{% macro default__get_replace_table_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.331624, "supported_languages": null}, "macro.dbt.get_rename_table_sql": {"name": "get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.get_rename_table_sql", "macro_sql": "{% macro get_rename_table_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_table_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_table_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3318589, "supported_languages": null}, "macro.dbt.default__get_rename_table_sql": {"name": "default__get_rename_table_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/rename.sql", "original_file_path": "macros/relations/table/rename.sql", "unique_id": "macro.dbt.default__get_rename_table_sql", "macro_sql": "{% macro default__get_rename_table_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_table_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.33198, "supported_languages": null}, "macro.dbt.get_create_table_as_sql": {"name": "get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_create_table_as_sql", "macro_sql": "{% macro get_create_table_as_sql(temporary, relation, sql) -%}\n {{ adapter.dispatch('get_create_table_as_sql', 'dbt')(temporary, relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_table_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3327072, "supported_languages": null}, "macro.dbt.default__get_create_table_as_sql": {"name": "default__get_create_table_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_create_table_as_sql", "macro_sql": "{% macro default__get_create_table_as_sql(temporary, relation, sql) -%}\n {{ return(create_table_as(temporary, relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.332862, "supported_languages": null}, "macro.dbt.create_table_as": {"name": "create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.create_table_as", "macro_sql": "{% macro create_table_as(temporary, relation, compiled_code, language='sql') -%}\n {# backward compatibility for create_table_as that does not support language #}\n {% if language == \"sql\" %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code)}}\n {% else %}\n {{ adapter.dispatch('create_table_as', 'dbt')(temporary, relation, compiled_code, language) }}\n {% endif %}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_table_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3332102, "supported_languages": null}, "macro.dbt.default__create_table_as": {"name": "default__create_table_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__create_table_as", "macro_sql": "{% macro default__create_table_as(temporary, relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n\n create {% if temporary: -%}temporary{%- endif %} table\n {{ relation.include(database=(not temporary), schema=(not temporary)) }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced and (not temporary) %}\n {{ get_assert_columns_equivalent(sql) }}\n {{ get_table_columns_and_constraints() }}\n {%- set sql = get_select_subquery(sql) %}\n {% endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent", "macro.dbt.get_table_columns_and_constraints", "macro.dbt.get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.333761, "supported_languages": null}, "macro.dbt.default__get_column_names": {"name": "default__get_column_names", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_column_names", "macro_sql": "{% macro default__get_column_names() %}\n {#- loop through user_provided_columns to get column names -#}\n {%- set user_provided_columns = model['columns'] -%}\n {%- for i in user_provided_columns %}\n {%- set col = user_provided_columns[i] -%}\n {%- set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] -%}\n {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3341372, "supported_languages": null}, "macro.dbt.get_select_subquery": {"name": "get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.get_select_subquery", "macro_sql": "{% macro get_select_subquery(sql) %}\n {{ return(adapter.dispatch('get_select_subquery', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_select_subquery"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.334292, "supported_languages": null}, "macro.dbt.default__get_select_subquery": {"name": "default__get_select_subquery", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/table/create.sql", "original_file_path": "macros/relations/table/create.sql", "unique_id": "macro.dbt.default__get_select_subquery", "macro_sql": "{% macro default__get_select_subquery(sql) %}\n select {{ adapter.dispatch('get_column_names', 'dbt')() }}\n from (\n {{ sql }}\n ) as model_subq\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_column_names"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3344371, "supported_languages": null}, "macro.dbt.drop_view": {"name": "drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.drop_view", "macro_sql": "{% macro drop_view(relation) -%}\n {{- adapter.dispatch('drop_view', 'dbt')(relation) -}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_view"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.334647, "supported_languages": null}, "macro.dbt.default__drop_view": {"name": "default__drop_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/drop.sql", "original_file_path": "macros/relations/view/drop.sql", "unique_id": "macro.dbt.default__drop_view", "macro_sql": "{% macro default__drop_view(relation) -%}\n drop view if exists {{ relation.render() }} cascade\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3347478, "supported_languages": null}, "macro.dbt.get_replace_view_sql": {"name": "get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.get_replace_view_sql", "macro_sql": "{% macro get_replace_view_sql(relation, sql) %}\n {{- adapter.dispatch('get_replace_view_sql', 'dbt')(relation, sql) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_replace_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.335489, "supported_languages": null}, "macro.dbt.default__get_replace_view_sql": {"name": "default__get_replace_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__get_replace_view_sql", "macro_sql": "{% macro default__get_replace_view_sql(relation, sql) %}\n {{ exceptions.raise_compiler_error(\n \"`get_replace_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3356109, "supported_languages": null}, "macro.dbt.create_or_replace_view": {"name": "create_or_replace_view", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.create_or_replace_view", "macro_sql": "{% macro create_or_replace_view() %}\n {%- set identifier = model['alias'] -%}\n\n {%- set old_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) -%}\n {%- set exists_as_view = (old_relation is not none and old_relation.is_view) -%}\n\n {%- set target_relation = api.Relation.create(\n identifier=identifier, schema=schema, database=database,\n type='view') -%}\n {% set grant_config = config.get('grants') %}\n\n {{ run_hooks(pre_hooks) }}\n\n -- If there's a table with the same name and we weren't told to full refresh,\n -- that's an error. If we were told to full refresh, drop it. This behavior differs\n -- for Snowflake and BigQuery, so multiple dispatch is used.\n {%- if old_relation is not none and old_relation.is_table -%}\n {{ handle_existing_table(should_full_refresh(), old_relation) }}\n {%- endif -%}\n\n -- build model\n {% call statement('main') -%}\n {{ get_create_view_as_sql(target_relation, sql) }}\n {%- endcall %}\n\n {% set should_revoke = should_revoke(exists_as_view, full_refresh_mode=True) %}\n {% do apply_grants(target_relation, grant_config, should_revoke=should_revoke) %}\n\n {{ run_hooks(post_hooks) }}\n\n {{ return({'relations': [target_relation]}) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_hooks", "macro.dbt.handle_existing_table", "macro.dbt.should_full_refresh", "macro.dbt.statement", "macro.dbt.get_create_view_as_sql", "macro.dbt.should_revoke", "macro.dbt.apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.336583, "supported_languages": null}, "macro.dbt.handle_existing_table": {"name": "handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.handle_existing_table", "macro_sql": "{% macro handle_existing_table(full_refresh, old_relation) %}\n {{ adapter.dispatch('handle_existing_table', 'dbt')(full_refresh, old_relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__handle_existing_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.336747, "supported_languages": null}, "macro.dbt.default__handle_existing_table": {"name": "default__handle_existing_table", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/replace.sql", "original_file_path": "macros/relations/view/replace.sql", "unique_id": "macro.dbt.default__handle_existing_table", "macro_sql": "{% macro default__handle_existing_table(full_refresh, old_relation) %}\n {{ log(\"Dropping relation \" ~ old_relation.render() ~ \" because it is of type \" ~ old_relation.type) }}\n {{ adapter.drop_relation(old_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.33694, "supported_languages": null}, "macro.dbt.get_rename_view_sql": {"name": "get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.get_rename_view_sql", "macro_sql": "{% macro get_rename_view_sql(relation, new_name) %}\n {{- adapter.dispatch('get_rename_view_sql', 'dbt')(relation, new_name) -}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_rename_view_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.337166, "supported_languages": null}, "macro.dbt.default__get_rename_view_sql": {"name": "default__get_rename_view_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/rename.sql", "original_file_path": "macros/relations/view/rename.sql", "unique_id": "macro.dbt.default__get_rename_view_sql", "macro_sql": "{% macro default__get_rename_view_sql(relation, new_name) %}\n {{ exceptions.raise_compiler_error(\n \"`get_rename_view_sql` has not been implemented for this adapter.\"\n ) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.337285, "supported_languages": null}, "macro.dbt.get_create_view_as_sql": {"name": "get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.get_create_view_as_sql", "macro_sql": "{% macro get_create_view_as_sql(relation, sql) -%}\n {{ adapter.dispatch('get_create_view_as_sql', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_create_view_as_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.337634, "supported_languages": null}, "macro.dbt.default__get_create_view_as_sql": {"name": "default__get_create_view_as_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__get_create_view_as_sql", "macro_sql": "{% macro default__get_create_view_as_sql(relation, sql) -%}\n {{ return(create_view_as(relation, sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.337766, "supported_languages": null}, "macro.dbt.create_view_as": {"name": "create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.create_view_as", "macro_sql": "{% macro create_view_as(relation, sql) -%}\n {{ adapter.dispatch('create_view_as', 'dbt')(relation, sql) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_view_as"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.337918, "supported_languages": null}, "macro.dbt.default__create_view_as": {"name": "default__create_view_as", "resource_type": "macro", "package_name": "dbt", "path": "macros/relations/view/create.sql", "original_file_path": "macros/relations/view/create.sql", "unique_id": "macro.dbt.default__create_view_as", "macro_sql": "{% macro default__create_view_as(relation, sql) -%}\n {%- set sql_header = config.get('sql_header', none) -%}\n\n {{ sql_header if sql_header is not none }}\n create view {{ relation.render() }}\n {% set contract_config = config.get('contract') %}\n {% if contract_config.enforced %}\n {{ get_assert_columns_equivalent(sql) }}\n {%- endif %}\n as (\n {{ sql }}\n );\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.get_assert_columns_equivalent"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.338269, "supported_languages": null}, "macro.dbt.default__test_relationships": {"name": "default__test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/relationships.sql", "original_file_path": "macros/generic_test_sql/relationships.sql", "unique_id": "macro.dbt.default__test_relationships", "macro_sql": "{% macro default__test_relationships(model, column_name, to, field) %}\n\nwith child as (\n select {{ column_name }} as from_field\n from {{ model }}\n where {{ column_name }} is not null\n),\n\nparent as (\n select {{ field }} as to_field\n from {{ to }}\n)\n\nselect\n from_field\n\nfrom child\nleft join parent\n on child.from_field = parent.to_field\n\nwhere parent.to_field is null\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.338567, "supported_languages": null}, "macro.dbt.default__test_not_null": {"name": "default__test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/not_null.sql", "original_file_path": "macros/generic_test_sql/not_null.sql", "unique_id": "macro.dbt.default__test_not_null", "macro_sql": "{% macro default__test_not_null(model, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else column_name %}\n\nselect {{ column_list }}\nfrom {{ model }}\nwhere {{ column_name }} is null\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3388102, "supported_languages": null}, "macro.dbt.default__test_unique": {"name": "default__test_unique", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/unique.sql", "original_file_path": "macros/generic_test_sql/unique.sql", "unique_id": "macro.dbt.default__test_unique", "macro_sql": "{% macro default__test_unique(model, column_name) %}\n\nselect\n {{ column_name }} as unique_field,\n count(*) as n_records\n\nfrom {{ model }}\nwhere {{ column_name }} is not null\ngroup by {{ column_name }}\nhaving count(*) > 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.339015, "supported_languages": null}, "macro.dbt.default__test_accepted_values": {"name": "default__test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "macros/generic_test_sql/accepted_values.sql", "original_file_path": "macros/generic_test_sql/accepted_values.sql", "unique_id": "macro.dbt.default__test_accepted_values", "macro_sql": "{% macro default__test_accepted_values(model, column_name, values, quote=True) %}\n\nwith all_values as (\n\n select\n {{ column_name }} as value_field,\n count(*) as n_records\n\n from {{ model }}\n group by {{ column_name }}\n\n)\n\nselect *\nfrom all_values\nwhere value_field not in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n)\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.339478, "supported_languages": null}, "macro.dbt.statement": {"name": "statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.statement", "macro_sql": "\n{%- macro statement(name=None, fetch_result=False, auto_begin=True, language='sql') -%}\n {%- if execute: -%}\n {%- set compiled_code = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime {} for node \"{}\"'.format(language, model['unique_id'])) }}\n {{ write(compiled_code) }}\n {%- endif -%}\n {%- if language == 'sql'-%}\n {%- set res, table = adapter.execute(compiled_code, auto_begin=auto_begin, fetch=fetch_result) -%}\n {%- elif language == 'python' -%}\n {%- set res = submit_python_job(model, compiled_code) -%}\n {#-- TODO: What should table be for python models? --#}\n {%- set table = None -%}\n {%- else -%}\n {% do exceptions.raise_compiler_error(\"statement macro didn't get supported language\") %}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_result(name, response=res, agate_table=table) }}\n {%- endif -%}\n\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.340769, "supported_languages": null}, "macro.dbt.noop_statement": {"name": "noop_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.noop_statement", "macro_sql": "{% macro noop_statement(name=None, message=None, code=None, rows_affected=None, res=None) -%}\n {%- set sql = caller() -%}\n\n {%- if name == 'main' -%}\n {{ log('Writing runtime SQL for node \"{}\"'.format(model['unique_id'])) }}\n {{ write(sql) }}\n {%- endif -%}\n\n {%- if name is not none -%}\n {{ store_raw_result(name, message=message, code=code, rows_affected=rows_affected, agate_table=res) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.341341, "supported_languages": null}, "macro.dbt.run_query": {"name": "run_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/statement.sql", "original_file_path": "macros/etc/statement.sql", "unique_id": "macro.dbt.run_query", "macro_sql": "{% macro run_query(sql) %}\n {% call statement(\"run_query_statement\", fetch_result=true, auto_begin=false) %}\n {{ sql }}\n {% endcall %}\n\n {% do return(load_result(\"run_query_statement\").table) %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3416011, "supported_languages": null}, "macro.dbt.convert_datetime": {"name": "convert_datetime", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.convert_datetime", "macro_sql": "{% macro convert_datetime(date_str, date_fmt) %}\n\n {% set error_msg -%}\n The provided partition date '{{ date_str }}' does not match the expected format '{{ date_fmt }}'\n {%- endset %}\n\n {% set res = try_or_compiler_error(error_msg, modules.datetime.datetime.strptime, date_str.strip(), date_fmt) %}\n {{ return(res) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.343234, "supported_languages": null}, "macro.dbt.dates_in_range": {"name": "dates_in_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.dates_in_range", "macro_sql": "{% macro dates_in_range(start_date_str, end_date_str=none, in_fmt=\"%Y%m%d\", out_fmt=\"%Y%m%d\") %}\n {% set end_date_str = start_date_str if end_date_str is none else end_date_str %}\n\n {% set start_date = convert_datetime(start_date_str, in_fmt) %}\n {% set end_date = convert_datetime(end_date_str, in_fmt) %}\n\n {% set day_count = (end_date - start_date).days %}\n {% if day_count < 0 %}\n {% set msg -%}\n Partition start date is after the end date ({{ start_date }}, {{ end_date }})\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg, model) }}\n {% endif %}\n\n {% set date_list = [] %}\n {% for i in range(0, day_count + 1) %}\n {% set the_date = (modules.datetime.timedelta(days=i) + start_date) %}\n {% if not out_fmt %}\n {% set _ = date_list.append(the_date) %}\n {% else %}\n {% set _ = date_list.append(the_date.strftime(out_fmt)) %}\n {% endif %}\n {% endfor %}\n\n {{ return(date_list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.convert_datetime"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3442502, "supported_languages": null}, "macro.dbt.partition_range": {"name": "partition_range", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.partition_range", "macro_sql": "{% macro partition_range(raw_partition_date, date_fmt='%Y%m%d') %}\n {% set partition_range = (raw_partition_date | string).split(\",\") %}\n\n {% if (partition_range | length) == 1 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = none %}\n {% elif (partition_range | length) == 2 %}\n {% set start_date = partition_range[0] %}\n {% set end_date = partition_range[1] %}\n {% else %}\n {{ exceptions.raise_compiler_error(\"Invalid partition time. Expected format: {Start Date}[,{End Date}]. Got: \" ~ raw_partition_date) }}\n {% endif %}\n\n {{ return(dates_in_range(start_date, end_date, in_fmt=date_fmt)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dates_in_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.344901, "supported_languages": null}, "macro.dbt.py_current_timestring": {"name": "py_current_timestring", "resource_type": "macro", "package_name": "dbt", "path": "macros/etc/datetime.sql", "original_file_path": "macros/etc/datetime.sql", "unique_id": "macro.dbt.py_current_timestring", "macro_sql": "{% macro py_current_timestring() %}\n {% set dt = modules.datetime.datetime.now() %}\n {% do return(dt.strftime(\"%Y%m%d%H%M%S%f\")) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.345108, "supported_languages": null}, "macro.dbt.except": {"name": "except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.except", "macro_sql": "{% macro except() %}\n {{ return(adapter.dispatch('except', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3453078, "supported_languages": null}, "macro.dbt.default__except": {"name": "default__except", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/except.sql", "original_file_path": "macros/utils/except.sql", "unique_id": "macro.dbt.default__except", "macro_sql": "{% macro default__except() %}\n\n except\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.345376, "supported_languages": null}, "macro.dbt.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.346047, "supported_languages": null}, "macro.dbt.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.346574, "supported_languages": null}, "macro.dbt.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.346782, "supported_languages": null}, "macro.dbt.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_spine.sql", "original_file_path": "macros/utils/date_spine.sql", "unique_id": "macro.dbt.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n {# call as follows:\n\n date_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n ) #}\n\n\n with rawdata as (\n\n {{dbt.generate_series(\n dbt.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.generate_series", "macro.dbt.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3471081, "supported_languages": null}, "macro.dbt.date": {"name": "date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.date", "macro_sql": "{% macro date(year, month, day) %}\n {{ return(adapter.dispatch('date', 'dbt') (year, month, day)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3474078, "supported_languages": null}, "macro.dbt.default__date": {"name": "default__date", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date.sql", "original_file_path": "macros/utils/date.sql", "unique_id": "macro.dbt.default__date", "macro_sql": "{% macro default__date(year, month, day) -%}\n {%- set dt = modules.datetime.date(year, month, day) -%}\n {%- set iso_8601_formatted_date = dt.strftime('%Y-%m-%d') -%}\n to_date('{{ iso_8601_formatted_date }}', 'YYYY-MM-DD')\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.347666, "supported_languages": null}, "macro.dbt.replace": {"name": "replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.replace", "macro_sql": "{% macro replace(field, old_chars, new_chars) -%}\n {{ return(adapter.dispatch('replace', 'dbt') (field, old_chars, new_chars)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__replace"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.347966, "supported_languages": null}, "macro.dbt.default__replace": {"name": "default__replace", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/replace.sql", "original_file_path": "macros/utils/replace.sql", "unique_id": "macro.dbt.default__replace", "macro_sql": "{% macro default__replace(field, old_chars, new_chars) %}\n\n replace(\n {{ field }},\n {{ old_chars }},\n {{ new_chars }}\n )\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.348114, "supported_languages": null}, "macro.dbt.concat": {"name": "concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.concat", "macro_sql": "{% macro concat(fields) -%}\n {{ return(adapter.dispatch('concat', 'dbt')(fields)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.348332, "supported_languages": null}, "macro.dbt.default__concat": {"name": "default__concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/concat.sql", "original_file_path": "macros/utils/concat.sql", "unique_id": "macro.dbt.default__concat", "macro_sql": "{% macro default__concat(fields) -%}\n {{ fields|join(' || ') }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.348445, "supported_languages": null}, "macro.dbt.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.349191, "supported_languages": null}, "macro.dbt.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.349623, "supported_languages": null}, "macro.dbt.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.349786, "supported_languages": null}, "macro.dbt.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/generate_series.sql", "original_file_path": "macros/utils/generate_series.sql", "unique_id": "macro.dbt.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.350222, "supported_languages": null}, "macro.dbt.length": {"name": "length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.length", "macro_sql": "{% macro length(expression) -%}\n {{ return(adapter.dispatch('length', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__length"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.350462, "supported_languages": null}, "macro.dbt.default__length": {"name": "default__length", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/length.sql", "original_file_path": "macros/utils/length.sql", "unique_id": "macro.dbt.default__length", "macro_sql": "{% macro default__length(expression) %}\n\n length(\n {{ expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.35056, "supported_languages": null}, "macro.dbt.dateadd": {"name": "dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.dateadd", "macro_sql": "{% macro dateadd(datepart, interval, from_date_or_timestamp) %}\n {{ return(adapter.dispatch('dateadd', 'dbt')(datepart, interval, from_date_or_timestamp)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3508532, "supported_languages": null}, "macro.dbt.default__dateadd": {"name": "default__dateadd", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/dateadd.sql", "original_file_path": "macros/utils/dateadd.sql", "unique_id": "macro.dbt.default__dateadd", "macro_sql": "{% macro default__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_date_or_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3510022, "supported_languages": null}, "macro.dbt.intersect": {"name": "intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.intersect", "macro_sql": "{% macro intersect() %}\n {{ return(adapter.dispatch('intersect', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__intersect"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3512, "supported_languages": null}, "macro.dbt.default__intersect": {"name": "default__intersect", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/intersect.sql", "original_file_path": "macros/utils/intersect.sql", "unique_id": "macro.dbt.default__intersect", "macro_sql": "{% macro default__intersect() %}\n\n intersect\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.35127, "supported_languages": null}, "macro.dbt.escape_single_quotes": {"name": "escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.escape_single_quotes", "macro_sql": "{% macro escape_single_quotes(expression) %}\n {{ return(adapter.dispatch('escape_single_quotes', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__escape_single_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.351653, "supported_languages": null}, "macro.dbt.default__escape_single_quotes": {"name": "default__escape_single_quotes", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/escape_single_quotes.sql", "original_file_path": "macros/utils/escape_single_quotes.sql", "unique_id": "macro.dbt.default__escape_single_quotes", "macro_sql": "{% macro default__escape_single_quotes(expression) -%}\n{{ expression | replace(\"'\",\"''\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3518422, "supported_languages": null}, "macro.dbt.right": {"name": "right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.right", "macro_sql": "{% macro right(string_text, length_expression) -%}\n {{ return(adapter.dispatch('right', 'dbt') (string_text, length_expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__right"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3523688, "supported_languages": null}, "macro.dbt.default__right": {"name": "default__right", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/right.sql", "original_file_path": "macros/utils/right.sql", "unique_id": "macro.dbt.default__right", "macro_sql": "{% macro default__right(string_text, length_expression) %}\n\n right(\n {{ string_text }},\n {{ length_expression }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3525188, "supported_languages": null}, "macro.dbt.listagg": {"name": "listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.listagg", "macro_sql": "{% macro listagg(measure, delimiter_text=\"','\", order_by_clause=none, limit_num=none) -%}\n {{ return(adapter.dispatch('listagg', 'dbt') (measure, delimiter_text, order_by_clause, limit_num)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__listagg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.353614, "supported_languages": null}, "macro.dbt.default__listagg": {"name": "default__listagg", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/listagg.sql", "original_file_path": "macros/utils/listagg.sql", "unique_id": "macro.dbt.default__listagg", "macro_sql": "{% macro default__listagg(measure, delimiter_text, order_by_clause, limit_num) -%}\n\n {% if limit_num -%}\n array_to_string(\n array_slice(\n array_agg(\n {{ measure }}\n ){% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n ,0\n ,{{ limit_num }}\n ),\n {{ delimiter_text }}\n )\n {%- else %}\n listagg(\n {{ measure }},\n {{ delimiter_text }}\n )\n {% if order_by_clause -%}\n within group ({{ order_by_clause }})\n {%- endif %}\n {%- endif %}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.354136, "supported_languages": null}, "macro.dbt.datediff": {"name": "datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.datediff", "macro_sql": "{% macro datediff(first_date, second_date, datepart) %}\n {{ return(adapter.dispatch('datediff', 'dbt')(first_date, second_date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3544629, "supported_languages": null}, "macro.dbt.default__datediff": {"name": "default__datediff", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/datediff.sql", "original_file_path": "macros/utils/datediff.sql", "unique_id": "macro.dbt.default__datediff", "macro_sql": "{% macro default__datediff(first_date, second_date, datepart) -%}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3548958, "supported_languages": null}, "macro.dbt.safe_cast": {"name": "safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.safe_cast", "macro_sql": "{% macro safe_cast(field, type) %}\n {{ return(adapter.dispatch('safe_cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.355259, "supported_languages": null}, "macro.dbt.default__safe_cast": {"name": "default__safe_cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/safe_cast.sql", "original_file_path": "macros/utils/safe_cast.sql", "unique_id": "macro.dbt.default__safe_cast", "macro_sql": "{% macro default__safe_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.355398, "supported_languages": null}, "macro.dbt.hash": {"name": "hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.hash", "macro_sql": "{% macro hash(field) -%}\n {{ return(adapter.dispatch('hash', 'dbt') (field)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__hash"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3556428, "supported_languages": null}, "macro.dbt.default__hash": {"name": "default__hash", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/hash.sql", "original_file_path": "macros/utils/hash.sql", "unique_id": "macro.dbt.default__hash", "macro_sql": "{% macro default__hash(field) -%}\n md5(cast({{ field }} as {{ api.Column.translate_type('string') }}))\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.355789, "supported_languages": null}, "macro.dbt.cast_bool_to_text": {"name": "cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.cast_bool_to_text", "macro_sql": "{% macro cast_bool_to_text(field) %}\n {{ adapter.dispatch('cast_bool_to_text', 'dbt') (field) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.356116, "supported_languages": null}, "macro.dbt.default__cast_bool_to_text": {"name": "default__cast_bool_to_text", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast_bool_to_text.sql", "original_file_path": "macros/utils/cast_bool_to_text.sql", "unique_id": "macro.dbt.default__cast_bool_to_text", "macro_sql": "{% macro default__cast_bool_to_text(field) %}\n cast({{ field }} as {{ api.Column.translate_type('string') }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.356298, "supported_languages": null}, "macro.dbt.cast": {"name": "cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.cast", "macro_sql": "{% macro cast(field, type) %}\n {{ return(adapter.dispatch('cast', 'dbt') (field, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.356549, "supported_languages": null}, "macro.dbt.default__cast": {"name": "default__cast", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/cast.sql", "original_file_path": "macros/utils/cast.sql", "unique_id": "macro.dbt.default__cast", "macro_sql": "{% macro default__cast(field, type) %}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3566642, "supported_languages": null}, "macro.dbt.any_value": {"name": "any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.any_value", "macro_sql": "{% macro any_value(expression) -%}\n {{ return(adapter.dispatch('any_value', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__any_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.356891, "supported_languages": null}, "macro.dbt.default__any_value": {"name": "default__any_value", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/any_value.sql", "original_file_path": "macros/utils/any_value.sql", "unique_id": "macro.dbt.default__any_value", "macro_sql": "{% macro default__any_value(expression) -%}\n\n any_value({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.356992, "supported_languages": null}, "macro.dbt.position": {"name": "position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.position", "macro_sql": "{% macro position(substring_text, string_text) -%}\n {{ return(adapter.dispatch('position', 'dbt') (substring_text, string_text)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__position"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.357255, "supported_languages": null}, "macro.dbt.default__position": {"name": "default__position", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/position.sql", "original_file_path": "macros/utils/position.sql", "unique_id": "macro.dbt.default__position", "macro_sql": "{% macro default__position(substring_text, string_text) %}\n\n position(\n {{ substring_text }} in {{ string_text }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.357384, "supported_languages": null}, "macro.dbt.string_literal": {"name": "string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.string_literal", "macro_sql": "{%- macro string_literal(value) -%}\n {{ return(adapter.dispatch('string_literal', 'dbt') (value)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__string_literal"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.358007, "supported_languages": null}, "macro.dbt.default__string_literal": {"name": "default__string_literal", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/literal.sql", "original_file_path": "macros/utils/literal.sql", "unique_id": "macro.dbt.default__string_literal", "macro_sql": "{% macro default__string_literal(value) -%}\n '{{ value }}'\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.358135, "supported_languages": null}, "macro.dbt.type_string": {"name": "type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_string", "macro_sql": "\n\n{%- macro type_string() -%}\n {{ return(adapter.dispatch('type_string', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3591838, "supported_languages": null}, "macro.dbt.default__type_string": {"name": "default__type_string", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_string", "macro_sql": "{% macro default__type_string() %}\n {{ return(api.Column.translate_type(\"string\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.359336, "supported_languages": null}, "macro.dbt.type_timestamp": {"name": "type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_timestamp", "macro_sql": "\n\n{%- macro type_timestamp() -%}\n {{ return(adapter.dispatch('type_timestamp', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.359485, "supported_languages": null}, "macro.dbt.default__type_timestamp": {"name": "default__type_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_timestamp", "macro_sql": "{% macro default__type_timestamp() %}\n {{ return(api.Column.translate_type(\"timestamp\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.359626, "supported_languages": null}, "macro.dbt.type_float": {"name": "type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_float", "macro_sql": "\n\n{%- macro type_float() -%}\n {{ return(adapter.dispatch('type_float', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.359772, "supported_languages": null}, "macro.dbt.default__type_float": {"name": "default__type_float", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_float", "macro_sql": "{% macro default__type_float() %}\n {{ return(api.Column.translate_type(\"float\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3599072, "supported_languages": null}, "macro.dbt.type_numeric": {"name": "type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_numeric", "macro_sql": "\n\n{%- macro type_numeric() -%}\n {{ return(adapter.dispatch('type_numeric', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.360051, "supported_languages": null}, "macro.dbt.default__type_numeric": {"name": "default__type_numeric", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_numeric", "macro_sql": "{% macro default__type_numeric() %}\n {{ return(api.Column.numeric_type(\"numeric\", 28, 6)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.360283, "supported_languages": null}, "macro.dbt.type_bigint": {"name": "type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_bigint", "macro_sql": "\n\n{%- macro type_bigint() -%}\n {{ return(adapter.dispatch('type_bigint', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_bigint"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3604538, "supported_languages": null}, "macro.dbt.default__type_bigint": {"name": "default__type_bigint", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_bigint", "macro_sql": "{% macro default__type_bigint() %}\n {{ return(api.Column.translate_type(\"bigint\")) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3606908, "supported_languages": null}, "macro.dbt.type_int": {"name": "type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_int", "macro_sql": "\n\n{%- macro type_int() -%}\n {{ return(adapter.dispatch('type_int', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3610828, "supported_languages": null}, "macro.dbt.default__type_int": {"name": "default__type_int", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_int", "macro_sql": "{%- macro default__type_int() -%}\n {{ return(api.Column.translate_type(\"integer\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.361229, "supported_languages": null}, "macro.dbt.type_boolean": {"name": "type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.type_boolean", "macro_sql": "\n\n{%- macro type_boolean() -%}\n {{ return(adapter.dispatch('type_boolean', 'dbt')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__type_boolean"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3613791, "supported_languages": null}, "macro.dbt.default__type_boolean": {"name": "default__type_boolean", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/data_types.sql", "original_file_path": "macros/utils/data_types.sql", "unique_id": "macro.dbt.default__type_boolean", "macro_sql": "{%- macro default__type_boolean() -%}\n {{ return(api.Column.translate_type(\"boolean\")) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3615098, "supported_languages": null}, "macro.dbt.array_concat": {"name": "array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.array_concat", "macro_sql": "{% macro array_concat(array_1, array_2) -%}\n {{ return(adapter.dispatch('array_concat', 'dbt')(array_1, array_2)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.361771, "supported_languages": null}, "macro.dbt.default__array_concat": {"name": "default__array_concat", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_concat.sql", "original_file_path": "macros/utils/array_concat.sql", "unique_id": "macro.dbt.default__array_concat", "macro_sql": "{% macro default__array_concat(array_1, array_2) -%}\n array_cat({{ array_1 }}, {{ array_2 }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.361894, "supported_languages": null}, "macro.dbt.bool_or": {"name": "bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.bool_or", "macro_sql": "{% macro bool_or(expression) -%}\n {{ return(adapter.dispatch('bool_or', 'dbt') (expression)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__bool_or"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3621278, "supported_languages": null}, "macro.dbt.default__bool_or": {"name": "default__bool_or", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/bool_or.sql", "original_file_path": "macros/utils/bool_or.sql", "unique_id": "macro.dbt.default__bool_or", "macro_sql": "{% macro default__bool_or(expression) -%}\n\n bool_or({{ expression }})\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.362229, "supported_languages": null}, "macro.dbt.last_day": {"name": "last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.last_day", "macro_sql": "{% macro last_day(date, datepart) %}\n {{ return(adapter.dispatch('last_day', 'dbt') (date, datepart)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.362539, "supported_languages": null}, "macro.dbt.default_last_day": {"name": "default_last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default_last_day", "macro_sql": "\n\n{%- macro default_last_day(date, datepart) -%}\n cast(\n {{dbt.dateadd('day', '-1',\n dbt.dateadd(datepart, '1', dbt.date_trunc(datepart, date))\n )}}\n as date)\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.362786, "supported_languages": null}, "macro.dbt.default__last_day": {"name": "default__last_day", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/last_day.sql", "original_file_path": "macros/utils/last_day.sql", "unique_id": "macro.dbt.default__last_day", "macro_sql": "{% macro default__last_day(date, datepart) -%}\n {{dbt.default_last_day(date, datepart)}}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default_last_day"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.36292, "supported_languages": null}, "macro.dbt.split_part": {"name": "split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.split_part", "macro_sql": "{% macro split_part(string_text, delimiter_text, part_number) %}\n {{ return(adapter.dispatch('split_part', 'dbt') (string_text, delimiter_text, part_number)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3633978, "supported_languages": null}, "macro.dbt.default__split_part": {"name": "default__split_part", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt.default__split_part", "macro_sql": "{% macro default__split_part(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3635578, "supported_languages": null}, "macro.dbt._split_part_negative": {"name": "_split_part_negative", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/split_part.sql", "original_file_path": "macros/utils/split_part.sql", "unique_id": "macro.dbt._split_part_negative", "macro_sql": "{% macro _split_part_negative(string_text, delimiter_text, part_number) %}\n\n split_part(\n {{ string_text }},\n {{ delimiter_text }},\n length({{ string_text }})\n - length(\n replace({{ string_text }}, {{ delimiter_text }}, '')\n ) + 2 + {{ part_number }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.363766, "supported_languages": null}, "macro.dbt.date_trunc": {"name": "date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.date_trunc", "macro_sql": "{% macro date_trunc(datepart, date) -%}\n {{ return(adapter.dispatch('date_trunc', 'dbt') (datepart, date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__date_trunc"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.364026, "supported_languages": null}, "macro.dbt.default__date_trunc": {"name": "default__date_trunc", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/date_trunc.sql", "original_file_path": "macros/utils/date_trunc.sql", "unique_id": "macro.dbt.default__date_trunc", "macro_sql": "{% macro default__date_trunc(datepart, date) -%}\n date_trunc('{{datepart}}', {{date}})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.364146, "supported_languages": null}, "macro.dbt.array_construct": {"name": "array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.array_construct", "macro_sql": "{% macro array_construct(inputs=[], data_type=api.Column.translate_type('integer')) -%}\n {{ return(adapter.dispatch('array_construct', 'dbt')(inputs, data_type)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_construct"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.364505, "supported_languages": null}, "macro.dbt.default__array_construct": {"name": "default__array_construct", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_construct.sql", "original_file_path": "macros/utils/array_construct.sql", "unique_id": "macro.dbt.default__array_construct", "macro_sql": "{% macro default__array_construct(inputs, data_type) -%}\n {% if inputs|length > 0 %}\n array[ {{ inputs|join(' , ') }} ]\n {% else %}\n array[]::{{data_type}}[]\n {% endif %}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.364737, "supported_languages": null}, "macro.dbt.array_append": {"name": "array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.array_append", "macro_sql": "{% macro array_append(array, new_element) -%}\n {{ return(adapter.dispatch('array_append', 'dbt')(array, new_element)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__array_append"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.365003, "supported_languages": null}, "macro.dbt.default__array_append": {"name": "default__array_append", "resource_type": "macro", "package_name": "dbt", "path": "macros/utils/array_append.sql", "original_file_path": "macros/utils/array_append.sql", "unique_id": "macro.dbt.default__array_append", "macro_sql": "{% macro default__array_append(array, new_element) -%}\n array_append({{ array }}, {{ new_element }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3652139, "supported_languages": null}, "macro.dbt.create_schema": {"name": "create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.create_schema", "macro_sql": "{% macro create_schema(relation) -%}\n {{ adapter.dispatch('create_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__create_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.365551, "supported_languages": null}, "macro.dbt.default__create_schema": {"name": "default__create_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__create_schema", "macro_sql": "{% macro default__create_schema(relation) -%}\n {%- call statement('create_schema') -%}\n create schema if not exists {{ relation.without_identifier() }}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3657138, "supported_languages": null}, "macro.dbt.drop_schema": {"name": "drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.drop_schema", "macro_sql": "{% macro drop_schema(relation) -%}\n {{ adapter.dispatch('drop_schema', 'dbt')(relation) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__drop_schema"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.365856, "supported_languages": null}, "macro.dbt.default__drop_schema": {"name": "default__drop_schema", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/schema.sql", "original_file_path": "macros/adapters/schema.sql", "unique_id": "macro.dbt.default__drop_schema", "macro_sql": "{% macro default__drop_schema(relation) -%}\n {%- call statement('drop_schema') -%}\n drop schema if exists {{ relation.without_identifier() }} cascade\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.366025, "supported_languages": null}, "macro.dbt.current_timestamp": {"name": "current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp", "macro_sql": "{%- macro current_timestamp() -%}\n {{ adapter.dispatch('current_timestamp', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.366755, "supported_languages": null}, "macro.dbt.default__current_timestamp": {"name": "default__current_timestamp", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp", "macro_sql": "{% macro default__current_timestamp() -%}\n {{ exceptions.raise_not_implemented(\n 'current_timestamp macro not implemented for adapter ' + adapter.type()) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.366909, "supported_languages": null}, "macro.dbt.snapshot_get_time": {"name": "snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.snapshot_get_time", "macro_sql": "\n\n{%- macro snapshot_get_time() -%}\n {{ adapter.dispatch('snapshot_get_time', 'dbt')() }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_postgres.postgres__snapshot_get_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.367039, "supported_languages": null}, "macro.dbt.default__snapshot_get_time": {"name": "default__snapshot_get_time", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__snapshot_get_time", "macro_sql": "{% macro default__snapshot_get_time() %}\n {{ current_timestamp() }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3671339, "supported_languages": null}, "macro.dbt.get_snapshot_get_time_data_type": {"name": "get_snapshot_get_time_data_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.get_snapshot_get_time_data_type", "macro_sql": "{% macro get_snapshot_get_time_data_type() %}\n {% set snapshot_time = adapter.dispatch('snapshot_get_time', 'dbt')() %}\n {% set time_data_type_sql = 'select ' ~ snapshot_time ~ ' as dbt_snapshot_time' %}\n {% set snapshot_time_column_schema = get_column_schema_from_query(time_data_type_sql) %}\n {% set time_data_type = snapshot_time_column_schema[0].dtype %}\n {{ return(time_data_type or none) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.snapshot_get_time", "macro.dbt_postgres.postgres__snapshot_get_time", "macro.dbt.get_column_schema_from_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.367506, "supported_languages": null}, "macro.dbt.current_timestamp_backcompat": {"name": "current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_backcompat", "macro_sql": "{% macro current_timestamp_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.367661, "supported_languages": null}, "macro.dbt.default__current_timestamp_backcompat": {"name": "default__current_timestamp_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_backcompat", "macro_sql": "{% macro default__current_timestamp_backcompat() %}\n current_timestamp::timestamp\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.367733, "supported_languages": null}, "macro.dbt.current_timestamp_in_utc_backcompat": {"name": "current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.current_timestamp_in_utc_backcompat", "macro_sql": "{% macro current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_in_utc_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__current_timestamp_in_utc_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.367884, "supported_languages": null}, "macro.dbt.default__current_timestamp_in_utc_backcompat": {"name": "default__current_timestamp_in_utc_backcompat", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/timestamps.sql", "original_file_path": "macros/adapters/timestamps.sql", "unique_id": "macro.dbt.default__current_timestamp_in_utc_backcompat", "macro_sql": "{% macro default__current_timestamp_in_utc_backcompat() %}\n {{ return(adapter.dispatch('current_timestamp_backcompat', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.current_timestamp_backcompat", "macro.dbt_postgres.postgres__current_timestamp_backcompat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3680692, "supported_languages": null}, "macro.dbt.get_create_index_sql": {"name": "get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_create_index_sql", "macro_sql": "{% macro get_create_index_sql(relation, index_dict) -%}\n {{ return(adapter.dispatch('get_create_index_sql', 'dbt')(relation, index_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_create_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.368893, "supported_languages": null}, "macro.dbt.default__get_create_index_sql": {"name": "default__get_create_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_create_index_sql", "macro_sql": "{% macro default__get_create_index_sql(relation, index_dict) -%}\n {% do return(None) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.369077, "supported_languages": null}, "macro.dbt.create_indexes": {"name": "create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.create_indexes", "macro_sql": "{% macro create_indexes(relation) -%}\n {{ adapter.dispatch('create_indexes', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.default__create_indexes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.36935, "supported_languages": null}, "macro.dbt.default__create_indexes": {"name": "default__create_indexes", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__create_indexes", "macro_sql": "{% macro default__create_indexes(relation) -%}\n {%- set _indexes = config.get('indexes', default=[]) -%}\n\n {% for _index_dict in _indexes %}\n {% set create_index_sql = get_create_index_sql(relation, _index_dict) %}\n {% if create_index_sql %}\n {% do run_query(create_index_sql) %}\n {% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_create_index_sql", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3698518, "supported_languages": null}, "macro.dbt.get_drop_index_sql": {"name": "get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_drop_index_sql", "macro_sql": "{% macro get_drop_index_sql(relation, index_name) -%}\n {{ adapter.dispatch('get_drop_index_sql', 'dbt')(relation, index_name) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_drop_index_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3700302, "supported_languages": null}, "macro.dbt.default__get_drop_index_sql": {"name": "default__get_drop_index_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_drop_index_sql", "macro_sql": "{% macro default__get_drop_index_sql(relation, index_name) -%}\n {{ exceptions.raise_compiler_error(\"`get_drop_index_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.370164, "supported_languages": null}, "macro.dbt.get_show_indexes_sql": {"name": "get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.get_show_indexes_sql", "macro_sql": "{% macro get_show_indexes_sql(relation) -%}\n {{ adapter.dispatch('get_show_indexes_sql', 'dbt')(relation) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_indexes_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.370311, "supported_languages": null}, "macro.dbt.default__get_show_indexes_sql": {"name": "default__get_show_indexes_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/indexes.sql", "original_file_path": "macros/adapters/indexes.sql", "unique_id": "macro.dbt.default__get_show_indexes_sql", "macro_sql": "{% macro default__get_show_indexes_sql(relation) -%}\n {{ exceptions.raise_compiler_error(\"`get_show_indexes_sql has not been implemented for this adapter.\") }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.37044, "supported_languages": null}, "macro.dbt.make_intermediate_relation": {"name": "make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_intermediate_relation", "macro_sql": "{% macro make_intermediate_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_intermediate_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_intermediate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.37232, "supported_languages": null}, "macro.dbt.default__make_intermediate_relation": {"name": "default__make_intermediate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_intermediate_relation", "macro_sql": "{% macro default__make_intermediate_relation(base_relation, suffix) %}\n {{ return(default__make_temp_relation(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.372468, "supported_languages": null}, "macro.dbt.make_temp_relation": {"name": "make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_temp_relation", "macro_sql": "{% macro make_temp_relation(base_relation, suffix='__dbt_tmp') %}\n {{ return(adapter.dispatch('make_temp_relation', 'dbt')(base_relation, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_temp_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3726652, "supported_languages": null}, "macro.dbt.default__make_temp_relation": {"name": "default__make_temp_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_temp_relation", "macro_sql": "{% macro default__make_temp_relation(base_relation, suffix) %}\n {%- set temp_identifier = base_relation.identifier ~ suffix -%}\n {%- set temp_relation = base_relation.incorporate(\n path={\"identifier\": temp_identifier}) -%}\n\n {{ return(temp_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.372927, "supported_languages": null}, "macro.dbt.make_backup_relation": {"name": "make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.make_backup_relation", "macro_sql": "{% macro make_backup_relation(base_relation, backup_relation_type, suffix='__dbt_backup') %}\n {{ return(adapter.dispatch('make_backup_relation', 'dbt')(base_relation, backup_relation_type, suffix)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__make_backup_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.373146, "supported_languages": null}, "macro.dbt.default__make_backup_relation": {"name": "default__make_backup_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__make_backup_relation", "macro_sql": "{% macro default__make_backup_relation(base_relation, backup_relation_type, suffix) %}\n {%- set backup_identifier = base_relation.identifier ~ suffix -%}\n {%- set backup_relation = base_relation.incorporate(\n path={\"identifier\": backup_identifier},\n type=backup_relation_type\n ) -%}\n {{ return(backup_relation) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.373431, "supported_languages": null}, "macro.dbt.truncate_relation": {"name": "truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.truncate_relation", "macro_sql": "{% macro truncate_relation(relation) -%}\n {{ return(adapter.dispatch('truncate_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__truncate_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3735948, "supported_languages": null}, "macro.dbt.default__truncate_relation": {"name": "default__truncate_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__truncate_relation", "macro_sql": "{% macro default__truncate_relation(relation) -%}\n {% call statement('truncate_relation') -%}\n truncate table {{ relation.render() }}\n {%- endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.373755, "supported_languages": null}, "macro.dbt.get_or_create_relation": {"name": "get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.get_or_create_relation", "macro_sql": "{% macro get_or_create_relation(database, schema, identifier, type) -%}\n {{ return(adapter.dispatch('get_or_create_relation', 'dbt')(database, schema, identifier, type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_or_create_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3739772, "supported_languages": null}, "macro.dbt.default__get_or_create_relation": {"name": "default__get_or_create_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.default__get_or_create_relation", "macro_sql": "{% macro default__get_or_create_relation(database, schema, identifier, type) %}\n {%- set target_relation = adapter.get_relation(database=database, schema=schema, identifier=identifier) %}\n\n {% if target_relation %}\n {% do return([true, target_relation]) %}\n {% endif %}\n\n {%- set new_relation = api.Relation.create(\n database=database,\n schema=schema,\n identifier=identifier,\n type=type\n ) -%}\n {% do return([false, new_relation]) %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3744829, "supported_languages": null}, "macro.dbt.load_cached_relation": {"name": "load_cached_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_cached_relation", "macro_sql": "{% macro load_cached_relation(relation) %}\n {% do return(adapter.get_relation(\n database=relation.database,\n schema=relation.schema,\n identifier=relation.identifier\n )) -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.374697, "supported_languages": null}, "macro.dbt.load_relation": {"name": "load_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/relation.sql", "original_file_path": "macros/adapters/relation.sql", "unique_id": "macro.dbt.load_relation", "macro_sql": "{% macro load_relation(relation) %}\n {{ return(load_cached_relation(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_cached_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3748229, "supported_languages": null}, "macro.dbt.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness', 'dbt')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.375186, "supported_languages": null}, "macro.dbt.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/freshness.sql", "original_file_path": "macros/adapters/freshness.sql", "unique_id": "macro.dbt.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n select\n max({{ loaded_at_field }}) as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endcall %}\n {{ return(load_result('collect_freshness')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.375537, "supported_languages": null}, "macro.dbt.validate_sql": {"name": "validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.validate_sql", "macro_sql": "{% macro validate_sql(sql) -%}\n {{ return(adapter.dispatch('validate_sql', 'dbt')(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__validate_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.375784, "supported_languages": null}, "macro.dbt.default__validate_sql": {"name": "default__validate_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/validate_sql.sql", "original_file_path": "macros/adapters/validate_sql.sql", "unique_id": "macro.dbt.default__validate_sql", "macro_sql": "{% macro default__validate_sql(sql) -%}\n {% call statement('validate_sql') -%}\n explain {{ sql }}\n {% endcall %}\n {{ return(load_result('validate_sql')) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.376062, "supported_languages": null}, "macro.dbt.copy_grants": {"name": "copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.copy_grants", "macro_sql": "{% macro copy_grants() %}\n {{ return(adapter.dispatch('copy_grants', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.377849, "supported_languages": null}, "macro.dbt.default__copy_grants": {"name": "default__copy_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__copy_grants", "macro_sql": "{% macro default__copy_grants() %}\n {{ return(True) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3779619, "supported_languages": null}, "macro.dbt.support_multiple_grantees_per_dcl_statement": {"name": "support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.support_multiple_grantees_per_dcl_statement", "macro_sql": "{% macro support_multiple_grantees_per_dcl_statement() %}\n {{ return(adapter.dispatch('support_multiple_grantees_per_dcl_statement', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.378121, "supported_languages": null}, "macro.dbt.default__support_multiple_grantees_per_dcl_statement": {"name": "default__support_multiple_grantees_per_dcl_statement", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__support_multiple_grantees_per_dcl_statement", "macro_sql": "\n\n{%- macro default__support_multiple_grantees_per_dcl_statement() -%}\n {{ return(True) }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.378218, "supported_languages": null}, "macro.dbt.should_revoke": {"name": "should_revoke", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.should_revoke", "macro_sql": "{% macro should_revoke(existing_relation, full_refresh_mode=True) %}\n\n {% if not existing_relation %}\n {#-- The table doesn't already exist, so no grants to copy over --#}\n {{ return(False) }}\n {% elif full_refresh_mode %}\n {#-- The object is being REPLACED -- whether grants are copied over depends on the value of user config --#}\n {{ return(copy_grants()) }}\n {% else %}\n {#-- The table is being merged/upserted/inserted -- grants will be carried over --#}\n {{ return(True) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.copy_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.378518, "supported_languages": null}, "macro.dbt.get_show_grant_sql": {"name": "get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_show_grant_sql", "macro_sql": "{% macro get_show_grant_sql(relation) %}\n {{ return(adapter.dispatch(\"get_show_grant_sql\", \"dbt\")(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_show_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.378679, "supported_languages": null}, "macro.dbt.default__get_show_grant_sql": {"name": "default__get_show_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_show_grant_sql", "macro_sql": "{% macro default__get_show_grant_sql(relation) %}\n show grants on {{ relation.render() }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.378786, "supported_languages": null}, "macro.dbt.get_grant_sql": {"name": "get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_grant_sql", "macro_sql": "{% macro get_grant_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_grant_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_grant_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.378984, "supported_languages": null}, "macro.dbt.default__get_grant_sql": {"name": "default__get_grant_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_grant_sql", "macro_sql": "\n\n{%- macro default__get_grant_sql(relation, privilege, grantees) -%}\n grant {{ privilege }} on {{ relation.render() }} to {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.379174, "supported_languages": null}, "macro.dbt.get_revoke_sql": {"name": "get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_revoke_sql", "macro_sql": "{% macro get_revoke_sql(relation, privilege, grantees) %}\n {{ return(adapter.dispatch('get_revoke_sql', 'dbt')(relation, privilege, grantees)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_revoke_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.37944, "supported_languages": null}, "macro.dbt.default__get_revoke_sql": {"name": "default__get_revoke_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_revoke_sql", "macro_sql": "\n\n{%- macro default__get_revoke_sql(relation, privilege, grantees) -%}\n revoke {{ privilege }} on {{ relation.render() }} from {{ grantees | join(', ') }}\n{%- endmacro -%}\n\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.379626, "supported_languages": null}, "macro.dbt.get_dcl_statement_list": {"name": "get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.get_dcl_statement_list", "macro_sql": "{% macro get_dcl_statement_list(relation, grant_config, get_dcl_macro) %}\n {{ return(adapter.dispatch('get_dcl_statement_list', 'dbt')(relation, grant_config, get_dcl_macro)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_dcl_statement_list"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3798358, "supported_languages": null}, "macro.dbt.default__get_dcl_statement_list": {"name": "default__get_dcl_statement_list", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__get_dcl_statement_list", "macro_sql": "\n\n{%- macro default__get_dcl_statement_list(relation, grant_config, get_dcl_macro) -%}\n {#\n -- Unpack grant_config into specific privileges and the set of users who need them granted/revoked.\n -- Depending on whether this database supports multiple grantees per statement, pass in the list of\n -- all grantees per privilege, or (if not) template one statement per privilege-grantee pair.\n -- `get_dcl_macro` will be either `get_grant_sql` or `get_revoke_sql`\n #}\n {%- set dcl_statements = [] -%}\n {%- for privilege, grantees in grant_config.items() %}\n {%- if support_multiple_grantees_per_dcl_statement() and grantees -%}\n {%- set dcl = get_dcl_macro(relation, privilege, grantees) -%}\n {%- do dcl_statements.append(dcl) -%}\n {%- else -%}\n {%- for grantee in grantees -%}\n {% set dcl = get_dcl_macro(relation, privilege, [grantee]) %}\n {%- do dcl_statements.append(dcl) -%}\n {% endfor -%}\n {%- endif -%}\n {%- endfor -%}\n {{ return(dcl_statements) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.support_multiple_grantees_per_dcl_statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.38043, "supported_languages": null}, "macro.dbt.call_dcl_statements": {"name": "call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.call_dcl_statements", "macro_sql": "{% macro call_dcl_statements(dcl_statement_list) %}\n {{ return(adapter.dispatch(\"call_dcl_statements\", \"dbt\")(dcl_statement_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.380613, "supported_languages": null}, "macro.dbt.default__call_dcl_statements": {"name": "default__call_dcl_statements", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__call_dcl_statements", "macro_sql": "{% macro default__call_dcl_statements(dcl_statement_list) %}\n {#\n -- By default, supply all grant + revoke statements in a single semicolon-separated block,\n -- so that they're all processed together.\n\n -- Some databases do not support this. Those adapters will need to override this macro\n -- to run each statement individually.\n #}\n {% call statement('grants') %}\n {% for dcl_statement in dcl_statement_list %}\n {{ dcl_statement }};\n {% endfor %}\n {% endcall %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3809311, "supported_languages": null}, "macro.dbt.apply_grants": {"name": "apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.apply_grants", "macro_sql": "{% macro apply_grants(relation, grant_config, should_revoke) %}\n {{ return(adapter.dispatch(\"apply_grants\", \"dbt\")(relation, grant_config, should_revoke)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__apply_grants"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.381141, "supported_languages": null}, "macro.dbt.default__apply_grants": {"name": "default__apply_grants", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/apply_grants.sql", "original_file_path": "macros/adapters/apply_grants.sql", "unique_id": "macro.dbt.default__apply_grants", "macro_sql": "{% macro default__apply_grants(relation, grant_config, should_revoke=True) %}\n {#-- If grant_config is {} or None, this is a no-op --#}\n {% if grant_config %}\n {% if should_revoke %}\n {#-- We think previous grants may have carried over --#}\n {#-- Show current grants and calculate diffs --#}\n {% set current_grants_table = run_query(get_show_grant_sql(relation)) %}\n {% set current_grants_dict = adapter.standardize_grants_dict(current_grants_table) %}\n {% set needs_granting = diff_of_two_dicts(grant_config, current_grants_dict) %}\n {% set needs_revoking = diff_of_two_dicts(current_grants_dict, grant_config) %}\n {% if not (needs_granting or needs_revoking) %}\n {{ log('On ' ~ relation.render() ~': All grants are in place, no revocation or granting needed.')}}\n {% endif %}\n {% else %}\n {#-- We don't think there's any chance of previous grants having carried over. --#}\n {#-- Jump straight to granting what the user has configured. --#}\n {% set needs_revoking = {} %}\n {% set needs_granting = grant_config %}\n {% endif %}\n {% if needs_granting or needs_revoking %}\n {% set revoke_statement_list = get_dcl_statement_list(relation, needs_revoking, get_revoke_sql) %}\n {% set grant_statement_list = get_dcl_statement_list(relation, needs_granting, get_grant_sql) %}\n {% set dcl_statement_list = revoke_statement_list + grant_statement_list %}\n {% if dcl_statement_list %}\n {{ call_dcl_statements(dcl_statement_list) }}\n {% endif %}\n {% endif %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.get_show_grant_sql", "macro.dbt.get_dcl_statement_list", "macro.dbt.call_dcl_statements"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.38222, "supported_languages": null}, "macro.dbt.get_show_sql": {"name": "get_show_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_show_sql", "macro_sql": "{% macro get_show_sql(compiled_code, sql_header, limit) -%}\n {%- if sql_header is not none -%}\n {{ sql_header }}\n {%- endif %}\n {{ get_limit_subquery_sql(compiled_code, limit) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_limit_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.382603, "supported_languages": null}, "macro.dbt.get_limit_subquery_sql": {"name": "get_limit_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.get_limit_subquery_sql", "macro_sql": "\n{%- macro get_limit_subquery_sql(sql, limit) -%}\n {{ adapter.dispatch('get_limit_sql', 'dbt')(sql, limit) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__get_limit_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.382765, "supported_languages": null}, "macro.dbt.default__get_limit_sql": {"name": "default__get_limit_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/show.sql", "original_file_path": "macros/adapters/show.sql", "unique_id": "macro.dbt.default__get_limit_sql", "macro_sql": "{% macro default__get_limit_sql(sql, limit) %}\n {{ compiled_code }}\n {% if limit is not none %}\n limit {{ limit }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.382926, "supported_languages": null}, "macro.dbt.alter_column_comment": {"name": "alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_column_comment", "macro_sql": "{% macro alter_column_comment(relation, column_dict) -%}\n {{ return(adapter.dispatch('alter_column_comment', 'dbt')(relation, column_dict)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3835251, "supported_languages": null}, "macro.dbt.default__alter_column_comment": {"name": "default__alter_column_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_column_comment", "macro_sql": "{% macro default__alter_column_comment(relation, column_dict) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_column_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.38367, "supported_languages": null}, "macro.dbt.alter_relation_comment": {"name": "alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.alter_relation_comment", "macro_sql": "{% macro alter_relation_comment(relation, relation_comment) -%}\n {{ return(adapter.dispatch('alter_relation_comment', 'dbt')(relation, relation_comment)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__alter_relation_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.383845, "supported_languages": null}, "macro.dbt.default__alter_relation_comment": {"name": "default__alter_relation_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__alter_relation_comment", "macro_sql": "{% macro default__alter_relation_comment(relation, relation_comment) -%}\n {{ exceptions.raise_not_implemented(\n 'alter_relation_comment macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.383989, "supported_languages": null}, "macro.dbt.persist_docs": {"name": "persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.persist_docs", "macro_sql": "{% macro persist_docs(relation, model, for_relation=true, for_columns=true) -%}\n {{ return(adapter.dispatch('persist_docs', 'dbt')(relation, model, for_relation, for_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__persist_docs"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.384224, "supported_languages": null}, "macro.dbt.default__persist_docs": {"name": "default__persist_docs", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/persist_docs.sql", "original_file_path": "macros/adapters/persist_docs.sql", "unique_id": "macro.dbt.default__persist_docs", "macro_sql": "{% macro default__persist_docs(relation, model, for_relation, for_columns) -%}\n {% if for_relation and config.persist_relation_docs() and model.description %}\n {% do run_query(alter_relation_comment(relation, model.description)) %}\n {% endif %}\n\n {% if for_columns and config.persist_column_docs() and model.columns %}\n {% do run_query(alter_column_comment(relation, model.columns)) %}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query", "macro.dbt.alter_relation_comment", "macro.dbt.alter_column_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.384737, "supported_languages": null}, "macro.dbt.get_catalog_relations": {"name": "get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_relations", "macro_sql": "{% macro get_catalog_relations(information_schema, relations) -%}\n {{ return(adapter.dispatch('get_catalog_relations', 'dbt')(information_schema, relations)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.38785, "supported_languages": null}, "macro.dbt.default__get_catalog_relations": {"name": "default__get_catalog_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_relations", "macro_sql": "{% macro default__get_catalog_relations(information_schema, relations) -%}\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog_relations not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3880918, "supported_languages": null}, "macro.dbt.get_catalog": {"name": "get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog", "macro_sql": "{% macro get_catalog(information_schema, schemas) -%}\n {{ return(adapter.dispatch('get_catalog', 'dbt')(information_schema, schemas)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_catalog"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.388274, "supported_languages": null}, "macro.dbt.default__get_catalog": {"name": "default__get_catalog", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog", "macro_sql": "{% macro default__get_catalog(information_schema, schemas) -%}\n\n {% set typename = adapter.type() %}\n {% set msg -%}\n get_catalog not implemented for {{ typename }}\n {%- endset %}\n\n {{ exceptions.raise_compiler_error(msg) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3885021, "supported_languages": null}, "macro.dbt.information_schema_name": {"name": "information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.information_schema_name", "macro_sql": "{% macro information_schema_name(database) %}\n {{ return(adapter.dispatch('information_schema_name', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__information_schema_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.388664, "supported_languages": null}, "macro.dbt.default__information_schema_name": {"name": "default__information_schema_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__information_schema_name", "macro_sql": "{% macro default__information_schema_name(database) -%}\n {%- if database -%}\n {{ database }}.INFORMATION_SCHEMA\n {%- else -%}\n INFORMATION_SCHEMA\n {%- endif -%}\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.388801, "supported_languages": null}, "macro.dbt.list_schemas": {"name": "list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_schemas", "macro_sql": "{% macro list_schemas(database) -%}\n {{ return(adapter.dispatch('list_schemas', 'dbt')(database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_schemas"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.388959, "supported_languages": null}, "macro.dbt.default__list_schemas": {"name": "default__list_schemas", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_schemas", "macro_sql": "{% macro default__list_schemas(database) -%}\n {% set sql %}\n select distinct schema_name\n from {{ information_schema_name(database) }}.SCHEMATA\n where catalog_name ilike '{{ database }}'\n {% endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.information_schema_name", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.389171, "supported_languages": null}, "macro.dbt.check_schema_exists": {"name": "check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.check_schema_exists", "macro_sql": "{% macro check_schema_exists(information_schema, schema) -%}\n {{ return(adapter.dispatch('check_schema_exists', 'dbt')(information_schema, schema)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__check_schema_exists"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.389675, "supported_languages": null}, "macro.dbt.default__check_schema_exists": {"name": "default__check_schema_exists", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__check_schema_exists", "macro_sql": "{% macro default__check_schema_exists(information_schema, schema) -%}\n {% set sql -%}\n select count(*)\n from {{ information_schema.replace(information_schema_view='SCHEMATA') }}\n where catalog_name='{{ information_schema.database }}'\n and schema_name='{{ schema }}'\n {%- endset %}\n {{ return(run_query(sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.389951, "supported_languages": null}, "macro.dbt.list_relations_without_caching": {"name": "list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.list_relations_without_caching", "macro_sql": "{% macro list_relations_without_caching(schema_relation) %}\n {{ return(adapter.dispatch('list_relations_without_caching', 'dbt')(schema_relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__list_relations_without_caching"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.39026, "supported_languages": null}, "macro.dbt.default__list_relations_without_caching": {"name": "default__list_relations_without_caching", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__list_relations_without_caching", "macro_sql": "{% macro default__list_relations_without_caching(schema_relation) %}\n {{ exceptions.raise_not_implemented(\n 'list_relations_without_caching macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.390432, "supported_languages": null}, "macro.dbt.get_catalog_for_single_relation": {"name": "get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_catalog_for_single_relation", "macro_sql": "{% macro get_catalog_for_single_relation(relation) %}\n {{ return(adapter.dispatch('get_catalog_for_single_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_catalog_for_single_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.39059, "supported_languages": null}, "macro.dbt.default__get_catalog_for_single_relation": {"name": "default__get_catalog_for_single_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_catalog_for_single_relation", "macro_sql": "{% macro default__get_catalog_for_single_relation(relation) %}\n {{ exceptions.raise_not_implemented(\n 'get_catalog_for_single_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3907242, "supported_languages": null}, "macro.dbt.get_relations": {"name": "get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relations", "macro_sql": "{% macro get_relations() %}\n {{ return(adapter.dispatch('get_relations', 'dbt')()) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3908632, "supported_languages": null}, "macro.dbt.default__get_relations": {"name": "default__get_relations", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relations", "macro_sql": "{% macro default__get_relations() %}\n {{ exceptions.raise_not_implemented(\n 'get_relations macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.390995, "supported_languages": null}, "macro.dbt.get_relation_last_modified": {"name": "get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.get_relation_last_modified", "macro_sql": "{% macro get_relation_last_modified(information_schema, relations) %}\n {{ return(adapter.dispatch('get_relation_last_modified', 'dbt')(information_schema, relations)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_relation_last_modified"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.39117, "supported_languages": null}, "macro.dbt.default__get_relation_last_modified": {"name": "default__get_relation_last_modified", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/metadata.sql", "original_file_path": "macros/adapters/metadata.sql", "unique_id": "macro.dbt.default__get_relation_last_modified", "macro_sql": "{% macro default__get_relation_last_modified(information_schema, relations) %}\n {{ exceptions.raise_not_implemented(\n 'get_relation_last_modified macro not implemented for adapter ' + adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.391314, "supported_languages": null}, "macro.dbt.get_columns_in_relation": {"name": "get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_relation", "macro_sql": "{% macro get_columns_in_relation(relation) -%}\n {{ return(adapter.dispatch('get_columns_in_relation', 'dbt')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_postgres.postgres__get_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.3933, "supported_languages": null}, "macro.dbt.default__get_columns_in_relation": {"name": "default__get_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_relation", "macro_sql": "{% macro default__get_columns_in_relation(relation) -%}\n {{ exceptions.raise_not_implemented(\n 'get_columns_in_relation macro not implemented for adapter '+adapter.type()) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.393444, "supported_languages": null}, "macro.dbt.sql_convert_columns_in_relation": {"name": "sql_convert_columns_in_relation", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.sql_convert_columns_in_relation", "macro_sql": "{% macro sql_convert_columns_in_relation(table) -%}\n {% set columns = [] %}\n {% for row in table %}\n {% do columns.append(api.Column(*row)) %}\n {% endfor %}\n {{ return(columns) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.393707, "supported_languages": null}, "macro.dbt.get_empty_subquery_sql": {"name": "get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_subquery_sql", "macro_sql": "{% macro get_empty_subquery_sql(select_sql, select_sql_header=none) -%}\n {{ return(adapter.dispatch('get_empty_subquery_sql', 'dbt')(select_sql, select_sql_header)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.393893, "supported_languages": null}, "macro.dbt.default__get_empty_subquery_sql": {"name": "default__get_empty_subquery_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_subquery_sql", "macro_sql": "{% macro default__get_empty_subquery_sql(select_sql, select_sql_header=none) %}\n {%- if select_sql_header is not none -%}\n {{ select_sql_header }}\n {%- endif -%}\n select * from (\n {{ select_sql }}\n ) as __dbt_sbq\n where false\n limit 0\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.394072, "supported_languages": null}, "macro.dbt.get_empty_schema_sql": {"name": "get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_empty_schema_sql", "macro_sql": "{% macro get_empty_schema_sql(columns) -%}\n {{ return(adapter.dispatch('get_empty_schema_sql', 'dbt')(columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_empty_schema_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.394225, "supported_languages": null}, "macro.dbt.default__get_empty_schema_sql": {"name": "default__get_empty_schema_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_empty_schema_sql", "macro_sql": "{% macro default__get_empty_schema_sql(columns) %}\n {%- set col_err = [] -%}\n {%- set col_naked_numeric = [] -%}\n select\n {% for i in columns %}\n {%- set col = columns[i] -%}\n {%- if col['data_type'] is not defined -%}\n {%- do col_err.append(col['name']) -%}\n {#-- If this column's type is just 'numeric' then it is missing precision/scale, raise a warning --#}\n {%- elif col['data_type'].strip().lower() in ('numeric', 'decimal', 'number') -%}\n {%- do col_naked_numeric.append(col['name']) -%}\n {%- endif -%}\n {% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}\n {{ cast('null', col['data_type']) }} as {{ col_name }}{{ \", \" if not loop.last }}\n {%- endfor -%}\n {%- if (col_err | length) > 0 -%}\n {{ exceptions.column_type_missing(column_names=col_err) }}\n {%- elif (col_naked_numeric | length) > 0 -%}\n {{ exceptions.warn(\"Detected columns with numeric type and unspecified precision/scale, this can lead to unintended rounding: \" ~ col_naked_numeric ~ \"`\") }}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.395278, "supported_languages": null}, "macro.dbt.get_column_schema_from_query": {"name": "get_column_schema_from_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_column_schema_from_query", "macro_sql": "{% macro get_column_schema_from_query(select_sql, select_sql_header=none) -%}\n {% set columns = [] %}\n {# -- Using an 'empty subquery' here to get the same schema as the given select_sql statement, without necessitating a data scan.#}\n {% set sql = get_empty_subquery_sql(select_sql, select_sql_header) %}\n {% set column_schema = adapter.get_column_schema_from_query(sql) %}\n {{ return(column_schema) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.395565, "supported_languages": null}, "macro.dbt.get_columns_in_query": {"name": "get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.get_columns_in_query", "macro_sql": "{% macro get_columns_in_query(select_sql) -%}\n {{ return(adapter.dispatch('get_columns_in_query', 'dbt')(select_sql)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__get_columns_in_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.39572, "supported_languages": null}, "macro.dbt.default__get_columns_in_query": {"name": "default__get_columns_in_query", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__get_columns_in_query", "macro_sql": "{% macro default__get_columns_in_query(select_sql) %}\n {% call statement('get_columns_in_query', fetch_result=True, auto_begin=False) -%}\n {{ get_empty_subquery_sql(select_sql) }}\n {% endcall %}\n {{ return(load_result('get_columns_in_query').table.columns | map(attribute='name') | list) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.get_empty_subquery_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.396013, "supported_languages": null}, "macro.dbt.alter_column_type": {"name": "alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_column_type", "macro_sql": "{% macro alter_column_type(relation, column_name, new_column_type) -%}\n {{ return(adapter.dispatch('alter_column_type', 'dbt')(relation, column_name, new_column_type)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_column_type"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.396201, "supported_languages": null}, "macro.dbt.default__alter_column_type": {"name": "default__alter_column_type", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_column_type", "macro_sql": "{% macro default__alter_column_type(relation, column_name, new_column_type) -%}\n {#\n 1. Create a new column (w/ temp name and correct type)\n 2. Copy data over to it\n 3. Drop the existing column (cascade!)\n 4. Rename the new column to existing column\n #}\n {%- set tmp_column = column_name + \"__dbt_alter\" -%}\n\n {% call statement('alter_column_type') %}\n alter table {{ relation.render() }} add column {{ adapter.quote(tmp_column) }} {{ new_column_type }};\n update {{ relation.render() }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};\n alter table {{ relation.render() }} drop column {{ adapter.quote(column_name) }} cascade;\n alter table {{ relation.render() }} rename column {{ adapter.quote(tmp_column) }} to {{ adapter.quote(column_name) }}\n {% endcall %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.396926, "supported_languages": null}, "macro.dbt.alter_relation_add_remove_columns": {"name": "alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.alter_relation_add_remove_columns", "macro_sql": "{% macro alter_relation_add_remove_columns(relation, add_columns = none, remove_columns = none) -%}\n {{ return(adapter.dispatch('alter_relation_add_remove_columns', 'dbt')(relation, add_columns, remove_columns)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__alter_relation_add_remove_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.397221, "supported_languages": null}, "macro.dbt.default__alter_relation_add_remove_columns": {"name": "default__alter_relation_add_remove_columns", "resource_type": "macro", "package_name": "dbt", "path": "macros/adapters/columns.sql", "original_file_path": "macros/adapters/columns.sql", "unique_id": "macro.dbt.default__alter_relation_add_remove_columns", "macro_sql": "{% macro default__alter_relation_add_remove_columns(relation, add_columns, remove_columns) %}\n\n {% if add_columns is none %}\n {% set add_columns = [] %}\n {% endif %}\n {% if remove_columns is none %}\n {% set remove_columns = [] %}\n {% endif %}\n\n {% set sql -%}\n\n alter {{ relation.type }} {{ relation.render() }}\n\n {% for column in add_columns %}\n add column {{ column.name }} {{ column.data_type }}{{ ',' if not loop.last }}\n {% endfor %}{{ ',' if add_columns and remove_columns }}\n\n {% for column in remove_columns %}\n drop column {{ column.name }}{{ ',' if not loop.last }}\n {% endfor %}\n\n {%- endset -%}\n\n {% do run_query(sql) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.39793, "supported_languages": null}, "macro.dbt.get_fixture_sql": {"name": "get_fixture_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_fixture_sql", "macro_sql": "{% macro get_fixture_sql(rows, column_name_to_data_types) %}\n-- Fixture for {{ model.name }}\n{% set default_row = {} %}\n\n{%- if not column_name_to_data_types -%}\n{#-- Use defer_relation IFF it is available in the manifest and 'this' is missing from the database --#}\n{%- set this_or_defer_relation = defer_relation if (defer_relation and not load_relation(this)) else this -%}\n{%- set columns_in_relation = adapter.get_columns_in_relation(this_or_defer_relation) -%}\n\n{%- set column_name_to_data_types = {} -%}\n{%- for column in columns_in_relation -%}\n{#-- This needs to be a case-insensitive comparison --#}\n{%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}\n{%- endfor -%}\n{%- endif -%}\n\n{%- if not column_name_to_data_types -%}\n {{ exceptions.raise_compiler_error(\"Not able to get columns for unit test '\" ~ model.name ~ \"' from relation \" ~ this ~ \" because the relation doesn't exist\") }}\n{%- endif -%}\n\n{%- for column_name, column_type in column_name_to_data_types.items() -%}\n {%- do default_row.update({column_name: (safe_cast(\"null\", column_type) | trim )}) -%}\n{%- endfor -%}\n\n{{ validate_fixture_rows(rows, row_number) }}\n\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\n{%- set default_row_copy = default_row.copy() -%}\n{%- do default_row_copy.update(formatted_row) -%}\nselect\n{%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n\n{%- if (rows | length) == 0 -%}\n select\n {%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%},{%- endif %}\n {%- endfor %}\n limit 0\n{%- endif -%}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.load_relation", "macro.dbt.safe_cast", "macro.dbt.validate_fixture_rows", "macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.401131, "supported_languages": null}, "macro.dbt.get_expected_sql": {"name": "get_expected_sql", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.get_expected_sql", "macro_sql": "{% macro get_expected_sql(rows, column_name_to_data_types) %}\n\n{%- if (rows | length) == 0 -%}\n select * from dbt_internal_unit_test_actual\n limit 0\n{%- else -%}\n{%- for row in rows -%}\n{%- set formatted_row = format_row(row, column_name_to_data_types) -%}\nselect\n{%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%}, {%- endif %}\n{%- endfor %}\n{%- if not loop.last %}\nunion all\n{% endif %}\n{%- endfor -%}\n{%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.format_row"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.40166, "supported_languages": null}, "macro.dbt.format_row": {"name": "format_row", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.format_row", "macro_sql": "\n\n{%- macro format_row(row, column_name_to_data_types) -%}\n {#-- generate case-insensitive formatted row --#}\n {% set formatted_row = {} %}\n {%- for column_name, column_value in row.items() -%}\n {% set column_name = column_name|lower %}\n\n {%- if column_name not in column_name_to_data_types %}\n {#-- if user-provided row contains column name that relation does not contain, raise an error --#}\n {% set fixture_name = \"expected output\" if model.resource_type == 'unit_test' else (\"'\" ~ model.name ~ \"'\") %}\n {{ exceptions.raise_compiler_error(\n \"Invalid column name: '\" ~ column_name ~ \"' in unit test fixture for \" ~ fixture_name ~ \".\"\n \"\\nAccepted columns for \" ~ fixture_name ~ \" are: \" ~ (column_name_to_data_types.keys()|list)\n ) }}\n {%- endif -%}\n\n {%- set column_type = column_name_to_data_types[column_name] %}\n\n {#-- sanitize column_value: wrap yaml strings in quotes, apply cast --#}\n {%- set column_value_clean = column_value -%}\n {%- if column_value is string -%}\n {%- set column_value_clean = dbt.string_literal(dbt.escape_single_quotes(column_value)) -%}\n {%- elif column_value is none -%}\n {%- set column_value_clean = 'null' -%}\n {%- endif -%}\n\n {%- set row_update = {column_name: safe_cast(column_value_clean, column_type) } -%}\n {%- do formatted_row.update(row_update) -%}\n {%- endfor -%}\n {{ return(formatted_row) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.string_literal", "macro.dbt.escape_single_quotes", "macro.dbt.safe_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4027038, "supported_languages": null}, "macro.dbt.validate_fixture_rows": {"name": "validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.validate_fixture_rows", "macro_sql": "{%- macro validate_fixture_rows(rows, row_number) -%}\n {{ return(adapter.dispatch('validate_fixture_rows', 'dbt')(rows, row_number)) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt.default__validate_fixture_rows"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.402923, "supported_languages": null}, "macro.dbt.default__validate_fixture_rows": {"name": "default__validate_fixture_rows", "resource_type": "macro", "package_name": "dbt", "path": "macros/unit_test_sql/get_fixture_sql.sql", "original_file_path": "macros/unit_test_sql/get_fixture_sql.sql", "unique_id": "macro.dbt.default__validate_fixture_rows", "macro_sql": "{%- macro default__validate_fixture_rows(rows, row_number) -%}\n {# This is an abstract method for adapter overrides as needed #}\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.403015, "supported_languages": null}, "macro.dbt.resolve_model_name": {"name": "resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.resolve_model_name", "macro_sql": "{% macro resolve_model_name(input_model_name) %}\n {{ return(adapter.dispatch('resolve_model_name', 'dbt')(input_model_name)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.default__resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.404511, "supported_languages": null}, "macro.dbt.default__resolve_model_name": {"name": "default__resolve_model_name", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.default__resolve_model_name", "macro_sql": "\n\n{%- macro default__resolve_model_name(input_model_name) -%}\n {{ input_model_name | string | replace('\"', '\\\"') }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.40466, "supported_languages": null}, "macro.dbt.build_ref_function": {"name": "build_ref_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_ref_function", "macro_sql": "{% macro build_ref_function(model) %}\n\n {%- set ref_dict = {} -%}\n {%- for _ref in model.refs -%}\n {% set _ref_args = [_ref.get('package'), _ref['name']] if _ref.get('package') else [_ref['name'],] %}\n {%- set resolved = ref(*_ref_args, v=_ref.get('version')) -%}\n {%- if _ref.get('version') -%}\n {% do _ref_args.extend([\"v\" ~ _ref['version']]) %}\n {%- endif -%}\n {%- do ref_dict.update({_ref_args | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef ref(*args, **kwargs):\n refs = {{ ref_dict | tojson }}\n key = '.'.join(args)\n version = kwargs.get(\"v\") or kwargs.get(\"version\")\n if version:\n key += f\".v{version}\"\n dbt_load_df_function = kwargs.get(\"dbt_load_df_function\")\n return dbt_load_df_function(refs[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4053628, "supported_languages": null}, "macro.dbt.build_source_function": {"name": "build_source_function", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_source_function", "macro_sql": "{% macro build_source_function(model) %}\n\n {%- set source_dict = {} -%}\n {%- for _source in model.sources -%}\n {%- set resolved = source(*_source) -%}\n {%- do source_dict.update({_source | join('.'): resolve_model_name(resolved)}) -%}\n {%- endfor -%}\n\ndef source(*args, dbt_load_df_function):\n sources = {{ source_dict | tojson }}\n key = '.'.join(args)\n return dbt_load_df_function(sources[key])\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.resolve_model_name"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.405726, "supported_languages": null}, "macro.dbt.build_config_dict": {"name": "build_config_dict", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.build_config_dict", "macro_sql": "{% macro build_config_dict(model) %}\n {%- set config_dict = {} -%}\n {% set config_dbt_used = zip(model.config.config_keys_used, model.config.config_keys_defaults) | list %}\n {%- for key, default in config_dbt_used -%}\n {# weird type testing with enum, would be much easier to write this logic in Python! #}\n {%- if key == \"language\" -%}\n {%- set value = \"python\" -%}\n {%- endif -%}\n {%- set value = model.config.get(key, default) -%}\n {%- do config_dict.update({key: value}) -%}\n {%- endfor -%}\nconfig_dict = {{ config_dict }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4062378, "supported_languages": null}, "macro.dbt.py_script_postfix": {"name": "py_script_postfix", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_postfix", "macro_sql": "{% macro py_script_postfix(model) %}\n# This part is user provided model code\n# you will need to copy the next section to run the code\n# COMMAND ----------\n# this part is dbt logic for get ref work, do not modify\n\n{{ build_ref_function(model ) }}\n{{ build_source_function(model ) }}\n{{ build_config_dict(model) }}\n\nclass config:\n def __init__(self, *args, **kwargs):\n pass\n\n @staticmethod\n def get(key, default=None):\n return config_dict.get(key, default)\n\nclass this:\n \"\"\"dbt.this() or dbt.this.identifier\"\"\"\n database = \"{{ this.database }}\"\n schema = \"{{ this.schema }}\"\n identifier = \"{{ this.identifier }}\"\n {% set this_relation_name = resolve_model_name(this) %}\n def __repr__(self):\n return '{{ this_relation_name }}'\n\n\nclass dbtObj:\n def __init__(self, load_df_function) -> None:\n self.source = lambda *args: source(*args, dbt_load_df_function=load_df_function)\n self.ref = lambda *args, **kwargs: ref(*args, **kwargs, dbt_load_df_function=load_df_function)\n self.config = config\n self.this = this()\n self.is_incremental = {{ is_incremental() }}\n\n# COMMAND ----------\n{{py_script_comment()}}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.build_ref_function", "macro.dbt.build_source_function", "macro.dbt.build_config_dict", "macro.dbt.resolve_model_name", "macro.dbt.is_incremental", "macro.dbt.py_script_comment"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.40678, "supported_languages": null}, "macro.dbt.py_script_comment": {"name": "py_script_comment", "resource_type": "macro", "package_name": "dbt", "path": "macros/python_model/python.sql", "original_file_path": "macros/python_model/python.sql", "unique_id": "macro.dbt.py_script_comment", "macro_sql": "{%macro py_script_comment()%}\n{%endmacro%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.406857, "supported_languages": null}, "macro.dbt.test_unique": {"name": "test_unique", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_unique", "macro_sql": "{% test unique(model, column_name) %}\n {% set macro = adapter.dispatch('test_unique', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_unique"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.407341, "supported_languages": null}, "macro.dbt.test_not_null": {"name": "test_not_null", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_not_null", "macro_sql": "{% test not_null(model, column_name) %}\n {% set macro = adapter.dispatch('test_not_null', 'dbt') %}\n {{ macro(model, column_name) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.407573, "supported_languages": null}, "macro.dbt.test_accepted_values": {"name": "test_accepted_values", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_accepted_values", "macro_sql": "{% test accepted_values(model, column_name, values, quote=True) %}\n {% set macro = adapter.dispatch('test_accepted_values', 'dbt') %}\n {{ macro(model, column_name, values, quote) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.407885, "supported_languages": null}, "macro.dbt.test_relationships": {"name": "test_relationships", "resource_type": "macro", "package_name": "dbt", "path": "tests/generic/builtin.sql", "original_file_path": "tests/generic/builtin.sql", "unique_id": "macro.dbt.test_relationships", "macro_sql": "{% test relationships(model, column_name, to, field) %}\n {% set macro = adapter.dispatch('test_relationships', 'dbt') %}\n {{ macro(model, column_name, to, field) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt.default__test_relationships"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.408158, "supported_languages": null}, "macro.dbt_utils.get_url_host": {"name": "get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.get_url_host", "macro_sql": "{% macro get_url_host(field) -%}\n {{ return(adapter.dispatch('get_url_host', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_host"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.408486, "supported_languages": null}, "macro.dbt_utils.default__get_url_host": {"name": "default__get_url_host", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_host.sql", "original_file_path": "macros/web/get_url_host.sql", "unique_id": "macro.dbt_utils.default__get_url_host", "macro_sql": "{% macro default__get_url_host(field) -%}\n\n{%- set parsed =\n dbt.split_part(\n dbt.split_part(\n dbt.replace(\n dbt.replace(\n dbt.replace(field, \"'android-app://'\", \"''\"\n ), \"'http://'\", \"''\"\n ), \"'https://'\", \"''\"\n ), \"'/'\", 1\n ), \"'?'\", 1\n )\n\n-%}\n\n\n {{ dbt.safe_cast(\n parsed,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part", "macro.dbt.replace", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.408926, "supported_languages": null}, "macro.dbt_utils.get_url_path": {"name": "get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.get_url_path", "macro_sql": "{% macro get_url_path(field) -%}\n {{ return(adapter.dispatch('get_url_path', 'dbt_utils')(field)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_path"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.409343, "supported_languages": null}, "macro.dbt_utils.default__get_url_path": {"name": "default__get_url_path", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_path.sql", "original_file_path": "macros/web/get_url_path.sql", "unique_id": "macro.dbt_utils.default__get_url_path", "macro_sql": "{% macro default__get_url_path(field) -%}\n\n {%- set stripped_url =\n dbt.replace(\n dbt.replace(field, \"'http://'\", \"''\"), \"'https://'\", \"''\")\n -%}\n\n {%- set first_slash_pos -%}\n coalesce(\n nullif({{ dbt.position(\"'/'\", stripped_url) }}, 0),\n {{ dbt.position(\"'?'\", stripped_url) }} - 1\n )\n {%- endset -%}\n\n {%- set parsed_path =\n dbt.split_part(\n dbt.right(\n stripped_url,\n dbt.length(stripped_url) ~ \"-\" ~ first_slash_pos\n ),\n \"'?'\", 1\n )\n -%}\n\n {{ dbt.safe_cast(\n parsed_path,\n dbt.type_string()\n )}}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.replace", "macro.dbt.position", "macro.dbt.split_part", "macro.dbt.right", "macro.dbt.length", "macro.dbt.safe_cast", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4099252, "supported_languages": null}, "macro.dbt_utils.get_url_parameter": {"name": "get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.get_url_parameter", "macro_sql": "{% macro get_url_parameter(field, url_parameter) -%}\n {{ return(adapter.dispatch('get_url_parameter', 'dbt_utils')(field, url_parameter)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.410196, "supported_languages": null}, "macro.dbt_utils.default__get_url_parameter": {"name": "default__get_url_parameter", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/web/get_url_parameter.sql", "original_file_path": "macros/web/get_url_parameter.sql", "unique_id": "macro.dbt_utils.default__get_url_parameter", "macro_sql": "{% macro default__get_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"='\" -%}\n\n{%- set split = dbt.split_part(dbt.split_part(field, formatted_url_parameter, 2), \"'&'\", 1) -%}\n\nnullif({{ split }},'')\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.split_part"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.410475, "supported_languages": null}, "macro.dbt_utils.test_fewer_rows_than": {"name": "test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.test_fewer_rows_than", "macro_sql": "{% test fewer_rows_than(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_fewer_rows_than', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_fewer_rows_than"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4115782, "supported_languages": null}, "macro.dbt_utils.default__test_fewer_rows_than": {"name": "default__test_fewer_rows_than", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/fewer_rows_than.sql", "original_file_path": "macros/generic_tests/fewer_rows_than.sql", "unique_id": "macro.dbt_utils.default__test_fewer_rows_than", "macro_sql": "{% macro default__test_fewer_rows_than(model, compare_model, group_by_columns) %}\n\n{{ config(fail_calc = 'sum(coalesce(row_count_delta, 0))') }}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in equal_rowcount. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_fewer_rows_than'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_our_model \n from {{ model }}\n {{ groupby_gb_cols }}\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_fewer_rows_than,\n count(*) as count_comparison_model \n from {{ compare_model }}\n {{ groupby_gb_cols }}\n\n),\ncounts as (\n\n select\n\n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_our_model,\n count_comparison_model\n from a\n full join b on \n a.id_dbtutils_test_fewer_rows_than = b.id_dbtutils_test_fewer_rows_than\n {{ join_gb_cols }}\n\n),\nfinal as (\n\n select *,\n case\n -- fail the test if we have more rows than the reference model and return the row count delta\n when count_our_model > count_comparison_model then (count_our_model - count_comparison_model)\n -- fail the test if they are the same number\n when count_our_model = count_comparison_model then 1\n -- pass the test if the delta is positive (i.e. return the number 0)\n else 0\n end as row_count_delta\n from counts\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.412492, "supported_languages": null}, "macro.dbt_utils.test_equal_rowcount": {"name": "test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.test_equal_rowcount", "macro_sql": "{% test equal_rowcount(model, compare_model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_equal_rowcount', 'dbt_utils')(model, compare_model, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equal_rowcount"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4132988, "supported_languages": null}, "macro.dbt_utils.default__test_equal_rowcount": {"name": "default__test_equal_rowcount", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equal_rowcount.sql", "original_file_path": "macros/generic_tests/equal_rowcount.sql", "unique_id": "macro.dbt_utils.default__test_equal_rowcount", "macro_sql": "{% macro default__test_equal_rowcount(model, compare_model, group_by_columns) %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = 'sum(coalesce(diff_count, 0))') }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(', ') + ', ' %}\n {% set join_gb_cols %}\n {% for c in group_by_columns %}\n and a.{{c}} = b.{{c}}\n {% endfor %}\n {% endset %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n{#-- We must add a fake join key in case additional grouping variables are not provided --#}\n{#-- Redshift does not allow for dynamically created join conditions (e.g. full join on 1 = 1 --#}\n{#-- The same logic is used in fewer_rows_than. In case of changes, maintain consistent logic --#}\n{% set group_by_columns = ['id_dbtutils_test_equal_rowcount'] + group_by_columns %}\n{% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n\nwith a as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_a \n from {{ model }}\n {{groupby_gb_cols}}\n\n\n),\nb as (\n\n select \n {{select_gb_cols}}\n 1 as id_dbtutils_test_equal_rowcount,\n count(*) as count_b \n from {{ compare_model }}\n {{groupby_gb_cols}}\n\n),\nfinal as (\n\n select\n \n {% for c in group_by_columns -%}\n a.{{c}} as {{c}}_a,\n b.{{c}} as {{c}}_b,\n {% endfor %}\n\n count_a,\n count_b,\n abs(count_a - count_b) as diff_count\n\n from a\n full join b\n on\n a.id_dbtutils_test_equal_rowcount = b.id_dbtutils_test_equal_rowcount\n {{join_gb_cols}}\n\n\n)\n\nselect * from final\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.414311, "supported_languages": null}, "macro.dbt_utils.test_relationships_where": {"name": "test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.test_relationships_where", "macro_sql": "{% test relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n {{ return(adapter.dispatch('test_relationships_where', 'dbt_utils')(model, column_name, to, field, from_condition, to_condition)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_relationships_where"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.414926, "supported_languages": null}, "macro.dbt_utils.default__test_relationships_where": {"name": "default__test_relationships_where", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/relationships_where.sql", "original_file_path": "macros/generic_tests/relationships_where.sql", "unique_id": "macro.dbt_utils.default__test_relationships_where", "macro_sql": "{% macro default__test_relationships_where(model, column_name, to, field, from_condition=\"1=1\", to_condition=\"1=1\") %}\n\n{# T-SQL has no boolean data type so we use 1=1 which returns TRUE #}\n{# ref https://stackoverflow.com/a/7170753/3842610 #}\n\nwith left_table as (\n\n select\n {{column_name}} as id\n\n from {{model}}\n\n where {{column_name}} is not null\n and {{from_condition}}\n\n),\n\nright_table as (\n\n select\n {{field}} as id\n\n from {{to}}\n\n where {{field}} is not null\n and {{to_condition}}\n\n),\n\nexceptions as (\n\n select\n left_table.id,\n right_table.id as right_id\n\n from left_table\n\n left join right_table\n on left_table.id = right_table.id\n\n where right_table.id is null\n\n)\n\nselect * from exceptions\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.415228, "supported_languages": null}, "macro.dbt_utils.test_recency": {"name": "test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.test_recency", "macro_sql": "{% test recency(model, field, datepart, interval, ignore_time_component=False, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_recency', 'dbt_utils')(model, field, datepart, interval, ignore_time_component, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_recency"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4158652, "supported_languages": null}, "macro.dbt_utils.default__test_recency": {"name": "default__test_recency", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/recency.sql", "original_file_path": "macros/generic_tests/recency.sql", "unique_id": "macro.dbt_utils.default__test_recency", "macro_sql": "{% macro default__test_recency(model, field, datepart, interval, ignore_time_component, group_by_columns) %}\n\n{% set threshold = 'cast(' ~ dbt.dateadd(datepart, interval * -1, dbt.current_timestamp()) ~ ' as ' ~ ('date' if ignore_time_component else dbt.type_timestamp()) ~ ')' %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nwith recency as (\n\n select \n\n {{ select_gb_cols }}\n {% if ignore_time_component %}\n cast(max({{ field }}) as date) as most_recent\n {%- else %}\n max({{ field }}) as most_recent\n {%- endif %}\n\n from {{ model }}\n\n {{ groupby_gb_cols }}\n\n)\n\nselect\n\n {{ select_gb_cols }}\n most_recent,\n {{ threshold }} as threshold\n\nfrom recency\nwhere most_recent < {{ threshold }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd", "macro.dbt.current_timestamp", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.416557, "supported_languages": null}, "macro.dbt_utils.test_not_constant": {"name": "test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.test_not_constant", "macro_sql": "{% test not_constant(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_constant', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_constant"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.41694, "supported_languages": null}, "macro.dbt_utils.default__test_not_constant": {"name": "default__test_not_constant", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_constant.sql", "original_file_path": "macros/generic_tests/not_constant.sql", "unique_id": "macro.dbt_utils.default__test_not_constant", "macro_sql": "{% macro default__test_not_constant(model, column_name, group_by_columns) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\n\nselect\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count(distinct {{ column_name }}) as filler_column\n\nfrom {{ model }}\n\n {{groupby_gb_cols}}\n\nhaving count(distinct {{ column_name }}) = 1\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.41731, "supported_languages": null}, "macro.dbt_utils.test_accepted_range": {"name": "test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.test_accepted_range", "macro_sql": "{% test accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n {{ return(adapter.dispatch('test_accepted_range', 'dbt_utils')(model, column_name, min_value, max_value, inclusive)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_accepted_range"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4179342, "supported_languages": null}, "macro.dbt_utils.default__test_accepted_range": {"name": "default__test_accepted_range", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/accepted_range.sql", "original_file_path": "macros/generic_tests/accepted_range.sql", "unique_id": "macro.dbt_utils.default__test_accepted_range", "macro_sql": "{% macro default__test_accepted_range(model, column_name, min_value=none, max_value=none, inclusive=true) %}\n\nwith meet_condition as(\n select *\n from {{ model }}\n),\n\nvalidation_errors as (\n select *\n from meet_condition\n where\n -- never true, defaults to an empty result set. Exists to ensure any combo of the `or` clauses below succeeds\n 1 = 2\n\n {%- if min_value is not none %}\n -- records with a value >= min_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} > {{- \"=\" if inclusive }} {{ min_value }}\n {%- endif %}\n\n {%- if max_value is not none %}\n -- records with a value <= max_value are permitted. The `not` flips this to find records that don't meet the rule.\n or not {{ column_name }} < {{- \"=\" if inclusive }} {{ max_value }}\n {%- endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.41846, "supported_languages": null}, "macro.dbt_utils.test_not_accepted_values": {"name": "test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.test_not_accepted_values", "macro_sql": "{% test not_accepted_values(model, column_name, values, quote=True) %}\n {{ return(adapter.dispatch('test_not_accepted_values', 'dbt_utils')(model, column_name, values, quote)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_accepted_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4190028, "supported_languages": null}, "macro.dbt_utils.default__test_not_accepted_values": {"name": "default__test_not_accepted_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_accepted_values.sql", "original_file_path": "macros/generic_tests/not_accepted_values.sql", "unique_id": "macro.dbt_utils.default__test_not_accepted_values", "macro_sql": "{% macro default__test_not_accepted_values(model, column_name, values, quote=True) %}\nwith all_values as (\n\n select distinct\n {{ column_name }} as value_field\n\n from {{ model }}\n\n),\n\nvalidation_errors as (\n\n select\n value_field\n\n from all_values\n where value_field in (\n {% for value in values -%}\n {% if quote -%}\n '{{ value }}'\n {%- else -%}\n {{ value }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {%- endfor %}\n )\n\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.419391, "supported_languages": null}, "macro.dbt_utils.test_at_least_one": {"name": "test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.test_at_least_one", "macro_sql": "{% test at_least_one(model, column_name, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_at_least_one', 'dbt_utils')(model, column_name, group_by_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_at_least_one"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.420071, "supported_languages": null}, "macro.dbt_utils.default__test_at_least_one": {"name": "default__test_at_least_one", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/at_least_one.sql", "original_file_path": "macros/generic_tests/at_least_one.sql", "unique_id": "macro.dbt_utils.default__test_at_least_one", "macro_sql": "{% macro default__test_at_least_one(model, column_name, group_by_columns) %}\n\n{% set pruned_cols = [column_name] %}\n\n{% if group_by_columns|length() > 0 %}\n\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n {% set pruned_cols = group_by_columns %}\n\n {% if column_name not in pruned_cols %}\n {% do pruned_cols.append(column_name) %}\n {% endif %}\n\n{% endif %}\n\n{% set select_pruned_cols = pruned_cols|join(' ,') %}\n\nselect *\nfrom (\n with pruned_rows as (\n select\n {{ select_pruned_cols }}\n from {{ model }}\n {% if group_by_columns|length() == 0 %}\n where {{ column_name }} is not null\n limit 1\n {% endif %}\n )\n select\n {# In TSQL, subquery aggregate columns need aliases #}\n {# thus: a filler col name, 'filler_column' #}\n {{select_gb_cols}}\n count({{ column_name }}) as filler_column\n\n from pruned_rows\n\n {{groupby_gb_cols}}\n\n having count({{ column_name }}) = 0\n\n) validation_errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.420783, "supported_languages": null}, "macro.dbt_utils.test_unique_combination_of_columns": {"name": "test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.test_unique_combination_of_columns", "macro_sql": "{% test unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n {{ return(adapter.dispatch('test_unique_combination_of_columns', 'dbt_utils')(model, combination_of_columns, quote_columns)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_unique_combination_of_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4213219, "supported_languages": null}, "macro.dbt_utils.default__test_unique_combination_of_columns": {"name": "default__test_unique_combination_of_columns", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/unique_combination_of_columns.sql", "original_file_path": "macros/generic_tests/unique_combination_of_columns.sql", "unique_id": "macro.dbt_utils.default__test_unique_combination_of_columns", "macro_sql": "{% macro default__test_unique_combination_of_columns(model, combination_of_columns, quote_columns=false) %}\n\n{% if not quote_columns %}\n {%- set column_list=combination_of_columns %}\n{% elif quote_columns %}\n {%- set column_list=[] %}\n {% for column in combination_of_columns -%}\n {% set column_list = column_list.append( adapter.quote(column) ) %}\n {%- endfor %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`quote_columns` argument for unique_combination_of_columns test must be one of [True, False] Got: '\" ~ quote ~\"'.'\"\n ) }}\n{% endif %}\n\n{%- set columns_csv=column_list | join(', ') %}\n\n\nwith validation_errors as (\n\n select\n {{ columns_csv }}\n from {{ model }}\n group by {{ columns_csv }}\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.421849, "supported_languages": null}, "macro.dbt_utils.test_cardinality_equality": {"name": "test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.test_cardinality_equality", "macro_sql": "{% test cardinality_equality(model, column_name, to, field) %}\n {{ return(adapter.dispatch('test_cardinality_equality', 'dbt_utils')(model, column_name, to, field)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_cardinality_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.422335, "supported_languages": null}, "macro.dbt_utils.default__test_cardinality_equality": {"name": "default__test_cardinality_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/cardinality_equality.sql", "original_file_path": "macros/generic_tests/cardinality_equality.sql", "unique_id": "macro.dbt_utils.default__test_cardinality_equality", "macro_sql": "{% macro default__test_cardinality_equality(model, column_name, to, field) %}\n\n{# T-SQL does not let you use numbers as aliases for columns #}\n{# Thus, no \"GROUP BY 1\" #}\n\nwith table_a as (\nselect\n {{ column_name }},\n count(*) as num_rows\nfrom {{ model }}\ngroup by {{ column_name }}\n),\n\ntable_b as (\nselect\n {{ field }},\n count(*) as num_rows\nfrom {{ to }}\ngroup by {{ field }}\n),\n\nexcept_a as (\n select *\n from table_a\n {{ dbt.except() }}\n select *\n from table_b\n),\n\nexcept_b as (\n select *\n from table_b\n {{ dbt.except() }}\n select *\n from table_a\n),\n\nunioned as (\n select *\n from except_a\n union all\n select *\n from except_b\n)\n\nselect *\nfrom unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4226182, "supported_languages": null}, "macro.dbt_utils.test_expression_is_true": {"name": "test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.test_expression_is_true", "macro_sql": "{% test expression_is_true(model, expression, column_name=None) %}\n {{ return(adapter.dispatch('test_expression_is_true', 'dbt_utils')(model, expression, column_name)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_expression_is_true"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.422955, "supported_languages": null}, "macro.dbt_utils.default__test_expression_is_true": {"name": "default__test_expression_is_true", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/expression_is_true.sql", "original_file_path": "macros/generic_tests/expression_is_true.sql", "unique_id": "macro.dbt_utils.default__test_expression_is_true", "macro_sql": "{% macro default__test_expression_is_true(model, expression, column_name) %}\n\n{% set column_list = '*' if should_store_failures() else \"1\" %}\n\nselect\n {{ column_list }}\nfrom {{ model }}\n{% if column_name is none %}\nwhere not({{ expression }})\n{%- else %}\nwhere not({{ column_name }} {{ expression }})\n{%- endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.should_store_failures"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.423331, "supported_languages": null}, "macro.dbt_utils.test_not_null_proportion": {"name": "test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.test_not_null_proportion", "macro_sql": "{% macro test_not_null_proportion(model, group_by_columns = []) %}\n {{ return(adapter.dispatch('test_not_null_proportion', 'dbt_utils')(model, group_by_columns, **kwargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_null_proportion"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.423926, "supported_languages": null}, "macro.dbt_utils.default__test_not_null_proportion": {"name": "default__test_not_null_proportion", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_null_proportion.sql", "original_file_path": "macros/generic_tests/not_null_proportion.sql", "unique_id": "macro.dbt_utils.default__test_not_null_proportion", "macro_sql": "{% macro default__test_not_null_proportion(model, group_by_columns) %}\n\n{% set column_name = kwargs.get('column_name', kwargs.get('arg')) %}\n{% set at_least = kwargs.get('at_least', kwargs.get('arg')) %}\n{% set at_most = kwargs.get('at_most', kwargs.get('arg', 1)) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(' ,') + ', ' %}\n {% set groupby_gb_cols = 'group by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith validation as (\n select\n {{select_gb_cols}}\n sum(case when {{ column_name }} is null then 0 else 1 end) / cast(count(*) as {{ dbt.type_numeric() }}) as not_null_proportion\n from {{ model }}\n {{groupby_gb_cols}}\n),\nvalidation_errors as (\n select\n {{select_gb_cols}}\n not_null_proportion\n from validation\n where not_null_proportion < {{ at_least }} or not_null_proportion > {{ at_most }}\n)\nselect\n *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.424617, "supported_languages": null}, "macro.dbt_utils.test_sequential_values": {"name": "test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.test_sequential_values", "macro_sql": "{% test sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n {{ return(adapter.dispatch('test_sequential_values', 'dbt_utils')(model, column_name, interval, datepart, group_by_columns)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_sequential_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.425388, "supported_languages": null}, "macro.dbt_utils.default__test_sequential_values": {"name": "default__test_sequential_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/sequential_values.sql", "original_file_path": "macros/generic_tests/sequential_values.sql", "unique_id": "macro.dbt_utils.default__test_sequential_values", "macro_sql": "{% macro default__test_sequential_values(model, column_name, interval=1, datepart=None, group_by_columns = []) %}\n\n{% set previous_column_name = \"previous_\" ~ dbt_utils.slugify(column_name) %}\n\n{% if group_by_columns|length() > 0 %}\n {% set select_gb_cols = group_by_columns|join(',') + ', ' %}\n {% set partition_gb_cols = 'partition by ' + group_by_columns|join(',') %}\n{% endif %}\n\nwith windowed as (\n\n select\n {{ select_gb_cols }}\n {{ column_name }},\n lag({{ column_name }}) over (\n {{partition_gb_cols}}\n order by {{ column_name }}\n ) as {{ previous_column_name }}\n from {{ model }}\n),\n\nvalidation_errors as (\n select\n *\n from windowed\n {% if datepart %}\n where not(cast({{ column_name }} as {{ dbt.type_timestamp() }})= cast({{ dbt.dateadd(datepart, interval, previous_column_name) }} as {{ dbt.type_timestamp() }}))\n {% else %}\n where not({{ column_name }} = {{ previous_column_name }} + {{ interval }})\n {% endif %}\n)\n\nselect *\nfrom validation_errors\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.slugify", "macro.dbt.type_timestamp", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.426123, "supported_languages": null}, "macro.dbt_utils.test_equality": {"name": "test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.test_equality", "macro_sql": "{% test equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n {{ return(adapter.dispatch('test_equality', 'dbt_utils')(model, compare_model, compare_columns, exclude_columns, precision)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_equality"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4278772, "supported_languages": null}, "macro.dbt_utils.default__test_equality": {"name": "default__test_equality", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/equality.sql", "original_file_path": "macros/generic_tests/equality.sql", "unique_id": "macro.dbt_utils.default__test_equality", "macro_sql": "{% macro default__test_equality(model, compare_model, compare_columns=None, exclude_columns=None, precision = None) %}\n\n{%- if compare_columns and exclude_columns -%}\n {{ exceptions.raise_compiler_error(\"Both a compare and an ignore list were provided to the `equality` macro. Only one is allowed\") }}\n{%- endif -%}\n\n{% set set_diff %}\n count(*) + coalesce(abs(\n sum(case when which_diff = 'a_minus_b' then 1 else 0 end) -\n sum(case when which_diff = 'b_minus_a' then 1 else 0 end)\n ), 0)\n{% endset %}\n\n{#-- Needs to be set at parse time, before we return '' below --#}\n{{ config(fail_calc = set_diff) }}\n\n{#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n{%- if not execute -%}\n {{ return('') }}\n{% endif %}\n\n\n\n-- setup\n{%- do dbt_utils._is_relation(model, 'test_equality') -%}\n\n{# Ensure there are no extra columns in the compare_model vs model #}\n{%- if not compare_columns -%}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- do dbt_utils._is_ephemeral(compare_model, 'test_equality') -%}\n\n {%- set model_columns = adapter.get_columns_in_relation(model) -%}\n {%- set compare_model_columns = adapter.get_columns_in_relation(compare_model) -%}\n\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- set include_model_columns = [] %}\n {%- for column in model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n {%- for column in compare_model_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_model_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns_set = set(include_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(include_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- else -%}\n {%- set compare_columns_set = set(model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- set compare_model_columns_set = set(compare_model_columns | map(attribute='quoted') | map(\"lower\")) %}\n {%- endif -%}\n\n {% if compare_columns_set != compare_model_columns_set %}\n {{ exceptions.raise_compiler_error(compare_model ~\" has less columns than \" ~ model ~ \", please ensure they have the same columns or use the `compare_columns` or `exclude_columns` arguments to subset them.\") }}\n {% endif %}\n\n\n{% endif %}\n\n{%- if not precision -%}\n {%- if not compare_columns -%}\n {# \n You cannot get the columns in an ephemeral model (due to not existing in the information schema),\n so if the user does not provide an explicit list of columns we must error in the case it is ephemeral\n #}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set compare_columns = adapter.get_columns_in_relation(model)-%}\n\n {%- if exclude_columns -%}\n {#-- Lower case ignore columns for easier comparison --#}\n {%- set exclude_columns = exclude_columns | map(\"lower\") | list %}\n\n {# Filter out the excluded columns #}\n {%- set include_columns = [] %}\n {%- for column in compare_columns -%}\n {%- if column.name | lower not in exclude_columns -%}\n {% do include_columns.append(column) %}\n {%- endif %}\n {%- endfor %}\n\n {%- set compare_columns = include_columns | map(attribute='quoted') %}\n {%- else -%} {# Compare columns provided #}\n {%- set compare_columns = compare_columns | map(attribute='quoted') %}\n {%- endif -%}\n {%- endif -%}\n\n {% set compare_cols_csv = compare_columns | join(', ') %}\n\n{% else %} {# Precision required #}\n {#-\n If rounding is required, we need to get the types, so it cannot be ephemeral even if they provide column names\n -#}\n {%- do dbt_utils._is_ephemeral(model, 'test_equality') -%}\n {%- set columns = adapter.get_columns_in_relation(model) -%}\n\n {% set columns_list = [] %}\n {%- for col in columns -%}\n {%- if (\n (col.name|lower in compare_columns|map('lower') or not compare_columns) and\n (col.name|lower not in exclude_columns|map('lower') or not exclude_columns)\n ) -%}\n {# Databricks double type is not picked up by any number type checks in dbt #}\n {%- if col.is_float() or col.is_numeric() or col.data_type == 'double' -%}\n {# Cast is required due to postgres not having round for a double precision number #}\n {%- do columns_list.append('round(cast(' ~ col.quoted ~ ' as ' ~ dbt.type_numeric() ~ '),' ~ precision ~ ') as ' ~ col.quoted) -%}\n {%- else -%} {# Non-numeric type #}\n {%- do columns_list.append(col.quoted) -%}\n {%- endif -%}\n {% endif %}\n {%- endfor -%}\n\n {% set compare_cols_csv = columns_list | join(', ') %}\n\n{% endif %}\n\nwith a as (\n\n select * from {{ model }}\n\n),\n\nb as (\n\n select * from {{ compare_model }}\n\n),\n\na_minus_b as (\n\n select {{compare_cols_csv}} from a\n {{ dbt.except() }}\n select {{compare_cols_csv}} from b\n\n),\n\nb_minus_a as (\n\n select {{compare_cols_csv}} from b\n {{ dbt.except() }}\n select {{compare_cols_csv}} from a\n\n),\n\nunioned as (\n\n select 'a_minus_b' as which_diff, a_minus_b.* from a_minus_b\n union all\n select 'b_minus_a' as which_diff, b_minus_a.* from b_minus_a\n\n)\n\nselect * from unioned\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_numeric", "macro.dbt.except"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.431526, "supported_languages": null}, "macro.dbt_utils.test_not_empty_string": {"name": "test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.test_not_empty_string", "macro_sql": "{% test not_empty_string(model, column_name, trim_whitespace=true) %}\n\n {{ return(adapter.dispatch('test_not_empty_string', 'dbt_utils')(model, column_name, trim_whitespace)) }}\n\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_not_empty_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.432045, "supported_languages": null}, "macro.dbt_utils.default__test_not_empty_string": {"name": "default__test_not_empty_string", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/not_empty_string.sql", "original_file_path": "macros/generic_tests/not_empty_string.sql", "unique_id": "macro.dbt_utils.default__test_not_empty_string", "macro_sql": "{% macro default__test_not_empty_string(model, column_name, trim_whitespace=true) %}\n\n with\n \n all_values as (\n\n select \n\n\n {% if trim_whitespace == true -%}\n\n trim({{ column_name }}) as {{ column_name }}\n\n {%- else -%}\n\n {{ column_name }}\n\n {%- endif %}\n \n from {{ model }}\n\n ),\n\n errors as (\n\n select * from all_values\n where {{ column_name }} = ''\n\n )\n\n select * from errors\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4323132, "supported_languages": null}, "macro.dbt_utils.test_mutually_exclusive_ranges": {"name": "test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.test_mutually_exclusive_ranges", "macro_sql": "{% test mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n {{ return(adapter.dispatch('test_mutually_exclusive_ranges', 'dbt_utils')(model, lower_bound_column, upper_bound_column, partition_by, gaps, zero_length_range_allowed)) }}\n{% endtest %}", "depends_on": {"macros": ["macro.dbt_utils.default__test_mutually_exclusive_ranges"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.435328, "supported_languages": null}, "macro.dbt_utils.default__test_mutually_exclusive_ranges": {"name": "default__test_mutually_exclusive_ranges", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/generic_tests/mutually_exclusive_ranges.sql", "original_file_path": "macros/generic_tests/mutually_exclusive_ranges.sql", "unique_id": "macro.dbt_utils.default__test_mutually_exclusive_ranges", "macro_sql": "{% macro default__test_mutually_exclusive_ranges(model, lower_bound_column, upper_bound_column, partition_by=None, gaps='allowed', zero_length_range_allowed=False) %}\n{% if gaps == 'not_allowed' %}\n {% set allow_gaps_operator='=' %}\n {% set allow_gaps_operator_in_words='equal_to' %}\n{% elif gaps == 'allowed' %}\n {% set allow_gaps_operator='<=' %}\n {% set allow_gaps_operator_in_words='less_than_or_equal_to' %}\n{% elif gaps == 'required' %}\n {% set allow_gaps_operator='<' %}\n {% set allow_gaps_operator_in_words='less_than' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`gaps` argument for mutually_exclusive_ranges test must be one of ['not_allowed', 'allowed', 'required'] Got: '\" ~ gaps ~\"'.'\"\n ) }}\n{% endif %}\n{% if not zero_length_range_allowed %}\n {% set allow_zero_length_operator='<' %}\n {% set allow_zero_length_operator_in_words='less_than' %}\n{% elif zero_length_range_allowed %}\n {% set allow_zero_length_operator='<=' %}\n {% set allow_zero_length_operator_in_words='less_than_or_equal_to' %}\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"`zero_length_range_allowed` argument for mutually_exclusive_ranges test must be one of [true, false] Got: '\" ~ zero_length_range_allowed ~\"'.'\"\n ) }}\n{% endif %}\n\n{% set partition_clause=\"partition by \" ~ partition_by if partition_by else '' %}\n\nwith window_functions as (\n\n select\n {% if partition_by %}\n {{ partition_by }} as partition_by_col,\n {% endif %}\n {{ lower_bound_column }} as lower_bound,\n {{ upper_bound_column }} as upper_bound,\n\n lead({{ lower_bound_column }}) over (\n {{ partition_clause }}\n order by {{ lower_bound_column }}, {{ upper_bound_column }}\n ) as next_lower_bound,\n\n row_number() over (\n {{ partition_clause }}\n order by {{ lower_bound_column }} desc, {{ upper_bound_column }} desc\n ) = 1 as is_last_record\n\n from {{ model }}\n\n),\n\ncalc as (\n -- We want to return records where one of our assumptions fails, so we'll use\n -- the `not` function with `and` statements so we can write our assumptions more cleanly\n select\n *,\n\n -- For each record: lower_bound should be < upper_bound.\n -- Coalesce it to return an error on the null case (implicit assumption\n -- these columns are not_null)\n coalesce(\n lower_bound {{ allow_zero_length_operator }} upper_bound,\n false\n ) as lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound,\n\n -- For each record: upper_bound {{ allow_gaps_operator }} the next lower_bound.\n -- Coalesce it to handle null cases for the last record.\n coalesce(\n upper_bound {{ allow_gaps_operator }} next_lower_bound,\n is_last_record,\n false\n ) as upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n\n from window_functions\n\n),\n\nvalidation_errors as (\n\n select\n *\n from calc\n\n where not(\n -- THE FOLLOWING SHOULD BE TRUE --\n lower_bound_{{ allow_zero_length_operator_in_words }}_upper_bound\n and upper_bound_{{ allow_gaps_operator_in_words }}_next_lower_bound\n )\n)\n\nselect * from validation_errors\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.436576, "supported_languages": null}, "macro.dbt_utils.pretty_log_format": {"name": "pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.pretty_log_format", "macro_sql": "{% macro pretty_log_format(message) %}\n {{ return(adapter.dispatch('pretty_log_format', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.436805, "supported_languages": null}, "macro.dbt_utils.default__pretty_log_format": {"name": "default__pretty_log_format", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_log_format.sql", "original_file_path": "macros/jinja_helpers/pretty_log_format.sql", "unique_id": "macro.dbt_utils.default__pretty_log_format", "macro_sql": "{% macro default__pretty_log_format(message) %}\n {{ return( dbt_utils.pretty_time() ~ ' + ' ~ message) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.436942, "supported_languages": null}, "macro.dbt_utils._is_relation": {"name": "_is_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_relation.sql", "original_file_path": "macros/jinja_helpers/_is_relation.sql", "unique_id": "macro.dbt_utils._is_relation", "macro_sql": "{% macro _is_relation(obj, macro) %}\n {%- if not (obj is mapping and obj.get('metadata', {}).get('type', '').endswith('Relation')) -%}\n {%- do exceptions.raise_compiler_error(\"Macro \" ~ macro ~ \" expected a Relation but received the value: \" ~ obj) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4373078, "supported_languages": null}, "macro.dbt_utils.pretty_time": {"name": "pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.pretty_time", "macro_sql": "{% macro pretty_time(format='%H:%M:%S') %}\n {{ return(adapter.dispatch('pretty_time', 'dbt_utils')(format)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pretty_time"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4375339, "supported_languages": null}, "macro.dbt_utils.default__pretty_time": {"name": "default__pretty_time", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/pretty_time.sql", "original_file_path": "macros/jinja_helpers/pretty_time.sql", "unique_id": "macro.dbt_utils.default__pretty_time", "macro_sql": "{% macro default__pretty_time(format='%H:%M:%S') %}\n {{ return(modules.datetime.datetime.now().strftime(format)) }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.437695, "supported_languages": null}, "macro.dbt_utils.log_info": {"name": "log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.log_info", "macro_sql": "{% macro log_info(message) %}\n {{ return(adapter.dispatch('log_info', 'dbt_utils')(message)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__log_info"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.438102, "supported_languages": null}, "macro.dbt_utils.default__log_info": {"name": "default__log_info", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/log_info.sql", "original_file_path": "macros/jinja_helpers/log_info.sql", "unique_id": "macro.dbt_utils.default__log_info", "macro_sql": "{% macro default__log_info(message) %}\n {{ log(dbt_utils.pretty_log_format(message), info=True) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.pretty_log_format"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.438325, "supported_languages": null}, "macro.dbt_utils.slugify": {"name": "slugify", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/slugify.sql", "original_file_path": "macros/jinja_helpers/slugify.sql", "unique_id": "macro.dbt_utils.slugify", "macro_sql": "{% macro slugify(string) %}\n\n{% if not string %}\n{{ return('') }}\n{% endif %}\n\n{#- Lower case the string -#}\n{% set string = string | lower %}\n{#- Replace spaces and dashes with underscores -#}\n{% set string = modules.re.sub('[ -]+', '_', string) %}\n{#- Only take letters, numbers, and underscores -#}\n{% set string = modules.re.sub('[^a-z0-9_]+', '', string) %}\n{#- Prepends \"_\" if string begins with a number -#}\n{% set string = modules.re.sub('^[0-9]', '_' + string[0], string) %}\n\n{{ return(string) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.43906, "supported_languages": null}, "macro.dbt_utils._is_ephemeral": {"name": "_is_ephemeral", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/jinja_helpers/_is_ephemeral.sql", "original_file_path": "macros/jinja_helpers/_is_ephemeral.sql", "unique_id": "macro.dbt_utils._is_ephemeral", "macro_sql": "{% macro _is_ephemeral(obj, macro) %}\n {%- if obj.is_cte -%}\n {% set ephemeral_prefix = api.Relation.add_ephemeral_prefix('') %}\n {% if obj.name.startswith(ephemeral_prefix) %}\n {% set model_name = obj.name[(ephemeral_prefix|length):] %}\n {% else %}\n {% set model_name = obj.name %}\n {%- endif -%}\n {% set error_message %}\nThe `{{ macro }}` macro cannot be used with ephemeral models, as it relies on the information schema.\n\n`{{ model_name }}` is an ephemeral model. Consider making it a view or table instead.\n {% endset %}\n {%- do exceptions.raise_compiler_error(error_message) -%}\n {%- endif -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.439871, "supported_languages": null}, "macro.dbt_utils.get_intervals_between": {"name": "get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.get_intervals_between", "macro_sql": "{% macro get_intervals_between(start_date, end_date, datepart) -%}\n {{ return(adapter.dispatch('get_intervals_between', 'dbt_utils')(start_date, end_date, datepart)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_intervals_between"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4405298, "supported_languages": null}, "macro.dbt_utils.default__get_intervals_between": {"name": "default__get_intervals_between", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__get_intervals_between", "macro_sql": "{% macro default__get_intervals_between(start_date, end_date, datepart) -%}\n {%- call statement('get_intervals_between', fetch_result=True) %}\n\n select {{ dbt.datediff(start_date, end_date, datepart) }}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_intervals_between') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values[0]) }}\n {%- else -%}\n {{ return(1) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.441115, "supported_languages": null}, "macro.dbt_utils.date_spine": {"name": "date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.date_spine", "macro_sql": "{% macro date_spine(datepart, start_date, end_date) %}\n {{ return(adapter.dispatch('date_spine', 'dbt_utils')(datepart, start_date, end_date)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.441441, "supported_languages": null}, "macro.dbt_utils.default__date_spine": {"name": "default__date_spine", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/date_spine.sql", "original_file_path": "macros/sql/date_spine.sql", "unique_id": "macro.dbt_utils.default__date_spine", "macro_sql": "{% macro default__date_spine(datepart, start_date, end_date) %}\n\n\n{# call as follows:\n\ndate_spine(\n \"day\",\n \"to_date('01/01/2016', 'mm/dd/yyyy')\",\n \"dbt.dateadd(week, 1, current_date)\"\n) #}\n\n\nwith rawdata as (\n\n {{dbt_utils.generate_series(\n dbt_utils.get_intervals_between(start_date, end_date, datepart)\n )}}\n\n),\n\nall_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n \"row_number() over (order by 1) - 1\",\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n\n),\n\nfiltered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n)\n\nselect * from filtered\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.generate_series", "macro.dbt_utils.get_intervals_between", "macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.441771, "supported_languages": null}, "macro.dbt_utils.safe_subtract": {"name": "safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.safe_subtract", "macro_sql": "{%- macro safe_subtract(field_list) -%}\n {{ return(adapter.dispatch('safe_subtract', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_subtract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.442121, "supported_languages": null}, "macro.dbt_utils.default__safe_subtract": {"name": "default__safe_subtract", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_subtract.sql", "original_file_path": "macros/sql/safe_subtract.sql", "unique_id": "macro.dbt_utils.default__safe_subtract", "macro_sql": "\n\n{%- macro default__safe_subtract(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_subtract` macro takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' -\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.44259, "supported_languages": null}, "macro.dbt_utils.nullcheck_table": {"name": "nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.nullcheck_table", "macro_sql": "{% macro nullcheck_table(relation) %}\n {{ return(adapter.dispatch('nullcheck_table', 'dbt_utils')(relation)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck_table"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4428842, "supported_languages": null}, "macro.dbt_utils.default__nullcheck_table": {"name": "default__nullcheck_table", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck_table.sql", "original_file_path": "macros/sql/nullcheck_table.sql", "unique_id": "macro.dbt_utils.default__nullcheck_table", "macro_sql": "{% macro default__nullcheck_table(relation) %}\n\n {%- do dbt_utils._is_relation(relation, 'nullcheck_table') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'nullcheck_table') -%}\n {% set cols = adapter.get_columns_in_relation(relation) %}\n\n select {{ dbt_utils.nullcheck(cols) }}\n from {{relation}}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.443197, "supported_languages": null}, "macro.dbt_utils.get_relations_by_pattern": {"name": "get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.get_relations_by_pattern", "macro_sql": "{% macro get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_pattern', 'dbt_utils')(schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.443805, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_pattern": {"name": "default__get_relations_by_pattern", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_pattern.sql", "original_file_path": "macros/sql/get_relations_by_pattern.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_pattern", "macro_sql": "{% macro default__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.444575, "supported_languages": null}, "macro.dbt_utils.get_powers_of_two": {"name": "get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.get_powers_of_two", "macro_sql": "{% macro get_powers_of_two(upper_bound) %}\n {{ return(adapter.dispatch('get_powers_of_two', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.445367, "supported_languages": null}, "macro.dbt_utils.default__get_powers_of_two": {"name": "default__get_powers_of_two", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__get_powers_of_two", "macro_sql": "{% macro default__get_powers_of_two(upper_bound) %}\n\n {% if upper_bound <= 0 %}\n {{ exceptions.raise_compiler_error(\"upper bound must be positive\") }}\n {% endif %}\n\n {% for _ in range(1, 100) %}\n {% if upper_bound <= 2 ** loop.index %}{{ return(loop.index) }}{% endif %}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.44573, "supported_languages": null}, "macro.dbt_utils.generate_series": {"name": "generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.generate_series", "macro_sql": "{% macro generate_series(upper_bound) %}\n {{ return(adapter.dispatch('generate_series', 'dbt_utils')(upper_bound)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_series"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.445894, "supported_languages": null}, "macro.dbt_utils.default__generate_series": {"name": "default__generate_series", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_series.sql", "original_file_path": "macros/sql/generate_series.sql", "unique_id": "macro.dbt_utils.default__generate_series", "macro_sql": "{% macro default__generate_series(upper_bound) %}\n\n {% set n = dbt_utils.get_powers_of_two(upper_bound) %}\n\n with p as (\n select 0 as generated_number union all select 1\n ), unioned as (\n\n select\n\n {% for i in range(n) %}\n p{{i}}.generated_number * power(2, {{i}})\n {% if not loop.last %} + {% endif %}\n {% endfor %}\n + 1\n as generated_number\n\n from\n\n {% for i in range(n) %}\n p as p{{i}}\n {% if not loop.last %} cross join {% endif %}\n {% endfor %}\n\n )\n\n select *\n from unioned\n where generated_number <= {{upper_bound}}\n order by generated_number\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_powers_of_two"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.446341, "supported_languages": null}, "macro.dbt_utils.get_relations_by_prefix": {"name": "get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.get_relations_by_prefix", "macro_sql": "{% macro get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_relations_by_prefix', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4469361, "supported_languages": null}, "macro.dbt_utils.default__get_relations_by_prefix": {"name": "default__get_relations_by_prefix", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_relations_by_prefix.sql", "original_file_path": "macros/sql/get_relations_by_prefix.sql", "unique_id": "macro.dbt_utils.default__get_relations_by_prefix", "macro_sql": "{% macro default__get_relations_by_prefix(schema, prefix, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n {{ dbt_utils.get_tables_by_prefix_sql(schema, prefix, exclude, database) }}\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=database,\n schema=row.table_schema,\n identifier=row.table_name,\n type=row.table_type\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt_utils.get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.447701, "supported_languages": null}, "macro.dbt_utils.get_tables_by_prefix_sql": {"name": "get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_prefix_sql", "macro_sql": "{% macro get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_prefix_sql', 'dbt_utils')(schema, prefix, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_prefix_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.448071, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_prefix_sql": {"name": "default__get_tables_by_prefix_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_prefix_sql.sql", "original_file_path": "macros/sql/get_tables_by_prefix_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_prefix_sql", "macro_sql": "{% macro default__get_tables_by_prefix_sql(schema, prefix, exclude='', database=target.database) %}\n\n {{ dbt_utils.get_tables_by_pattern_sql(\n schema_pattern = schema,\n table_pattern = prefix ~ '%',\n exclude = exclude,\n database = database\n ) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.448427, "supported_languages": null}, "macro.dbt_utils.star": {"name": "star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.star", "macro_sql": "{% macro star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {{ return(adapter.dispatch('star', 'dbt_utils')(from, relation_alias, except, prefix, suffix, quote_identifiers)) }}\r\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__star"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4494872, "supported_languages": null}, "macro.dbt_utils.default__star": {"name": "default__star", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/star.sql", "original_file_path": "macros/sql/star.sql", "unique_id": "macro.dbt_utils.default__star", "macro_sql": "{% macro default__star(from, relation_alias=False, except=[], prefix='', suffix='', quote_identifiers=True) -%}\r\n {%- do dbt_utils._is_relation(from, 'star') -%}\r\n {%- do dbt_utils._is_ephemeral(from, 'star') -%}\r\n\r\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\r\n {%- if not execute -%}\r\n {% do return('*') %}\r\n {%- endif -%}\r\n\r\n {% set cols = dbt_utils.get_filtered_columns_in_relation(from, except) %}\r\n\r\n {%- if cols|length <= 0 -%}\r\n {% if flags.WHICH == 'compile' %}\r\n {% set response %}\r\n*\r\n/* No columns were returned. Maybe the relation doesn't exist yet \r\nor all columns were excluded. This star is only output during \r\ndbt compile, and exists to keep SQLFluff happy. */\r\n {% endset %}\r\n {% do return(response) %}\r\n {% else %}\r\n {% do return(\"/* no columns returned from star() macro */\") %}\r\n {% endif %}\r\n {%- else -%}\r\n {%- for col in cols %}\r\n {%- if relation_alias %}{{ relation_alias }}.{% else %}{%- endif -%}\r\n {%- if quote_identifiers -%}\r\n {{ adapter.quote(col)|trim }} {%- if prefix!='' or suffix!='' %} as {{ adapter.quote(prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {%- else -%}\r\n {{ col|trim }} {%- if prefix!='' or suffix!='' %} as {{ (prefix ~ col ~ suffix)|trim }} {%- endif -%}\r\n {% endif %}\r\n {%- if not loop.last %},{{ '\\n ' }}{%- endif -%}\r\n {%- endfor -%}\r\n {% endif %}\r\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt_utils.get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4507341, "supported_languages": null}, "macro.dbt_utils.unpivot": {"name": "unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.unpivot", "macro_sql": "{% macro unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n {{ return(adapter.dispatch('unpivot', 'dbt_utils')(relation, cast_to, exclude, remove, field_name, value_name, quote_identifiers)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__unpivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4520168, "supported_languages": null}, "macro.dbt_utils.default__unpivot": {"name": "default__unpivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/unpivot.sql", "original_file_path": "macros/sql/unpivot.sql", "unique_id": "macro.dbt_utils.default__unpivot", "macro_sql": "{% macro default__unpivot(relation=none, cast_to='varchar', exclude=none, remove=none, field_name='field_name', value_name='value', quote_identifiers=False) -%}\n\n {% if not relation %}\n {{ exceptions.raise_compiler_error(\"Error: argument `relation` is required for `unpivot` macro.\") }}\n {% endif %}\n\n {%- set exclude = exclude if exclude is not none else [] %}\n {%- set remove = remove if remove is not none else [] %}\n\n {%- set include_cols = [] %}\n\n {%- set table_columns = {} %}\n\n {%- do table_columns.update({relation: []}) %}\n\n {%- do dbt_utils._is_relation(relation, 'unpivot') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'unpivot') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) %}\n\n {%- for col in cols -%}\n {%- if col.column.lower() not in remove|map('lower') and col.column.lower() not in exclude|map('lower') -%}\n {% do include_cols.append(col) %}\n {%- endif %}\n {%- endfor %}\n\n\n {%- for col in include_cols -%}\n {%- set current_col_name = adapter.quote(col.column) if quote_identifiers else col.column -%}\n select\n {%- for exclude_col in exclude %}\n {{ adapter.quote(exclude_col) if quote_identifiers else exclude_col }},\n {%- endfor %}\n\n cast('{{ col.column }}' as {{ dbt.type_string() }}) as {{ adapter.quote(field_name) if quote_identifiers else field_name }},\n cast( {% if col.data_type == 'boolean' %}\n {{ dbt.cast_bool_to_text(current_col_name) }}\n {% else %}\n {{ current_col_name }}\n {% endif %}\n as {{ cast_to }}) as {{ adapter.quote(value_name) if quote_identifiers else value_name }}\n\n from {{ relation }}\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n {%- endfor -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.type_string", "macro.dbt.cast_bool_to_text"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.453525, "supported_languages": null}, "macro.dbt_utils.safe_divide": {"name": "safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.safe_divide", "macro_sql": "{% macro safe_divide(numerator, denominator) -%}\n {{ return(adapter.dispatch('safe_divide', 'dbt_utils')(numerator, denominator)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_divide"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.453778, "supported_languages": null}, "macro.dbt_utils.default__safe_divide": {"name": "default__safe_divide", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_divide.sql", "original_file_path": "macros/sql/safe_divide.sql", "unique_id": "macro.dbt_utils.default__safe_divide", "macro_sql": "{% macro default__safe_divide(numerator, denominator) %}\n ( {{ numerator }} ) / nullif( ( {{ denominator }} ), 0)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.453891, "supported_languages": null}, "macro.dbt_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n {{ return(adapter.dispatch('union_relations', 'dbt_utils')(relations, column_override, include, exclude, source_column_name, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.456479, "supported_languages": null}, "macro.dbt_utils.default__union_relations": {"name": "default__union_relations", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/union.sql", "original_file_path": "macros/sql/union.sql", "unique_id": "macro.dbt_utils.default__union_relations", "macro_sql": "\n\n{%- macro default__union_relations(relations, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_relation', where=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n {%- set all_excludes = [] -%}\n {%- set all_includes = [] -%}\n\n {%- if exclude -%}\n {%- for exc in exclude -%}\n {%- do all_excludes.append(exc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- if include -%}\n {%- for inc in include -%}\n {%- do all_includes.append(inc | lower) -%}\n {%- endfor -%}\n {%- endif -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- do dbt_utils._is_ephemeral(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column | lower in all_excludes -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column | lower not in all_includes -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n {%- set dbt_command = flags.WHICH -%}\n\n\n {% if dbt_command in ['run', 'build'] %}\n {% if (include | length > 0 or exclude | length > 0) and not column_superset.keys() %}\n {%- set relations_string -%}\n {%- for relation in relations -%}\n {{ relation.name }}\n {%- if not loop.last %}, {% endif -%}\n {%- endfor -%}\n {%- endset -%}\n\n {%- set error_message -%}\n There were no columns found to union for relations {{ relations_string }}\n {%- endset -%}\n\n {{ exceptions.raise_compiler_error(error_message) }}\n {%- endif -%}\n {%- endif -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n {%- if source_column_name is not none %}\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {%- endif %}\n\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ relation }}\n\n {% if where -%}\n where {{ where }}\n {%- endif %}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.459672, "supported_languages": null}, "macro.dbt_utils.group_by": {"name": "group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.group_by", "macro_sql": "{%- macro group_by(n) -%}\n {{ return(adapter.dispatch('group_by', 'dbt_utils')(n)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__group_by"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.460052, "supported_languages": null}, "macro.dbt_utils.default__group_by": {"name": "default__group_by", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/groupby.sql", "original_file_path": "macros/sql/groupby.sql", "unique_id": "macro.dbt_utils.default__group_by", "macro_sql": "\n\n{%- macro default__group_by(n) -%}\n\n group by {% for i in range(1, n + 1) -%}\n {{ i }}{{ ',' if not loop.last }} \n {%- endfor -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4602938, "supported_languages": null}, "macro.dbt_utils.deduplicate": {"name": "deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.deduplicate", "macro_sql": "{%- macro deduplicate(relation, partition_by, order_by) -%}\n {{ return(adapter.dispatch('deduplicate', 'dbt_utils')(relation, partition_by, order_by)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.postgres__deduplicate"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4612129, "supported_languages": null}, "macro.dbt_utils.default__deduplicate": {"name": "default__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.default__deduplicate", "macro_sql": "\n\n{%- macro default__deduplicate(relation, partition_by, order_by) -%}\n\n with row_numbered as (\n select\n _inner.*,\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) as rn\n from {{ relation }} as _inner\n )\n\n select\n distinct data.*\n from {{ relation }} as data\n {#\n -- Not all DBs will support natural joins but the ones that do include:\n -- Oracle, MySQL, SQLite, Redshift, Teradata, Materialize, Databricks\n -- Apache Spark, SingleStore, Vertica\n -- Those that do not appear to support natural joins include:\n -- SQLServer, Trino, Presto, Rockset, Athena\n #}\n natural join row_numbered\n where row_numbered.rn = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4614348, "supported_languages": null}, "macro.dbt_utils.redshift__deduplicate": {"name": "redshift__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.redshift__deduplicate", "macro_sql": "{% macro redshift__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }} as tt\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.461587, "supported_languages": null}, "macro.dbt_utils.postgres__deduplicate": {"name": "postgres__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.postgres__deduplicate", "macro_sql": "\n{%- macro postgres__deduplicate(relation, partition_by, order_by) -%}\n\n select\n distinct on ({{ partition_by }}) *\n from {{ relation }}\n order by {{ partition_by }}{{ ',' ~ order_by }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.461756, "supported_languages": null}, "macro.dbt_utils.snowflake__deduplicate": {"name": "snowflake__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.snowflake__deduplicate", "macro_sql": "\n{%- macro snowflake__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.461903, "supported_languages": null}, "macro.dbt_utils.databricks__deduplicate": {"name": "databricks__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.databricks__deduplicate", "macro_sql": "\n{%- macro databricks__deduplicate(relation, partition_by, order_by) -%}\n\n select *\n from {{ relation }}\n qualify\n row_number() over (\n partition by {{ partition_by }}\n order by {{ order_by }}\n ) = 1\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.462045, "supported_languages": null}, "macro.dbt_utils.bigquery__deduplicate": {"name": "bigquery__deduplicate", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/deduplicate.sql", "original_file_path": "macros/sql/deduplicate.sql", "unique_id": "macro.dbt_utils.bigquery__deduplicate", "macro_sql": "\n{%- macro bigquery__deduplicate(relation, partition_by, order_by) -%}\n\n select unique.*\n from (\n select\n array_agg (\n original\n order by {{ order_by }}\n limit 1\n )[offset(0)] unique\n from {{ relation }} original\n group by {{ partition_by }}\n )\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.462202, "supported_languages": null}, "macro.dbt_utils.surrogate_key": {"name": "surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.surrogate_key", "macro_sql": "{%- macro surrogate_key(field_list) -%}\n {% set frustrating_jinja_feature = varargs %}\n {{ return(adapter.dispatch('surrogate_key', 'dbt_utils')(field_list, *varargs)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.462564, "supported_languages": null}, "macro.dbt_utils.default__surrogate_key": {"name": "default__surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/surrogate_key.sql", "original_file_path": "macros/sql/surrogate_key.sql", "unique_id": "macro.dbt_utils.default__surrogate_key", "macro_sql": "\n\n{%- macro default__surrogate_key(field_list) -%}\n\n{%- set error_message = '\nWarning: `dbt_utils.surrogate_key` has been replaced by \\\n`dbt_utils.generate_surrogate_key`. The new macro treats null values \\\ndifferently to empty strings. To restore the behaviour of the original \\\nmacro, add a global variable in dbt_project.yml called \\\n`surrogate_key_treat_nulls_as_empty_strings` to your \\\ndbt_project.yml file with a value of True. \\\nThe {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.raise_compiler_error(error_message) -%}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4627872, "supported_languages": null}, "macro.dbt_utils.safe_add": {"name": "safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.safe_add", "macro_sql": "{%- macro safe_add(field_list) -%}\n {{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__safe_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.463125, "supported_languages": null}, "macro.dbt_utils.default__safe_add": {"name": "default__safe_add", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/safe_add.sql", "original_file_path": "macros/sql/safe_add.sql", "unique_id": "macro.dbt_utils.default__safe_add", "macro_sql": "\n\n{%- macro default__safe_add(field_list) -%}\n\n{%- if field_list is not iterable or field_list is string or field_list is mapping -%}\n\n{%- set error_message = '\nWarning: the `safe_add` macro now takes a single list argument instead of \\\nstring arguments. The {}.{} model triggered this warning. \\\n'.format(model.package_name, model.name) -%}\n\n{%- do exceptions.warn(error_message) -%}\n\n{%- endif -%}\n\n{% set fields = [] %}\n\n{%- for field in field_list -%}\n\n {% do fields.append(\"coalesce(\" ~ field ~ \", 0)\") %}\n\n{%- endfor -%}\n\n{{ fields|join(' +\\n ') }}\n\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.463586, "supported_languages": null}, "macro.dbt_utils.nullcheck": {"name": "nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.nullcheck", "macro_sql": "{% macro nullcheck(cols) %}\n {{ return(adapter.dispatch('nullcheck', 'dbt_utils')(cols)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__nullcheck"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.463886, "supported_languages": null}, "macro.dbt_utils.default__nullcheck": {"name": "default__nullcheck", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/nullcheck.sql", "original_file_path": "macros/sql/nullcheck.sql", "unique_id": "macro.dbt_utils.default__nullcheck", "macro_sql": "{% macro default__nullcheck(cols) %}\n{%- for col in cols %}\n\n {% if col.is_string() -%}\n\n nullif({{col.name}},'') as {{col.name}}\n\n {%- else -%}\n\n {{col.name}}\n\n {%- endif -%}\n\n{%- if not loop.last -%} , {%- endif -%}\n\n{%- endfor -%}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4641762, "supported_languages": null}, "macro.dbt_utils.get_tables_by_pattern_sql": {"name": "get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.get_tables_by_pattern_sql", "macro_sql": "{% macro get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(adapter.dispatch('get_tables_by_pattern_sql', 'dbt_utils')\n (schema_pattern, table_pattern, exclude, database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_tables_by_pattern_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4670699, "supported_languages": null}, "macro.dbt_utils.default__get_tables_by_pattern_sql": {"name": "default__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.default__get_tables_by_pattern_sql", "macro_sql": "{% macro default__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from {{ database }}.information_schema.tables\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.467468, "supported_languages": null}, "macro.dbt_utils.redshift__get_tables_by_pattern_sql": {"name": "redshift__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.redshift__get_tables_by_pattern_sql", "macro_sql": "{% macro redshift__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% set sql %}\n select distinct\n table_schema as {{ adapter.quote('table_schema') }},\n table_name as {{ adapter.quote('table_name') }},\n {{ dbt_utils.get_table_types_sql() }}\n from \"{{ database }}\".\"information_schema\".\"tables\"\n where table_schema ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n union all\n select distinct\n schemaname as {{ adapter.quote('table_schema') }},\n tablename as {{ adapter.quote('table_name') }},\n 'external' as {{ adapter.quote('table_type') }}\n from svv_external_tables\n where redshift_database_name = '{{ database }}'\n and schemaname ilike '{{ schema_pattern }}'\n and table_name ilike '{{ table_pattern }}'\n and table_name not ilike '{{ exclude }}'\n {% endset %}\n\n {{ return(sql) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.468029, "supported_languages": null}, "macro.dbt_utils.bigquery__get_tables_by_pattern_sql": {"name": "bigquery__get_tables_by_pattern_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils.bigquery__get_tables_by_pattern_sql", "macro_sql": "{% macro bigquery__get_tables_by_pattern_sql(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {% if '%' in schema_pattern %}\n {% set schemata=dbt_utils._bigquery__get_matching_schemata(schema_pattern, database) %}\n {% else %}\n {% set schemata=[schema_pattern] %}\n {% endif %}\n\n {% set sql %}\n {% for schema in schemata %}\n select distinct\n table_schema,\n table_name,\n {{ dbt_utils.get_table_types_sql() }}\n\n from {{ adapter.quote(database) }}.{{ schema }}.INFORMATION_SCHEMA.TABLES\n where lower(table_name) like lower ('{{ table_pattern }}')\n and lower(table_name) not like lower ('{{ exclude }}')\n\n {% if not loop.last %} union all {% endif %}\n\n {% endfor %}\n {% endset %}\n\n {{ return(sql) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._bigquery__get_matching_schemata", "macro.dbt_utils.get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4687638, "supported_languages": null}, "macro.dbt_utils._bigquery__get_matching_schemata": {"name": "_bigquery__get_matching_schemata", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_tables_by_pattern_sql.sql", "original_file_path": "macros/sql/get_tables_by_pattern_sql.sql", "unique_id": "macro.dbt_utils._bigquery__get_matching_schemata", "macro_sql": "{% macro _bigquery__get_matching_schemata(schema_pattern, database) %}\n {% if execute %}\n\n {% set sql %}\n select schema_name from {{ adapter.quote(database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like lower('{{ schema_pattern }}')\n {% endset %}\n\n {% set results=run_query(sql) %}\n\n {% set schemata=results.columns['schema_name'].values() %}\n\n {{ return(schemata) }}\n\n {% else %}\n\n {{ return([]) }}\n\n {% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4692302, "supported_languages": null}, "macro.dbt_utils.get_column_values": {"name": "get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.get_column_values", "macro_sql": "{% macro get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {{ return(adapter.dispatch('get_column_values', 'dbt_utils')(table, column, order_by, max_records, default, where)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_column_values"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4703622, "supported_languages": null}, "macro.dbt_utils.default__get_column_values": {"name": "default__get_column_values", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_column_values.sql", "original_file_path": "macros/sql/get_column_values.sql", "unique_id": "macro.dbt_utils.default__get_column_values", "macro_sql": "{% macro default__get_column_values(table, column, order_by='count(*) desc', max_records=none, default=none, where=none) -%}\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {% set default = [] if not default %}\n {{ return(default) }}\n {% endif %}\n\n {%- do dbt_utils._is_ephemeral(table, 'get_column_values') -%}\n\n {# Not all relations are tables. Renaming for internal clarity without breaking functionality for anyone using named arguments #}\n {# TODO: Change the method signature in a future 0.x.0 release #}\n {%- set target_relation = table -%}\n\n {# adapter.load_relation is a convenience wrapper to avoid building a Relation when we already have one #}\n {% set relation_exists = (load_relation(target_relation)) is not none %}\n\n {%- call statement('get_column_values', fetch_result=true) %}\n\n {%- if not relation_exists and default is none -%}\n\n {{ exceptions.raise_compiler_error(\"In get_column_values(): relation \" ~ target_relation ~ \" does not exist and no default value was provided.\") }}\n\n {%- elif not relation_exists and default is not none -%}\n\n {{ log(\"Relation \" ~ target_relation ~ \" does not exist. Returning the default value: \" ~ default) }}\n\n {{ return(default) }}\n\n {%- else -%}\n\n\n select\n {{ column }} as value\n\n from {{ target_relation }}\n\n {% if where is not none %}\n where {{ where }}\n {% endif %}\n\n group by {{ column }}\n order by {{ order_by }}\n\n {% if max_records is not none %}\n limit {{ max_records }}\n {% endif %}\n\n {% endif %}\n\n {%- endcall -%}\n\n {%- set value_list = load_result('get_column_values') -%}\n\n {%- if value_list and value_list['data'] -%}\n {%- set values = value_list['data'] | map(attribute=0) | list %}\n {{ return(values) }}\n {%- else -%}\n {{ return(default) }}\n {%- endif -%}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_ephemeral", "macro.dbt.load_relation", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.471793, "supported_languages": null}, "macro.dbt_utils.pivot": {"name": "pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.pivot", "macro_sql": "{% macro pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {{ return(adapter.dispatch('pivot', 'dbt_utils')(column, values, alias, agg, cmp, prefix, suffix, then_value, else_value, quote_identifiers, distinct)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__pivot"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.472779, "supported_languages": null}, "macro.dbt_utils.default__pivot": {"name": "default__pivot", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/pivot.sql", "original_file_path": "macros/sql/pivot.sql", "unique_id": "macro.dbt_utils.default__pivot", "macro_sql": "{% macro default__pivot(column,\n values,\n alias=True,\n agg='sum',\n cmp='=',\n prefix='',\n suffix='',\n then_value=1,\n else_value=0,\n quote_identifiers=True,\n distinct=False) %}\n {% for value in values %}\n {{ agg }}(\n {% if distinct %} distinct {% endif %}\n case\n when {{ column }} {{ cmp }} '{{ dbt.escape_single_quotes(value) }}'\n then {{ then_value }}\n else {{ else_value }}\n end\n )\n {% if alias %}\n {% if quote_identifiers %}\n as {{ adapter.quote(prefix ~ value ~ suffix) }}\n {% else %}\n as {{ dbt_utils.slugify(prefix ~ value ~ suffix) }}\n {% endif %}\n {% endif %}\n {% if not loop.last %},{% endif %}\n {% endfor %}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.escape_single_quotes", "macro.dbt_utils.slugify"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.473526, "supported_languages": null}, "macro.dbt_utils.get_filtered_columns_in_relation": {"name": "get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.get_filtered_columns_in_relation", "macro_sql": "{% macro get_filtered_columns_in_relation(from, except=[]) -%}\n {{ return(adapter.dispatch('get_filtered_columns_in_relation', 'dbt_utils')(from, except)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_filtered_columns_in_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.47395, "supported_languages": null}, "macro.dbt_utils.default__get_filtered_columns_in_relation": {"name": "default__get_filtered_columns_in_relation", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_filtered_columns_in_relation.sql", "original_file_path": "macros/sql/get_filtered_columns_in_relation.sql", "unique_id": "macro.dbt_utils.default__get_filtered_columns_in_relation", "macro_sql": "{% macro default__get_filtered_columns_in_relation(from, except=[]) -%}\n {%- do dbt_utils._is_relation(from, 'get_filtered_columns_in_relation') -%}\n {%- do dbt_utils._is_ephemeral(from, 'get_filtered_columns_in_relation') -%}\n\n {# -- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. #}\n {%- if not execute -%}\n {{ return('') }}\n {% endif %}\n\n {%- set include_cols = [] %}\n {%- set cols = adapter.get_columns_in_relation(from) -%}\n {%- set except = except | map(\"lower\") | list %}\n {%- for col in cols -%}\n {%- if col.column|lower not in except -%}\n {% do include_cols.append(col.column) %}\n {%- endif %}\n {%- endfor %}\n\n {{ return(include_cols) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt_utils._is_ephemeral"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4745758, "supported_languages": null}, "macro.dbt_utils.width_bucket": {"name": "width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.width_bucket", "macro_sql": "{% macro width_bucket(expr, min_value, max_value, num_buckets) %}\n {{ return(adapter.dispatch('width_bucket', 'dbt_utils') (expr, min_value, max_value, num_buckets)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__width_bucket"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.475289, "supported_languages": null}, "macro.dbt_utils.default__width_bucket": {"name": "default__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.default__width_bucket", "macro_sql": "{% macro default__width_bucket(expr, min_value, max_value, num_buckets) -%}\n\n {% set bin_size -%}\n (( {{ max_value }} - {{ min_value }} ) / {{ num_buckets }} )\n {%- endset %}\n (\n -- to break ties when the amount is eaxtly at the bucket egde\n case\n when\n mod(\n {{ dbt.safe_cast(expr, dbt.type_numeric() ) }},\n {{ dbt.safe_cast(bin_size, dbt.type_numeric() ) }}\n ) = 0\n then 1\n else 0\n end\n ) +\n -- Anything over max_value goes the N+1 bucket\n least(\n ceil(\n ({{ expr }} - {{ min_value }})/{{ bin_size }}\n ),\n {{ num_buckets }} + 1\n )\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt.safe_cast", "macro.dbt.type_numeric"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.475702, "supported_languages": null}, "macro.dbt_utils.snowflake__width_bucket": {"name": "snowflake__width_bucket", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/width_bucket.sql", "original_file_path": "macros/sql/width_bucket.sql", "unique_id": "macro.dbt_utils.snowflake__width_bucket", "macro_sql": "{% macro snowflake__width_bucket(expr, min_value, max_value, num_buckets) %}\n width_bucket({{ expr }}, {{ min_value }}, {{ max_value }}, {{ num_buckets }} )\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.475944, "supported_languages": null}, "macro.dbt_utils.get_query_results_as_dict": {"name": "get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.get_query_results_as_dict", "macro_sql": "{% macro get_query_results_as_dict(query) %}\n {{ return(adapter.dispatch('get_query_results_as_dict', 'dbt_utils')(query)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_query_results_as_dict"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.476317, "supported_languages": null}, "macro.dbt_utils.default__get_query_results_as_dict": {"name": "default__get_query_results_as_dict", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_query_results_as_dict.sql", "original_file_path": "macros/sql/get_query_results_as_dict.sql", "unique_id": "macro.dbt_utils.default__get_query_results_as_dict", "macro_sql": "{% macro default__get_query_results_as_dict(query) %}\n\n{# This macro returns a dictionary of the form {column_name: (tuple_of_results)} #}\n\n {%- call statement('get_query_results', fetch_result=True,auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {% set sql_results={} %}\n\n {%- if execute -%}\n {% set sql_results_table = load_result('get_query_results').table.columns %}\n {% for column_name, column in sql_results_table.items() %}\n {% do sql_results.update({column_name: column.values()}) %}\n {% endfor %}\n {%- endif -%}\n\n {{ return(sql_results) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.47685, "supported_languages": null}, "macro.dbt_utils.generate_surrogate_key": {"name": "generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.generate_surrogate_key", "macro_sql": "{%- macro generate_surrogate_key(field_list) -%}\n {{ return(adapter.dispatch('generate_surrogate_key', 'dbt_utils')(field_list)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__generate_surrogate_key"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4772859, "supported_languages": null}, "macro.dbt_utils.default__generate_surrogate_key": {"name": "default__generate_surrogate_key", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/generate_surrogate_key.sql", "original_file_path": "macros/sql/generate_surrogate_key.sql", "unique_id": "macro.dbt_utils.default__generate_surrogate_key", "macro_sql": "\n\n{%- macro default__generate_surrogate_key(field_list) -%}\n\n{%- if var('surrogate_key_treat_nulls_as_empty_strings', False) -%}\n {%- set default_null_value = \"\" -%}\n{%- else -%}\n {%- set default_null_value = '_dbt_utils_surrogate_key_null_' -%}\n{%- endif -%}\n\n{%- set fields = [] -%}\n\n{%- for field in field_list -%}\n\n {%- do fields.append(\n \"coalesce(cast(\" ~ field ~ \" as \" ~ dbt.type_string() ~ \"), '\" ~ default_null_value ~\"')\"\n ) -%}\n\n {%- if not loop.last %}\n {%- do fields.append(\"'-'\") -%}\n {%- endif -%}\n\n{%- endfor -%}\n\n{{ dbt.hash(dbt.concat(fields)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt.type_string", "macro.dbt.hash", "macro.dbt.concat"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.477855, "supported_languages": null}, "macro.dbt_utils.get_table_types_sql": {"name": "get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.get_table_types_sql", "macro_sql": "{%- macro get_table_types_sql() -%}\n {{ return(adapter.dispatch('get_table_types_sql', 'dbt_utils')()) }}\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils.postgres__get_table_types_sql"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4783528, "supported_languages": null}, "macro.dbt_utils.default__get_table_types_sql": {"name": "default__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.default__get_table_types_sql", "macro_sql": "{% macro default__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'EXTERNAL TABLE' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.478483, "supported_languages": null}, "macro.dbt_utils.postgres__get_table_types_sql": {"name": "postgres__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.postgres__get_table_types_sql", "macro_sql": "{% macro postgres__get_table_types_sql() %}\n case table_type\n when 'BASE TABLE' then 'table'\n when 'FOREIGN' then 'external'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4786181, "supported_languages": null}, "macro.dbt_utils.databricks__get_table_types_sql": {"name": "databricks__get_table_types_sql", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_table_types_sql.sql", "original_file_path": "macros/sql/get_table_types_sql.sql", "unique_id": "macro.dbt_utils.databricks__get_table_types_sql", "macro_sql": "{% macro databricks__get_table_types_sql() %}\n case table_type\n when 'MANAGED' then 'table'\n when 'BASE TABLE' then 'table'\n when 'MATERIALIZED VIEW' then 'materializedview'\n else lower(table_type)\n end as {{ adapter.quote('table_type') }}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.478743, "supported_languages": null}, "macro.dbt_utils.get_single_value": {"name": "get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.get_single_value", "macro_sql": "{% macro get_single_value(query, default=none) %}\n {{ return(adapter.dispatch('get_single_value', 'dbt_utils')(query, default)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__get_single_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.479305, "supported_languages": null}, "macro.dbt_utils.default__get_single_value": {"name": "default__get_single_value", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/get_single_value.sql", "original_file_path": "macros/sql/get_single_value.sql", "unique_id": "macro.dbt_utils.default__get_single_value", "macro_sql": "{% macro default__get_single_value(query, default) %}\n\n{# This macro returns the (0, 0) record in a query, i.e. the first row of the first column #}\n\n {%- call statement('get_query_result', fetch_result=True, auto_begin=false) -%}\n\n {{ query }}\n\n {%- endcall -%}\n\n {%- if execute -%}\n\n {% set r = load_result('get_query_result').table.columns[0].values() %}\n {% if r | length == 0 %}\n {% do print('Query `' ~ query ~ '` returned no rows. Using the default value: ' ~ default) %}\n {% set sql_result = default %}\n {% else %}\n {% set sql_result = r[0] %}\n {% endif %}\n \n {%- else -%}\n \n {% set sql_result = default %}\n \n {%- endif -%}\n\n {% do return(sql_result) %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.479962, "supported_languages": null}, "macro.dbt_utils.degrees_to_radians": {"name": "degrees_to_radians", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.degrees_to_radians", "macro_sql": "{% macro degrees_to_radians(degrees) -%}\n acos(-1) * {{degrees}} / 180\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.48096, "supported_languages": null}, "macro.dbt_utils.haversine_distance": {"name": "haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.haversine_distance", "macro_sql": "{% macro haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n {{ return(adapter.dispatch('haversine_distance', 'dbt_utils')(lat1,lon1,lat2,lon2,unit)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.default__haversine_distance"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.481212, "supported_languages": null}, "macro.dbt_utils.default__haversine_distance": {"name": "default__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.default__haversine_distance", "macro_sql": "{% macro default__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n\n 2 * 3961 * asin(sqrt(power((sin(radians(({{ lat2 }} - {{ lat1 }}) / 2))), 2) +\n cos(radians({{lat1}})) * cos(radians({{lat2}})) *\n power((sin(radians(({{ lon2 }} - {{ lon1 }}) / 2))), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.481738, "supported_languages": null}, "macro.dbt_utils.bigquery__haversine_distance": {"name": "bigquery__haversine_distance", "resource_type": "macro", "package_name": "dbt_utils", "path": "macros/sql/haversine_distance.sql", "original_file_path": "macros/sql/haversine_distance.sql", "unique_id": "macro.dbt_utils.bigquery__haversine_distance", "macro_sql": "{% macro bigquery__haversine_distance(lat1, lon1, lat2, lon2, unit='mi') -%}\n{% set radians_lat1 = dbt_utils.degrees_to_radians(lat1) %}\n{% set radians_lat2 = dbt_utils.degrees_to_radians(lat2) %}\n{% set radians_lon1 = dbt_utils.degrees_to_radians(lon1) %}\n{% set radians_lon2 = dbt_utils.degrees_to_radians(lon2) %}\n{%- if unit == 'mi' %}\n {% set conversion_rate = 1 %}\n{% elif unit == 'km' %}\n {% set conversion_rate = 1.60934 %}\n{% else %}\n {{ exceptions.raise_compiler_error(\"unit input must be one of 'mi' or 'km'. Got \" ~ unit) }}\n{% endif %}\n 2 * 3961 * asin(sqrt(power(sin(({{ radians_lat2 }} - {{ radians_lat1 }}) / 2), 2) +\n cos({{ radians_lat1 }}) * cos({{ radians_lat2 }}) *\n power(sin(({{ radians_lon2 }} - {{ radians_lon1 }}) / 2), 2))) * {{ conversion_rate }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.degrees_to_radians"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.482483, "supported_languages": null}, "macro.linkedin_source.get_creative_history_columns": {"name": "get_creative_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_creative_history_columns.sql", "original_file_path": "macros/get_creative_history_columns.sql", "unique_id": "macro.linkedin_source.get_creative_history_columns", "macro_sql": "{% macro get_creative_history_columns() %}\n\n{% set columns = [\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"click_uri\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"created_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"last_modified_at\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"intended_status\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"text_ad_landing_page\", \"datatype\": dbt.type_string()},\n {\"name\": \"spotlight_landing_page\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.483702, "supported_languages": null}, "macro.linkedin_source.linkedin_ads_extract_url_parameter": {"name": "linkedin_ads_extract_url_parameter", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_extract_url_parameters.sql", "original_file_path": "macros/linkedin_ads_extract_url_parameters.sql", "unique_id": "macro.linkedin_source.linkedin_ads_extract_url_parameter", "macro_sql": "{% macro linkedin_ads_extract_url_parameter(field, url_parameter) -%}\n\n{{ return(adapter.dispatch('linkedin_ads_extract_url_parameter', 'linkedin_source') (field, url_parameter)) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.linkedin_source.default__linkedin_ads_extract_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.484022, "supported_languages": null}, "macro.linkedin_source.default__linkedin_ads_extract_url_parameter": {"name": "default__linkedin_ads_extract_url_parameter", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_extract_url_parameters.sql", "original_file_path": "macros/linkedin_ads_extract_url_parameters.sql", "unique_id": "macro.linkedin_source.default__linkedin_ads_extract_url_parameter", "macro_sql": "{% macro default__linkedin_ads_extract_url_parameter(field, url_parameter) -%}\n\n{{ dbt_utils.get_url_parameter(field, url_parameter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.484171, "supported_languages": null}, "macro.linkedin_source.spark__linkedin_ads_extract_url_parameter": {"name": "spark__linkedin_ads_extract_url_parameter", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_extract_url_parameters.sql", "original_file_path": "macros/linkedin_ads_extract_url_parameters.sql", "unique_id": "macro.linkedin_source.spark__linkedin_ads_extract_url_parameter", "macro_sql": "{% macro spark__linkedin_ads_extract_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"=([^&]+)'\" -%}\nnullif(regexp_extract({{ field }}, {{ formatted_url_parameter }}, 1), '')\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.484353, "supported_languages": null}, "macro.linkedin_source.linkedin_ads_add_pass_through_columns": {"name": "linkedin_ads_add_pass_through_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_add_pass_through_columns.sql", "original_file_path": "macros/linkedin_ads_add_pass_through_columns.sql", "unique_id": "macro.linkedin_source.linkedin_ads_add_pass_through_columns", "macro_sql": "{% macro linkedin_ads_add_pass_through_columns(base_columns, pass_through_fields, except_fields=[]) %}\n\n{% if pass_through_fields %}\n {% for column in pass_through_fields %}\n\n {% if column is mapping %}\n {% set col_name = column.alias|default(column.name)|lower %}\n \n {% if col_name not in except_fields %}\n {% if column.alias %}\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n {% else %}\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n {% endif %}\n {% endif %}\n\n {% else %}\n {% if column|lower not in except_fields %}\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n {% endif %}\n {% endif %}\n\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.485698, "supported_languages": null}, "macro.linkedin_source.linkedin_ads_fill_pass_through_columns": {"name": "linkedin_ads_fill_pass_through_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/linkedin_ads_fill_pass_through_columns.sql", "original_file_path": "macros/linkedin_ads_fill_pass_through_columns.sql", "unique_id": "macro.linkedin_source.linkedin_ads_fill_pass_through_columns", "macro_sql": "{% macro linkedin_ads_fill_pass_through_columns(pass_through_fields, except=[]) %}\n\n{% if pass_through_fields %}\n {% for field in pass_through_fields %}\n {% if (field.alias if field.alias else field.name) not in except %}\n {% if field.transform_sql %}\n , coalesce(cast({{ field.transform_sql }} as {{ dbt.type_float() }}), 0) as {{ field.alias if field.alias else field.name }}\n {% else %}\n , coalesce(cast({{ field.alias if field.alias else field.name }} as {{ dbt.type_float() }}), 0) as {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.486638, "supported_languages": null}, "macro.linkedin_source.get_campaign_group_history_columns": {"name": "get_campaign_group_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_campaign_group_history_columns.sql", "original_file_path": "macros/get_campaign_group_history_columns.sql", "unique_id": "macro.linkedin_source.get_campaign_group_history_columns", "macro_sql": "{% macro get_campaign_group_history_columns() %}\n\n{% set columns = [\n {\"name\": \"account_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"backfilled\", \"datatype\": \"boolean\"},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"run_schedule_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"run_schedule_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_timestamp", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4876359, "supported_languages": null}, "macro.linkedin_source.get_ad_analytics_by_campaign_columns": {"name": "get_ad_analytics_by_campaign_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_ad_analytics_by_campaign_columns.sql", "original_file_path": "macros/get_ad_analytics_by_campaign_columns.sql", "unique_id": "macro.linkedin_source.get_ad_analytics_by_campaign_columns", "macro_sql": "{% macro get_ad_analytics_by_campaign_columns() %}\n\n{% set columns = [\n {\"name\": \"campaign_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"clicks\", \"datatype\": dbt.type_int()},\n {\"name\": \"cost_in_local_currency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cost_in_usd\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"day\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impressions\", \"datatype\": dbt.type_int()},\n {\"name\": \"conversion_value_in_local_currency\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('linkedin_ads__conversion_fields')) }}\n\n{# Doing it this way in case users were bringing in conversion metrics via passthrough columns prior to us adding them by default #}\n{{ linkedin_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('linkedin_ads__campaign_passthrough_metrics'), except_fields=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.fivetran_utils.add_pass_through_columns", "macro.linkedin_source.linkedin_ads_add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4887161, "supported_languages": null}, "macro.linkedin_source.get_campaign_history_columns": {"name": "get_campaign_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_campaign_history_columns.sql", "original_file_path": "macros/get_campaign_history_columns.sql", "unique_id": "macro.linkedin_source.get_campaign_history_columns", "macro_sql": "{% macro get_campaign_history_columns() %}\n\n{% set columns = [\n {\"name\": \"account_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"audience_expansion_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"campaign_group_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"cost_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"creative_selection\", \"datatype\": dbt.type_string()},\n {\"name\": \"daily_budget_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"daily_budget_currency_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"format\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"locale_country\", \"datatype\": dbt.type_string()},\n {\"name\": \"locale_language\", \"datatype\": dbt.type_string()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"objective_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"offsite_delivery_enabled\", \"datatype\": \"boolean\"},\n {\"name\": \"optimization_target_type\", \"datatype\": dbt.type_string()},\n {\"name\": \"run_schedule_end\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"run_schedule_start\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"unit_cost_amount\", \"datatype\": dbt.type_float()},\n {\"name\": \"unit_cost_currency_code\", \"datatype\": dbt.type_string()},\n {\"name\": \"version_tag\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_string", "macro.dbt.type_timestamp", "macro.dbt.type_float"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.491211, "supported_languages": null}, "macro.linkedin_source.get_ad_analytics_by_creative_columns": {"name": "get_ad_analytics_by_creative_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_ad_analytics_by_creative_columns.sql", "original_file_path": "macros/get_ad_analytics_by_creative_columns.sql", "unique_id": "macro.linkedin_source.get_ad_analytics_by_creative_columns", "macro_sql": "{% macro get_ad_analytics_by_creative_columns() %}\n\n{% set columns = [\n {\"name\": \"clicks\", \"datatype\": dbt.type_int()},\n {\"name\": \"cost_in_local_currency\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"cost_in_usd\", \"datatype\": dbt.type_numeric()},\n {\"name\": \"creative_id\", \"datatype\": dbt.type_int()},\n {\"name\": \"day\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"impressions\", \"datatype\": dbt.type_int()},\n {\"name\": \"conversion_value_in_local_currency\", \"datatype\": dbt.type_numeric()}\n] %}\n\n{{ fivetran_utils.add_pass_through_columns(columns, var('linkedin_ads__conversion_fields')) }}\n\n{# Doing it this way in case users were bringing in conversion metrics via passthrough columns prior to us adding them by default #}\n{{ linkedin_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('linkedin_ads__creative_passthrough_metrics'), except_fields=(var('linkedin_ads__conversion_fields') + ['conversion_value_in_local_currency'])) }}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_int", "macro.dbt.type_numeric", "macro.dbt.type_timestamp", "macro.fivetran_utils.add_pass_through_columns", "macro.linkedin_source.linkedin_ads_add_pass_through_columns"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.492388, "supported_languages": null}, "macro.linkedin_source.get_account_history_columns": {"name": "get_account_history_columns", "resource_type": "macro", "package_name": "linkedin_source", "path": "macros/get_account_history_columns.sql", "original_file_path": "macros/get_account_history_columns.sql", "unique_id": "macro.linkedin_source.get_account_history_columns", "macro_sql": "{% macro get_account_history_columns() %}\n\n{% set columns = [\n {\"name\": \"created_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"currency\", \"datatype\": dbt.type_string()},\n {\"name\": \"id\", \"datatype\": dbt.type_int()},\n {\"name\": \"last_modified_time\", \"datatype\": dbt.type_timestamp()},\n {\"name\": \"name\", \"datatype\": dbt.type_string()},\n {\"name\": \"status\", \"datatype\": dbt.type_string()},\n {\"name\": \"type\", \"datatype\": dbt.type_string()},\n {\"name\": \"version_tag\", \"datatype\": dbt.type_string()}\n] %}\n\n{{ return(columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_timestamp", "macro.dbt.type_string", "macro.dbt.type_int"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.493315, "supported_languages": null}, "macro.spark_utils.get_tables": {"name": "get_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_tables", "macro_sql": "{% macro get_tables(table_regex_pattern='.*') %}\n\n {% set tables = [] %}\n {% for database in spark__list_schemas('not_used') %}\n {% for table in spark__list_relations_without_caching(database[0]) %}\n {% set db_tablename = database[0] ~ \".\" ~ table[1] %}\n {% set is_match = modules.re.match(table_regex_pattern, db_tablename) %}\n {% if is_match %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('type', 'TYPE', 'Type'))|first %}\n {% if table_type[1]|lower != 'view' %}\n {{ tables.append(db_tablename) }}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% endfor %}\n {{ return(tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.497996, "supported_languages": null}, "macro.spark_utils.get_delta_tables": {"name": "get_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_delta_tables", "macro_sql": "{% macro get_delta_tables(table_regex_pattern='.*') %}\n\n {% set delta_tables = [] %}\n {% for db_tablename in get_tables(table_regex_pattern) %}\n {% call statement('table_detail', fetch_result=True) -%}\n describe extended {{ db_tablename }}\n {% endcall %}\n\n {% set table_type = load_result('table_detail').table|reverse|selectattr(0, 'in', ('provider', 'PROVIDER', 'Provider'))|first %}\n {% if table_type[1]|lower == 'delta' %}\n {{ delta_tables.append(db_tablename) }}\n {% endif %}\n {% endfor %}\n {{ return(delta_tables) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4986281, "supported_languages": null}, "macro.spark_utils.get_statistic_columns": {"name": "get_statistic_columns", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.get_statistic_columns", "macro_sql": "{% macro get_statistic_columns(table) %}\n\n {% call statement('input_columns', fetch_result=True) %}\n SHOW COLUMNS IN {{ table }}\n {% endcall %}\n {% set input_columns = load_result('input_columns').table %}\n\n {% set output_columns = [] %}\n {% for column in input_columns %}\n {% call statement('column_information', fetch_result=True) %}\n DESCRIBE TABLE {{ table }} `{{ column[0] }}`\n {% endcall %}\n {% if not load_result('column_information').table[1][1].startswith('struct') and not load_result('column_information').table[1][1].startswith('array') %}\n {{ output_columns.append('`' ~ column[0] ~ '`') }}\n {% endif %}\n {% endfor %}\n {{ return(output_columns) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.4994261, "supported_languages": null}, "macro.spark_utils.spark_optimize_delta_tables": {"name": "spark_optimize_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_optimize_delta_tables", "macro_sql": "{% macro spark_optimize_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Optimizing \" ~ table) }}\n {% do run_query(\"optimize \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.500055, "supported_languages": null}, "macro.spark_utils.spark_vacuum_delta_tables": {"name": "spark_vacuum_delta_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_vacuum_delta_tables", "macro_sql": "{% macro spark_vacuum_delta_tables(table_regex_pattern='.*') %}\n\n {% for table in get_delta_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Vacuuming \" ~ table) }}\n {% do run_query(\"vacuum \" ~ table) %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_delta_tables", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.500683, "supported_languages": null}, "macro.spark_utils.spark_analyze_tables": {"name": "spark_analyze_tables", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/maintenance_operation.sql", "original_file_path": "macros/maintenance_operation.sql", "unique_id": "macro.spark_utils.spark_analyze_tables", "macro_sql": "{% macro spark_analyze_tables(table_regex_pattern='.*') %}\n\n {% for table in get_tables(table_regex_pattern) %}\n {% set start=modules.datetime.datetime.now() %}\n {% set columns = get_statistic_columns(table) | join(',') %}\n {% set message_prefix=loop.index ~ \" of \" ~ loop.length %}\n {{ dbt_utils.log_info(message_prefix ~ \" Analyzing \" ~ table) }}\n {% if columns != '' %}\n {% do run_query(\"analyze table \" ~ table ~ \" compute statistics for columns \" ~ columns) %}\n {% endif %}\n {% set end=modules.datetime.datetime.now() %}\n {% set total_seconds = (end - start).total_seconds() | round(2) %}\n {{ dbt_utils.log_info(message_prefix ~ \" Finished \" ~ table ~ \" in \" ~ total_seconds ~ \"s\") }}\n {% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.get_tables", "macro.spark_utils.get_statistic_columns", "macro.dbt_utils.log_info", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.50145, "supported_languages": null}, "macro.spark_utils.spark__concat": {"name": "spark__concat", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/concat.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/concat.sql", "unique_id": "macro.spark_utils.spark__concat", "macro_sql": "{% macro spark__concat(fields) -%}\n concat({{ fields|join(', ') }})\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5016341, "supported_languages": null}, "macro.spark_utils.spark__type_numeric": {"name": "spark__type_numeric", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datatypes.sql", "unique_id": "macro.spark_utils.spark__type_numeric", "macro_sql": "{% macro spark__type_numeric() %}\n decimal(28, 6)\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.501738, "supported_languages": null}, "macro.spark_utils.spark__dateadd": {"name": "spark__dateadd", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/dateadd.sql", "unique_id": "macro.spark_utils.spark__dateadd", "macro_sql": "{% macro spark__dateadd(datepart, interval, from_date_or_timestamp) %}\n\n {%- set clock_component -%}\n {# make sure the dates + timestamps are real, otherwise raise an error asap #}\n to_unix_timestamp({{ spark_utils.assert_not_null('to_timestamp', from_date_or_timestamp) }})\n - to_unix_timestamp({{ spark_utils.assert_not_null('date', from_date_or_timestamp) }})\n {%- endset -%}\n\n {%- if datepart in ['day', 'week'] -%}\n \n {%- set multiplier = 7 if datepart == 'week' else 1 -%}\n\n to_timestamp(\n to_unix_timestamp(\n date_add(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ['month', 'quarter', 'year'] -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'month' -%} 1\n {%- elif datepart == 'quarter' -%} 3\n {%- elif datepart == 'year' -%} 12\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n to_unix_timestamp(\n add_months(\n {{ spark_utils.assert_not_null('date', from_date_or_timestamp) }},\n cast({{interval}} * {{multiplier}} as int)\n )\n ) + {{clock_component}}\n )\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set multiplier -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n to_timestamp(\n {{ spark_utils.assert_not_null('to_unix_timestamp', from_date_or_timestamp) }}\n + cast({{interval}} * {{multiplier}} as int)\n )\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro dateadd not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.504683, "supported_languages": null}, "macro.spark_utils.spark__datediff": {"name": "spark__datediff", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/datediff.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/datediff.sql", "unique_id": "macro.spark_utils.spark__datediff", "macro_sql": "{% macro spark__datediff(first_date, second_date, datepart) %}\n\n {%- if datepart in ['day', 'week', 'month', 'quarter', 'year'] -%}\n \n {# make sure the dates are real, otherwise raise an error asap #}\n {% set first_date = spark_utils.assert_not_null('date', first_date) %}\n {% set second_date = spark_utils.assert_not_null('date', second_date) %}\n \n {%- endif -%}\n \n {%- if datepart == 'day' -%}\n \n datediff({{second_date}}, {{first_date}})\n \n {%- elif datepart == 'week' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(datediff({{second_date}}, {{first_date}})/7)\n else ceil(datediff({{second_date}}, {{first_date}})/7)\n end\n \n -- did we cross a week boundary (Sunday)?\n + case\n when {{first_date}} < {{second_date}} and dayofweek({{second_date}}) < dayofweek({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofweek({{second_date}}) > dayofweek({{first_date}}) then -1\n else 0 end\n\n {%- elif datepart == 'month' -%}\n\n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}})))\n else ceil(months_between(date({{second_date}}), date({{first_date}})))\n end\n \n -- did we cross a month boundary?\n + case\n when {{first_date}} < {{second_date}} and dayofmonth({{second_date}}) < dayofmonth({{first_date}}) then 1\n when {{first_date}} > {{second_date}} and dayofmonth({{second_date}}) > dayofmonth({{first_date}}) then -1\n else 0 end\n \n {%- elif datepart == 'quarter' -%}\n \n case when {{first_date}} < {{second_date}}\n then floor(months_between(date({{second_date}}), date({{first_date}}))/3)\n else ceil(months_between(date({{second_date}}), date({{first_date}}))/3)\n end\n \n -- did we cross a quarter boundary?\n + case\n when {{first_date}} < {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n < (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then 1\n when {{first_date}} > {{second_date}} and (\n (dayofyear({{second_date}}) - (quarter({{second_date}}) * 365/4))\n > (dayofyear({{first_date}}) - (quarter({{first_date}}) * 365/4))\n ) then -1\n else 0 end\n\n {%- elif datepart == 'year' -%}\n \n year({{second_date}}) - year({{first_date}})\n\n {%- elif datepart in ('hour', 'minute', 'second', 'millisecond', 'microsecond') -%}\n \n {%- set divisor -%} \n {%- if datepart == 'hour' -%} 3600\n {%- elif datepart == 'minute' -%} 60\n {%- elif datepart == 'second' -%} 1\n {%- elif datepart == 'millisecond' -%} (1/1000)\n {%- elif datepart == 'microsecond' -%} (1/1000000)\n {%- endif -%}\n {%- endset -%}\n\n case when {{first_date}} < {{second_date}}\n then ceil((\n {# make sure the timestamps are real, otherwise raise an error asap #}\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n else floor((\n {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', second_date)) }}\n - {{ spark_utils.assert_not_null('to_unix_timestamp', spark_utils.assert_not_null('to_timestamp', first_date)) }}\n ) / {{divisor}})\n end\n \n {% if datepart == 'millisecond' %}\n + cast(date_format({{second_date}}, 'SSS') as int)\n - cast(date_format({{first_date}}, 'SSS') as int)\n {% endif %}\n \n {% if datepart == 'microsecond' %} \n {% set capture_str = '[0-9]{4}-[0-9]{2}-[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}.([0-9]{6})' %}\n -- Spark doesn't really support microseconds, so this is a massive hack!\n -- It will only work if the timestamp-string is of the format\n -- 'yyyy-MM-dd-HH mm.ss.SSSSSS'\n + cast(regexp_extract({{second_date}}, '{{capture_str}}', 1) as int)\n - cast(regexp_extract({{first_date}}, '{{capture_str}}', 1) as int) \n {% endif %}\n\n {%- else -%}\n\n {{ exceptions.raise_compiler_error(\"macro datediff not implemented for datepart ~ '\" ~ datepart ~ \"' ~ on Spark\") }}\n\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5109482, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp": {"name": "spark__current_timestamp", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp", "macro_sql": "{% macro spark__current_timestamp() %}\n current_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.511092, "supported_languages": null}, "macro.spark_utils.spark__current_timestamp_in_utc": {"name": "spark__current_timestamp_in_utc", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/current_timestamp.sql", "unique_id": "macro.spark_utils.spark__current_timestamp_in_utc", "macro_sql": "{% macro spark__current_timestamp_in_utc() %}\n unix_timestamp()\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.511163, "supported_languages": null}, "macro.spark_utils.spark__split_part": {"name": "spark__split_part", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/cross_db_utils/split_part.sql", "original_file_path": "macros/dbt_utils/cross_db_utils/split_part.sql", "unique_id": "macro.spark_utils.spark__split_part", "macro_sql": "{% macro spark__split_part(string_text, delimiter_text, part_number) %}\n\n {% set delimiter_expr %}\n \n -- escape if starts with a special character\n case when regexp_extract({{ delimiter_text }}, '([^A-Za-z0-9])(.*)', 1) != '_'\n then concat('\\\\', {{ delimiter_text }})\n else {{ delimiter_text }} end\n \n {% endset %}\n\n {% set split_part_expr %}\n \n split(\n {{ string_text }},\n {{ delimiter_expr }}\n )[({{ part_number - 1 }})]\n \n {% endset %}\n \n {{ return(split_part_expr) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.511651, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_pattern": {"name": "spark__get_relations_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_pattern", "macro_sql": "{% macro spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n\n {%- call statement('get_tables', fetch_result=True) %}\n\n show table extended in {{ schema_pattern }} like '{{ table_pattern }}'\n\n {%- endcall -%}\n\n {%- set table_list = load_result('get_tables') -%}\n\n {%- if table_list and table_list['table'] -%}\n {%- set tbl_relations = [] -%}\n {%- for row in table_list['table'] -%}\n {%- set tbl_relation = api.Relation.create(\n database=None,\n schema=row[0],\n identifier=row[1],\n type=('view' if 'Type: VIEW' in row[3] else 'table')\n ) -%}\n {%- do tbl_relations.append(tbl_relation) -%}\n {%- endfor -%}\n\n {{ return(tbl_relations) }}\n {%- else -%}\n {{ return([]) }}\n {%- endif -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5130188, "supported_languages": null}, "macro.spark_utils.spark__get_relations_by_prefix": {"name": "spark__get_relations_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_relations_by_prefix", "macro_sql": "{% macro spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {% set table_pattern = table_pattern ~ '*' %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.513433, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_pattern": {"name": "spark__get_tables_by_pattern", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_pattern", "macro_sql": "{% macro spark__get_tables_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_pattern(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_pattern"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.513738, "supported_languages": null}, "macro.spark_utils.spark__get_tables_by_prefix": {"name": "spark__get_tables_by_prefix", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "original_file_path": "macros/dbt_utils/sql/get_relations_by_prefix.sql", "unique_id": "macro.spark_utils.spark__get_tables_by_prefix", "macro_sql": "{% macro spark__get_tables_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database) %}\n {{ return(spark_utils.spark__get_relations_by_prefix(schema_pattern, table_pattern, exclude='', database=target.database)) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.spark_utils.spark__get_relations_by_prefix"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.513988, "supported_languages": null}, "macro.spark_utils.assert_not_null": {"name": "assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.assert_not_null", "macro_sql": "{% macro assert_not_null(function, arg) -%}\n {{ return(adapter.dispatch('assert_not_null', 'spark_utils')(function, arg)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.spark_utils.default__assert_not_null"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.514335, "supported_languages": null}, "macro.spark_utils.default__assert_not_null": {"name": "default__assert_not_null", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/etc/assert_not_null.sql", "original_file_path": "macros/etc/assert_not_null.sql", "unique_id": "macro.spark_utils.default__assert_not_null", "macro_sql": "{% macro default__assert_not_null(function, arg) %}\n\n coalesce({{function}}({{arg}}), nvl2({{function}}({{arg}}), assert_true({{function}}({{arg}}) is not null), null))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5145228, "supported_languages": null}, "macro.spark_utils.spark__convert_timezone": {"name": "spark__convert_timezone", "resource_type": "macro", "package_name": "spark_utils", "path": "macros/snowplow/convert_timezone.sql", "original_file_path": "macros/snowplow/convert_timezone.sql", "unique_id": "macro.spark_utils.spark__convert_timezone", "macro_sql": "{% macro spark__convert_timezone(in_tz, out_tz, in_timestamp) %}\n from_utc_timestamp(to_utc_timestamp({{in_timestamp}}, {{in_tz}}), {{out_tz}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.514739, "supported_languages": null}, "macro.fivetran_utils.enabled_vars": {"name": "enabled_vars", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars.sql", "original_file_path": "macros/enabled_vars.sql", "unique_id": "macro.fivetran_utils.enabled_vars", "macro_sql": "{% macro enabled_vars(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, True) == False %}\n {{ return(False) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(True) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.515094, "supported_languages": null}, "macro.fivetran_utils.percentile": {"name": "percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.percentile", "macro_sql": "{% macro percentile(percentile_field, partition_field, percent) -%}\n\n{{ adapter.dispatch('percentile', 'fivetran_utils') (percentile_field, partition_field, percent) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__percentile"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.515952, "supported_languages": null}, "macro.fivetran_utils.default__percentile": {"name": "default__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.default__percentile", "macro_sql": "{% macro default__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5161011, "supported_languages": null}, "macro.fivetran_utils.redshift__percentile": {"name": "redshift__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.redshift__percentile", "macro_sql": "{% macro redshift__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n over ( partition by {{ partition_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.516309, "supported_languages": null}, "macro.fivetran_utils.bigquery__percentile": {"name": "bigquery__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.bigquery__percentile", "macro_sql": "{% macro bigquery__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5164642, "supported_languages": null}, "macro.fivetran_utils.postgres__percentile": {"name": "postgres__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.postgres__percentile", "macro_sql": "{% macro postgres__percentile(percentile_field, partition_field, percent) %}\n\n percentile_cont( \n {{ percent }} )\n within group ( order by {{ percentile_field }} )\n /* have to group by partition field */\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.516598, "supported_languages": null}, "macro.fivetran_utils.spark__percentile": {"name": "spark__percentile", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/percentile.sql", "original_file_path": "macros/percentile.sql", "unique_id": "macro.fivetran_utils.spark__percentile", "macro_sql": "{% macro spark__percentile(percentile_field, partition_field, percent) %}\n\n percentile( \n {{ percentile_field }}, \n {{ percent }}) \n over (partition by {{ partition_field }} \n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.516768, "supported_languages": null}, "macro.fivetran_utils.pivot_json_extract": {"name": "pivot_json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/pivot_json_extract.sql", "original_file_path": "macros/pivot_json_extract.sql", "unique_id": "macro.fivetran_utils.pivot_json_extract", "macro_sql": "{% macro pivot_json_extract(string, list_of_properties) %}\n\n{%- for property in list_of_properties -%}\n{%- if property is mapping -%}\nreplace( {{ fivetran_utils.json_extract(string, property.name) }}, '\"', '') as {{ property.alias if property.alias else property.name | replace(' ', '_') | replace('.', '_') | lower }}\n\n{%- else -%}\nreplace( {{ fivetran_utils.json_extract(string, property) }}, '\"', '') as {{ property | replace(' ', '_') | lower }}\n\n{%- endif -%}\n{%- if not loop.last -%},{%- endif %}\n{% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.517626, "supported_languages": null}, "macro.fivetran_utils.persist_pass_through_columns": {"name": "persist_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/persist_pass_through_columns.sql", "original_file_path": "macros/persist_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.persist_pass_through_columns", "macro_sql": "{% macro persist_pass_through_columns(pass_through_variable, identifier=none, transform='') %}\n\n{% if var(pass_through_variable, none) %}\n {% for field in var(pass_through_variable) %}\n , {{ transform ~ '(' ~ (identifier ~ '.' if identifier else '') ~ (field.alias if field.alias else field.name) ~ ')' }} as {{ field.alias if field.alias else field.name }}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.518228, "supported_languages": null}, "macro.fivetran_utils.json_parse": {"name": "json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.json_parse", "macro_sql": "{% macro json_parse(string, string_path) -%}\n\n{{ adapter.dispatch('json_parse', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_parse"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.519802, "supported_languages": null}, "macro.fivetran_utils.default__json_parse": {"name": "default__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.default__json_parse", "macro_sql": "{% macro default__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.520046, "supported_languages": null}, "macro.fivetran_utils.redshift__json_parse": {"name": "redshift__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.redshift__json_parse", "macro_sql": "{% macro redshift__json_parse(string, string_path) %}\n\n json_extract_path_text({{string}}, {%- for s in string_path -%}'{{ s }}'{%- if not loop.last -%},{%- endif -%}{%- endfor -%} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.520262, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_parse": {"name": "bigquery__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.bigquery__json_parse", "macro_sql": "{% macro bigquery__json_parse(string, string_path) %}\n\n \n json_extract_scalar({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.520472, "supported_languages": null}, "macro.fivetran_utils.postgres__json_parse": {"name": "postgres__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.postgres__json_parse", "macro_sql": "{% macro postgres__json_parse(string, string_path) %}\n\n {{string}}::json #>> '{ {%- for s in string_path -%}{{ s }}{%- if not loop.last -%},{%- endif -%}{%- endfor -%} }'\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.520679, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_parse": {"name": "snowflake__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.snowflake__json_parse", "macro_sql": "{% macro snowflake__json_parse(string, string_path) %}\n\n parse_json( {{string}} ) {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.520908, "supported_languages": null}, "macro.fivetran_utils.spark__json_parse": {"name": "spark__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.spark__json_parse", "macro_sql": "{% macro spark__json_parse(string, string_path) %}\n\n {{string}} : {%- for s in string_path -%}{% if s is number %}[{{ s }}]{% else %}['{{ s }}']{% endif %}{%- endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.521131, "supported_languages": null}, "macro.fivetran_utils.sqlserver__json_parse": {"name": "sqlserver__json_parse", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_parse.sql", "original_file_path": "macros/json_parse.sql", "unique_id": "macro.fivetran_utils.sqlserver__json_parse", "macro_sql": "{% macro sqlserver__json_parse(string, string_path) %}\n\n json_value({{string}}, '$.{%- for s in string_path -%}{{ s }}{%- if not loop.last -%}.{%- endif -%}{%- endfor -%} ')\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.521332, "supported_languages": null}, "macro.fivetran_utils.max_bool": {"name": "max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.max_bool", "macro_sql": "{% macro max_bool(boolean_field) -%}\n\n{{ adapter.dispatch('max_bool', 'fivetran_utils') (boolean_field) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__max_bool"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.521621, "supported_languages": null}, "macro.fivetran_utils.default__max_bool": {"name": "default__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.default__max_bool", "macro_sql": "{% macro default__max_bool(boolean_field) %}\n\n bool_or( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.521712, "supported_languages": null}, "macro.fivetran_utils.snowflake__max_bool": {"name": "snowflake__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.snowflake__max_bool", "macro_sql": "{% macro snowflake__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.521803, "supported_languages": null}, "macro.fivetran_utils.bigquery__max_bool": {"name": "bigquery__max_bool", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/max_bool.sql", "original_file_path": "macros/max_bool.sql", "unique_id": "macro.fivetran_utils.bigquery__max_bool", "macro_sql": "{% macro bigquery__max_bool(boolean_field) %}\n\n max( {{ boolean_field }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.521894, "supported_languages": null}, "macro.fivetran_utils.calculated_fields": {"name": "calculated_fields", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/calculated_fields.sql", "original_file_path": "macros/calculated_fields.sql", "unique_id": "macro.fivetran_utils.calculated_fields", "macro_sql": "{% macro calculated_fields(variable) -%}\n\n{% if var(variable, none) %}\n {% for field in var(variable) %}\n , {{ field.transform_sql }} as {{ field.name }} \n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.522206, "supported_languages": null}, "macro.fivetran_utils.drop_schemas_automation": {"name": "drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.drop_schemas_automation", "macro_sql": "{% macro drop_schemas_automation(drop_target_schema=true) %}\n {{ return(adapter.dispatch('drop_schemas_automation', 'fivetran_utils')(drop_target_schema)) }}\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__drop_schemas_automation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5228229, "supported_languages": null}, "macro.fivetran_utils.default__drop_schemas_automation": {"name": "default__drop_schemas_automation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/drop_schemas_automation.sql", "original_file_path": "macros/drop_schemas_automation.sql", "unique_id": "macro.fivetran_utils.default__drop_schemas_automation", "macro_sql": "{% macro default__drop_schemas_automation(drop_target_schema=true) %}\n\n{% set fetch_list_sql %}\n {% if target.type not in ('databricks', 'spark') %}\n select schema_name\n from \n {{ wrap_in_quotes(target.database) }}.INFORMATION_SCHEMA.SCHEMATA\n where lower(schema_name) like '{{ target.schema | lower }}{%- if not drop_target_schema -%}_{%- endif -%}%'\n {% else %}\n SHOW SCHEMAS LIKE '{{ target.schema }}{%- if not drop_target_schema -%}_{%- endif -%}*'\n {% endif %}\n{% endset %}\n\n{% set results = run_query(fetch_list_sql) %}\n\n{% if execute %}\n {% set results_list = results.columns[0].values() %}\n{% else %}\n {% set results_list = [] %}\n{% endif %}\n\n{% for schema_to_drop in results_list %}\n {% do adapter.drop_schema(api.Relation.create(database=target.database, schema=schema_to_drop)) %}\n {{ print('Schema ' ~ schema_to_drop ~ ' successfully dropped from the ' ~ target.database ~ ' database.\\n')}}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.wrap_in_quotes", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.524044, "supported_languages": null}, "macro.fivetran_utils.seed_data_helper": {"name": "seed_data_helper", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/seed_data_helper.sql", "original_file_path": "macros/seed_data_helper.sql", "unique_id": "macro.fivetran_utils.seed_data_helper", "macro_sql": "{% macro seed_data_helper(seed_name, warehouses) %}\n\n{% if target.type in warehouses %}\n {% for w in warehouses %}\n {% if target.type == w %}\n {{ return(ref(seed_name ~ \"_\" ~ w ~ \"\")) }}\n {% endif %}\n {% endfor %}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.524707, "supported_languages": null}, "macro.fivetran_utils.fill_pass_through_columns": {"name": "fill_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_pass_through_columns.sql", "original_file_path": "macros/fill_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.fill_pass_through_columns", "macro_sql": "{% macro fill_pass_through_columns(pass_through_variable) %}\n\n{% if var(pass_through_variable) %}\n {% for field in var(pass_through_variable) %}\n {% if field is mapping %}\n {% if field.transform_sql %}\n , {{ field.transform_sql }} as {{ field.alias if field.alias else field.name }}\n {% else %}\n , {{ field.alias if field.alias else field.name }}\n {% endif %}\n {% else %}\n , {{ field }}\n {% endif %}\n {% endfor %}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.525525, "supported_languages": null}, "macro.fivetran_utils.string_agg": {"name": "string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.string_agg", "macro_sql": "{% macro string_agg(field_to_agg, delimiter) -%}\n\n{{ adapter.dispatch('string_agg', 'fivetran_utils') (field_to_agg, delimiter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__string_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.525975, "supported_languages": null}, "macro.fivetran_utils.default__string_agg": {"name": "default__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.default__string_agg", "macro_sql": "{% macro default__string_agg(field_to_agg, delimiter) %}\n string_agg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5260942, "supported_languages": null}, "macro.fivetran_utils.snowflake__string_agg": {"name": "snowflake__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.snowflake__string_agg", "macro_sql": "{% macro snowflake__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.526208, "supported_languages": null}, "macro.fivetran_utils.redshift__string_agg": {"name": "redshift__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.redshift__string_agg", "macro_sql": "{% macro redshift__string_agg(field_to_agg, delimiter) %}\n listagg({{ field_to_agg }}, {{ delimiter }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.526322, "supported_languages": null}, "macro.fivetran_utils.spark__string_agg": {"name": "spark__string_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/string_agg.sql", "original_file_path": "macros/string_agg.sql", "unique_id": "macro.fivetran_utils.spark__string_agg", "macro_sql": "{% macro spark__string_agg(field_to_agg, delimiter) %}\n -- collect set will remove duplicates\n replace(replace(replace(cast( collect_set({{ field_to_agg }}) as string), '[', ''), ']', ''), ', ', {{ delimiter }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5264409, "supported_languages": null}, "macro.fivetran_utils.timestamp_diff": {"name": "timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.timestamp_diff", "macro_sql": "{% macro timestamp_diff(first_date, second_date, datepart) %}\n {{ adapter.dispatch('timestamp_diff', 'fivetran_utils')(first_date, second_date, datepart) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_diff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.528933, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_diff": {"name": "default__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.default__timestamp_diff", "macro_sql": "{% macro default__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.529074, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_diff": {"name": "redshift__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_diff", "macro_sql": "{% macro redshift__timestamp_diff(first_date, second_date, datepart) %}\n\n datediff(\n {{ datepart }},\n {{ first_date }},\n {{ second_date }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5292108, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_diff": {"name": "bigquery__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_diff", "macro_sql": "{% macro bigquery__timestamp_diff(first_date, second_date, datepart) %}\n\n timestamp_diff(\n {{second_date}},\n {{first_date}},\n {{datepart}}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.529342, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_diff": {"name": "postgres__timestamp_diff", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_diff.sql", "original_file_path": "macros/timestamp_diff.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_diff", "macro_sql": "{% macro postgres__timestamp_diff(first_date, second_date, datepart) %}\n\n {% if datepart == 'year' %}\n (date_part('year', ({{second_date}})::date) - date_part('year', ({{first_date}})::date))\n {% elif datepart == 'quarter' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 4 + date_part('quarter', ({{second_date}})::date) - date_part('quarter', ({{first_date}})::date))\n {% elif datepart == 'month' %}\n ({{ dbt.datediff(first_date, second_date, 'year') }} * 12 + date_part('month', ({{second_date}})::date) - date_part('month', ({{first_date}})::date))\n {% elif datepart == 'day' %}\n (({{second_date}})::date - ({{first_date}})::date)\n {% elif datepart == 'week' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} / 7 + case\n when date_part('dow', ({{first_date}})::timestamp) <= date_part('dow', ({{second_date}})::timestamp) then\n case when {{first_date}} <= {{second_date}} then 0 else -1 end\n else\n case when {{first_date}} <= {{second_date}} then 1 else 0 end\n end)\n {% elif datepart == 'hour' %}\n ({{ dbt.datediff(first_date, second_date, 'day') }} * 24 + date_part('hour', ({{second_date}})::timestamp) - date_part('hour', ({{first_date}})::timestamp))\n {% elif datepart == 'minute' %}\n ({{ dbt.datediff(first_date, second_date, 'hour') }} * 60 + date_part('minute', ({{second_date}})::timestamp) - date_part('minute', ({{first_date}})::timestamp))\n {% elif datepart == 'second' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60 + floor(date_part('second', ({{second_date}})::timestamp)) - floor(date_part('second', ({{first_date}})::timestamp)))\n {% elif datepart == 'millisecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000 + floor(date_part('millisecond', ({{second_date}})::timestamp)) - floor(date_part('millisecond', ({{first_date}})::timestamp)))\n {% elif datepart == 'microsecond' %}\n ({{ dbt.datediff(first_date, second_date, 'minute') }} * 60000000 + floor(date_part('microsecond', ({{second_date}})::timestamp)) - floor(date_part('microsecond', ({{first_date}})::timestamp)))\n {% else %}\n {{ exceptions.raise_compiler_error(\"Unsupported datepart for macro datediff in postgres: {!r}\".format(datepart)) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.530802, "supported_languages": null}, "macro.fivetran_utils.try_cast": {"name": "try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.try_cast", "macro_sql": "{% macro try_cast(field, type) %}\n {{ adapter.dispatch('try_cast', 'fivetran_utils') (field, type) }}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__try_cast"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.531641, "supported_languages": null}, "macro.fivetran_utils.default__try_cast": {"name": "default__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.default__try_cast", "macro_sql": "{% macro default__try_cast(field, type) %}\n {# most databases don't support this function yet\n so we just need to use cast #}\n cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5317628, "supported_languages": null}, "macro.fivetran_utils.redshift__try_cast": {"name": "redshift__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.redshift__try_cast", "macro_sql": "{% macro redshift__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when trim({{field}}) ~ '^(0|[1-9][0-9]*)$' then trim({{field}})\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5319948, "supported_languages": null}, "macro.fivetran_utils.postgres__try_cast": {"name": "postgres__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.postgres__try_cast", "macro_sql": "{% macro postgres__try_cast(field, type) %}\n{%- if type == 'numeric' -%}\n\n case\n when replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar)) ~ '^(0|[1-9][0-9]*)$' \n then replace(cast({{field}} as varchar),cast(' ' as varchar),cast('' as varchar))\n else null\n end::{{type}}\n\n{% else %}\n {{ exceptions.raise_compiler_error(\n \"non-numeric datatypes are not currently supported\") }}\n\n{% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.532237, "supported_languages": null}, "macro.fivetran_utils.snowflake__try_cast": {"name": "snowflake__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.snowflake__try_cast", "macro_sql": "{% macro snowflake__try_cast(field, type) %}\n try_cast(cast({{field}} as varchar) as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.53235, "supported_languages": null}, "macro.fivetran_utils.bigquery__try_cast": {"name": "bigquery__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.bigquery__try_cast", "macro_sql": "{% macro bigquery__try_cast(field, type) %}\n safe_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.532459, "supported_languages": null}, "macro.fivetran_utils.spark__try_cast": {"name": "spark__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.spark__try_cast", "macro_sql": "{% macro spark__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.532567, "supported_languages": null}, "macro.fivetran_utils.sqlserver__try_cast": {"name": "sqlserver__try_cast", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/try_cast.sql", "original_file_path": "macros/try_cast.sql", "unique_id": "macro.fivetran_utils.sqlserver__try_cast", "macro_sql": "{% macro sqlserver__try_cast(field, type) %}\n try_cast({{field}} as {{type}})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.532678, "supported_languages": null}, "macro.fivetran_utils.source_relation": {"name": "source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.source_relation", "macro_sql": "{% macro source_relation(union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('source_relation', 'fivetran_utils') (union_schema_variable, union_database_variable) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__source_relation"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5331059, "supported_languages": null}, "macro.fivetran_utils.default__source_relation": {"name": "default__source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/source_relation.sql", "original_file_path": "macros/source_relation.sql", "unique_id": "macro.fivetran_utils.default__source_relation", "macro_sql": "{% macro default__source_relation(union_schema_variable, union_database_variable) %}\n\n{% if var(union_schema_variable, none) %}\n, case\n {% for schema in var(union_schema_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%.{{ schema|lower }}.%' then '{{ schema|lower }}'\n {% endfor %}\n end as source_relation\n{% elif var(union_database_variable, none) %}\n, case\n {% for database in var(union_database_variable) %}\n when lower(replace(replace(_dbt_source_relation,'\"',''),'`','')) like '%{{ database|lower }}.%' then '{{ database|lower }}'\n {% endfor %}\n end as source_relation\n{% else %}\n, cast('' as {{ dbt.type_string() }}) as source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.533655, "supported_languages": null}, "macro.fivetran_utils.first_value": {"name": "first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.first_value", "macro_sql": "{% macro first_value(first_value_field, partition_field, order_by_field, order=\"asc\") -%}\n\n{{ adapter.dispatch('first_value', 'fivetran_utils') (first_value_field, partition_field, order_by_field, order) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__first_value"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.53427, "supported_languages": null}, "macro.fivetran_utils.default__first_value": {"name": "default__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.default__first_value", "macro_sql": "{% macro default__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.534472, "supported_languages": null}, "macro.fivetran_utils.redshift__first_value": {"name": "redshift__first_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/first_value.sql", "original_file_path": "macros/first_value.sql", "unique_id": "macro.fivetran_utils.redshift__first_value", "macro_sql": "{% macro redshift__first_value(first_value_field, partition_field, order_by_field, order=\"asc\") %}\n\n first_value( {{ first_value_field }} ignore nulls ) over (partition by {{ partition_field }} order by {{ order_by_field }} {{ order }} , {{ partition_field }} rows unbounded preceding )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.534679, "supported_languages": null}, "macro.fivetran_utils.add_dbt_source_relation": {"name": "add_dbt_source_relation", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_dbt_source_relation.sql", "original_file_path": "macros/add_dbt_source_relation.sql", "unique_id": "macro.fivetran_utils.add_dbt_source_relation", "macro_sql": "{% macro add_dbt_source_relation() %}\n\n{% if var('union_schemas', none) or var('union_databases', none) %}\n, _dbt_source_relation\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.534921, "supported_languages": null}, "macro.fivetran_utils.add_pass_through_columns": {"name": "add_pass_through_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/add_pass_through_columns.sql", "original_file_path": "macros/add_pass_through_columns.sql", "unique_id": "macro.fivetran_utils.add_pass_through_columns", "macro_sql": "{% macro add_pass_through_columns(base_columns, pass_through_var) %}\n\n {% if pass_through_var %}\n\n {% for column in pass_through_var %}\n\n {% if column is mapping %}\n\n {% if column.alias %}\n\n {% do base_columns.append({ \"name\": column.name, \"alias\": column.alias, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column.name, \"datatype\": column.datatype if column.datatype else dbt.type_string()}) %}\n \n {% endif %}\n\n {% else %}\n\n {% do base_columns.append({ \"name\": column, \"datatype\": dbt.type_string()}) %}\n\n {% endif %}\n\n {% endfor %}\n\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.536057, "supported_languages": null}, "macro.fivetran_utils.union_relations": {"name": "union_relations", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_relations", "macro_sql": "{%- macro union_relations(relations, aliases=none, column_override=none, include=[], exclude=[], source_column_name=none) -%}\n\n {%- if exclude and include -%}\n {{ exceptions.raise_compiler_error(\"Both an exclude and include list were provided to the `union` macro. Only one is allowed\") }}\n {%- endif -%}\n\n {#-- Prevent querying of db in parsing mode. This works because this macro does not create any new refs. -#}\n {%- if not execute %}\n {{ return('') }}\n {% endif -%}\n\n {%- set column_override = column_override if column_override is not none else {} -%}\n {%- set source_column_name = source_column_name if source_column_name is not none else '_dbt_source_relation' -%}\n\n {%- set relation_columns = {} -%}\n {%- set column_superset = {} -%}\n\n {%- for relation in relations -%}\n\n {%- do relation_columns.update({relation: []}) -%}\n\n {%- do dbt_utils._is_relation(relation, 'union_relations') -%}\n {%- set cols = adapter.get_columns_in_relation(relation) -%}\n {%- for col in cols -%}\n\n {#- If an exclude list was provided and the column is in the list, do nothing -#}\n {%- if exclude and col.column in exclude -%}\n\n {#- If an include list was provided and the column is not in the list, do nothing -#}\n {%- elif include and col.column not in include -%}\n\n {#- Otherwise add the column to the column superset -#}\n {%- else -%}\n\n {#- update the list of columns in this relation -#}\n {%- do relation_columns[relation].append(col.column) -%}\n\n {%- if col.column in column_superset -%}\n\n {%- set stored = column_superset[col.column] -%}\n {%- if col.is_string() and stored.is_string() and col.string_size() > stored.string_size() -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif %}\n\n {%- else -%}\n\n {%- do column_superset.update({col.column: col}) -%}\n\n {%- endif -%}\n\n {%- endif -%}\n\n {%- endfor -%}\n {%- endfor -%}\n\n {%- set ordered_column_names = column_superset.keys() -%}\n\n {%- for relation in relations %}\n\n (\n select\n\n cast({{ dbt.string_literal(relation) }} as {{ dbt.type_string() }}) as {{ source_column_name }},\n {% for col_name in ordered_column_names -%}\n\n {%- set col = column_superset[col_name] %}\n {%- set col_type = column_override.get(col.column, col.data_type) %}\n {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %}\n cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}\n\n {%- endfor %}\n\n from {{ aliases[loop.index0] if aliases else relation }}\n )\n\n {% if not loop.last -%}\n union all\n {% endif -%}\n\n {%- endfor -%}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.dbt_utils._is_relation", "macro.dbt.string_literal", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.539686, "supported_languages": null}, "macro.fivetran_utils.union_tables": {"name": "union_tables", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_relations.sql", "original_file_path": "macros/union_relations.sql", "unique_id": "macro.fivetran_utils.union_tables", "macro_sql": "{%- macro union_tables(tables, column_override=none, include=[], exclude=[], source_column_name='_dbt_source_table') -%}\n\n {%- do exceptions.warn(\"Warning: the `union_tables` macro is no longer supported and will be deprecated in a future release of dbt-utils. Use the `union_relations` macro instead\") -%}\n\n {{ return(dbt_utils.union_relations(tables, column_override, include, exclude, source_column_name)) }}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.540031, "supported_languages": null}, "macro.fivetran_utils.snowflake_seed_data": {"name": "snowflake_seed_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/snowflake_seed_data.sql", "original_file_path": "macros/snowflake_seed_data.sql", "unique_id": "macro.fivetran_utils.snowflake_seed_data", "macro_sql": "{% macro snowflake_seed_data(seed_name) %}\n\n{% if target.type == 'snowflake' %}\n{{ return(ref(seed_name ~ '_snowflake')) }}\n{% else %}\n{{ return(ref(seed_name)) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.54037, "supported_languages": null}, "macro.fivetran_utils.fill_staging_columns": {"name": "fill_staging_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.fill_staging_columns", "macro_sql": "{% macro fill_staging_columns(source_columns, staging_columns) -%}\n\n{%- set source_column_names = source_columns|map(attribute='name')|map('lower')|list -%}\n\n{%- for column in staging_columns %}\n {% if column.name|lower in source_column_names -%}\n {{ fivetran_utils.quote_column(column) }} as \n {%- if 'alias' in column %} {{ column.alias }} {% else %} {{ fivetran_utils.quote_column(column) }} {%- endif -%}\n {%- else -%}\n cast(null as {{ column.datatype }})\n {%- if 'alias' in column %} as {{ column.alias }} {% else %} as {{ fivetran_utils.quote_column(column) }} {% endif -%}\n {%- endif -%}\n {%- if not loop.last -%} , {% endif -%}\n{% endfor %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.quote_column"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.541812, "supported_languages": null}, "macro.fivetran_utils.quote_column": {"name": "quote_column", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fill_staging_columns.sql", "original_file_path": "macros/fill_staging_columns.sql", "unique_id": "macro.fivetran_utils.quote_column", "macro_sql": "{% macro quote_column(column) %}\n {% if 'quote' in column %}\n {% if column.quote %}\n {% if target.type in ('bigquery', 'spark', 'databricks') %}\n `{{ column.name }}`\n {% elif target.type == 'snowflake' %}\n \"{{ column.name | upper }}\"\n {% else %}\n \"{{ column.name }}\"\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n {% else %}\n {{ column.name }}\n {% endif %}\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.542331, "supported_languages": null}, "macro.fivetran_utils.json_extract": {"name": "json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.json_extract", "macro_sql": "{% macro json_extract(string, string_path) -%}\n\n{{ adapter.dispatch('json_extract', 'fivetran_utils') (string, string_path) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__json_extract"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.542871, "supported_languages": null}, "macro.fivetran_utils.default__json_extract": {"name": "default__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.default__json_extract", "macro_sql": "{% macro default__json_extract(string, string_path) %}\n\n json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} )\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5430138, "supported_languages": null}, "macro.fivetran_utils.snowflake__json_extract": {"name": "snowflake__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.snowflake__json_extract", "macro_sql": "{% macro snowflake__json_extract(string, string_path) %}\n\n json_extract_path_text(try_parse_json( {{string}} ), {{ \"'\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.543155, "supported_languages": null}, "macro.fivetran_utils.redshift__json_extract": {"name": "redshift__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.redshift__json_extract", "macro_sql": "{% macro redshift__json_extract(string, string_path) %}\n\n case when is_valid_json( {{string}} ) then json_extract_path_text({{string}}, {{ \"'\" ~ string_path ~ \"'\" }} ) else null end\n \n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.543308, "supported_languages": null}, "macro.fivetran_utils.bigquery__json_extract": {"name": "bigquery__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.bigquery__json_extract", "macro_sql": "{% macro bigquery__json_extract(string, string_path) %}\n\n json_extract_scalar({{string}}, {{ \"'$.\" ~ string_path ~ \"'\" }} )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.543443, "supported_languages": null}, "macro.fivetran_utils.postgres__json_extract": {"name": "postgres__json_extract", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/json_extract.sql", "original_file_path": "macros/json_extract.sql", "unique_id": "macro.fivetran_utils.postgres__json_extract", "macro_sql": "{% macro postgres__json_extract(string, string_path) %}\n\n {{string}}::json->>{{\"'\" ~ string_path ~ \"'\" }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.543576, "supported_languages": null}, "macro.fivetran_utils.collect_freshness": {"name": "collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.collect_freshness", "macro_sql": "{% macro collect_freshness(source, loaded_at_field, filter) %}\n {{ return(adapter.dispatch('collect_freshness')(source, loaded_at_field, filter))}}\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__collect_freshness"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.544322, "supported_languages": null}, "macro.fivetran_utils.default__collect_freshness": {"name": "default__collect_freshness", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/collect_freshness.sql", "original_file_path": "macros/collect_freshness.sql", "unique_id": "macro.fivetran_utils.default__collect_freshness", "macro_sql": "{% macro default__collect_freshness(source, loaded_at_field, filter) %}\n {% call statement('collect_freshness', fetch_result=True, auto_begin=False) -%}\n\n {%- set enabled_array = [] -%}\n {% for node in graph.sources.values() %}\n {% if node.identifier == source.identifier %}\n {% if (node.meta['is_enabled'] | default(true)) %}\n {%- do enabled_array.append(1) -%}\n {% endif %}\n {% endif %}\n {% endfor %}\n {% set is_enabled = (enabled_array != []) %}\n\n select\n {% if is_enabled %}\n max({{ loaded_at_field }})\n {% else %} \n {{ current_timestamp() }} {% endif %} as max_loaded_at,\n {{ current_timestamp() }} as snapshotted_at\n\n {% if is_enabled %}\n from {{ source }}\n {% if filter %}\n where {{ filter }}\n {% endif %}\n {% endif %}\n\n {% endcall %}\n\n {% if dbt_version.split('.') | map('int') | list >= [1, 5, 0] %}\n {{ return(load_result('collect_freshness')) }}\n {% else %}\n {{ return(load_result('collect_freshness').table) }}\n {% endif %}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.statement", "macro.dbt.current_timestamp"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.545547, "supported_languages": null}, "macro.fivetran_utils.timestamp_add": {"name": "timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.timestamp_add", "macro_sql": "{% macro timestamp_add(datepart, interval, from_timestamp) -%}\n\n{{ adapter.dispatch('timestamp_add', 'fivetran_utils') (datepart, interval, from_timestamp) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.postgres__timestamp_add"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5462441, "supported_languages": null}, "macro.fivetran_utils.default__timestamp_add": {"name": "default__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.default__timestamp_add", "macro_sql": "{% macro default__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestampadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5463989, "supported_languages": null}, "macro.fivetran_utils.bigquery__timestamp_add": {"name": "bigquery__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.bigquery__timestamp_add", "macro_sql": "{% macro bigquery__timestamp_add(datepart, interval, from_timestamp) %}\n\n timestamp_add({{ from_timestamp }}, interval {{ interval }} {{ datepart }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.546544, "supported_languages": null}, "macro.fivetran_utils.redshift__timestamp_add": {"name": "redshift__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.redshift__timestamp_add", "macro_sql": "{% macro redshift__timestamp_add(datepart, interval, from_timestamp) %}\n\n dateadd(\n {{ datepart }},\n {{ interval }},\n {{ from_timestamp }}\n )\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.546689, "supported_languages": null}, "macro.fivetran_utils.postgres__timestamp_add": {"name": "postgres__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.postgres__timestamp_add", "macro_sql": "{% macro postgres__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ from_timestamp }} + ((interval '1 {{ datepart }}') * ({{ interval }}))\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5468311, "supported_languages": null}, "macro.fivetran_utils.spark__timestamp_add": {"name": "spark__timestamp_add", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/timestamp_add.sql", "original_file_path": "macros/timestamp_add.sql", "unique_id": "macro.fivetran_utils.spark__timestamp_add", "macro_sql": "{% macro spark__timestamp_add(datepart, interval, from_timestamp) %}\n\n {{ dbt.dateadd(datepart, interval, from_timestamp) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.dateadd"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5469959, "supported_languages": null}, "macro.fivetran_utils.ceiling": {"name": "ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.ceiling", "macro_sql": "{% macro ceiling(num) -%}\n\n{{ adapter.dispatch('ceiling', 'fivetran_utils') (num) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__ceiling"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.547232, "supported_languages": null}, "macro.fivetran_utils.default__ceiling": {"name": "default__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.default__ceiling", "macro_sql": "{% macro default__ceiling(num) %}\n ceiling({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.547328, "supported_languages": null}, "macro.fivetran_utils.snowflake__ceiling": {"name": "snowflake__ceiling", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/ceiling.sql", "original_file_path": "macros/ceiling.sql", "unique_id": "macro.fivetran_utils.snowflake__ceiling", "macro_sql": "{% macro snowflake__ceiling(num) %}\n ceil({{ num }})\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.547422, "supported_languages": null}, "macro.fivetran_utils.remove_prefix_from_columns": {"name": "remove_prefix_from_columns", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/remove_prefix_from_columns.sql", "original_file_path": "macros/remove_prefix_from_columns.sql", "unique_id": "macro.fivetran_utils.remove_prefix_from_columns", "macro_sql": "{% macro remove_prefix_from_columns(columns, prefix='', exclude=[]) %}\n\n {%- for col in columns if col.name not in exclude -%}\n {%- if col.name[:prefix|length]|lower == prefix -%}\n {{ col.name }} as {{ col.name[prefix|length:] }}\n {%- else -%}\n {{ col.name }}\n {%- endif -%}\n {%- if not loop.last -%},{%- endif %}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.547988, "supported_languages": null}, "macro.fivetran_utils.fivetran_date_spine": {"name": "fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.fivetran_date_spine", "macro_sql": "{% macro fivetran_date_spine(datepart, start_date, end_date) -%}\n\n{{ return(adapter.dispatch('fivetran_date_spine', 'fivetran_utils') (datepart, start_date, end_date)) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__fivetran_date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.549152, "supported_languages": null}, "macro.fivetran_utils.default__fivetran_date_spine": {"name": "default__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.default__fivetran_date_spine", "macro_sql": "{% macro default__fivetran_date_spine(datepart, start_date, end_date) %}\n\n {{ dbt_utils.date_spine(datepart, start_date, end_date) }}\n \n{% endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.date_spine"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.549312, "supported_languages": null}, "macro.fivetran_utils.sqlserver__fivetran_date_spine": {"name": "sqlserver__fivetran_date_spine", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/fivetran_date_spine.sql", "original_file_path": "macros/fivetran_date_spine.sql", "unique_id": "macro.fivetran_utils.sqlserver__fivetran_date_spine", "macro_sql": "{% macro sqlserver__fivetran_date_spine(datepart, start_date, end_date) -%}\n\n {% set date_spine_query %}\n with\n\n l0 as (\n\n select c\n from (select 1 union all select 1) as d(c)\n\n ),\n l1 as (\n\n select\n 1 as c\n from l0 as a\n cross join l0 as b\n\n ),\n\n l2 as (\n\n select 1 as c\n from l1 as a\n cross join l1 as b\n ),\n\n l3 as (\n\n select 1 as c\n from l2 as a\n cross join l2 as b\n ),\n\n l4 as (\n\n select 1 as c\n from l3 as a\n cross join l3 as b\n ),\n\n l5 as (\n\n select 1 as c\n from l4 as a\n cross join l4 as b\n ),\n\n nums as (\n\n select row_number() over (order by (select null)) as rownum\n from l5\n ),\n\n rawdata as (\n\n select top ({{dbt.datediff(start_date, end_date, datepart)}}) rownum -1 as n\n from nums\n order by rownum\n ),\n\n all_periods as (\n\n select (\n {{\n dbt.dateadd(\n datepart,\n 'n',\n start_date\n )\n }}\n ) as date_{{datepart}}\n from rawdata\n ),\n\n filtered as (\n\n select *\n from all_periods\n where date_{{datepart}} <= {{ end_date }}\n\n )\n\n select * from filtered\n order by 1\n\n {% endset %}\n\n {% set results = run_query(date_spine_query) %}\n\n {% if execute %}\n\n {% set results_list = results.columns[0].values() %}\n \n {% else %}\n\n {% set results_list = [] %}\n\n {% endif %}\n\n {%- for date_field in results_list %}\n select cast('{{ date_field }}' as date) as date_{{datepart}} {{ 'union all ' if not loop.last else '' }}\n {% endfor -%}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.dbt.datediff", "macro.dbt.dateadd", "macro.dbt.run_query"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5501351, "supported_languages": null}, "macro.fivetran_utils.union_data": {"name": "union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.union_data", "macro_sql": "{%- macro union_data(table_identifier, database_variable, schema_variable, default_database, default_schema, default_variable, union_schema_variable='union_schemas', union_database_variable='union_databases') -%}\n\n{{ adapter.dispatch('union_data', 'fivetran_utils') (\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.default__union_data"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.553499, "supported_languages": null}, "macro.fivetran_utils.default__union_data": {"name": "default__union_data", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/union_data.sql", "original_file_path": "macros/union_data.sql", "unique_id": "macro.fivetran_utils.default__union_data", "macro_sql": "{%- macro default__union_data(\n table_identifier, \n database_variable, \n schema_variable, \n default_database, \n default_schema, \n default_variable,\n union_schema_variable,\n union_database_variable\n ) -%}\n\n{%- if var(union_schema_variable, none) -%}\n\n {%- set relations = [] -%}\n \n {%- if var(union_schema_variable) is string -%}\n {%- set trimmed = var(union_schema_variable)|trim('[')|trim(']') -%}\n {%- set schemas = trimmed.split(',')|map('trim',\" \")|map('trim','\"')|map('trim',\"'\") -%}\n {%- else -%}\n {%- set schemas = var(union_schema_variable) -%}\n {%- endif -%}\n\n {%- for schema in var(union_schema_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else var(database_variable, default_database),\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else schema,\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n \n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n \n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- elif var(union_database_variable, none) -%}\n\n {%- set relations = [] -%}\n\n {%- for database in var(union_database_variable) -%}\n {%- set relation=adapter.get_relation(\n database=source(schema, table_identifier).database if var('has_defined_sources', false) else database,\n schema=source(schema, table_identifier).schema if var('has_defined_sources', false) else var(schema_variable, default_schema),\n identifier=source(schema, table_identifier).identifier if var('has_defined_sources', false) else table_identifier\n ) -%}\n\n {%- set relation_exists=relation is not none -%}\n\n {%- if relation_exists -%}\n {%- do relations.append(relation) -%}\n {%- endif -%}\n\n {%- endfor -%}\n\n {%- if relations != [] -%}\n {{ dbt_utils.union_relations(relations) }}\n {%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n {%- endif -%}\n\n{%- else -%}\n {% set exception_schemas = {\"linkedin_company_pages\": \"linkedin_pages\", \"instagram_business_pages\": \"instagram_business\"} %}\n {% set relation = namespace(value=\"\") %}\n {% if default_schema in exception_schemas.keys() %}\n {% for corrected_schema_name in exception_schemas.items() %} \n {% if default_schema in corrected_schema_name %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = corrected_schema_name[1] + \"_\" + table_identifier + \"_identifier\" %}\n {%- set relation.value=adapter.get_relation(\n database=source(corrected_schema_name[1], table_identifier).database,\n schema=source(corrected_schema_name[1], table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n {% endfor %}\n {% else %}\n {# In order for this macro to effectively work within upstream integration tests (mainly used by the Fivetran dbt package maintainers), this identifier variable selection is required to use the macro with different identifier names. #}\n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifier\" %}\n {# Unfortunately the Twitter Organic identifiers were misspelled. As such, we will need to account for this in the model. This will be adjusted in the Twitter Organic package, but to ensure backwards compatibility, this needs to be included. #}\n {% if var(identifier_var, none) is none %} \n {% set identifier_var = default_schema + \"_\" + table_identifier + \"_identifer\" %}\n {% endif %}\n {%- set relation.value=adapter.get_relation(\n database=source(default_schema, table_identifier).database,\n schema=source(default_schema, table_identifier).schema,\n identifier=var(identifier_var, table_identifier)\n ) -%}\n {% endif %}\n{%- set table_exists=relation.value is not none -%}\n\n{%- if table_exists -%}\n select * \n from {{ relation.value }}\n{%- else -%}\n {% if execute and not var('fivetran__remove_empty_table_warnings', false) -%}\n {{ exceptions.warn(\"\\n\\nPlease be aware: The \" ~ table_identifier|upper ~ \" table was not found in your \" ~ default_schema|upper ~ \" schema(s). The Fivetran dbt package will create a completely empty \" ~ table_identifier|upper ~ \" staging model as to not break downstream transformations. To turn off these warnings, set the `fivetran__remove_empty_table_warnings` variable to TRUE (see https://github.com/fivetran/dbt_fivetran_utils/tree/releases/v0.4.latest#union_data-source for details).\\n\") }}\n {% endif -%}\n select \n cast(null as {{ dbt.type_string() }}) as _dbt_source_relation\n limit 0\n{%- endif -%}\n{%- endif -%}\n\n{%- endmacro -%}", "depends_on": {"macros": ["macro.dbt_utils.union_relations", "macro.dbt.type_string"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5577972, "supported_languages": null}, "macro.fivetran_utils.dummy_coalesce_value": {"name": "dummy_coalesce_value", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/dummy_coalesce_value.sql", "original_file_path": "macros/dummy_coalesce_value.sql", "unique_id": "macro.fivetran_utils.dummy_coalesce_value", "macro_sql": "{% macro dummy_coalesce_value(column) %}\n\n{% set coalesce_value = {\n 'STRING': \"'DUMMY_STRING'\",\n 'BOOLEAN': 'null',\n 'INT': 999999999,\n 'FLOAT': 999999999.99,\n 'TIMESTAMP': 'cast(\"2099-12-31\" as timestamp)',\n 'DATE': 'cast(\"2099-12-31\" as date)',\n} %}\n\n{% if column.is_float() %}\n{{ return(coalesce_value['FLOAT']) }}\n\n{% elif column.is_numeric() %}\n{{ return(coalesce_value['INT']) }}\n\n{% elif column.is_string() %}\n{{ return(coalesce_value['STRING']) }}\n\n{% elif column.data_type|lower == 'boolean' %}\n{{ return(coalesce_value['BOOLEAN']) }}\n\n{% elif 'timestamp' in column.data_type|lower %}\n{{ return(coalesce_value['TIMESTAMP']) }}\n\n{% elif 'date' in column.data_type|lower %}\n{{ return(coalesce_value['DATE']) }}\n\n{% elif 'int' in column.data_type|lower %}\n{{ return(coalesce_value['INT']) }}\n\n{% endif %}\n\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.559037, "supported_languages": null}, "macro.fivetran_utils.extract_url_parameter": {"name": "extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.extract_url_parameter", "macro_sql": "{% macro extract_url_parameter(field, url_parameter) -%}\n\n{{ adapter.dispatch('extract_url_parameter', 'fivetran_utils') (field, url_parameter) }}\n\n{% endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__extract_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.559346, "supported_languages": null}, "macro.fivetran_utils.default__extract_url_parameter": {"name": "default__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.default__extract_url_parameter", "macro_sql": "{% macro default__extract_url_parameter(field, url_parameter) -%}\n\n{{ dbt_utils.get_url_parameter(field, url_parameter) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.dbt_utils.get_url_parameter"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.559475, "supported_languages": null}, "macro.fivetran_utils.spark__extract_url_parameter": {"name": "spark__extract_url_parameter", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/extract_url_parameter.sql", "original_file_path": "macros/extract_url_parameter.sql", "unique_id": "macro.fivetran_utils.spark__extract_url_parameter", "macro_sql": "{% macro spark__extract_url_parameter(field, url_parameter) -%}\n\n{%- set formatted_url_parameter = \"'\" + url_parameter + \"=([^&]+)'\" -%}\nnullif(regexp_extract({{ field }}, {{ formatted_url_parameter }}, 1), '')\n\n{%- endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.559645, "supported_languages": null}, "macro.fivetran_utils.wrap_in_quotes": {"name": "wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.wrap_in_quotes", "macro_sql": "{%- macro wrap_in_quotes(object_to_quote) -%}\n\n{{ return(adapter.dispatch('wrap_in_quotes', 'fivetran_utils')(object_to_quote)) }}\n\n{%- endmacro -%}\n\n", "depends_on": {"macros": ["macro.fivetran_utils.postgres__wrap_in_quotes"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.559934, "supported_languages": null}, "macro.fivetran_utils.default__wrap_in_quotes": {"name": "default__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.default__wrap_in_quotes", "macro_sql": "{%- macro default__wrap_in_quotes(object_to_quote) -%}\n{# bigquery, spark, databricks #}\n `{{ object_to_quote }}`\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5600379, "supported_languages": null}, "macro.fivetran_utils.snowflake__wrap_in_quotes": {"name": "snowflake__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.snowflake__wrap_in_quotes", "macro_sql": "{%- macro snowflake__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote | upper }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.560134, "supported_languages": null}, "macro.fivetran_utils.redshift__wrap_in_quotes": {"name": "redshift__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.redshift__wrap_in_quotes", "macro_sql": "{%- macro redshift__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}\n\n", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5602272, "supported_languages": null}, "macro.fivetran_utils.postgres__wrap_in_quotes": {"name": "postgres__wrap_in_quotes", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/wrap_in_quotes.sql", "original_file_path": "macros/wrap_in_quotes.sql", "unique_id": "macro.fivetran_utils.postgres__wrap_in_quotes", "macro_sql": "{%- macro postgres__wrap_in_quotes(object_to_quote) -%}\n \"{{ object_to_quote }}\"\n{%- endmacro -%}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.560396, "supported_languages": null}, "macro.fivetran_utils.array_agg": {"name": "array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.array_agg", "macro_sql": "{% macro array_agg(field_to_agg) -%}\n\n{{ adapter.dispatch('array_agg', 'fivetran_utils') (field_to_agg) }}\n\n{%- endmacro %}", "depends_on": {"macros": ["macro.fivetran_utils.default__array_agg"]}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5606458, "supported_languages": null}, "macro.fivetran_utils.default__array_agg": {"name": "default__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.default__array_agg", "macro_sql": "{% macro default__array_agg(field_to_agg) %}\n array_agg({{ field_to_agg }})\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.560736, "supported_languages": null}, "macro.fivetran_utils.redshift__array_agg": {"name": "redshift__array_agg", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/array_agg.sql", "original_file_path": "macros/array_agg.sql", "unique_id": "macro.fivetran_utils.redshift__array_agg", "macro_sql": "{% macro redshift__array_agg(field_to_agg) %}\n listagg({{ field_to_agg }}, ',')\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.5608199, "supported_languages": null}, "macro.fivetran_utils.empty_variable_warning": {"name": "empty_variable_warning", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/empty_variable_warning.sql", "original_file_path": "macros/empty_variable_warning.sql", "unique_id": "macro.fivetran_utils.empty_variable_warning", "macro_sql": "{% macro empty_variable_warning(variable, downstream_model) %}\n\n{% if not var(variable) %}\n{{ log(\n \"\"\"\n Warning: You have passed an empty list to the \"\"\" ~ variable ~ \"\"\".\n As a result, you won't see the history of any columns in the \"\"\" ~ downstream_model ~ \"\"\" model.\n \"\"\",\n info=True\n) }}\n{% endif %}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.561162, "supported_languages": null}, "macro.fivetran_utils.enabled_vars_one_true": {"name": "enabled_vars_one_true", "resource_type": "macro", "package_name": "fivetran_utils", "path": "macros/enabled_vars_one_true.sql", "original_file_path": "macros/enabled_vars_one_true.sql", "unique_id": "macro.fivetran_utils.enabled_vars_one_true", "macro_sql": "{% macro enabled_vars_one_true(vars) %}\n\n{% for v in vars %}\n \n {% if var(v, False) == True %}\n {{ return(True) }}\n {% endif %}\n\n{% endfor %}\n\n{{ return(False) }}\n\n{% endmacro %}", "depends_on": {"macros": []}, "description": "", "meta": {}, "docs": {"show": true, "node_color": null}, "patch_path": null, "arguments": [], "created_at": 1733264564.561497, "supported_languages": null}}, "docs": {"doc.dbt.__overview__": {"name": "__overview__", "resource_type": "doc", "package_name": "dbt", "path": "overview.md", "original_file_path": "docs/overview.md", "unique_id": "doc.dbt.__overview__", "block_contents": "### Welcome!\n\nWelcome to the auto-generated documentation for your dbt project!\n\n### Navigation\n\nYou can use the `Project` and `Database` navigation tabs on the left side of the window to explore the models\nin your project.\n\n#### Project Tab\nThe `Project` tab mirrors the directory structure of your dbt project. In this tab, you can see all of the\nmodels defined in your dbt project, as well as models imported from dbt packages.\n\n#### Database Tab\nThe `Database` tab also exposes your models, but in a format that looks more like a database explorer. This view\nshows relations (tables and views) grouped into database schemas. Note that ephemeral models are _not_ shown\nin this interface, as they do not exist in the database.\n\n### Graph Exploration\nYou can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.\n\nOn model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the `Expand`\nbutton at the top-right of this lineage pane, you'll be able to see all of the models that are used to build,\nor are built from, the model you're exploring.\n\nOnce expanded, you'll be able to use the `--select` and `--exclude` model selection syntax to filter the\nmodels in the graph. For more information on model selection, check out the [dbt docs](https://docs.getdbt.com/docs/model-selection-syntax).\n\nNote that you can also right-click on models to interactively filter and explore the graph.\n\n---\n\n### More information\n\n- [What is dbt](https://docs.getdbt.com/docs/introduction)?\n- Read the [dbt viewpoint](https://docs.getdbt.com/docs/viewpoint)\n- [Installation](https://docs.getdbt.com/docs/installation)\n- Join the [dbt Community](https://www.getdbt.com/community/) for questions and discussion"}, "doc.linkedin_source.source_relation": {"name": "source_relation", "resource_type": "doc", "package_name": "linkedin_source", "path": "docs.md", "original_file_path": "models/docs.md", "unique_id": "doc.linkedin_source.source_relation", "block_contents": "The source of the record if the unioning functionality is being used. If not this field will be empty."}}, "exposures": {}, "metrics": {}, "groups": {}, "selectors": {}, "disabled": {}, "parent_map": {"seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": [], "seed.linkedin_source_integration_tests.linkedin_account_history_data": [], "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": [], "seed.linkedin_source_integration_tests.linkedin_creative_history_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": [], "model.linkedin_source.stg_linkedin_ads__creative_history": ["model.linkedin_source.stg_linkedin_ads__creative_history_tmp"], "model.linkedin_source.stg_linkedin_ads__campaign_history": ["model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"], "model.linkedin_source.stg_linkedin_ads__account_history": ["model.linkedin_source.stg_linkedin_ads__account_history_tmp"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": ["source.linkedin_source.linkedin_ads.ad_analytics_by_creative"], "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": ["source.linkedin_source.linkedin_ads.campaign_history"], "model.linkedin_source.stg_linkedin_ads__account_history_tmp": ["source.linkedin_source.linkedin_ads.account_history"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": ["source.linkedin_source.linkedin_ads.campaign_group_history"], "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": ["source.linkedin_source.linkedin_ads.creative_history"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": ["source.linkedin_source.linkedin_ads.ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474": ["model.linkedin_source.stg_linkedin_ads__creative_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0": ["model.linkedin_source.stg_linkedin_ads__account_history"], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81": ["model.linkedin_source.stg_linkedin_ads__account_history"], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c": ["model.linkedin_source.stg_linkedin_ads__account_history"], "source.linkedin_source.linkedin_ads.ad_analytics_by_creative": [], "source.linkedin_source.linkedin_ads.creative_history": [], "source.linkedin_source.linkedin_ads.campaign_history": [], "source.linkedin_source.linkedin_ads.campaign_group_history": [], "source.linkedin_source.linkedin_ads.account_history": [], "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": []}, "child_map": {"seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data": [], "seed.linkedin_source_integration_tests.linkedin_account_history_data": [], "seed.linkedin_source_integration_tests.linkedin_campaign_history_data": [], "seed.linkedin_source_integration_tests.linkedin_creative_history_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data": [], "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data": [], "model.linkedin_source.stg_linkedin_ads__creative_history": ["test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474"], "model.linkedin_source.stg_linkedin_ads__campaign_history": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d", "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea"], "model.linkedin_source.stg_linkedin_ads__account_history": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c", "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0", "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative": ["test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b", "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative"], "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp": ["model.linkedin_source.stg_linkedin_ads__campaign_history"], "model.linkedin_source.stg_linkedin_ads__account_history_tmp": ["model.linkedin_source.stg_linkedin_ads__account_history"], "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history"], "model.linkedin_source.stg_linkedin_ads__creative_history_tmp": ["model.linkedin_source.stg_linkedin_ads__creative_history"], "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign"], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b": [], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38": [], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a": [], "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322": [], "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d": [], "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639": [], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0": [], "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81": [], "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c": [], "source.linkedin_source.linkedin_ads.ad_analytics_by_creative": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp"], "source.linkedin_source.linkedin_ads.creative_history": ["model.linkedin_source.stg_linkedin_ads__creative_history_tmp"], "source.linkedin_source.linkedin_ads.campaign_history": ["model.linkedin_source.stg_linkedin_ads__campaign_history_tmp"], "source.linkedin_source.linkedin_ads.campaign_group_history": ["model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp"], "source.linkedin_source.linkedin_ads.account_history": ["model.linkedin_source.stg_linkedin_ads__account_history_tmp"], "source.linkedin_source.linkedin_ads.ad_analytics_by_campaign": ["model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp"]}, "group_map": {}, "saved_queries": {}, "semantic_models": {}, "unit_tests": {}} \ No newline at end of file diff --git a/docs/run_results.json b/docs/run_results.json deleted file mode 100644 index 4598056..0000000 --- a/docs/run_results.json +++ /dev/null @@ -1 +0,0 @@ -{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/run-results/v5.json", "dbt_version": "1.7.17", "generated_at": "2024-07-18T20:05:06.774624Z", "invocation_id": "2a69ab7c-befa-4b06-89b7-0cc5e741d25e", "env": {}}, "results": [{"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.823282Z", "completed_at": "2024-07-18T20:05:03.856888Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.859704Z", "completed_at": "2024-07-18T20:05:03.859713Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.043727874755859375, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history_tmp", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_account_history_data\"", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history_tmp\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.853584Z", "completed_at": "2024-07-18T20:05:03.857206Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.859987Z", "completed_at": "2024-07-18T20:05:03.859994Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.04291391372680664, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history_tmp", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_group_history_data\"", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history_tmp\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.851133Z", "completed_at": "2024-07-18T20:05:03.857594Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.863371Z", "completed_at": "2024-07-18T20:05:03.863376Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.043834686279296875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative_tmp", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_creative_data\"", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative_tmp\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.847923Z", "completed_at": "2024-07-18T20:05:03.857885Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.863716Z", "completed_at": "2024-07-18T20:05:03.863720Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.04472494125366211, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign_tmp", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_ad_analytics_by_campaign_data\"", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign_tmp\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.875543Z", "completed_at": "2024-07-18T20:05:03.877185Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.879633Z", "completed_at": "2024-07-18T20:05:03.879640Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.012557029724121094, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.linkedin_source_integration_tests.linkedin_account_history_data", "compiled": null, "compiled_code": null, "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.877476Z", "completed_at": "2024-07-18T20:05:03.878326Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.880341Z", "completed_at": "2024-07-18T20:05:03.880344Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.013171911239624023, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_campaign_data", "compiled": null, "compiled_code": null, "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.869909Z", "completed_at": "2024-07-18T20:05:03.879092Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.881321Z", "completed_at": "2024-07-18T20:05:03.881325Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.015270233154296875, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history_tmp", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_campaign_history_data\"", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history_tmp\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.872990Z", "completed_at": "2024-07-18T20:05:03.879873Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.882346Z", "completed_at": "2024-07-18T20:05:03.882348Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.015943288803100586, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history_tmp", "compiled": true, "compiled_code": "\n\n\n \n \n \n \n \n select * \n from \"postgres\".\"linkedin_source_integration_tests_3\".\"linkedin_creative_history_data\"", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history_tmp\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.885780Z", "completed_at": "2024-07-18T20:05:03.886953Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.891379Z", "completed_at": "2024-07-18T20:05:03.891384Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 0.01017308235168457, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.linkedin_source_integration_tests.linkedin_ad_analytics_by_creative_data", "compiled": null, "compiled_code": null, "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.888051Z", "completed_at": "2024-07-18T20:05:03.889166Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.892980Z", "completed_at": "2024-07-18T20:05:03.892983Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.010009765625, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_group_history_data", "compiled": null, "compiled_code": null, "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.889942Z", "completed_at": "2024-07-18T20:05:03.890891Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.894025Z", "completed_at": "2024-07-18T20:05:03.894029Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.01016688346862793, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.linkedin_source_integration_tests.linkedin_campaign_history_data", "compiled": null, "compiled_code": null, "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.891617Z", "completed_at": "2024-07-18T20:05:03.892512Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:03.894968Z", "completed_at": "2024-07-18T20:05:03.894971Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.009208917617797852, "adapter_response": {}, "message": null, "failures": null, "unique_id": "seed.linkedin_source_integration_tests.linkedin_creative_history_data", "compiled": null, "compiled_code": null, "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.906528Z", "completed_at": "2024-07-18T20:05:05.061035Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.061538Z", "completed_at": "2024-07-18T20:05:05.061545Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 1.260810136795044, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_group_history", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history_tmp\"\n\n), macro as (\n\n select\n \n \n \n account_id\n \n as \n \n account_id\n \n, \n cast(null as boolean) as \n \n backfilled\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n \n \n name\n \n as \n \n name\n \n, \n cast(null as timestamp) as \n \n run_schedule_end\n \n , \n cast(null as timestamp) as \n \n run_schedule_start\n \n , \n cast(null as TEXT) as \n \n status\n \n \n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_group_id,\n name as campaign_group_name,\n account_id,\n status,\n backfilled as is_backfilled,\n cast(run_schedule_start as timestamp) as run_schedule_start_at,\n cast(run_schedule_end as timestamp) as run_schedule_end_at,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.898432Z", "completed_at": "2024-07-18T20:05:05.105296Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.106587Z", "completed_at": "2024-07-18T20:05:05.106593Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 1.320559024810791, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__account_history", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history_tmp\"\n\n), macro as (\n\n select\n \n \n \n created_time\n \n as \n \n created_time\n \n, \n \n \n currency\n \n as \n \n currency\n \n, \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n \n \n name\n \n as \n \n name\n \n, \n cast(null as TEXT) as \n \n status\n \n , \n cast(null as TEXT) as \n \n type\n \n , \n \n \n version_tag\n \n as \n \n version_tag\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as account_id,\n name as account_name,\n currency,\n cast(version_tag as numeric) as version_tag,\n status,\n type,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.917019Z", "completed_at": "2024-07-18T20:05:05.106116Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.107492Z", "completed_at": "2024-07-18T20:05:05.107495Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 1.3177769184112549, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_campaign", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select * \n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign_tmp\"\n),\n\nmacro as (\n\n select\n \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n clicks\n \n as \n \n clicks\n \n, \n \n \n cost_in_local_currency\n \n as \n \n cost_in_local_currency\n \n, \n \n \n cost_in_usd\n \n as \n \n cost_in_usd\n \n, \n \n \n day\n \n as \n \n day\n \n, \n \n \n impressions\n \n as \n \n impressions\n \n, \n \n \n conversion_value_in_local_currency\n \n as \n \n conversion_value_in_local_currency\n \n, \n \n \n external_website_conversions\n \n as \n \n external_website_conversions\n \n, \n \n \n one_click_leads\n \n as \n \n one_click_leads\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n),\n\nfields as (\n \n select \n source_relation,\n date_trunc('day', day) as date_day,\n campaign_id,\n clicks,\n impressions,\n \n cost_in_usd as cost,\n \n\n cast(coalesce(conversion_value_in_local_currency, 0) as float) as conversion_value_in_local_currency\n\n \n , coalesce(external_website_conversions, 0) as external_website_conversions\n \n , coalesce(one_click_leads, 0) as one_click_leads\n \n\n \n\n\n\n\n\n from macro\n)\n\nselect *\nfrom fields", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:03.911268Z", "completed_at": "2024-07-18T20:05:05.105613Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.107027Z", "completed_at": "2024-07-18T20:05:05.107030Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 1.3271360397338867, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__ad_analytics_by_creative", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative_tmp\"\n\n), macro as (\n\n select\n \n \n \n clicks\n \n as \n \n clicks\n \n, \n \n \n cost_in_local_currency\n \n as \n \n cost_in_local_currency\n \n, \n \n \n cost_in_usd\n \n as \n \n cost_in_usd\n \n, \n \n \n creative_id\n \n as \n \n creative_id\n \n, \n \n \n day\n \n as \n \n day\n \n, \n \n \n impressions\n \n as \n \n impressions\n \n, \n \n \n conversion_value_in_local_currency\n \n as \n \n conversion_value_in_local_currency\n \n, \n \n \n external_website_conversions\n \n as \n \n external_website_conversions\n \n, \n \n \n one_click_leads\n \n as \n \n one_click_leads\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select\n source_relation,\n date_trunc('day', day) as date_day,\n creative_id,\n clicks, \n impressions,\n \n cost_in_usd as cost,\n \n\n cast(coalesce(conversion_value_in_local_currency, 0) as float) as conversion_value_in_local_currency\n\n \n , coalesce(external_website_conversions, 0) as external_website_conversions\n \n , coalesce(one_click_leads, 0) as one_click_leads\n \n\n \n\n\n\n\n\n from macro\n\n)\n\nselect *\nfrom fields", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.226648Z", "completed_at": "2024-07-18T20:05:05.240472Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.241437Z", "completed_at": "2024-07-18T20:05:05.241442Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.016767024993896484, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_group_history_source_relation__last_modified_at__campaign_group_id.4c9f328639", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, last_modified_at, campaign_group_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\n group by source_relation, last_modified_at, campaign_group_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.235319Z", "completed_at": "2024-07-18T20:05:05.240767Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.241673Z", "completed_at": "2024-07-18T20:05:05.241678Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.016319990158081055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_campaign_group_id.3888f3777d", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_group_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\nwhere campaign_group_id is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.244463Z", "completed_at": "2024-07-18T20:05:05.250618Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.251348Z", "completed_at": "2024-07-18T20:05:05.251354Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.008607149124145508, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_group_history_last_modified_at.a716e2a7ea", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect last_modified_at\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_group_history\"\nwhere last_modified_at is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.247321Z", "completed_at": "2024-07-18T20:05:05.251088Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.252509Z", "completed_at": "2024-07-18T20:05:05.252515Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.009667158126831055, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__account_history_source_relation__account_id__version_tag.c7a0383d8c", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, account_id, version_tag\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\n group by source_relation, account_id, version_tag\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.254985Z", "completed_at": "2024-07-18T20:05:05.261995Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.263107Z", "completed_at": "2024-07-18T20:05:05.263112Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.010086774826049805, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__account_history_account_id.a9fa7f93c0", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect account_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\nwhere account_id is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.258397Z", "completed_at": "2024-07-18T20:05:05.262323Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.263350Z", "completed_at": "2024-07-18T20:05:05.263354Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.009802818298339844, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__account_history_version_tag.58c46c5d81", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect version_tag\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__account_history\"\nwhere version_tag is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.270262Z", "completed_at": "2024-07-18T20:05:05.273276Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.274243Z", "completed_at": "2024-07-18T20:05:05.274249Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.009190082550048828, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_campaign_id.d6ae242f1a", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\nwhere campaign_id is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.266518Z", "completed_at": "2024-07-18T20:05:05.273547Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.274496Z", "completed_at": "2024-07-18T20:05:05.274498Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.010027170181274414, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_campaign_source_relation__date_day__campaign_id.41aa0d6322", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, date_day, campaign_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\n group by source_relation, date_day, campaign_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.280124Z", "completed_at": "2024-07-18T20:05:05.283253Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.284223Z", "completed_at": "2024-07-18T20:05:05.284228Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.008316993713378906, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__ad_analytics_by_creative_source_relation__date_day__creative_id.7b7d839d38", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, date_day, creative_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\n group by source_relation, date_day, creative_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.277331Z", "completed_at": "2024-07-18T20:05:05.283523Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.284469Z", "completed_at": "2024-07-18T20:05:05.284472Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.009196996688842773, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_campaign_date_day.ef97bed766", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_campaign\"\nwhere date_day is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.290714Z", "completed_at": "2024-07-18T20:05:05.293454Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.294404Z", "completed_at": "2024-07-18T20:05:05.294410Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.00863504409790039, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_date_day.cb81bc4766", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect date_day\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\nwhere date_day is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.287328Z", "completed_at": "2024-07-18T20:05:05.294094Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:05.295542Z", "completed_at": "2024-07-18T20:05:05.295546Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.00980997085571289, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__ad_analytics_by_creative_creative_id.062abfe14b", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect creative_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__ad_analytics_by_creative\"\nwhere creative_id is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.159538Z", "completed_at": "2024-07-18T20:05:06.504904Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:06.505376Z", "completed_at": "2024-07-18T20:05:06.505382Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 1.4543871879577637, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__campaign_history", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history_tmp\"\n\n), macro as (\n\n select \n \n \n \n account_id\n \n as \n \n account_id\n \n, \n cast(null as boolean) as \n \n audience_expansion_enabled\n \n , \n \n \n campaign_group_id\n \n as \n \n campaign_group_id\n \n, \n cast(null as TEXT) as \n \n cost_type\n \n , \n \n \n created_time\n \n as \n \n created_time\n \n, \n cast(null as TEXT) as \n \n creative_selection\n \n , \n cast(null as float) as \n \n daily_budget_amount\n \n , \n cast(null as TEXT) as \n \n daily_budget_currency_code\n \n , \n cast(null as TEXT) as \n \n format\n \n , \n \n \n id\n \n as \n \n id\n \n, \n \n \n last_modified_time\n \n as \n \n last_modified_time\n \n, \n cast(null as TEXT) as \n \n locale_country\n \n , \n cast(null as TEXT) as \n \n locale_language\n \n , \n \n \n name\n \n as \n \n name\n \n, \n cast(null as TEXT) as \n \n objective_type\n \n , \n cast(null as boolean) as \n \n offsite_delivery_enabled\n \n , \n cast(null as TEXT) as \n \n optimization_target_type\n \n , \n cast(null as timestamp) as \n \n run_schedule_end\n \n , \n cast(null as timestamp) as \n \n run_schedule_start\n \n , \n cast(null as TEXT) as \n \n status\n \n , \n cast(null as TEXT) as \n \n type\n \n , \n cast(null as float) as \n \n unit_cost_amount\n \n , \n cast(null as TEXT) as \n \n unit_cost_currency_code\n \n , \n \n \n version_tag\n \n as \n \n version_tag\n \n\n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select \n source_relation,\n id as campaign_id,\n name as campaign_name,\n cast(version_tag as numeric) as version_tag,\n campaign_group_id,\n account_id,\n status,\n type,\n cost_type,\n creative_selection,\n daily_budget_amount,\n daily_budget_currency_code,\n unit_cost_amount,\n unit_cost_currency_code,\n format,\n locale_country,\n locale_language,\n objective_type,\n optimization_target_type,\n audience_expansion_enabled as is_audience_expansion_enabled,\n offsite_delivery_enabled as is_offsite_delivery_enabled,\n cast(run_schedule_start as timestamp) as run_schedule_start_at,\n cast(run_schedule_end as timestamp) as run_schedule_end_at,\n cast(last_modified_time as timestamp) as last_modified_at,\n cast(created_time as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version\n\n from macro\n\n)\n\nselect *\nfrom fields", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:06.616276Z", "completed_at": "2024-07-18T20:05:06.625091Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:06.657878Z", "completed_at": "2024-07-18T20:05:06.657889Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.04328513145446777, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.dbt_utils_unique_combination_of_columns_stg_linkedin_ads__campaign_history_source_relation__version_tag__campaign_id.65ed9cedae", "compiled": true, "compiled_code": "\n\n\n\n\n\nwith validation_errors as (\n\n select\n source_relation, version_tag, campaign_id\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\n group by source_relation, version_tag, campaign_id\n having count(*) > 1\n\n)\n\nselect *\nfrom validation_errors\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:06.621143Z", "completed_at": "2024-07-18T20:05:06.656109Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:06.659248Z", "completed_at": "2024-07-18T20:05:06.659251Z"}], "thread_id": "Thread-4 (worker)", "execution_time": 0.04020977020263672, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_campaign_id.b026971ca2", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect campaign_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\nwhere campaign_id is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:06.625538Z", "completed_at": "2024-07-18T20:05:06.658434Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:06.660475Z", "completed_at": "2024-07-18T20:05:06.660479Z"}], "thread_id": "Thread-2 (worker)", "execution_time": 0.04082918167114258, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__campaign_history_version_tag.64954cc469", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect version_tag\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__campaign_history\"\nwhere version_tag is null\n\n\n", "relation_name": null}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:05.217706Z", "completed_at": "2024-07-18T20:05:06.659695Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:06.661452Z", "completed_at": "2024-07-18T20:05:06.661455Z"}], "thread_id": "Thread-3 (worker)", "execution_time": 1.5502259731292725, "adapter_response": {}, "message": null, "failures": null, "unique_id": "model.linkedin_source.stg_linkedin_ads__creative_history", "compiled": true, "compiled_code": "\n\nwith base as (\n\n select *\n from \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history_tmp\"\n\n), macro as (\n\n select \n \n \n \n campaign_id\n \n as \n \n campaign_id\n \n, \n \n \n click_uri\n \n as \n \n click_uri\n \n, \n \n \n created_time\n \n as \n \n created_time\n \n, \n cast(null as timestamp) as \n \n created_at\n \n , \n \n \n id\n \n as \n \n id\n \n, \n cast(null as timestamp) as \n \n last_modified_time\n \n , \n \n \n last_modified_at\n \n as \n \n last_modified_at\n \n, \n \n \n intended_status\n \n as \n \n intended_status\n \n, \n cast(null as TEXT) as \n \n status\n \n \n\n\n \n \n\n\n, cast('' as TEXT) as source_relation\n\n\n\n\n from base\n\n), fields as (\n\n select\n source_relation,\n id as creative_id,\n campaign_id,\n coalesce(status, intended_status) as status,\n click_uri,\n cast(coalesce(last_modified_time, last_modified_at) as timestamp) as last_modified_at,\n cast(coalesce(created_time, created_at) as timestamp) as created_at,\n row_number() over (partition by source_relation, id order by coalesce(last_modified_time, last_modified_at) desc) = 1 as is_latest_version\n\n from macro\n\n), url_fields as (\n\n select \n *,\n \n\n \n \n\n split_part(\n click_uri,\n '?',\n 1\n )\n\n\n \n\n as base_url,\n \n \n cast(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n \n\n replace(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'android-app://',\n ''\n )\n\n\n,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n '/',\n 1\n )\n\n\n \n\n,\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_host,\n '/' || \n \n cast(\n\n \n \n\n split_part(\n \n\n right(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n,\n \n\n length(\n \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n )-coalesce(\n nullif(\n\n position(\n '/' in \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ), 0),\n \n\n position(\n '?' in \n\n replace(\n \n\n replace(\n click_uri,\n 'http://',\n ''\n )\n\n\n,\n 'https://',\n ''\n )\n\n\n\n ) - 1\n )\n ),\n '?',\n 1\n )\n\n\n \n\n as TEXT)\n as url_path,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_source=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_source,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_medium=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_medium,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_campaign=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_campaign,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_content=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_content,\n nullif(\n\n \n \n\n split_part(\n \n\n \n \n\n split_part(\n click_uri,\n 'utm_term=',\n 2\n )\n\n\n \n\n,\n '&',\n 1\n )\n\n\n \n\n,'') as utm_term\n \n from fields\n)\n\nselect *\nfrom url_fields", "relation_name": "\"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history\""}, {"status": "success", "timing": [{"name": "compile", "started_at": "2024-07-18T20:05:06.768888Z", "completed_at": "2024-07-18T20:05:06.772097Z"}, {"name": "execute", "started_at": "2024-07-18T20:05:06.772562Z", "completed_at": "2024-07-18T20:05:06.772567Z"}], "thread_id": "Thread-1 (worker)", "execution_time": 0.004687070846557617, "adapter_response": {}, "message": null, "failures": null, "unique_id": "test.linkedin_source.not_null_stg_linkedin_ads__creative_history_creative_id.4d51d55474", "compiled": true, "compiled_code": "\n \n \n\n\n\nselect creative_id\nfrom \"postgres\".\"linkedin_source_integration_tests_3_linkedin_ads_source\".\"stg_linkedin_ads__creative_history\"\nwhere creative_id is null\n\n\n", "relation_name": null}], "elapsed_time": 6.59439492225647, "args": {"partial_parse_file_diff": true, "populate_cache": true, "quiet": false, "macro_debugging": false, "log_level_file": "debug", "warn_error_options": {"include": [], "exclude": []}, "indirect_selection": "eager", "send_anonymous_usage_stats": true, "exclude": [], "which": "generate", "invocation_command": "dbt docs generate -t postgres", "use_colors_file": true, "log_file_max_bytes": 10485760, "profiles_dir": "/Users/avinash.kunnath/.dbt", "show_resource_report": false, "empty_catalog": false, "printer_width": 80, "require_explicit_package_overrides_for_builtin_materializations": false, "static": false, "favor_state": false, "vars": {}, "use_colors": true, "strict_mode": false, "compile": true, "log_format": "default", "log_level": "info", "target": "postgres", "write_json": true, "defer": false, "introspect": true, "version_check": true, "project_dir": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests", "print": true, "enable_legacy_logger": false, "log_format_file": "debug", "select": [], "static_parser": true, "log_path": "/Users/avinash.kunnath/Documents/dbt_packages/linkedin/dbt_linkedin_source/integration_tests/logs", "partial_parse": true, "cache_selected_only": false}} \ No newline at end of file diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 17f7f27..cbd3f5e 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -1,5 +1,5 @@ name: 'linkedin_source_integration_tests' -version: '0.9.0' +version: '0.10.0' profile: 'integration_tests' config-version: 2 diff --git a/integration_tests/seeds/linkedin_creative_history_data.csv b/integration_tests/seeds/linkedin_creative_history_data.csv index 12b7f36..1a05491 100644 --- a/integration_tests/seeds/linkedin_creative_history_data.csv +++ b/integration_tests/seeds/linkedin_creative_history_data.csv @@ -1,101 +1,101 @@ -id,campaign_id,intended_status,click_uri,last_modified_at,created_time -125339904,174942134,,,,2021-03-08 23:42:20 -186286604,202434464,,,,2022-09-16 02:46:54 -54106906,131454616,,,,2018-05-18 01:04:02 -54106976,131454826,,,,2018-05-18 01:09:08 -54299976,131580446,,,,2018-05-24 00:38:47 -54300176,131580546,,,,2018-05-24 00:47:40 -82332766,148633856,,,,2020-03-20 18:55:40 -82460426,148711996,,,,2020-03-24 17:56:49 -102541764,162464924,,,,2020-05-08 09:34:15 -102694624,162557074,,,,2020-05-12 14:08:40 -107943663,165867684,,,,2020-07-22 19:28:31 -110663234,167276694,,,,2020-09-10 18:08:57 -44900356,125600246,,,,2017-06-08 21:46:06 -44900356,125600246,,,,2017-06-08 21:46:06 -44900356,125600246,,,,2017-06-08 21:46:06 -44900356,125600246,,,,2017-06-08 21:46:06 -44900336,125600246,,,,2017-06-08 21:46:06 -44900336,125600246,,,,2017-06-08 21:46:06 -44900336,125600246,,,,2017-06-08 21:46:06 -44900336,125600246,,,,2017-06-08 21:46:06 -44900366,125600246,,,,2017-06-08 21:46:06 -44900366,125600246,,,,2017-06-08 21:46:06 -44900366,125600246,,,,2017-06-08 21:46:06 -44900366,125600246,,,,2017-06-08 21:46:06 -44900346,125600246,,,,2017-06-08 21:46:06 -44900346,125600246,,,,2017-06-08 21:46:06 -44900346,125600246,,,,2017-06-08 21:46:06 -44900346,125600246,,,,2017-06-08 21:46:06 -55220334,133160324,,,,2017-08-04 22:45:09 -55220334,133160324,,,,2017-08-04 22:45:09 -44901856,125599426,,,,2017-06-08 22:29:09 -55220334,133160324,,,,2017-08-04 22:45:09 -44901856,125599426,,,,2017-06-08 22:29:09 -44901856,125599426,,,,2017-06-08 22:29:09 -44901866,125599426,,,,2017-06-08 22:29:09 -44901866,125599426,,,,2017-06-08 22:29:09 -44901866,125599426,,,,2017-06-08 22:29:09 -55220324,133160324,,,,2017-08-04 22:45:09 -55220324,133160324,,,,2017-08-04 22:45:09 -55220324,133160324,,,,2017-08-04 22:45:09 -44901876,125599426,,,,2017-06-08 22:29:09 -55220314,133160324,,,,2017-08-04 22:45:09 -44901876,125599426,,,,2017-06-08 22:29:09 -55220314,133160324,,,,2017-08-04 22:45:09 -55220314,133160324,,,,2017-08-04 22:45:09 -44901876,125599426,,,,2017-06-08 22:29:09 -44901876,125599426,,,,2017-06-08 22:29:09 -55220314,133160324,,,,2017-08-04 22:45:09 -55220304,133160324,,,,2017-08-04 22:45:09 -44901886,125599426,,,,2017-06-08 22:29:09 -44901886,125599426,,,,2017-06-08 22:29:09 -44901886,125599426,,,,2017-06-08 22:29:09 -55220304,133160324,,,,2017-08-04 22:45:09 -55220304,133160324,,,,2017-08-04 22:45:09 -55220304,133160324,,,,2017-08-04 22:45:09 -44901886,125599426,,,,2017-06-08 22:29:09 -48046336,127624356,,,,2017-10-10 16:49:38 -48046326,127624356,,,,2017-10-10 16:49:38 -48046346,127624356,,,,2017-10-10 16:49:38 -50036216,128806186,,,,2017-12-22 17:38:12 -50035816,128806016,,,,2017-12-22 17:27:45 -50036226,128806186,,,,2017-12-22 17:38:12 -50035806,128806016,,,,2017-12-22 17:27:45 -56166306,132822186,,,,2018-07-25 15:04:05 -56166306,132822186,,,,2018-07-25 15:04:05 -56166306,132822186,,,,2018-07-25 15:04:05 -56237466,132870856,,,,2018-07-28 18:48:26 -56237376,132866546,,,,2018-07-28 18:38:10 -57434376,133672706,,,,2018-09-06 16:59:15 -57527536,133728466,,,,2018-09-10 17:52:28 -57542836,133736786,,,,2018-09-10 23:16:13 -57675346,133822116,,,,2018-09-13 17:59:19 -58503736,134383046,,,,2018-10-08 17:49:29 -58503856,134383176,,,,2018-10-08 17:54:17 -59428846,134988516,,,,2018-10-31 17:30:40 -60400066,135583676,,,,2018-11-21 17:08:53 -61088626,136022286,,,,2018-12-10 18:01:42 -61884186,136508426,,,,2019-01-08 17:27:32 -61885366,136509566,,,,2019-01-08 17:57:44 -62024726,136598756,,,,2019-01-11 21:00:57 -62257986,136746346,,,,2019-01-17 19:19:05 -63506906,137527956,,,,2019-02-20 17:23:30 -63556186,137559956,,,,2019-02-21 17:46:17 -64024086,137824786,,,,2019-03-04 19:12:56 -66558706,139304236,,,,2019-04-29 17:20:56 -66559306,139304466,,,,2019-04-29 17:32:14 -66980846,139548496,,,,2019-05-08 17:34:16 -67039296,139581266,,,,2019-05-09 15:19:05 -67131396,139619466,,,,2019-05-10 16:05:30 -67495816,139812856,,,,2019-05-17 14:50:20 -68192386,140203726,,,,2019-06-03 19:34:54 -68197356,140206956,,,,2019-06-03 20:59:46 -68755776,140506806,,,,2019-06-14 17:17:18 -69108056,140715576,,,,2019-06-21 18:33:19 -69775776,141092076,,,,2019-07-08 15:16:08 -69775486,141091746,,,,2019-07-08 15:13:19 -69776656,141092526,,,,2019-07-08 15:24:18 -69777076,141092656,,,,2019-07-08 15:29:15 -70247496,141360566,,,,2019-07-18 15:40:03 -70668196,141360566,,,,2019-07-29 18:33:05 \ No newline at end of file +id,campaign_id,intended_status,click_uri,last_modified_at,created_time,text_ad_landing_page,spotlight_landing_page +125339904,174942134,,,,2021-03-08 23:42:20,,"http://www.linkedin.com" +186286604,202434464,,,,2022-09-16 02:46:54,,"http://www.linkedin.com" +54106906,131454616,,,,2018-05-18 01:04:02,,"http://www.linkedin.com" +54106976,131454826,,,,2018-05-18 01:09:08,,"http://www.linkedin.com" +54299976,131580446,,,,2018-05-24 00:38:47,,"http://www.linkedin.com" +54300176,131580546,,,,2018-05-24 00:47:40,,"http://www.linkedin.com" +82332766,148633856,,,,2020-03-20 18:55:40,,"http://www.linkedin.com" +82460426,148711996,,,,2020-03-24 17:56:49,,"http://www.linkedin.com" +102541764,162464924,,,,2020-05-08 09:34:15,,"http://www.linkedin.com" +102694624,162557074,,,,2020-05-12 14:08:40,,"http://www.linkedin.com" +107943663,165867684,,,,2020-07-22 19:28:31,,"http://www.linkedin.com" +110663234,167276694,,,,2020-09-10 18:08:57,,"http://www.linkedin.com" +44900356,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900356,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900356,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900356,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900336,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900336,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900336,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900336,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900366,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900366,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900366,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900366,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900346,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900346,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900346,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +44900346,125600246,,,,2017-06-08 21:46:06,,"http://www.linkedin.com" +55220334,133160324,,,,2017-08-04 22:45:09,,"http://www.linkedin.com" +55220334,133160324,,,,2017-08-04 22:45:09,,"http://www.linkedin.com" +44901856,125599426,,,,2017-06-08 22:29:09,,"http://www.linkedin.com" +55220334,133160324,,,,2017-08-04 22:45:09,,"http://www.linkedin.com" +44901856,125599426,,,,2017-06-08 22:29:09,,"http://www.linkedin.com" +44901856,125599426,,,,2017-06-08 22:29:09,,"http://www.linkedin.com" +44901866,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +44901866,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +44901866,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +55220324,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +55220324,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +55220324,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +44901876,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +55220314,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +44901876,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +55220314,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +55220314,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +44901876,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +44901876,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +55220314,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +55220304,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +44901886,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +44901886,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +44901886,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +55220304,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +55220304,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +55220304,133160324,,,,2017-08-04 22:45:09,"http://www.google.com", +44901886,125599426,,,,2017-06-08 22:29:09,"http://www.google.com", +48046336,127624356,,,,2017-10-10 16:49:38,"http://www.google.com", +48046326,127624356,,,,2017-10-10 16:49:38,"http://www.google.com", +48046346,127624356,,,,2017-10-10 16:49:38,"http://www.google.com", +50036216,128806186,,,,2017-12-22 17:38:12,"http://www.google.com", +50035816,128806016,,,,2017-12-22 17:27:45,"http://www.google.com", +50036226,128806186,,,,2017-12-22 17:38:12,"http://www.google.com", +50035806,128806016,,,,2017-12-22 17:27:45,"http://www.google.com", +56166306,132822186,,,,2018-07-25 15:04:05,"http://www.google.com", +56166306,132822186,,,,2018-07-25 15:04:05,"http://www.google.com", +56166306,132822186,,,,2018-07-25 15:04:05,"http://www.google.com", +56237466,132870856,,,,2018-07-28 18:48:26,"http://www.google.com", +56237376,132866546,,,,2018-07-28 18:38:10,"http://www.google.com", +57434376,133672706,,,,2018-09-06 16:59:15,"http://www.google.com", +57527536,133728466,,,,2018-09-10 17:52:28,"http://www.google.com", +57542836,133736786,,,,2018-09-10 23:16:13,"http://www.google.com", +57675346,133822116,,"http://www.github.com",,2018-09-13 17:59:19,, +58503736,134383046,,"http://www.github.com",,2018-10-08 17:49:29,, +58503856,134383176,,"http://www.github.com",,2018-10-08 17:54:17,, +59428846,134988516,,"http://www.github.com",,2018-10-31 17:30:40,, +60400066,135583676,,"http://www.github.com",,2018-11-21 17:08:53,, +61088626,136022286,,"http://www.github.com",,2018-12-10 18:01:42,, +61884186,136508426,,"http://www.github.com",,2019-01-08 17:27:32,, +61885366,136509566,,"http://www.github.com",,2019-01-08 17:57:44,, +62024726,136598756,,"http://www.github.com",,2019-01-11 21:00:57,, +62257986,136746346,,"http://www.github.com",,2019-01-17 19:19:05,, +63506906,137527956,,"http://www.github.com",,2019-02-20 17:23:30,, +63556186,137559956,,"http://www.github.com",,2019-02-21 17:46:17,, +64024086,137824786,,"http://www.github.com",,2019-03-04 19:12:56,, +66558706,139304236,,"http://www.github.com",,2019-04-29 17:20:56,, +66559306,139304466,,"http://www.github.com",,2019-04-29 17:32:14,, +66980846,139548496,,"http://www.github.com",,2019-05-08 17:34:16,, +67039296,139581266,,"http://www.github.com",,2019-05-09 15:19:05,, +67131396,139619466,,"http://www.github.com",,2019-05-10 16:05:30,, +67495816,139812856,,"http://www.github.com",,2019-05-17 14:50:20,, +68192386,140203726,,"http://www.github.com",,2019-06-03 19:34:54,, +68197356,140206956,,"http://www.github.com",,2019-06-03 20:59:46,, +68755776,140506806,,"http://www.github.com",,2019-06-14 17:17:18,, +69108056,140715576,,"http://www.github.com",,2019-06-21 18:33:19,, +69775776,141092076,,"http://www.github.com",,2019-07-08 15:16:08,, +69775486,141091746,,"http://www.github.com",,2019-07-08 15:13:19,, +69776656,141092526,,"http://www.github.com",,2019-07-08 15:24:18,, +69777076,141092656,,"http://www.github.com",,2019-07-08 15:29:15,, +70247496,141360566,,"http://www.github.com",,2019-07-18 15:40:03,, +70668196,141360566,,"http://www.github.com",,2019-07-29 18:33:05,, \ No newline at end of file diff --git a/macros/get_creative_history_columns.sql b/macros/get_creative_history_columns.sql index f7422f0..eb8588f 100644 --- a/macros/get_creative_history_columns.sql +++ b/macros/get_creative_history_columns.sql @@ -10,6 +10,8 @@ {"name": "last_modified_at", "datatype": dbt.type_timestamp()}, {"name": "intended_status", "datatype": dbt.type_string()}, {"name": "status", "datatype": dbt.type_string()}, + {"name": "text_ad_landing_page", "datatype": dbt.type_string()}, + {"name": "spotlight_landing_page", "datatype": dbt.type_string()} ] %} {{ return(columns) }} diff --git a/models/src_linkedin.yml b/models/src_linkedin.yml index e319bfe..01449c6 100644 --- a/models/src_linkedin.yml +++ b/models/src_linkedin.yml @@ -69,9 +69,13 @@ sources: description: The ID of the campaign the creative belongs to. - name: click_uri - description: | - Required when creative type is TEXT_AD. Maximum character limit of 500 after URL encoding all special characters. - Limit does not include the "https://" prefix. + description: Deprecated url field. Please refer to the text_ad_landing_page and spotlight_landing_page fields for relevant landing page information. + + - name: text_ad_landing_page + description: The URL where the member should be redirected to, on clicking the text ad. + + - name: spotlight_landing_page + description: The URL where the member should be redirected to, on clicking the spotlight ad. - name: intended_status description: | diff --git a/models/stg_linkedin.yml b/models/stg_linkedin.yml index 3a863ac..176b261 100644 --- a/models/stg_linkedin.yml +++ b/models/stg_linkedin.yml @@ -111,9 +111,10 @@ models: CANCELED - Creative is permanently canceled. - name: click_uri - description: | - Required when creative type is TEXT_AD. Maximum character limit of 500 after URL encoding all special characters. - Limit does not include the "https://" prefix. + description: The URL where the member should be redirected to, on clicking the text ad or spotlight ad. + + - name: click_uri_type + description: Will either be `text_ad`, `spotlight`, or `null` to indicate the origin of the click_uri. - name: base_url description: The base URL of the ad, extracted from the `click_uri`. diff --git a/models/stg_linkedin_ads__account_history.sql b/models/stg_linkedin_ads__account_history.sql index eb7f752..0c1c948 100644 --- a/models/stg_linkedin_ads__account_history.sql +++ b/models/stg_linkedin_ads__account_history.sql @@ -34,7 +34,7 @@ with base as ( type, cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at, cast(created_time as {{ dbt.type_timestamp() }}) as created_at, - row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version + row_number() over (partition by id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_time desc) = 1 as is_latest_version from macro diff --git a/models/stg_linkedin_ads__campaign_group_history.sql b/models/stg_linkedin_ads__campaign_group_history.sql index 5ffde97..bd8f3d1 100644 --- a/models/stg_linkedin_ads__campaign_group_history.sql +++ b/models/stg_linkedin_ads__campaign_group_history.sql @@ -35,7 +35,7 @@ with base as ( cast(run_schedule_end as {{ dbt.type_timestamp() }}) as run_schedule_end_at, cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at, cast(created_time as {{ dbt.type_timestamp() }}) as created_at, - row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version + row_number() over (partition by id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_time desc) = 1 as is_latest_version from macro diff --git a/models/stg_linkedin_ads__campaign_history.sql b/models/stg_linkedin_ads__campaign_history.sql index 6a145dc..d9eedca 100644 --- a/models/stg_linkedin_ads__campaign_history.sql +++ b/models/stg_linkedin_ads__campaign_history.sql @@ -50,7 +50,7 @@ with base as ( cast(run_schedule_end as {{ dbt.type_timestamp() }}) as run_schedule_end_at, cast(last_modified_time as {{ dbt.type_timestamp() }}) as last_modified_at, cast(created_time as {{ dbt.type_timestamp() }}) as created_at, - row_number() over (partition by source_relation, id order by last_modified_time desc) = 1 as is_latest_version + row_number() over (partition by id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_time desc) = 1 as is_latest_version from macro diff --git a/models/stg_linkedin_ads__creative_history.sql b/models/stg_linkedin_ads__creative_history.sql index 09089b8..94042e2 100644 --- a/models/stg_linkedin_ads__creative_history.sql +++ b/models/stg_linkedin_ads__creative_history.sql @@ -29,10 +29,13 @@ with base as ( id as creative_id, campaign_id, coalesce(status, intended_status) as status, - click_uri, + coalesce(text_ad_landing_page, spotlight_landing_page, click_uri) as click_uri, cast(coalesce(last_modified_time, last_modified_at) as {{ dbt.type_timestamp() }}) as last_modified_at, cast(coalesce(created_time, created_at) as {{ dbt.type_timestamp() }}) as created_at, - row_number() over (partition by source_relation, id order by coalesce(last_modified_time, last_modified_at) desc) = 1 as is_latest_version + case when text_ad_landing_page is not null then 'text_ad' + when spotlight_landing_page is not null then 'spotlight' + else cast(null as {{ dbt.type_string() }}) + end as click_uri_type from macro @@ -40,6 +43,7 @@ with base as ( select *, + row_number() over (partition by creative_id {{ ', source_relation' if (var('linkedin_ads_union_schemas', []) or var('linkedin_ads_union_databases', []) | length > 1) }} order by last_modified_at desc) = 1 as is_latest_version, {{ dbt.split_part('click_uri', "'?'", 1) }} as base_url, {{ dbt_utils.get_url_host('click_uri') }} as url_host, '/' || {{ dbt_utils.get_url_path('click_uri') }} as url_path,