Пожалуйста оцените эту страницу: -13+1

Это старая версия документа!


0-TBD Используйте для моделирования межпроцессного взаимодействия событие-условие

Событие-сообщение создает тесную связь между процессами: процесс-отправитель должен знать внутреннее устройство процесса получателя. Событие-условие позволяет реализовать более технологичную, слабосвязную процессную архитектуру.

Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxkZWZpbml0aW9ucyB4bWxucz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTCIgeG1sbnM6YnBtbmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L0RJIiB4bWxuczpvbWdkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOm9tZ2RjPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9EQyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9InNpZC0zODQyMmZhZS1lMDNlLTQzYTMtYmVmNC1iZDMzYjMyMDQxYjIiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vYnBtbiIgZXhwb3J0ZXI9Imh0dHA6Ly9icG1uLmlvIiBleHBvcnRlclZlcnNpb249IjAuMTAuMSI+CiAgPGNvbGxhYm9yYXRpb24gaWQ9IkNvbGxhYm9yYXRpb25fMWIxb3QxYyI+CiAgICA8cGFydGljaXBhbnQgaWQ9IlBhcnRpY2lwYW50XzBpemt0ZG0iIG5hbWU9ItCe0YIg0LfQsNC60LDQt9CwINC00L4g0L7Qv9C70LDRgtGLIiBwcm9jZXNzUmVmPSJQcm9jZXNzXzEiIC8+CiAgICA8cGFydGljaXBhbnQgaWQ9IlBhcnRpY2lwYW50XzBwZm5tbG8iIG5hbWU9ItCe0LHRgNCw0LHQvtGC0LrQsCDQstGL0L/QuNGB0LrQuCDQsdCw0L3QutCwIiBwcm9jZXNzUmVmPSJQcm9jZXNzXzF3bGY1bmciIC8+CiAgPC9jb2xsYWJvcmF0aW9uPgogIDxwcm9jZXNzIGlkPSJQcm9jZXNzXzEiIGlzRXhlY3V0YWJsZT0iZmFsc2UiPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wOWFpcHk5IiBzb3VyY2VSZWY9IkV2ZW50XzA2OGd1NDAiIHRhcmdldFJlZj0iQWN0aXZpdHlfMTJnYjJmaCIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMTZrcWZzbyIgc291cmNlUmVmPSJBY3Rpdml0eV8xMmdiMmZoIiB0YXJnZXRSZWY9IkdhdGV3YXlfMG11NzJyaCIgLz4KICAgIDxzdGFydEV2ZW50IGlkPSJFdmVudF8wNjhndTQwIj4KICAgICAgPG91dGdvaW5nPkZsb3dfMDlhaXB5OTwvb3V0Z29pbmc+CiAgICA8L3N0YXJ0RXZlbnQ+CiAgICA8dGFzayBpZD0iQWN0aXZpdHlfMTJnYjJmaCIgbmFtZT0i0KHQvtCz0LvQsNGB0L7QstCw0YLRjCDQt9Cw0LrQsNC3Ij4KICAgICAgPGluY29taW5nPkZsb3dfMDlhaXB5OTwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzE2a3Fmc288L291dGdvaW5nPgogICAgPC90YXNrPgogICAgPGV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdhdGV3YXlfMG11NzJyaCI+CiAgICAgIDxpbmNvbWluZz5GbG93XzE2a3Fmc288L2luY29taW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18xczMzZnFiPC9vdXRnb2luZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMDA4ajFicjwvb3V0Z29pbmc+CiAgICA8L2V4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8ZW5kRXZlbnQgaWQ9IkV2ZW50XzBiM2Y0Z3ciIG5hbWU9ItCX0LDQutCw0Lcg0L3QtSDRgdC+0LPQu9Cw0YHQvtCy0LDQvSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzFzMzNmcWI8L2luY29taW5nPgogICAgPC9lbmRFdmVudD4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8xMHpnbDg1IiBuYW1lPSLQktGL0YHRgtCw0LLQuNGC0Ywg0YHRh9C10YIiPgogICAgICA8aW5jb21pbmc+Rmxvd18xaW5zMHFoPC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMWxzeXd1NDwvb3V0Z29pbmc+CiAgICAgIDxkYXRhT3V0cHV0QXNzb2NpYXRpb24gaWQ9IkRhdGFPdXRwdXRBc3NvY2lhdGlvbl8xN2tjd25zIj4KICAgICAgICA8dGFyZ2V0UmVmPkRhdGFTdG9yZVJlZmVyZW5jZV8xbzEzM3k0PC90YXJnZXRSZWY+CiAgICAgIDwvZGF0YU91dHB1dEFzc29jaWF0aW9uPgogICAgPC90YXNrPgogICAgPHRhc2sgaWQ9IkFjdGl2aXR5XzFleXJlazciIG5hbWU9ItCU0L7RgdGC0LDQstC40YLRjCDRgtC+0LLQsNGAIj4KICAgICAgPGluY29taW5nPkZsb3dfMDA4ajFicjwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzFpbnMwcWg8L291dGdvaW5nPgogICAgPC90YXNrPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xczMzZnFiIiBzb3VyY2VSZWY9IkdhdGV3YXlfMG11NzJyaCIgdGFyZ2V0UmVmPSJFdmVudF8wYjNmNGd3IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wMDhqMWJyIiBzb3VyY2VSZWY9IkdhdGV3YXlfMG11NzJyaCIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8xZXlyZWs3IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xaW5zMHFoIiBzb3VyY2VSZWY9IkFjdGl2aXR5XzFleXJlazciIHRhcmdldFJlZj0iQWN0aXZpdHlfMTB6Z2w4NSIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMWxzeXd1NCIgc291cmNlUmVmPSJBY3Rpdml0eV8xMHpnbDg1IiB0YXJnZXRSZWY9IkdhdGV3YXlfMWd3bnpiayIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMGJnM3RyZyIgc291cmNlUmVmPSJHYXRld2F5XzFnd256YmsiIHRhcmdldFJlZj0iRXZlbnRfMTQycGJ3cyIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMGVhMGc4NiIgc291cmNlUmVmPSJFdmVudF8xNDJwYndzIiB0YXJnZXRSZWY9IkV2ZW50XzBoaXQ0Z2wiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzF3eWVuMTAiIHNvdXJjZVJlZj0iR2F0ZXdheV8xZ3duemJrIiB0YXJnZXRSZWY9IkV2ZW50XzAyeGt1emUiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzE2NWxqM28iIHNvdXJjZVJlZj0iRXZlbnRfMDJ4a3V6ZSIgdGFyZ2V0UmVmPSJFdmVudF8xZXBiajB5IiAvPgogICAgPGRhdGFTdG9yZVJlZmVyZW5jZSBpZD0iRGF0YVN0b3JlUmVmZXJlbmNlXzFvMTMzeTQiIG5hbWU9ItCS0YvRgdGC0LDQstC70LXQvdC90YvQtSDRgdGH0LXRgtCwIiAvPgogICAgPGV2ZW50QmFzZWRHYXRld2F5IGlkPSJHYXRld2F5XzFnd256YmsiPgogICAgICA8aW5jb21pbmc+Rmxvd18xbHN5d3U0PC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMGJnM3RyZzwvb3V0Z29pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzF3eWVuMTA8L291dGdvaW5nPgogICAgPC9ldmVudEJhc2VkR2F0ZXdheT4KICAgIDxpbnRlcm1lZGlhdGVDYXRjaEV2ZW50IGlkPSJFdmVudF8wMnhrdXplIiBuYW1lPSLQodGA0L7QuiDQvtC/0LvQsNGC0YsiPgogICAgICA8aW5jb21pbmc+Rmxvd18xd3llbjEwPC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMTY1bGozbzwvb3V0Z29pbmc+CiAgICAgIDx0aW1lckV2ZW50RGVmaW5pdGlvbiBpZD0iVGltZXJFdmVudERlZmluaXRpb25fMTF0OHozcCIgLz4KICAgIDwvaW50ZXJtZWRpYXRlQ2F0Y2hFdmVudD4KICAgIDxlbmRFdmVudCBpZD0iRXZlbnRfMGhpdDRnbCIgbmFtZT0i0JfQsNC60LDQtyDQstGL0L/QvtC70L3QtdC9Ij4KICAgICAgPGluY29taW5nPkZsb3dfMGVhMGc4NjwvaW5jb21pbmc+CiAgICA8L2VuZEV2ZW50PgogICAgPGVuZEV2ZW50IGlkPSJFdmVudF8xZXBiajB5IiBuYW1lPSLQl9Cw0LrQsNC3INC90LUg0L7Qv9C70LDRh9C10L0iPgogICAgICA8aW5jb21pbmc+Rmxvd18xNjVsajNvPC9pbmNvbWluZz4KICAgICAgPHNpZ25hbEV2ZW50RGVmaW5pdGlvbiBpZD0iU2lnbmFsRXZlbnREZWZpbml0aW9uXzBzdWp2Y2YiIC8+CiAgICA8L2VuZEV2ZW50PgogICAgPGludGVybWVkaWF0ZUNhdGNoRXZlbnQgaWQ9IkV2ZW50XzE0MnBid3MiIG5hbWU9ItCh0YLQsNGC0YPRgSDQt9Cw0LrQsNC30LAg0LjQt9C80LXQvdC40LvRgdGPINC90LAgJiMzOTvQvtC/0LvQsNGH0LXQvSYjMzk7Ij4KICAgICAgPGluY29taW5nPkZsb3dfMGJnM3RyZzwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzBlYTBnODY8L291dGdvaW5nPgogICAgICA8Y29uZGl0aW9uYWxFdmVudERlZmluaXRpb24gaWQ9IkNvbmRpdGlvbmFsRXZlbnREZWZpbml0aW9uXzBibm05OHUiPgogICAgICAgIDxjb25kaXRpb24geHNpOnR5cGU9InRGb3JtYWxFeHByZXNzaW9uIiAvPgogICAgICA8L2NvbmRpdGlvbmFsRXZlbnREZWZpbml0aW9uPgogICAgPC9pbnRlcm1lZGlhdGVDYXRjaEV2ZW50PgogIDwvcHJvY2Vzcz4KICA8cHJvY2VzcyBpZD0iUHJvY2Vzc18xd2xmNW5nIj4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8wczZ4bjg1IiBuYW1lPSLQn9C+0LvRg9GH0LjRgtGMINCy0YvQv9C40YHQutGDINCx0LDQvdC60LAiPgogICAgICA8aW5jb21pbmc+Rmxvd18xeGVqZWl1PC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMHVvYzhpNDwvb3V0Z29pbmc+CiAgICA8L3Rhc2s+CiAgICA8c3RhcnRFdmVudCBpZD0iRXZlbnRfMThkdGdjbyI+CiAgICAgIDxvdXRnb2luZz5GbG93XzF4ZWplaXU8L291dGdvaW5nPgogICAgICA8dGltZXJFdmVudERlZmluaXRpb24gaWQ9IlRpbWVyRXZlbnREZWZpbml0aW9uXzA3d3hxaWQiIC8+CiAgICA8L3N0YXJ0RXZlbnQ+CiAgICA8c3ViUHJvY2VzcyBpZD0iQWN0aXZpdHlfMHd0NjhjNSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzB1b2M4aTQ8L2luY29taW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18xdzBpNzA3PC9vdXRnb2luZz4KICAgICAgPG11bHRpSW5zdGFuY2VMb29wQ2hhcmFjdGVyaXN0aWNzIC8+CiAgICAgIDxzdGFydEV2ZW50IGlkPSJFdmVudF8wdTA5dzAyIj4KICAgICAgICA8b3V0Z29pbmc+Rmxvd18xajN5dDZiPC9vdXRnb2luZz4KICAgICAgPC9zdGFydEV2ZW50PgogICAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzFqM3l0NmIiIHNvdXJjZVJlZj0iRXZlbnRfMHUwOXcwMiIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8xcXZhYTZuIiAvPgogICAgICA8dGFzayBpZD0iQWN0aXZpdHlfMXF2YWE2biIgbmFtZT0i0JjQtNC10L3RgtC40YTQuNGG0LjRgNC+0LLQsNGC0Ywg0L/Qu9Cw0YLQtdC2Ij4KICAgICAgICA8aW5jb21pbmc+Rmxvd18xajN5dDZiPC9pbmNvbWluZz4KICAgICAgICA8b3V0Z29pbmc+Rmxvd18xMmk1N2RvPC9vdXRnb2luZz4KICAgICAgICA8cHJvcGVydHkgaWQ9IlByb3BlcnR5XzFpcnFxN2UiIG5hbWU9Il9fdGFyZ2V0UmVmX3BsYWNlaG9sZGVyIiAvPgogICAgICAgIDxkYXRhSW5wdXRBc3NvY2lhdGlvbiBpZD0iRGF0YUlucHV0QXNzb2NpYXRpb25fMHc5eXEyeSI+CiAgICAgICAgICA8c291cmNlUmVmPkRhdGFTdG9yZVJlZmVyZW5jZV8xbzEzM3k0PC9zb3VyY2VSZWY+CiAgICAgICAgICA8dGFyZ2V0UmVmPlByb3BlcnR5XzFpcnFxN2U8L3RhcmdldFJlZj4KICAgICAgICA8L2RhdGFJbnB1dEFzc29jaWF0aW9uPgogICAgICA8L3Rhc2s+CiAgICAgIDxleGNsdXNpdmVHYXRld2F5IGlkPSJHYXRld2F5XzByMTlpcWQiIG5hbWU9ItCj0YHQv9C10YjQvdC+PyI+CiAgICAgICAgPGluY29taW5nPkZsb3dfMTJpNTdkbzwvaW5jb21pbmc+CiAgICAgICAgPG91dGdvaW5nPkZsb3dfMGt4cno0dzwvb3V0Z29pbmc+CiAgICAgICAgPG91dGdvaW5nPkZsb3dfMDgxdTZqZTwvb3V0Z29pbmc+CiAgICAgIDwvZXhjbHVzaXZlR2F0ZXdheT4KICAgICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xMmk1N2RvIiBzb3VyY2VSZWY9IkFjdGl2aXR5XzFxdmFhNm4iIHRhcmdldFJlZj0iR2F0ZXdheV8wcjE5aXFkIiAvPgogICAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzBreHJ6NHciIHNvdXJjZVJlZj0iR2F0ZXdheV8wcjE5aXFkIiB0YXJnZXRSZWY9IkV2ZW50XzFhZjk1dzciIC8+CiAgICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMDgxdTZqZSIgc291cmNlUmVmPSJHYXRld2F5XzByMTlpcWQiIHRhcmdldFJlZj0iQWN0aXZpdHlfMXE4dzNraiIgLz4KICAgICAgPGVuZEV2ZW50IGlkPSJFdmVudF8xYWY5NXc3IiBuYW1lPSLQndC10L7Qv9C+0LfQvdCw0L3QvdGL0Lkg0L/Qu9Cw0YLQtdC2Ij4KICAgICAgICA8aW5jb21pbmc+Rmxvd18wa3hyejR3PC9pbmNvbWluZz4KICAgICAgICA8c2lnbmFsRXZlbnREZWZpbml0aW9uIGlkPSJTaWduYWxFdmVudERlZmluaXRpb25fMGZmaWMyMSIgLz4KICAgICAgPC9lbmRFdmVudD4KICAgICAgPHRhc2sgaWQ9IkFjdGl2aXR5XzFxOHcza2oiIG5hbWU9ItCY0LfQvNC10L3QuNGC0Ywg0YHRgtCw0YLRg9GBINGB0YfQtdGC0LAg0L3QsCAmIzM5O9C+0L/Qu9Cw0YfQtdC9JiMzOTsiPgogICAgICAgIDxpbmNvbWluZz5GbG93XzA4MXU2amU8L2luY29taW5nPgogICAgICAgIDxvdXRnb2luZz5GbG93XzBwYXZxaWk8L291dGdvaW5nPgogICAgICAgIDxkYXRhT3V0cHV0QXNzb2NpYXRpb24gaWQ9IkRhdGFPdXRwdXRBc3NvY2lhdGlvbl8wZGw2azh4Ij4KICAgICAgICAgIDx0YXJnZXRSZWY+RGF0YVN0b3JlUmVmZXJlbmNlXzFvMTMzeTQ8L3RhcmdldFJlZj4KICAgICAgICA8L2RhdGFPdXRwdXRBc3NvY2lhdGlvbj4KICAgICAgPC90YXNrPgogICAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzBwYXZxaWkiIHNvdXJjZVJlZj0iQWN0aXZpdHlfMXE4dzNraiIgdGFyZ2V0UmVmPSJFdmVudF8xMHF0OWwzIiAvPgogICAgICA8ZW5kRXZlbnQgaWQ9IkV2ZW50XzEwcXQ5bDMiIG5hbWU9ItCh0YfQtdGCINC+0L/Qu9Cw0YfQtdC9Ij4KICAgICAgICA8aW5jb21pbmc+Rmxvd18wcGF2cWlpPC9pbmNvbWluZz4KICAgICAgPC9lbmRFdmVudD4KICAgIDwvc3ViUHJvY2Vzcz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMXhlamVpdSIgc291cmNlUmVmPSJFdmVudF8xOGR0Z2NvIiB0YXJnZXRSZWY9IkFjdGl2aXR5XzBzNnhuODUiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzB1b2M4aTQiIHNvdXJjZVJlZj0iQWN0aXZpdHlfMHM2eG44NSIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8wd3Q2OGM1IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xdzBpNzA3IiBzb3VyY2VSZWY9IkFjdGl2aXR5XzB3dDY4YzUiIHRhcmdldFJlZj0iRXZlbnRfMWRqYWZpdSIgLz4KICAgIDxlbmRFdmVudCBpZD0iRXZlbnRfMWRqYWZpdSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzF3MGk3MDc8L2luY29taW5nPgogICAgPC9lbmRFdmVudD4KICAgIDx0ZXh0QW5ub3RhdGlvbiBpZD0iVGV4dEFubm90YXRpb25fMWwyY2hnMSI+CiAgICAgIDx0ZXh0PtC00LvRjyDQutCw0LbQtNC+0Lkg0YHRgtGA0L7QutC4PC90ZXh0PgogICAgPC90ZXh0QW5ub3RhdGlvbj4KICAgIDxhc3NvY2lhdGlvbiBpZD0iQXNzb2NpYXRpb25fMTJrNGE1biIgc291cmNlUmVmPSJBY3Rpdml0eV8wd3Q2OGM1IiB0YXJnZXRSZWY9IlRleHRBbm5vdGF0aW9uXzFsMmNoZzEiIC8+CiAgPC9wcm9jZXNzPgogIDxicG1uZGk6QlBNTkRpYWdyYW0gaWQ9IkJQTU5EaWFncmFtXzEiPgogICAgPGJwbW5kaTpCUE1OUGxhbmUgaWQ9IkJQTU5QbGFuZV8xIiBicG1uRWxlbWVudD0iQ29sbGFib3JhdGlvbl8xYjFvdDFjIj4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlBhcnRpY2lwYW50XzBpemt0ZG1fZGkiIGJwbW5FbGVtZW50PSJQYXJ0aWNpcGFudF8waXprdGRtIiBpc0hvcml6b250YWw9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMjUwIiB5PSI3MCIgd2lkdGg9Ijg4MCIgaGVpZ2h0PSIyMzAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWwgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMDY4Z3U0MF9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzA2OGd1NDAiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzEyIiB5PSIxMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMTJnYjJmaF9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzEyZ2IyZmgiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzgwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iODAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWwgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR2F0ZXdheV8wbXU3MnJoX2RpIiBicG1uRWxlbWVudD0iR2F0ZXdheV8wbXU3MnJoIiBpc01hcmtlclZpc2libGU9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTE1IiB5PSIxMTUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMGIzZjRnd19kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzBiM2Y0Z3ciPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTIyIiB5PSIyMDIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTA5IiB5PSIyNDUiIHdpZHRoPSI2MiIgaGVpZ2h0PSIyNyIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzEwemdsODVfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8xMHpnbDg1Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijc0MCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzFleXJlazdfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8xZXlyZWs3Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjYwMCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdhdGV3YXlfMDZseDJzdl9kaSIgYnBtbkVsZW1lbnQ9IkdhdGV3YXlfMWd3bnpiayI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI4NzUiIHk9IjExNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8wMnhrdXplX2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMDJ4a3V6ZSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI5NjIiIHk9IjEyMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI5NDYiIHk9IjE2NSIgd2lkdGg9IjY5IiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMGhpdDRnbF9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzBoaXQ0Z2wiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMTA1MiIgeT0iMjAyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwMzciIHk9IjI0NSIgd2lkdGg9IjY2IiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMHV4ZWhiMl9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzFlcGJqMHkiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMTA1MiIgeT0iMTIyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwMzQiIHk9IjE2NSIgd2lkdGg9IjczIiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMGJ5d3RkNF9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzE0MnBid3MiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iOTYyIiB5PSIyMDIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iOTM3IiB5PSIyNDYiIHdpZHRoPSI4NiIgaGVpZ2h0PSIyNyIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wOWFpcHk5X2RpIiBicG1uRWxlbWVudD0iRmxvd18wOWFpcHk5Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMzQ4IiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjM4MCIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xNmtxZnNvX2RpIiBicG1uRWxlbWVudD0iRmxvd18xNmtxZnNvIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNDgwIiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjUxNSIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xczMzZnFiX2RpIiBicG1uRWxlbWVudD0iRmxvd18xczMzZnFiIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNTQwIiB5PSIxNjUiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjU0MCIgeT0iMjAyIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wMDhqMWJyX2RpIiBicG1uRWxlbWVudD0iRmxvd18wMDhqMWJyIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNTY1IiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjYwMCIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xaW5zMHFoX2RpIiBicG1uRWxlbWVudD0iRmxvd18xaW5zMHFoIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNzAwIiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijc0MCIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xbHN5d3U0X2RpIiBicG1uRWxlbWVudD0iRmxvd18xbHN5d3U0Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iODQwIiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijg3NSIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wYmczdHJnX2RpIiBicG1uRWxlbWVudD0iRmxvd18wYmczdHJnIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iOTAwIiB5PSIxNjUiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjkwMCIgeT0iMjIwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5NjIiIHk9IjIyMCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMGVhMGc4Nl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMGVhMGc4NiI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijk5OCIgeT0iMjIwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIxMDUyIiB5PSIyMjAiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzF3eWVuMTBfZGkiIGJwbW5FbGVtZW50PSJGbG93XzF3eWVuMTAiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5MjUiIHk9IjE0MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iOTYyIiB5PSIxNDAiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzE2NWxqM29fZGkiIGJwbW5FbGVtZW50PSJGbG93XzE2NWxqM28iPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5OTgiIHk9IjE0MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMTA1MiIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlBhcnRpY2lwYW50XzBwZm5tbG9fZGkiIGJwbW5FbGVtZW50PSJQYXJ0aWNpcGFudF8wcGZubWxvIiBpc0hvcml6b250YWw9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMjUwIiB5PSI0MTAiIHdpZHRoPSI4ODAiIGhlaWdodD0iMjYwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRleHRBbm5vdGF0aW9uXzFsMmNoZzFfZGkiIGJwbW5FbGVtZW50PSJUZXh0QW5ub3RhdGlvbl8xbDJjaGcxIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwNDkiIHk9IjU5MCIgd2lkdGg9IjYxIiBoZWlnaHQ9IjU1IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzBzNnhuODVfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8wczZ4bjg1Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjM4MCIgeT0iNDk4IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkV2ZW50XzBsNmJ6OGhfZGkiIGJwbW5FbGVtZW50PSJFdmVudF8xOGR0Z2NvIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjMxMiIgeT0iNTIwIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjMxOCIgeT0iNTgwIiB3aWR0aD0iMjUiIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8xZGphZml1X2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMWRqYWZpdSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIxMDYyIiB5PSI1MjAiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMHd0NjhjNV9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzB3dDY4YzUiIGlzRXhwYW5kZWQ9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTIwIiB5PSI0MzUiIHdpZHRoPSI1MTAiIGhlaWdodD0iMjA1IiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8wdTA5dzAyX2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMHUwOXcwMiI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI1NTIiIHk9IjQ3NyIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8xcXZhYTZuX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMXF2YWE2biI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI2MjAiIHk9IjQ1NSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHYXRld2F5XzByMTlpcWRfZGkiIGJwbW5FbGVtZW50PSJHYXRld2F5XzByMTlpcWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI3NTUiIHk9IjQ3MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI3NjkiIHk9IjQ0OCIgd2lkdGg9IjIzIiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMWhuZHMyal9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzFhZjk1dzciPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNzYyIiB5PSI1NTciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNzUxIiB5PSI2MDAiIHdpZHRoPSI1OSIgaGVpZ2h0PSIyNyIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzFxOHcza2pfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8xcTh3M2tqIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijg0MCIgeT0iNDU1IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkV2ZW50XzB3a3E0bWdfZGkiIGJwbW5FbGVtZW50PSJFdmVudF8xMHF0OWwzIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijk3MiIgeT0iNDc3IiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijk2MSIgeT0iNTIwIiB3aWR0aD0iNTkiIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMWozeXQ2Yl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMWozeXQ2YiI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjU4OCIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI2MjAiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMTJpNTdkb19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMTJpNTdkbyI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjcyMCIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI3NTUiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMGt4cno0d19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMGt4cno0dyI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijc4MCIgeT0iNTIwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI3ODAiIHk9IjU1NyIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMDgxdTZqZV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMDgxdTZqZSI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjgwNSIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI4NDAiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMHBhdnFpaV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMHBhdnFpaSI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijk0MCIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5NzIiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkFzc29jaWF0aW9uXzEyazRhNW5fZGkiIGJwbW5FbGVtZW50PSJBc3NvY2lhdGlvbl8xMms0YTVuIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMTAzMCIgeT0iNTkxIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIxMDQ5IiB5PSI1OTUiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzF4ZWplaXVfZGkiIGJwbW5FbGVtZW50PSJGbG93XzF4ZWplaXUiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIzNDgiIHk9IjUzOCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMzgwIiB5PSI1MzgiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzB1b2M4aTRfZGkiIGJwbW5FbGVtZW50PSJGbG93XzB1b2M4aTQiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI0ODAiIHk9IjUzOCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNTIwIiB5PSI1MzgiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzF3MGk3MDdfZGkiIGJwbW5FbGVtZW50PSJGbG93XzF3MGk3MDciPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIxMDMwIiB5PSI1MzgiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjEwNjIiIHk9IjUzOCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJEYXRhU3RvcmVSZWZlcmVuY2VfMW8xMzN5NF9kaSIgYnBtbkVsZW1lbnQ9IkRhdGFTdG9yZVJlZmVyZW5jZV8xbzEzM3k0Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijc2NSIgeT0iMzI1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijc1MiIgeT0iMzgzIiB3aWR0aD0iNzYiIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkRhdGFPdXRwdXRBc3NvY2lhdGlvbl8xN2tjd25zX2RpIiBicG1uRWxlbWVudD0iRGF0YU91dHB1dEFzc29jaWF0aW9uXzE3a2N3bnMiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI3OTAiIHk9IjE4MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNzkwIiB5PSIzMjUiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJEYXRhSW5wdXRBc3NvY2lhdGlvbl8wdzl5cTJ5X2RpIiBicG1uRWxlbWVudD0iRGF0YUlucHV0QXNzb2NpYXRpb25fMHc5eXEyeSI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijc2NSIgeT0iMzUwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI2NzAiIHk9IjM1MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNjcwIiB5PSI0NTUiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJEYXRhT3V0cHV0QXNzb2NpYXRpb25fMGRsNms4eF9kaSIgYnBtbkVsZW1lbnQ9IkRhdGFPdXRwdXRBc3NvY2lhdGlvbl8wZGw2azh4Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iODkwIiB5PSI0NTUiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijg5MCIgeT0iMzUwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI4MTUiIHk9IjM1MCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICA8L2JwbW5kaTpCUE1OUGxhbmU+CiAgPC9icG1uZGk6QlBNTkRpYWdyYW0+CjwvZGVmaW5pdGlvbnM+Cg==
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxkZWZpbml0aW9ucyB4bWxucz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTCIgeG1sbnM6YnBtbmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L0RJIiB4bWxuczpvbWdkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOm9tZ2RjPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9EQyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9InNpZC0zODQyMmZhZS1lMDNlLTQzYTMtYmVmNC1iZDMzYjMyMDQxYjIiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vYnBtbiIgZXhwb3J0ZXI9Imh0dHA6Ly9icG1uLmlvIiBleHBvcnRlclZlcnNpb249IjAuMTAuMSI+CiAgPGNvbGxhYm9yYXRpb24gaWQ9IkNvbGxhYm9yYXRpb25fMWIxb3QxYyI+CiAgICA8cGFydGljaXBhbnQgaWQ9IlBhcnRpY2lwYW50XzBpemt0ZG0iIG5hbWU9ItCe0YIg0LfQsNC60LDQt9CwINC00L4g0L7Qv9C70LDRgtGLIiBwcm9jZXNzUmVmPSJQcm9jZXNzXzEiIC8+CiAgICA8cGFydGljaXBhbnQgaWQ9IlBhcnRpY2lwYW50XzBwZm5tbG8iIG5hbWU9ItCe0LHRgNCw0LHQvtGC0LrQsCDQstGL0L/QuNGB0LrQuCDQsdCw0L3QutCwIiBwcm9jZXNzUmVmPSJQcm9jZXNzXzF3bGY1bmciIC8+CiAgICA8bWVzc2FnZUZsb3cgaWQ9IkZsb3dfMDB4Ym41ZiIgc291cmNlUmVmPSJFdmVudF8xMHF0OWwzIiB0YXJnZXRSZWY9IkV2ZW50XzE0MnBid3MiIC8+CiAgPC9jb2xsYWJvcmF0aW9uPgogIDxwcm9jZXNzIGlkPSJQcm9jZXNzXzEiIGlzRXhlY3V0YWJsZT0iZmFsc2UiPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wOWFpcHk5IiBzb3VyY2VSZWY9IkV2ZW50XzA2OGd1NDAiIHRhcmdldFJlZj0iQWN0aXZpdHlfMTJnYjJmaCIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMTZrcWZzbyIgc291cmNlUmVmPSJBY3Rpdml0eV8xMmdiMmZoIiB0YXJnZXRSZWY9IkdhdGV3YXlfMG11NzJyaCIgLz4KICAgIDxzdGFydEV2ZW50IGlkPSJFdmVudF8wNjhndTQwIj4KICAgICAgPG91dGdvaW5nPkZsb3dfMDlhaXB5OTwvb3V0Z29pbmc+CiAgICA8L3N0YXJ0RXZlbnQ+CiAgICA8dGFzayBpZD0iQWN0aXZpdHlfMTJnYjJmaCIgbmFtZT0i0KHQvtCz0LvQsNGB0L7QstCw0YLRjCDQt9Cw0LrQsNC3Ij4KICAgICAgPGluY29taW5nPkZsb3dfMDlhaXB5OTwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzE2a3Fmc288L291dGdvaW5nPgogICAgPC90YXNrPgogICAgPGV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdhdGV3YXlfMG11NzJyaCI+CiAgICAgIDxpbmNvbWluZz5GbG93XzE2a3Fmc288L2luY29taW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18xczMzZnFiPC9vdXRnb2luZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMDA4ajFicjwvb3V0Z29pbmc+CiAgICA8L2V4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8ZW5kRXZlbnQgaWQ9IkV2ZW50XzBiM2Y0Z3ciIG5hbWU9ItCX0LDQutCw0Lcg0L3QtSDRgdC+0LPQu9Cw0YHQvtCy0LDQvSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzFzMzNmcWI8L2luY29taW5nPgogICAgPC9lbmRFdmVudD4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8xMHpnbDg1IiBuYW1lPSLQktGL0YHRgtCw0LLQuNGC0Ywg0YHRh9C10YIiPgogICAgICA8aW5jb21pbmc+Rmxvd18xaW5zMHFoPC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMWxzeXd1NDwvb3V0Z29pbmc+CiAgICAgIDxkYXRhT3V0cHV0QXNzb2NpYXRpb24gaWQ9IkRhdGFPdXRwdXRBc3NvY2lhdGlvbl8xN2tjd25zIj4KICAgICAgICA8dGFyZ2V0UmVmPkRhdGFTdG9yZVJlZmVyZW5jZV8xbzEzM3k0PC90YXJnZXRSZWY+CiAgICAgIDwvZGF0YU91dHB1dEFzc29jaWF0aW9uPgogICAgPC90YXNrPgogICAgPHRhc2sgaWQ9IkFjdGl2aXR5XzFleXJlazciIG5hbWU9ItCU0L7RgdGC0LDQstC40YLRjCDRgtC+0LLQsNGAIj4KICAgICAgPGluY29taW5nPkZsb3dfMDA4ajFicjwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzFpbnMwcWg8L291dGdvaW5nPgogICAgPC90YXNrPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xczMzZnFiIiBzb3VyY2VSZWY9IkdhdGV3YXlfMG11NzJyaCIgdGFyZ2V0UmVmPSJFdmVudF8wYjNmNGd3IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wMDhqMWJyIiBzb3VyY2VSZWY9IkdhdGV3YXlfMG11NzJyaCIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8xZXlyZWs3IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xaW5zMHFoIiBzb3VyY2VSZWY9IkFjdGl2aXR5XzFleXJlazciIHRhcmdldFJlZj0iQWN0aXZpdHlfMTB6Z2w4NSIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMWxzeXd1NCIgc291cmNlUmVmPSJBY3Rpdml0eV8xMHpnbDg1IiB0YXJnZXRSZWY9IkdhdGV3YXlfMWd3bnpiayIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMGJnM3RyZyIgc291cmNlUmVmPSJHYXRld2F5XzFnd256YmsiIHRhcmdldFJlZj0iRXZlbnRfMTQycGJ3cyIgLz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMGVhMGc4NiIgc291cmNlUmVmPSJFdmVudF8xNDJwYndzIiB0YXJnZXRSZWY9IkV2ZW50XzBoaXQ0Z2wiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzF3eWVuMTAiIHNvdXJjZVJlZj0iR2F0ZXdheV8xZ3duemJrIiB0YXJnZXRSZWY9IkV2ZW50XzAyeGt1emUiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzE2NWxqM28iIHNvdXJjZVJlZj0iRXZlbnRfMDJ4a3V6ZSIgdGFyZ2V0UmVmPSJFdmVudF8xZXBiajB5IiAvPgogICAgPGRhdGFTdG9yZVJlZmVyZW5jZSBpZD0iRGF0YVN0b3JlUmVmZXJlbmNlXzFvMTMzeTQiIG5hbWU9ItCS0YvRgdGC0LDQstC70LXQvdC90YvQtSDRgdGH0LXRgtCwIiAvPgogICAgPGV2ZW50QmFzZWRHYXRld2F5IGlkPSJHYXRld2F5XzFnd256YmsiPgogICAgICA8aW5jb21pbmc+Rmxvd18xbHN5d3U0PC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMGJnM3RyZzwvb3V0Z29pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzF3eWVuMTA8L291dGdvaW5nPgogICAgPC9ldmVudEJhc2VkR2F0ZXdheT4KICAgIDxpbnRlcm1lZGlhdGVDYXRjaEV2ZW50IGlkPSJFdmVudF8xNDJwYndzIiBuYW1lPSLQodGH0LXRgiDQvtC/0LvQsNGH0LXQvSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzBiZzN0cmc8L2luY29taW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18wZWEwZzg2PC9vdXRnb2luZz4KICAgICAgPG1lc3NhZ2VFdmVudERlZmluaXRpb24gaWQ9Ik1lc3NhZ2VFdmVudERlZmluaXRpb25fMGp5ZnVvcSIgLz4KICAgIDwvaW50ZXJtZWRpYXRlQ2F0Y2hFdmVudD4KICAgIDxpbnRlcm1lZGlhdGVDYXRjaEV2ZW50IGlkPSJFdmVudF8wMnhrdXplIiBuYW1lPSLQodGA0L7QuiDQvtC/0LvQsNGC0YsiPgogICAgICA8aW5jb21pbmc+Rmxvd18xd3llbjEwPC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMTY1bGozbzwvb3V0Z29pbmc+CiAgICAgIDx0aW1lckV2ZW50RGVmaW5pdGlvbiBpZD0iVGltZXJFdmVudERlZmluaXRpb25fMTF0OHozcCIgLz4KICAgIDwvaW50ZXJtZWRpYXRlQ2F0Y2hFdmVudD4KICAgIDxlbmRFdmVudCBpZD0iRXZlbnRfMGhpdDRnbCIgbmFtZT0iT3JkZXIgZnVsZmlsbGVkIj4KICAgICAgPGluY29taW5nPkZsb3dfMGVhMGc4NjwvaW5jb21pbmc+CiAgICA8L2VuZEV2ZW50PgogICAgPGVuZEV2ZW50IGlkPSJFdmVudF8xZXBiajB5IiBuYW1lPSLQl9Cw0LrQsNC3INC90LUg0L7Qv9C70LDRh9C10L0iPgogICAgICA8aW5jb21pbmc+Rmxvd18xNjVsajNvPC9pbmNvbWluZz4KICAgICAgPHNpZ25hbEV2ZW50RGVmaW5pdGlvbiBpZD0iU2lnbmFsRXZlbnREZWZpbml0aW9uXzBzdWp2Y2YiIC8+CiAgICA8L2VuZEV2ZW50PgogIDwvcHJvY2Vzcz4KICA8cHJvY2VzcyBpZD0iUHJvY2Vzc18xd2xmNW5nIj4KICAgIDxlbmRFdmVudCBpZD0iRXZlbnRfMWRqYWZpdSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzF3MGk3MDc8L2luY29taW5nPgogICAgPC9lbmRFdmVudD4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8wczZ4bjg1IiBuYW1lPSLQn9C+0LvRg9GH0LjRgtGMINCy0YvQv9C40YHQutGDINCx0LDQvdC60LAiPgogICAgICA8aW5jb21pbmc+Rmxvd18xeGVqZWl1PC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMHVvYzhpNDwvb3V0Z29pbmc+CiAgICA8L3Rhc2s+CiAgICA8c3RhcnRFdmVudCBpZD0iRXZlbnRfMThkdGdjbyI+CiAgICAgIDxvdXRnb2luZz5GbG93XzF4ZWplaXU8L291dGdvaW5nPgogICAgICA8dGltZXJFdmVudERlZmluaXRpb24gaWQ9IlRpbWVyRXZlbnREZWZpbml0aW9uXzA3d3hxaWQiIC8+CiAgICA8L3N0YXJ0RXZlbnQ+CiAgICA8c3ViUHJvY2VzcyBpZD0iQWN0aXZpdHlfMHd0NjhjNSI+CiAgICAgIDxpbmNvbWluZz5GbG93XzB1b2M4aTQ8L2luY29taW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18xdzBpNzA3PC9vdXRnb2luZz4KICAgICAgPG11bHRpSW5zdGFuY2VMb29wQ2hhcmFjdGVyaXN0aWNzIC8+CiAgICAgIDxzdGFydEV2ZW50IGlkPSJFdmVudF8wdTA5dzAyIj4KICAgICAgICA8b3V0Z29pbmc+Rmxvd18xajN5dDZiPC9vdXRnb2luZz4KICAgICAgPC9zdGFydEV2ZW50PgogICAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzFqM3l0NmIiIHNvdXJjZVJlZj0iRXZlbnRfMHUwOXcwMiIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8xcXZhYTZuIiAvPgogICAgICA8dGFzayBpZD0iQWN0aXZpdHlfMXF2YWE2biIgbmFtZT0i0JjQtNC10L3RgtC40YTQuNGG0LjRgNC+0LLQsNGC0Ywg0L/Qu9Cw0YLQtdC2Ij4KICAgICAgICA8aW5jb21pbmc+Rmxvd18xajN5dDZiPC9pbmNvbWluZz4KICAgICAgICA8b3V0Z29pbmc+Rmxvd18xMmk1N2RvPC9vdXRnb2luZz4KICAgICAgICA8cHJvcGVydHkgaWQ9IlByb3BlcnR5XzFpcnFxN2UiIG5hbWU9Il9fdGFyZ2V0UmVmX3BsYWNlaG9sZGVyIiAvPgogICAgICAgIDxkYXRhSW5wdXRBc3NvY2lhdGlvbiBpZD0iRGF0YUlucHV0QXNzb2NpYXRpb25fMHc5eXEyeSI+CiAgICAgICAgICA8c291cmNlUmVmPkRhdGFTdG9yZVJlZmVyZW5jZV8xbzEzM3k0PC9zb3VyY2VSZWY+CiAgICAgICAgICA8dGFyZ2V0UmVmPlByb3BlcnR5XzFpcnFxN2U8L3RhcmdldFJlZj4KICAgICAgICA8L2RhdGFJbnB1dEFzc29jaWF0aW9uPgogICAgICA8L3Rhc2s+CiAgICAgIDxleGNsdXNpdmVHYXRld2F5IGlkPSJHYXRld2F5XzByMTlpcWQiIG5hbWU9ItCj0YHQv9C10YjQvdC+PyI+CiAgICAgICAgPGluY29taW5nPkZsb3dfMTJpNTdkbzwvaW5jb21pbmc+CiAgICAgICAgPG91dGdvaW5nPkZsb3dfMGt4cno0dzwvb3V0Z29pbmc+CiAgICAgICAgPG91dGdvaW5nPkZsb3dfMDgxdTZqZTwvb3V0Z29pbmc+CiAgICAgIDwvZXhjbHVzaXZlR2F0ZXdheT4KICAgICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xMmk1N2RvIiBzb3VyY2VSZWY9IkFjdGl2aXR5XzFxdmFhNm4iIHRhcmdldFJlZj0iR2F0ZXdheV8wcjE5aXFkIiAvPgogICAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzBreHJ6NHciIHNvdXJjZVJlZj0iR2F0ZXdheV8wcjE5aXFkIiB0YXJnZXRSZWY9IkV2ZW50XzFhZjk1dzciIC8+CiAgICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMDgxdTZqZSIgc291cmNlUmVmPSJHYXRld2F5XzByMTlpcWQiIHRhcmdldFJlZj0iRXZlbnRfMTBxdDlsMyIgLz4KICAgICAgPGVuZEV2ZW50IGlkPSJFdmVudF8xMHF0OWwzIiBuYW1lPSLQodGH0LXRgiDQvtC/0LvQsNGH0LXQvSI+CiAgICAgICAgPGluY29taW5nPkZsb3dfMDgxdTZqZTwvaW5jb21pbmc+CiAgICAgICAgPG1lc3NhZ2VFdmVudERlZmluaXRpb24gaWQ9Ik1lc3NhZ2VFdmVudERlZmluaXRpb25fMTVhbGtkeCIgLz4KICAgICAgPC9lbmRFdmVudD4KICAgICAgPGVuZEV2ZW50IGlkPSJFdmVudF8xYWY5NXc3IiBuYW1lPSLQndC10L7Qv9C+0LfQvdCw0L3QvdGL0Lkg0L/Qu9Cw0YLQtdC2Ij4KICAgICAgICA8aW5jb21pbmc+Rmxvd18wa3hyejR3PC9pbmNvbWluZz4KICAgICAgICA8c2lnbmFsRXZlbnREZWZpbml0aW9uIGlkPSJTaWduYWxFdmVudERlZmluaXRpb25fMGZmaWMyMSIgLz4KICAgICAgPC9lbmRFdmVudD4KICAgIDwvc3ViUHJvY2Vzcz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMXcwaTcwNyIgc291cmNlUmVmPSJBY3Rpdml0eV8wd3Q2OGM1IiB0YXJnZXRSZWY9IkV2ZW50XzFkamFmaXUiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzF4ZWplaXUiIHNvdXJjZVJlZj0iRXZlbnRfMThkdGdjbyIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8wczZ4bjg1IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wdW9jOGk0IiBzb3VyY2VSZWY9IkFjdGl2aXR5XzBzNnhuODUiIHRhcmdldFJlZj0iQWN0aXZpdHlfMHd0NjhjNSIgLz4KICAgIDx0ZXh0QW5ub3RhdGlvbiBpZD0iVGV4dEFubm90YXRpb25fMWwyY2hnMSI+CiAgICAgIDx0ZXh0PtC00LvRjyDQutCw0LbQtNC+0Lkg0YHRgtGA0L7QutC4PC90ZXh0PgogICAgPC90ZXh0QW5ub3RhdGlvbj4KICAgIDxhc3NvY2lhdGlvbiBpZD0iQXNzb2NpYXRpb25fMTJrNGE1biIgc291cmNlUmVmPSJBY3Rpdml0eV8wd3Q2OGM1IiB0YXJnZXRSZWY9IlRleHRBbm5vdGF0aW9uXzFsMmNoZzEiIC8+CiAgPC9wcm9jZXNzPgogIDxicG1uZGk6QlBNTkRpYWdyYW0gaWQ9IkJQTU5EaWFncmFtXzEiPgogICAgPGJwbW5kaTpCUE1OUGxhbmUgaWQ9IkJQTU5QbGFuZV8xIiBicG1uRWxlbWVudD0iQ29sbGFib3JhdGlvbl8xYjFvdDFjIj4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlBhcnRpY2lwYW50XzBpemt0ZG1fZGkiIGJwbW5FbGVtZW50PSJQYXJ0aWNpcGFudF8waXprdGRtIiBpc0hvcml6b250YWw9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMjUwIiB5PSI3MCIgd2lkdGg9Ijg4MCIgaGVpZ2h0PSIyMjAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWwgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMDY4Z3U0MF9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzA2OGd1NDAiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzEyIiB5PSIxMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMTJnYjJmaF9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzEyZ2IyZmgiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzgwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iODAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWwgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR2F0ZXdheV8wbXU3MnJoX2RpIiBicG1uRWxlbWVudD0iR2F0ZXdheV8wbXU3MnJoIiBpc01hcmtlclZpc2libGU9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTE1IiB5PSIxMTUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMGIzZjRnd19kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzBiM2Y0Z3ciPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTIyIiB5PSIyMDIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNTA5IiB5PSIyNDUiIHdpZHRoPSI2MiIgaGVpZ2h0PSIyNyIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzEwemdsODVfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8xMHpnbDg1Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijc0MCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzFleXJlazdfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8xZXlyZWs3Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjYwMCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdhdGV3YXlfMDZseDJzdl9kaSIgYnBtbkVsZW1lbnQ9IkdhdGV3YXlfMWd3bnpiayI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI4NzUiIHk9IjExNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8xYXY0a3pnX2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMTQycGJ3cyI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI5NjIiIHk9IjIwMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI5NTMiIHk9IjI1MyIgd2lkdGg9IjU0IiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMDJ4a3V6ZV9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzAyeGt1emUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iOTYyIiB5PSIxMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iOTQ2IiB5PSIxNjUiIHdpZHRoPSI2OSIgaGVpZ2h0PSIxNCIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkV2ZW50XzBoaXQ0Z2xfZGkiIGJwbW5FbGVtZW50PSJFdmVudF8waGl0NGdsIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwNTIiIHk9IjIwMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIxMDM3IiB5PSIyNDUiIHdpZHRoPSI2NiIgaGVpZ2h0PSIxNCIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkV2ZW50XzB1eGVoYjJfZGkiIGJwbW5FbGVtZW50PSJFdmVudF8xZXBiajB5Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwNTIiIHk9IjEyMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIxMDM0IiB5PSIxNjUiIHdpZHRoPSI3MyIgaGVpZ2h0PSIxNCIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wOWFpcHk5X2RpIiBicG1uRWxlbWVudD0iRmxvd18wOWFpcHk5Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMzQ4IiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjM4MCIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xNmtxZnNvX2RpIiBicG1uRWxlbWVudD0iRmxvd18xNmtxZnNvIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNDgwIiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjUxNSIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xczMzZnFiX2RpIiBicG1uRWxlbWVudD0iRmxvd18xczMzZnFiIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNTQwIiB5PSIxNjUiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjU0MCIgeT0iMjAyIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wMDhqMWJyX2RpIiBicG1uRWxlbWVudD0iRmxvd18wMDhqMWJyIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNTY1IiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjYwMCIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xaW5zMHFoX2RpIiBicG1uRWxlbWVudD0iRmxvd18xaW5zMHFoIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNzAwIiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijc0MCIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xbHN5d3U0X2RpIiBicG1uRWxlbWVudD0iRmxvd18xbHN5d3U0Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iODQwIiB5PSIxNDAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijg3NSIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wYmczdHJnX2RpIiBicG1uRWxlbWVudD0iRmxvd18wYmczdHJnIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iOTAwIiB5PSIxNjUiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjkwMCIgeT0iMjIwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5NjIiIHk9IjIyMCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMGVhMGc4Nl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMGVhMGc4NiI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijk5OCIgeT0iMjIwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIxMDUyIiB5PSIyMjAiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzF3eWVuMTBfZGkiIGJwbW5FbGVtZW50PSJGbG93XzF3eWVuMTAiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5MjUiIHk9IjE0MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iOTYyIiB5PSIxNDAiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzE2NWxqM29fZGkiIGJwbW5FbGVtZW50PSJGbG93XzE2NWxqM28iPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5OTgiIHk9IjE0MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMTA1MiIgeT0iMTQwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlBhcnRpY2lwYW50XzBwZm5tbG9fZGkiIGJwbW5FbGVtZW50PSJQYXJ0aWNpcGFudF8wcGZubWxvIiBpc0hvcml6b250YWw9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzcwIiB5PSI0MTAiIHdpZHRoPSI3NjEiIGhlaWdodD0iMjYwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRleHRBbm5vdGF0aW9uXzFsMmNoZzFfZGkiIGJwbW5FbGVtZW50PSJUZXh0QW5ub3RhdGlvbl8xbDJjaGcxIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwNTAiIHk9IjU5MCIgd2lkdGg9IjYxIiBoZWlnaHQ9IjU1IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkV2ZW50XzFkamFmaXVfZGkiIGJwbW5FbGVtZW50PSJFdmVudF8xZGphZml1Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjEwNzIiIHk9IjUyMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wczZ4bjg1X2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMHM2eG44NSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI1MDAiIHk9IjQ5OCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8wbDZiejhoX2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMThkdGdjbyI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI0MzIiIHk9IjUyMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzMTgiIHk9IjU4MCIgd2lkdGg9IjI1IiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMHd0NjhjNV9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzB3dDY4YzUiIGlzRXhwYW5kZWQ9InRydWUiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNjQwIiB5PSI0MzUiIHdpZHRoPSIzOTAiIGhlaWdodD0iMjA1IiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8wdTA5dzAyX2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMHUwOXcwMiI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI2NzIiIHk9IjQ3NyIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8xcXZhYTZuX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMXF2YWE2biI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI3NDAiIHk9IjQ1NSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHYXRld2F5XzByMTlpcWRfZGkiIGJwbW5FbGVtZW50PSJHYXRld2F5XzByMTlpcWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI4NzUiIHk9IjQ3MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI4ODkiIHk9IjQ0OCIgd2lkdGg9IjIzIiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMDA5YzE1c19kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzEwcXQ5bDMiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iOTYyIiB5PSI0NzciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iOTUxIiB5PSI1MjAiIHdpZHRoPSI1OSIgaGVpZ2h0PSIxNCIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkV2ZW50XzFobmRzMmpfZGkiIGJwbW5FbGVtZW50PSJFdmVudF8xYWY5NXc3Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijg4MiIgeT0iNTU3IiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijg3MSIgeT0iNjAwIiB3aWR0aD0iNTkiIGhlaWdodD0iMjciIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMWozeXQ2Yl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMWozeXQ2YiI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjcwOCIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI3NDAiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMTJpNTdkb19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMTJpNTdkbyI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijg0MCIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI4NzUiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMGt4cno0d19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMGt4cno0dyI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjkwMCIgeT0iNTIwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5MDAiIHk9IjU1NyIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMDgxdTZqZV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMDgxdTZqZSI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjkyNSIgeT0iNDk1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5NjIiIHk9IjQ5NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkFzc29jaWF0aW9uXzEyazRhNW5fZGkiIGJwbW5FbGVtZW50PSJBc3NvY2lhdGlvbl8xMms0YTVuIj4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMTAzMCIgeT0iNTg3IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIxMDUwIiB5PSI1OTIiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzF3MGk3MDdfZGkiIGJwbW5FbGVtZW50PSJGbG93XzF3MGk3MDciPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIxMDMwIiB5PSI1MzgiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjEwNzIiIHk9IjUzOCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMXhlamVpdV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMXhlamVpdSI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjQ2OCIgeT0iNTM4IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI1MDAiIHk9IjUzOCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMHVvYzhpNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMHVvYzhpNCI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjYwMCIgeT0iNTM4IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI2NDAiIHk9IjUzOCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJEYXRhU3RvcmVSZWZlcmVuY2VfMW8xMzN5NF9kaSIgYnBtbkVsZW1lbnQ9IkRhdGFTdG9yZVJlZmVyZW5jZV8xbzEzM3k0Ij4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9Ijc2NSIgeT0iMzI1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjY3OSIgeT0iMzQzIiB3aWR0aD0iNzYiIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkRhdGFPdXRwdXRBc3NvY2lhdGlvbl8xN2tjd25zX2RpIiBicG1uRWxlbWVudD0iRGF0YU91dHB1dEFzc29jaWF0aW9uXzE3a2N3bnMiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI3OTAiIHk9IjE4MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNzkwIiB5PSIzMjUiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJEYXRhSW5wdXRBc3NvY2lhdGlvbl8wdzl5cTJ5X2RpIiBicG1uRWxlbWVudD0iRGF0YUlucHV0QXNzb2NpYXRpb25fMHc5eXEyeSI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijc5MCIgeT0iMzc1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI3OTAiIHk9IjQ1NSIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMDB4Ym41Zl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMDB4Ym41ZiI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9Ijk4MCIgeT0iNDc3IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI5ODAiIHk9IjIzOCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICA8L2JwbW5kaTpCUE1OUGxhbmU+CiAgPC9icG1uZGk6QlBNTkRpYWdyYW0+CjwvZGVmaW5pdGlvbnM+Cg==

