[fusion_builder_container type=”flex” hundred_percent=”no” hundred_percent_height=”no” min_height_medium=”” min_height_small=”” min_height=”” hundred_percent_height_scroll=”no” align_content=”stretch” flex_align_items=”flex-start” flex_justify_content=”flex-start” flex_wrap_medium=”” flex_wrap_small=”” flex_wrap=”wrap” flex_column_spacing=”” hundred_percent_height_center_content=”yes” equal_height_columns=”no” container_tag=”div” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” html_attributes=”” spacing_medium=”” margin_top_medium=”” margin_bottom_medium=”” spacing_small=”” margin_top_small=”” margin_bottom_small=”” margin_top=”” margin_bottom=”” padding_dimensions_medium=”” padding_top_medium=”” padding_right_medium=”” padding_bottom_medium=”” padding_left_medium=”” padding_dimensions_small=”” padding_top_small=”” padding_right_small=”” padding_bottom_small=”” padding_left_small=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” link_hover_color=”” link_color=”” border_sizes=”” border_sizes_top=”” border_sizes_right=”” border_sizes_bottom=”” border_sizes_left=”” border_color=”” border_style=”solid” border_radius_top_left=”” border_radius_top_right=”” border_radius_bottom_right=”” border_radius_bottom_left=”” box_shadow=”no” box_shadow_vertical=”” box_shadow_horizontal=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” z_index=”” overflow=”” background_color_medium=”” background_color_small=”” background_color=”” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_image_medium=”” background_image_small=”” background_image=”” skip_lazy_load=”” background_position_medium=”” background_position_small=”” background_position=”center center” background_repeat_medium=”” background_repeat_small=”” background_repeat=”no-repeat” background_size_medium=”” background_size_small=”” background_size=”” background_custom_size=”” background_custom_size_medium=”” background_custom_size_small=”” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ background_blend_mode_medium=”” background_blend_mode_small=”” background_blend_mode=”none” background_slider_images=”” background_slider_position=”” background_slider_skip_lazy_loading=”no” background_slider_random_order=”no” background_slider_loop=”yes” background_slider_pause_on_hover=”no” background_slider_slideshow_speed=”5000″ background_slider_animation=”fade” background_slider_direction=”up” background_slider_animation_speed=”800″ background_slider_blend_mode=”” video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” pattern_bg=”none” pattern_custom_bg=”” pattern_bg_color=”” pattern_bg_style=”default” pattern_bg_opacity=”100″ pattern_bg_size=”” pattern_bg_blend_mode=”normal” mask_bg=”none” mask_custom_bg=”” mask_bg_color=”” mask_bg_accent_color=”” mask_bg_style=”default” mask_bg_opacity=”100″ mask_bg_transform=”left” mask_bg_blend_mode=”normal” render_logics=”” logics=”” absolute=”off” absolute_devices=”small,medium,large” position_offset_medium=”” position_top_medium=”” position_right_medium=”” position_bottom_medium=”” position_left_medium=”” position_offset_small=”” position_top_small=”” position_right_small=”” position_bottom_small=”” position_left_small=”” position_top=”” position_right=”” position_bottom=”” position_left=”” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_background_color=”” sticky_height=”” sticky_offset=”” sticky_transition_offset=”0″ scroll_offset=”0″ animation_type=”” animation_direction=”left” animation_color=”” animation_speed=”0.3″ animation_delay=”0″ animation_offset=”” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ align_self=”auto” content_layout=”column” align_content=”flex-start” valign_content=”flex-start” dimension_gap_medium=”” dimension_gap_small=”” dimension_gap=”” content_wrap=”wrap” spacing=”” center_content=”no” column_tag=”div” link=”” target=”_self” link_description=”” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” html_attributes=”” type_medium=”” type_small=”” max_height_medium=”” max_height_small=”” max_height=”” flex_grow_medium=”” flex_grow_small=”” flex_grow=”” flex_shrink_medium=”” flex_shrink_small=”” flex_shrink=”” order_medium=”0″ order_small=”0″ dimension_spacing_medium=”” dimension_spacing_small=”” dimension_spacing=”” dimension_margin_medium=”” dimension_margin_small=”” margin_top=”” margin_bottom=”” padding_medium=”” padding_small=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” hover_type=”none” border_sizes=”” border_color_hover=”” border_color=”” border_style=”solid” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” z_index_hover=”” z_index=”” overflow=”” background_type=”single” background_color_medium=”” background_color_small=”” background_color_medium_hover=”” background_color_small_hover=”” background_color_hover=”” background_color=”” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_image_medium=”” background_image_small=”” background_image=”” background_image_id_medium=”” background_image_id_small=”” background_image_id=”” lazy_load=”avada” skip_lazy_load=”” background_position_medium=”” background_position_small=”” background_position=”left top” background_repeat_medium=”” background_repeat_small=”” background_repeat=”no-repeat” background_size_medium=”” background_size_small=”” background_size=”” background_custom_size=”” background_custom_size_medium=”” background_custom_size_small=”” background_blend_mode_medium=”” background_blend_mode_small=”” background_blend_mode=”none” background_slider_images=”” background_slider_position=”” background_slider_skip_lazy_loading=”no” background_slider_random_order=”no” background_slider_loop=”yes” background_slider_pause_on_hover=”no” background_slider_slideshow_speed=”5000″ background_slider_animation=”fade” background_slider_direction=”up” background_slider_animation_speed=”800″ background_slider_blend_mode=”” render_logics=”” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_offset=”” absolute=”off” absolute_props=”” filter_type=”regular” filter_hover_element=”self” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ transform_type=”regular” transform_hover_element=”self” transform_scale_x=”1″ transform_scale_y=”1″ transform_translate_x=”0″ transform_translate_y=”0″ transform_rotate=”0″ transform_skew_x=”0″ transform_skew_y=”0″ transform_scale_x_hover=”1″ transform_scale_y_hover=”1″ transform_translate_x_hover=”0″ transform_translate_y_hover=”0″ transform_rotate_hover=”0″ transform_skew_x_hover=”0″ transform_skew_y_hover=”0″ transform_origin=”” transition_duration=”300″ transition_easing=”ease” transition_custom_easing=”” motion_effects=”” scroll_motion_devices=”small-visibility,medium-visibility,large-visibility” animation_type=”” animation_direction=”left” animation_color=”” animation_speed=”0.3″ animation_delay=”0″ animation_offset=”” last=”true” border_position=”all” first=”true”][fusion_code render_logics=””]PHN0eWxlPgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIENBUkwgR3VpZGUgUGFnZSBUZW1wbGF0ZSAtIEZpbmRpbmcgJiBVc2luZyBFeGlzdGluZyBMZXNzb25zCiAgICAgU2NvcGVkIGZvciBXb3JkUHJlc3MvQXZhZGEgY29kZSBibG9jayB1c2UKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgLmxpYnJhcnktZ3VpZGUtcGFnZSB7CiAgICAtLWxpYnJhcnktYnJhbmQtZGFyazogIzAwMkQ0QzsKICAgIC0tbGlicmFyeS1icmFuZC1kYXJrZXI6ICMwMDE5MzA7CiAgICAtLWxpYnJhcnktYnJhbmQtdGVhbDogIzAwRTVEMzsKICAgIC0tbGlicmFyeS1icmFuZC1waW5rOiAjRjY3MUVBOwogICAgLS1saWJyYXJ5LWJyYW5kLWNvcmFsOiAjRjg4Mzc5OwogICAgLS1saWJyYXJ5LWJyYW5kLWJsdWU6ICM1OUM5RTE7CgogICAgLS1saWJyYXJ5LXRleHQtcHJpbWFyeTogIzAwMkQ0QzsKICAgIC0tbGlicmFyeS10ZXh0LXNlY29uZGFyeTogIzVBNkM3RDsKICAgIC0tbGlicmFyeS10ZXh0LW11dGVkOiAjOGE5YWE4OwoKICAgIC0tbGlicmFyeS1iZy1saWdodDogI2Y4ZmFmYjsKICAgIC0tbGlicmFyeS1iZy1wYWdlOiAjZmZmZmZmOwoKICAgIC0tbGlicmFyeS1ib3JkZXItbGlnaHQ6ICNlOGVlZjI7CiAgICAtLWxpYnJhcnktYm9yZGVyLW1lZGl1bTogI2QwZDdkZDsKCiAgICAtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdDogNTYwbXM7CiAgICAtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0OiBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsKCiAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWxpYnJhcnktYmctbGlnaHQpOwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktdGV4dC1wcmltYXJ5KTsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBtYXJnaW4tbGVmdDogY2FsYygtNTB2dyArIDUwJSk7CiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTUwdncgKyA1MCUpOwogICAgd2lkdGg6IDEwMHZ3OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtcGFnZSwKICAubGlicmFyeS1ndWlkZS1wYWdlICogewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgUm9ib3RvLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7CiAgfQoKICAubGlicmFyeS1ndWlkZS1wYWdlIGEgewogICAgY29sb3I6IGluaGVyaXQ7CiAgfQoKICAubGlicmFyeS1ndWlkZS1wcm9ncmVzcyB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDAlOwogICAgaGVpZ2h0OiAzcHg7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWxpYnJhcnktYnJhbmQtYmx1ZSksIHZhcigtLWxpYnJhcnktYnJhbmQtdGVhbCkpOwogICAgei1pbmRleDogOTk5OTsKICAgIHRyYW5zaXRpb246IHdpZHRoIDEyMG1zIGxpbmVhcjsKICB9CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIEhlYWRlcgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKICAubGlicmFyeS1ndWlkZS1oZWFkZXIgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbGlicmFyeS1icmFuZC1kYXJrKSAwJSwgdmFyKC0tbGlicmFyeS1icmFuZC1kYXJrZXIpIDEwMCUpOwogICAgcGFkZGluZzogNDhweCAwIDU2cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC01MCU7CiAgICByaWdodDogLTEwJTsKICAgIHdpZHRoOiA1MDBweDsKICAgIGhlaWdodDogNTAwcHg7CiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDg5LCAyMDEsIDIyNSwgMC4xMikgMCUsIHRyYW5zcGFyZW50IDcwJSk7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWhlYWRlcjo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IC0xODBweDsKICAgIGxlZnQ6IDglOwogICAgd2lkdGg6IDM2MHB4OwogICAgaGVpZ2h0OiAzNjBweDsKICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMCwgMjI5LCAyMTEsIDAuMDgpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAubGlicmFyeS1ndWlkZS1oZWFkZXItaW5uZXIgewogICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIHBhZGRpbmc6IDAgMzJweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAubGlicmFyeS1ndWlkZS1icmVhZGNydW1icyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJyZWFkY3J1bWJzIGEgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtYnJlYWRjcnVtYnMgYTpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS1icmFuZC10ZWFsKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJyZWFkY3J1bWJzIC5saWJyYXJ5LWd1aWRlLXNlcGFyYXRvciB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtYnJlYWRjcnVtYnMgLmxpYnJhcnktZ3VpZGUtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJhZGdlcyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxMHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJhZGdlIHsKICAgIHBhZGRpbmc6IDZweCAxNHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJhZGdlLmxpYnJhcnktZ3VpZGUtY2F0ZWdvcnkgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAyMjksIDIxMSwgMC4xNSk7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS1icmFuZC10ZWFsKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMjI5LCAyMTEsIDAuMzApOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtYmFkZ2UubGlicmFyeS1ndWlkZS10eXBlIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgfQoKICAubGlicmFyeS1ndWlkZS10aXRsZSB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNHZ3LCAyLjYyNXJlbSk7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGluZS1oZWlnaHQ6IDEuMTU7CiAgICBtYXJnaW46IDAgMCAxNnB4IDA7CiAgICBtYXgtd2lkdGg6IDgyMHB4OwogICAgbGV0dGVyLXNwYWNpbmc6IC0wLjNweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWRlc2NyaXB0aW9uIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpOwogICAgZm9udC1zaXplOiAxN3B4OwogICAgbGluZS1oZWlnaHQ6IDEuNjU7CiAgICBtYXgtd2lkdGg6IDc4MHB4OwogICAgbWFyZ2luOiAwIDAgMjRweCAwOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtbWV0YSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAyNHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtbWV0YS1pdGVtIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLW1ldGEtaXRlbSBzdmcgewogICAgd2lkdGg6IDE2cHg7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICBvcGFjaXR5OiAwLjg1OwogIH0KCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgTGF5b3V0ICsgU2lkZWJhcgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKICAubGlicmFyeS1ndWlkZS1sYXlvdXQgewogICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIHBhZGRpbmc6IDAgMzJweDsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2MHB4IDFmcjsKICAgIGdhcDogNDhweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNpZGViYXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdG9jIHsKICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICB0b3A6IDMycHg7CiAgICBwYWRkaW5nOiAzMnB4IDAgMjRweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXRvYy1oZWFkZXIgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtbXV0ZWQpOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgfQoKICAubGlicmFyeS1ndWlkZS10b2MtbGlzdCB7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogMDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXRvYy1saW5rIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktdGV4dC1zZWNvbmRhcnkpOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOgogICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBjb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdG9jLWxpbms6aG92ZXIsCiAgLmxpYnJhcnktZ3VpZGUtdG9jLWxpbmsubGlicmFyeS1ndWlkZS1hY3RpdmUgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAyMjksIDIxMSwgMC4wOCk7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS1icmFuZC1kYXJrKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXRvYy1saW5rLmxpYnJhcnktZ3VpZGUtYWN0aXZlIHsKICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1saWJyYXJ5LWJyYW5kLXRlYWwpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdG9jLW51bWJlciB7CiAgICB3aWR0aDogMjJweDsKICAgIGhlaWdodDogMjJweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWxpYnJhcnktYmctbGlnaHQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlicmFyeS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS10ZXh0LW11dGVkKTsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgdHJhbnNpdGlvbjoKICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBjb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXRvYy1saW5rOmhvdmVyIC5saWJyYXJ5LWd1aWRlLXRvYy1udW1iZXIsCiAgLmxpYnJhcnktZ3VpZGUtdG9jLWxpbmsubGlicmFyeS1ndWlkZS1hY3RpdmUgLmxpYnJhcnktZ3VpZGUtdG9jLW51bWJlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWJyYXJ5LWJyYW5kLXRlYWwpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWJyYXJ5LWJyYW5kLXRlYWwpOwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktYnJhbmQtZGFyayk7CiAgfQoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBNYWluIENvbnRlbnQgKyBTZWN0aW9ucwogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKICAubGlicmFyeS1ndWlkZS1jb250ZW50IHsKICAgIHBhZGRpbmc6IDQ4cHggMCA4MHB4OwogICAgbWluLXdpZHRoOiAwOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbiB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpYnJhcnktYm9yZGVyLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgc2Nyb2xsLW1hcmdpbi10b3A6IDMycHg7CiAgICB0cmFuc2l0aW9uOgogICAgICBib3gtc2hhZG93IHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICB0cmFuc2Zvcm0gdmFyKC0tbGlicmFyeS1ob3Zlci1zcGVlZC1zb2Z0KSB2YXIoLS1saWJyYXJ5LWhvdmVyLWVhc2Utc29mdCk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zZWN0aW9uOmhvdmVyIHsKICAgIGJveC1zaGFkb3c6IDAgNXB4IDE2cHggcmdiYSgwLCA0NSwgNzYsIDAuMDQ1KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxNnB4OwogICAgcGFkZGluZzogMjRweCAyOHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpYnJhcnktYm9yZGVyLWxpZ2h0KTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tbGlicmFyeS1ob3Zlci1zcGVlZC1zb2Z0KSB2YXIoLS1saWJyYXJ5LWhvdmVyLWVhc2Utc29mdCk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zZWN0aW9uLWhlYWRlcjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWJyYXJ5LWJnLWxpZ2h0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tbnVtYmVyIHsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbGlicmFyeS1icmFuZC1ibHVlKSwgdmFyKC0tbGlicmFyeS1icmFuZC10ZWFsKSk7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS1icmFuZC1kYXJrKTsKICAgIGZsZXgtc2hyaW5rOiAwOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi10aXRsZSB7CiAgICBmbGV4OiAxOwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtcHJpbWFyeSk7CiAgICBtYXJnaW46IDA7CiAgICBsaW5lLWhlaWdodDogMS4zNTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tdG9nZ2xlIHsKICAgIHdpZHRoOiAyOHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tbGlicmFyeS1iZy1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZmxleC1zaHJpbms6IDA7CiAgICB0cmFuc2l0aW9uOgogICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICB0cmFuc2Zvcm0gdmFyKC0tbGlicmFyeS1ob3Zlci1zcGVlZC1zb2Z0KSB2YXIoLS1saWJyYXJ5LWhvdmVyLWVhc2Utc29mdCk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zZWN0aW9uLXRvZ2dsZSBzdmcgewogICAgd2lkdGg6IDE0cHg7CiAgICBoZWlnaHQ6IDE0cHg7CiAgICBzdHJva2U6IHZhcigtLWxpYnJhcnktdGV4dC1tdXRlZCk7CiAgICB0cmFuc2l0aW9uOgogICAgICB0cmFuc2Zvcm0gdmFyKC0tbGlicmFyeS1ob3Zlci1zcGVlZC1zb2Z0KSB2YXIoLS1saWJyYXJ5LWhvdmVyLWVhc2Utc29mdCksCiAgICAgIHN0cm9rZSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24ubGlicmFyeS1ndWlkZS1jb2xsYXBzZWQgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi10b2dnbGUgc3ZnIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkgewogICAgcGFkZGluZzogMjhweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi5saWJyYXJ5LWd1aWRlLWNvbGxhcHNlZCAubGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkgewogICAgZGlzcGxheTogbm9uZTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tYm9keSBwIHsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtc2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjc1OwogICAgbWFyZ2luOiAwIDAgMTZweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXN1YmhlYWQgewogICAgY29sb3I6IHZhcigtLWxpYnJhcnktdGV4dC1wcmltYXJ5KTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBtYXJnaW46IDI4cHggMCAxMHB4OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi1ib2R5IHVsLAogIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tYm9keSBvbCB7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS10ZXh0LXNlY29uZGFyeSk7CiAgICBmb250LXNpemU6IDE1cHg7CiAgICBsaW5lLWhlaWdodDogMS43OwogICAgbWFyZ2luOiAxMnB4IDAgMjBweCAyMnB4OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi1ib2R5IGxpIHsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICB9CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIENhbGxvdXRzCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgogIC5saWJyYXJ5LWd1aWRlLWNhbGxvdXQgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogMTRweDsKICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICBtYXJnaW46IDIwcHggMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAubGlicmFyeS1ndWlkZS1jYWxsb3V0IHN2ZyB7CiAgICB3aWR0aDogMjBweDsKICAgIGhlaWdodDogMjBweDsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgbWFyZ2luLXRvcDogMnB4OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtY2FsbG91dCBkaXYgPiBzdHJvbmc6Zmlyc3QtY2hpbGQgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS10ZXh0LXByaW1hcnkpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtY2FsbG91dCBkaXYgPiBzdHJvbmc6bm90KDpmaXJzdC1jaGlsZCkgewogICAgZGlzcGxheTogaW5saW5lOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtcHJpbWFyeSk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1jYWxsb3V0LmxpYnJhcnktZ3VpZGUtdGlwIHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwgMjI5LCAyMTEsIDAuMDgpLCByZ2JhKDg5LCAyMDEsIDIyNSwgMC4wOCkpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAyMjksIDIxMSwgMC4yKTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWNhbGxvdXQubGlicmFyeS1ndWlkZS10aXAgc3ZnIHsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LWJyYW5kLXRlYWwpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtY2FsbG91dC5saWJyYXJ5LWd1aWRlLXdhcm5pbmcgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsIDE4MywgNzcsIDAuMSksIHJnYmEoMjU1LCAxNTIsIDAsIDAuMDgpKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAxNTIsIDAsIDAuMjUpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtY2FsbG91dC5saWJyYXJ5LWd1aWRlLXdhcm5pbmcgc3ZnIHsKICAgIGNvbG9yOiAjZjU5ZTBiOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtY2FsbG91dC5saWJyYXJ5LWd1aWRlLW5vdGUgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNDYsIDExMywgMjM0LCAwLjA4KSwgcmdiYSgxNjcsIDEzOSwgMjUwLCAwLjA4KSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0NiwgMTEzLCAyMzQsIDAuMik7CiAgfQoKICAubGlicmFyeS1ndWlkZS1jYWxsb3V0LmxpYnJhcnktZ3VpZGUtbm90ZSBzdmcgewogICAgY29sb3I6IHZhcigtLWxpYnJhcnktYnJhbmQtcGluayk7CiAgfQoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBUYWJsZXMKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgLmxpYnJhcnktZ3VpZGUtdGFibGUtd3JhcCB7CiAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAgbWFyZ2luOiAyNHB4IDA7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlicmFyeS1ib3JkZXItbGlnaHQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdGFibGUgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgbWluLXdpZHRoOiA1MjBweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXRhYmxlIHRoIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWxpYnJhcnktYmctbGlnaHQpOwogICAgcGFkZGluZzogMTRweCAxOHB4OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS10ZXh0LW11dGVkKTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGlicmFyeS1ib3JkZXItbGlnaHQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdGFibGUgdGQgewogICAgcGFkZGluZzogMTVweCAxOHB4OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktdGV4dC1zZWNvbmRhcnkpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpYnJhcnktYm9yZGVyLWxpZ2h0KTsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdGFibGUgdHI6bGFzdC1jaGlsZCB0ZCB7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdGFibGUgdGJvZHkgdHIgewogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXRhYmxlIHRib2R5IHRyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjI5LCAyMTEsIDAuMDMpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtdGFibGUgc3Ryb25nIHsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtcHJpbWFyeSk7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgU2NyZWVuc2hvdHMsIGV4YW1wbGVzLCBhbmQgbWVkaWEgY2FyZHMKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdC1ibG9jayB7CiAgICBtYXJnaW46IDI0cHggMDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saWJyYXJ5LWJvcmRlci1saWdodCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWJyYXJ5LWJnLWxpZ2h0KTsKICAgIGN1cnNvcjogem9vbS1pbjsKICAgIHRyYW5zaXRpb246CiAgICAgIHRyYW5zZm9ybSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBib3gtc2hhZG93IHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjI5LCAyMTEsIDAuNDIpOwogICAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDIyOSwgMjExLCAwLjA5KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QgaW1nLAogIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QgdmlkZW8gewogICAgd2lkdGg6IDEwMCU7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QgdmlkZW8gewogICAgYmFja2dyb3VuZDogIzAwMTkzMDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3Qtb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgNDUsIDc2LCAwLjYpIDAlLCB0cmFuc3BhcmVudCA0MCUpOwogICAgb3BhY2l0eTogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICBwYWRkaW5nOiAxNnB4OwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdDpob3ZlciAubGlicmFyeS1ndWlkZS1zY3JlZW5zaG90LW92ZXJsYXksCiAgLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdDpmb2N1cyAubGlicmFyeS1ndWlkZS1zY3JlZW5zaG90LW92ZXJsYXkgewogICAgb3BhY2l0eTogMTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXpvb20taGludCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNTAwOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdC1jYXB0aW9uIHsKICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS10ZXh0LW11dGVkKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXN0eWxlLWdyaWQsCiAgLmxpYnJhcnktZ3VpZGUtZXhhbXBsZS1ncmlkIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7CiAgICBnYXA6IDE2cHg7CiAgICBtYXJnaW46IDI0cHggMDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWV4YW1wbGUtZ3JpZC5saWJyYXJ5LWd1aWRlLWZpdmUtZ3JpZCB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zdHlsZS1jYXJkIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpYnJhcnktYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYmFja2dyb3VuZDogI2ZmZjsKICAgIHRyYW5zaXRpb246CiAgICAgIHRyYW5zZm9ybSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBib3gtc2hhZG93IHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc3R5bGUtY2FyZDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMjI5LCAyMTEsIDAuMzgpOwogICAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDIyOSwgMjExLCAwLjA4KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXN0eWxlLWNhcmQtbWVkaWEgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgY3Vyc29yOiB6b29tLWluOwogICAgYmFja2dyb3VuZDogdmFyKC0tbGlicmFyeS1iZy1saWdodCk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zdHlsZS1jYXJkLW1lZGlhIGltZyB7CiAgICB3aWR0aDogMTAwJTsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc3R5bGUtY2FyZC1ib2R5IHsKICAgIHBhZGRpbmc6IDE2cHg7CiAgfQoKICAubGlicmFyeS1ndWlkZS1zdHlsZS1jYXJkLXRpdGxlIHsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtcHJpbWFyeSk7CiAgICBmb250LXNpemU6IDE1cHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbWFyZ2luOiAwIDAgNnB4OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtc3R5bGUtY2FyZC1jb3B5IHsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtc2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBtYXJnaW46IDA7CiAgfQoKICAubGlicmFyeS1ndWlkZS1jaGlwLXJvdyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAgZ2FwOiA2cHg7CiAgICBtYXJnaW46IDEwcHggMCAxMHB4OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtY2hpcCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIHBhZGRpbmc6IDRweCA5cHg7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4OwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktYnJhbmQtZGFyayk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDg5LCAyMDEsIDIyNSwgMC4xNCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDg5LCAyMDEsIDIyNSwgMC4yOCk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1jaGlwLmxpYnJhcnktZ3VpZGUtY2hpcC1ncmVlbiB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDIyOSwgMjExLCAwLjEyKTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMjksIDIxMSwgMC4yNSk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1jaGlwLmxpYnJhcnktZ3VpZGUtY2hpcC1waW5rIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ2LCAxMTMsIDIzNCwgMC4xMCk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMjQ2LCAxMTMsIDIzNCwgMC4yMik7CiAgfQoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBSZWxhdGVkIEd1aWRlIENhcmRzCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgogIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQtc3RhY2sgewogICAgbWFyZ2luLXRvcDogMjRweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQtc3RhY2sgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZDpmaXJzdC1jaGlsZCB7CiAgICBtYXJnaW4tdG9wOiAwOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTZweDsKICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWxpYnJhcnktYmctbGlnaHQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlicmFyeS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIHRyYW5zaXRpb246CiAgICAgIHRyYW5zZm9ybSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBib3gtc2hhZG93IHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBjb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQ6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIyOSwgMjExLCAwLjM4KTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjI5LCAyMTEsIDAuMDM1KTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOwogICAgYm94LXNoYWRvdzogMCA1cHggMTZweCByZ2JhKDAsIDQ1LCA3NiwgMC4wNSk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQoKICAubGlicmFyeS1ndWlkZS1yZWxhdGVkLWljb24gewogICAgd2lkdGg6IDQwcHg7CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1saWJyYXJ5LWJyYW5kLWJsdWUpLCB2YXIoLS1saWJyYXJ5LWJyYW5kLXRlYWwpKTsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZmxleC1zaHJpbms6IDA7CiAgfQoKICAubGlicmFyeS1ndWlkZS1yZWxhdGVkLWljb24gc3ZnIHsKICAgIHdpZHRoOiAyMHB4OwogICAgaGVpZ2h0OiAyMHB4OwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktYnJhbmQtZGFyayk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1yZWxhdGVkLXRleHQgewogICAgZmxleDogMTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQtbGFiZWwgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtbXV0ZWQpOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQtdGl0bGUgewogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtcHJpbWFyeSk7CiAgfQoKICAubGlicmFyeS1ndWlkZS1yZWxhdGVkLWFycm93IHsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LXRleHQtbXV0ZWQpOwogICAgdHJhbnNpdGlvbjoKICAgICAgdHJhbnNmb3JtIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBjb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQ6aG92ZXIgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZC1hcnJvdyB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTsKICAgIGNvbG9yOiB2YXIoLS1saWJyYXJ5LWJyYW5kLXRlYWwpOwogIH0KCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgTGlnaHRib3gKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3ggewogICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIGluc2V0OiAwOwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg4KTsKICAgIHotaW5kZXg6IDk5OTk5OTk7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyNHB4OwogICAgY3Vyc29yOiB6b29tLW91dDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWxpZ2h0Ym94LmxpYnJhcnktZ3VpZGUtYWN0aXZlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQoKICAubGlicmFyeS1ndWlkZS1saWdodGJveC1jb250ZW50IHsKICAgIG1heC13aWR0aDogbWluKDEyMDBweCwgOTZ2dyk7CiAgICBtYXgtaGVpZ2h0OiA5MHZoOwogICAgY3Vyc29yOiB6b29tLW91dDsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWxpZ2h0Ym94IGltZywKICAubGlicmFyeS1ndWlkZS1saWdodGJveCB2aWRlbyB7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiA5MHZoOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWxpZ2h0Ym94IHZpZGVvIHsKICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICBjdXJzb3I6IHpvb20tb3V0OwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3gtY2xvc2UgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgdG9wOiAxNnB4OwogICAgcmlnaHQ6IDE2cHg7CiAgICB3aWR0aDogMzZweDsKICAgIGhlaWdodDogMzZweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6IHdoaXRlOwogICAgdHJhbnNpdGlvbjoKICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgdHJhbnNmb3JtIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3gtY2xvc2U6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNCk7CiAgfQoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBGb290ZXIgKyBCdXR0b25zCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgogIC5saWJyYXJ5LWd1aWRlLWZvb3RlciB7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1saWJyYXJ5LWJyYW5kLWRhcmspIDAlLCB2YXIoLS1saWJyYXJ5LWJyYW5kLWRhcmtlcikgMTAwJSk7CiAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgcGFkZGluZzogNDhweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtZm9vdGVyOjpiZWZvcmUgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC04MHB4OwogICAgcmlnaHQ6IC01MHB4OwogICAgd2lkdGg6IDIyMHB4OwogICAgaGVpZ2h0OiAyMjBweDsKICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoODksIDIwMSwgMjI1LCAwLjE2KSAwJSwgdHJhbnNwYXJlbnQgNzAlKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtZm9vdGVyLXRpdGxlIHsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAyOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAubGlicmFyeS1ndWlkZS1mb290ZXIgcCB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIG1hcmdpbjogMCBhdXRvIDI4cHg7CiAgICBtYXgtd2lkdGg6IDYyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJ1dHRvbnMgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogMTJweDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZmxleC13cmFwOiB3cmFwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBwYWRkaW5nOiAxNHB4IDMycHg7CiAgICBmb250LXNpemU6IDAuODc1cmVtOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgYm9yZGVyOiBub25lOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIHRyYW5zaXRpb246CiAgICAgIHRyYW5zZm9ybSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgYm94LXNoYWRvdyB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgb3BhY2l0eSB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KSwKICAgICAgZmlsdGVyIHZhcigtLWxpYnJhcnktaG92ZXItc3BlZWQtc29mdCkgdmFyKC0tbGlicmFyeS1ob3Zlci1lYXNlLXNvZnQpLAogICAgICBjb2xvciB2YXIoLS1saWJyYXJ5LWhvdmVyLXNwZWVkLXNvZnQpIHZhcigtLWxpYnJhcnktaG92ZXItZWFzZS1zb2Z0KTsKICB9CgogIC5saWJyYXJ5LWd1aWRlLWJ0bjpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNCk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQoKICAubGlicmFyeS1ndWlkZS1idG4ubGlicmFyeS1ndWlkZS1wcmltYXJ5IHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWxpYnJhcnktYnJhbmQtcGluayksIHZhcigtLWxpYnJhcnktYnJhbmQtY29yYWwpKTsKICAgIGNvbG9yOiAjZmZmOwogIH0KCiAgLmxpYnJhcnktZ3VpZGUtYnRuLmxpYnJhcnktZ3VpZGUtc2Vjb25kYXJ5IHsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS1icmFuZC1kYXJrZXIpOwogIH0KCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgUmVzcG9uc2l2ZQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgLmxpYnJhcnktZ3VpZGUtcGFnZSAqLAogICAgLmxpYnJhcnktZ3VpZGUtcGFnZSAqOjpiZWZvcmUsCiAgICAubGlicmFyeS1ndWlkZS1wYWdlICo6OmFmdGVyIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7CiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7CiAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0byAhaW1wb3J0YW50OwogICAgfQogIH0KCiAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAubGlicmFyeS1ndWlkZS1sYXlvdXQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KCiAgICAubGlicmFyeS1ndWlkZS1zaWRlYmFyIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAubGlicmFyeS1ndWlkZS1oZWFkZXIgewogICAgICBwYWRkaW5nOiAzNnB4IDAgNDJweDsKICAgIH0KCiAgICAubGlicmFyeS1ndWlkZS1jb250ZW50IHsKICAgICAgcGFkZGluZzogMzZweCAwIDY0cHg7CiAgICB9CgogICAgLmxpYnJhcnktZ3VpZGUtc3R5bGUtZ3JpZCwKICAgIC5saWJyYXJ5LWd1aWRlLWV4YW1wbGUtZ3JpZCwKICAgIC5saWJyYXJ5LWd1aWRlLWV4YW1wbGUtZ3JpZC5saWJyYXJ5LWd1aWRlLWZpdmUtZ3JpZCB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIH0KCiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgICAubGlicmFyeS1ndWlkZS1oZWFkZXItaW5uZXIsCiAgICAubGlicmFyeS1ndWlkZS1sYXlvdXQgewogICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICB9CgogICAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi1oZWFkZXIgewogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi1ib2R5IHsKICAgICAgcGFkZGluZzogMjBweDsKICAgIH0KCiAgICAubGlicmFyeS1ndWlkZS1mb290ZXIgewogICAgICBwYWRkaW5nOiAzMnB4IDI0cHg7CiAgICB9CgogICAgLmxpYnJhcnktZ3VpZGUtYnRuIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgfQoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBGaW5hbCBzY29wZWQgb3ZlcnJpZGVzIGZvciBBdmFkYS9nbG9iYWwgc3R5bGUgcHJvdGVjdGlvbgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAqIHsKICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgc2Fucy1zZXJpZiAhaW1wb3J0YW50OwogIH0KCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgTElCUkFSWSBHVUlERSBTT0ZUIEhPVkVSIE9WRVJSSURFCiAgICAgTXVzdCBzdGF5IGF0IHRoZSB2ZXJ5IGJvdHRvbSBvZiB0aGUgc3R5bGUgYmxvY2sKICAgICBIZWxwcyBiZWF0IEF2YWRhL2dsb2JhbCBob3ZlciBvdmVycmlkZXMKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZCwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1idG4sCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdCwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zdHlsZS1jYXJkLAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24sCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi1oZWFkZXIsCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtdG9jLWxpbmssCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtdG9jLW51bWJlciwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1yZWxhdGVkLWFycm93LAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3Qtb3ZlcmxheSwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1saWdodGJveC1jbG9zZSB7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA5MDBtcyAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwbXMgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQgewogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBib3JkZXItY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJveC1zaGFkb3csIGNvbG9yICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWJyYXJ5LWJnLWxpZ2h0KSAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSAhaW1wb3J0YW50OwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDIyOSwgMjExLCAwLjM4KSAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyMjksIDIxMSwgMC4wMzUpICFpbXBvcnRhbnQ7CiAgICBib3gtc2hhZG93OiAwIDVweCAxNnB4IHJnYmEoMCwgNDUsIDc2LCAwLjA1KSAhaW1wb3J0YW50OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1yZWxhdGVkLWFycm93IHsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgY29sb3IgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQ6aG92ZXIgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZC1hcnJvdyB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLWxpYnJhcnktYnJhbmQtdGVhbCkgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJ0biB7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGJveC1zaGFkb3csIG9wYWNpdHksIGZpbHRlciwgY29sb3IgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJ0bjpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE0KSAhaW1wb3J0YW50OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1idG4ubGlicmFyeS1ndWlkZS1wcmltYXJ5LAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJ0bi5saWJyYXJ5LWd1aWRlLXByaW1hcnk6aG92ZXIgewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbGlicmFyeS1icmFuZC1waW5rKSwgdmFyKC0tbGlicmFyeS1icmFuZC1jb3JhbCkpICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtYnRuLmxpYnJhcnktZ3VpZGUtc2Vjb25kYXJ5LAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJ0bi5saWJyYXJ5LWd1aWRlLXNlY29uZGFyeTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogdmFyKC0tbGlicmFyeS1icmFuZC1kYXJrZXIpICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zY3JlZW5zaG90LAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXN0eWxlLWNhcmQgewogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3cgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3Q6aG92ZXIsCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc3R5bGUtY2FyZDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMjksIDIxMSwgMC40MikgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6IDAgN3B4IDIycHggcmdiYSgwLCAyMjksIDIxMSwgMC4wOSkgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3Qtb3ZlcmxheSB7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zZWN0aW9uIHsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJveC1zaGFkb3csIHRyYW5zZm9ybSAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbjpob3ZlciB7CiAgICBib3gtc2hhZG93OiAwIDVweCAxNnB4IHJnYmEoMCwgNDUsIDc2LCAwLjA0NSkgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyIHsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGZhZmIgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXRvYy1saW5rIHsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGNvbG9yLCBib3JkZXItY29sb3IgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXRvYy1udW1iZXIgewogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCBjb2xvciAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3gtY2xvc2UgewogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgdHJhbnNmb3JtICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1saWdodGJveC1jbG9zZTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpICFpbXBvcnRhbnQ7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDQpICFpbXBvcnRhbnQ7CiAgfQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgTGlicmFyeSBHdWlkZSBNb2JpbGUgUmVwYWlyICsgRmluYWwgQ2xlYW51cCBMYXllcgogICBQYXN0ZSBhdCB0aGUgVkVSWSBCT1RUT00gb2YgdGhlIHN0eWxlIGJsb2NrLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkgewogIGh0bWwsCiAgYm9keSB7CiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50OwogIH0KCiAgLyogUmVtb3ZlIEF2YWRhL1dvcmRQcmVzcyBzaWRlIGd1dHRlcnMgYXJvdW5kIHRoaXMgZXhhY3QgZ3VpZGUgYmxvY2sgKi8KICBodG1sIGJvZHkgLmZ1c2lvbi10ZXh0OmhhcygubGlicmFyeS1ndWlkZS1wYWdlKSwKICBodG1sIGJvZHkgLmZ1c2lvbi1jb2x1bW4td3JhcHBlcjpoYXMoLmxpYnJhcnktZ3VpZGUtcGFnZSksCiAgaHRtbCBib2R5IC5mdXNpb24tbGF5b3V0LWNvbHVtbjpoYXMoLmxpYnJhcnktZ3VpZGUtcGFnZSksCiAgaHRtbCBib2R5IC5mdXNpb24tYnVpbGRlci1yb3c6aGFzKC5saWJyYXJ5LWd1aWRlLXBhZ2UpLAogIGh0bWwgYm9keSAuZnVzaW9uLWZ1bGx3aWR0aDpoYXMoLmxpYnJhcnktZ3VpZGUtcGFnZSksCiAgaHRtbCBib2R5IC5mdXNpb24tYnVpbGRlci1jb250YWluZXI6aGFzKC5saWJyYXJ5LWd1aWRlLXBhZ2UpIHsKICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDsKICB9CgogIC8qIFN0b3AgMTAwdncgZnJvbSBjYXVzaW5nIG1vYmlsZSBzaWRlLXNjcm9sbCAqLwogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIHsKICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7CiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsKICAgIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZDogI2Y4ZmFmYiAhaW1wb3J0YW50OwogIH0KCiAgLyogQmx1ZSBoZXJvIGVkZ2UtdG8tZWRnZSwgcGFkZGluZyBpbnNpZGUgdGhlIGJsdWUgKi8KICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1oZWFkZXIgewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsKICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgcGFkZGluZzogMzhweCAwIDQ2cHggIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDJENEMgMCUsICMwMDE5MzAgMTAwJSkgIWltcG9ydGFudDsKICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWhlYWRlci1pbm5lciB7CiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgIHBhZGRpbmc6IDAgMjJweCAhaW1wb3J0YW50OwogICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtYnJlYWRjcnVtYnMgewogICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS40ICFpbXBvcnRhbnQ7CiAgICBtYXJnaW4tYm90dG9tOiAxOHB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1iYWRnZXMgewogICAgZ2FwOiA4cHggIWltcG9ydGFudDsKICAgIG1hcmdpbi1ib3R0b206IDE0cHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJhZGdlIHsKICAgIGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50OwogICAgcGFkZGluZzogNnB4IDExcHggIWltcG9ydGFudDsKICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS10aXRsZSB7CiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDguMnZ3LCAyLjQ1cmVtKSAhaW1wb3J0YW50OwogICAgbGluZS1oZWlnaHQ6IDEuMSAhaW1wb3J0YW50OwogICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW0gIWltcG9ydGFudDsKICAgIG1hcmdpbjogMCAwIDE0cHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWRlc2NyaXB0aW9uIHsKICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50OwogICAgbGluZS1oZWlnaHQ6IDEuNjIgIWltcG9ydGFudDsKICAgIG1hcmdpbi1ib3R0b206IDIycHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLW1ldGEgewogICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDsKICAgIGdhcDogMTBweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtbWV0YS1pdGVtIHsKICAgIGZvbnQtc2l6ZTogMTIuNXB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS40ICFpbXBvcnRhbnQ7CiAgfQoKICAvKiBNYWluIGNvbnRlbnQgKi8KICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1sYXlvdXQgewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAwIDE2cHggIWltcG9ydGFudDsKICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zaWRlYmFyIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWNvbnRlbnQgewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgcGFkZGluZzogMzJweCAwIDU4cHggIWltcG9ydGFudDsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24gewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50OwogICAgbWFyZ2luLWJvdHRvbTogMThweCAhaW1wb3J0YW50OwogICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi1oZWFkZXIgewogICAgcGFkZGluZzogMThweCAxNnB4ICFpbXBvcnRhbnQ7CiAgICBnYXA6IDEycHggIWltcG9ydGFudDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tbnVtYmVyIHsKICAgIHdpZHRoOiAzNHB4ICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDM0cHggIWltcG9ydGFudDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc2VjdGlvbi10aXRsZSB7CiAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zZWN0aW9uLXRvZ2dsZSB7CiAgICB3aWR0aDogMjhweCAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkgewogICAgcGFkZGluZzogMThweCAxNnB4IDIwcHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tYm9keSBwLAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNlY3Rpb24tYm9keSBsaSB7CiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zdWJoZWFkIHsKICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50OwogICAgbGluZS1oZWlnaHQ6IDEuMzUgIWltcG9ydGFudDsKICAgIG1hcmdpbi10b3A6IDIycHggIWltcG9ydGFudDsKICB9CgogIC8qIFNjcmVlbnNob3RzL3ZpZGVvcy9jYXJkcyAqLwogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QtYmxvY2sgewogICAgbWFyZ2luOiAyMHB4IDAgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QsCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc3R5bGUtY2FyZCB7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zY3JlZW5zaG90IGltZywKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zY3JlZW5zaG90IHZpZGVvLAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXN0eWxlLWNhcmQtbWVkaWEgaW1nIHsKICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3QtY2FwdGlvbiB7CiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ1ICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAwIDRweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc3R5bGUtZ3JpZCwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1leGFtcGxlLWdyaWQsCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtZXhhbXBsZS1ncmlkLmxpYnJhcnktZ3VpZGUtZml2ZS1ncmlkIHsKICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7CiAgICBnYXA6IDE2cHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXN0eWxlLWNhcmQtYm9keSB7CiAgICBwYWRkaW5nOiAxNXB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zdHlsZS1jYXJkLXRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMTQuNXB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zdHlsZS1jYXJkLWNvcHkgewogICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS41NSAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtY2hpcC1yb3cgewogICAgZ2FwOiA2cHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWNoaXAgewogICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50OwogIH0KCiAgLyogVGFibGVzICovCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtdGFibGUtd3JhcCB7CiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdy14OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2ggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXRhYmxlIHsKICAgIG1pbi13aWR0aDogNTIwcHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXRhYmxlIHRoLAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXRhYmxlIHRkIHsKICAgIHBhZGRpbmc6IDEzcHggMTRweCAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgfQoKICAvKiBDYWxsb3V0cyAqLwogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWNhbGxvdXQgewogICAgZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAxNXB4ICFpbXBvcnRhbnQ7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDEzLjVweCAhaW1wb3J0YW50OwogICAgbGluZS1oZWlnaHQ6IDEuNiAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtY2FsbG91dCA+IHN2ZyB7CiAgICB3aWR0aDogMjFweCAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyMXB4ICFpbXBvcnRhbnQ7CiAgICBtaW4td2lkdGg6IDIxcHggIWltcG9ydGFudDsKICAgIGZsZXg6IDAgMCAyMXB4ICFpbXBvcnRhbnQ7CiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgbWFyZ2luLXRvcDogMnB4ICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogIH0KCiAgLyogUmVsYXRlZCBndWlkZSBjYXJkcyAqLwogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQtc3RhY2sgewogICAgZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1yZWxhdGVkIHsKICAgIHBhZGRpbmc6IDE1cHggIWltcG9ydGFudDsKICAgIGdhcDogMTJweCAhaW1wb3J0YW50OwogICAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtcmVsYXRlZC1pY29uIHsKICAgIHdpZHRoOiA0MnB4ICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDQycHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQtbGFiZWwgewogICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1yZWxhdGVkLXRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMTMuNXB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMS4zNSAhaW1wb3J0YW50OwogIH0KCiAgLyogQm90dG9tIENUQSAqLwogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWZvb3RlciB7CiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBib3JkZXItcmFkaXVzOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAzMHB4IDIycHggIWltcG9ydGFudDsKICAgIG1hcmdpbi10b3A6IDI2cHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWZvb3Rlci10aXRsZSB7CiAgICBmb250LXNpemU6IDI0cHggIWltcG9ydGFudDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1mb290ZXIgcCB7CiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgIGxpbmUtaGVpZ2h0OiAxLjYgIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJ1dHRvbnMgewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7CiAgICBnYXA6IDEycHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLWJ0biB7CiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50OwogIH0KCiAgLyogTGlnaHRib3ggKi8KICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3ggewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgcGFkZGluZzogMThweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLWxpZ2h0Ym94IGltZywKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3ggdmlkZW8gewogICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICBtYXgtaGVpZ2h0OiA4MnZoICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtbGlnaHRib3gtY2xvc2UgewogICAgdG9wOiAxNHB4ICFpbXBvcnRhbnQ7CiAgICByaWdodDogMTRweCAhaW1wb3J0YW50OwogICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDsKICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50OwogIH0KfQoKQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7CiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtaGVhZGVyLWlubmVyIHsKICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtbGF5b3V0IHsKICAgIHBhZGRpbmctbGVmdDogMTRweCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1yaWdodDogMTRweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtdGl0bGUgewogICAgZm9udC1zaXplOiBjbGFtcCgxLjlyZW0sIDh2dywgMi4yNXJlbSkgIWltcG9ydGFudDsKICB9Cn0KCi8qIFByZXZlbnQgc3RpY2t5IGhvdmVyIGVmZmVjdHMgb24gcGhvbmVzICovCkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkgYW5kIChob3Zlcjogbm9uZSkgewogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXJlbGF0ZWQ6aG92ZXIsCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtYnRuOmhvdmVyLAogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1wYWdlIC5saWJyYXJ5LWd1aWRlLXNjcmVlbnNob3Q6aG92ZXIsCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLXBhZ2UgLmxpYnJhcnktZ3VpZGUtc3R5bGUtY2FyZDpob3ZlciwKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtcGFnZSAubGlicmFyeS1ndWlkZS1zZWN0aW9uOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogIH0KfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBMaWJyYXJ5IEd1aWRlIENvbXBhc3MgRGlzY292ZXJ5IEJveAogICBVbmlxdWUgY3Jvc3MtcHJvbW8gY2FsbG91dCBmb3IgQ0FSTCBDb21wYXNzCiAgIFBhc3RlIG5lYXIgdGhlIHZlcnkgYm90dG9tIG9mIHRoZSBzdHlsZSBibG9jay4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgpodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtY29tcGFzcy1ib3ggewogIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OwogIGdhcDogMThweCAhaW1wb3J0YW50OwogIG1hcmdpbjogMjRweCAwICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMjRweCAyNnB4ICFpbXBvcnRhbnQ7CiAgYm9yZGVyLXJhZGl1czogMThweCAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNBN0UyN0UgMCUsICNDN0VFOTcgMTAwJSkgIWltcG9ydGFudDsKICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDkwLCAxNTgsIDEyMCwgMC4yMikgIWltcG9ydGFudDsKICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoOTAsIDE1OCwgMTIwLCAwLjEwKSAhaW1wb3J0YW50OwogIGNvbG9yOiAjMjE0QTI0ICFpbXBvcnRhbnQ7Cn0KCmh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLWljb24gewogIHdpZHRoOiA0NnB4ICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiA0NnB4ICFpbXBvcnRhbnQ7CiAgbWluLXdpZHRoOiA0NnB4ICFpbXBvcnRhbnQ7CiAgYm9yZGVyLXJhZGl1czogMTRweCAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41OCkgIWltcG9ydGFudDsKICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgY29sb3I6ICMyMTRBMjQgIWltcG9ydGFudDsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KSAhaW1wb3J0YW50Owp9CgpodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtY29tcGFzcy1pY29uIHN2ZyB7CiAgd2lkdGg6IDI0cHggIWltcG9ydGFudDsKICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDsKICBmbGV4OiAwIDAgMjRweCAhaW1wb3J0YW50OwogIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7Cn0KCmh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLWNvbnRlbnQgewogIGZsZXg6IDEgIWltcG9ydGFudDsKICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDsKfQoKaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLWNvbXBhc3MtbGFiZWwgewogIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4ICFpbXBvcnRhbnQ7CiAgY29sb3I6IHJnYmEoMzMsIDc0LCAzNiwgMC43MikgIWltcG9ydGFudDsKICBtYXJnaW46IDAgMCA1cHggIWltcG9ydGFudDsKfQoKaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLWNvbXBhc3MtdGl0bGUgewogIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjM1ICFpbXBvcnRhbnQ7CiAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogIGNvbG9yOiAjMjE0QTI0ICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwIDAgOHB4ICFpbXBvcnRhbnQ7Cn0KCmh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLWNvbnRlbnQgcCB7CiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEuNjUgIWltcG9ydGFudDsKICBjb2xvcjogIzMyNUQzNSAhaW1wb3J0YW50OwogIG1hcmdpbjogMCAwIDE2cHggIWltcG9ydGFudDsKfQoKaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLWNvbXBhc3MtY29udGVudCBzdHJvbmcgewogIGNvbG9yOiAjMjE0QTI0ICFpbXBvcnRhbnQ7CiAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50Owp9CgpodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtY29tcGFzcy1idG4gewogIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgZ2FwOiA4cHggIWltcG9ydGFudDsKICBwYWRkaW5nOiAxMXB4IDE4cHggIWltcG9ydGFudDsKICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDsKICBjb2xvcjogIzIxNEEyNCAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDMzLCA3NCwgMzYsIDAuMTApICFpbXBvcnRhbnQ7CiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDQ2LCA5NCwgNDMsIDAuMTApICFpbXBvcnRhbnQ7CiAgdHJhbnNpdGlvbjoKICAgIHRyYW5zZm9ybSA4NTBtcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwKICAgIGJveC1zaGFkb3cgODUwbXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSksCiAgICBiYWNrZ3JvdW5kLWNvbG9yIDg1MG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQ7Cn0KCmh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLWJ0bjpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpICFpbXBvcnRhbnQ7CiAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDQ2LCA5NCwgNDMsIDAuMTQpICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKSAhaW1wb3J0YW50OwogIGNvbG9yOiAjMjE0QTI0ICFpbXBvcnRhbnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCmh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLWJ0biBzdmcgewogIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7CiAgZmxleDogMCAwIDE2cHggIWltcG9ydGFudDsKfQoKLyogTW9iaWxlIHNwYWNpbmcgZm9yIENvbXBhc3MgZGlzY292ZXJ5IGJveCAqLwpAbWVkaWEgKG1heC13aWR0aDogNzYwcHgpIHsKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtY29tcGFzcy1ib3ggewogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgIHBhZGRpbmc6IDIwcHggMThweCAhaW1wb3J0YW50OwogICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLWNvbXBhc3MtaWNvbiB7CiAgICB3aWR0aDogNDJweCAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiA0MnB4ICFpbXBvcnRhbnQ7CiAgICBtaW4td2lkdGg6IDQycHggIWltcG9ydGFudDsKICAgIG1hcmdpbi1ib3R0b206IDEycHggIWltcG9ydGFudDsKICB9CgogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLXRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OwogIH0KCiAgaHRtbCBib2R5IC5saWJyYXJ5LWd1aWRlLWNvbXBhc3MtY29udGVudCBwIHsKICAgIGZvbnQtc2l6ZTogMTMuNXB4ICFpbXBvcnRhbnQ7CiAgfQoKICBodG1sIGJvZHkgLmxpYnJhcnktZ3VpZGUtY29tcGFzcy1idG4gewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgIG1pbi1oZWlnaHQ6IDQ0cHggIWltcG9ydGFudDsKICB9Cn0KCkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkgYW5kIChob3Zlcjogbm9uZSkgewogIGh0bWwgYm9keSAubGlicmFyeS1ndWlkZS1jb21wYXNzLWJ0bjpob3ZlciB7CiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1jb21wYXNzLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQ09NUEFTUy1Db21wYXNzLTQuc3ZnIiBhbHQ9IiI+CjwvZGl2PgoKPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcGFnZSIgaWQ9ImxpYnJhcnlHdWlkZVBhZ2UiPgogIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcHJvZ3Jlc3MiIGlkPSJsaWJyYXJ5R3VpZGVQcm9ncmVzcyI+PC9kaXY+CgogIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtbGlnaHRib3giIGlkPSJsaWJyYXJ5R3VpZGVMaWdodGJveCIgb25jbGljaz0ibGlicmFyeUd1aWRlQ2xvc2VMaWdodGJveCgpIj4KICAgIDxidXR0b24gY2xhc3M9ImxpYnJhcnktZ3VpZGUtbGlnaHRib3gtY2xvc2UiIG9uY2xpY2s9ImxpYnJhcnlHdWlkZUNsb3NlTGlnaHRib3goKSIgYXJpYS1sYWJlbD0iQ2xvc2UgcHJldmlldyI+CiAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PC9zdmc+CiAgICA8L2J1dHRvbj4KICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtbGlnaHRib3gtY29udGVudCIgaWQ9ImxpYnJhcnlHdWlkZUxpZ2h0Ym94Q29udGVudCI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtaGVhZGVyIj4KICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtaGVhZGVyLWlubmVyIj4KICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1icmVhZGNydW1icyIgYXJpYS1sYWJlbD0iQnJlYWRjcnVtYiI+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvIj5Ib21lPC9hPgogICAgICAgIDxzcGFuIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICA8YSBocmVmPSJodHRwczovL2hpY2FybC5haS9sZWFybi1zdXBwb3J0LyI+TGVhcm4gJiBTdXBwb3J0PC9hPgogICAgICAgIDxzcGFuIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlcGFyYXRvciI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS1jdXJyZW50Ij5GaW5kaW5nICYgVXNpbmcgRXhpc3RpbmcgTGVzc29uczwvc3Bhbj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWJhZGdlcyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxpYnJhcnktZ3VpZGUtYmFkZ2UgbGlicmFyeS1ndWlkZS1jYXRlZ29yeSI+TGlicmFyeSAmIENvbGxhYm9yYXRpb248L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxpYnJhcnktZ3VpZGUtYmFkZ2UgbGlicmFyeS1ndWlkZS10eXBlIj5GdWxsIEd1aWRlPC9zcGFuPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjEiPkZpbmRpbmcgJiBVc2luZyBFeGlzdGluZyBMZXNzb25zPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWRlc2NyaXB0aW9uIj5MZWFybiBob3cgdG8gc2VhcmNoIENBUkzigJlzIExpYnJhcnksIG9wZW4gbGVzc29uIGRldGFpbHMsIHNhdmUgbGVzc29ucyBmb3IgbGF0ZXIsIHJlbWl4IGxlc3NvbnMgZm9yIHlvdXIgb3duIGNsYXNzcm9vbSwgYW5kIGRvd25sb2FkIGF2YWlsYWJsZSBtYXRlcmlhbHMuPC9wPgoKICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1tZXRhIj4KICAgICAgICA8c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS1tZXRhLWl0ZW0iPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxwb2x5bGluZSBwb2ludHM9IjEyIDYgMTIgMTIgMTYgMTQiLz48L3N2Zz4gNeKAkzYgbWluIHJlYWQ8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxpYnJhcnktZ3VpZGUtbWV0YS1pdGVtIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIvPjxwYXRoIGQ9Ik0zIDloMTgiLz48L3N2Zz4gOCBzZWN0aW9uczwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS1tZXRhLWl0ZW0iPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEgMi4xIDAgMCAxIDMgM0w3IDE5bC00IDEgMS00IDEyLjUtMTIuNXoiLz48L3N2Zz4gVXBkYXRlZCBmb3IgdGhlIGN1cnJlbnQgTGlicmFyeSB2aWV3PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWxheW91dCI+CiAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNpZGViYXIiPgogICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYyIgYXJpYS1sYWJlbD0iT24gdGhpcyBwYWdlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1oZWFkZXIiPk9uIHRoaXMgcGFnZTwvZGl2PgogICAgICAgIDx1bCBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbGlzdCI+CiAgICAgICAgICA8bGk+PGEgY2xhc3M9ImxpYnJhcnktZ3VpZGUtdG9jLWxpbmsgbGlicmFyeS1ndWlkZS1hY3RpdmUiIGhyZWY9IiN3aGF0LWlzLWxpYnJhcnkiPjxzcGFuIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1udW1iZXIiPjE8L3NwYW4+PHNwYW4+V2hhdCBpcyB0aGUgTGlicmFyeT88L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICA8bGk+PGEgY2xhc3M9ImxpYnJhcnktZ3VpZGUtdG9jLWxpbmsiIGhyZWY9IiNzZWFyY2gtZmlsdGVyIj48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbnVtYmVyIj4yPC9zcGFuPjxzcGFuPlNlYXJjaCAmIEZpbHRlcjwvc3Bhbj48L2E+PC9saT4KICAgICAgICAgIDxsaT48YSBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbGluayIgaHJlZj0iI2xlc3Nvbi1kZXRhaWxzIj48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbnVtYmVyIj4zPC9zcGFuPjxzcGFuPkxlc3NvbiBEZXRhaWxzPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1saW5rIiBocmVmPSIjc2F2ZS1sZXNzb24iPjxzcGFuIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1udW1iZXIiPjQ8L3NwYW4+PHNwYW4+U2F2ZSB0byBMaWJyYXJ5PC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1saW5rIiBocmVmPSIjcmVtaXgtbGVzc29uIj48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbnVtYmVyIj41PC9zcGFuPjxzcGFuPlJlbWl4IGEgTGVzc29uPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1saW5rIiBocmVmPSIjZG93bmxvYWQtZXhwb3J0Ij48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbnVtYmVyIj42PC9zcGFuPjxzcGFuPkRvd25sb2FkICYgRXhwb3J0PC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1saW5rIiBocmVmPSIjY3VycmljdWx1bS10cmFja2luZyI+PHNwYW4gY2xhc3M9ImxpYnJhcnktZ3VpZGUtdG9jLW51bWJlciI+Nzwvc3Bhbj48c3Bhbj5DdXJyaWN1bHVtIFRyYWNraW5nPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRvYy1saW5rIiBocmVmPSIjcXVpY2stcmVmZXJlbmNlIj48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS10b2MtbnVtYmVyIj44PC9zcGFuPjxzcGFuPlF1aWNrIFJlZmVyZW5jZTwvc3Bhbj48L2E+PC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtY29udGVudCI+CgogICAgICA8IS0tIDEgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbiIgaWQ9IndoYXQtaXMtbGlicmFyeSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLWhlYWRlciIgb25jbGljaz0ibGlicmFyeUd1aWRlVG9nZ2xlU2VjdGlvbih0aGlzLmNsb3Nlc3QoJy5saWJyYXJ5LWd1aWRlLXNlY3Rpb24nKSkiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLW51bWJlciI+MTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLXRpdGxlIiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIyIj5XaGF0IGlzIHRoZSBMaWJyYXJ5PzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLXRvZ2dsZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1ib2R5Ij4KICAgICAgICAgIDxwPlRoZSA8c3Ryb25nPkxpYnJhcnk8L3N0cm9uZz4gaXMgd2hlcmUgeW91IGNhbiBkaXNjb3ZlciBsZXNzb25zLCBhY3Rpdml0aWVzLCBhbmQgcmVzb3VyY2VzIGNyZWF0ZWQgYnkgZWR1Y2F0b3JzLiBZb3UgY2FuIHNlYXJjaCBieSBzdWJqZWN0LCBncmFkZSwgdG9waWMsIGN1cnJpY3VsdW0sIHBlZGFnb2d5LCBhY2Nlc3NpYmlsaXR5IHRhZ3MsIGFuZCBvdGhlciBmaWx0ZXJzLjwvcD4KICAgICAgICAgIDxwPlVzZSB0aGUgTGlicmFyeSB3aGVuIHlvdSB3YW50IHRvIGZpbmQgYW4gZXhpc3RpbmcgbGVzc29uIGluc3RlYWQgb2Ygc3RhcnRpbmcgZnJvbSBzY3JhdGNoLCBleHBsb3JlIGlkZWFzIGZyb20gb3RoZXIgZWR1Y2F0b3JzLCBzYXZlIGEgbGVzc29uIGZvciBsYXRlciwgcmVtaXggYSBsZXNzb24gZm9yIHlvdXIgb3duIGNsYXNzLCBvciByZXZpZXcgYXZhaWxhYmxlIGxlc3NvbiBtYXRlcmlhbHMuPC9wPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdC1ibG9jayI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgZGF0YS1saWdodGJveC10eXBlPSJpbWFnZSIgZGF0YS1saWdodGJveC1zcmM9Imh0dHBzOi8vaGljYXJsLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2V4cGxvcmUtbGlicmFyeS1wYWdlLWZpbHRlcnMucG5nIiBkYXRhLWxpZ2h0Ym94LWFsdD0iQ0FSTCBMaWJyYXJ5IHBhZ2Ugc2hvd2luZyBzZWFyY2gsIGZpbHRlcnMsIHNvcnQgb3B0aW9ucywgYW5kIGxlc3NvbiBjYXJkcyI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaGljYXJsLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2V4cGxvcmUtbGlicmFyeS1wYWdlLWZpbHRlcnMucG5nIiBhbHQ9IkNBUkwgTGlicmFyeSBwYWdlIHNob3dpbmcgc2VhcmNoLCBmaWx0ZXJzLCBzb3J0IG9wdGlvbnMsIGFuZCBsZXNzb24gY2FyZHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdC1vdmVybGF5Ij48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS16b29tLWhpbnQiPkNsaWNrIHRvIGVubGFyZ2U8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0ibGlicmFyeS1ndWlkZS1zY3JlZW5zaG90LWNhcHRpb24iPlVzZSB0aGUgTGlicmFyeSBwYWdlIHRvIHNlYXJjaCwgZmlsdGVyLCBzb3J0LCBhbmQgYnJvd3NlIGV4aXN0aW5nIGxlc3NvbnMgYW5kIHJlc291cmNlcy48L3A+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNhbGxvdXQgbGlicmFyeS1ndWlkZS10aXAiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOSAxOGg2Ij48L3BhdGg+PHBhdGggZD0iTTEwIDIyaDQiPjwvcGF0aD48cGF0aCBkPSJNOC41IDE0LjVBNiA2IDAgMSAxIDE1LjUgMTQuNWMtLjkuNy0xLjUgMS43LTEuNSAyLjVoLTRjMC0uOC0uNi0xLjgtMS41LTIuNXoiPjwvcGF0aD48L3N2Zz4KICAgICAgICAgICAgPGRpdj48c3Ryb25nPkdvb2QgdG8ga25vdzwvc3Ryb25nPiBUaGUgTGlicmFyeSBpcyB1c2VmdWwgZXZlbiB3aGVuIHlvdSBwbGFuIHRvIGJ1aWxkIHlvdXIgb3duIGxlc3Nvbi4gU29tZXRpbWVzIHRoZSBmYXN0ZXN0IHBhdGggaXMgdG8gZmluZCBhIHN0cm9uZyBzdGFydGluZyBwb2ludCwgc2F2ZSBpdCwgdGhlbiBjcmVhdGUgYSByZW1peCBmb3IgeW91ciBvd24gY2xhc3Nyb29tIGNvbnRleHQuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIDIgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbiIgaWQ9InNlYXJjaC1maWx0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1oZWFkZXIiIG9uY2xpY2s9ImxpYnJhcnlHdWlkZVRvZ2dsZVNlY3Rpb24odGhpcy5jbG9zZXN0KCcubGlicmFyeS1ndWlkZS1zZWN0aW9uJykpIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1udW1iZXIiPjI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi10aXRsZSIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMiI+U2VhcmNoIGFuZCBmaWx0ZXIgbGVzc29uczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLXRvZ2dsZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1ib2R5Ij4KICAgICAgICAgIDxwPkF0IHRoZSB0b3Agb2YgdGhlIExpYnJhcnkgcGFnZSwgdXNlIHRoZSBzZWFyY2ggYmFyIHRvIGxvb2sgZm9yIGEgc3ViamVjdCwgZ3JhZGUsIHRvcGljLCB0aGVtZSwgb3Iga2V5d29yZC4gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZWFyY2ggZm9yIDxzdHJvbmc+R3JhZGUgNSBNYXRoPC9zdHJvbmc+LCA8c3Ryb25nPmNsaW1hdGUgY2hhbmdlPC9zdHJvbmc+LCA8c3Ryb25nPnBvZXRyeTwvc3Ryb25nPiwgPHN0cm9uZz5mcmFjdGlvbnM8L3N0cm9uZz4sIDxzdHJvbmc+ZWNvc3lzdGVtczwvc3Ryb25nPiwgb3IgPHN0cm9uZz5zb2NpYWwgc3R1ZGllcyBpbnF1aXJ5PC9zdHJvbmc+LjwvcD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXN1YmhlYWQiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPkJhc2ljIHdvcmtmbG93PC9kaXY+CiAgICAgICAgICA8b2w+CiAgICAgICAgICAgIDxsaT5PcGVuIHRoZSA8c3Ryb25nPkxpYnJhcnk8L3N0cm9uZz4uPC9saT4KICAgICAgICAgICAgPGxpPlR5cGUgYSBrZXl3b3JkLCBncmFkZSwgc3ViamVjdCwgb3IgdG9waWMgaW4gdGhlIHNlYXJjaCBiYXIuPC9saT4KICAgICAgICAgICAgPGxpPlVzZSB0aGUgZmlsdGVyIHBhbmVsIHRvIG5hcnJvdyB5b3VyIHJlc3VsdHMuPC9saT4KICAgICAgICAgICAgPGxpPlNvcnQgcmVzdWx0cyBpZiBuZWVkZWQuPC9saT4KICAgICAgICAgICAgPGxpPk9wZW4gYSBsZXNzb24gY2FyZCB0aGF0IGxvb2tzIHVzZWZ1bC48L2xpPgogICAgICAgICAgPC9vbD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRhYmxlLXdyYXAiPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9ImxpYnJhcnktZ3VpZGUtdGFibGUiPgogICAgICAgICAgICAgIDx0aGVhZD48dHI+PHRoPkZpbHRlcjwvdGg+PHRoPldoYXQgaXQgaGVscHMgd2l0aDwvdGg+PC90cj48L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5DdXJyaWN1bHVtPC9zdHJvbmc+PC90ZD48dGQ+RmluZHMgbGVzc29ucyBjb25uZWN0ZWQgdG8gYSBjdXJyaWN1bHVtIGZyYW1ld29yaywgc3VjaCBhcyBCQywgQWxiZXJ0YSwgT250YXJpbywgb3IgVW5pdmVyc2FsIEN1cnJpY3VsdW0uPC90ZD48L3RyPgogICAgICAgICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPkdyYWRlIExldmVsPC9zdHJvbmc+PC90ZD48dGQ+TmFycm93cyB0aGUgTGlicmFyeSB0byBsZXNzb25zIGZvciBhIHNwZWNpZmljIGdyYWRlIG9yIGdyYWRlIHJhbmdlLjwvdGQ+PC90cj4KICAgICAgICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+PC90ZD48dGQ+SGVscHMgeW91IGZpbmQgbGVzc29ucyBpbiBhIHNwZWNpZmljIHN1YmplY3QgYXJlYS48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+VG9waWM8L3N0cm9uZz48L3RkPjx0ZD5OYXJyb3dzIHJlc3VsdHMgYnkgbGVzc29uIHRoZW1lIG9yIGNvbnRlbnQgZm9jdXMuPC90ZD48L3RyPgogICAgICAgICAgICAgICAgPHRyPjx0ZD48c3Ryb25nPlBlZGFnb2d5PC9zdHJvbmc+PC90ZD48dGQ+SGVscHMgaWRlbnRpZnkgbGVzc29ucyBjb25uZWN0ZWQgdG8gYXBwcm9hY2hlcyBzdWNoIGFzIFVETCwgaW5xdWlyeSwgb3Igb3RoZXIgdGVhY2hpbmcgbGVuc2VzLjwvdGQ+PC90cj4KICAgICAgICAgICAgICAgIDx0cj48dGQ+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5PC9zdHJvbmc+PC90ZD48dGQ+SGVscHMgZmluZCBsZXNzb25zIHdpdGggYWNjZXNzaWJpbGl0eS1yZWxhdGVkIHN1cHBvcnRzIG9yIHRhZ3MuPC90ZD48L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNhbGxvdXQgbGlicmFyeS1ndWlkZS1ub3RlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOSI+PC9jaXJjbGU+PGxpbmUgeDE9IjEyIiB5MT0iMTEiIHgyPSIxMiIgeTI9IjE2Ij48L2xpbmU+PGNpcmNsZSBjeD0iMTIiIGN5PSI4IiByPSIxLjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIj48L2NpcmNsZT48L3N2Zz4KICAgICAgICAgICAgPGRpdj48c3Ryb25nPkRpc2NvdmVyYWJpbGl0eSB3aWxsIGtlZXAgaW1wcm92aW5nPC9zdHJvbmc+IEFzIHRoZSBDQVJMIExpYnJhcnkgZ3Jvd3MsIHdlIHdpbGwgY29udGludWUgYWRkaW5nIG1vcmUgc2VhcmNoIGFuZCBmaWx0ZXIgb3B0aW9ucyB0byBtYWtlIGxlc3NvbnMgZWFzaWVyIHRvIGZpbmQuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIDMgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbiIgaWQ9Imxlc3Nvbi1kZXRhaWxzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyIiBvbmNsaWNrPSJsaWJyYXJ5R3VpZGVUb2dnbGVTZWN0aW9uKHRoaXMuY2xvc2VzdCgnLmxpYnJhcnktZ3VpZGUtc2VjdGlvbicpKSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tbnVtYmVyIj4zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjIiPk9wZW4gYSBsZXNzb24gZGV0YWlscyBwYWdlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdG9nZ2xlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+PC9zdmc+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkiPgogICAgICAgICAgPHA+V2hlbiB5b3UgY2xpY2sgYSBsZXNzb24gY2FyZCwgQ0FSTCBvcGVucyB0aGUgbGVzc29uIGRldGFpbHMgcGFnZS4gVGhpcyBwYWdlIGdpdmVzIHlvdSBtb3JlIGluZm9ybWF0aW9uIGJlZm9yZSB5b3UgZGVjaWRlIHdoZXRoZXIgdG8gc2F2ZSwgcmVtaXgsIGRvd25sb2FkLCBvciB1c2UgdGhlIGxlc3Nvbi48L3A+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zY3JlZW5zaG90LWJsb2NrIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zY3JlZW5zaG90IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBkYXRhLWxpZ2h0Ym94LXR5cGU9ImltYWdlIiBkYXRhLWxpZ2h0Ym94LXNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvc2F2ZS10by1saWJyYXJ5LnBuZyIgZGF0YS1saWdodGJveC1hbHQ9IkNBUkwgbGVzc29uIGRldGFpbHMgcGFnZSBzaG93aW5nIFNhdmUgdG8gTGlicmFyeSwgUmVtaXgsIGxlc3NvbiB0YWJzLCBhbmQgZG93bmxvYWRzIGFyZWEiPgogICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9zYXZlLXRvLWxpYnJhcnkucG5nIiBhbHQ9IkNBUkwgbGVzc29uIGRldGFpbHMgcGFnZSBzaG93aW5nIFNhdmUgdG8gTGlicmFyeSwgUmVtaXgsIGxlc3NvbiB0YWJzLCBhbmQgZG93bmxvYWRzIGFyZWEiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdC1vdmVybGF5Ij48c3BhbiBjbGFzcz0ibGlicmFyeS1ndWlkZS16b29tLWhpbnQiPkNsaWNrIHRvIGVubGFyZ2U8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0ibGlicmFyeS1ndWlkZS1zY3JlZW5zaG90LWNhcHRpb24iPlRoZSBsZXNzb24gZGV0YWlscyBwYWdlIGxldHMgeW91IHJldmlldyBhIGxlc3NvbiBiZWZvcmUgc2F2aW5nLCByZW1peGluZywgb3IgZG93bmxvYWRpbmcgaXQuPC9wPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zdWJoZWFkIiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIj5PbiB0aGUgbGVzc29uIGRldGFpbHMgcGFnZSwgeW91IG1heSBzZWU6PC9kaXY+CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT50aGUgbGVzc29uIHRpdGxlLCBkZXNjcmlwdGlvbiwgYXV0aG9yIGluZm9ybWF0aW9uLCBncmFkZSwgc3ViamVjdCwgZHVyYXRpb24sIGFuZCB0YWdzLDwvbGk+CiAgICAgICAgICAgIDxsaT5hIGxlc3NvbiBzbmFwc2hvdCBhbmQgdGhlIG1haW4gbGVzc29uIHBsYW4gdGFiLDwvbGk+CiAgICAgICAgICAgIDxsaT5jb21wb25lbnRzLCB0YWdzLCBjb250cmlidXRpb25zLCByZW1peGVzLCBkaXNjdXNzaW9uLCBhbmQgcmF0aW5nIGluZm9ybWF0aW9uLDwvbGk+CiAgICAgICAgICAgIDxsaT5kb3dubG9hZHMgYW5kIGV4cG9ydCBvcHRpb25zLDwvbGk+CiAgICAgICAgICAgIDxsaT5zYXZlIGFuZCByZW1peCBhY3Rpb25zLjwvbGk+CiAgICAgICAgICA8L3VsPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtY2FsbG91dCBsaWJyYXJ5LWd1aWRlLXRpcCI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDE4aDYiPjwvcGF0aD48cGF0aCBkPSJNMTAgMjJoNCI+PC9wYXRoPjxwYXRoIGQ9Ik04LjUgMTQuNUE2IDYgMCAxIDEgMTUuNSAxNC41Yy0uOS43LTEuNSAxLjctMS41IDIuNWgtNGMwLS44LS42LTEuOC0xLjUtMi41eiI+PC9wYXRoPjwvc3ZnPgogICAgICAgICAgICA8ZGl2PjxzdHJvbmc+UmV2aWV3IGJlZm9yZSBzYXZpbmcgb3IgcmVtaXhpbmc8L3N0cm9uZz4gQ2hlY2sgdGhlIG92ZXJ2aWV3LCBsZXNzb24gcGxhbiwgY29tcG9uZW50cywgYW5kIGRvd25sb2FkcyBiZWZvcmUgZGVjaWRpbmcgd2hhdCB5b3Ugd2FudCB0byBkbyB3aXRoIHRoZSBsZXNzb24uPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIDQgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbiIgaWQ9InNhdmUtbGVzc29uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyIiBvbmNsaWNrPSJsaWJyYXJ5R3VpZGVUb2dnbGVTZWN0aW9uKHRoaXMuY2xvc2VzdCgnLmxpYnJhcnktZ3VpZGUtc2VjdGlvbicpKSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tbnVtYmVyIj40PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjIiPlNhdmUgYSBsZXNzb24gdG8geW91ciBMaWJyYXJ5PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdG9nZ2xlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+PC9zdmc+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkiPgogICAgICAgICAgPHA+VXNlIDxzdHJvbmc+U2F2ZSB0byBMaWJyYXJ5PC9zdHJvbmc+IHdoZW4geW91IHdhbnQgdG8ga2VlcCBhIGxlc3NvbiBzbyB5b3UgY2FuIGZpbmQgaXQgYWdhaW4gbGF0ZXIuIFNhdmluZyBpcyBoZWxwZnVsIHdoZW4geW91IGFyZSBjb2xsZWN0aW5nIGlkZWFzLCBwbGFubmluZyBhIHVuaXQsIHJldmlld2luZyBvcHRpb25zLCBvciBrZWVwaW5nIGEgbGVzc29uIHlvdSBtYXkgd2FudCB0byByZXVzZSBhcy1pcy48L3A+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1jYWxsb3V0IGxpYnJhcnktZ3VpZGUtbm90ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiPjwvY2lyY2xlPjxsaW5lIHgxPSIxMiIgeTE9IjExIiB4Mj0iMTIiIHkyPSIxNiI+PC9saW5lPjxjaXJjbGUgY3g9IjEyIiBjeT0iOCIgcj0iMS4yIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSI+PC9jaXJjbGU+PC9zdmc+CiAgICAgICAgICAgIDxkaXY+PHN0cm9uZz5XaGF0IGhhcHBlbnMgd2hlbiB5b3Ugc2F2ZT88L3N0cm9uZz4gV2hlbiB5b3Ugc2F2ZSBhIGxlc3NvbiB0byB5b3VyIExpYnJhcnksIENBUkwgcHJvdGVjdHMgdGhlIHZlcnNpb24geW91IHNhdmVkIHNvIGl0IGRvZXMgbm90IHJhbmRvbWx5IGNoYW5nZSBsYXRlciBpZiB0aGUgb3JpZ2luYWwgbGVzc29uIGlzIHVwZGF0ZWQuIFRoaXMgZ2l2ZXMgeW91IGEgc3RhYmxlIGNvcHkgdG8gY29tZSBiYWNrIHRvLjwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPHA+WW91IGNhbiBhbHdheXMgb3BlbiB0aGUgb3JpZ2luYWwgbGVzc29uIGFnYWluIGxhdGVyIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGF1dGhvciBoYXMgYWRkZWQgdXBkYXRlcywgcmVtaXhlcywgb3IgY29udHJpYnV0aW9ucy48L3A+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS10YWJsZS13cmFwIj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXRhYmxlIj4KICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aD5BY3Rpb248L3RoPjx0aD5XaGF0IGl0IG1lYW5zPC90aD48dGg+VXNlIGl0IHdoZW4uLi48L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+U2F2ZSB0byBMaWJyYXJ5PC9zdHJvbmc+PC90ZD48dGQ+S2VlcHMgYSBzdGFibGUgdmVyc2lvbiBvZiB0aGUgbGVzc29uIGZvciBsYXRlci48L3RkPjx0ZD5Zb3Ugd2FudCB0byBib29rbWFyaywgcmV2aWV3LCBkb3dubG9hZCwgb3IgcmV1c2UgdGhlIGxlc3NvbiBhcy1pcy48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPjxzdHJvbmc+UmVtaXg8L3N0cm9uZz48L3RkPjx0ZD5DcmVhdGVzIHlvdXIgb3duIGVkaXRhYmxlIHZlcnNpb24gb2YgdGhlIGxlc3Nvbi48L3RkPjx0ZD5Zb3Ugd2FudCB0byBjaGFuZ2UgdGhlIGxlc3NvbiBmb3IgeW91ciBvd24gY2xhc3MuPC90ZD48L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNhbGxvdXQgbGlicmFyeS1ndWlkZS10aXAiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOSAxOGg2Ij48L3BhdGg+PHBhdGggZD0iTTEwIDIyaDQiPjwvcGF0aD48cGF0aCBkPSJNOC41IDE0LjVBNiA2IDAgMSAxIDE1LjUgMTQuNWMtLjkuNy0xLjUgMS43LTEuNSAyLjVoLTRjMC0uOC0uNi0xLjgtMS41LTIuNXoiPjwvcGF0aD48L3N2Zz4KICAgICAgICAgICAgPGRpdj48c3Ryb25nPkJlc3QgZGVmYXVsdDwvc3Ryb25nPiBTYXZlIGZpcnN0IGlmIHlvdSBhcmUgbm90IHN1cmUgeWV0LiBSZW1peCB3aGVuIHlvdSBrbm93IHlvdSB3YW50IHRvIG1ha2UgY2hhbmdlcy48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gNSAtLT4KICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uIiBpZD0icmVtaXgtbGVzc29uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyIiBvbmNsaWNrPSJsaWJyYXJ5R3VpZGVUb2dnbGVTZWN0aW9uKHRoaXMuY2xvc2VzdCgnLmxpYnJhcnktZ3VpZGUtc2VjdGlvbicpKSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tbnVtYmVyIj41PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjIiPlJlbWl4IGEgbGVzc29uIHdoZW4geW91IHdhbnQgdG8gbWFrZSBjaGFuZ2VzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdG9nZ2xlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+PC9zdmc+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkiPgogICAgICAgICAgPHA+VXNlIDxzdHJvbmc+UmVtaXg8L3N0cm9uZz4gd2hlbiB5b3Ugd2FudCB5b3VyIG93biBlZGl0YWJsZSB2ZXJzaW9uIG9mIGEgbGVzc29uLiBSZW1peGluZyBwcm90ZWN0cyB0aGUgb3JpZ2luYWwgbGVzc29uIHdoaWxlIGdpdmluZyB5b3UgYSB2ZXJzaW9uIHlvdSBjYW4gYWRhcHQgZm9yIHlvdXIgb3duIGNsYXNzcm9vbS48L3A+CgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zdWJoZWFkIiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIj5BIHJlbWl4IGlzIGhlbHBmdWwgd2hlbjo8L2Rpdj4KICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPnRoZSBsZXNzb24gaXMgY2xvc2UsIGJ1dCBub3QgcXVpdGUgcmlnaHQgZm9yIHlvdXIgY2xhc3MsPC9saT4KICAgICAgICAgICAgPGxpPnlvdSB3YW50IHRvIGFkanVzdCBncmFkZSBsZXZlbCwgdGltaW5nLCBleGFtcGxlcywgb3IgYWN0aXZpdGllcyw8L2xpPgogICAgICAgICAgICA8bGk+eW91IHdhbnQgdG8gYWRhcHQgdGhlIGxlc3NvbiBmb3IgYSBkaWZmZXJlbnQgbGVhcm5lciBncm91cCw8L2xpPgogICAgICAgICAgICA8bGk+eW91IHdhbnQgdG8gYnVpbGQgZnJvbSBhbm90aGVyIGVkdWNhdG9y4oCZcyBpZGVhIHdpdGhvdXQgY2hhbmdpbmcgdGhlaXIgb3JpZ2luYWwgbGVzc29uLjwvbGk+CiAgICAgICAgICA8L3VsPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtdGFibGUtd3JhcCI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ibGlicmFyeS1ndWlkZS10YWJsZSI+CiAgICAgICAgICAgICAgPHRoZWFkPjx0cj48dGg+SWYgeW91IHdhbnQgdG8uLi48L3RoPjx0aD5DaG9vc2U8L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+PHRkPktlZXAgYSBsZXNzb24gZm9yIGxhdGVyPC90ZD48dGQ+PHN0cm9uZz5TYXZlIHRvIExpYnJhcnk8L3N0cm9uZz48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPkRvd25sb2FkIG9yIHJldmlldyB0aGUgbGVzc29uIGFzLWlzPC90ZD48dGQ+PHN0cm9uZz5TYXZlIHRvIExpYnJhcnk8L3N0cm9uZz48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPk1ha2UgeW91ciBvd24gZWRpdGFibGUgdmVyc2lvbjwvdGQ+PHRkPjxzdHJvbmc+UmVtaXg8L3N0cm9uZz48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPkNoYW5nZSBpbnN0cnVjdGlvbnMsIGFjdGl2aXRpZXMsIHRpbWluZywgb3IgbGVzc29uIHN0cnVjdHVyZTwvdGQ+PHRkPjxzdHJvbmc+UmVtaXg8L3N0cm9uZz48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPkFkYXB0IHRoZSBsZXNzb24gZm9yIHlvdXIgb3duIGNsYXNzIGNvbnRleHQ8L3RkPjx0ZD48c3Ryb25nPlJlbWl4PC9zdHJvbmc+PC90ZD48L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNhbGxvdXQgbGlicmFyeS1ndWlkZS13YXJuaW5nIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEyIDQuNSAyMCAxOC4yYTEgMSAwIDAgMS0uODcgMS41SDQuODdBMSAxIDAgMCAxIDQgMTguMkwxMiA0LjV6Ij48L3BhdGg+PGxpbmUgeDE9IjEyIiB5MT0iOS4yIiB4Mj0iMTIiIHkyPSIxNCI+PC9saW5lPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTciIHI9IjEuMDUiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIj48L2NpcmNsZT48L3N2Zz4KICAgICAgICAgICAgPGRpdj48c3Ryb25nPkRvIG5vdCBlZGl0IHNvbWVvbmUgZWxzZeKAmXMgb3JpZ2luYWwgbGVzc29uIGRpcmVjdGx5PC9zdHJvbmc+IElmIHlvdSB3YW50IHRvIGNoYW5nZSBhIGxlc3NvbiwgY3JlYXRlIGEgcmVtaXguIFRoYXQga2VlcHMgdGhlIG9yaWdpbmFsIGludGFjdCBhbmQgZ2l2ZXMgeW91IHlvdXIgb3duIHZlcnNpb24gdG8gd29yayBmcm9tLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSA2IC0tPgogICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24iIGlkPSJkb3dubG9hZC1leHBvcnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1oZWFkZXIiIG9uY2xpY2s9ImxpYnJhcnlHdWlkZVRvZ2dsZVNlY3Rpb24odGhpcy5jbG9zZXN0KCcubGlicmFyeS1ndWlkZS1zZWN0aW9uJykpIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1udW1iZXIiPjY8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi10aXRsZSIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMiI+RG93bmxvYWQgb3IgZXhwb3J0IGxlc3NvbiBtYXRlcmlhbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi10b2dnbGUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiLz48L3N2Zz48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tYm9keSI+CiAgICAgICAgICA8cD5Tb21lIGxlc3NvbiBkZXRhaWxzIHBhZ2VzIGluY2x1ZGUgYSA8c3Ryb25nPkRvd25sb2FkcyAmIEV4cG9ydDwvc3Ryb25nPiBhcmVhLiBVc2UgdGhpcyBhcmVhIHdoZW4geW91IHdhbnQgdG8gZG93bmxvYWQgYXZhaWxhYmxlIGxlc3NvbiBkb2N1bWVudHMgb3IgbWF0ZXJpYWxzLjwvcD4KICAgICAgICAgIDxwPkRvd25sb2FkcyBtYXkgaW5jbHVkZSBsZXNzb24gcGxhbnMsIGNvbXBvbmVudHMsIG9yIG90aGVyIGdlbmVyYXRlZCBtYXRlcmlhbHMsIGRlcGVuZGluZyBvbiB3aGF0IGhhcyBiZWVuIHB1Ymxpc2hlZCBhbmQgcHJlcGFyZWQuPC9wPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtY2FsbG91dCBsaWJyYXJ5LWd1aWRlLW5vdGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ij48L2NpcmNsZT48bGluZSB4MT0iMTIiIHkxPSIxMSIgeDI9IjEyIiB5Mj0iMTYiPjwvbGluZT48Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjEuMiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiPjwvY2lyY2xlPjwvc3ZnPgogICAgICAgICAgICA8ZGl2PjxzdHJvbmc+SWYgYSBkb3dubG9hZCBpcyBub3QgcmVhZHkgcmlnaHQgYXdheTwvc3Ryb25nPiBHaXZlIENBUkwgYSBtb21lbnQgdG8gZmluaXNoIHByZXBhcmluZyB0aGUgZmlsZS4gTGVzc29ucyB3aXRoIG1vcmUgcGFnZXMsIGNvbXBvbmVudHMsIG9yIHJlc291cmNlcyBtYXkgdGFrZSBhIGJpdCBsb25nZXIuPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8YSBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkIiBocmVmPSJodHRwczovL2hpY2FybC5haS9wdWJsaXNoaW5nLXZpc2liaWxpdHktZG93bmxvYWRzLyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC1pY29uIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiLz48cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTUiIHgyPSIxMiIgeTI9IjMiLz48L3N2Zz48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLXRleHQiPjxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC1sYWJlbCI+UmVsYXRlZCBndWlkZTwvZGl2PjxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC10aXRsZSI+UHVibGlzaGluZywgVmlzaWJpbGl0eSAmIERvd25sb2FkczwvZGl2PjwvZGl2PgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQtYXJyb3ciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPjxwb2x5bGluZSBwb2ludHM9IjEyIDUgMTkgMTIgMTIgMTkiLz48L3N2Zz4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgoKCgo8IS0tIDcgLS0+CjxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbiIgaWQ9ImN1cnJpY3VsdW0tdHJhY2tpbmciPgogIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1oZWFkZXIiIG9uY2xpY2s9ImxpYnJhcnlHdWlkZVRvZ2dsZVNlY3Rpb24odGhpcy5jbG9zZXN0KCcubGlicmFyeS1ndWlkZS1zZWN0aW9uJykpIj4KICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1udW1iZXIiPjc8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi10aXRsZSIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMiI+Q2FuIEkgdHJhY2sgd2hpY2ggY3VycmljdWx1bSBJIGhhdmUgcGxhbm5lZCBvciB0YXVnaHQ/PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdG9nZ2xlIj4KICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT4KICAgICAgPC9zdmc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLWJvZHkiPgogICAgPHA+Q0FSTCBoZWxwcyB5b3UgY3JlYXRlLCBzYXZlLCByZW1peCwgYW5kIHNoYXJlIGxlc3NvbnMuIElmIHlvdSBhbHNvIHdhbnQgdG8gdHJhY2sgd2hpY2ggY3VycmljdWx1bSBhcmVhcyBhcmUgcGxhbm5lZCwgdGF1Z2h0LCBvciBzdGlsbCBuZWVkIGF0dGVudGlvbiwgPHN0cm9uZz5DQVJMIENvbXBhc3M8L3N0cm9uZz4gaXMgZGVzaWduZWQgZm9yIHRoYXQga2luZCBvZiBjdXJyaWN1bHVtIGNvdmVyYWdlIHdvcmtmbG93LjwvcD4KCiAgICA8cD5Db21wYXNzIGlzIGEgY3VycmljdWx1bS1hbGlnbmVkIHBsYW5uaW5nIHdvcmtzcGFjZSB0aGF0IGhlbHBzIHRlYWNoZXJzIGNvbm5lY3QgbGVzc29ucyBhbmQgcGxhbnMgdG8gY3VycmljdWx1bSBjb3ZlcmFnZSBvdmVyIHRpbWUuPC9wPgoKICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtY29tcGFzcy1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNvbXBhc3MtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9DT01QQVNTLUNvbXBhc3MtNC5zdmciIGFsdD0iIj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNvbXBhc3MtY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1jb21wYXNzLWxhYmVsIj5EaXNjb3ZlciBDQVJMIENvbXBhc3M8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWNvbXBhc3MtdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPldhbnQgdG8gdHJhY2sgY3VycmljdWx1bSBjb3ZlcmFnZSB0b28/PC9kaXY+CiAgICAgICAgPHA+Q0FSTCBoZWxwcyB5b3UgYnVpbGQgYW5kIHVzZSBsZXNzb25zLiA8c3Ryb25nPkNvbXBhc3M8L3N0cm9uZz4gaGVscHMgeW91IHRyYWNrIHdoYXQgaGFzIGJlZW4gcGxhbm5lZCwgdGF1Z2h0LCBhbmQgd2hhdCBzdGlsbCBuZWVkcyBhdHRlbnRpb24gb3ZlciB0aW1lLjwvcD4KCiAgICAgICAgPGEgY2xhc3M9ImxpYnJhcnktZ3VpZGUtY29tcGFzcy1idG4iIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2NvbXBhc3MvIj4KICAgICAgICAgIEV4cGxvcmUgQ29tcGFzcwogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgIDxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIj48L2xpbmU+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjEyIDUgMTkgMTIgMTIgMTkiPjwvcG9seWxpbmU+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zdWJoZWFkIiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIj5Vc2UgQ29tcGFzcyB3aGVuIHlvdSB3YW50IHRvOjwvZGl2PgogIDx1bD4KICAgIDxsaT52aXN1YWxseSB0cmFjayBjdXJyaWN1bHVtIGFzIDxzdHJvbmc+UGxhbm5lZDwvc3Ryb25nPiBvciA8c3Ryb25nPlRhdWdodDwvc3Ryb25nPiB3aXRoIHNpbXBsZSBjaGVja2JveGVzLDwvbGk+CiAgICA8bGk+c2VlIGNvdmVyYWdlIGdhcHMgYXQgYSBnbGFuY2Ug4oCUIHdoYXQncyBkb25lLCB3aGF0J3Mgc2NoZWR1bGVkLCB3aGF0IHN0aWxsIG5lZWRzIGF0dGVudGlvbiw8L2xpPgogICAgPGxpPm9yZ2FuaXplIHBsYW5uaW5nIGFyb3VuZCBvZmZpY2lhbCBwcm92aW5jaWFsIGN1cnJpY3VsdW0gb3IgeW91ciBvd24gY3VzdG9tIHN0YW5kYXJkcyw8L2xpPgogICAgPGxpPm1hbmFnZSBzcGxpdC1ncmFkZSBjbGFzc2VzIChsaWtlIEdyYWRlIDQvNSkgd2l0aCBmbGV4aWJsZSB2aWV3IG9wdGlvbnMsPC9saT4KICAgIDxsaT5nZXQgaGVscCBmaWxsaW5nIGN1cnJpY3VsdW0gZ2FwcyB3aXRoIHBsYW4gc3VnZ2VzdGlvbnMgPHNwYW4gY2xhc3M9ImxpYnJhcnktZ3VpZGUtcGx1cy10YWciPlBsdXM8L3NwYW4+LjwvbGk+CiAgPC91bD4KICA8L2Rpdj4KPC9kaXY+CgoKCiAgICAgIDwhLS0gOCAtLT4KICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uIiBpZD0icXVpY2stcmVmZXJlbmNlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24taGVhZGVyIiBvbmNsaWNrPSJsaWJyYXJ5R3VpZGVUb2dnbGVTZWN0aW9uKHRoaXMuY2xvc2VzdCgnLmxpYnJhcnktZ3VpZGUtc2VjdGlvbicpKSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tbnVtYmVyIj44PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXNlY3Rpb24tdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjIiPlF1aWNrIFJlZmVyZW5jZTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1zZWN0aW9uLXRvZ2dsZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc2VjdGlvbi1ib2R5Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtdGFibGUtd3JhcCI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ibGlicmFyeS1ndWlkZS10YWJsZSI+CiAgICAgICAgICAgICAgPHRoZWFkPjx0cj48dGg+SWYgeW91IHdhbnQgdG8uLi48L3RoPjx0aD5EbyB0aGlzPC90aD48L3RyPjwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPjx0ZD5GaW5kIGEgbGVzc29uIGJ5IHRvcGljLCBzdWJqZWN0LCBvciBncmFkZTwvdGQ+PHRkPlVzZSB0aGUgTGlicmFyeSBzZWFyY2ggYmFyLjwvdGQ+PC90cj4KICAgICAgICAgICAgICAgIDx0cj48dGQ+TmFycm93IHRoZSByZXN1bHRzPC90ZD48dGQ+VXNlIGZpbHRlcnMgc3VjaCBhcyBjdXJyaWN1bHVtLCBncmFkZSBsZXZlbCwgc3ViamVjdCwgdG9waWMsIHBlZGFnb2d5LCBvciBhY2Nlc3NpYmlsaXR5LjwvdGQ+PC90cj4KICAgICAgICAgICAgICAgIDx0cj48dGQ+U2VlIG1vcmUgZGV0YWlscyBhYm91dCBhIGxlc3NvbjwvdGQ+PHRkPk9wZW4gdGhlIGxlc3NvbiBjYXJkLjwvdGQ+PC90cj4KICAgICAgICAgICAgICAgIDx0cj48dGQ+S2VlcCBhIGxlc3NvbiBmb3IgbGF0ZXI8L3RkPjx0ZD5DbGljayA8c3Ryb25nPlNhdmUgdG8gTGlicmFyeTwvc3Ryb25nPi48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPk1ha2UgeW91ciBvd24gZWRpdGFibGUgdmVyc2lvbjwvdGQ+PHRkPkNsaWNrIDxzdHJvbmc+UmVtaXg8L3N0cm9uZz4uPC90ZD48L3RyPgogICAgICAgICAgICAgICAgPHRyPjx0ZD5TZWUgc3R1ZGVudC1mYWNpbmcgbWF0ZXJpYWxzIGF0dGFjaGVkIHRvIGEgbGVzc29uPC90ZD48dGQ+T3BlbiB0aGUgPHN0cm9uZz5Db21wb25lbnRzPC9zdHJvbmc+IHRhYi48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPlNlZSBjb250cmlidXRpb25zIGFkZGVkIGJ5IG90aGVyczwvdGQ+PHRkPk9wZW4gdGhlIDxzdHJvbmc+Q29udHJpYnV0aW9uczwvc3Ryb25nPiB0YWIuPC90ZD48L3RyPgogICAgICAgICAgICAgICAgPHRyPjx0ZD5TZWUgcmVsYXRlZCByZW1peGVzPC90ZD48dGQ+T3BlbiB0aGUgPHN0cm9uZz5SZW1peGVzPC9zdHJvbmc+IHRhYi48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPkRvd25sb2FkIGF2YWlsYWJsZSBmaWxlczwvdGQ+PHRkPlVzZSA8c3Ryb25nPkRvd25sb2FkcyAmIEV4cG9ydDwvc3Ryb25nPi48L3RkPjwvdHI+CiAgICAgICAgICAgICAgICA8dHI+PHRkPlRyYWNrIHdoaWNoIGN1cnJpY3VsdW0gaGFzIGJlZW4gcGxhbm5lZCBvciB0YXVnaHQ8L3RkPjx0ZD5Vc2UgPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvY29tcGFzcyI+Q0FSTCBDb21wYXNzPC9hPi48L3RkPjwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtc3ViaGVhZCIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMyI+UmVsYXRlZCBndWlkZXM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC1zdGFjayI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQiIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2J1aWxkLXlvdXItcGxhbi1pbi01LXN0ZXBzLyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNNCAxOS41QTIuNSAyLjUgMCAwIDEgNi41IDE3SDIwIi8+PHBhdGggZD0iTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIMjB2MjBINi41QTIuNSAyLjUgMCAwIDEgNCAxOS41eiIvPjwvc3ZnPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC10ZXh0Ij48ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQtbGFiZWwiPlJlbGF0ZWQgZ3VpZGU8L2Rpdj48ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQtdGl0bGUiPkJ1aWxkIFlvdXIgUGxhbiBpbiA1IFN0ZXBzPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLWFycm93IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz48cG9seWxpbmUgcG9pbnRzPSIxMiA1IDE5IDEyIDEyIDE5Ii8+PC9zdmc+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZCIgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvYWRkaW5nLWNvbXBvbmVudHMtZmFjaWxpdGF0b3ItZ3VpZGVzLyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIi8+PHBhdGggZD0iTTMgOWgxOCIvPjxwYXRoIGQ9Ik05IDIxVjkiLz48L3N2Zz48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQtdGV4dCI+PGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLWxhYmVsIj5SZWxhdGVkIGd1aWRlPC9kaXY+PGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLXRpdGxlIj5BZGRpbmcgQ29tcG9uZW50czwvZGl2PjwvZGl2PgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC1hcnJvdyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+PHBvbHlsaW5lIHBvaW50cz0iMTIgNSAxOSAxMiAxMiAxOSIvPjwvc3ZnPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQiIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL3B1Ymxpc2hpbmctdmlzaWJpbGl0eS1kb3dubG9hZHMvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLXJlbGF0ZWQtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+PHBvbHlsaW5lIHBvaW50cz0iNyAxMCAxMiAxNSAxNyAxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIzIi8+PC9zdmc+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1yZWxhdGVkLXRleHQiPjxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC1sYWJlbCI+UmVsYXRlZCBndWlkZTwvZGl2PjxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC10aXRsZSI+UHVibGlzaGluZywgVmlzaWJpbGl0eSAmIERvd25sb2FkczwvZGl2PjwvZGl2PgogICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImxpYnJhcnktZ3VpZGUtcmVsYXRlZC1hcnJvdyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+PHBvbHlsaW5lIHBvaW50cz0iMTIgNSAxOSAxMiAxMiAxOSIvPjwvc3ZnPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJsaWJyYXJ5LWd1aWRlLWZvb3RlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGlicmFyeS1ndWlkZS1mb290ZXItdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjIiPkZpbmQgaXQsIHNhdmUgaXQsIHJlbWl4IGl0PC9kaXY+CiAgICAgICAgPHA+VXNlIHRoZSBMaWJyYXJ5IHdoZW4geW91IHdhbnQgYSBzdHJvbmcgc3RhcnRpbmcgcG9pbnQsIGEgc2F2ZWQgcmVmZXJlbmNlLCBvciBhbiBlZGl0YWJsZSByZW1peCBmb3IgeW91ciBvd24gY2xhc3MuPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktZ3VpZGUtYnV0dG9ucyI+CiAgICAgICAgICA8YSBocmVmPSJodHRwczovL2hpY2FybC5haS9sZWFybi1zdXBwb3J0LyIgY2xhc3M9ImxpYnJhcnktZ3VpZGUtYnRuIGxpYnJhcnktZ3VpZGUtcHJpbWFyeSI+QmFjayB0byBMZWFybiAmIFN1cHBvcnQ8L2E+CiAgICAgICAgICA8YSBocmVmPSJodHRwczovL2hpY2FybC5haS9zdXBwb3J0LyIgY2xhc3M9ImxpYnJhcnktZ3VpZGUtYnRuIGxpYnJhcnktZ3VpZGUtc2Vjb25kYXJ5Ij5Db250YWN0IFN1cHBvcnQ8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQ+CiAgZnVuY3Rpb24gbGlicmFyeUd1aWRlVG9nZ2xlU2VjdGlvbihzZWN0aW9uKSB7CiAgICBpZiAoIXNlY3Rpb24pIHJldHVybjsKICAgIHNlY3Rpb24uY2xhc3NMaXN0LnRvZ2dsZSgnbGlicmFyeS1ndWlkZS1jb2xsYXBzZWQnKTsKICB9CgogIGZ1bmN0aW9uIGxpYnJhcnlHdWlkZU9wZW5MaWdodGJveCh0eXBlLCBzcmMsIGFsdCkgewogICAgdmFyIGxiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYnJhcnlHdWlkZUxpZ2h0Ym94Jyk7CiAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWJyYXJ5R3VpZGVMaWdodGJveENvbnRlbnQnKTsKICAgIGlmICghbGIgfHwgIWNvbnRlbnQgfHwgIXNyYykgcmV0dXJuOwoKICAgIGlmIChsYi5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxiKTsKICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gJyc7CgogICAgaWYgKHR5cGUgPT09ICd2aWRlbycpIHsKICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKCdjb250cm9scycsICcnKTsKICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKCdtdXRlZCcsICcnKTsKICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKCdsb29wJywgJycpOwogICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ3BsYXlzaW5saW5lJywgJycpOwogICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ3ByZWxvYWQnLCAnbWV0YWRhdGEnKTsKICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgYWx0IHx8ICdWaWRlbyBwcmV2aWV3Jyk7CgogICAgICB2YXIgc291cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc291cmNlJyk7CiAgICAgIHNvdXJjZS5zcmMgPSBzcmM7CiAgICAgIHNvdXJjZS50eXBlID0gJ3ZpZGVvL21wNCc7CgogICAgICB2aWRlby5hcHBlbmRDaGlsZChzb3VyY2UpOwogICAgICBjb250ZW50LmFwcGVuZENoaWxkKHZpZGVvKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICAgICAgaW1nLnNyYyA9IHNyYzsKICAgICAgaW1nLmFsdCA9IGFsdCB8fCAnJzsKICAgICAgY29udGVudC5hcHBlbmRDaGlsZChpbWcpOwogICAgfQoKICAgIGxiLmNsYXNzTGlzdC5hZGQoJ2xpYnJhcnktZ3VpZGUtYWN0aXZlJyk7CiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7CiAgfQoKICBmdW5jdGlvbiBsaWJyYXJ5R3VpZGVDbG9zZUxpZ2h0Ym94KCkgewogICAgdmFyIGxiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYnJhcnlHdWlkZUxpZ2h0Ym94Jyk7CiAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWJyYXJ5R3VpZGVMaWdodGJveENvbnRlbnQnKTsKICAgIGlmICghbGIpIHJldHVybjsKCiAgICB2YXIgdmlkZW9zID0gY29udGVudCA/IGNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgndmlkZW8nKSA6IFtdOwogICAgdmlkZW9zLmZvckVhY2goZnVuY3Rpb24odmlkZW8pIHsKICAgICAgdmlkZW8ucGF1c2UoKTsKICAgICAgdmlkZW8ucmVtb3ZlQXR0cmlidXRlKCdzcmMnKTsKICAgICAgdmlkZW8ubG9hZCgpOwogICAgfSk7CgogICAgbGIuY2xhc3NMaXN0LnJlbW92ZSgnbGlicmFyeS1ndWlkZS1hY3RpdmUnKTsKICAgIGlmIChjb250ZW50KSBjb250ZW50LmlubmVySFRNTCA9ICcnOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIGxpYnJhcnlHdWlkZUNsb3NlTGlnaHRib3goKTsKICB9KTsKCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxpYnJhcnktZ3VpZGUtc2NyZWVuc2hvdFtkYXRhLWxpZ2h0Ym94LXNyY10nKS5mb3JFYWNoKGZ1bmN0aW9uKHRyaWdnZXIpIHsKICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgbGlicmFyeUd1aWRlT3BlbkxpZ2h0Ym94KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWxpZ2h0Ym94LXR5cGUnKSwgdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGlnaHRib3gtc3JjJyksIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWxpZ2h0Ym94LWFsdCcpKTsKICAgIH0pOwoKICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgbGlicmFyeUd1aWRlT3BlbkxpZ2h0Ym94KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWxpZ2h0Ym94LXR5cGUnKSwgdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGlnaHRib3gtc3JjJyksIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWxpZ2h0Ym94LWFsdCcpKTsKICAgICAgfQogICAgfSk7CiAgfSk7CgogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7CiAgICB2YXIgcHJvZ3Jlc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGlicmFyeUd1aWRlUHJvZ3Jlc3MnKTsKICAgIGlmICghcHJvZ3Jlc3MpIHJldHVybjsKCiAgICB2YXIgc2Nyb2xsVG9wID0gd2luZG93LnNjcm9sbFkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKICAgIHZhciBkb2NIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0OwogICAgdmFyIHBjdCA9IGRvY0hlaWdodCA+IDAgPyAoc2Nyb2xsVG9wIC8gZG9jSGVpZ2h0KSAqIDEwMCA6IDA7CiAgICBwcm9ncmVzcy5zdHlsZS53aWR0aCA9IHBjdCArICclJzsKCiAgICB2YXIgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubGlicmFyeS1ndWlkZS1zZWN0aW9uW2lkXScpOwogICAgdmFyIHRvY0xpbmtzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxpYnJhcnktZ3VpZGUtdG9jLWxpbmsnKTsKICAgIHZhciBjdXJyZW50SWQgPSAnJzsKCiAgICBzZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHNlY3Rpb24pIHsKICAgICAgdmFyIHJlY3QgPSBzZWN0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBpZiAocmVjdC50b3AgPD0gMTYwICYmIHJlY3QuYm90dG9tID4gMTYwKSBjdXJyZW50SWQgPSBzZWN0aW9uLmlkOwogICAgfSk7CgogICAgaWYgKGN1cnJlbnRJZCkgewogICAgICB0b2NMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmspIHsKICAgICAgICBsaW5rLmNsYXNzTGlzdC50b2dnbGUoJ2xpYnJhcnktZ3VpZGUtYWN0aXZlJywgbGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA9PT0gJyMnICsgY3VycmVudElkKTsKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5saWJyYXJ5LWd1aWRlLXRvYy1saW5rJykuZm9yRWFjaChmdW5jdGlvbihsaW5rKSB7CiAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdldEF0dHJpYnV0ZSgnaHJlZicpKTsKICAgICAgaWYgKHRhcmdldCkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pOwogICAgICB9CiAgICB9KTsKICB9KTsKPC9zY3JpcHQ=[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]