[fusion_builder_container admin_label=”Desktop” hundred_percent=”yes” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”medium-visibility,large-visibility” 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_size=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”2%” padding_right=”10%” padding_bottom=”2%” padding_left=”10%”][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”yes” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”” border_color=”” border_style=”solid” border_position=”all” padding_top=”2%” padding_right=”10%” padding_bottom=”2%” padding_left=”10%” margin_top=”0px” margin_bottom=”0px” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][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=””]
From Home to Canada: An AI Masterclass
In order to innovate, you must work with the right partners to achieve the right solutions. This is why we have partnered with Finance Montreal, the premier group promoting Québec’s financial services industry, and Ngee Ann Polytechnic Singapore to deliver an innovative blended training masterclass on Artificial Intelligence (AI) in Finance.
Suitable for professionals, technologists, or anyone keen on understanding disruptive technologies – the AI in Finance Masterclass is the first of its kind to blend both online training and physical seminar into the same programme. An in-person seminar will be held at the 2018 Canada Fintech Forum, in Montreal, on the 31st of October between 9.30 and 11am. Meanwhile, learners will be able to complete the currently available ‘AI in Finance’ online course before the event, at their convenience.
This online aspect helps learners acquire an appropriately structured foundation to understand and be part of the AI revolution in finance. Providing direct access to industry minds from global financial institutions and start-ups, the course also allows users exclusive insight into how AI is used across financial markets in the US, Asia and Europe. This leads to an understanding of key opportunity areas in Artificial Intelligence, as well as regulatory and pragmatic challenges of its use in financial services. Also, it will outline major analytical concepts driving AI – machine learning; deep learning; natural language processing; and Robotic Process Automation.
Those attending the physical seminar at the Palais des Congres de Montreal will be treated to an address from CFTE co-founder Huy Nguyen Trieu. He will host a panel discussion on AI in Finance in Canada with Manuel Morales (Associate Professor at University of Montreal). Both speakers are well-established thought leaders in fintech:
- Huy Nguyen Trieu is a leading mind in innovation and finance. He previously was a Managing Director at Citi, and remains the CEO of The Disruptive Group and a member of ESMA’s Consultative Working Group for financial innovation.
- Manuel Morales is an Associate Professor at the University of Montreal, and specialises in Financial and Actuarial Mathematics. Since 2011, he has been the Graduate Director of the M.Sc. program in Financial and Computational Mathematics.
The morning will also see Janos Barberis (Senior Lecturer at CFTE and CEO of SuperCharger, the largest FinTech accelerator in Asia) discussing the best practices for preparing a deck and pitching. This will be informed by his established track record in Fintech, with his multiple academically published books and articles informing how the industry is regulated today.
Later on, attendees will be placed in teams to work on application of AI in Finance; these groups will submit their deck and a recording of a 3-min pitch in a competition.
Those who complete the online course before the 25th of October will be honoured with a graduation ceremony, wherein they will receive a printed certificate and a CFTE alumni t-shirt. This will take place on the morning of the 31st of October.
If you wish to read more about the Fintech Masterclass at the 2018 Canada Fintech Forum, or the agenda of the general forum, please refer to this guide to register. (Please note: CFTE alumni and learners are eligible for a 10% discount – please send an email to events@cfte.education for details.)
For more information on the AI in Finance course, including how to begin your journey as part of the AI financial revolution, you can register for the online course here.
[/fusion_text][fusion_button link=”http://www.fintechmontreal.com/events/2018-canada-fintech-forum/event-summary-3513f8ea87504c628ded8bf0a83f7330.aspx” text_transform=”” title=”” target=”_blank” link_attributes=”” alignment=”center” modal=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” color=”default” button_gradient_top_color=”” button_gradient_bottom_color=”” button_gradient_top_color_hover=”” button_gradient_bottom_color_hover=”” accent_color=”” accent_hover_color=”” type=”” bevel_color=”” border_width=”” size=”” stretch=”default” shape=”” icon=”” icon_position=”left” icon_divider=”no” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]Learn more about the programme[/fusion_button][/fusion_builder_column][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_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ 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=”no”][fusion_code]PHN0eWxlPgogI19mb3JtXzlfIHsgZm9udC1zaXplOjE0cHg7IGxpbmUtaGVpZ2h0OjEuNjsgZm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOjA7IH0KICNfZm9ybV85XyAqIHsgb3V0bGluZTowOyB9CiAuX2Zvcm1faGlkZSB7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IH0KIC5fZm9ybV9zaG93IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9CiAjX2Zvcm1fOV8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV85Xy5fZm9ybS1ib3R0b20geyBib3R0b206MDsgfQogI19mb3JtXzlfLl9mb3JtLWxlZnQgeyBsZWZ0OjA7IH0KICNfZm9ybV85Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fOV8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzlfIC5fc3VibWl0IHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjE0cHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiM4ZjA3MDcgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzlfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5fZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbTozMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MTBweDsgY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOjMwcHg7IGZvbnQtd2VpZ2h0OjEwMDsgfQogI19mb3JtXzlfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWxhYmVsLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzlfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV85Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV85XyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV85XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzlfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgdG9wOi00MXB4OyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYmVsb3cgeyBwYWRkaW5nLXRvcDo0cHg7IHRvcDoxMDAlOyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93IHsgdG9wOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIgeyBwYWRkaW5nOjhweCAxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMzdjN2I7IGZvbnQtc2l6ZToxM3B4OyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fOV8gLl9idXR0b24td3JhcHBlciAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHsgcG9zaXRpb246c3RhdGljOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lci5fbm9fYXJyb3cgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV85XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1odG1sIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAucGlrYS1zaW5nbGUgeyB6LWluZGV4OjEwMDAwMDAxICFpbXBvcnRhbnQ7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7IDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5Om5vbmU7IH0KICNfZm9ybV85XyB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBtaW4td2lkdGg6MTAwJTsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQogI19mb3JtXzlfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50IHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm0taW5uZXIgeyBkaXNwbGF5OmJsb2NrOyBtaW4td2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS10aXRsZSwjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowOyB9CiA
jX2Zvcm1fOV8gLl9mb3JtLXRpdGxlIHsgZm9udC1zaXplOjEuMmVtOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS1lbGVtZW50LCNfZm9ybV85XyAuX2lubGluZS1zdHlsZSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV85XyBsYWJlbCwjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gdGV4dGFyZWE6bm90KC5nLXJlY2FwdGNoYS1yZXNwb25zZSkgeyBmbG9hdDpub25lOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cuX2NoZWNrYm94LXJhZGlvIGxhYmVsIHsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV85XyAuX3JvdywjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gbGFiZWwgeyBtYXJnaW4tYm90dG9tOjAuN2VtOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0icmFkaW8iXSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSArIHNwYW4gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzlfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlIHsgbWF4LXdpZHRoOjEwMCU7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0icmFkaW8iXSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDoxLjNlbTsgaGVpZ2h0OjEuM2VtOyBmb250LXNpemU6MWVtOyBtYXJnaW46MCAwLjNlbSAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9CiAjX2Zvcm1fOV8gYnV0dG9uW3R5cGU9InN1Ym1pdCJdIHsgcGFkZGluZzoyMHB4OyBmb250LXNpemU6MS41ZW07IH0KICNfZm9ybV85XyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbjoyMHB4IDAgMCAhaW1wb3J0YW50OyB9CiB9CiAjX2Zvcm1fOV8geyBwb3NpdGlvbjpyZWxhdGl2ZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW46MjVweCBhdXRvIDA7IHBhZGRpbmc6MjBweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7ICp6b29tOjE7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MHB4IHNvbGlkICNiMGIwYjAgIWltcG9ydGFudDsgd2lkdGg6NTAwcHg7IC1tb3otYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV85XzpiZWZvcmUsI19mb3JtXzlfOmFmdGVyIHsgY29udGVudDoiICI7IGRpc3BsYXk6dGFibGU7IH0KICNfZm9ybV85XzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHsgd2lkdGg6YXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgYnV0dG9uLl9pbmxpbmUtc3R5bGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjI3cHg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHAgeyBtYXJnaW46MDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRoYW5rLXlvdSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MThweDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgI19mb3JtXzlfLl9pbmxpbmUtZm9ybS5faW5saW5lLXN0eWxlIC5faW5saW5lLXN0eWxlLl9idXR0b24td3JhcHBlciB7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDowICFpbXBvcnRhbnQ7IH0KIH0KPC9zdHlsZT4KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwIiBpZD0iX2Zvcm1fOV8iIGNsYXNzPSJfZm9ybSBfZm9ybV85IF9pbmxpbmUtZm9ybSAgX2RhcmsiIG5vdmFsaWRhdGU+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idSIgdmFsdWU9IjkiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZiIgdmFsdWU9IjkiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icyIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjIiB2YWx1ZT0iMCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtIiB2YWx1ZT0iMCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzdWIiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idiIgdmFsdWU9IjIiIC8+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tY29udGVudCI+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NTQyNDM5ODIgX2Z1bGxfd2lkdGggX2NsZWFyIiA+CiAgICAgIDxkaXYgY2xhc3M9Il9mb3JtLXRpdGxlIj4KICAgICAgICBTdWJzY3JpYmUgdG8gb3VyIFdlZWtseSBOZXdzbGV0dGVyCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NjA5MzM0NzIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIEZpcnN0IE5hbWUqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlyc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGZpcnN0IG5hbWUiIHJlcXVpcmVkLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g0MjY0ODYwMCBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgTGFzdCBOYW1lKgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imxhc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGxhc3QgbmFtZSIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDA0OTc0OTE5IF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBFbWFpbCoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBlbWFpbCIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQxIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBDb3VudHJ5KgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPHNlbGVjdCBuYW1lPSJmaWVsZFsxXSIgcmVxdWlyZWQ+CiAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBZmdoYW5pc3RhbiIgPgogICAgICAgICAgICBBZmdoYW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbGJhbmlhIiA+CiAgICAgICAgICAgIEFsYmFuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWxnZXJpYSIgPgogICAgICAgICAgICBBbGdlcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFtZXJpY2FuIFNhbW9hIiA+CiAgICAgICAgICAgIEFtZXJpY2FuIFNhbW9hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZG9ycmEiID4KICAgICAgICAgICAgQW5kb3JyYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbmdvbGEiID4KICAgICAgICAgICAgQW5nb2xhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZ3VpbGxhIiA+CiAgICAgICAgICAgIEFuZ3VpbGxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFudGFyY3RpY2EiID4KICAgICAgICAgICAgQW50YXJjdGljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbnRpZ3VhIGFuZCBCYXJidWRhIiA+CiAgICAgICAgICAgIEFudGlndWEgYW5kIEJhcmJ1ZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJnZW50aW5hIiA+CiAgICAgICAgICAgIEFyZ2VudGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcm1lbmlhIiA+CiAgICAgICAgICAgIEFybWVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJ1YmEiID4KICAgICAgICAgICAgQXJ1YmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXVzdHJhbGlhIiA+CiAgICAgICAgICAgIEF1c3RyYWxpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBdXN0cmlhIiA+CiAgICAgICAgICAgIEF1c3RyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXplcmJhaWphbiIgPgogICAgICAgICAgICBBemVyYmFpamFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhaGFtYXMiID4KICAgICAgICAgICAgQmFoYW1hcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYWhyYWluIiA+CiAgICAgICAgICAgIEJhaHJhaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFuZ2xhZGVzaCIgPgogICAgICAgICAgICBCYW5nbGFkZXNoCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhcmJhZG9zIiA+CiAgICAgICAgICAgIEJhcmJhZG9zCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGFydXMiID4KICAgICAgICAgICAgQmVsYXJ1cwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxnaXVtIiA+CiAgICAgICAgICAgIEJlbGdpdW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsaXplIiA+CiAgICAgICAgICAgIEJlbGl6ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZW5pbiIgPgogICAgICAgICAgICBCZW5pbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZXJtdWRhIiA+CiAgICAgICAgICAgIEJlcm11ZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm
h1dGFuIiA+CiAgICAgICAgICAgIEJodXRhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb2xpdmlhIiA+CiAgICAgICAgICAgIEJvbGl2aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgPgogICAgICAgICAgICBCb3NuaWEgYW5kIEhlcnplZ292aW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdHN3YW5hIiA+CiAgICAgICAgICAgIEJvdHN3YW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdXZldCBJc2xhbmQiID4KICAgICAgICAgICAgQm91dmV0IElzbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcmF6aWwiID4KICAgICAgICAgICAgQnJhemlsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgPgogICAgICAgICAgICBCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJ1bmVpIERhcnVzc2FsYW0iID4KICAgICAgICAgICAgQnJ1bmVpIERhcnVzc2FsYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVsZ2FyaWEiID4KICAgICAgICAgICAgQnVsZ2FyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVya2luYSBGYXNvIiA+CiAgICAgICAgICAgIEJ1cmtpbmEgRmFzbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdXJ1bmRpIiA+CiAgICAgICAgICAgIEJ1cnVuZGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtYm9kaWEiID4KICAgICAgICAgICAgQ2FtYm9kaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtZXJvb24iID4KICAgICAgICAgICAgQ2FtZXJvb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FuYWRhIiA+CiAgICAgICAgICAgIENhbmFkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYXBlIFZlcmRlIiA+CiAgICAgICAgICAgIENhcGUgVmVyZGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2F5bWFuIElzbGFuZHMiID4KICAgICAgICAgICAgQ2F5bWFuIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiA+CiAgICAgICAgICAgIENlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGFkIiA+CiAgICAgICAgICAgIENoYWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hpbGUiID4KICAgICAgICAgICAgQ2hpbGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hpbmEiID4KICAgICAgICAgICAgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hyaXN0bWFzIElzbGFuZCIgPgogICAgICAgICAgICBDaHJpc3RtYXMgSXNsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiA+CiAgICAgICAgICAgIENvY29zIChLZWVsaW5nKSBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbG9tYmlhIiA+CiAgICAgICAgICAgIENvbG9tYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbW9yb3MiID4KICAgICAgICAgICAgQ29tb3JvcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbyIgPgogICAgICAgICAgICBDb25nbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlIiA+CiAgICAgICAgICAgIENvbmdvLCB0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29vayBJc2xhbmRzIiA+CiAgICAgICAgICAgIENvb2sgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb3N0YSBSaWNhIiA+CiAgICAgICAgICAgIENvc3RhIFJpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ290ZSBEJiMwMzk7SXZvaXJlIiA+CiAgICAgICAgICAgIENvdGUgRCYjMDM5O0l2b2lyZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDcm9hdGlhIiA+CiAgICAgICAgICAgIENyb2F0aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3ViYSIgPgogICAgICAgICAgICBDdWJhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN5cHJ1cyIgPgogICAgICAgICAgICBDeXBydXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3plY2ggUmVwdWJsaWMiID4KICAgICAgICAgICAgQ3plY2ggUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRGVubWFyayIgPgogICAgICAgICAgICBEZW5tYXJrCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRqaWJvdXRpIiA+CiAgICAgICAgICAgIERqaWJvdXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhIiA+CiAgICAgICAgICAgIERvbWluaWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhbiBSZXB1YmxpYyIgPgogICAgICAgICAgICBEb21pbmljYW4gUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWN1YWRvciIgPgogICAgICAgICAgICBFY3VhZG9yCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVneXB0IiA+CiAgICAgICAgICAgIEVneXB0CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVsIFNhbHZhZG9yIiA+CiAgICAgICAgICAgIEVsIFNhbHZhZG9yCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVxdWF0b3JpYWwgR3VpbmVhIiA+CiAgICAgICAgICAgIEVxdWF0b3JpYWwgR3VpbmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVyaXRyZWEiID4KICAgICAgICAgICAgRXJpdHJlYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFc3RvbmlhIiA+CiAgICAgICAgICAgIEVzdG9uaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXRoaW9waWEiID4KICAgICAgICAgICAgRXRoaW9waWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIiA+CiAgICAgICAgICAgIEZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGYXJvZSBJc2xhbmRzIiA+CiAgICAgICAgICAgIEZhcm9lIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmlqaSIgPgogICAgICAgICAgICBGaWppCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZpbmxhbmQiID4KICAgICAgICAgICAgRmlubGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmFuY2UiID4KICAgICAgICAgICAgRnJhbmNlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyZW5jaCBHdWlhbmEiID4KICAgICAgICAgICAgRnJlbmNoIEd1aWFuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggUG9seW5lc2lhIiA+CiAgICAgICAgICAgIEZyZW5jaCBQb2x5bmVzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiA+CiAgICAgICAgICAgIEZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHYWJvbiIgPgogICAgICAgICAgICBHYWJvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHYW1iaWEiID4KICAgICAgICAgICAgR2FtYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikdlb3JnaWEiID4KICAgICAgICAgICAgR2VvcmdpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHZXJtYW55IiA+CiAgICAgICAgICAgIEdlcm1hbnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2hhbmEiID4KICAgICAgICAgICAgR2hhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2licmFsdGFyIiA+CiAgICAgICAgICAgIEdpYnJhbHRhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVlY2UiID4KICAgICAgICAgICAgR3JlZWNlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWVubGFuZCIgPgogICAgICAgICAgICBHcmVlbmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlbmFkYSIgPgogICAgICAgICAgICBHcmVuYWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YWRlbG91cGUiID4KICAgICAgICAgICAgR3VhZGVsb3VwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWFtIiA+CiAgICAgICAgICAgIEd1YW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhdGVtYWxhIiA+CiAgICAgICAgICAgIEd1YXRlbWFsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWVybnNleSIgPgogICAgICAgICAgICBHdWVybnNleQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWluZWEiID4KICAgICAgICAgICAgR3VpbmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1aW5lYS1CaXNzYXUiID4KICAgICAgICAgICAgR3VpbmVhLUJpc3NhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdXlhbmEiID4KICAgICAgICAgICAgR3V5YW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhhaXRpIiA+CiAgICAgICAgICAgIEhhaXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcyIgPgogICAgICAgICAgICBIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkiID4KICAgICAgICAgICAgSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZHVyYXMiID4KICAgICAgICAgICAgSG9uZHVyYXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZyBLb25nIiA+CiAgICAgICAgICAgIEhvbmcgS29uZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIdW5nYXJ5IiA+C
iAgICAgICAgICAgIEh1bmdhcnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSWNlbGFuZCIgPgogICAgICAgICAgICBJY2VsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkluZGlhIiA+CiAgICAgICAgICAgIEluZGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkluZG9uZXNpYSIgPgogICAgICAgICAgICBJbmRvbmVzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyYXEiID4KICAgICAgICAgICAgSXJhcQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJcmVsYW5kIiA+CiAgICAgICAgICAgIElyZWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXNyYWVsIiA+CiAgICAgICAgICAgIElzcmFlbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJdGFseSIgPgogICAgICAgICAgICBJdGFseQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYW1haWNhIiA+CiAgICAgICAgICAgIEphbWFpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSmFwYW4iID4KICAgICAgICAgICAgSmFwYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSm9yZGFuIiA+CiAgICAgICAgICAgIEpvcmRhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLYXpha2hzdGFuIiA+CiAgICAgICAgICAgIEthemFraHN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2VueWEiID4KICAgICAgICAgICAgS2VueWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2lyaWJhdGkiID4KICAgICAgICAgICAgS2lyaWJhdGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJiMwMzk7cyBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGUmIzAzOTtzIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhLCBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBLb3JlYSwgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS3V3YWl0IiA+CiAgICAgICAgICAgIEt1d2FpdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLeXJneXpzdGFuIiA+CiAgICAgICAgICAgIEt5cmd5enN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGFvIFBlb3BsZSYjMDM5O3MgRGVtb2NyYXRpYyBSZXB1YmxpYyIgPgogICAgICAgICAgICBMYW8gUGVvcGxlJiMwMzk7cyBEZW1vY3JhdGljIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxhdHZpYSIgPgogICAgICAgICAgICBMYXR2aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGViYW5vbiIgPgogICAgICAgICAgICBMZWJhbm9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikxlc290aG8iID4KICAgICAgICAgICAgTGVzb3RobwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaWJlcmlhIiA+CiAgICAgICAgICAgIExpYmVyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgPgogICAgICAgICAgICBMaWJ5YW4gQXJhYiBKYW1haGlyaXlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpZWNodGVuc3RlaW4iID4KICAgICAgICAgICAgTGllY2h0ZW5zdGVpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaXRodWFuaWEiID4KICAgICAgICAgICAgTGl0aHVhbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikx1eGVtYm91cmciID4KICAgICAgICAgICAgTHV4ZW1ib3VyZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWNhbyIgPgogICAgICAgICAgICBNYWNhbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgTWFjZWRvbmlhLCB0aGUgRm9ybWVyIFl1Z29zbGF2IFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hZGFnYXNjYXIiID4KICAgICAgICAgICAgTWFkYWdhc2NhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWxhd2kiID4KICAgICAgICAgICAgTWFsYXdpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGF5c2lhIiA+CiAgICAgICAgICAgIE1hbGF5c2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGRpdmVzIiA+CiAgICAgICAgICAgIE1hbGRpdmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGkiID4KICAgICAgICAgICAgTWFsaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWx0YSIgPgogICAgICAgICAgICBNYWx0YQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXJzaGFsbCBJc2xhbmRzIiA+CiAgICAgICAgICAgIE1hcnNoYWxsIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFydGluaXF1ZSIgPgogICAgICAgICAgICBNYXJ0aW5pcXVlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hdXJpdGFuaWEiID4KICAgICAgICAgICAgTWF1cml0YW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXVyaXRpdXMiID4KICAgICAgICAgICAgTWF1cml0aXVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1heW90dGUiID4KICAgICAgICAgICAgTWF5b3R0ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNZXhpY28iID4KICAgICAgICAgICAgTWV4aWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgb2YiID4KICAgICAgICAgICAgTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb2xkb3ZhLCBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBNb2xkb3ZhLCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb25hY28iID4KICAgICAgICAgICAgTW9uYWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbmdvbGlhIiA+CiAgICAgICAgICAgIE1vbmdvbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbnRlbmVncm8iID4KICAgICAgICAgICAgTW9udGVuZWdybwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb250c2VycmF0IiA+CiAgICAgICAgICAgIE1vbnRzZXJyYXQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9yb2NjbyIgPgogICAgICAgICAgICBNb3JvY2NvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vemFtYmlxdWUiID4KICAgICAgICAgICAgTW96YW1iaXF1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNeWFubWFyIiA+CiAgICAgICAgICAgIE15YW5tYXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmFtaWJpYSIgPgogICAgICAgICAgICBOYW1pYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5hdXJ1IiA+CiAgICAgICAgICAgIE5hdXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5lcGFsIiA+CiAgICAgICAgICAgIE5lcGFsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzIEFudGlsbGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldyBDYWxlZG9uaWEiID4KICAgICAgICAgICAgTmV3IENhbGVkb25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOZXcgWmVhbGFuZCIgPgogICAgICAgICAgICBOZXcgWmVhbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaWNhcmFndWEiID4KICAgICAgICAgICAgTmljYXJhZ3VhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyIiA+CiAgICAgICAgICAgIE5pZ2VyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyaWEiID4KICAgICAgICAgICAgTmlnZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaXVlIiA+CiAgICAgICAgICAgIE5pdWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9yZm9sayBJc2xhbmQiID4KICAgICAgICAgICAgTm9yZm9sayBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiA+CiAgICAgICAgICAgIE5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J3YXkiID4KICAgICAgICAgICAgTm9yd2F5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik9tYW4iID4KICAgICAgICAgICAgT21hbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWtpc3RhbiIgPgogICAgICAgICAgICBQYWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxhdSIgPgogICAgICAgICAgICBQYWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiA+CiAgICAgICAgICAgIFBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFuYW1hIiA+CiAgICAgICAgICAgIFBhbmFtYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXB1YSBOZXcgR3VpbmVhIiA+CiAgICAgICAgICAgIFBhcHVhIE5ldyBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFyYWd1YXkiID4KICAgICAgICAgICAgUGFyYWd1YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGVydSIgPgogICAgICAgICAgICBQZXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBoaWxpcHBpbmVzIiA+CiAgICAgICAgICAgIFBoaWxpcHBpbmVzCiAgICAgICAgICA8
L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBpdGNhaXJuIiA+CiAgICAgICAgICAgIFBpdGNhaXJuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBvbGFuZCIgPgogICAgICAgICAgICBQb2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9ydHVnYWwiID4KICAgICAgICAgICAgUG9ydHVnYWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUHVlcnRvIFJpY28iID4KICAgICAgICAgICAgUHVlcnRvIFJpY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUWF0YXIiID4KICAgICAgICAgICAgUWF0YXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUmV1bmlvbiIgPgogICAgICAgICAgICBSZXVuaW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJvbWFuaWEiID4KICAgICAgICAgICAgUm9tYW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSdXNzaWFuIEZlZGVyYXRpb24iID4KICAgICAgICAgICAgUnVzc2lhbiBGZWRlcmF0aW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ3YW5kYSIgPgogICAgICAgICAgICBSd2FuZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgSGVsZW5hIiA+CiAgICAgICAgICAgIFNhaW50IEhlbGVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBLaXR0cyBhbmQgTmV2aXMiID4KICAgICAgICAgICAgU2FpbnQgS2l0dHMgYW5kIE5ldmlzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEx1Y2lhIiA+CiAgICAgICAgICAgIFNhaW50IEx1Y2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iID4KICAgICAgICAgICAgU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIgPgogICAgICAgICAgICBTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW1vYSIgPgogICAgICAgICAgICBTYW1vYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW4gTWFyaW5vIiA+CiAgICAgICAgICAgIFNhbiBNYXJpbm8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FvIFRvbWUgYW5kIFByaW5jaXBlIiA+CiAgICAgICAgICAgIFNhbyBUb21lIGFuZCBQcmluY2lwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYXVkaSBBcmFiaWEiID4KICAgICAgICAgICAgU2F1ZGkgQXJhYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlbmVnYWwiID4KICAgICAgICAgICAgU2VuZWdhbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTZXJiaWEiID4KICAgICAgICAgICAgU2VyYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNleWNoZWxsZXMiID4KICAgICAgICAgICAgU2V5Y2hlbGxlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTaWVycmEgTGVvbmUiID4KICAgICAgICAgICAgU2llcnJhIExlb25lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpbmdhcG9yZSIgPgogICAgICAgICAgICBTaW5nYXBvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmFraWEiID4KICAgICAgICAgICAgU2xvdmFraWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmVuaWEiID4KICAgICAgICAgICAgU2xvdmVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU29sb21vbiBJc2xhbmRzIiA+CiAgICAgICAgICAgIFNvbG9tb24gSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb21hbGlhIiA+CiAgICAgICAgICAgIFNvbWFsaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU291dGggQWZyaWNhIiA+CiAgICAgICAgICAgIFNvdXRoIEFmcmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgPgogICAgICAgICAgICBTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcGFpbiIgPgogICAgICAgICAgICBTcGFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcmkgTGFua2EiID4KICAgICAgICAgICAgU3JpIExhbmthCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1ZGFuIiA+CiAgICAgICAgICAgIFN1ZGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1cmluYW1lIiA+CiAgICAgICAgICAgIFN1cmluYW1lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iID4KICAgICAgICAgICAgU3ZhbGJhcmQgYW5kIEphbiBNYXllbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2F6aWxhbmQiID4KICAgICAgICAgICAgU3dhemlsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3ZWRlbiIgPgogICAgICAgICAgICBTd2VkZW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3dpdHplcmxhbmQiID4KICAgICAgICAgICAgU3dpdHplcmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3lyaWFuIEFyYWIgUmVwdWJsaWMiID4KICAgICAgICAgICAgU3lyaWFuIEFyYWIgUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgPgogICAgICAgICAgICBUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhamlraXN0YW4iID4KICAgICAgICAgICAgVGFqaWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIFRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGhhaWxhbmQiID4KICAgICAgICAgICAgVGhhaWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGltb3ItTGVzdGUiID4KICAgICAgICAgICAgVGltb3ItTGVzdGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVG9nbyIgPgogICAgICAgICAgICBUb2dvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRva2VsYXUiID4KICAgICAgICAgICAgVG9rZWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUb25nYSIgPgogICAgICAgICAgICBUb25nYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCBhbmQgVG9iYWdvIiA+CiAgICAgICAgICAgIFRyaW5pZGFkIGFuZCBUb2JhZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVuaXNpYSIgPgogICAgICAgICAgICBUdW5pc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtleSIgPgogICAgICAgICAgICBUdXJrZXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVya21lbmlzdGFuIiA+CiAgICAgICAgICAgIFR1cmttZW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiID4KICAgICAgICAgICAgVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1dmFsdSIgPgogICAgICAgICAgICBUdXZhbHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVWdhbmRhIiA+CiAgICAgICAgICAgIFVnYW5kYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVa3JhaW5lIiA+CiAgICAgICAgICAgIFVrcmFpbmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEFyYWIgRW1pcmF0ZXMiID4KICAgICAgICAgICAgVW5pdGVkIEFyYWIgRW1pcmF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEtpbmdkb20iID4KICAgICAgICAgICAgVW5pdGVkIEtpbmdkb20KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXJ1Z3VheSIgPgogICAgICAgICAgICBVcnVndWF5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlV6YmVraXN0YW4iID4KICAgICAgICAgICAgVXpiZWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWYW51YXR1IiA+CiAgICAgICAgICAgIFZhbnVhdHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmVuZXp1ZWxhIiA+CiAgICAgICAgICAgIFZlbmV6dWVsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaWV0bmFtIiA+CiAgICAgICAgICAgIFZpZXRuYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giID4KICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIEJyaXRpc2gKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIFUucy4iID4KICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIFUucy4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iV2FsbGlzIGFuZCBGdXR1bmEiID4KICAgICAgICAgICAgV2FsbGlzIGFuZCBGdXR1bmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iV2VzdGVybiBTYWhhcmEiID4KICAgICAgICAgICAgV2VzdGVybiBTYWhhcmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWWVtZW4iID4KICAgICAgICAgICAgWWVtZW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWmFtYmlhIiA+CiAgICAgICAgICAgIFphbWJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJaaW1iYWJ3ZSIgPgogICAgICAgICAgICBaaW1iYWJ3ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTRyIgPgogICAgICAgICAgICBTRwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA
8b3B0aW9uIHZhbHVlPSJDQU5BREEiID4KICAgICAgICAgICAgQ0FOQURBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhIiA+CiAgICAgICAgICAgIEtvcmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiIgPgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMdXhlbWJvdXJnaCIgPgogICAgICAgICAgICBMdXhlbWJvdXJnaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNWSIgPgogICAgICAgICAgICBNWQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFU1dBUlRJTkkiID4KICAgICAgICAgICAgRVNXQVJUSU5JCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImVTd2F0aW5pICIgPgogICAgICAgICAgICBlU3dhdGluaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTWiIgPgogICAgICAgICAgICBTWgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDQSIgPgogICAgICAgICAgICBDQQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVhdCBCcml0YWluIiA+CiAgICAgICAgICAgIEdyZWF0IEJyaXRhaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUnVzc2lhIiA+CiAgICAgICAgICAgIFJ1c3NpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25nIEtvbmcgU0FSIENoaW5hIiA+CiAgICAgICAgICAgIEhvbmcgS29uZyBTQVIgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTG9uZG9uIiA+CiAgICAgICAgICAgIExvbmRvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF9maWVsZDIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3ciPgogICAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgUHJpdmFjeSBQb2xpY3kqCiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9kaXY+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpZWxkWzJdW10iIHZhbHVlPSJ+fCI+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzJdW10iIHZhbHVlPSJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSIgY2xhc3M9ImFueSIgIHJlcXVpcmVkPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfMkkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpIj4KICAgICAgICAgICAgSSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQzIF9mdWxsX3dpZHRoICIgPgogICAgICA8ZGl2IGNsYXNzPSJfcm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgIENvbW11bmljYXRpb24gb3B0aW9ucwogICAgICAgIDwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0ifnwiPgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8zSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIj4KICAgICAgICAgICAgSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlciIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzNdW10iIHZhbHVlPSJJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlciI+CiAgICAgICAgICAgIEkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlcgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8zSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIgIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9Ikkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICIgICA+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZF8zSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIgIj4KICAgICAgICAgICAgSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2J1dHRvbi13cmFwcGVyIF9mdWxsX3dpZHRoIj4KICAgICAgPGJ1dHRvbiBpZD0iX2Zvcm1fOV9zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgIFN1Ym1pdAogICAgICA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2NsZWFyLWVsZW1lbnQiPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tdGhhbmsteW91IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgPC9kaXY+CjwvZm9ybT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5jZmllbGRzID0geyIxIjoiY291bnRyeSIsIjIiOiJwcml2YWN5X3BvbGljeSIsIjMiOiJjb21tdW5pY2F0aW9uX29wdGlvbnMifTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCB0aGFua195b3UgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS10aGFuay15b3UnKTsKICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1jb250ZW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB0aGFua195b3UuaW5uZXJIVE1MID0gbWVzc2FnZTsKICB0aGFua195b3Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICd1bmRlZmluZWQnICYmIHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLCBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIHdyYXBwZXIuY2xhc3NOYW1lID0gJ19mb3JtLWlubmVyJzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkXj0iX2Zvcm0iXVtpZCQ9Il9zdWJtaXQiXScpLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICBlcnIuYXBwZW5kQ2hpbGQoZGl2KTsKICB9Cn07CndpbmRvdy5fbG9hZF9zY3JpcHQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKSwgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHIgPSBmYWxzZTsKICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7CiAgICBzY3JpcHQuc3JjID0gdXJsOwogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfTsKKGZ1bmN0aW9uKCkgewogIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNlYXJjaCgiZXhjbHVkZWZvcm0iKSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDsgKScgKyBuYW1lICsgJz0oW147XSspJykpOwogICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwogIH0KICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHRpbWUgPSBub3cuZ2V0VGltZSgpOwogICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpOwogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICc9JyArIHZhbHVlICsgJzsgZXhwaXJlcz0nICsgbm93ICsgJztwYXRoPS8nOwogIH0KICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZX
ZlbnQsIGZ1bmMpIHsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvbGRGdW5jID0gZWxlbWVudFsnb24nICsgZXZlbnRdOwogICAgICBlbGVtZW50WydvbicgKyBldmVudF0gPSBmdW5jdGlvbigpIHsKICAgICAgICBvbGRGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfQogIH0KICB2YXIgX3JlbW92ZWQgPSBmYWxzZTsKICB2YXIgZm9ybV90b19zdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKTsKICB2YXIgYWxsSW5wdXRzID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSwgdG9vbHRpcHMgPSBbXSwgc3VibWl0dGVkID0gZmFsc2U7CgogIHZhciBnZXRVcmxQYXJhbSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciByZWdleFN0ciA9ICdbXD8mXScgKyBuYW1lICsgJz0oW14mI10qKSc7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIsICdpJykuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICByZXR1cm4gcmVzdWx0cyAhPSB1bmRlZmluZWQgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXSkgOiBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICAgIHRvb2x0aXBzID0gW107CiAgfTsKICB2YXIgcmVtb3ZlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgICAgICB0b29sdGlwcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfTsKICB2YXIgY3JlYXRlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtLCB0ZXh0KSB7CiAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgaWYgKGVsZW0udHlwZSAhPSAncmFkaW8nICYmIGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvcic7CiAgICAgIGFycm93LmNsYXNzTmFtZSA9ICdfZXJyb3ItYXJyb3cnOwogICAgICBpbm5lci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyJzsKICAgICAgaW5uZXIuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChhcnJvdyk7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoaW5uZXIpOwogICAgICBlbGVtLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodG9vbHRpcCk7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX25vX2Fycm93JzsKICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0OwogICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIGVsZW0pOwogICAgICBuZXdfdG9vbHRpcC5ub19hcnJvdyA9IHRydWU7CiAgICB9CiAgICBuZXdfdG9vbHRpcC50aXAgPSB0b29sdGlwOwogICAgbmV3X3Rvb2x0aXAuZWxlbSA9IGVsZW07CiAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgIHJldHVybiBuZXdfdG9vbHRpcDsKICB9OwogIHZhciByZXNpemVfdG9vbHRpcCA9IGZ1bmN0aW9uKHRvb2x0aXApIHsKICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc2Nyb2xsUG9zaXRpb24gPSByZWN0LnRvcCAtICgod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvYy5zY3JvbGxUb3ApICAtIChkb2MuY2xpZW50VG9wIHx8IDApKTsKICAgIGlmIChzY3JvbGxQb3NpdGlvbiA8IDQwKSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2JlbG93JzsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2Fib3ZlJzsKICAgIH0KICB9OwogIHZhciByZXNpemVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGlmIChfcmVtb3ZlZCkgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoIXRvb2x0aXBzW2ldLm5vX2Fycm93KSByZXNpemVfdG9vbHRpcCh0b29sdGlwc1tpXSk7CiAgICB9CiAgfTsKICB2YXIgdmFsaWRhdGVfZmllbGQgPSBmdW5jdGlvbihlbGVtLCByZW1vdmUpIHsKICAgIHZhciB0b29sdGlwID0gbnVsbCwgdmFsdWUgPSBlbGVtLnZhbHVlLCBub19lcnJvciA9IHRydWU7CiAgICByZW1vdmUgPyByZW1vdmVfdG9vbHRpcChlbGVtKSA6IGZhbHNlOwogICAgaWYgKGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSAhPT0gbnVsbCkgewogICAgICBpZiAoZWxlbS50eXBlID09ICdyYWRpbycgfHwgKGVsZW0udHlwZSA9PSAnY2hlY2tib3gnICYmIC9hbnkvLnRlc3QoZWxlbS5jbGFzc05hbWUpKSkgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV07CiAgICAgICAgaWYgKCEoZWxlbXMgaW5zdGFuY2VvZiBOb2RlTGlzdCB8fCBlbGVtcyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKSB8fCBlbGVtcy5sZW5ndGggPD0gMSkgewogICAgICAgICAgbm9fZXJyb3IgPSBlbGVtLmNoZWNrZWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW1zW2ldLmNoZWNrZWQpIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJQbGVhc2Ugc2VsZWN0IGFuIG9wdGlvbi4iKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50eXBlID09J2NoZWNrYm94JykgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV0sIGZvdW5kID0gZmFsc2UsIGVyciA9IFtdOwogICAgICAgIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoZWxlbXNbaV0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpID09PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgIGlmICghZm91bmQgJiYgZWxlbXNbaV0gIT09IGVsZW0pIHJldHVybiB0cnVlOwogICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgZWxlbXNbaV0uY2xhc3NOYW1lID0gZWxlbXNbaV0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgICAgICAgIGlmICghZWxlbXNbaV0uY2hlY2tlZCkgewogICAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgICBlcnIucHVzaCgiQ2hlY2tpbmcgJXMgaXMgcmVxdWlyZWQiLnJlcGxhY2UoIiVzIiwgZWxlbXNbaV0udmFsdWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sIGVyci5qb2luKCc8YnIvPicpKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICBpZiAoZWxlbS5tdWx0aXBsZSkgewogICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCAmJiAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJiYgZWxlbS5uYW1lID09ICdlbWFpbCcpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXltcK19hLXowLTktJyY9XSsoXC5bXCtfYS16MC05LSddKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sI
CJFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGRhdGUuIik7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5uYW1lID09ICdlbWFpbCcgfHwgZWwuZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsOwogIH07CiAgdmFyIHZhbGlkYXRlX2Zvcm0gPSBmdW5jdGlvbihlKSB7CiAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyksIG5vX2Vycm9yID0gdHJ1ZTsKICAgIGlmICghc3VibWl0dGVkKSB7CiAgICAgIHN1Ym1pdHRlZCA9IHRydWU7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICB2YXIgaW5wdXQgPSBhbGxJbnB1dHNbaV07CiAgICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGlucHV0KSkgewogICAgICAgICAgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHQnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3JhZGlvJyB8fCBpbnB1dC50eXBlID09ICdjaGVja2JveCcpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAgICAgdmFyIHJhZGlvcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsLm5hbWVdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBhZGRFdmVudChyYWRpb3NbaV0sICdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZChlbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKGlucHV0KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJlbW92ZV90b29sdGlwcygpOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICB2YXIgZWxlbSA9IGFsbElucHV0c1tpXTsKICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGVsZW0pKSB7CiAgICAgICAgaWYgKGVsZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAic2VsZWN0IikgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICYmIGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfQogICAgcmVzaXplX3Rvb2x0aXBzKCk7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICBhZGRFdmVudCh3aW5kb3csICdyZXNpemUnLCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJ3Njcm9sbCcsIHJlc2l6ZV90b29sdGlwcyk7CiAgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gbnVsbDsKICBpZiAodHlwZW9mIHNlcmlhbGl6ZSAhPT0gJ3VuZGVmaW5lZCcpIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IHdpbmRvdy5zZXJpYWxpemU7CiAgX2xvYWRfc2NyaXB0KCIvL2QzcnhhaWo1NnZqZWdlLmNsb3VkZnJvbnQubmV0L2Zvcm0tc2VyaWFsaXplLzAuMy9zZXJpYWxpemUubWluLmpzIiwgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJiBkaXNhYmxlIGl0IHVzaW5nIHBsYWluIGphdmFzY3JpcHQKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19mb3JtXzlfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKSk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwPycgKyBzZXJpYWxpemVkICsgJyZqc29ucD10cnVlJyk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTsKICBhZGRFdmVudChmb3JtX3RvX3N1Ym1pdCwgJ3N1Ym1pdCcsIGZvcm1fc3VibWl0KTsKfSkoKTsKCjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container admin_label=”Mobile” hundred_percent=”yes” 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” 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_size=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”2%” padding_right=”2%” padding_bottom=”2%” padding_left=”2%”][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”yes” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”” border_color=”” border_style=”solid” border_position=”all” padding_top=”2%” padding_right=”2%” padding_bottom=”2%” padding_left=”2%” margin_top=”0px” margin_bottom=”0px” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][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=””]
From Home to Canada: An AI Masterclass
In order to innovate, you must work with the right partners to achieve the right solutions. This is why we have partnered with Finance Montreal, the premier group promoting Québec’s financial services industry, and Ngee Ann Polytechnic Singapore to deliver an innovative blended training masterclass on Artificial Intelligence (AI) in Finance.
Suitable for professionals, technologists, or anyone keen on understanding disruptive technologies – the AI in Finance Masterclass is the first of its kind to blend both online training and physical seminar into the same programme. An in-person seminar will be held at the 2018 Canada Fintech Forum, in Montreal, on the 31st of October between 9.30 and 11am. Meanwhile, learners will be able to complete the currently available ‘AI in Finance’ online course before the event, at their convenience.
This online aspect helps learners acquire an appropriately structured foundation to understand and be part of the AI revolution in finance. Providing direct access to industry minds from global financial institutions and start-ups, the course also allows users exclusive insight into how AI is used across financial markets in the US, Asia and Europe. This leads to an understanding of key opportunity areas in Artificial Intelligence, as well as regulatory and pragmatic challenges of its use in financial services. Also, it will outline major analytical concepts driving AI – machine learning; deep learning; natural language processing; and Robotic Process Automation.
Those attending the physical seminar at the Palais des Congres de Montreal will be treated to an address from CFTE co-founder Huy Nguyen Trieu. He will host a panel discussion on AI in Finance in Canada with Manuel Morales (Associate Professor at University of Montreal). Both speakers are well-established thought leaders in fintech:
- Huy Nguyen Trieu is a leading mind in innovation and finance. He previously was a Managing Director at Citi, and remains the CEO of The Disruptive Group and a member of ESMA’s Consultative Working Group for financial innovation.
- Manuel Morales is an Associate Professor at the University of Montreal, and specialises in Financial and Actuarial Mathematics. Since 2011, he has been the Graduate Director of the M.Sc. program in Financial and Computational Mathematics.
The morning will also see Janos Barberis (Senior Lecturer at CFTE and CEO of SuperCharger, the largest FinTech accelerator in Asia) discussing the best practices for preparing a deck and pitching. This will be informed by his established track record in Fintech, with his multiple academically published books and articles informing how the industry is regulated today.
Later on, attendees will be placed in teams to work on application of AI in Finance; these groups will submit their deck and a recording of a 3-min pitch in a competition.
Those who complete the online course before the 25th of October will be honoured with a graduation ceremony, wherein they will receive a printed certificate and a CFTE alumni t-shirt. This will take place on the morning of the 31st of October.
If you wish to read more about the Fintech Masterclass at the 2018 Canada Fintech Forum, or the agenda of the general forum, please refer to this guide to register. (Please note: CFTE alumni and learners are eligible for a 10% discount – please send an email to events@cfte.education for details.)
For more information on the AI in Finance course, including how to begin your journey as part of the AI financial revolution, you can register for the online course here.
[/fusion_text][/fusion_builder_column][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_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ 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=”no”][fusion_code]PHN0eWxlPgogI19mb3JtXzlfIHsgZm9udC1zaXplOjE0cHg7IGxpbmUtaGVpZ2h0OjEuNjsgZm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOjA7IH0KICNfZm9ybV85XyAqIHsgb3V0bGluZTowOyB9CiAuX2Zvcm1faGlkZSB7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IH0KIC5fZm9ybV9zaG93IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9CiAjX2Zvcm1fOV8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV85Xy5fZm9ybS1ib3R0b20geyBib3R0b206MDsgfQogI19mb3JtXzlfLl9mb3JtLWxlZnQgeyBsZWZ0OjA7IH0KICNfZm9ybV85Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fOV8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzlfIC5fc3VibWl0IHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjE0cHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiM4ZjA3MDcgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzlfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5fZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbTozMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MTBweDsgY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOjMwcHg7IGZvbnQtd2VpZ2h0OjEwMDsgfQogI19mb3JtXzlfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWxhYmVsLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzlfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV85Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV85XyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV85XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzlfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgdG9wOi00MXB4OyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYmVsb3cgeyBwYWRkaW5nLXRvcDo0cHg7IHRvcDoxMDAlOyByaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93IHsgdG9wOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIgeyBwYWRkaW5nOjhweCAxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMzdjN2I7IGZvbnQtc2l6ZToxM3B4OyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgfQogI19mb3JtXzlfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fOV8gLl9idXR0b24td3JhcHBlciAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHsgcG9zaXRpb246c3RhdGljOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lci5fbm9fYXJyb3cgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV85XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1odG1sIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9CiAucGlrYS1zaW5nbGUgeyB6LWluZGV4OjEwMDAwMDAxICFpbXBvcnRhbnQ7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7IDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5Om5vbmU7IH0KICNfZm9ybV85XyB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBtaW4td2lkdGg6MTAwJTsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQogI19mb3JtXzlfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50IHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm0taW5uZXIgeyBkaXNwbGF5OmJsb2NrOyBtaW4td2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS10aXRsZSwjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRpdGxlIHsgZm9udC1zaXplOjEuMmVtOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS1lbGVtZW50LCNfZm9ybV85XyAuX2lubGluZS1zdHlsZSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV85XyBsYWJlbCwjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gdGV4dGFyZWE6bm90KC5nLXJlY2FwdGNoYS1yZXNwb25zZSkgeyBmbG9hdDpub25lOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cuX2NoZWNrYm94LXJhZGlvIGxhYmVsIHsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV85XyAuX3JvdywjX2Zvcm1fOV8gcCwjX2Zvcm1fOV8gbGFiZWwgeyBtYXJnaW4tYm90dG9tOjAuN2VtOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0icmFkaW8iXSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduO
m1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSArIHNwYW4gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzlfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlIHsgbWF4LXdpZHRoOjEwMCU7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0icmFkaW8iXSwjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDoxLjNlbTsgaGVpZ2h0OjEuM2VtOyBmb250LXNpemU6MWVtOyBtYXJnaW46MCAwLjNlbSAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9CiAjX2Zvcm1fOV8gYnV0dG9uW3R5cGU9InN1Ym1pdCJdIHsgcGFkZGluZzoyMHB4OyBmb250LXNpemU6MS41ZW07IH0KICNfZm9ybV85XyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbjoyMHB4IDAgMCAhaW1wb3J0YW50OyB9CiB9CiAjX2Zvcm1fOV8geyBwb3NpdGlvbjpyZWxhdGl2ZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW46MjVweCBhdXRvIDA7IHBhZGRpbmc6MjBweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7ICp6b29tOjE7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MHB4IHNvbGlkICNiMGIwYjAgIWltcG9ydGFudDsgd2lkdGg6NTAwcHg7IC1tb3otYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV85XzpiZWZvcmUsI19mb3JtXzlfOmFmdGVyIHsgY29udGVudDoiICI7IGRpc3BsYXk6dGFibGU7IH0KICNfZm9ybV85XzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHsgd2lkdGg6YXV0bzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgYnV0dG9uLl9pbmxpbmUtc3R5bGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjI3cHg7IH0KICNfZm9ybV85Xy5faW5saW5lLXN0eWxlIHAgeyBtYXJnaW46MDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRoYW5rLXlvdSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MThweDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgI19mb3JtXzlfLl9pbmxpbmUtZm9ybS5faW5saW5lLXN0eWxlIC5faW5saW5lLXN0eWxlLl9idXR0b24td3JhcHBlciB7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDowICFpbXBvcnRhbnQ7IH0KIH0KPC9zdHlsZT4KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwIiBpZD0iX2Zvcm1fOV8iIGNsYXNzPSJfZm9ybSBfZm9ybV85IF9pbmxpbmUtZm9ybSAgX2RhcmsiIG5vdmFsaWRhdGU+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idSIgdmFsdWU9IjkiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZiIgdmFsdWU9IjkiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icyIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjIiB2YWx1ZT0iMCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtIiB2YWx1ZT0iMCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzdWIiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idiIgdmFsdWU9IjIiIC8+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tY29udGVudCI+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NTQyNDM5ODIgX2Z1bGxfd2lkdGggX2NsZWFyIiA+CiAgICAgIDxkaXYgY2xhc3M9Il9mb3JtLXRpdGxlIj4KICAgICAgICBTdWJzY3JpYmUgdG8gb3VyIFdlZWtseSBOZXdzbGV0dGVyCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NjA5MzM0NzIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIEZpcnN0IE5hbWUqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlyc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGZpcnN0IG5hbWUiIHJlcXVpcmVkLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g0MjY0ODYwMCBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgTGFzdCBOYW1lKgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imxhc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGxhc3QgbmFtZSIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDA0OTc0OTE5IF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBFbWFpbCoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciBlbWFpbCIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQxIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBDb3VudHJ5KgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPHNlbGVjdCBuYW1lPSJmaWVsZFsxXSIgcmVxdWlyZWQ+CiAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBZmdoYW5pc3RhbiIgPgogICAgICAgICAgICBBZmdoYW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbGJhbmlhIiA+CiAgICAgICAgICAgIEFsYmFuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWxnZXJpYSIgPgogICAgICAgICAgICBBbGdlcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFtZXJpY2FuIFNhbW9hIiA+CiAgICAgICAgICAgIEFtZXJpY2FuIFNhbW9hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZG9ycmEiID4KICAgICAgICAgICAgQW5kb3JyYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbmdvbGEiID4KICAgICAgICAgICAgQW5nb2xhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZ3VpbGxhIiA+CiAgICAgICAgICAgIEFuZ3VpbGxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFudGFyY3RpY2EiID4KICAgICAgICAgICAgQW50YXJjdGljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbnRpZ3VhIGFuZCBCYXJidWRhIiA+CiAgICAgICAgICAgIEFudGlndWEgYW5kIEJhcmJ1ZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJnZW50aW5hIiA+CiAgICAgICAgICAgIEFyZ2VudGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcm1lbmlhIiA+CiAgICAgICAgICAgIEFybWVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJ1YmEiID4KICAgICAgICAgICAgQXJ1YmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXVzdHJhbGlhIiA+CiAgICAgICAgICAgIEF1c3RyYWxpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBdXN0cmlhIiA+CiAgICAgICAgICAgIEF1c3RyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXplcmJhaWphbiIgPgogICAgICAgICAgICBBemVyYmFpamFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhaGFtYXMiID4KICAgICAgICAgICAgQmFoYW1hcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYWhyYWluIiA+CiAgICAgICAgICAgIEJhaHJhaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFuZ2xhZGVzaCIgPgogICAgICAgICAgICBCYW5nbGFkZXNoCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhcmJhZG9zIiA+CiAgICAgICAgICAgIEJhcmJhZG9zCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGFydXMiID4KICAgICAgICAgICAgQmVsYXJ1cwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxnaXVtIiA+CiAgICAgICAgICAgIEJlbGdpdW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsaXplIiA+CiAgICAgICAgICAgIEJlbGl6ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZW5pbiIgPgogICAgICAgICAgICBCZW5pbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZXJtdWRhIiA+CiAgICAgICAgICAgIEJlcm11ZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmh1dGFuIiA+CiAgICAgICAgICAgIEJodXRhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb2xpdmlhIiA+CiAgICAgICAgICAgIEJvbGl2aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgPgogICAgICAgICAgICBCb3NuaWEgYW5kIEhlcnplZ292aW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdHN3YW5hIiA+CiAgICAgICAgICAgIEJvdHN3YW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdXZldCBJc2xhbmQiID4KICAgICAgICAgICAgQm91dmV0IElzbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcmF6aWwiID4KICAgICAgICAgICAgQnJhemlsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgPgogICAgICAgICAgICBCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJy
aXRvcnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJ1bmVpIERhcnVzc2FsYW0iID4KICAgICAgICAgICAgQnJ1bmVpIERhcnVzc2FsYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVsZ2FyaWEiID4KICAgICAgICAgICAgQnVsZ2FyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVya2luYSBGYXNvIiA+CiAgICAgICAgICAgIEJ1cmtpbmEgRmFzbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdXJ1bmRpIiA+CiAgICAgICAgICAgIEJ1cnVuZGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtYm9kaWEiID4KICAgICAgICAgICAgQ2FtYm9kaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtZXJvb24iID4KICAgICAgICAgICAgQ2FtZXJvb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FuYWRhIiA+CiAgICAgICAgICAgIENhbmFkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYXBlIFZlcmRlIiA+CiAgICAgICAgICAgIENhcGUgVmVyZGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2F5bWFuIElzbGFuZHMiID4KICAgICAgICAgICAgQ2F5bWFuIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiA+CiAgICAgICAgICAgIENlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGFkIiA+CiAgICAgICAgICAgIENoYWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hpbGUiID4KICAgICAgICAgICAgQ2hpbGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hpbmEiID4KICAgICAgICAgICAgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hyaXN0bWFzIElzbGFuZCIgPgogICAgICAgICAgICBDaHJpc3RtYXMgSXNsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiA+CiAgICAgICAgICAgIENvY29zIChLZWVsaW5nKSBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbG9tYmlhIiA+CiAgICAgICAgICAgIENvbG9tYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbW9yb3MiID4KICAgICAgICAgICAgQ29tb3JvcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbyIgPgogICAgICAgICAgICBDb25nbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlIiA+CiAgICAgICAgICAgIENvbmdvLCB0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29vayBJc2xhbmRzIiA+CiAgICAgICAgICAgIENvb2sgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb3N0YSBSaWNhIiA+CiAgICAgICAgICAgIENvc3RhIFJpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ290ZSBEJiMwMzk7SXZvaXJlIiA+CiAgICAgICAgICAgIENvdGUgRCYjMDM5O0l2b2lyZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDcm9hdGlhIiA+CiAgICAgICAgICAgIENyb2F0aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3ViYSIgPgogICAgICAgICAgICBDdWJhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN5cHJ1cyIgPgogICAgICAgICAgICBDeXBydXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3plY2ggUmVwdWJsaWMiID4KICAgICAgICAgICAgQ3plY2ggUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRGVubWFyayIgPgogICAgICAgICAgICBEZW5tYXJrCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRqaWJvdXRpIiA+CiAgICAgICAgICAgIERqaWJvdXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhIiA+CiAgICAgICAgICAgIERvbWluaWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhbiBSZXB1YmxpYyIgPgogICAgICAgICAgICBEb21pbmljYW4gUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWN1YWRvciIgPgogICAgICAgICAgICBFY3VhZG9yCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVneXB0IiA+CiAgICAgICAgICAgIEVneXB0CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVsIFNhbHZhZG9yIiA+CiAgICAgICAgICAgIEVsIFNhbHZhZG9yCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVxdWF0b3JpYWwgR3VpbmVhIiA+CiAgICAgICAgICAgIEVxdWF0b3JpYWwgR3VpbmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVyaXRyZWEiID4KICAgICAgICAgICAgRXJpdHJlYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFc3RvbmlhIiA+CiAgICAgICAgICAgIEVzdG9uaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXRoaW9waWEiID4KICAgICAgICAgICAgRXRoaW9waWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIiA+CiAgICAgICAgICAgIEZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGYXJvZSBJc2xhbmRzIiA+CiAgICAgICAgICAgIEZhcm9lIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmlqaSIgPgogICAgICAgICAgICBGaWppCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZpbmxhbmQiID4KICAgICAgICAgICAgRmlubGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmFuY2UiID4KICAgICAgICAgICAgRnJhbmNlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyZW5jaCBHdWlhbmEiID4KICAgICAgICAgICAgRnJlbmNoIEd1aWFuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggUG9seW5lc2lhIiA+CiAgICAgICAgICAgIEZyZW5jaCBQb2x5bmVzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiA+CiAgICAgICAgICAgIEZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHYWJvbiIgPgogICAgICAgICAgICBHYWJvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHYW1iaWEiID4KICAgICAgICAgICAgR2FtYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikdlb3JnaWEiID4KICAgICAgICAgICAgR2VvcmdpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHZXJtYW55IiA+CiAgICAgICAgICAgIEdlcm1hbnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2hhbmEiID4KICAgICAgICAgICAgR2hhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2licmFsdGFyIiA+CiAgICAgICAgICAgIEdpYnJhbHRhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVlY2UiID4KICAgICAgICAgICAgR3JlZWNlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWVubGFuZCIgPgogICAgICAgICAgICBHcmVlbmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlbmFkYSIgPgogICAgICAgICAgICBHcmVuYWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YWRlbG91cGUiID4KICAgICAgICAgICAgR3VhZGVsb3VwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWFtIiA+CiAgICAgICAgICAgIEd1YW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhdGVtYWxhIiA+CiAgICAgICAgICAgIEd1YXRlbWFsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWVybnNleSIgPgogICAgICAgICAgICBHdWVybnNleQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWluZWEiID4KICAgICAgICAgICAgR3VpbmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1aW5lYS1CaXNzYXUiID4KICAgICAgICAgICAgR3VpbmVhLUJpc3NhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdXlhbmEiID4KICAgICAgICAgICAgR3V5YW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhhaXRpIiA+CiAgICAgICAgICAgIEhhaXRpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcyIgPgogICAgICAgICAgICBIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkiID4KICAgICAgICAgICAgSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZHVyYXMiID4KICAgICAgICAgICAgSG9uZHVyYXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZyBLb25nIiA+CiAgICAgICAgICAgIEhvbmcgS29uZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIdW5nYXJ5IiA+CiAgICAgICAgICAgIEh1bmdhcnkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSWNlbGFuZCIgPgogICAgICAgICAgICBJY2VsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkluZGlhIiA+CiAgICAgICAgICAgIEluZGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkluZG9uZXNpYSIgPgogICAgICAgICAgICBJbmRvbmVzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyYXEiID4KICAgICAgICAgICAgSXJhcQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJcmVsYW5kIiA+CiAgICAgICAgICAgIElyZWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXNyYWVsIiA+CiAgICA
gICAgICAgIElzcmFlbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJdGFseSIgPgogICAgICAgICAgICBJdGFseQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYW1haWNhIiA+CiAgICAgICAgICAgIEphbWFpY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSmFwYW4iID4KICAgICAgICAgICAgSmFwYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSm9yZGFuIiA+CiAgICAgICAgICAgIEpvcmRhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLYXpha2hzdGFuIiA+CiAgICAgICAgICAgIEthemFraHN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2VueWEiID4KICAgICAgICAgICAgS2VueWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2lyaWJhdGkiID4KICAgICAgICAgICAgS2lyaWJhdGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJiMwMzk7cyBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGUmIzAzOTtzIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhLCBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBLb3JlYSwgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS3V3YWl0IiA+CiAgICAgICAgICAgIEt1d2FpdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLeXJneXpzdGFuIiA+CiAgICAgICAgICAgIEt5cmd5enN0YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGFvIFBlb3BsZSYjMDM5O3MgRGVtb2NyYXRpYyBSZXB1YmxpYyIgPgogICAgICAgICAgICBMYW8gUGVvcGxlJiMwMzk7cyBEZW1vY3JhdGljIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxhdHZpYSIgPgogICAgICAgICAgICBMYXR2aWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGViYW5vbiIgPgogICAgICAgICAgICBMZWJhbm9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikxlc290aG8iID4KICAgICAgICAgICAgTGVzb3RobwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaWJlcmlhIiA+CiAgICAgICAgICAgIExpYmVyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgPgogICAgICAgICAgICBMaWJ5YW4gQXJhYiBKYW1haGlyaXlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpZWNodGVuc3RlaW4iID4KICAgICAgICAgICAgTGllY2h0ZW5zdGVpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaXRodWFuaWEiID4KICAgICAgICAgICAgTGl0aHVhbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikx1eGVtYm91cmciID4KICAgICAgICAgICAgTHV4ZW1ib3VyZwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWNhbyIgPgogICAgICAgICAgICBNYWNhbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgTWFjZWRvbmlhLCB0aGUgRm9ybWVyIFl1Z29zbGF2IFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hZGFnYXNjYXIiID4KICAgICAgICAgICAgTWFkYWdhc2NhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWxhd2kiID4KICAgICAgICAgICAgTWFsYXdpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGF5c2lhIiA+CiAgICAgICAgICAgIE1hbGF5c2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGRpdmVzIiA+CiAgICAgICAgICAgIE1hbGRpdmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGkiID4KICAgICAgICAgICAgTWFsaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYWx0YSIgPgogICAgICAgICAgICBNYWx0YQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXJzaGFsbCBJc2xhbmRzIiA+CiAgICAgICAgICAgIE1hcnNoYWxsIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFydGluaXF1ZSIgPgogICAgICAgICAgICBNYXJ0aW5pcXVlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hdXJpdGFuaWEiID4KICAgICAgICAgICAgTWF1cml0YW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXVyaXRpdXMiID4KICAgICAgICAgICAgTWF1cml0aXVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1heW90dGUiID4KICAgICAgICAgICAgTWF5b3R0ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNZXhpY28iID4KICAgICAgICAgICAgTWV4aWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgb2YiID4KICAgICAgICAgICAgTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb2xkb3ZhLCBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBNb2xkb3ZhLCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb25hY28iID4KICAgICAgICAgICAgTW9uYWNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbmdvbGlhIiA+CiAgICAgICAgICAgIE1vbmdvbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbnRlbmVncm8iID4KICAgICAgICAgICAgTW9udGVuZWdybwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb250c2VycmF0IiA+CiAgICAgICAgICAgIE1vbnRzZXJyYXQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9yb2NjbyIgPgogICAgICAgICAgICBNb3JvY2NvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vemFtYmlxdWUiID4KICAgICAgICAgICAgTW96YW1iaXF1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNeWFubWFyIiA+CiAgICAgICAgICAgIE15YW5tYXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmFtaWJpYSIgPgogICAgICAgICAgICBOYW1pYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5hdXJ1IiA+CiAgICAgICAgICAgIE5hdXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5lcGFsIiA+CiAgICAgICAgICAgIE5lcGFsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIEFudGlsbGVzIiA+CiAgICAgICAgICAgIE5ldGhlcmxhbmRzIEFudGlsbGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldyBDYWxlZG9uaWEiID4KICAgICAgICAgICAgTmV3IENhbGVkb25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOZXcgWmVhbGFuZCIgPgogICAgICAgICAgICBOZXcgWmVhbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaWNhcmFndWEiID4KICAgICAgICAgICAgTmljYXJhZ3VhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyIiA+CiAgICAgICAgICAgIE5pZ2VyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pZ2VyaWEiID4KICAgICAgICAgICAgTmlnZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaXVlIiA+CiAgICAgICAgICAgIE5pdWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9yZm9sayBJc2xhbmQiID4KICAgICAgICAgICAgTm9yZm9sayBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiA+CiAgICAgICAgICAgIE5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J3YXkiID4KICAgICAgICAgICAgTm9yd2F5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik9tYW4iID4KICAgICAgICAgICAgT21hbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWtpc3RhbiIgPgogICAgICAgICAgICBQYWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxhdSIgPgogICAgICAgICAgICBQYWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiA+CiAgICAgICAgICAgIFBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFuYW1hIiA+CiAgICAgICAgICAgIFBhbmFtYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXB1YSBOZXcgR3VpbmVhIiA+CiAgICAgICAgICAgIFBhcHVhIE5ldyBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFyYWd1YXkiID4KICAgICAgICAgICAgUGFyYWd1YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGVydSIgPgogICAgICAgICAgICBQZXJ1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBoaWxpcHBpbmVzIiA+CiAgICAgICAgICAgIFBoaWxpcHBpbmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBpdGNhaXJuIiA+CiAgICAgICAgICAgIFBpdGNhaXJuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBvbGFuZCIgPgogICAgICAgICAgICBQb2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9ydHVnYWwiID4KICAgICAgICAgICAgUG9ydHVnYWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUHVlcnRvIFJpY28iID4KICAgICAgICAgICAgUHVlcnRvIFJpY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUWF0YXIiID4KICAgICAgICAgICAgUWF0YXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUmV1bmlvbiIgPgogICAgICAgICAgICBSZXVuaW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJvbWFuaWEiID4KICAgICAgICAgICAgUm9tYW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIH
ZhbHVlPSJSdXNzaWFuIEZlZGVyYXRpb24iID4KICAgICAgICAgICAgUnVzc2lhbiBGZWRlcmF0aW9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ3YW5kYSIgPgogICAgICAgICAgICBSd2FuZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgSGVsZW5hIiA+CiAgICAgICAgICAgIFNhaW50IEhlbGVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBLaXR0cyBhbmQgTmV2aXMiID4KICAgICAgICAgICAgU2FpbnQgS2l0dHMgYW5kIE5ldmlzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEx1Y2lhIiA+CiAgICAgICAgICAgIFNhaW50IEx1Y2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iID4KICAgICAgICAgICAgU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyIgPgogICAgICAgICAgICBTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW1vYSIgPgogICAgICAgICAgICBTYW1vYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW4gTWFyaW5vIiA+CiAgICAgICAgICAgIFNhbiBNYXJpbm8KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FvIFRvbWUgYW5kIFByaW5jaXBlIiA+CiAgICAgICAgICAgIFNhbyBUb21lIGFuZCBQcmluY2lwZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYXVkaSBBcmFiaWEiID4KICAgICAgICAgICAgU2F1ZGkgQXJhYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlbmVnYWwiID4KICAgICAgICAgICAgU2VuZWdhbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTZXJiaWEiID4KICAgICAgICAgICAgU2VyYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNleWNoZWxsZXMiID4KICAgICAgICAgICAgU2V5Y2hlbGxlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTaWVycmEgTGVvbmUiID4KICAgICAgICAgICAgU2llcnJhIExlb25lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpbmdhcG9yZSIgPgogICAgICAgICAgICBTaW5nYXBvcmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmFraWEiID4KICAgICAgICAgICAgU2xvdmFraWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmVuaWEiID4KICAgICAgICAgICAgU2xvdmVuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU29sb21vbiBJc2xhbmRzIiA+CiAgICAgICAgICAgIFNvbG9tb24gSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb21hbGlhIiA+CiAgICAgICAgICAgIFNvbWFsaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU291dGggQWZyaWNhIiA+CiAgICAgICAgICAgIFNvdXRoIEFmcmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgPgogICAgICAgICAgICBTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcGFpbiIgPgogICAgICAgICAgICBTcGFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTcmkgTGFua2EiID4KICAgICAgICAgICAgU3JpIExhbmthCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1ZGFuIiA+CiAgICAgICAgICAgIFN1ZGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN1cmluYW1lIiA+CiAgICAgICAgICAgIFN1cmluYW1lCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iID4KICAgICAgICAgICAgU3ZhbGJhcmQgYW5kIEphbiBNYXllbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2F6aWxhbmQiID4KICAgICAgICAgICAgU3dhemlsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3ZWRlbiIgPgogICAgICAgICAgICBTd2VkZW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3dpdHplcmxhbmQiID4KICAgICAgICAgICAgU3dpdHplcmxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3lyaWFuIEFyYWIgUmVwdWJsaWMiID4KICAgICAgICAgICAgU3lyaWFuIEFyYWIgUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgPgogICAgICAgICAgICBUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhamlraXN0YW4iID4KICAgICAgICAgICAgVGFqaWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIFRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGhhaWxhbmQiID4KICAgICAgICAgICAgVGhhaWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGltb3ItTGVzdGUiID4KICAgICAgICAgICAgVGltb3ItTGVzdGUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVG9nbyIgPgogICAgICAgICAgICBUb2dvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRva2VsYXUiID4KICAgICAgICAgICAgVG9rZWxhdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUb25nYSIgPgogICAgICAgICAgICBUb25nYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCBhbmQgVG9iYWdvIiA+CiAgICAgICAgICAgIFRyaW5pZGFkIGFuZCBUb2JhZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVuaXNpYSIgPgogICAgICAgICAgICBUdW5pc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtleSIgPgogICAgICAgICAgICBUdXJrZXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVya21lbmlzdGFuIiA+CiAgICAgICAgICAgIFR1cmttZW5pc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiID4KICAgICAgICAgICAgVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1dmFsdSIgPgogICAgICAgICAgICBUdXZhbHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVWdhbmRhIiA+CiAgICAgICAgICAgIFVnYW5kYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVa3JhaW5lIiA+CiAgICAgICAgICAgIFVrcmFpbmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEFyYWIgRW1pcmF0ZXMiID4KICAgICAgICAgICAgVW5pdGVkIEFyYWIgRW1pcmF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEtpbmdkb20iID4KICAgICAgICAgICAgVW5pdGVkIEtpbmdkb20KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgPgogICAgICAgICAgICBVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXJ1Z3VheSIgPgogICAgICAgICAgICBVcnVndWF5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlV6YmVraXN0YW4iID4KICAgICAgICAgICAgVXpiZWtpc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWYW51YXR1IiA+CiAgICAgICAgICAgIFZhbnVhdHUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmVuZXp1ZWxhIiA+CiAgICAgICAgICAgIFZlbmV6dWVsYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaWV0bmFtIiA+CiAgICAgICAgICAgIFZpZXRuYW0KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giID4KICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIEJyaXRpc2gKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIFUucy4iID4KICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIFUucy4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iV2FsbGlzIGFuZCBGdXR1bmEiID4KICAgICAgICAgICAgV2FsbGlzIGFuZCBGdXR1bmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iV2VzdGVybiBTYWhhcmEiID4KICAgICAgICAgICAgV2VzdGVybiBTYWhhcmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWWVtZW4iID4KICAgICAgICAgICAgWWVtZW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWmFtYmlhIiA+CiAgICAgICAgICAgIFphbWJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJaaW1iYWJ3ZSIgPgogICAgICAgICAgICBaaW1iYWJ3ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTRyIgPgogICAgICAgICAgICBTRwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDQU5BREEiID4KICAgICAgICAgICAgQ0FOQURBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktvcmVhIiA+CiAgICAgICAgICAgIEtvcmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiIgPgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMdXhlbWJvdXJnaCIgPgogICAgICAgICAgICBMdXhlbWJvdXJnaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNWSIgPgogICAgICAgICAgICBNWQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFU1dBUlRJTkkiID4KICAgICAgICAgICAgRVNXQVJUSU5JCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImVTd2F0aW5pICIgPgogICAgICAgICAgICBlU3dhdGluaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTWiIgPgogICAgICAgICAgICBTWgogICAgICAgICAgPC9vcHRpb24+CiAgICAgI
CAgICA8b3B0aW9uIHZhbHVlPSJDQSIgPgogICAgICAgICAgICBDQQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVhdCBCcml0YWluIiA+CiAgICAgICAgICAgIEdyZWF0IEJyaXRhaW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUnVzc2lhIiA+CiAgICAgICAgICAgIFJ1c3NpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25nIEtvbmcgU0FSIENoaW5hIiA+CiAgICAgICAgICAgIEhvbmcgS29uZyBTQVIgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTG9uZG9uIiA+CiAgICAgICAgICAgIExvbmRvbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF9maWVsZDIgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3ciPgogICAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgUHJpdmFjeSBQb2xpY3kqCiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9kaXY+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpZWxkWzJdW10iIHZhbHVlPSJ+fCI+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzJdW10iIHZhbHVlPSJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSIgY2xhc3M9ImFueSIgIHJlcXVpcmVkPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfMkkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpIj4KICAgICAgICAgICAgSSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQzIF9mdWxsX3dpZHRoICIgPgogICAgICA8ZGl2IGNsYXNzPSJfcm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgIENvbW11bmljYXRpb24gb3B0aW9ucwogICAgICAgIDwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0ifnwiPgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8zSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIj4KICAgICAgICAgICAgSSYjMDM5O20gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlciIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzNdW10iIHZhbHVlPSJJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlciI+CiAgICAgICAgICAgIEkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGdlbmVyYWwgbmV3c2xldHRlcgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8zSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIgIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9Ikkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICIgICA+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZF8zSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIgIj4KICAgICAgICAgICAgSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZXZlbnRzIG5ld3NsZXR0ZXIKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2J1dHRvbi13cmFwcGVyIF9mdWxsX3dpZHRoIj4KICAgICAgPGJ1dHRvbiBpZD0iX2Zvcm1fOV9zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgIFN1Ym1pdAogICAgICA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2NsZWFyLWVsZW1lbnQiPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tdGhhbmsteW91IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgPC9kaXY+CjwvZm9ybT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5jZmllbGRzID0geyIxIjoiY291bnRyeSIsIjIiOiJwcml2YWN5X3BvbGljeSIsIjMiOiJjb21tdW5pY2F0aW9uX29wdGlvbnMifTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCB0aGFua195b3UgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS10aGFuay15b3UnKTsKICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1jb250ZW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB0aGFua195b3UuaW5uZXJIVE1MID0gbWVzc2FnZTsKICB0aGFua195b3Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICd1bmRlZmluZWQnICYmIHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLCBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIHdyYXBwZXIuY2xhc3NOYW1lID0gJ19mb3JtLWlubmVyJzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkXj0iX2Zvcm0iXVtpZCQ9Il9zdWJtaXQiXScpLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICBlcnIuYXBwZW5kQ2hpbGQoZGl2KTsKICB9Cn07CndpbmRvdy5fbG9hZF9zY3JpcHQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKSwgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHIgPSBmYWxzZTsKICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7CiAgICBzY3JpcHQuc3JjID0gdXJsOwogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfTsKKGZ1bmN0aW9uKCkgewogIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNlYXJjaCgiZXhjbHVkZWZvcm0iKSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDsgKScgKyBuYW1lICsgJz0oW147XSspJykpOwogICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwogIH0KICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHRpbWUgPSBub3cuZ2V0VGltZSgpOwogICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpOwogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICc9JyArIHZhbHVlICsgJzsgZXhwaXJlcz0nICsgbm93ICsgJztwYXRoPS8nOwogIH0KICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGZ1bmMpIHsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvbGRGdW5jID0gZWxlbWVudFsnb24nICsgZXZlbnRdOwogICAgICBlbGVtZW50WydvbicgKyBldmVudF0gPSBmdW5jdGlvbigpIHsKICAgICAgICBvbGRGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfQogIH0KICB2YXIgX3JlbW92ZWQgPSBmYWxzZTsKICB2YXIgZm9ybV90b19zdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKTsKICB2YXIgYWxsSW5wdXRzID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSwgdG9vbHRpcHMgPSBbXSwgc3VibWl0dGVkID0gZmFsc2U7CgogIHZhciBnZXRVcmxQYXJhbSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciByZWdleFN0ciA9ICdbXD8mXScgKyBuYW1lICsgJz0oW14m
I10qKSc7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIsICdpJykuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICByZXR1cm4gcmVzdWx0cyAhPSB1bmRlZmluZWQgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXSkgOiBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICAgIHRvb2x0aXBzID0gW107CiAgfTsKICB2YXIgcmVtb3ZlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgICAgICB0b29sdGlwcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfTsKICB2YXIgY3JlYXRlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtLCB0ZXh0KSB7CiAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgaWYgKGVsZW0udHlwZSAhPSAncmFkaW8nICYmIGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvcic7CiAgICAgIGFycm93LmNsYXNzTmFtZSA9ICdfZXJyb3ItYXJyb3cnOwogICAgICBpbm5lci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyJzsKICAgICAgaW5uZXIuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChhcnJvdyk7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoaW5uZXIpOwogICAgICBlbGVtLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodG9vbHRpcCk7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX25vX2Fycm93JzsKICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0OwogICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIGVsZW0pOwogICAgICBuZXdfdG9vbHRpcC5ub19hcnJvdyA9IHRydWU7CiAgICB9CiAgICBuZXdfdG9vbHRpcC50aXAgPSB0b29sdGlwOwogICAgbmV3X3Rvb2x0aXAuZWxlbSA9IGVsZW07CiAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgIHJldHVybiBuZXdfdG9vbHRpcDsKICB9OwogIHZhciByZXNpemVfdG9vbHRpcCA9IGZ1bmN0aW9uKHRvb2x0aXApIHsKICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc2Nyb2xsUG9zaXRpb24gPSByZWN0LnRvcCAtICgod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvYy5zY3JvbGxUb3ApICAtIChkb2MuY2xpZW50VG9wIHx8IDApKTsKICAgIGlmIChzY3JvbGxQb3NpdGlvbiA8IDQwKSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2JlbG93JzsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2Fib3ZlJzsKICAgIH0KICB9OwogIHZhciByZXNpemVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGlmIChfcmVtb3ZlZCkgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoIXRvb2x0aXBzW2ldLm5vX2Fycm93KSByZXNpemVfdG9vbHRpcCh0b29sdGlwc1tpXSk7CiAgICB9CiAgfTsKICB2YXIgdmFsaWRhdGVfZmllbGQgPSBmdW5jdGlvbihlbGVtLCByZW1vdmUpIHsKICAgIHZhciB0b29sdGlwID0gbnVsbCwgdmFsdWUgPSBlbGVtLnZhbHVlLCBub19lcnJvciA9IHRydWU7CiAgICByZW1vdmUgPyByZW1vdmVfdG9vbHRpcChlbGVtKSA6IGZhbHNlOwogICAgaWYgKGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSAhPT0gbnVsbCkgewogICAgICBpZiAoZWxlbS50eXBlID09ICdyYWRpbycgfHwgKGVsZW0udHlwZSA9PSAnY2hlY2tib3gnICYmIC9hbnkvLnRlc3QoZWxlbS5jbGFzc05hbWUpKSkgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV07CiAgICAgICAgaWYgKCEoZWxlbXMgaW5zdGFuY2VvZiBOb2RlTGlzdCB8fCBlbGVtcyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKSB8fCBlbGVtcy5sZW5ndGggPD0gMSkgewogICAgICAgICAgbm9fZXJyb3IgPSBlbGVtLmNoZWNrZWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW1zW2ldLmNoZWNrZWQpIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJQbGVhc2Ugc2VsZWN0IGFuIG9wdGlvbi4iKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50eXBlID09J2NoZWNrYm94JykgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV0sIGZvdW5kID0gZmFsc2UsIGVyciA9IFtdOwogICAgICAgIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoZWxlbXNbaV0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpID09PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgIGlmICghZm91bmQgJiYgZWxlbXNbaV0gIT09IGVsZW0pIHJldHVybiB0cnVlOwogICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgZWxlbXNbaV0uY2xhc3NOYW1lID0gZWxlbXNbaV0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgICAgICAgIGlmICghZWxlbXNbaV0uY2hlY2tlZCkgewogICAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgICBlcnIucHVzaCgiQ2hlY2tpbmcgJXMgaXMgcmVxdWlyZWQiLnJlcGxhY2UoIiVzIiwgZWxlbXNbaV0udmFsdWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sIGVyci5qb2luKCc8YnIvPicpKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICBpZiAoZWxlbS5tdWx0aXBsZSkgewogICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCAmJiAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJiYgZWxlbS5uYW1lID09ICdlbWFpbCcpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXltcK19hLXowLTktJyY9XSsoXC5bXCtfYS16MC05LSddKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGRhdGUuIik7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5uYW1lID09ICdlbWFpbCcgfHwgZWwuZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsOwogIH07CiAgdmFyIHZhbGlkYXRlX2Zvcm0gPSBmdW5jdGlvbihlKSB7CiAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQ
ucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyksIG5vX2Vycm9yID0gdHJ1ZTsKICAgIGlmICghc3VibWl0dGVkKSB7CiAgICAgIHN1Ym1pdHRlZCA9IHRydWU7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICB2YXIgaW5wdXQgPSBhbGxJbnB1dHNbaV07CiAgICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGlucHV0KSkgewogICAgICAgICAgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHQnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3JhZGlvJyB8fCBpbnB1dC50eXBlID09ICdjaGVja2JveCcpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAgICAgdmFyIHJhZGlvcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsLm5hbWVdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBhZGRFdmVudChyYWRpb3NbaV0sICdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZChlbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKGlucHV0KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJlbW92ZV90b29sdGlwcygpOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICB2YXIgZWxlbSA9IGFsbElucHV0c1tpXTsKICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGVsZW0pKSB7CiAgICAgICAgaWYgKGVsZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAic2VsZWN0IikgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICYmIGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfQogICAgcmVzaXplX3Rvb2x0aXBzKCk7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICBhZGRFdmVudCh3aW5kb3csICdyZXNpemUnLCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJ3Njcm9sbCcsIHJlc2l6ZV90b29sdGlwcyk7CiAgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gbnVsbDsKICBpZiAodHlwZW9mIHNlcmlhbGl6ZSAhPT0gJ3VuZGVmaW5lZCcpIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IHdpbmRvdy5zZXJpYWxpemU7CiAgX2xvYWRfc2NyaXB0KCIvL2QzcnhhaWo1NnZqZWdlLmNsb3VkZnJvbnQubmV0L2Zvcm0tc2VyaWFsaXplLzAuMy9zZXJpYWxpemUubWluLmpzIiwgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJiBkaXNhYmxlIGl0IHVzaW5nIHBsYWluIGphdmFzY3JpcHQKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19mb3JtXzlfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKSk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwPycgKyBzZXJpYWxpemVkICsgJyZqc29ucD10cnVlJyk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTsKICBhZGRFdmVudChmb3JtX3RvX3N1Ym1pdCwgJ3N1Ym1pdCcsIGZvcm1fc3VibWl0KTsKfSkoKTsKCjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]