Пока счета выставляет один процесс, большой разницы между схемами с событием-сообщением и событием-условием нет. Схема с событием-сообщением даже выглядит предпочтительнее, поскольку более наглядно показывает механизм взаимодействия между процессами.

Ситуация меняется, если принять реалистичное допущение, что у компании несколько процессов продажи: товаров, услуг, розничная, партнерская и т.п. В этом случае логика процесса обработки выписки банка сильно усложнится: в него придется добавить развилку, которая будет отправлять сообщение в тот процесс, из которого пришел данный конкретный счет. При добавлении нового процесса продажи в процесс обработки выписки придется вносить изменения.

Событие-условие позволяет избавиться от этой зависимости. Здесь процессам не требуется ничего не знать о внутреннем устройстве друг друга, достаточно интерфейса, роль которого играет хранилище данных:

  • процесс-клиент (От заказа до оплаты) добавляет запись в таблицу базу данных (Выставленные счета) и ждет, пока значение поля «статус» этой записи изменится на требуемый (оплачен)
  • процесс-сервер (Обработка выписки банка), обрабатывая очередную строку, ищет среди выставленных счетов тот, на который ссылается платеж, и меняет статус найденного счета на «оплачен»
  • процесс-клиент выходит из ожидания и продолжает работу

Процессов-клиентов при этом может быть сколько угодно.

