Design & Support

[fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” background_color=”” background_image=”https://electricyacht.com/wp-content/uploads/2019/03/sailboats-1920.jpg” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” type=”legacy”][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_image_id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”true” border_sizes_top=”0″ border_sizes_bottom=”0″ border_sizes_left=”0″ border_sizes_right=”0″ first=”true” type=”1_1″][fusion_title title_type=”text” rotation_effect=”bounceIn” display_time=”1200″ highlight_effect=”circle” loop_animation=”off” highlight_width=”9″ highlight_top_margin=”0″ before_text=”” rotation_text=”” highlight_text=”” after_text=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” content_align_medium=”” content_align_small=”” content_align=”center” size=”1″ font_size=”” animated_font_size=”” fusion_font_family_title_font=”” fusion_font_variant_title_font=”” line_height=”” letter_spacing=”” text_shadow=”no” text_shadow_vertical=”” text_shadow_horizontal=”” text_shadow_blur=”0″ text_shadow_color=”” margin_top_medium=”” margin_bottom_medium=”” margin_top_small=”” margin_bottom_small=”” margin_top=”30px” margin_bottom=”30px” margin_top_mobile=”” margin_bottom_mobile=”” text_color=”#ffffff” animated_text_color=”” highlight_color=”” style_type=”default” sep_color=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]

System Overview

[/fusion_title][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” type=”legacy”][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”true” border_sizes_top=”0″ border_sizes_bottom=”0″ border_sizes_left=”0″ border_sizes_right=”0″ first=”true” type=”1_1″][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

• An electric propulsion system consists of a number of components. We will help you design and size a system that meets your needs and provide support through the installation and commissioning phase, as well as ongoing support, as needed. In addition to the motor kit itself, we can supply batteries, chargers and any other components needed. In addition, any of our dealers can provide as much, or as little, help as you need to remove your old engine and install your new Electric Yacht electric propulsion engine

• 48Vdc battery bank serves as central energy storage. Size and type depend on budget, desired range and frequency of use

• 48Vdc propulsion motor provides propulsion power and can regenerate electricity when sailing with propeller turning.

• The throttle control is used to control motor speed and direction. For safety, it locks in neutral, preventing accidental operation. Lift locking ring and push ahead or astern to activate motor. Turn off key switch and remove to de-activate motor

• When sailing, leave throttle in neutral with key switch on. Propeller will normally start turning between 4 and 5 knots. As sailing speed increases, regenerated power increases

• Battery monitor display shows battery state of charge (SOC) and battery voltage at a glance. When motoring, it shows motor speed, battery voltage/current, power consumption and time to discharge at current throttle setting

• A battery charger plugged into shore power in a slip is the most common means of charging batteries

• A wind generator, solar panels or a portable or fixed generator can also be used

• An optional dc-dc converter can be used to provide 12Vdc power from the 48Vdc battery bank

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” type=”legacy”][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”” margin_bottom=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”true” border_sizes_top=”0″ border_sizes_bottom=”0″ border_sizes_left=”0″ border_sizes_right=”0″ first=”true” type=”1_1″][fusion_title hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” content_align=”center” size=”2″ font_size=”” line_height=”” letter_spacing=”” margin_top=”” margin_bottom=”” text_color=”” style_type=”default” sep_color=””]

Questions? We have answers

[/fusion_title][fusion_code]PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCmh0bWwsYm9keXsKCiAgICAgICAgICAgICAgIG1hcmdpbjogMHB4OwoKfQoKLmJnbi13Zi13cmFwcGVyICogewoKICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKCn0KCi5iZ24td2Ytd3JhcHBlciB7CgogICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKCiAgICAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7CgogICAgICAgICAgICAgICBtYXJnaW46YXV0bzsKCiAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKCiAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CgogICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7CgogICAgICAgICAgICAgICBjb2xvcjojMzMzOwoKfQoKLmJnbi13Zi1yb3cgewoKICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDAgMTVweCAwOwoKICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsKCn0KCi5iZ24td2YtbGFiZWx7CgogICAgICAgICAgICAgICBwYWRkaW5nOiA3cHggMjBweCA1cHggMzVweDsKCiAgICAgICAgICAgICAgIHdpZHRoOiAyNiU7CgogICAgICAgICAgICAgICBib3JkZXI6IDA7CgogICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CgogICAgICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwoKICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwoKfQoKLmJnbi13Zi1maWVsZCB7CgogICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwoKICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKCiAgICAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CgogICAgICAgICAgICAgICBib3JkZXI6IDA7CgogICAgICAgICAgICAgICBmbGV4OiAxOwoKfQoKaW5wdXQ6OmZvY3VzewoKICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzE5ODBkODsKCn0KCi5iZ24tc3RhciB7CgogICAgICAgICAgICAgICBjb2xvcjogI2JiMDcwNzt3aWR0aDogMTBweDtoZWlnaHQ6IDEwcHg7ei1pbmRleDogMTtmb250LXNpemU6IDE0cHg7dGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7cG9zaXRpb246IGFic29sdXRlOwoKfQoKQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkwcHgpIHsKCi5iZ24td2Ytd3JhcHBlciB7CgogICAgICAgICAgICAgICBtYXgtd2lkdGg6IDgwJSAhSW1wb3J0YW50OwoKICAgICAgICAgICAgICAgYm9yZGVyOiAwOwoKfQoKLmJnbi13Zi1yb3csCgouYmduLXdmLWxhYmVsLAoKLmJnbi13Zi1maWVsZCB7CgogICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKCiAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwoKfQoKLmJnbi13Zi1maWVsZCBpbnB1dFt0eXBlPXRleHRdLAoKLmJnbi13Zi1maWVsZCBzZWxlY3QsCgouYmduLXdmLWZpZWxkIHRleHRhcmVhIHt3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9CgouYmduLXdmLWZpZWxkIGRpdiA+IHNlbGVjdHsKCiAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7Cgp9CgouYmduLXdmLWxhYmVsOmVtcHR5e2Rpc3BsYXk6IG5vbmU7IH0KCn0KCjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSdiZ24td2Ytd3JhcHBlcicgaWQ9J0JpZ2luV2ViVG9FbnRpdHlGb3JtRGl2NTMxNDY0MzAwMDAwMDQwMzAwOScgc3R5bGU9J21heC13aWR0aDo2MDBweDttYXJnaW46MmVtIGF1dG87cGFkZGluZzogMTVweDtib3JkZXI6MXB4IHNvbGlkICNlMWUxZTE7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtjb2xvcjpibGFjazsnPgoKPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAnPgoKPE1FVEEgSFRUUC1FUVVJViA9J2NvbnRlbnQtdHlwZScgQ09OVEVOVD0ndGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgnPgoKPGZvcm0gaWQ9J0JpZ2luV2ViVG9Db250YWN0Rm9ybTUzMTQ2NDMwMDAwMDA0MDMwMDknIG5hbWU9J0JpZ2luV2ViVG9Db250YWN0Rm9ybTUzMTQ2NDMwMDAwMDA0MDMwMDknIG1ldGhvZD0nUE9TVCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgb25TdWJtaXQ9J2phdmFzY3JpcHQ6ZG9jdW1lbnQuY2hhcnNldD0iVVRGLTgiOyByZXR1cm4gdmFsaWRhdGVGb3JtNTMxNDY0MzAwMDAwMDQwMzAwOSgpJyBhY2NlcHQtY2hhcnNldD0nVVRGLTgnIHN0eWxlPSdtYXJnaW46IDA7Jz4KCjwhLS0gRG8gbm90IHJlbW92ZSB0aGlzIGNvZGUuIC0tPgoKICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSd4blFzanNkcCcgdmFsdWU9JzM3NjQ5OTBmMzQ3NzU3OWEzNzgwZTRjYTMzYjEyNDc0MWRjNDYxZDcxY2VjYTViZGVmZTM5M2EzYjU2NDBlZmUnLz4KCiAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J3pjX2dhZCcgaWQ9J3pjX2dhZCcgdmFsdWU9JycvPgoKICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSd4bUl3dExEJyB2YWx1ZT0nNjJlMjNlNDU2NDMxOWRhMWNiOThmYThmYWE1MTdjMWI5MTQyNGEyNmFhMDFhMzM1NWJkZGRhNWVkMjYwNDk2OScvPgoKICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSdhY3Rpb25UeXBlJyB2YWx1ZT0nUTI5dWRHRmpkSE09Jy8+CgogICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnIG5hbWU9J3JldHVyblVSTCcgdmFsdWU9J2h0dHBzOi8vZWxlY3RyaWN5YWNodC5jb20vY29udGFjdC8nIC8+CgogICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIxcHg7IG1hcmdpbi1ib3R0b206IDI1cHg7d29yZC1icmVhazogYnJlYWstd29yZDtwYWRkaW5nLWxlZnQ6IDE1cHg7Ij5Db250YWN0IFVzPC9kaXY+CgogICAgICAgICAgICAgICA8ZGl2IGlkPSJlbGVtZW50RGl2NTMxNDY0MzAwMDAwMDQwMzAwOSIgc3R5bGU9ImJvcmRlcjowO3dpZHRoOiAxMDAlO2JhY2tncm91bmQtY29sb3I6IHdoaXRlO2NvbG9yOmJsYWNrO2ZvbnQtZmFtaWx5OkFyaWFsO3RleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOiAxNTsiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1yb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtbGFiZWwiPkZpcnN0IE5hbWUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZ24tc3RhciI+JiM0Mjs8L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IkZpcnN0IE5hbWUiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iNDAiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSIiIHN0eWxlPSIgYm9yZGVyOiAxcHggc29saWQgI2UyZTBkZjtwYWRkaW5nOiAxMHB4IDE1cHg7bWF4LXdpZHRoOiA0ODBweDtib3JkZXItcmFkaXVzOjNweDt3aWR0aDogNjAlOyIvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2Ytcm93Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLWxhYmVsIj5MYXN0IE5hbWUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZ24tc3RhciI+JiM0Mjs8L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ikxhc3QgTmFtZSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSI4MCIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IiIgc3R5bGU9IiBib3JkZXI6IDFweCBzb2xpZCAjZTJlMGRmO3BhZGRpbmc6IDEwcHggMTVweDttYXgtd2lkdGg6IDQ4MHB4O2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOiA2MCU7Ii8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1yb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtbGFiZWwiPkJvYXQKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZ24tc3RhciI+JiM0Mjs8L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IkNPTlRBQ1RDRjEiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iIiBzdHlsZT0iIGJvcmRlcjogMXB4IHNvbGlkICNlMmUwZGY7cGFkZGluZzogMTBweCAxNXB4O21heC13aWR0aDogNDgwcHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6IDYwJTsiLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLXJvdyI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1sYWJlbCI+WW91ciBuZWVkcwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJnbi1zdGFyIj4mIzQyOzwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1maWVsZCI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iRGVzY3JpcHRpb24iIG1heGxlbmd0aD0iMzIwMDAiIHBsYWNlaG9sZGVyPSIiIHN0eWxlPSIgYm9yZGVyOiAxcHggc29saWQgI2UyZTBkZjtwYWRkaW5nOiAxMHB4IDE1cHg7bWF4LXdpZHRoOiA0ODBweDtib3JkZXItcmFkaXVzOjNweDt3aWR0aDogNjAlOyI+PC90ZXh0YXJlYT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLXJvdyI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1sYWJlbCI+RW1haWwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZ24tc3RhciI+JiM0Mjs8L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IkVtYWlsIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjEwMCIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IiIgc3R5bGU9IiBib3JkZXI6IDFweCBzb2xpZCAjZTJlMGRmO3BhZGRpbmc6IDEwcHggMTVweDttYXgtd2lkdGg6IDQ4MHB4O2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOiA2MCU7Ii8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1yb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtbGFiZWwiPlBob25lCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmduLXN0YXIiPiYjNDI7PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLWZpZWxkIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJQaG9uZSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSI1MCIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IiIgc3R5bGU9IiBib3JkZXI6IDFweCBzb2xpZCAjZTJlMGRmO3BhZGRpbmc6IDEwcHggMTVweDttYXgtd2lkdGg6IDQ4MHB4O2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOiA2MCU7Ii8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1yb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtbGFiZWwiPk1haWxpbmcgU3RyZWV0CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik1haWxpbmcgU3RyZWV0IiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IiIgc3R5bGU9IiBib3JkZXI6IDFweCBzb2xpZCAjZTJlMGRmO3BhZGRpbmc6IDEwcHggMTVweDttYXgtd2lkdGg6IDQ4MHB4O2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOiA2MCU7Ii8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1yb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtbGFiZWwiPk1haWxpbmcgQ2l0eQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLWZpZWxkIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJNYWlsaW5nIENpdHkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTAwIiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iIiBzdHlsZT0iIGJvcmRlcjogMXB4IHNvbGlkICNlMmUwZGY7cGFkZGluZzogMTBweCAxNXB4O21heC13aWR0aDogNDgwcHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6IDYwJTsiLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLXJvdyI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1sYWJlbCI+TWFpbGluZyBTdGF0ZQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLWZpZWxkIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJNYWlsaW5nIFN0YXRlIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjEwMCIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IiIgc3R5bGU9IiBib3JkZXI6IDFweCBzb2xpZCAjZTJlMGRmO3BhZGRpbmc6IDEwcHggMTVweDttYXgtd2lkdGg6IDQ4MHB4O2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOiA2MCU7Ii8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1yb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtbGFiZWwiPk1haWxpbmcgWmlwCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik1haWxpbmcgWmlwIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMwIiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iIiBzdHlsZT0iIGJvcmRlcjogMXB4IHNvbGlkICNlMmUwZGY7cGFkZGluZzogMTBweCAxNXB4O21heC13aWR0aDogNDgwcHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6IDYwJTsiLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLXJvdyI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnbi13Zi1sYWJlbCI+TWFpbGluZyBDb3VudHJ5CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZ24td2YtZmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik1haWxpbmcgQ291bnRyeSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxMDAiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSIiIHN0eWxlPSIgYm9yZGVyOiAxcHggc29saWQgI2UyZTBkZjtwYWRkaW5nOiAxMHB4IDE1cHg7bWF4LXdpZHRoOiA0ODBweDtib3JkZXItcmFkaXVzOjNweDt3aWR0aDogNjAlOyIvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmduLXdmLXJvdyIgc3R5bGU9Im1hcmdpbi10b3A6IDVweDsiPjxkaXYgY2xhc3M9ImJnbi13Zi1sYWJlbCI+PC9kaXY+PGRpdiBjbGFzcz0iYmduLXdmLWZpZWxkIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG9uY2xpY2s9J2Rpc2FibGVTdWJtaXR3aGlsZVJlc2V0NTMxNDY0MzAwMDAwMDQwMzAwOSgpJyB0eXBlPSdyZXNldCcgc3R5bGU9J21hcmdpbi1yaWdodDogMTBweDttYXJnaW4tYm90dG9tOiAxMHB4O2ZvbnQtc2l6ZToxM3B4O2JvcmRlci1yYWRpdXM6IDNweDt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO2JhY2tncm91bmQtY29sb3I6ICNmZmY7Ym9yZGVyLWNvbG9yOiAjMjIyO3BhZGRpbmc6IDhweCAxNXB4O2NvbG9yOiAjM2MzYzNjO2JvcmRlcjogc29saWQgMXB4ICNkNGQzZDI7ZGlzcGxheTogaW5saW5lLWJsb2NrO3dpZHRoOiBhdXRvOycgdmFsdWU9J1Jlc2V0JyAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3R5bGU9J21hcmdpbi1ib3R0b206IDEwcHg7IG9wYWNpdHk6OyBmb250LXNpemU6MTNweDtjb2xvcjogI2ZmZjtib3JkZXItcmFkaXVzOiAzcHg7dmVydGljYWwtYWxpZ246IG1pZGRsZTtiYWNrZ3JvdW5kLWNvbG9yOiAjMTk4MGQ4O2JvcmRlci1jb2xvcjogIzE5ODBkODtwYWRkaW5nOiA4cHggMTVweDtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7d2lkdGg6IGF1dG87JyAgaWQ9J2Zvcm1zdWJtaXQ1MzE0NjQzMDAwMDAwNDAzMDA5JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdTdWJtaXQnIC8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CgogICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgIDxzY3JpcHQ+CgogICAgICAgICAgICAgIAoKIGZ1bmN0aW9uIGRpc2FibGVTdWJtaXR3aGlsZVJlc2V0NTMxNDY0MzAwMDAwMDQwMzAwOSgpIHsKCiAgICAgICAgICAgICAgIHZhciBzdWJtaXRidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybXN1Ym1pdDUzMTQ2NDMwMDAwMDA0MDMwMDknKTsKCiAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpdmFjeVRvb2w1MzE0NjQzMDAwMDAwNDAzMDA5JykgIT09IG51bGwgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNlbnRUb29sJykgIT09IG51bGwpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXRidXR0b24uZGlzYWJsZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdGJ1dHRvbi5zdHlsZS5vcGFjaXR5ID0gJzAuNTsnOwoKICAgICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXRidXR0b24ucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgfQoKfQoKZnVuY3Rpb24gY2hlY2tNYW5kYXRvcnk1MzE0NjQzMDAwMDAwNDAzMDA5KCkgewoKICAgICAgICAgICAgICAgIHZhciBtbmRGaWVsZHM9bmV3IEFycmF5KCdGaXJzdCBOYW1lJywnTGFzdCBOYW1lJywnQ09OVEFDVENGMScsJ0Rlc2NyaXB0aW9uJywnRW1haWwnLCdQaG9uZScpOwoKICAgICAgICAgICAgICAgIHZhciBmbGRMYW5nVmFsPW5ldyBBcnJheSgnRmlyc3QgTmFtZScsJ0xhc3QgTmFtZScsJ0JvYXQnLCdZb3VyIG5lZWRzJywnRW1haWwnLCdQaG9uZScpOwoKICAgICAgICAgICAgICAgIHZhciBpOwoKICAgICAgICAgICAgICAgIHZhciBtbmRGaWVsZHNsZW5ndGg9bW5kRmllbGRzLmxlbmd0aDsKCiAgICAgICAgICAgICAgICB2YXIgZmllbGRPYmo7CgogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1uZEZpZWxkc2xlbmd0aDsgaSsrKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRPYmogPSBkb2N1bWVudC5mb3Jtcy5CaWdpbldlYlRvQ29udGFjdEZvcm01MzE0NjQzMDAwMDAwNDAzMDA5W21uZEZpZWxkc1tpXV07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkT2JqKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZE9iai52YWx1ZS5yZXBsYWNlKC9ecyt8cyskL2csICcnKS5sZW5ndGggPT09IDApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZE9iai50eXBlID09PSAnZmlsZScpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydCgnUGxlYXNlIHNlbGVjdCBhIGZpbGUgdG8gdXBsb2FkLicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkT2JqLmZvY3VzKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoZmxkTGFuZ1ZhbFtpXSArICcgY2Fubm90IGJlIGVtcHR5LicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRPYmouZm9jdXMoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZE9iai5ub2RlTmFtZSA9PT0gJ1NFTEVDVCcpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZE9iai5vcHRpb25zW2ZpZWxkT2JqLnNlbGVjdGVkSW5kZXhdLnZhbHVlID09PSAnLU5vbmUtJykgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGZsZExhbmdWYWxbaV0gKyAnIGNhbm5vdCBiZSBub25lLicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkT2JqLmZvY3VzKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkT2JqLnR5cGUgPT09ICdjaGVja2JveCcpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZE9iai5jaGVja2VkID09PSBmYWxzZSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCdQbGVhc2UgYWNjZXB0ICAnICsgZmxkTGFuZ1ZhbFtpXSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRPYmouZm9jdXMoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkT2JqLm5hbWUgPT09ICdMYXN0IE5hbWUnICYmIGZpZWxkT2JqLnZhbHVlKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gZmllbGRPYmoudmFsdWU7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKCn0KCiAgICAgICAgICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRmlsZVVwbG9hZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGVGaWxlIiksdD0wO2lmKGUpe2lmKGUuZmlsZXMubGVuZ3RoPjMpcmV0dXJuIGFsZXJ0KCJZb3UgY2FuIHVwbG9hZCBhIG1heGltdW0gb2YgdGhyZWUgZmlsZXMgYXQgYSB0aW1lLiIpLCExO2lmKCJmaWxlcyJpbiBlKXt2YXIgaT1lLmZpbGVzLmxlbmd0aDtpZigwIT09aSl7Zm9yKHZhciBvPTA7bzxpO28rKyl7dmFyIGE9ZS5maWxlc1tvXTsic2l6ZSJpbiBhJiYodCs9YS5zaXplKX1pZih0PjIwOTcxNTIwKXJldHVybiBhbGVydCgiVG90YWwgZmlsZShzKSBzaXplIHNob3VsZCBub3QgZXhjZWVkIDIwTUIuIiksITF9fX1yZXR1cm4hMH08L3NjcmlwdD4KCiAgICAgICAgICAgICAgICA8c2NyaXB0IGlkPSd3Zl9zY3JpcHQnIHNyYz0naHR0cHM6Ly9iaWdpbi56b2hvLmNvbS9jcm0vV2ViZm9ybVNjcmlwdFNlcnZsZXQ/cmlkPTYyZTIzZTQ1NjQzMTlkYTFjYjk4ZmE4ZmFhNTE3YzFiOTE0MjRhMjZhYTAxYTMzNTViZGRkYTVlZDI2MDQ5NjlnaWQzNzY0OTkwZjM0Nzc1NzlhMzc4MGU0Y2EzM2IxMjQ3NDFkYzQ2MWQ3MWNlY2E1YmRlZmUzOTNhM2I1NjQwZWZlJz48L3NjcmlwdD4KCjwvZm9ybT4KCjwvZGl2Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]