В случае исполняемой модели процесса событие-сообщение должно автоматически обрабатываться движком. Если процессный движок не поддерживает событие-условие, его легко заменить комбинацией развилки «или-или» и таймера:

Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxkZWZpbml0aW9ucyB4bWxucz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTCIgeG1sbnM6YnBtbmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L0RJIiB4bWxuczpvbWdkYz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREMiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9ESSIgaWQ9InNpZC0zODQyMmZhZS1lMDNlLTQzYTMtYmVmNC1iZDMzYjMyMDQxYjIiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vYnBtbiIgZXhwb3J0ZXI9Imh0dHA6Ly9icG1uLmlvIiBleHBvcnRlclZlcnNpb249IjAuMTAuMSI+CiAgPHByb2Nlc3MgaWQ9IlByb2Nlc3NfMSIgaXNFeGVjdXRhYmxlPSJmYWxzZSI+CiAgICA8ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR2F0ZXdheV8wNGFrem83IiBuYW1lPSLQodGC0LDRgtGD0YEg0YHRh9C10YLQsCAmIzM5O9C+0L/Qu9Cw0YfQtdC9JiMzOTs/Ij4KICAgICAgPGluY29taW5nPkZsb3dfMDNnM2FhczwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzBreWx0aGU8L291dGdvaW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18xNHUyN3o5PC9vdXRnb2luZz4KICAgIDwvZXhjbHVzaXZlR2F0ZXdheT4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8wM2U5MmdxIiBuYW1lPSIuLi4iPgogICAgICA8aW5jb21pbmc+Rmxvd18wa3lsdGhlPC9pbmNvbWluZz4KICAgIDwvdGFzaz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMGt5bHRoZSIgbmFtZT0i0LTQsCIgc291cmNlUmVmPSJHYXRld2F5XzA0YWt6bzciIHRhcmdldFJlZj0iQWN0aXZpdHlfMDNlOTJncSIgLz4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8wdDE4amRxIiBuYW1lPSIuLi4iPgogICAgICA8b3V0Z29pbmc+Rmxvd18xdXVodng0PC9vdXRnb2luZz4KICAgIDwvdGFzaz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMXV1aHZ4NCIgc291cmNlUmVmPSJBY3Rpdml0eV8wdDE4amRxIiB0YXJnZXRSZWY9IkdhdGV3YXlfMXg4ZXJ4OSIgLz4KICAgIDxpbnRlcm1lZGlhdGVDYXRjaEV2ZW50IGlkPSJFdmVudF8xZHNqYTZjIj4KICAgICAgPGluY29taW5nPkZsb3dfMTR1Mjd6OTwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzFod3hncXI8L291dGdvaW5nPgogICAgICA8dGltZXJFdmVudERlZmluaXRpb24gaWQ9IlRpbWVyRXZlbnREZWZpbml0aW9uXzBzNml1bXMiIC8+CiAgICA8L2ludGVybWVkaWF0ZUNhdGNoRXZlbnQ+CiAgICA8ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR2F0ZXdheV8xeDhlcng5Ij4KICAgICAgPGluY29taW5nPkZsb3dfMXV1aHZ4NDwvaW5jb21pbmc+CiAgICAgIDxpbmNvbWluZz5GbG93XzFod3hncXI8L2luY29taW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18wM2czYWFzPC9vdXRnb2luZz4KICAgIDwvZXhjbHVzaXZlR2F0ZXdheT4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMDNnM2FhcyIgc291cmNlUmVmPSJHYXRld2F5XzF4OGVyeDkiIHRhcmdldFJlZj0iR2F0ZXdheV8wNGFrem83IiAvPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18xNHUyN3o5IiBuYW1lPSLQvdC10YIiIHNvdXJjZVJlZj0iR2F0ZXdheV8wNGFrem83IiB0YXJnZXRSZWY9IkV2ZW50XzFkc2phNmMiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzFod3hncXIiIHNvdXJjZVJlZj0iRXZlbnRfMWRzamE2YyIgdGFyZ2V0UmVmPSJHYXRld2F5XzF4OGVyeDkiIC8+CiAgPC9wcm9jZXNzPgogIDxicG1uZGk6QlBNTkRpYWdyYW0gaWQ9IkJQTU5EaWFncmFtXzEiPgogICAgPGJwbW5kaTpCUE1OUGxhbmUgaWQ9IkJQTU5QbGFuZV8xIiBicG1uRWxlbWVudD0iUHJvY2Vzc18xIj4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdhdGV3YXlfMDRha3pvN19kaSIgYnBtbkVsZW1lbnQ9IkdhdGV3YXlfMDRha3pvNyIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjI1NSIgeT0iMTA1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjI0MSIgeT0iMTYyIiB3aWR0aD0iNzkiIGhlaWdodD0iMjciIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFdmVudF8xcWRpbHppX2RpIiBicG1uRWxlbWVudD0iRXZlbnRfMWRzamE2YyI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIyNjIiIHk9IjIyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkFjdGl2aXR5XzB0MThqZHFfZGkiIGJwbW5FbGVtZW50PSJBY3Rpdml0eV8wdDE4amRxIj4KICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjMwIiB5PSI5MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHYXRld2F5XzF4OGVyeDlfZGkiIGJwbW5FbGVtZW50PSJHYXRld2F5XzF4OGVyeDkiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIxNzUiIHk9IjEwNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wM2U5MmdxX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMDNlOTJncSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzNjAiIHk9IjkwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wa3lsdGhlX2RpIiBicG1uRWxlbWVudD0iRmxvd18wa3lsdGhlIj4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMzA1IiB5PSIxMzAiIC8+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjM2MCIgeT0iMTMwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzMjQiIHk9IjExMiIgd2lkdGg9IjE3IiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMXV1aHZ4NF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMXV1aHZ4NCI+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjEzMCIgeT0iMTMwIiAvPgogICAgICAgIDxkaTp3YXlwb2ludCB4PSIxNzUiIHk9IjEzMCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMDNnM2Fhc19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMDNnM2FhcyI+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjIyNSIgeT0iMTMwIiAvPgogICAgICAgIDxkaTp3YXlwb2ludCB4PSIyNTUiIHk9IjEzMCIgLz4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMTR1Mjd6OV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMTR1Mjd6OSI+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjI4MCIgeT0iMTA1IiAvPgogICAgICAgIDxkaTp3YXlwb2ludCB4PSIyODAiIHk9IjU4IiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIyODkiIHk9Ijc5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xaHd4Z3FyX2RpIiBicG1uRWxlbWVudD0iRmxvd18xaHd4Z3FyIj4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMjYyIiB5PSI0MCIgLz4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMjAwIiB5PSI0MCIgLz4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMjAwIiB5PSIxMDUiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2RlZmluaXRpb25zPgo=

В случае неисполняемой модели событие-условие моделирует действия сотрудника, который периодически нажимает клавишу F5 на странице информационной системы, отображающей перечень выставленных счетов с их статусом.

  • Схема взаимодействия с помощью событий-сообщений приемлема, если взаимодействует заведомо не больше двух процессов

Anatoly Belaychuk 2024-08-27 18:18