TBM/a> provides functions for managing graphic buffer.<\/p>\n<h2 id=\"content-required-header\"><a href=https://samsungtizenos.com/"#content-required-header\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Required Header<\/h2>\n<p>#include <hal-tbm.h><\/p>\n<h2 id=\"content-overview\"><a href=https://samsungtizenos.com/"#content-overview\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Overview<\/h2>\n<p>The TBM functions provides an managing interface of the graphic buffer including:<\/p>\n<ul>\n<li>Creating a surface with a defined width, height, and format<\/li>\n<li>Getting a color format list (ex: RGBA8888)<\/li>\n<li>Accessing the surface<\/li>\n<li>Getting surface and plane information<\/li>\n<\/ul>\n<p>For more information on the TBM features and the macros, see HAL TBM programming guides and tutorials.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Typedefs<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__backend__data\">_hal_tbm_backend_data<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga058b2e91343ad81ed948ab8faa47973a\">hal_tbm_backend_data<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>The structure type of the tbm backend data.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__bufmgr__funcs\">_hal_tbm_bufmgr_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab51c11de785390fca687b78fdac04396\">hal_tbm_bufmgr_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>The structure type of the TBM HAL's buffer management functions of backend.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__surface__funcs\">_hal_tbm_surface_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5cc5dd095586cc6d5ae8b96223d2c17e\">hal_tbm_surface_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>The structure type of the TBM HAL's surface functions of backend.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__bo__funcs\">_hal_tbm_bo_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41e64c92f48c6d5736e8332eca5657e0\">hal_tbm_bo_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>The structure type of the TBM HAL's buffer object functions of backend.<\/td>\n<\/tr>\n<tr>\n<td>typedef <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga1b414719417aa5388468d1e549d1cb61\">hal_tbm_authenticated_drm_fd_handler<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a> auth_fd, void *user_data)<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>The Event handler function when drm file descriptor is authernticated.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__surface__buffer__data\">_hal_tbm_surface_buffer_data<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a79cf05fc62b00327ae9ecd373138c3\">hal_tbm_surface_buffer_data<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the buffer data of hal_tbm_surface.<\/td>\n<\/tr>\n<tr>\n<td>typedef union <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#union__hal__tbm__bo__handle\">_hal_tbm_bo_handle<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac818cb57a292be37811af8dec3cbf46a\">hal_tbm_bo_handle<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>hal_tbm_bo_handle abstraction of the memory handle by <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\" title=\"Definition for the device type to access hal_tbm_bo.\">hal_tbm_bo_device_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>typedef void<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga1da07cba2bd2bab20d7f713f12f0a729\">hal_tbm_backend<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for hal_tbm_backend handle.<\/td>\n<\/tr>\n<tr>\n<td>typedef void<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for hal_tbm_bufmgr handle created by hal tbm backend.<\/td>\n<\/tr>\n<tr>\n<td>typedef void<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the tizen surface object.<\/td>\n<\/tr>\n<tr>\n<td>typedef void<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the tizen buffer object.<\/td>\n<\/tr>\n<tr>\n<td>typedef void<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga92db891de370c951188fef920c37a8f2\">hal_tbm_native_display<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for native display (wl_display in tizen)<\/td>\n<\/tr>\n<tr>\n<td>typedef int32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the file descriptor of the system buffer manager.<\/td>\n<\/tr>\n<tr>\n<td>typedef uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga32cea28acfbdd065570b036b38017b24\">hal_tbm_key<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the key associated with the buffer object.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct _hal_tbm_surface *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga9bc09ae8fbb6921257ff6cbdecaafea1\">hal_tbm_surface_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the Tizen buffer surface.<\/td>\n<\/tr>\n<tr>\n<td>typedef uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the Tizen buffer surface format.<\/td>\n<\/tr>\n<tr>\n<td>Defines<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaceac50a2b29bf8215b81a82cb4c724ce\">HAL_TBM_FORMAT_C8<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('C', '8', ' ', ' ')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format C8 ([7:0] C).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab511b5f4f74c88dd62d1eccde2619c6e\">HAL_TBM_FORMAT_RGB332<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'G', 'B', '8')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGB322 ([7:0] R:G:B 3:3:2).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga870a899996a9a07f7441a6a70f1725fe\">HAL_TBM_FORMAT_BGR233<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'G', 'R', '8')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGB233 ([7:0] B:G:R 2:3:3).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gace61b7f4e87bd1070451ea62614b6e7f\">HAL_TBM_FORMAT_XRGB4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XRGB4444 ([15:0] x:R:G:B 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac10dea6c810dee0292bd691d9b8b5780\">HAL_TBM_FORMAT_XBGR4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XBRG4444 ([15:0] x:B:G:R 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga4d580bf6b7ef7dcdac45f173d693cb36\">HAL_TBM_FORMAT_RGBX4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBX4444 ([15:0] R:G:B:x 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gabf2b644a19e1fb91b9bdd61b070e0ee9\">HAL_TBM_FORMAT_BGRX4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRX4444 ([15:0] B:G:R:x 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga38f3c41ead776de2962736f6dcee9694\">HAL_TBM_FORMAT_ARGB4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ARGB4444 ([15:0] A:R:G:B 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga07f2a22af5918796644bb197166ee0bc\">HAL_TBM_FORMAT_ABGR4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ABGR4444 ([15:0] A:B:G:R 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae176f1b203d71d655417ec0e31520840\">HAL_TBM_FORMAT_RGBA4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBA4444 ([15:0] R:G:B:A 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga00dc4093b26244e78db8fcfdf82df2e9\">HAL_TBM_FORMAT_BGRA4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRA4444 ([15:0] B:G:R:A 4:4:4:4 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga164a6359e6dbd2b7dd567adfc0d487ff\">HAL_TBM_FORMAT_XRGB1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XRGB1555 ([15:0] x:R:G:B 1:5:5:5 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga792285b3dba5a280f55f69f9a2801958\">HAL_TBM_FORMAT_XBGR1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XBGR1555 ([15:0] x:B:G:R 1:5:5:5 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa61492551164730235660f3fb44bd042\">HAL_TBM_FORMAT_RGBX5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBX5551 ([15:0] R:G:B:x 5:5:5:1 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa82c78388ff48eb253d646455b65b5df\">HAL_TBM_FORMAT_BGRX5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRX5551 ([15:0] B:G:R:x 5:5:5:1 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41b159559a8ee3c68bd4a1fffdb7aa1f\">HAL_TBM_FORMAT_ARGB1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ARGB1555 ([15:0] A:R:G:B 1:5:5:5 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a235a534b944acbdbad554fe98cec02\">HAL_TBM_FORMAT_ABGR1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ABGR1555 ([15:0] A:B:G:R 1:5:5:5 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga2e460bf013bd0f53e21f5a26325fcb40\">HAL_TBM_FORMAT_RGBA5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBA5551 ([15:0] R:G:B:A 5:5:5:1 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac2e90df60fb0303855466ccb87b6ee77\">HAL_TBM_FORMAT_BGRA5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '1', '5')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRA5551 ([15:0] B:G:R:A 5:5:5:1 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0bbe21993636e160c787d110425495b0\">HAL_TBM_FORMAT_RGB565<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'G', '1', '6')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGB565 ([15:0] R:G:B 5:6:5 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab5990403acef2eb39a381488348f1efe\">HAL_TBM_FORMAT_BGR565<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'G', '1', '6')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGR565 ([15:0] B:G:R 5:6:5 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga7aeb0036564a198b6a11a5404c017e03\">HAL_TBM_FORMAT_RGB888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'G', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGB888 ([23:0] R:G:B little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga2fe58357aea2e21c77e87ca54b02f77f\">HAL_TBM_FORMAT_BGR888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'G', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGR888 ([23:0] B:G:R little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga74d390d860619e696c560b4bf3d4d88c\">HAL_TBM_FORMAT_XRGB8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XRGB8888 ([31:0] x:R:G:B 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gafd5632fb331a71ea0b021faf80e0f9e3\">HAL_TBM_FORMAT_XBGR8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XBGR8888 ([31:0] x:B:G:R 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41ea0be1be9ce857dc381cd20022ece2\">HAL_TBM_FORMAT_RGBX8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBX8888 ([31:0] R:G:B:x 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaec9b3b53f1dcfea22eabbe3fb9b0c352\">HAL_TBM_FORMAT_BGRX8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRX8888 ([31:0] B:G:R:x 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa20684932cf3556dfa40dd4d3311674f\">HAL_TBM_FORMAT_ARGB8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ARGB8888 ([31:0] A:R:G:B 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga8e6ffc18c2ddbf3c81398c17df47ef1e\">HAL_TBM_FORMAT_ABGR8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ABGR8888 ([31:0] [31:0] A:B:G:R 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa3da22595f7e2575d170b7ea79f6edaa\">HAL_TBM_FORMAT_RGBA8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBA8888 ([31:0] R:G:B:A 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae4bad303044774e78a623028c73497c4\">HAL_TBM_FORMAT_BGRA8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRA8888 ([31:0] B:G:R:A 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga6a13a9df3d90610ae8cdba3cf41e83b6\">HAL_TBM_FORMAT_XRGB2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XRGB2101010 ([31:0] x:R:G:B 2:10:10:10 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac2f4a8f8b0dbc58b599116b6f3d354a5\">HAL_TBM_FORMAT_XBGR2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format XBGR2101010 ([31:0] x:B:G:R 2:10:10:10 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga34084212756f08681ec1b20617ec5295\">HAL_TBM_FORMAT_RGBX1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBX1010102 ([31:0] R:G:B:x 10:10:10:2 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaafe06fb7fa5ddcf0b31f1d890a61e7dd\">HAL_TBM_FORMAT_BGRX1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRX1010102 ([31:0] B:G:R:x 10:10:10:2 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga9ed1176cc8f2f7688d08c562bfb043af\">HAL_TBM_FORMAT_ARGB2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ARGB2101010 ([31:0] A:R:G:B 2:10:10:10 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae1443ea66f33496ab5cacc305e867149\">HAL_TBM_FORMAT_ABGR2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format ABGR2101010 ([31:0] A:B:G:R 2:10:10:10 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad59d6e719a3b86196db4b8869268b208\">HAL_TBM_FORMAT_RGBA1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format RGBA1010102 ([31:0] R:G:B:A 10:10:10:2 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga8eb3999f611278292d76d9de5c0a6762\">HAL_TBM_FORMAT_BGRA1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '3', '0')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format BGRA1010102 ([31:0] B:G:R:A 10:10:10:2 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaa660ce9250731ec04f90a1142e76865\">HAL_TBM_FORMAT_YUYV<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', 'Y', 'V')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YUYV ([31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga66df76fba6253460f5ca622dfe11ba11\">HAL_TBM_FORMAT_YVYU<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', 'Y', 'U')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YVYU ([31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0f5e21452f9f70b6d9ea029cf7ab2957\">HAL_TBM_FORMAT_UYVY<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('U', 'Y', 'V', 'Y')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format UYVY ([31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae6a71a31e2e3f2e33b90495de2e5a858\">HAL_TBM_FORMAT_VYUY<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('V', 'Y', 'U', 'Y')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format VYUY ([31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga02d044509c83f62843180d352f3ce597\">HAL_TBM_FORMAT_AYUV<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'Y', 'U', 'V')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format AYUV ([31:0] A:Y:Cb:Cr 8:8:8:8 little endian).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad63e779aef6fdc7fd23ad7e6800bc3a2\">HAL_TBM_FORMAT_NV12<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format NV12 (2x2 subsampled Cr:Cb plane).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab8fca08c0c7fe52427b2f9326254bf99\">HAL_TBM_FORMAT_NV21<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '2', '1')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format NV21 (2x2 subsampled Cb:Cr plane).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga65b3e524e762a87606f7d2189cccbae3\">HAL_TBM_FORMAT_NV16<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '1', '6')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format NV16 (2x1 subsampled Cr:Cb plane).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga7ee1ff5925bbb64d8baf3dc2d0aad60b\">HAL_TBM_FORMAT_NV61<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '6', '1')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format NV61 (2x1 subsampled Cb:Cr plane).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0fb3c334185446cab5a2c7ac360916f4\">HAL_TBM_FORMAT_YUV410<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', 'V', '9')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YUV410 (4x4 subsampled Cb (1) and Cr (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gacbc1b9146ace956337d079cdbf9eb48b\">HAL_TBM_FORMAT_YVU410<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', 'U', '9')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YVU410 (4x4 subsampled Cr (1) and Cb (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac136c98498cabd462d84ea3215da885e\">HAL_TBM_FORMAT_YUV411<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '1', '1')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YUV411 (4x1 subsampled Cb (1) and Cr (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaae84ea6aa8a1ee401a6bff388142066e\">HAL_TBM_FORMAT_YVU411<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '1', '1')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YVU411 (4x1 subsampled Cr (1) and Cb (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaba97fcfd9bce29a3945e8ed21e3a4ab\">HAL_TBM_FORMAT_YUV420<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YUV420 (2x2 subsampled Cb (1) and Cr (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5ed1cd8eec78ca981164f2bd0619c305\">HAL_TBM_FORMAT_YVU420<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YVU420 (2x2 subsampled Cr (1) and Cb (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gabc87136228ad58b5746ffee80a918b5f\">HAL_TBM_FORMAT_YUV422<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '1', '6')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YUV422 (2x1 subsampled Cb (1) and Cr (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa9b6b432d447941f6bfe55f6ea3dd862\">HAL_TBM_FORMAT_YVU422<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '1', '6')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YVU422 (2x1 subsampled Cr (1) and Cb (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gabc6ecd35e84a46337b06153c5c8741be\">HAL_TBM_FORMAT_YUV444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YUV444 (non-subsampled Cb (1) and Cr (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga824284e339acc0230f32a327ec00bdf1\">HAL_TBM_FORMAT_YVU444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '2', '4')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format YVU444 (non-subsampled Cr (1) and Cb (2) planes).<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga608248a791b14c180ed163ae80e6feda\">HAL_TBM_FORMAT_NV12MT<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('T', 'M', '1', '2')<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition for the TBM surface format NV12MT (tiled '64x32' & multi-plane version of NV12).<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h2 id=\"content-data-structure-documentation\"><a href=https://samsungtizenos.com/"#content-data-structure-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Data Structure Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_tbm_backend_data<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the tbm backend data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a319c870498aa361b7d4a5ae25ed787d7\">bufmgr<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ae9220e4a41e397a056a0869dea6658e1\">has_drm_device<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab51c11de785390fca687b78fdac04396\">hal_tbm_bufmgr_funcs<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#acacc4a390c26e351dd6597b83dac4fc9\">bufmgr_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5cc5dd095586cc6d5ae8b96223d2c17e\">hal_tbm_surface_funcs<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab21672fb75789a6c29891c0cf7650580\">surface_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41e64c92f48c6d5736e8332eca5657e0\">hal_tbm_bo_funcs<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a63173e631e84b27908e26c642d3c826d\">bo_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a22c12536ff8fe253c8aadf2ddde4d4b0\">drm_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a026114bbeae77c7590764fed680450e2\">is_master<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga1b414719417aa5388468d1e549d1cb61\">hal_tbm_authenticated_drm_fd_handler<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#af624ca68907b4c91f9d3e0f816ed4bed\">auth_drm_fd_func<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a82f13cc784ec6fc9867cf8d2e937db36\">user_data<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation\"><a href=https://samsungtizenos.com/"#content-field-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga1b414719417aa5388468d1e549d1cb61\">hal_tbm_authenticated_drm_fd_handler<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#af624ca68907b4c91f9d3e0f816ed4bed\">_hal_tbm_backend_data::auth_drm_fd_func<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The Event handler function when drm file descriptor is authernticated.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41e64c92f48c6d5736e8332eca5657e0\">hal_tbm_bo_funcs<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a63173e631e84b27908e26c642d3c826d\">_hal_tbm_backend_data::bo_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The TBM Buffer Object's functions of backend<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a319c870498aa361b7d4a5ae25ed787d7\">_hal_tbm_backend_data::bufmgr<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The handle of bufmgr<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab51c11de785390fca687b78fdac04396\">hal_tbm_bufmgr_funcs<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#acacc4a390c26e351dd6597b83dac4fc9\">_hal_tbm_backend_data::bufmgr_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The buffer manager's functions of backend<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a22c12536ff8fe253c8aadf2ddde4d4b0\">_hal_tbm_backend_data::drm_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The drm file descriptor<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ae9220e4a41e397a056a0869dea6658e1\">_hal_tbm_backend_data::has_drm_device<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The flag of having drm device or not<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a026114bbeae77c7590764fed680450e2\">_hal_tbm_backend_data::is_master<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The flag of master or not<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5cc5dd095586cc6d5ae8b96223d2c17e\">hal_tbm_surface_funcs<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab21672fb75789a6c29891c0cf7650580\">_hal_tbm_backend_data::surface_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The TBM Surface's functions of backend<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a82f13cc784ec6fc9867cf8d2e937db36\">_hal_tbm_backend_data::user_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The user data for callback<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_tbm_bufmgr_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the TBM HAL's buffer management functions of backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0b127d6f2c213f7bd825e4b76a90fea6\">hal_tbm_bufmgr_capability<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a536b673627adc9364fa20c25bd9bd049\">bufmgr_get_capabilities<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aa5cb6fc3202d3719f01bf58e2402f5de\">bufmgr_get_supported_formats<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, uint32_t **formats, uint32_t *num)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a587ba4abee00836f0897a6720af0539b\">bufmgr_get_plane_data<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a> format, int plane_idx, int width, int height, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ad5006db80724ef806b891dc07fa88be1\">bufmgr_alloc_surface<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, uint32_t width, uint32_t height, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a> format, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a> mem_types, uint64_t *modifiers, uint32_t num_modifiers, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab6f007d52c1b2335f0230e73b29ee557\">bufmgr_import_surface<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, uint32_t width, uint32_t height, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a> format, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a79cf05fc62b00327ae9ecd373138c3\">hal_tbm_surface_buffer_data<\/a> *buffer_data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ac828c8e937fef30a8abc1ed621763686\">bufmgr_alloc_bo<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, unsigned int size, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a> mem_types, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a43ea895e14c8079a2dc44e24ca27b7fc\">bufmgr_alloc_bo_with_format<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, int format, int bo_idx, int width, int height, int bpp, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a> mem_types, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a23e07b610b7bfc55af0bbcb794572321\">bufmgr_import_fd<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a> fd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a0962652e478cb7d83d110f5b66b0c06a\">bufmgr_import_key<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga32cea28acfbdd065570b036b38017b24\">hal_tbm_key<\/a> key, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-1\"><a href=https://samsungtizenos.com/"#content-field-documentation-1\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ac828c8e937fef30a8abc1ed621763686\">_hal_tbm_bufmgr_funcs::bufmgr_alloc_bo<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, unsigned int size, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a> mem_types, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Allocate the buffer object.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a43ea895e14c8079a2dc44e24ca27b7fc\">_hal_tbm_bufmgr_funcs::bufmgr_alloc_bo_with_format<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, int format, int bo_idx, int width, int height, int bpp, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a> mem_types, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Allocate the buffer object at buffer object index in surface according to the format.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ad5006db80724ef806b891dc07fa88be1\">_hal_tbm_bufmgr_funcs::bufmgr_alloc_surface<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, uint32_t width, uint32_t height, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a> format, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a> mem_types, uint64_t *modifiers, uint32_t num_modifiers, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Allocate the surface according to the color format.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0b127d6f2c213f7bd825e4b76a90fea6\">hal_tbm_bufmgr_capability<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a536b673627adc9364fa20c25bd9bd049\">_hal_tbm_bufmgr_funcs::bufmgr_get_capabilities<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the capabilities of a buffer manager<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a587ba4abee00836f0897a6720af0539b\">_hal_tbm_bufmgr_funcs::bufmgr_get_plane_data<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a> format, int plane_idx, int width, int height, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get plane's information from TBM buffer manager HAL according to the color format<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aa5cb6fc3202d3719f01bf58e2402f5de\">_hal_tbm_bufmgr_funcs::bufmgr_get_supported_formats<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, uint32_t **formats, uint32_t *num)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get supported color format from TBM buffer manager.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a23e07b610b7bfc55af0bbcb794572321\">_hal_tbm_bufmgr_funcs::bufmgr_import_fd<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a> fd, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Import the buffer object associated with the tbm_fd(prime fd).<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a0962652e478cb7d83d110f5b66b0c06a\">_hal_tbm_bufmgr_funcs::bufmgr_import_key<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga32cea28acfbdd065570b036b38017b24\">hal_tbm_key<\/a> key, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Import the buffer object associated with the tbm_key<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab6f007d52c1b2335f0230e73b29ee557\">_hal_tbm_bufmgr_funcs::bufmgr_import_surface<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a> *bufmgr, uint32_t width, uint32_t height, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a> format, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a79cf05fc62b00327ae9ecd373138c3\">hal_tbm_surface_buffer_data<\/a> *buffer_data, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Import the surface according to the format.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_tbm_surface_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the TBM HAL's surface functions of backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a29b1ebdb6bab3ec889788fbcd80bde04\">surface_free<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> **(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a60d2e7170c250cbcd1d1f0ead4537caa\">surface_get_bos<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface, int *num_bos, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a66768f1e498210bf10c1db86247d1e7d\">surface_get_plane_data<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface, int plane_idx, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a79cf05fc62b00327ae9ecd373138c3\">hal_tbm_surface_buffer_data<\/a> *(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aaeb77367d8a15a118a23ed38769cf64c\">surface_export<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-2\"><a href=https://samsungtizenos.com/"#content-field-documentation-2\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a79cf05fc62b00327ae9ecd373138c3\">hal_tbm_surface_buffer_data<\/a>*(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aaeb77367d8a15a118a23ed38769cf64c\">_hal_tbm_surface_funcs::surface_export<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Export a buffer_data of tbm_surface.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a29b1ebdb6bab3ec889788fbcd80bde04\">_hal_tbm_surface_funcs::surface_free<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Deallocate tbm_surface using backend's surface free function.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a>**(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a60d2e7170c250cbcd1d1f0ead4537caa\">_hal_tbm_surface_funcs::surface_get_bos<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface, int *num_bos, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the number of buffer objects associated with the tbm_surface.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a66768f1e498210bf10c1db86247d1e7d\">_hal_tbm_surface_funcs::surface_get_plane_data<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a> *surface, int plane_idx, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get size, offset, pitch, buffer object index related with plane_index from tbm_surface.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_tbm_bo_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the TBM HAL's buffer object functions of backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab3e99559ea6cf31deabe690440b89112\">bo_free<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ac0e922af0da4352bb0bce3ddc4cd9784\">bo_get_size<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#addd934a3ef45d1b85e5eae42532917e5\">bo_get_memory_types<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac818cb57a292be37811af8dec3cbf46a\">hal_tbm_bo_handle<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a9faead4d034b26050d31908b2504f605\">bo_get_handle<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a> device, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac818cb57a292be37811af8dec3cbf46a\">hal_tbm_bo_handle<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aa775f7673ef92e9b552b3ad0fb8828a5\">bo_map<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a> device, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga76ef189c02c126cda2f1f0da0fc96f81\">hal_tbm_bo_access_option<\/a> opt, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a4f13f78193f5cee4eff2f087dffdc495\">bo_unmap<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a6e2277c17f1564456507a1fbac6b3a6d\">bo_lock<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a> device, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga76ef189c02c126cda2f1f0da0fc96f81\">hal_tbm_bo_access_option<\/a> opt)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a74d88e9420ad0cc52bbd4442974f1bb1\">bo_unlock<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab3ad15f66d29efd929bf97d534dcc0c8\">bo_export_fd<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga32cea28acfbdd065570b036b38017b24\">hal_tbm_key<\/a>(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#adf705e636da029e9a24e71edbeb2ed4c\">bo_export_key<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-3\"><a href=https://samsungtizenos.com/"#content-field-documentation-3\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab3ad15f66d29efd929bf97d534dcc0c8\">_hal_tbm_bo_funcs::bo_export_fd<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Export file descriptor used by the buffer object<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga32cea28acfbdd065570b036b38017b24\">hal_tbm_key<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#adf705e636da029e9a24e71edbeb2ed4c\">_hal_tbm_bo_funcs::bo_export_key<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Export tbm_key used by the buffer object<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ab3e99559ea6cf31deabe690440b89112\">_hal_tbm_bo_funcs::bo_free<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Free the buffer object.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac818cb57a292be37811af8dec3cbf46a\">hal_tbm_bo_handle<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a9faead4d034b26050d31908b2504f605\">_hal_tbm_bo_funcs::bo_get_handle<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a> device, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the handle of TBM buffer object according to the device type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#addd934a3ef45d1b85e5eae42532917e5\">_hal_tbm_bo_funcs::bo_get_memory_types<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the memory type of buffer object<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ac0e922af0da4352bb0bce3ddc4cd9784\">_hal_tbm_bo_funcs::bo_get_size<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the size of a buffer object.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a6e2277c17f1564456507a1fbac6b3a6d\">_hal_tbm_bo_funcs::bo_lock<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a> device, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga76ef189c02c126cda2f1f0da0fc96f81\">hal_tbm_bo_access_option<\/a> opt)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Lock the buffer object.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac818cb57a292be37811af8dec3cbf46a\">hal_tbm_bo_handle<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aa775f7673ef92e9b552b3ad0fb8828a5\">_hal_tbm_bo_funcs::bo_map<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a> device, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga76ef189c02c126cda2f1f0da0fc96f81\">hal_tbm_bo_access_option<\/a> opt, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a> *error)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Map the buffer object according to the device type and the option.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a74d88e9420ad0cc52bbd4442974f1bb1\">_hal_tbm_bo_funcs::bo_unlock<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Unlock the buffer object.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a4f13f78193f5cee4eff2f087dffdc495\">_hal_tbm_bo_funcs::bo_unmap<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a> *bo)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Unmap the buffer object.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_tbm_surface_buffer_data<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the buffer data of hal_tbm_surface.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ac0b06e498e375b720b5d404510709d70\">fds<\/a><\/td>\n<\/tr>\n<tr>\n<td>unsigned int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a26c7a8f2ef46edbec4e7763b373ffc8b\">num_fds<\/a><\/td>\n<\/tr>\n<tr>\n<td>int *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a53c8635280073ffcf02f8702797ade88\">meta_data<\/a><\/td>\n<\/tr>\n<tr>\n<td>unsigned int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aff726677c8d0eb773dcd5d9f21234341\">num_meta_data<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a7fc634641b91526c5ebb25a62b2a913a\">reserved1<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ae36e40723357d6ff154ab58bfcbd08cf\">reserved2<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-4\"><a href=https://samsungtizenos.com/"#content-field-documentation-4\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ac0b06e498e375b720b5d404510709d70\">_hal_tbm_surface_buffer_data::fds<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>an array of dmabuf fds<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a53c8635280073ffcf02f8702797ade88\">_hal_tbm_surface_buffer_data::meta_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>an array of meta data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a26c7a8f2ef46edbec4e7763b373ffc8b\">_hal_tbm_surface_buffer_data::num_fds<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>the number of dmabuf fds<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#aff726677c8d0eb773dcd5d9f21234341\">_hal_tbm_surface_buffer_data::num_meta_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>the number of meta data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#a7fc634641b91526c5ebb25a62b2a913a\">_hal_tbm_surface_buffer_data::reserved1<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>reserved data1<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ae36e40723357d6ff154ab58bfcbd08cf\">_hal_tbm_surface_buffer_data::reserved2<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>reserved data2<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>union _hal_tbm_bo_handle<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>hal_tbm_bo_handle abstraction of the memory handle by <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\" title=\"Definition for the device type to access hal_tbm_bo.\">hal_tbm_bo_device_type<\/a><\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<hr \/>\n<h2 id=\"content-define-documentation\"><a href=https://samsungtizenos.com/"#content-define-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Define Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a235a534b944acbdbad554fe98cec02\">HAL_TBM_FORMAT_ABGR1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ABGR1555 ([15:0] A:B:G:R 1:5:5:5 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae1443ea66f33496ab5cacc305e867149\">HAL_TBM_FORMAT_ABGR2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ABGR2101010 ([31:0] A:B:G:R 2:10:10:10 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga07f2a22af5918796644bb197166ee0bc\">HAL_TBM_FORMAT_ABGR4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ABGR4444 ([15:0] A:B:G:R 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga8e6ffc18c2ddbf3c81398c17df47ef1e\">HAL_TBM_FORMAT_ABGR8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'B', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ABGR8888 ([31:0] [31:0] A:B:G:R 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41b159559a8ee3c68bd4a1fffdb7aa1f\">HAL_TBM_FORMAT_ARGB1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ARGB1555 ([15:0] A:R:G:B 1:5:5:5 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga9ed1176cc8f2f7688d08c562bfb043af\">HAL_TBM_FORMAT_ARGB2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ARGB2101010 ([31:0] A:R:G:B 2:10:10:10 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga38f3c41ead776de2962736f6dcee9694\">HAL_TBM_FORMAT_ARGB4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ARGB4444 ([15:0] A:R:G:B 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa20684932cf3556dfa40dd4d3311674f\">HAL_TBM_FORMAT_ARGB8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'R', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format ARGB8888 ([31:0] A:R:G:B 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga02d044509c83f62843180d352f3ce597\">HAL_TBM_FORMAT_AYUV<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('A', 'Y', 'U', 'V')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format AYUV ([31:0] A:Y:Cb:Cr 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga870a899996a9a07f7441a6a70f1725fe\">HAL_TBM_FORMAT_BGR233<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'G', 'R', '8')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGB233 ([7:0] B:G:R 2:3:3).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab5990403acef2eb39a381488348f1efe\">HAL_TBM_FORMAT_BGR565<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'G', '1', '6')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGR565 ([15:0] B:G:R 5:6:5 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga2fe58357aea2e21c77e87ca54b02f77f\">HAL_TBM_FORMAT_BGR888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'G', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGR888 ([23:0] B:G:R little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga8eb3999f611278292d76d9de5c0a6762\">HAL_TBM_FORMAT_BGRA1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRA1010102 ([31:0] B:G:R:A 10:10:10:2 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga00dc4093b26244e78db8fcfdf82df2e9\">HAL_TBM_FORMAT_BGRA4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRA4444 ([15:0] B:G:R:A 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac2e90df60fb0303855466ccb87b6ee77\">HAL_TBM_FORMAT_BGRA5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRA5551 ([15:0] B:G:R:A 5:5:5:1 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae4bad303044774e78a623028c73497c4\">HAL_TBM_FORMAT_BGRA8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'A', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRA8888 ([31:0] B:G:R:A 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaafe06fb7fa5ddcf0b31f1d890a61e7dd\">HAL_TBM_FORMAT_BGRX1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRX1010102 ([31:0] B:G:R:x 10:10:10:2 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gabf2b644a19e1fb91b9bdd61b070e0ee9\">HAL_TBM_FORMAT_BGRX4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRX4444 ([15:0] B:G:R:x 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa82c78388ff48eb253d646455b65b5df\">HAL_TBM_FORMAT_BGRX5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRX5551 ([15:0] B:G:R:x 5:5:5:1 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaec9b3b53f1dcfea22eabbe3fb9b0c352\">HAL_TBM_FORMAT_BGRX8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('B', 'X', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format BGRX8888 ([31:0] B:G:R:x 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaceac50a2b29bf8215b81a82cb4c724ce\">HAL_TBM_FORMAT_C8<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('C', '8', ' ', ' ')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format C8 ([7:0] C).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad63e779aef6fdc7fd23ad7e6800bc3a2\">HAL_TBM_FORMAT_NV12<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format NV12 (2x2 subsampled Cr:Cb plane).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga608248a791b14c180ed163ae80e6feda\">HAL_TBM_FORMAT_NV12MT<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('T', 'M', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format NV12MT (tiled '64x32' & multi-plane version of NV12).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga65b3e524e762a87606f7d2189cccbae3\">HAL_TBM_FORMAT_NV16<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '1', '6')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format NV16 (2x1 subsampled Cr:Cb plane).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab8fca08c0c7fe52427b2f9326254bf99\">HAL_TBM_FORMAT_NV21<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '2', '1')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format NV21 (2x2 subsampled Cb:Cr plane).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga7ee1ff5925bbb64d8baf3dc2d0aad60b\">HAL_TBM_FORMAT_NV61<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('N', 'V', '6', '1')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format NV61 (2x1 subsampled Cb:Cr plane).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab511b5f4f74c88dd62d1eccde2619c6e\">HAL_TBM_FORMAT_RGB332<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'G', 'B', '8')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGB322 ([7:0] R:G:B 3:3:2).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0bbe21993636e160c787d110425495b0\">HAL_TBM_FORMAT_RGB565<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'G', '1', '6')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGB565 ([15:0] R:G:B 5:6:5 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga7aeb0036564a198b6a11a5404c017e03\">HAL_TBM_FORMAT_RGB888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'G', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGB888 ([23:0] R:G:B little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad59d6e719a3b86196db4b8869268b208\">HAL_TBM_FORMAT_RGBA1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBA1010102 ([31:0] R:G:B:A 10:10:10:2 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae176f1b203d71d655417ec0e31520840\">HAL_TBM_FORMAT_RGBA4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBA4444 ([15:0] R:G:B:A 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga2e460bf013bd0f53e21f5a26325fcb40\">HAL_TBM_FORMAT_RGBA5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBA5551 ([15:0] R:G:B:A 5:5:5:1 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa3da22595f7e2575d170b7ea79f6edaa\">HAL_TBM_FORMAT_RGBA8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'A', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBA8888 ([31:0] R:G:B:A 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga34084212756f08681ec1b20617ec5295\">HAL_TBM_FORMAT_RGBX1010102<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBX1010102 ([31:0] R:G:B:x 10:10:10:2 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga4d580bf6b7ef7dcdac45f173d693cb36\">HAL_TBM_FORMAT_RGBX4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBX4444 ([15:0] R:G:B:x 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa61492551164730235660f3fb44bd042\">HAL_TBM_FORMAT_RGBX5551<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBX5551 ([15:0] R:G:B:x 5:5:5:1 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41ea0be1be9ce857dc381cd20022ece2\">HAL_TBM_FORMAT_RGBX8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('R', 'X', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format RGBX8888 ([31:0] R:G:B:x 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0f5e21452f9f70b6d9ea029cf7ab2957\">HAL_TBM_FORMAT_UYVY<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('U', 'Y', 'V', 'Y')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format UYVY ([31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gae6a71a31e2e3f2e33b90495de2e5a858\">HAL_TBM_FORMAT_VYUY<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('V', 'Y', 'U', 'Y')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format VYUY ([31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga792285b3dba5a280f55f69f9a2801958\">HAL_TBM_FORMAT_XBGR1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XBGR1555 ([15:0] x:B:G:R 1:5:5:5 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac2f4a8f8b0dbc58b599116b6f3d354a5\">HAL_TBM_FORMAT_XBGR2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XBGR2101010 ([31:0] x:B:G:R 2:10:10:10 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac10dea6c810dee0292bd691d9b8b5780\">HAL_TBM_FORMAT_XBGR4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XBRG4444 ([15:0] x:B:G:R 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gafd5632fb331a71ea0b021faf80e0f9e3\">HAL_TBM_FORMAT_XBGR8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'B', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XBGR8888 ([31:0] x:B:G:R 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga164a6359e6dbd2b7dd567adfc0d487ff\">HAL_TBM_FORMAT_XRGB1555<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '1', '5')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XRGB1555 ([15:0] x:R:G:B 1:5:5:5 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga6a13a9df3d90610ae8cdba3cf41e83b6\">HAL_TBM_FORMAT_XRGB2101010<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '3', '0')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XRGB2101010 ([31:0] x:R:G:B 2:10:10:10 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gace61b7f4e87bd1070451ea62614b6e7f\">HAL_TBM_FORMAT_XRGB4444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XRGB4444 ([15:0] x:R:G:B 4:4:4:4 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga74d390d860619e696c560b4bf3d4d88c\">HAL_TBM_FORMAT_XRGB8888<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('X', 'R', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format XRGB8888 ([31:0] x:R:G:B 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0fb3c334185446cab5a2c7ac360916f4\">HAL_TBM_FORMAT_YUV410<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', 'V', '9')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YUV410 (4x4 subsampled Cb (1) and Cr (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac136c98498cabd462d84ea3215da885e\">HAL_TBM_FORMAT_YUV411<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '1', '1')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YUV411 (4x1 subsampled Cb (1) and Cr (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaba97fcfd9bce29a3945e8ed21e3a4ab\">HAL_TBM_FORMAT_YUV420<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YUV420 (2x2 subsampled Cb (1) and Cr (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gabc87136228ad58b5746ffee80a918b5f\">HAL_TBM_FORMAT_YUV422<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '1', '6')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YUV422 (2x1 subsampled Cb (1) and Cr (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gabc6ecd35e84a46337b06153c5c8741be\">HAL_TBM_FORMAT_YUV444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YUV444 (non-subsampled Cb (1) and Cr (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaa660ce9250731ec04f90a1142e76865\">HAL_TBM_FORMAT_YUYV<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'U', 'Y', 'V')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YUYV ([31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gacbc1b9146ace956337d079cdbf9eb48b\">HAL_TBM_FORMAT_YVU410<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', 'U', '9')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YVU410 (4x4 subsampled Cr (1) and Cb (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaae84ea6aa8a1ee401a6bff388142066e\">HAL_TBM_FORMAT_YVU411<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '1', '1')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YVU411 (4x1 subsampled Cr (1) and Cb (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5ed1cd8eec78ca981164f2bd0619c305\">HAL_TBM_FORMAT_YVU420<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '1', '2')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YVU420 (2x2 subsampled Cr (1) and Cb (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaa9b6b432d447941f6bfe55f6ea3dd862\">HAL_TBM_FORMAT_YVU422<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '1', '6')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YVU422 (2x1 subsampled Cr (1) and Cb (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga824284e339acc0230f32a327ec00bdf1\">HAL_TBM_FORMAT_YVU444<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', '2', '4')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YVU444 (non-subsampled Cr (1) and Cb (2) planes).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga66df76fba6253460f5ca622dfe11ba11\">HAL_TBM_FORMAT_YVYU<\/a>\u00a0\u00a0\u00a0__hal_tbm_fourcc_code('Y', 'V', 'Y', 'U')<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the TBM surface format YVYU ([31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<hr \/>\n<h2 id=\"content-typedef-documentation\"><a href=https://samsungtizenos.com/"#content-typedef-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Typedef Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a>(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga1b414719417aa5388468d1e549d1cb61\">hal_tbm_authenticated_drm_fd_handler<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a> auth_fd, void *user_data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The Event handler function when drm file descriptor is authernticated.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>Parameters:<\/strong>\n: | [in] | auth_fd | authernticated drm file descriptor. |\n| --- | --- | --- |\n| [in] | user_data | The user data for handler. |<\/p>\n<p><strong>Precondition:<\/strong>\n: hal_tbm_backend_set_authenticated_drm_fd() will invoke this handler.<\/p>\n<p><strong>See also:<\/strong>\n: hal_tbm_backend_set_authenticated_drm_fd().\n: hal_tbm_backend_get_master_drm_fd().<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga1da07cba2bd2bab20d7f713f12f0a729\">hal_tbm_backend<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for hal_tbm_backend handle.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__backend__data\">_hal_tbm_backend_data<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga058b2e91343ad81ed948ab8faa47973a\">hal_tbm_backend_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the tbm backend data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>See also:<\/strong>\n: <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__backend__data\" title=\"The structure type of the tbm backend data.\">_hal_tbm_backend_data<\/a><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga596da5aa5351e298f5409828eea02aad\">hal_tbm_bo<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the tizen buffer object.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__bo__funcs\">_hal_tbm_bo_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga41e64c92f48c6d5736e8332eca5657e0\">hal_tbm_bo_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the TBM HAL's buffer object functions of backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>See also:<\/strong>\n: <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__bo__funcs\" title=\"The structure type of the TBM HAL's buffer object functions of backend.\">_hal_tbm_bo_funcs<\/a><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef union <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#union__hal__tbm__bo__handle\">_hal_tbm_bo_handle<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gac818cb57a292be37811af8dec3cbf46a\">hal_tbm_bo_handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>hal_tbm_bo_handle abstraction of the memory handle by <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\" title=\"Definition for the device type to access hal_tbm_bo.\">hal_tbm_bo_device_type<\/a><\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a1827eb418552f33cb62fba762d2d16\">hal_tbm_bufmgr<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for hal_tbm_bufmgr handle created by hal tbm backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__bufmgr__funcs\">_hal_tbm_bufmgr_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab51c11de785390fca687b78fdac04396\">hal_tbm_bufmgr_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the TBM HAL's buffer management functions of backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>See also:<\/strong>\n: <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__bufmgr__funcs\" title=\"The structure type of the TBM HAL's buffer management functions of backend.\">_hal_tbm_bufmgr_funcs<\/a><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef int32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gaaceec219fdcb2aac20747b141c16ba36\">hal_tbm_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the file descriptor of the system buffer manager.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gab02f4304cf84eec1382b01b659fc18a3\">hal_tbm_format<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the Tizen buffer surface format.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga32cea28acfbdd065570b036b38017b24\">hal_tbm_key<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the key associated with the buffer object.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga92db891de370c951188fef920c37a8f2\">hal_tbm_native_display<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for native display (wl_display in tizen)<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#gad777cefa481ffdd25cbbf5ed9144baa6\">hal_tbm_surface<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the tizen surface object.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__surface__buffer__data\">_hal_tbm_surface_buffer_data<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5a79cf05fc62b00327ae9ecd373138c3\">hal_tbm_surface_buffer_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the buffer data of hal_tbm_surface.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__surface__funcs\">_hal_tbm_surface_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga5cc5dd095586cc6d5ae8b96223d2c17e\">hal_tbm_surface_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>The structure type of the TBM HAL's surface functions of backend.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>See also:<\/strong>\n: <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#struct__hal__tbm__surface__funcs\" title=\"The structure type of the TBM HAL's surface functions of backend.\">_hal_tbm_surface_funcs<\/a><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct _hal_tbm_surface* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga9bc09ae8fbb6921257ff6cbdecaafea1\">hal_tbm_surface_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the Tizen buffer surface.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<hr \/>\n<h2 id=\"content-enumeration-type-documentation\"><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Enumeration Type Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga76ef189c02c126cda2f1f0da0fc96f81\">hal_tbm_bo_access_option<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the option to access hal_tbm_bo.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_TBM_OPTION_NONE<\/em> | The option is none |\n| --- | --- |\n| <em>HAL_TBM_OPTION_READ<\/em> | The option to access to read the bo |\n| <em>HAL_TBM_OPTION_WRITE<\/em> | The option to access to write the bo |\n| <em>HAL_TBM_OPTION_VENDOR<\/em> | The the vendor specific option that depends on the backend |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga48c2a2adcabc6c1b3e521a04b37892cc\">hal_tbm_bo_device_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition for the device type to access hal_tbm_bo.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_TBM_DEVICE_DEFAULT<\/em> | The device type to get the default handle |\n| --- | --- |\n| <em>HAL_TBM_DEVICE_CPU<\/em> | The device type to get the virtual memory |\n| <em>HAL_TBM_DEVICE_2D<\/em> | The device type to get the 2D memory handle |\n| <em>HAL_TBM_DEVICE_3D<\/em> | The device type to get the 3D memory handle |\n| <em>HAL_TBM_DEVICE_MM<\/em> | The device type to get the the multimedia handle |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga44b7a76360be2c1645c8299ae8bedeb5\">hal_tbm_bo_memory_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration of bo memory type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_TBM_BO_DEFAULT<\/em> | Default memory: it depends on the backend |\n| --- | --- |\n| <em>HAL_TBM_BO_SCANOUT<\/em> | Scanout memory |\n| <em>HAL_TBM_BO_NONCACHABLE<\/em> | Non-cacheable memory |\n| <em>HAL_TBM_BO_WC<\/em> | Write-combine memory |\n| <em>HAL_TBM_BO_TILED<\/em> | Tiled memory |\n| <em>HAL_TBM_BO_PROTECTED<\/em> | Protected memory (Since 1.1) |\n| <em>HAL_TBM_BO_VENDOR<\/em> | Vendor specific memory: it depends on the backend |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga0b127d6f2c213f7bd825e4b76a90fea6\">hal_tbm_bufmgr_capability<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration of tbm buffer manager capability.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_TBM_BUFMGR_CAPABILITY_NONE<\/em> | Not Support capability |\n| --- | --- |\n| <em>HAL_TBM_BUFMGR_CAPABILITY_SHARE_KEY<\/em> | Support sharing buffer by tbm key |\n| <em>HAL_TBM_BUFMGR_CAPABILITY_SHARE_FD<\/em> | Support sharing buffer by tbm fd |\n| <em>HAL_TBM_BUFMGR_CAPABILITY_TBM_SYNC<\/em> | Support timeline sync |\n| <em>HAL_TBM_BUFMGR_CAPABILITY_TILED_MEMORY<\/em> | Support tiled memory |\n| <em>HAL_TBM_BUFMGR_CAPABILITY_SHARE_SURFACE<\/em> | Support sharing surface by buffer data |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__TBM__MODULE.md#ga90c2da20b258a2ca93a460d9e80ea3f9\">hal_tbm_error<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for hal tbm error type.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_TBM 1.0<\/p>\n<p>Error's enumulation has group using offset 0x0101. HAL_TBM_ERROR_XXX. start from (HAL_TBM_ERROR_BASE | 0x0001) to (HAL_TBM_ERROR_BASE | 0x0099) HAL_TBM_BO_ERROR_XXX. start from (HAL_TBM_ERROR_BASE | 0x0101) to (HAL_TBM_ERROR_BASE | 0x0199)<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_TBM_ERROR_NONE<\/em> | Successful |\n| --- | --- |\n| <em>HAL_TBM_ERROR_OUT_OF_MEMORY<\/em> | Out of memory |\n| <em>HAL_TBM_ERROR_INVALID_PARAMETER<\/em> | Invalid function parameter |\n| <em>HAL_TBM_ERROR_INVALID_OPERATION<\/em> | Function not implemented |\n| <em>HAL_TBM_ERROR_NOT_SUPPORTED<\/em> | Not supported |\n| <em>HAL_TBM_BO_ERROR_GET_FD_FAILED<\/em> | Failed to get fd in bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000001\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_HEAP_ALLOC_FAILED<\/em> | Failed to allocate the heap memory in bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000002\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_LOAD_MODULE_FAILED<\/em> | Failed to load module <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000003\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_THREAD_INIT_FAILED<\/em> | Failed to initialize the pthread <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000004\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_BO_ALLOC_FAILED<\/em> | Failed to allocate hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000005\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_INIT_STATE_FAILED<\/em> | Failed to initialize the state of hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000006\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_IMPORT_FAILED<\/em> | Failed to import the handle of hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000007\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_IMPORT_FD_FAILED<\/em> | Failed to import fd of hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000008\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_EXPORT_FAILED<\/em> | Failed to export the handle of the hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000009\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_EXPORT_FD_FAILED<\/em> | Failed to export fd of hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000010\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_GET_HANDLE_FAILED<\/em> | Failed to get the hal_tbm_bo_handle <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000011\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_LOCK_FAILED<\/em> | Failed to lock the hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000012\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_MAP_FAILED<\/em> | Failed to map the hal_tbm_bo to get the hal_tbm_bo_handle <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000013\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_UNMAP_FAILED<\/em> | Failed to unmap the hal_tbm_bo <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000014\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_SWAP_FAILED<\/em> | Failed to swap the tbm_bos <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000015\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |\n| <em>HAL_TBM_BO_ERROR_DUP_FD_FAILED<\/em> | Failed to duplicate fd <strong><a href=https://samsungtizenos.com/"deprecated.md#_deprecated000016\">Deprecated:<\/a><\/strong> Deprecated since HAL_MODULE_TBM 1.0 |<\/p>\n<hr \/>\n<p>Except as noted, this content - excluding the Code Examples - is licensed under <a href=https://samsungtizenos.com/"http:////creativecommons.org//licenses//by//3.0//legalcode/">Creative Commons Attribution 3.0<\/a>\nand all of the Code Examples contained herein are licensed under <a href=https://samsungtizenos.com/"https:////www.tizen.org//bsd-3-clause-license/">BSD-3-Clause/a>.
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-define-documentation\">Define Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: TBM","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"wau4VR4gLkGgnlsBeJ8W","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__TBM__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"a3fbaccbe6837c7949bceee712dc1d025984e21eb0c386c4333b4ee55ba6303b"}" wire:effects="[]" wire:id="wau4VR4gLkGgnlsBeJ8W" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS10Ym1cIj48YSBocmVmPVwiI2NvbnRlbnQtdGl6ZW4taGFsLWFwaS10Ym1cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRpemVuIEhBTCBBUEk6IFRCTTxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWRcIj5UQk08XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGdyYXBoaWMgYnVmZmVyLjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlcXVpcmVkIEhlYWRlcjxcL2gyPlxuPHA+I2luY2x1ZGUgJmx0O2hhbC10Ym0uaCZndDs8XC9wPlxuPGgyIGlkPVwiY29udGVudC1vdmVydmlld1wiPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+T3ZlcnZpZXc8XC9oMj5cbjxwPlRoZSBUQk0gZnVuY3Rpb25zIHByb3ZpZGVzIGFuIG1hbmFnaW5nIGludGVyZmFjZSBvZiB0aGUgZ3JhcGhpYyBidWZmZXIgaW5jbHVkaW5nOjxcL3A+XG48dWw+XG48bGk+Q3JlYXRpbmcgYSBzdXJmYWNlIHdpdGggYSBkZWZpbmVkIHdpZHRoLCBoZWlnaHQsIGFuZCBmb3JtYXQ8XC9saT5cbjxsaT5HZXR0aW5nIGEgY29sb3IgZm9ybWF0IGxpc3QgKGV4OiBSR0JBODg4OCk8XC9saT5cbjxsaT5BY2Nlc3NpbmcgdGhlIHN1cmZhY2U8XC9saT5cbjxsaT5HZXR0aW5nIHN1cmZhY2UgYW5kIHBsYW5lIGluZm9ybWF0aW9uPFwvbGk+XG48XC91bD5cbjxwPkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBUQk0gZmVhdHVyZXMgYW5kIHRoZSBtYWNyb3MsIHNlZSBIQUwgVEJNIHByb2dyYW1taW5nIGd1aWRlcyBhbmQgdHV0b3JpYWxzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5UeXBlZGVmczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX2JhY2tlbmRfX2RhdGFcIj5faGFsX3RibV9iYWNrZW5kX2RhdGE8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDU4YjJlOTEzNDNhZDgxZWQ5NDhhYjhmYWE0Nzk3M2FcIj5oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIHRibSBiYWNrZW5kIGRhdGEuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX2J1Zm1ncl9fZnVuY3NcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjUxYzExZGU3ODUzOTBmY2E2ODdiNzhmZGFjMDQzOTZcIj5oYWxfdGJtX2J1Zm1ncl9mdW5jczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fc3VyZmFjZV9fZnVuY3NcIj5faGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIHN1cmZhY2UgZnVuY3Rpb25zIG9mIGJhY2tlbmQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fdGJtX19ib19fZnVuY3NcIj5faGFsX3RibV9ib19mdW5jczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0MWU2NGM5MmY0OGM2ZDU3MzZlODMzMmVjYTU2NTdlMFwiPmhhbF90Ym1fYm9fZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+VGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSBUQk0gSEFMJ3MgYnVmZmVyIG9iamVjdCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExYjQxNDcxOTQxN2FhNTM4ODQ2OGQxZTU0OWQxY2I2MVwiPmhhbF90Ym1fYXV0aGVudGljYXRlZF9kcm1fZmRfaGFuZGxlcjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhY2VlYzIxOWZkY2IyYWFjMjA3NDdiMTQxYzE2YmEzNlwiPmhhbF90Ym1fZmQ8XC9hPiBhdXRoX2ZkLCB2b2lkICp1c2VyX2RhdGEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UaGUgRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB3aGVuIGRybSBmaWxlIGRlc2NyaXB0b3IgaXMgYXV0aGVybnRpY2F0ZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX3N1cmZhY2VfX2J1ZmZlcl9fZGF0YVwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIGJ1ZmZlciBkYXRhIG9mIGhhbF90Ym1fc3VyZmFjZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdW5pb24gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjdW5pb25fX2hhbF9fdGJtX19ib19faGFuZGxlXCI+X2hhbF90Ym1fYm9faGFuZGxlPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+aGFsX3RibV9ib19oYW5kbGUgYWJzdHJhY3Rpb24gb2YgdGhlIG1lbW9yeSBoYW5kbGUgYnkgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiIHRpdGxlPVwiRGVmaW5pdGlvbiBmb3IgdGhlIGRldmljZSB0eXBlIHRvIGFjY2VzcyBoYWxfdGJtX2JvLlwiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB2b2lkPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExZGEwN2NiYTJiZDJiYWIyMGQ3ZjcxM2YxMmYwYTcyOVwiPmhhbF90Ym1fYmFja2VuZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciBoYWxfdGJtX2JhY2tlbmQgaGFuZGxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB2b2lkPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIGhhbF90Ym1fYnVmbWdyIGhhbmRsZSBjcmVhdGVkIGJ5IGhhbCB0Ym0gYmFja2VuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdm9pZDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIHN1cmZhY2Ugb2JqZWN0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB2b2lkPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIGJ1ZmZlciBvYmplY3QuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHZvaWQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkyZGI4OTFkZTM3MGM5NTExODhmZWY5MjBjMzdhOGYyXCI+aGFsX3RibV9uYXRpdmVfZGlzcGxheTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciBuYXRpdmUgZGlzcGxheSAod2xfZGlzcGxheSBpbiB0aXplbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgaW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIHN5c3RlbSBidWZmZXIgbWFuYWdlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTMyY2VhMjhhY2ZiZGQwNjU1NzBiMDM2YjM4MDE3YjI0XCI+aGFsX3RibV9rZXk8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlciBvYmplY3QuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCBfaGFsX3RibV9zdXJmYWNlICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTliYzA5YWU4ZmJiNjkyMTI1N2ZmNmNiZGVjYWFmZWExXCI+aGFsX3RibV9zdXJmYWNlX2g8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRpemVuIGJ1ZmZlciBzdXJmYWNlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB1aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVGl6ZW4gYnVmZmVyIHN1cmZhY2UgZm9ybWF0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+RGVmaW5lczxcL3RkPlxuPHRkPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhY2VhYzUwYTJiMjliZjgyMTViODFhODJjYjRjNzI0Y2VcIj5IQUxfVEJNX0ZPUk1BVF9DODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdDJywgJzgnLCAnICcsICcgJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQzggKFs3OjBdIEMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjUxMWI1ZjRmNzRjODhkZDYyZDFlY2NkZTI2MTljNmVcIj5IQUxfVEJNX0ZPUk1BVF9SR0IzMzI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdHJywgJ0InLCAnOCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjMyMiAoWzc6MF0gUjpHOkIgMzozOjIpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhODcwYTg5OTk5NmE5YTA3Zjc0NDFhNmE3MGYxNzI1ZmVcIj5IQUxfVEJNX0ZPUk1BVF9CR1IyMzM8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdHJywgJ1InLCAnOCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjIzMyAoWzc6MF0gQjpHOlIgMjozOjMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhY2U2MWI3ZjRlODdiZDEwNzA0NTFlYTYyNjE0YjZlN2ZcIj5IQUxfVEJNX0ZPUk1BVF9YUkdCNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ1InLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWFJHQjQ0NDQgKFsxNTowXSB4OlI6RzpCIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTBkZWE2YzgxMGRlZTAyOTJiZDY5MWQ5YjhiNTc4MFwiPkhBTF9UQk1fRk9STUFUX1hCR1I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnQicsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYQlJHNDQ0NCAoWzE1OjBdIHg6QjpHOlIgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTRkNTgwYmY2YjdlZjdkY2RhYzQ1ZjE3M2Q2OTNjYjM2XCI+SEFMX1RCTV9GT1JNQVRfUkdCWDQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdYJywgJzEnLCAnMicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQlg0NDQ0IChbMTU6MF0gUjpHOkI6eCA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYmYyYjY0NGExOWUxZmI5MWI5YmRkNjFiMDcwZTBlZTlcIj5IQUxfVEJNX0ZPUk1BVF9CR1JYNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ1gnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSWDQ0NDQgKFsxNTowXSBCOkc6Ujp4IDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzOGYzYzQxZWFkNzc2ZGUyOTYyNzM2ZjZkY2VlOTY5NFwiPkhBTF9UQk1fRk9STUFUX0FSR0I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnUicsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBUkdCNDQ0NCAoWzE1OjBdIEE6UjpHOkIgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTA3ZjJhMjJhZjU5MTg3OTY2NDRiYjE5NzE2NmVlMGJjXCI+SEFMX1RCTV9GT1JNQVRfQUJHUjQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdCJywgJzEnLCAnMicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFCR1I0NDQ0IChbMTU6MF0gQTpCOkc6UiA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZTE3NmYxYjIwM2Q3MWQ2NTU0MTdlYzBlMzE1MjA4NDBcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCQTQ0NDQgKFsxNTowXSBSOkc6QjpBIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwMGRjNDA5M2IyNjI0NGU3OGRiOGZjZmRmODJkZjJlOVwiPkhBTF9UQk1fRk9STUFUX0JHUkE0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JBNDQ0NCAoWzE1OjBdIEI6RzpSOkEgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTE2NGE2MzU5ZTZkYmQyYjdkZDU2N2FkZmMwZDQ4N2ZmXCI+SEFMX1RCTV9GT1JNQVRfWFJHQjE1NTU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzEnLCAnNScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhSR0IxNTU1IChbMTU6MF0geDpSOkc6QiAxOjU6NTo1IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNzkyMjg1YjNkYmE1YTI4MGY1NWY2OWY5YTI4MDE5NThcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMScsICc1Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWEJHUjE1NTUgKFsxNTowXSB4OkI6RzpSIDE6NTo1OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhNjE0OTI1NTExNjQ3MzAyMzU2NjBmM2ZiNDRiZDA0MlwiPkhBTF9UQk1fRk9STUFUX1JHQlg1NTUxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnWCcsICcxJywgJzUnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYNTU1MSAoWzE1OjBdIFI6RzpCOnggNTo1OjU6MSBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWE4MmM3ODM4OGZmNDhlYjI1M2Q2NDY0NTViNjViNWRmXCI+SEFMX1RCTV9GT1JNQVRfQkdSWDU1NTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdYJywgJzEnLCAnNScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlg1NTUxIChbMTU6MF0gQjpHOlI6eCA1OjU6NToxIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFiMTU5NTU5YThlZTNjNjhiZDRhMWZmZmRiN2FhMWZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMScsICc1Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQVJHQjE1NTUgKFsxNTowXSBBOlI6RzpCIDE6NTo1OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTIzNWE1MzRiOTQ0YWNiZGJhZDU1NGZlOThjZWMwMlwiPkhBTF9UQk1fRk9STUFUX0FCR1IxNTU1PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnQicsICcxJywgJzUnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSMTU1NSAoWzE1OjBdIEE6QjpHOlIgMTo1OjU6NSBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTJlNDYwYmYwMTNiZDBmNTNlMjFmNWEyNjMyNWZjYjQwXCI+SEFMX1RCTV9GT1JNQVRfUkdCQTU1NTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdBJywgJzEnLCAnNScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkE1NTUxIChbMTU6MF0gUjpHOkI6QSA1OjU6NToxIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYzJlOTBkZjYwZmIwMzAzODU1NDY2Y2NiODdiNmVlNzdcIj5IQUxfVEJNX0ZPUk1BVF9CR1JBNTU1MTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMScsICc1Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTU1NTEgKFsxNTowXSBCOkc6UjpBIDU6NTo1OjEgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwYmJlMjE5OTM2MzZlMTYwYzc4N2QxMTA0MjU0OTViMFwiPkhBTF9UQk1fRk9STUFUX1JHQjU2NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0cnLCAnMScsICc2Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCNTY1IChbMTU6MF0gUjpHOkIgNTo2OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiNTk5MDQwM2FjZWYyZWIzOWEzODE0ODgzNDhmMWVmZVwiPkhBTF9UQk1fRk9STUFUX0JHUjU2NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0cnLCAnMScsICc2Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSNTY1IChbMTU6MF0gQjpHOlIgNTo2OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3YWViMDAzNjU2NGExOThiNmExMWE1NDA0YzAxN2UwM1wiPkhBTF9UQk1fRk9STUFUX1JHQjg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0cnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCODg4IChbMjM6MF0gUjpHOkIgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EyZmU1ODM1N2FlYTJlMjFjNzdlODdjYTU0YjAyZjc3ZlwiPkhBTF9UQk1fRk9STUFUX0JHUjg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0cnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSODg4IChbMjM6MF0gQjpHOlIgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3NGQzOTBkODYwNjE5ZTY5NmM1NjBiNGJmM2Q0ZDg4Y1wiPkhBTF9UQk1fRk9STUFUX1hSR0I4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnUicsICcyJywgJzQnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYUkdCODg4OCAoWzMxOjBdIHg6UjpHOkIgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWZkNTYzMmZiMzMxYTcxZWEwYjAyMWZhZjgwZTBmOWUzXCI+SEFMX1RCTV9GT1JNQVRfWEJHUjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdCJywgJzInLCAnNCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhCR1I4ODg4IChbMzE6MF0geDpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFlYTBiZTFiZTljZTg1N2RjMzgxY2QyMDAyMmVjZTJcIj5IQUxfVEJNX0ZPUk1BVF9SR0JYODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ1gnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCWDg4ODggKFszMTowXSBSOkc6Qjp4IDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlYzliM2I1M2YxZGNmZWEyMmVhYmJlM2ZiOWIwYzM1MlwiPkhBTF9UQk1fRk9STUFUX0JHUlg4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnWCcsICcyJywgJzQnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JYODg4OCAoWzMxOjBdIEI6RzpSOnggODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWEyMDY4NDkzMmNmMzU1NmRmYTQwZGQ0ZDMzMTE2NzRmXCI+SEFMX1RCTV9GT1JNQVRfQVJHQjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdSJywgJzInLCAnNCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFSR0I4ODg4IChbMzE6MF0gQTpSOkc6QiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOGU2ZmZjMThjMmRkYmYzYzgxMzk4YzE3ZGY0N2VmMWVcIj5IQUxfVEJNX0ZPUk1BVF9BQkdSODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ0InLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQUJHUjg4ODggKFszMTowXSBbMzE6MF0gQTpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTNkYTIyNTk1ZjdlMjU3NWQxNzBiN2VhNzlmNmVkYWFcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCQTg4ODggKFszMTowXSBSOkc6QjpBIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlNGJhZDMwMzA0NDc3NGU3OGE2MjMwMjhjNzM0OTdjNFwiPkhBTF9UQk1fRk9STUFUX0JHUkE4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICcyJywgJzQnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JBODg4OCAoWzMxOjBdIEI6RzpSOkEgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTZhMTNhOWRmM2Q5MDYxMGFlOGNkYmEzY2Y0MWU4M2I2XCI+SEFMX1RCTV9GT1JNQVRfWFJHQjIxMDEwMTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzMnLCAnMCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhSR0IyMTAxMDEwIChbMzE6MF0geDpSOkc6QiAyOjEwOjEwOjEwIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYzJmNGE4ZjhiMGRiYzU4YjU5OTExNmI2ZjNkMzU0YTVcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSMjEwMTAxMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMycsICcwJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWEJHUjIxMDEwMTAgKFszMTowXSB4OkI6RzpSIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzNDA4NDIxMjc1NmYwODY4MWVjMWIyMDYxN2VjNTI5NVwiPkhBTF9UQk1fRk9STUFUX1JHQlgxMDEwMTAyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnWCcsICczJywgJzAnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYMTAxMDEwMiAoWzMxOjBdIFI6RzpCOnggMTA6MTA6MTA6MiBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFmZTA2ZmI3ZmE1ZGRjZjBiMzFmMWQ4OTBhNjFlN2RkXCI+SEFMX1RCTV9GT1JNQVRfQkdSWDEwMTAxMDI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdYJywgJzMnLCAnMCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlgxMDEwMTAyIChbMzE6MF0gQjpHOlI6eCAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOWVkMTE3NmNjOGYyZjc2ODhkMDhjNTYyYmZiMDQzYWZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCMjEwMTAxMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMycsICcwJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQVJHQjIxMDEwMTAgKFszMTowXSBBOlI6RzpCIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlMTQ0M2VhNjZmMzM0OTZhYjVjYWNjMzA1ZTg2NzE0OVwiPkhBTF9UQk1fRk9STUFUX0FCR1IyMTAxMDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnQicsICczJywgJzAnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSMjEwMTAxMCAoWzMxOjBdIEE6QjpHOlIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ1OWQ2ZTcxOWEzYjg2MTk2ZGI0Yjg4NjkyNjhiMjA4XCI+SEFMX1RCTV9GT1JNQVRfUkdCQTEwMTAxMDI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdBJywgJzMnLCAnMCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkExMDEwMTAyIChbMzE6MF0gUjpHOkI6QSAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOGViMzk5OWY2MTEyNzgyOTJkNzZkOWRlNWMwYTY3NjJcIj5IQUxfVEJNX0ZPUk1BVF9CR1JBMTAxMDEwMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMycsICcwJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTEwMTAxMDIgKFszMTowXSBCOkc6UjpBIDEwOjEwOjEwOjIgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhYTY2MGNlOTI1MDczMWVjMDRmOTBhMTE0MmU3Njg2NVwiPkhBTF9UQk1fRk9STUFUX1lVWVY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJ1knLCAnVicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVWVYgKFszMTowXSBDcjA6WTE6Q2IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E2NmRmNzZmYmE2MjUzNDYwZjVjYTYyMmRmZTExYmExMVwiPkhBTF9UQk1fRk9STUFUX1lWWVU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdWJywgJ1knLCAnVScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWWVUgKFszMTowXSBDYjA6WTE6Q3IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwZjVlMjE0NTJmOWY3MGI2ZDllYTAyOWNmN2FiMjk1N1wiPkhBTF9UQk1fRk9STUFUX1VZVlk8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnVScsICdZJywgJ1YnLCAnWScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFVZVlkgKFszMTowXSBZMTpDcjA6WTA6Q2IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlNmE3MWEzMWUyZTNmMmUzM2I5MDQ5NWRlMmU1YTg1OFwiPkhBTF9UQk1fRk9STUFUX1ZZVVk8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnVicsICdZJywgJ1UnLCAnWScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFZZVVkgKFszMTowXSBZMTpDYjA6WTA6Q3IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwMmQwNDQ1MDljODNmNjI4NDMxODBkMzUyZjNjZTU5N1wiPkhBTF9UQk1fRk9STUFUX0FZVVY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdZJywgJ1UnLCAnVicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFZVVYgKFszMTowXSBBOlk6Q2I6Q3IgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ2M2U3NzlhZWY2ZmRjN2ZkMjNhZDdlNjgwMGJjM2EyXCI+SEFMX1RCTV9GT1JNQVRfTlYxMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdOJywgJ1YnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxMiAoMngyIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjhmY2EwOGMwYzdmZTUyNDI3YjJmOTMyNjI1NGJmOTlcIj5IQUxfVEJNX0ZPUk1BVF9OVjIxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ04nLCAnVicsICcyJywgJzEnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBOVjIxICgyeDIgc3Vic2FtcGxlZCBDYjpDciBwbGFuZSkuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E2NWIzZTUyNGU3NjJhODc2MDZmN2QyMTg5Y2NjYmFlM1wiPkhBTF9UQk1fRk9STUFUX05WMTY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnTicsICdWJywgJzEnLCAnNicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IE5WMTYgKDJ4MSBzdWJzYW1wbGVkIENyOkNiIHBsYW5lKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTdlZTFmZjU5MjViYmI2NGQ4YmFmM2RjMmQwYWFkNjBiXCI+SEFMX1RCTV9GT1JNQVRfTlY2MTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdOJywgJ1YnLCAnNicsICcxJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlY2MSAoMngxIHN1YnNhbXBsZWQgQ2I6Q3IgcGxhbmUpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGZiM2MzMzQxODU0NDZjYWI1YTJjN2FjMzYwOTE2ZjRcIj5IQUxfVEJNX0ZPUk1BVF9ZVVY0MTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJ1YnLCAnOScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQxMCAoNHg0IHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWNiYzFiOTE0NmFjZTk1NjMzN2QwNzljZGJmOWViNDhiXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICdVJywgJzknKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVlU0MTAgKDR4NCBzdWJzYW1wbGVkIENyICgxKSBhbmQgQ2IgKDIpIHBsYW5lcykuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTM2Yzk4NDk4Y2FiZDQ2MmQ4NGVhMzIxNWRhODg1ZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQxMTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICcxJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVVWNDExICg0eDEgc3Vic2FtcGxlZCBDYiAoMSkgYW5kIENyICgyKSBwbGFuZXMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWU4NGVhNmFhOGExZWU0MDFhNmJmZjM4ODE0MjA2NmVcIj5IQUxfVEJNX0ZPUk1BVF9ZVlU0MTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdWJywgJzEnLCAnMScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWVTQxMSAoNHgxIHN1YnNhbXBsZWQgQ3IgKDEpIGFuZCBDYiAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFiYTk3ZmNmZDliY2UyOWEzOTQ1ZThlZDIxZTNhNGFiXCI+SEFMX1RCTV9GT1JNQVRfWVVWNDIwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVScsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVVY0MjAgKDJ4MiBzdWJzYW1wbGVkIENiICgxKSBhbmQgQ3IgKDIpIHBsYW5lcykuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1ZWQxY2Q4ZWVjNzhjYTk4MTE2NGYyYmQwNjE5YzMwNVwiPkhBTF9UQk1fRk9STUFUX1lWVTQyMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1YnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDIwICgyeDIgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYmM4NzEzNjIyOGFkNThiNTc0NmZmZWU4MGE5MThiNWZcIj5IQUxfVEJNX0ZPUk1BVF9ZVVY0MjI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJzEnLCAnNicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQyMiAoMngxIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWE5YjZiNDMyZDQ0Nzk0MWY2YmZlNTVmNmVhM2RkODYyXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDIyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzYnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVlU0MjIgKDJ4MSBzdWJzYW1wbGVkIENyICgxKSBhbmQgQ2IgKDIpIHBsYW5lcykuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiYzZlY2QzNWU4NGE0NjMzN2IwNjE1M2M1Yzg3NDFiZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVVWNDQ0IChub24tc3Vic2FtcGxlZCBDYiAoMSkgYW5kIENyICgyKSBwbGFuZXMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhODI0Mjg0ZTMzOWFjYzAyMzBmMzJhMzI3ZWMwMGJkZjFcIj5IQUxfVEJNX0ZPUk1BVF9ZVlU0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdWJywgJzInLCAnNCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWVTQ0NCAobm9uLXN1YnNhbXBsZWQgQ3IgKDEpIGFuZCBDYiAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTYwODI0OGE3OTFiMTRjMTgwZWQxNjNhZTgwZTZmZWRhXCI+SEFMX1RCTV9GT1JNQVRfTlYxMk1UPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1QnLCAnTScsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBOVjEyTVQgKHRpbGVkICc2NHgzMicgJmFtcDsgbXVsdGktcGxhbmUgdmVyc2lvbiBvZiBOVjEyKS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgdGJtIGJhY2tlbmQgZGF0YS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMzE5Yzg3MDQ5OGFhMzYxYjdkNGE1YWUyNWVkNzg3ZDdcIj5idWZtZ3I8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWU5MjIwZTRhNDFlMzk3YTA1NmEwODY5ZGVhNjY1OGUxXCI+aGFzX2RybV9kZXZpY2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiNTFjMTFkZTc4NTM5MGZjYTY4N2I3OGZkYWMwNDM5NlwiPmhhbF90Ym1fYnVmbWdyX2Z1bmNzPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjYWNjNGEzOTBjMjZlMzUxZGQ2NTk3YjgzZGFjNGZjOVwiPmJ1Zm1ncl9mdW5jczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiMjE2NzJmYjc1Nzg5YTZjMjk4OTFjMGNmNzY1MDU4MFwiPnN1cmZhY2VfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0MWU2NGM5MmY0OGM2ZDU3MzZlODMzMmVjYTU2NTdlMFwiPmhhbF90Ym1fYm9fZnVuY3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTYzMTczZTYzMWU4NGIyNzkwOGUyNmM2NDJkM2M4MjZkXCI+Ym9fZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhY2VlYzIxOWZkY2IyYWFjMjA3NDdiMTQxYzE2YmEzNlwiPmhhbF90Ym1fZmQ8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2EyMmMxMjUzNmZmOGZlMjUzYzhhYWRmMmRkZGU0ZDRiMFwiPmRybV9mZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMDI2MTE0YmJlYWU3N2M3NTkwNzY0ZmVkNjgwNDUwZTJcIj5pc19tYXN0ZXI8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExYjQxNDcxOTQxN2FhNTM4ODQ2OGQxZTU0OWQxY2I2MVwiPmhhbF90Ym1fYXV0aGVudGljYXRlZF9kcm1fZmRfaGFuZGxlcjxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWY2MjRjYTY4OTA3YjRjOTFmOWQzZTBmODE2ZWQ0YmVkXCI+YXV0aF9kcm1fZmRfZnVuYzxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhODJmMTNjYzc4NGVjNmZjOTg2N2NmOGQyZTkzN2RiMzZcIj51c2VyX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTFiNDE0NzE5NDE3YWE1Mzg4NDY4ZDFlNTQ5ZDFjYjYxXCI+aGFsX3RibV9hdXRoZW50aWNhdGVkX2RybV9mZF9oYW5kbGVyPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWY2MjRjYTY4OTA3YjRjOTFmOWQzZTBmODE2ZWQ0YmVkXCI+X2hhbF90Ym1fYmFja2VuZF9kYXRhOjphdXRoX2RybV9mZF9mdW5jPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB3aGVuIGRybSBmaWxlIGRlc2NyaXB0b3IgaXMgYXV0aGVybnRpY2F0ZWQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFlNjRjOTJmNDhjNmQ1NzM2ZTgzMzJlY2E1NjU3ZTBcIj5oYWxfdGJtX2JvX2Z1bmNzPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2MzE3M2U2MzFlODRiMjc5MDhlMjZjNjQyZDNjODI2ZFwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6Ym9fZnVuY3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBUQk0gQnVmZmVyIE9iamVjdCdzIGZ1bmN0aW9ucyBvZiBiYWNrZW5kPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMzE5Yzg3MDQ5OGFhMzYxYjdkNGE1YWUyNWVkNzg3ZDdcIj5faGFsX3RibV9iYWNrZW5kX2RhdGE6OmJ1Zm1ncjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIGhhbmRsZSBvZiBidWZtZ3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiNTFjMTFkZTc4NTM5MGZjYTY4N2I3OGZkYWMwNDM5NlwiPmhhbF90Ym1fYnVmbWdyX2Z1bmNzPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjYWNjNGEzOTBjMjZlMzUxZGQ2NTk3YjgzZGFjNGZjOVwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6YnVmbWdyX2Z1bmNzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgYnVmZmVyIG1hbmFnZXIncyBmdW5jdGlvbnMgb2YgYmFja2VuZDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFjZWVjMjE5ZmRjYjJhYWMyMDc0N2IxNDFjMTZiYTM2XCI+aGFsX3RibV9mZDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2EyMmMxMjUzNmZmOGZlMjUzYzhhYWRmMmRkZGU0ZDRiMFwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6ZHJtX2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgZHJtIGZpbGUgZGVzY3JpcHRvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWU5MjIwZTRhNDFlMzk3YTA1NmEwODY5ZGVhNjY1OGUxXCI+X2hhbF90Ym1fYmFja2VuZF9kYXRhOjpoYXNfZHJtX2RldmljZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIGZsYWcgb2YgaGF2aW5nIGRybSBkZXZpY2Ugb3Igbm90PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMDI2MTE0YmJlYWU3N2M3NTkwNzY0ZmVkNjgwNDUwZTJcIj5faGFsX3RibV9iYWNrZW5kX2RhdGE6OmlzX21hc3RlcjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIGZsYWcgb2YgbWFzdGVyIG9yIG5vdDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiMjE2NzJmYjc1Nzg5YTZjMjk4OTFjMGNmNzY1MDU4MFwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6c3VyZmFjZV9mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIFRCTSBTdXJmYWNlJ3MgZnVuY3Rpb25zIG9mIGJhY2tlbmQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTgyZjEzY2M3ODRlYzZmYzk4NjdjZjhkMmU5MzdkYjM2XCI+X2hhbF90Ym1fYmFja2VuZF9kYXRhOjp1c2VyX2RhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSB1c2VyIGRhdGEgZm9yIGNhbGxiYWNrPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfaGFsX3RibV9idWZtZ3JfZnVuY3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGIxMjdkNmYyYzIxM2Y3YmQ4MjVlNGI3NmE5MGZlYTZcIj5oYWxfdGJtX2J1Zm1ncl9jYXBhYmlsaXR5PFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1MzZiNjczNjI3YWRjOTM2NGZhMjBjMjViZDliZDA0OVwiPmJ1Zm1ncl9nZXRfY2FwYWJpbGl0aWVzPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FhNWNiNmZjMzIwMmQzNzE5ZjAxYmY1OGUyNDAyZjVkZVwiPmJ1Zm1ncl9nZXRfc3VwcG9ydGVkX2Zvcm1hdHM8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIHVpbnQzMl90ICoqZm9ybWF0cywgdWludDMyX3QgKm51bSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1ODdiYTRhYmVlMDA4MzZmMDg5N2E2NzIwYWYwNTM5YlwiPmJ1Zm1ncl9nZXRfcGxhbmVfZGF0YTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiMDJmNDMwNGNmODRlZWMxMzgyYjAxYjY1OWZjMThhM1wiPmhhbF90Ym1fZm9ybWF0PFwvYT4gZm9ybWF0LCBpbnQgcGxhbmVfaWR4LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90ICpzaXplLCB1aW50MzJfdCAqb2Zmc2V0LCB1aW50MzJfdCAqcGl0Y2gsIGludCAqYm9faWR4KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FkNTAwNmRiODA3MjRlZjgwNmI4OTFkYzA3ZmE4OGJlMVwiPmJ1Zm1ncl9hbGxvY19zdXJmYWNlPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWIwMmY0MzA0Y2Y4NGVlYzEzODJiMDFiNjU5ZmMxOGEzXCI+aGFsX3RibV9mb3JtYXQ8XC9hPiBmb3JtYXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4gbWVtX3R5cGVzLCB1aW50NjRfdCAqbW9kaWZpZXJzLCB1aW50MzJfdCBudW1fbW9kaWZpZXJzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPiAqKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYjZmMDA3ZDUyYzFiMjMzNWYwMjMwZTczYjI5ZWU1NTdcIj5idWZtZ3JfaW1wb3J0X3N1cmZhY2U8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+IGZvcm1hdCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTc5Y2YwNWZjNjJiMDAzMjdhZTllY2QzNzMxMzhjM1wiPmhhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL2E+ICpidWZmZXJfZGF0YSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjODI4YzhlOTM3ZmVmMzBhOGFiYzFlZDYyMTc2MzY4NlwiPmJ1Zm1ncl9hbGxvY19ibzxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgdW5zaWduZWQgaW50IHNpemUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4gbWVtX3R5cGVzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTQzZWE4OTVlMTRjODA3OWEyZGM0NGUyNGNhMjdiN2ZjXCI+YnVmbWdyX2FsbG9jX2JvX3dpdGhfZm9ybWF0PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCBpbnQgZm9ybWF0LCBpbnQgYm9faWR4LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBicHAsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4gbWVtX3R5cGVzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTIzZTA3YjYxMGI3YmZjNTVhZjBiYmNiNzk0NTcyMzIxXCI+YnVmbWdyX2ltcG9ydF9mZDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhY2VlYzIxOWZkY2IyYWFjMjA3NDdiMTQxYzE2YmEzNlwiPmhhbF90Ym1fZmQ8XC9hPiBmZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2EwOTYyNjUyZTQ3OGNiN2Q4M2QxMTBmNWI2NmIwYzA2YVwiPmJ1Zm1ncl9pbXBvcnRfa2V5PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTMyY2VhMjhhY2ZiZGQwNjU1NzBiMDM2YjM4MDE3YjI0XCI+aGFsX3RibV9rZXk8XC9hPiBrZXksIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiooKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYzgyOGM4ZTkzN2ZlZjMwYThhYmMxZWQ2MjE3NjM2ODZcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M6OmJ1Zm1ncl9hbGxvY19ibzxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCB1bnNpZ25lZCBpbnQgc2l6ZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0NGI3YTc2MzYwYmUyYzE2NDVjODI5OWFlOGJlZGViNVwiPmhhbF90Ym1fYm9fbWVtb3J5X3R5cGU8XC9hPiBtZW1fdHlwZXMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFsbG9jYXRlIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+KigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E0M2VhODk1ZTE0YzgwNzlhMmRjNDRlMjRjYTI3YjdmY1wiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2FsbG9jX2JvX3dpdGhfZm9ybWF0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIGludCBmb3JtYXQsIGludCBib19pZHgsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IGJwcCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0NGI3YTc2MzYwYmUyYzE2NDVjODI5OWFlOGJlZGViNVwiPmhhbF90Ym1fYm9fbWVtb3J5X3R5cGU8XC9hPiBtZW1fdHlwZXMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFsbG9jYXRlIHRoZSBidWZmZXIgb2JqZWN0IGF0IGJ1ZmZlciBvYmplY3QgaW5kZXggaW4gc3VyZmFjZSBhY2NvcmRpbmcgdG8gdGhlIGZvcm1hdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+KigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FkNTAwNmRiODA3MjRlZjgwNmI4OTFkYzA3ZmE4OGJlMVwiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2FsbG9jX3N1cmZhY2U8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiMDJmNDMwNGNmODRlZWMxMzgyYjAxYjY1OWZjMThhM1wiPmhhbF90Ym1fZm9ybWF0PFwvYT4gZm9ybWF0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ0YjdhNzYzNjBiZTJjMTY0NWM4Mjk5YWU4YmVkZWI1XCI+aGFsX3RibV9ib19tZW1vcnlfdHlwZTxcL2E+IG1lbV90eXBlcywgdWludDY0X3QgKm1vZGlmaWVycywgdWludDMyX3QgbnVtX21vZGlmaWVycywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWxsb2NhdGUgdGhlIHN1cmZhY2UgYWNjb3JkaW5nIHRvIHRoZSBjb2xvciBmb3JtYXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGIxMjdkNmYyYzIxM2Y3YmQ4MjVlNGI3NmE5MGZlYTZcIj5oYWxfdGJtX2J1Zm1ncl9jYXBhYmlsaXR5PFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhNTM2YjY3MzYyN2FkYzkzNjRmYTIwYzI1YmQ5YmQwNDlcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M6OmJ1Zm1ncl9nZXRfY2FwYWJpbGl0aWVzPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgY2FwYWJpbGl0aWVzIG9mIGEgYnVmZmVyIG1hbmFnZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1ODdiYTRhYmVlMDA4MzZmMDg5N2E2NzIwYWYwNTM5YlwiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2dldF9wbGFuZV9kYXRhPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+IGZvcm1hdCwgaW50IHBsYW5lX2lkeCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCAqc2l6ZSwgdWludDMyX3QgKm9mZnNldCwgdWludDMyX3QgKnBpdGNoLCBpbnQgKmJvX2lkeCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgcGxhbmUncyBpbmZvcm1hdGlvbiBmcm9tIFRCTSBidWZmZXIgbWFuYWdlciBIQUwgYWNjb3JkaW5nIHRvIHRoZSBjb2xvciBmb3JtYXQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FhNWNiNmZjMzIwMmQzNzE5ZjAxYmY1OGUyNDAyZjVkZVwiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2dldF9zdXBwb3J0ZWRfZm9ybWF0czxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCB1aW50MzJfdCAqKmZvcm1hdHMsIHVpbnQzMl90ICpudW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHN1cHBvcnRlZCBjb2xvciBmb3JtYXQgZnJvbSBUQk0gYnVmZmVyIG1hbmFnZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4qKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTIzZTA3YjYxMGI3YmZjNTVhZjBiYmNiNzk0NTcyMzIxXCI+X2hhbF90Ym1fYnVmbWdyX2Z1bmNzOjpidWZtZ3JfaW1wb3J0X2ZkPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT4gZmQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCB0aGUgYnVmZmVyIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHRibV9mZChwcmltZSBmZCkuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4qKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTA5NjI2NTJlNDc4Y2I3ZDgzZDExMGY1YjY2YjBjMDZhXCI+X2hhbF90Ym1fYnVmbWdyX2Z1bmNzOjpidWZtZ3JfaW1wb3J0X2tleTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTMyY2VhMjhhY2ZiZGQwNjU1NzBiMDM2YjM4MDE3YjI0XCI+aGFsX3RibV9rZXk8XC9hPiBrZXksIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCB0aGUgYnVmZmVyIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHRibV9rZXk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+KigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiNmYwMDdkNTJjMWIyMzM1ZjAyMzBlNzNiMjllZTU1N1wiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2ltcG9ydF9zdXJmYWNlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+IGZvcm1hdCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTc5Y2YwNWZjNjJiMDAzMjdhZTllY2QzNzMxMzhjM1wiPmhhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL2E+ICpidWZmZXJfZGF0YSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SW1wb3J0IHRoZSBzdXJmYWNlIGFjY29yZGluZyB0byB0aGUgZm9ybWF0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF90Ym1fc3VyZmFjZV9mdW5jczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIHN1cmZhY2UgZnVuY3Rpb25zIG9mIGJhY2tlbmQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD52b2lkKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMjliMWViZGI2YmFiM2VjODg5Nzg4ZmJjZDgwYmRlMDRcIj5zdXJmYWNlX2ZyZWU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPiAqc3VyZmFjZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKiooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2MGQyZTcxNzBjMjUwY2JjZDFkMWYwZWFkNDUzN2NhYVwiPnN1cmZhY2VfZ2V0X2JvczxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCBpbnQgKm51bV9ib3MsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTY2NzY4ZjFlNDk4MjEwYmYxMGMxZGI4NjI0N2QxZTdkXCI+c3VyZmFjZV9nZXRfcGxhbmVfZGF0YTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCBpbnQgcGxhbmVfaWR4LCB1aW50MzJfdCAqc2l6ZSwgdWludDMyX3QgKm9mZnNldCwgdWludDMyX3QgKnBpdGNoLCBpbnQgKmJvX2lkeCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPiAqKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYWViNzczNjdkOGExNWExMThhMjNlZDM4NzY5Y2Y2NGNcIj5zdXJmYWNlX2V4cG9ydDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPiooKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYWViNzczNjdkOGExNWExMThhMjNlZDM4NzY5Y2Y2NGNcIj5faGFsX3RibV9zdXJmYWNlX2Z1bmNzOjpzdXJmYWNlX2V4cG9ydDxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ3NzdjZWZhNDgxZmZkZDI1Y2JiZjVlZDkxNDRiYWE2XCI+aGFsX3RibV9zdXJmYWNlPFwvYT4gKnN1cmZhY2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkV4cG9ydCBhIGJ1ZmZlcl9kYXRhIG9mIHRibV9zdXJmYWNlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTI5YjFlYmRiNmJhYjNlYzg4OTc4OGZiY2Q4MGJkZTA0XCI+X2hhbF90Ym1fc3VyZmFjZV9mdW5jczo6c3VyZmFjZV9mcmVlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPiAqc3VyZmFjZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWFsbG9jYXRlIHRibV9zdXJmYWNlIHVzaW5nIGJhY2tlbmQncyBzdXJmYWNlIGZyZWUgZnVuY3Rpb24uPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4qKigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2MGQyZTcxNzBjMjUwY2JjZDFkMWYwZWFkNDUzN2NhYVwiPl9oYWxfdGJtX3N1cmZhY2VfZnVuY3M6OnN1cmZhY2VfZ2V0X2JvczxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ3NzdjZWZhNDgxZmZkZDI1Y2JiZjVlZDkxNDRiYWE2XCI+aGFsX3RibV9zdXJmYWNlPFwvYT4gKnN1cmZhY2UsIGludCAqbnVtX2JvcywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBudW1iZXIgb2YgYnVmZmVyIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0Ym1fc3VyZmFjZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2Njc2OGYxZTQ5ODIxMGJmMTBjMWRiODYyNDdkMWU3ZFwiPl9oYWxfdGJtX3N1cmZhY2VfZnVuY3M6OnN1cmZhY2VfZ2V0X3BsYW5lX2RhdGE8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCBpbnQgcGxhbmVfaWR4LCB1aW50MzJfdCAqc2l6ZSwgdWludDMyX3QgKm9mZnNldCwgdWludDMyX3QgKnBpdGNoLCBpbnQgKmJvX2lkeCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgc2l6ZSwgb2Zmc2V0LCBwaXRjaCwgYnVmZmVyIG9iamVjdCBpbmRleCByZWxhdGVkIHdpdGggcGxhbmVfaW5kZXggZnJvbSB0Ym1fc3VyZmFjZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9oYWxfdGJtX2JvX2Z1bmNzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSBUQk0gSEFMJ3MgYnVmZmVyIG9iamVjdCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnZvaWQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiM2U5OTU1OWVhNmNmMzFkZWFiZTY5MDQ0MGI4OTExMlwiPmJvX2ZyZWU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYzBlOTIyYWYwZGE0MzUyYmIwYmNlM2RkYzRjZDk3ODRcIj5ib19nZXRfc2l6ZTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0NGI3YTc2MzYwYmUyYzE2NDVjODI5OWFlOGJlZGViNVwiPmhhbF90Ym1fYm9fbWVtb3J5X3R5cGU8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWRkZDkzNGEzZWY0NWQxYjg1ZTVlYWU0MjUzMjkxN2U1XCI+Ym9fZ2V0X21lbW9yeV90eXBlczxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjODE4Y2I1N2EyOTJiZTM3ODExYWY4ZGVjM2NiZjQ2YVwiPmhhbF90Ym1fYm9faGFuZGxlPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E5ZmFlYWQ0ZDAzNGIyNjA1MGQzMTkwOGIyNTA0ZjYwNVwiPmJvX2dldF9oYW5kbGU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ4YzJhMmFkY2FiYzZjMWIzZTUyMWEwNGIzNzg5MmNjXCI+aGFsX3RibV9ib19kZXZpY2VfdHlwZTxcL2E+IGRldmljZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWE3NzVmNzY3M2VmOTJlOWI1NTJiM2FkMGZiODgyOGE1XCI+Ym9fbWFwPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPiBkZXZpY2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNzZlZjE4OWMwMmMxMjZjZGEyZjFmMGRhMGZjOTZmODFcIj5oYWxfdGJtX2JvX2FjY2Vzc19vcHRpb248XC9hPiBvcHQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTRmMTNmNzgxOTNmNWNlZTRlZmYyZjA4N2RmZmRjNDk1XCI+Ym9fdW5tYXA8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTZlMjI3N2MxN2YxNTY0NDU2NTA3YTFmYmFjNmIzYTZkXCI+Ym9fbG9jazxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDhjMmEyYWRjYWJjNmMxYjNlNTIxYTA0YjM3ODkyY2NcIj5oYWxfdGJtX2JvX2RldmljZV90eXBlPFwvYT4gZGV2aWNlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTc2ZWYxODljMDJjMTI2Y2RhMmYxZjBkYTBmYzk2ZjgxXCI+aGFsX3RibV9ib19hY2Nlc3Nfb3B0aW9uPFwvYT4gb3B0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTc0ZDg4ZTk0MjBhZDBjYzUyYmJkNDQ0Mjk3NGYxYmIxXCI+Ym9fdW5sb2NrPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiM2FkMTVmNjZkMjllZmQ5MjliZjk3ZDUzNGRjYzBjOFwiPmJvX2V4cG9ydF9mZDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzMmNlYTI4YWNmYmRkMDY1NTcwYjAzNmIzODAxN2IyNFwiPmhhbF90Ym1fa2V5PFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FkZjcwNWU2MzZkYTAyOWU5YTI0ZTcxZWRiZWIyZWQ0Y1wiPmJvX2V4cG9ydF9rZXk8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tM1wiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYjNhZDE1ZjY2ZDI5ZWZkOTI5YmY5N2Q1MzRkY2MwYzhcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZXhwb3J0X2ZkPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FeHBvcnQgZmlsZSBkZXNjcmlwdG9yIHVzZWQgYnkgdGhlIGJ1ZmZlciBvYmplY3Q8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzMmNlYTI4YWNmYmRkMDY1NTcwYjAzNmIzODAxN2IyNFwiPmhhbF90Ym1fa2V5PFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhZGY3MDVlNjM2ZGEwMjllOWEyNGU3MWVkYmViMmVkNGNcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZXhwb3J0X2tleTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RXhwb3J0IHRibV9rZXkgdXNlZCBieSB0aGUgYnVmZmVyIG9iamVjdDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWIzZTk5NTU5ZWE2Y2YzMWRlYWJlNjkwNDQwYjg5MTEyXCI+X2hhbF90Ym1fYm9fZnVuY3M6OmJvX2ZyZWU8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnJlZSB0aGUgYnVmZmVyIG9iamVjdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjODE4Y2I1N2EyOTJiZTM3ODExYWY4ZGVjM2NiZjQ2YVwiPmhhbF90Ym1fYm9faGFuZGxlPFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhOWZhZWFkNGQwMzRiMjYwNTBkMzE5MDhiMjUwNGY2MDVcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZ2V0X2hhbmRsZTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPiBkZXZpY2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgaGFuZGxlIG9mIFRCTSBidWZmZXIgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgZGV2aWNlIHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhZGRkOTM0YTNlZjQ1ZDFiODVlNWVhZTQyNTMyOTE3ZTVcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZ2V0X21lbW9yeV90eXBlczxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBtZW1vcnkgdHlwZSBvZiBidWZmZXIgb2JqZWN0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjMGU5MjJhZjBkYTQzNTJiYjBiY2UzZGRjNGNkOTc4NFwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib19nZXRfc2l6ZTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBzaXplIG9mIGEgYnVmZmVyIG9iamVjdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2ZTIyNzdjMTdmMTU2NDQ1NjUwN2ExZmJhYzZiM2E2ZFwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib19sb2NrPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ4YzJhMmFkY2FiYzZjMWIzZTUyMWEwNGIzNzg5MmNjXCI+aGFsX3RibV9ib19kZXZpY2VfdHlwZTxcL2E+IGRldmljZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3NmVmMTg5YzAyYzEyNmNkYTJmMWYwZGEwZmM5NmY4MVwiPmhhbF90Ym1fYm9fYWNjZXNzX29wdGlvbjxcL2E+IG9wdCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Mb2NrIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FhNzc1Zjc2NzNlZjkyZTliNTUyYjNhZDBmYjg4MjhhNVwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib19tYXA8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDhjMmEyYWRjYWJjNmMxYjNlNTIxYTA0YjM3ODkyY2NcIj5oYWxfdGJtX2JvX2RldmljZV90eXBlPFwvYT4gZGV2aWNlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTc2ZWYxODljMDJjMTI2Y2RhMmYxZjBkYTBmYzk2ZjgxXCI+aGFsX3RibV9ib19hY2Nlc3Nfb3B0aW9uPFwvYT4gb3B0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXAgdGhlIGJ1ZmZlciBvYmplY3QgYWNjb3JkaW5nIHRvIHRoZSBkZXZpY2UgdHlwZSBhbmQgdGhlIG9wdGlvbi48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E3NGQ4OGU5NDIwYWQwY2M1MmJiZDQ0NDI5NzRmMWJiMVwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib191bmxvY2s8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW5sb2NrIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTRmMTNmNzgxOTNmNWNlZTRlZmYyZjA4N2RmZmRjNDk1XCI+X2hhbF90Ym1fYm9fZnVuY3M6OmJvX3VubWFwPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVubWFwIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBidWZmZXIgZGF0YSBvZiBoYWxfdGJtX3N1cmZhY2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjMGIwNmU0OThlMzc1YjcyMGI1ZDQwNDUxMDcwOWQ3MFwiPmZkczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51bnNpZ25lZCBpbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMjZjN2E4ZjJlZjQ2ZWRiZWM0ZTc3NjNiMzczZmZjOGJcIj5udW1fZmRzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTUzYzg2MzUyODAwNzNmZmNmMDJmODcwMjc5N2FkZTg4XCI+bWV0YV9kYXRhPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVuc2lnbmVkIGludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FmZjcyNjY3N2M4ZDBlYjc3M2RjZDVkOWYyMTIzNDM0MVwiPm51bV9tZXRhX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dm9pZCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTdmYzYzNDY0MWI5MTUyNmM1ZWJiMjVhNjJiMmE5MTNhXCI+cmVzZXJ2ZWQxPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FlMzZlNDA3MjMzNTdkNmZmMTU0YWI1OGJmY2JkMDhjZlwiPnJlc2VydmVkMjxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTRcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjMGIwNmU0OThlMzc1YjcyMGI1ZDQwNDUxMDcwOWQ3MFwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6OmZkczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+YW4gYXJyYXkgb2YgZG1hYnVmIGZkczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1M2M4NjM1MjgwMDczZmZjZjAyZjg3MDI3OTdhZGU4OFwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6Om1ldGFfZGF0YTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+YW4gYXJyYXkgb2YgbWV0YSBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVuc2lnbmVkIGludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMjZjN2E4ZjJlZjQ2ZWRiZWM0ZTc3NjNiMzczZmZjOGJcIj5faGFsX3RibV9zdXJmYWNlX2J1ZmZlcl9kYXRhOjpudW1fZmRzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD50aGUgbnVtYmVyIG9mIGRtYWJ1ZiBmZHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dW5zaWduZWQgaW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FmZjcyNjY3N2M4ZDBlYjc3M2RjZDVkOWYyMTIzNDM0MVwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6Om51bV9tZXRhX2RhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPnRoZSBudW1iZXIgb2YgbWV0YSBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E3ZmM2MzQ2NDFiOTE1MjZjNWViYjI1YTYyYjJhOTEzYVwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6OnJlc2VydmVkMTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+cmVzZXJ2ZWQgZGF0YTE8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWUzNmU0MDcyMzM1N2Q2ZmYxNTRhYjU4YmZjYmQwOGNmXCI+X2hhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTo6cmVzZXJ2ZWQyPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5yZXNlcnZlZCBkYXRhMjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bmlvbiBfaGFsX3RibV9ib19oYW5kbGU8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5oYWxfdGJtX2JvX2hhbmRsZSBhYnN0cmFjdGlvbiBvZiB0aGUgbWVtb3J5IGhhbmRsZSBieSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ4YzJhMmFkY2FiYzZjMWIzZTUyMWEwNGIzNzg5MmNjXCIgdGl0bGU9XCJEZWZpbml0aW9uIGZvciB0aGUgZGV2aWNlIHR5cGUgdG8gYWNjZXNzIGhhbF90Ym1fYm8uXCI+aGFsX3RibV9ib19kZXZpY2VfdHlwZTxcL2E+PFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5EZWZpbmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMjM1YTUzNGI5NDRhY2JkYmFkNTU0ZmU5OGNlYzAyXCI+SEFMX1RCTV9GT1JNQVRfQUJHUjE1NTU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdCJywgJzEnLCAnNScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSMTU1NSAoWzE1OjBdIEE6QjpHOlIgMTo1OjU6NSBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlMTQ0M2VhNjZmMzM0OTZhYjVjYWNjMzA1ZTg2NzE0OVwiPkhBTF9UQk1fRk9STUFUX0FCR1IyMTAxMDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnQicsICczJywgJzAnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQUJHUjIxMDEwMTAgKFszMTowXSBBOkI6RzpSIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDdmMmEyMmFmNTkxODc5NjY0NGJiMTk3MTY2ZWUwYmNcIj5IQUxfVEJNX0ZPUk1BVF9BQkdSNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ0InLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFCR1I0NDQ0IChbMTU6MF0gQTpCOkc6UiA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYThlNmZmYzE4YzJkZGJmM2M4MTM5OGMxN2RmNDdlZjFlXCI+SEFMX1RCTV9GT1JNQVRfQUJHUjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdCJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSODg4OCAoWzMxOjBdIFszMTowXSBBOkI6RzpSIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFiMTU5NTU5YThlZTNjNjhiZDRhMWZmZmRiN2FhMWZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMScsICc1Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFSR0IxNTU1IChbMTU6MF0gQTpSOkc6QiAxOjU6NTo1IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTllZDExNzZjYzhmMmY3Njg4ZDA4YzU2MmJmYjA0M2FmXCI+SEFMX1RCTV9GT1JNQVRfQVJHQjIxMDEwMTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdSJywgJzMnLCAnMCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBUkdCMjEwMTAxMCAoWzMxOjBdIEE6UjpHOkIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzOGYzYzQxZWFkNzc2ZGUyOTYyNzM2ZjZkY2VlOTY5NFwiPkhBTF9UQk1fRk9STUFUX0FSR0I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnUicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQVJHQjQ0NDQgKFsxNTowXSBBOlI6RzpCIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTIwNjg0OTMyY2YzNTU2ZGZhNDBkZDRkMzMxMTY3NGZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFSR0I4ODg4IChbMzE6MF0gQTpSOkc6QiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTAyZDA0NDUwOWM4M2Y2Mjg0MzE4MGQzNTJmM2NlNTk3XCI+SEFMX1RCTV9GT1JNQVRfQVlVVjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1knLCAnVScsICdWJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFZVVYgKFszMTowXSBBOlk6Q2I6Q3IgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E4NzBhODk5OTk2YTlhMDdmNzQ0MWE2YTcwZjE3MjVmZVwiPkhBTF9UQk1fRk9STUFUX0JHUjIzMzxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0cnLCAnUicsICc4Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjIzMyAoWzc6MF0gQjpHOlIgMjozOjMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWI1OTkwNDAzYWNlZjJlYjM5YTM4MTQ4ODM0OGYxZWZlXCI+SEFMX1RCTV9GT1JNQVRfQkdSNTY1PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnRycsICcxJywgJzYnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSNTY1IChbMTU6MF0gQjpHOlIgNTo2OjUgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMmZlNTgzNTdhZWEyZTIxYzc3ZTg3Y2E1NGIwMmY3N2ZcIj5IQUxfVEJNX0ZPUk1BVF9CR1I4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdHJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1I4ODggKFsyMzowXSBCOkc6UiBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E4ZWIzOTk5ZjYxMTI3ODI5MmQ3NmQ5ZGU1YzBhNjc2MlwiPkhBTF9UQk1fRk9STUFUX0JHUkExMDEwMTAyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICczJywgJzAnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTEwMTAxMDIgKFszMTowXSBCOkc6UjpBIDEwOjEwOjEwOjIgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDBkYzQwOTNiMjYyNDRlNzhkYjhmY2ZkZjgyZGYyZTlcIj5IQUxfVEJNX0ZPUk1BVF9CR1JBNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUkE0NDQ0IChbMTU6MF0gQjpHOlI6QSA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWMyZTkwZGY2MGZiMDMwMzg1NTQ2NmNjYjg3YjZlZTc3XCI+SEFMX1RCTV9GT1JNQVRfQkdSQTU1NTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdBJywgJzEnLCAnNScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JBNTU1MSAoWzE1OjBdIEI6RzpSOkEgNTo1OjU6MSBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlNGJhZDMwMzA0NDc3NGU3OGE2MjMwMjhjNzM0OTdjNFwiPkhBTF9UQk1fRk9STUFUX0JHUkE4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICcyJywgJzQnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTg4ODggKFszMTowXSBCOkc6UjpBIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWZlMDZmYjdmYTVkZGNmMGIzMWYxZDg5MGE2MWU3ZGRcIj5IQUxfVEJNX0ZPUk1BVF9CR1JYMTAxMDEwMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ1gnLCAnMycsICcwJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlgxMDEwMTAyIChbMzE6MF0gQjpHOlI6eCAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWJmMmI2NDRhMTllMWZiOTFiOWJkZDYxYjA3MGUwZWU5XCI+SEFMX1RCTV9GT1JNQVRfQkdSWDQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdYJywgJzEnLCAnMicpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JYNDQ0NCAoWzE1OjBdIEI6RzpSOnggNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhODJjNzgzODhmZjQ4ZWIyNTNkNjQ2NDU1YjY1YjVkZlwiPkhBTF9UQk1fRk9STUFUX0JHUlg1NTUxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnWCcsICcxJywgJzUnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSWDU1NTEgKFsxNTowXSBCOkc6Ujp4IDU6NTo1OjEgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZWM5YjNiNTNmMWRjZmVhMjJlYWJiZTNmYjliMGMzNTJcIj5IQUxfVEJNX0ZPUk1BVF9CR1JYODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ1gnLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlg4ODg4IChbMzE6MF0gQjpHOlI6eCA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWNlYWM1MGEyYjI5YmY4MjE1YjgxYTgyY2I0YzcyNGNlXCI+SEFMX1RCTV9GT1JNQVRfQzg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQycsICc4JywgJyAnLCAnICcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBDOCAoWzc6MF0gQykuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDYzZTc3OWFlZjZmZGM3ZmQyM2FkN2U2ODAwYmMzYTJcIj5IQUxfVEJNX0ZPUk1BVF9OVjEyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ04nLCAnVicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxMiAoMngyIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTYwODI0OGE3OTFiMTRjMTgwZWQxNjNhZTgwZTZmZWRhXCI+SEFMX1RCTV9GT1JNQVRfTlYxMk1UPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1QnLCAnTScsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxMk1UICh0aWxlZCAnNjR4MzInICZhbXA7IG11bHRpLXBsYW5lIHZlcnNpb24gb2YgTlYxMikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNjViM2U1MjRlNzYyYTg3NjA2ZjdkMjE4OWNjY2JhZTNcIj5IQUxfVEJNX0ZPUk1BVF9OVjE2PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ04nLCAnVicsICcxJywgJzYnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxNiAoMngxIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWI4ZmNhMDhjMGM3ZmU1MjQyN2IyZjkzMjYyNTRiZjk5XCI+SEFMX1RCTV9GT1JNQVRfTlYyMTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdOJywgJ1YnLCAnMicsICcxJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IE5WMjEgKDJ4MiBzdWJzYW1wbGVkIENiOkNyIHBsYW5lKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3ZWUxZmY1OTI1YmJiNjRkOGJhZjNkYzJkMGFhZDYwYlwiPkhBTF9UQk1fRk9STUFUX05WNjE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnTicsICdWJywgJzYnLCAnMScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBOVjYxICgyeDEgc3Vic2FtcGxlZCBDYjpDciBwbGFuZSkuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjUxMWI1ZjRmNzRjODhkZDYyZDFlY2NkZTI2MTljNmVcIj5IQUxfVEJNX0ZPUk1BVF9SR0IzMzI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdHJywgJ0InLCAnOCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0IzMjIgKFs3OjBdIFI6RzpCIDM6MzoyKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwYmJlMjE5OTM2MzZlMTYwYzc4N2QxMTA0MjU0OTViMFwiPkhBTF9UQk1fRk9STUFUX1JHQjU2NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0cnLCAnMScsICc2Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjU2NSAoWzE1OjBdIFI6RzpCIDU6Njo1IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTdhZWIwMDM2NTY0YTE5OGI2YTExYTU0MDRjMDE3ZTAzXCI+SEFMX1RCTV9GT1JNQVRfUkdCODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnRycsICcyJywgJzQnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCODg4IChbMjM6MF0gUjpHOkIgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDU5ZDZlNzE5YTNiODYxOTZkYjRiODg2OTI2OGIyMDhcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBMTAxMDEwMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMycsICcwJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkExMDEwMTAyIChbMzE6MF0gUjpHOkI6QSAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWUxNzZmMWIyMDNkNzFkNjU1NDE3ZWMwZTMxNTIwODQwXCI+SEFMX1RCTV9GT1JNQVRfUkdCQTQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdBJywgJzEnLCAnMicpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JBNDQ0NCAoWzE1OjBdIFI6RzpCOkEgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EyZTQ2MGJmMDEzYmQwZjUzZTIxZjVhMjYzMjVmY2I0MFwiPkhBTF9UQk1fRk9STUFUX1JHQkE1NTUxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnQScsICcxJywgJzUnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCQTU1NTEgKFsxNTowXSBSOkc6QjpBIDU6NTo1OjEgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTNkYTIyNTk1ZjdlMjU3NWQxNzBiN2VhNzlmNmVkYWFcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkE4ODg4IChbMzE6MF0gUjpHOkI6QSA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTM0MDg0MjEyNzU2ZjA4NjgxZWMxYjIwNjE3ZWM1Mjk1XCI+SEFMX1RCTV9GT1JNQVRfUkdCWDEwMTAxMDI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdYJywgJzMnLCAnMCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYMTAxMDEwMiAoWzMxOjBdIFI6RzpCOnggMTA6MTA6MTA6MiBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0ZDU4MGJmNmI3ZWY3ZGNkYWM0NWYxNzNkNjkzY2IzNlwiPkhBTF9UQk1fRk9STUFUX1JHQlg0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnWCcsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCWDQ0NDQgKFsxNTowXSBSOkc6Qjp4IDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTYxNDkyNTUxMTY0NzMwMjM1NjYwZjNmYjQ0YmQwNDJcIj5IQUxfVEJNX0ZPUk1BVF9SR0JYNTU1MTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ1gnLCAnMScsICc1Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQlg1NTUxIChbMTU6MF0gUjpHOkI6eCA1OjU6NToxIGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQxZWEwYmUxYmU5Y2U4NTdkYzM4MWNkMjAwMjJlY2UyXCI+SEFMX1RCTV9GT1JNQVRfUkdCWDg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdYJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYODg4OCAoWzMxOjBdIFI6RzpCOnggODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwZjVlMjE0NTJmOWY3MGI2ZDllYTAyOWNmN2FiMjk1N1wiPkhBTF9UQk1fRk9STUFUX1VZVlk8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnVScsICdZJywgJ1YnLCAnWScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBVWVZZIChbMzE6MF0gWTE6Q3IwOlkwOkNiMCA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWU2YTcxYTMxZTJlM2YyZTMzYjkwNDk1ZGUyZTVhODU4XCI+SEFMX1RCTV9GT1JNQVRfVllVWTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdWJywgJ1knLCAnVScsICdZJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFZZVVkgKFszMTowXSBZMTpDYjA6WTA6Q3IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNzkyMjg1YjNkYmE1YTI4MGY1NWY2OWY5YTI4MDE5NThcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMScsICc1Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhCR1IxNTU1IChbMTU6MF0geDpCOkc6UiAxOjU6NTo1IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWMyZjRhOGY4YjBkYmM1OGI1OTkxMTZiNmYzZDM1NGE1XCI+SEFMX1RCTV9GT1JNQVRfWEJHUjIxMDEwMTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdCJywgJzMnLCAnMCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYQkdSMjEwMTAxMCAoWzMxOjBdIHg6QjpHOlIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTBkZWE2YzgxMGRlZTAyOTJiZDY5MWQ5YjhiNTc4MFwiPkhBTF9UQk1fRk9STUFUX1hCR1I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnQicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWEJSRzQ0NDQgKFsxNTowXSB4OkI6RzpSIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZmQ1NjMyZmIzMzFhNzFlYTBiMDIxZmFmODBlMGY5ZTNcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhCR1I4ODg4IChbMzE6MF0geDpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTE2NGE2MzU5ZTZkYmQyYjdkZDU2N2FkZmMwZDQ4N2ZmXCI+SEFMX1RCTV9GT1JNQVRfWFJHQjE1NTU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzEnLCAnNScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYUkdCMTU1NSAoWzE1OjBdIHg6UjpHOkIgMTo1OjU6NSBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E2YTEzYTlkZjNkOTA2MTBhZThjZGJhM2NmNDFlODNiNlwiPkhBTF9UQk1fRk9STUFUX1hSR0IyMTAxMDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnUicsICczJywgJzAnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWFJHQjIxMDEwMTAgKFszMTowXSB4OlI6RzpCIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhY2U2MWI3ZjRlODdiZDEwNzA0NTFlYTYyNjE0YjZlN2ZcIj5IQUxfVEJNX0ZPUk1BVF9YUkdCNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ1InLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhSR0I0NDQ0IChbMTU6MF0geDpSOkc6QiA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTc0ZDM5MGQ4NjA2MTllNjk2YzU2MGI0YmYzZDRkODhjXCI+SEFMX1RCTV9GT1JNQVRfWFJHQjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYUkdCODg4OCAoWzMxOjBdIHg6UjpHOkIgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwZmIzYzMzNDE4NTQ0NmNhYjVhMmM3YWMzNjA5MTZmNFwiPkhBTF9UQk1fRk9STUFUX1lVVjQxMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnVicsICc5Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQxMCAoNHg0IHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTM2Yzk4NDk4Y2FiZDQ2MmQ4NGVhMzIxNWRhODg1ZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQxMTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICcxJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQxMSAoNHgxIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhYmE5N2ZjZmQ5YmNlMjlhMzk0NWU4ZWQyMWUzYTRhYlwiPkhBTF9UQk1fRk9STUFUX1lVVjQyMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQyMCAoMngyIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiYzg3MTM2MjI4YWQ1OGI1NzQ2ZmZlZTgwYTkxOGI1ZlwiPkhBTF9UQk1fRk9STUFUX1lVVjQyMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICc2Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQyMiAoMngxIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiYzZlY2QzNWU4NGE0NjMzN2IwNjE1M2M1Yzg3NDFiZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQ0NCAobm9uLXN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhYTY2MGNlOTI1MDczMWVjMDRmOTBhMTE0MmU3Njg2NVwiPkhBTF9UQk1fRk9STUFUX1lVWVY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJ1knLCAnVicpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVVlWIChbMzE6MF0gQ3IwOlkxOkNiMDpZMCA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWNiYzFiOTE0NmFjZTk1NjMzN2QwNzljZGJmOWViNDhiXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICdVJywgJzknKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDEwICg0eDQgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFlODRlYTZhYThhMWVlNDAxYTZiZmYzODgxNDIwNjZlXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDExPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzEnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDExICg0eDEgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVlZDFjZDhlZWM3OGNhOTgxMTY0ZjJiZDA2MTljMzA1XCI+SEFMX1RCTV9GT1JNQVRfWVZVNDIwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDIwICgyeDIgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWE5YjZiNDMyZDQ0Nzk0MWY2YmZlNTVmNmVhM2RkODYyXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDIyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzYnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDIyICgyeDEgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTgyNDI4NGUzMzlhY2MwMjMwZjMyYTMyN2VjMDBiZGYxXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcyJywgJzQnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDQ0IChub24tc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTY2ZGY3NmZiYTYyNTM0NjBmNWNhNjIyZGZlMTFiYTExXCI+SEFMX1RCTV9GT1JNQVRfWVZZVTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1YnLCAnWScsICdVJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWWVUgKFszMTowXSBDYjA6WTE6Q3IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LXR5cGVkZWYtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExYjQxNDcxOTQxN2FhNTM4ODQ2OGQxZTU0OWQxY2I2MVwiPmhhbF90Ym1fYXV0aGVudGljYXRlZF9kcm1fZmRfaGFuZGxlcjxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFjZWVjMjE5ZmRjYjJhYWMyMDc0N2IxNDFjMTZiYTM2XCI+aGFsX3RibV9mZDxcL2E+IGF1dGhfZmQsIHZvaWQgKnVzZXJfZGF0YSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB3aGVuIGRybSBmaWxlIGRlc2NyaXB0b3IgaXMgYXV0aGVybnRpY2F0ZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48cD48c3Ryb25nPlBhcmFtZXRlcnM6PFwvc3Ryb25nPlxuOiAgIHwgW2luXSB8IGF1dGhfZmQgfCBhdXRoZXJudGljYXRlZCBkcm0gZmlsZSBkZXNjcmlwdG9yLiB8XG58IC0tLSB8IC0tLSB8IC0tLSB8XG58IFtpbl0gfCB1c2VyX2RhdGEgfCBUaGUgdXNlciBkYXRhIGZvciBoYW5kbGVyLiB8PFwvcD5cbjxwPjxzdHJvbmc+UHJlY29uZGl0aW9uOjxcL3N0cm9uZz5cbjogICBoYWxfdGJtX2JhY2tlbmRfc2V0X2F1dGhlbnRpY2F0ZWRfZHJtX2ZkKCkgd2lsbCBpbnZva2UgdGhpcyBoYW5kbGVyLjxcL3A+XG48cD48c3Ryb25nPlNlZSBhbHNvOjxcL3N0cm9uZz5cbjogICBoYWxfdGJtX2JhY2tlbmRfc2V0X2F1dGhlbnRpY2F0ZWRfZHJtX2ZkKCkuXG46ICAgaGFsX3RibV9iYWNrZW5kX2dldF9tYXN0ZXJfZHJtX2ZkKCkuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTFkYTA3Y2JhMmJkMmJhYjIwZDdmNzEzZjEyZjBhNzI5XCI+aGFsX3RibV9iYWNrZW5kPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciBoYWxfdGJtX2JhY2tlbmQgaGFuZGxlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYmFja2VuZF9fZGF0YVwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDU4YjJlOTEzNDNhZDgxZWQ5NDhhYjhmYWE0Nzk3M2FcIj5oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSB0Ym0gYmFja2VuZCBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYmFja2VuZF9fZGF0YVwiIHRpdGxlPVwiVGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSB0Ym0gYmFja2VuZCBkYXRhLlwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIGJ1ZmZlciBvYmplY3QuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fdGJtX19ib19fZnVuY3NcIj5faGFsX3RibV9ib19mdW5jczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFlNjRjOTJmNDhjNmQ1NzM2ZTgzMzJlY2E1NjU3ZTBcIj5oYWxfdGJtX2JvX2Z1bmNzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgb2JqZWN0IGZ1bmN0aW9ucyBvZiBiYWNrZW5kLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYm9fX2Z1bmNzXCIgdGl0bGU9XCJUaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgb2JqZWN0IGZ1bmN0aW9ucyBvZiBiYWNrZW5kLlwiPl9oYWxfdGJtX2JvX2Z1bmNzPFwvYT48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiB1bmlvbiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCN1bmlvbl9faGFsX190Ym1fX2JvX19oYW5kbGVcIj5faGFsX3RibV9ib19oYW5kbGU8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPmhhbF90Ym1fYm9faGFuZGxlIGFic3RyYWN0aW9uIG9mIHRoZSBtZW1vcnkgaGFuZGxlIGJ5IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDhjMmEyYWRjYWJjNmMxYjNlNTIxYTA0YjM3ODkyY2NcIiB0aXRsZT1cIkRlZmluaXRpb24gZm9yIHRoZSBkZXZpY2UgdHlwZSB0byBhY2Nlc3MgaGFsX3RibV9iby5cIj5oYWxfdGJtX2JvX2RldmljZV90eXBlPFwvYT48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIGhhbF90Ym1fYnVmbWdyIGhhbmRsZSBjcmVhdGVkIGJ5IGhhbCB0Ym0gYmFja2VuZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX2J1Zm1ncl9fZnVuY3NcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWI1MWMxMWRlNzg1MzkwZmNhNjg3Yjc4ZmRhYzA0Mzk2XCI+aGFsX3RibV9idWZtZ3JfZnVuY3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIGJ1ZmZlciBtYW5hZ2VtZW50IGZ1bmN0aW9ucyBvZiBiYWNrZW5kLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYnVmbWdyX19mdW5jc1wiIHRpdGxlPVwiVGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSBUQk0gSEFMJ3MgYnVmZmVyIG1hbmFnZW1lbnQgZnVuY3Rpb25zIG9mIGJhY2tlbmQuXCI+X2hhbF90Ym1fYnVmbWdyX2Z1bmNzPFwvYT48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBzeXN0ZW0gYnVmZmVyIG1hbmFnZXIuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRpemVuIGJ1ZmZlciBzdXJmYWNlIGZvcm1hdC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzMmNlYTI4YWNmYmRkMDY1NTcwYjAzNmIzODAxN2IyNFwiPmhhbF90Ym1fa2V5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyIG9iamVjdC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkyZGI4OTFkZTM3MGM5NTExODhmZWY5MjBjMzdhOGYyXCI+aGFsX3RibV9uYXRpdmVfZGlzcGxheTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgbmF0aXZlIGRpc3BsYXkgKHdsX2Rpc3BsYXkgaW4gdGl6ZW4pPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHZvaWQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIHN1cmZhY2Ugb2JqZWN0LjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fc3VyZmFjZV9fYnVmZmVyX19kYXRhXCI+X2hhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBidWZmZXIgZGF0YSBvZiBoYWxfdGJtX3N1cmZhY2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fdGJtX19zdXJmYWNlX19mdW5jc1wiPl9oYWxfdGJtX3N1cmZhY2VfZnVuY3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBzdXJmYWNlIGZ1bmN0aW9ucyBvZiBiYWNrZW5kLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fc3VyZmFjZV9fZnVuY3NcIiB0aXRsZT1cIlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIHN1cmZhY2UgZnVuY3Rpb25zIG9mIGJhY2tlbmQuXCI+X2hhbF90Ym1fc3VyZmFjZV9mdW5jczxcL2E+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IF9oYWxfdGJtX3N1cmZhY2UqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOWJjMDlhZThmYmI2OTIxMjU3ZmY2Y2JkZWNhYWZlYTFcIj5oYWxfdGJtX3N1cmZhY2VfaDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRpemVuIGJ1ZmZlciBzdXJmYWNlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3NmVmMTg5YzAyYzEyNmNkYTJmMWYwZGEwZmM5NmY4MVwiPmhhbF90Ym1fYm9fYWNjZXNzX29wdGlvbjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIG9wdGlvbiB0byBhY2Nlc3MgaGFsX3RibV9iby48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9PUFRJT05fTk9ORTxcL2VtPiB8IFRoZSBvcHRpb24gaXMgbm9uZSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfVEJNX09QVElPTl9SRUFEPFwvZW0+IHwgVGhlIG9wdGlvbiB0byBhY2Nlc3MgdG8gcmVhZCB0aGUgYm8gfFxufCA8ZW0+SEFMX1RCTV9PUFRJT05fV1JJVEU8XC9lbT4gfCBUaGUgb3B0aW9uIHRvIGFjY2VzcyB0byB3cml0ZSB0aGUgYm8gfFxufCA8ZW0+SEFMX1RCTV9PUFRJT05fVkVORE9SPFwvZW0+IHwgVGhlIHRoZSB2ZW5kb3Igc3BlY2lmaWMgb3B0aW9uIHRoYXQgZGVwZW5kcyBvbiB0aGUgYmFja2VuZCB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBkZXZpY2UgdHlwZSB0byBhY2Nlc3MgaGFsX3RibV9iby48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9ERVZJQ0VfREVGQVVMVDxcL2VtPiB8IFRoZSBkZXZpY2UgdHlwZSB0byBnZXQgdGhlIGRlZmF1bHQgaGFuZGxlIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9UQk1fREVWSUNFX0NQVTxcL2VtPiB8IFRoZSBkZXZpY2UgdHlwZSB0byBnZXQgdGhlIHZpcnR1YWwgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fREVWSUNFXzJEPFwvZW0+IHwgVGhlIGRldmljZSB0eXBlIHRvIGdldCB0aGUgMkQgbWVtb3J5IGhhbmRsZSB8XG58IDxlbT5IQUxfVEJNX0RFVklDRV8zRDxcL2VtPiB8IFRoZSBkZXZpY2UgdHlwZSB0byBnZXQgdGhlIDNEIG1lbW9yeSBoYW5kbGUgfFxufCA8ZW0+SEFMX1RCTV9ERVZJQ0VfTU08XC9lbT4gfCBUaGUgZGV2aWNlIHR5cGUgdG8gZ2V0IHRoZSB0aGUgbXVsdGltZWRpYSBoYW5kbGUgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBvZiBibyBtZW1vcnkgdHlwZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9CT19ERUZBVUxUPFwvZW0+IHwgRGVmYXVsdCBtZW1vcnk6IGl0IGRlcGVuZHMgb24gdGhlIGJhY2tlbmQgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+SEFMX1RCTV9CT19TQ0FOT1VUPFwvZW0+IHwgU2Nhbm91dCBtZW1vcnkgfFxufCA8ZW0+SEFMX1RCTV9CT19OT05DQUNIQUJMRTxcL2VtPiB8IE5vbi1jYWNoZWFibGUgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fQk9fV0M8XC9lbT4gfCBXcml0ZS1jb21iaW5lIG1lbW9yeSB8XG58IDxlbT5IQUxfVEJNX0JPX1RJTEVEPFwvZW0+IHwgVGlsZWQgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fQk9fUFJPVEVDVEVEPFwvZW0+IHwgUHJvdGVjdGVkIG1lbW9yeSAoU2luY2UgMS4xKSB8XG58IDxlbT5IQUxfVEJNX0JPX1ZFTkRPUjxcL2VtPiB8IFZlbmRvciBzcGVjaWZpYyBtZW1vcnk6IGl0IGRlcGVuZHMgb24gdGhlIGJhY2tlbmQgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGIxMjdkNmYyYzIxM2Y3YmQ4MjVlNGI3NmE5MGZlYTZcIj5oYWxfdGJtX2J1Zm1ncl9jYXBhYmlsaXR5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBvZiB0Ym0gYnVmZmVyIG1hbmFnZXIgY2FwYWJpbGl0eS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9CVUZNR1JfQ0FQQUJJTElUWV9OT05FPFwvZW0+IHwgTm90IFN1cHBvcnQgY2FwYWJpbGl0eSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfVEJNX0JVRk1HUl9DQVBBQklMSVRZX1NIQVJFX0tFWTxcL2VtPiB8IFN1cHBvcnQgc2hhcmluZyBidWZmZXIgYnkgdGJtIGtleSB8XG58IDxlbT5IQUxfVEJNX0JVRk1HUl9DQVBBQklMSVRZX1NIQVJFX0ZEPFwvZW0+IHwgU3VwcG9ydCBzaGFyaW5nIGJ1ZmZlciBieSB0Ym0gZmQgfFxufCA8ZW0+SEFMX1RCTV9CVUZNR1JfQ0FQQUJJTElUWV9UQk1fU1lOQzxcL2VtPiB8IFN1cHBvcnQgdGltZWxpbmUgc3luYyB8XG58IDxlbT5IQUxfVEJNX0JVRk1HUl9DQVBBQklMSVRZX1RJTEVEX01FTU9SWTxcL2VtPiB8IFN1cHBvcnQgdGlsZWQgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fQlVGTUdSX0NBUEFCSUxJVFlfU0hBUkVfU1VSRkFDRTxcL2VtPiB8IFN1cHBvcnQgc2hhcmluZyBzdXJmYWNlIGJ5IGJ1ZmZlciBkYXRhIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGhhbCB0Ym0gZXJyb3IgdHlwZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPkVycm9yJ3MgZW51bXVsYXRpb24gaGFzIGdyb3VwIHVzaW5nIG9mZnNldCAweDAxMDEuIEhBTF9UQk1fRVJST1JfWFhYLiBzdGFydCBmcm9tIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAwMDEpIHRvIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAwOTkpIEhBTF9UQk1fQk9fRVJST1JfWFhYLiBzdGFydCBmcm9tIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAxMDEpIHRvIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAxOTkpPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9FUlJPUl9OT05FPFwvZW0+IHwgU3VjY2Vzc2Z1bCB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfVEJNX0VSUk9SX09VVF9PRl9NRU1PUlk8XC9lbT4gfCBPdXQgb2YgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fRVJST1JfSU5WQUxJRF9QQVJBTUVURVI8XC9lbT4gfCBJbnZhbGlkIGZ1bmN0aW9uIHBhcmFtZXRlciB8XG58IDxlbT5IQUxfVEJNX0VSUk9SX0lOVkFMSURfT1BFUkFUSU9OPFwvZW0+IHwgRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIHxcbnwgPGVtPkhBTF9UQk1fRVJST1JfTk9UX1NVUFBPUlRFRDxcL2VtPiB8IE5vdCBzdXBwb3J0ZWQgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9HRVRfRkRfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGdldCBmZCBpbiBibyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwMVwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0hFQVBfQUxMT0NfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGFsbG9jYXRlIHRoZSBoZWFwIG1lbW9yeSBpbiBibyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwMlwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0xPQURfTU9EVUxFX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBsb2FkIG1vZHVsZSAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwM1wiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX1RIUkVBRF9JTklUX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBwdGhyZWFkICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDA0XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfQk9fQUxMT0NfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGFsbG9jYXRlIGhhbF90Ym1fYm8gIDxzdHJvbmc+PGEgaHJlZj1cImRlcHJlY2F0ZWQubWQjX2RlcHJlY2F0ZWQwMDAwMDVcIj5EZXByZWNhdGVkOjxcL2E+PFwvc3Ryb25nPiAgRGVwcmVjYXRlZCBzaW5jZSBIQUxfTU9EVUxFX1RCTSAxLjAgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9JTklUX1NUQVRFX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBzdGF0ZSBvZiBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDA2XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfSU1QT1JUX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbXBvcnQgdGhlIGhhbmRsZSBvZiBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDA3XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfSU1QT1JUX0ZEX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbXBvcnQgZmQgb2YgaGFsX3RibV9ibyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwOFwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0VYUE9SVF9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gZXhwb3J0IHRoZSBoYW5kbGUgb2YgdGhlIGhhbF90Ym1fYm8gIDxzdHJvbmc+PGEgaHJlZj1cImRlcHJlY2F0ZWQubWQjX2RlcHJlY2F0ZWQwMDAwMDlcIj5EZXByZWNhdGVkOjxcL2E+PFwvc3Ryb25nPiAgRGVwcmVjYXRlZCBzaW5jZSBIQUxfTU9EVUxFX1RCTSAxLjAgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9FWFBPUlRfRkRfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGV4cG9ydCBmZCBvZiBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDEwXCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfR0VUX0hBTkRMRV9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gZ2V0IHRoZSBoYWxfdGJtX2JvX2hhbmRsZSAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAxMVwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0xPQ0tfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGxvY2sgdGhlIGhhbF90Ym1fYm8gIDxzdHJvbmc+PGEgaHJlZj1cImRlcHJlY2F0ZWQubWQjX2RlcHJlY2F0ZWQwMDAwMTJcIj5EZXByZWNhdGVkOjxcL2E+PFwvc3Ryb25nPiAgRGVwcmVjYXRlZCBzaW5jZSBIQUxfTU9EVUxFX1RCTSAxLjAgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9NQVBfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIG1hcCB0aGUgaGFsX3RibV9ibyB0byBnZXQgdGhlIGhhbF90Ym1fYm9faGFuZGxlICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDEzXCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfVU5NQVBfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIHVubWFwIHRoZSBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDE0XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfU1dBUF9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gc3dhcCB0aGUgdGJtX2JvcyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAxNVwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0RVUF9GRF9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gZHVwbGljYXRlIGZkICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDE2XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHw8XC9wPlxuPGhyIFwvPlxuPHA+RXhjZXB0IGFzIG5vdGVkLCB0aGlzIGNvbnRlbnQgLSBleGNsdWRpbmcgdGhlIENvZGUgRXhhbXBsZXMgLSBpcyBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cDpcL1wvY3JlYXRpdmVjb21tb25zLm9yZ1wvbGljZW5zZXNcL2J5XC8zLjBcL2xlZ2FsY29kZVwiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wPFwvYT5cbmFuZCBhbGwgb2YgdGhlIENvZGUgRXhhbXBsZXMgY29udGFpbmVkIGhlcmVpbiBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9ic2QtMy1jbGF1c2UtbGljZW5zZVwiPkJTRC0zLUNsYXVzZTxcL2E+LjxiciBcLz5cbkZvciBkZXRhaWxzLCBzZWUgdGhlIDxhIGhyZWY9XCJodHRwczpcL1wvd3d3LnRpemVuLm9yZ1wvY29udGVudC1saWNlbnNlXCI+Q29udGVudCBMaWNlbnNlPFwvYT4uPFwvcD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIj5SZXF1aXJlZCBIZWFkZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiPk92ZXJ2aWV3PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1kZWZpbmUtZG9jdW1lbnRhdGlvblwiPkRlZmluZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCI+RW51bWVyYXRpb24gVHlwZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUaXplbiBIQUwgQVBJOiBUQk0iLCJyYXciOm51bGx9LHsiY2xhc3MiOiJBcHBcXFNlcnZpY2VzXFxEb2N1bWVudGF0aW9uXFxEYXRhXFxSZW5kZXJlZE1hcmtkb3duIiwicyI6IndyYmwifV19LHsicyI6ImFyciJ9XX0sIm1lbW8iOnsiaWQiOiI1VTRWVUppWGJ5Q3ZUUE4xTDFOUiIsIm5hbWUiOiJfX21vdW50UGFyYW1zQ29udGFpbmVyIiwicGF0aCI6ImRvY3NcL3BsYXRmb3JtXC9oYWxcL2FwaVwvMS4wLjBcL2dyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiJmOTc0N2FlNjdlMTBlMWQwMTNiMmFjZjAwYjczYjhiOTYxNWZhNTkxNTdhM2ZjMzNhNjJjMjRmNjZlOWFmMjNkIn0=')" >
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-define-documentation\">Define Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: TBM","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"wau4VR4gLkGgnlsBeJ8W","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__TBM__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"a3fbaccbe6837c7949bceee712dc1d025984e21eb0c386c4333b4ee55ba6303b"}" wire:effects="[]" wire:id="wau4VR4gLkGgnlsBeJ8W" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS10Ym1cIj48YSBocmVmPVwiI2NvbnRlbnQtdGl6ZW4taGFsLWFwaS10Ym1cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRpemVuIEhBTCBBUEk6IFRCTTxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWRcIj5UQk08XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGdyYXBoaWMgYnVmZmVyLjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlcXVpcmVkIEhlYWRlcjxcL2gyPlxuPHA+I2luY2x1ZGUgJmx0O2hhbC10Ym0uaCZndDs8XC9wPlxuPGgyIGlkPVwiY29udGVudC1vdmVydmlld1wiPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+T3ZlcnZpZXc8XC9oMj5cbjxwPlRoZSBUQk0gZnVuY3Rpb25zIHByb3ZpZGVzIGFuIG1hbmFnaW5nIGludGVyZmFjZSBvZiB0aGUgZ3JhcGhpYyBidWZmZXIgaW5jbHVkaW5nOjxcL3A+XG48dWw+XG48bGk+Q3JlYXRpbmcgYSBzdXJmYWNlIHdpdGggYSBkZWZpbmVkIHdpZHRoLCBoZWlnaHQsIGFuZCBmb3JtYXQ8XC9saT5cbjxsaT5HZXR0aW5nIGEgY29sb3IgZm9ybWF0IGxpc3QgKGV4OiBSR0JBODg4OCk8XC9saT5cbjxsaT5BY2Nlc3NpbmcgdGhlIHN1cmZhY2U8XC9saT5cbjxsaT5HZXR0aW5nIHN1cmZhY2UgYW5kIHBsYW5lIGluZm9ybWF0aW9uPFwvbGk+XG48XC91bD5cbjxwPkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBUQk0gZmVhdHVyZXMgYW5kIHRoZSBtYWNyb3MsIHNlZSBIQUwgVEJNIHByb2dyYW1taW5nIGd1aWRlcyBhbmQgdHV0b3JpYWxzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5UeXBlZGVmczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX2JhY2tlbmRfX2RhdGFcIj5faGFsX3RibV9iYWNrZW5kX2RhdGE8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDU4YjJlOTEzNDNhZDgxZWQ5NDhhYjhmYWE0Nzk3M2FcIj5oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIHRibSBiYWNrZW5kIGRhdGEuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX2J1Zm1ncl9fZnVuY3NcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjUxYzExZGU3ODUzOTBmY2E2ODdiNzhmZGFjMDQzOTZcIj5oYWxfdGJtX2J1Zm1ncl9mdW5jczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fc3VyZmFjZV9fZnVuY3NcIj5faGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIHN1cmZhY2UgZnVuY3Rpb25zIG9mIGJhY2tlbmQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fdGJtX19ib19fZnVuY3NcIj5faGFsX3RibV9ib19mdW5jczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0MWU2NGM5MmY0OGM2ZDU3MzZlODMzMmVjYTU2NTdlMFwiPmhhbF90Ym1fYm9fZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+VGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSBUQk0gSEFMJ3MgYnVmZmVyIG9iamVjdCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExYjQxNDcxOTQxN2FhNTM4ODQ2OGQxZTU0OWQxY2I2MVwiPmhhbF90Ym1fYXV0aGVudGljYXRlZF9kcm1fZmRfaGFuZGxlcjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhY2VlYzIxOWZkY2IyYWFjMjA3NDdiMTQxYzE2YmEzNlwiPmhhbF90Ym1fZmQ8XC9hPiBhdXRoX2ZkLCB2b2lkICp1c2VyX2RhdGEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UaGUgRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB3aGVuIGRybSBmaWxlIGRlc2NyaXB0b3IgaXMgYXV0aGVybnRpY2F0ZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX3N1cmZhY2VfX2J1ZmZlcl9fZGF0YVwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIGJ1ZmZlciBkYXRhIG9mIGhhbF90Ym1fc3VyZmFjZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdW5pb24gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjdW5pb25fX2hhbF9fdGJtX19ib19faGFuZGxlXCI+X2hhbF90Ym1fYm9faGFuZGxlPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+aGFsX3RibV9ib19oYW5kbGUgYWJzdHJhY3Rpb24gb2YgdGhlIG1lbW9yeSBoYW5kbGUgYnkgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiIHRpdGxlPVwiRGVmaW5pdGlvbiBmb3IgdGhlIGRldmljZSB0eXBlIHRvIGFjY2VzcyBoYWxfdGJtX2JvLlwiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB2b2lkPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExZGEwN2NiYTJiZDJiYWIyMGQ3ZjcxM2YxMmYwYTcyOVwiPmhhbF90Ym1fYmFja2VuZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciBoYWxfdGJtX2JhY2tlbmQgaGFuZGxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB2b2lkPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIGhhbF90Ym1fYnVmbWdyIGhhbmRsZSBjcmVhdGVkIGJ5IGhhbCB0Ym0gYmFja2VuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdm9pZDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIHN1cmZhY2Ugb2JqZWN0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB2b2lkPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIGJ1ZmZlciBvYmplY3QuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHZvaWQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkyZGI4OTFkZTM3MGM5NTExODhmZWY5MjBjMzdhOGYyXCI+aGFsX3RibV9uYXRpdmVfZGlzcGxheTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciBuYXRpdmUgZGlzcGxheSAod2xfZGlzcGxheSBpbiB0aXplbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgaW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIHN5c3RlbSBidWZmZXIgbWFuYWdlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTMyY2VhMjhhY2ZiZGQwNjU1NzBiMDM2YjM4MDE3YjI0XCI+aGFsX3RibV9rZXk8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlciBvYmplY3QuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCBfaGFsX3RibV9zdXJmYWNlICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTliYzA5YWU4ZmJiNjkyMTI1N2ZmNmNiZGVjYWFmZWExXCI+aGFsX3RibV9zdXJmYWNlX2g8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRpemVuIGJ1ZmZlciBzdXJmYWNlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB1aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVGl6ZW4gYnVmZmVyIHN1cmZhY2UgZm9ybWF0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+RGVmaW5lczxcL3RkPlxuPHRkPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhY2VhYzUwYTJiMjliZjgyMTViODFhODJjYjRjNzI0Y2VcIj5IQUxfVEJNX0ZPUk1BVF9DODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdDJywgJzgnLCAnICcsICcgJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQzggKFs3OjBdIEMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjUxMWI1ZjRmNzRjODhkZDYyZDFlY2NkZTI2MTljNmVcIj5IQUxfVEJNX0ZPUk1BVF9SR0IzMzI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdHJywgJ0InLCAnOCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjMyMiAoWzc6MF0gUjpHOkIgMzozOjIpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhODcwYTg5OTk5NmE5YTA3Zjc0NDFhNmE3MGYxNzI1ZmVcIj5IQUxfVEJNX0ZPUk1BVF9CR1IyMzM8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdHJywgJ1InLCAnOCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjIzMyAoWzc6MF0gQjpHOlIgMjozOjMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhY2U2MWI3ZjRlODdiZDEwNzA0NTFlYTYyNjE0YjZlN2ZcIj5IQUxfVEJNX0ZPUk1BVF9YUkdCNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ1InLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWFJHQjQ0NDQgKFsxNTowXSB4OlI6RzpCIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTBkZWE2YzgxMGRlZTAyOTJiZDY5MWQ5YjhiNTc4MFwiPkhBTF9UQk1fRk9STUFUX1hCR1I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnQicsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYQlJHNDQ0NCAoWzE1OjBdIHg6QjpHOlIgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTRkNTgwYmY2YjdlZjdkY2RhYzQ1ZjE3M2Q2OTNjYjM2XCI+SEFMX1RCTV9GT1JNQVRfUkdCWDQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdYJywgJzEnLCAnMicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQlg0NDQ0IChbMTU6MF0gUjpHOkI6eCA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYmYyYjY0NGExOWUxZmI5MWI5YmRkNjFiMDcwZTBlZTlcIj5IQUxfVEJNX0ZPUk1BVF9CR1JYNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ1gnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSWDQ0NDQgKFsxNTowXSBCOkc6Ujp4IDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzOGYzYzQxZWFkNzc2ZGUyOTYyNzM2ZjZkY2VlOTY5NFwiPkhBTF9UQk1fRk9STUFUX0FSR0I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnUicsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBUkdCNDQ0NCAoWzE1OjBdIEE6UjpHOkIgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTA3ZjJhMjJhZjU5MTg3OTY2NDRiYjE5NzE2NmVlMGJjXCI+SEFMX1RCTV9GT1JNQVRfQUJHUjQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdCJywgJzEnLCAnMicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFCR1I0NDQ0IChbMTU6MF0gQTpCOkc6UiA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZTE3NmYxYjIwM2Q3MWQ2NTU0MTdlYzBlMzE1MjA4NDBcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCQTQ0NDQgKFsxNTowXSBSOkc6QjpBIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwMGRjNDA5M2IyNjI0NGU3OGRiOGZjZmRmODJkZjJlOVwiPkhBTF9UQk1fRk9STUFUX0JHUkE0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JBNDQ0NCAoWzE1OjBdIEI6RzpSOkEgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTE2NGE2MzU5ZTZkYmQyYjdkZDU2N2FkZmMwZDQ4N2ZmXCI+SEFMX1RCTV9GT1JNQVRfWFJHQjE1NTU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzEnLCAnNScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhSR0IxNTU1IChbMTU6MF0geDpSOkc6QiAxOjU6NTo1IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNzkyMjg1YjNkYmE1YTI4MGY1NWY2OWY5YTI4MDE5NThcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMScsICc1Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWEJHUjE1NTUgKFsxNTowXSB4OkI6RzpSIDE6NTo1OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhNjE0OTI1NTExNjQ3MzAyMzU2NjBmM2ZiNDRiZDA0MlwiPkhBTF9UQk1fRk9STUFUX1JHQlg1NTUxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnWCcsICcxJywgJzUnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYNTU1MSAoWzE1OjBdIFI6RzpCOnggNTo1OjU6MSBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWE4MmM3ODM4OGZmNDhlYjI1M2Q2NDY0NTViNjViNWRmXCI+SEFMX1RCTV9GT1JNQVRfQkdSWDU1NTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdYJywgJzEnLCAnNScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlg1NTUxIChbMTU6MF0gQjpHOlI6eCA1OjU6NToxIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFiMTU5NTU5YThlZTNjNjhiZDRhMWZmZmRiN2FhMWZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMScsICc1Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQVJHQjE1NTUgKFsxNTowXSBBOlI6RzpCIDE6NTo1OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTIzNWE1MzRiOTQ0YWNiZGJhZDU1NGZlOThjZWMwMlwiPkhBTF9UQk1fRk9STUFUX0FCR1IxNTU1PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnQicsICcxJywgJzUnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSMTU1NSAoWzE1OjBdIEE6QjpHOlIgMTo1OjU6NSBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTJlNDYwYmYwMTNiZDBmNTNlMjFmNWEyNjMyNWZjYjQwXCI+SEFMX1RCTV9GT1JNQVRfUkdCQTU1NTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdBJywgJzEnLCAnNScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkE1NTUxIChbMTU6MF0gUjpHOkI6QSA1OjU6NToxIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYzJlOTBkZjYwZmIwMzAzODU1NDY2Y2NiODdiNmVlNzdcIj5IQUxfVEJNX0ZPUk1BVF9CR1JBNTU1MTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMScsICc1Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTU1NTEgKFsxNTowXSBCOkc6UjpBIDU6NTo1OjEgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwYmJlMjE5OTM2MzZlMTYwYzc4N2QxMTA0MjU0OTViMFwiPkhBTF9UQk1fRk9STUFUX1JHQjU2NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0cnLCAnMScsICc2Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCNTY1IChbMTU6MF0gUjpHOkIgNTo2OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiNTk5MDQwM2FjZWYyZWIzOWEzODE0ODgzNDhmMWVmZVwiPkhBTF9UQk1fRk9STUFUX0JHUjU2NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0cnLCAnMScsICc2Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSNTY1IChbMTU6MF0gQjpHOlIgNTo2OjUgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3YWViMDAzNjU2NGExOThiNmExMWE1NDA0YzAxN2UwM1wiPkhBTF9UQk1fRk9STUFUX1JHQjg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0cnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCODg4IChbMjM6MF0gUjpHOkIgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EyZmU1ODM1N2FlYTJlMjFjNzdlODdjYTU0YjAyZjc3ZlwiPkhBTF9UQk1fRk9STUFUX0JHUjg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0cnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSODg4IChbMjM6MF0gQjpHOlIgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3NGQzOTBkODYwNjE5ZTY5NmM1NjBiNGJmM2Q0ZDg4Y1wiPkhBTF9UQk1fRk9STUFUX1hSR0I4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnUicsICcyJywgJzQnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYUkdCODg4OCAoWzMxOjBdIHg6UjpHOkIgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWZkNTYzMmZiMzMxYTcxZWEwYjAyMWZhZjgwZTBmOWUzXCI+SEFMX1RCTV9GT1JNQVRfWEJHUjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdCJywgJzInLCAnNCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhCR1I4ODg4IChbMzE6MF0geDpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFlYTBiZTFiZTljZTg1N2RjMzgxY2QyMDAyMmVjZTJcIj5IQUxfVEJNX0ZPUk1BVF9SR0JYODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ1gnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCWDg4ODggKFszMTowXSBSOkc6Qjp4IDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlYzliM2I1M2YxZGNmZWEyMmVhYmJlM2ZiOWIwYzM1MlwiPkhBTF9UQk1fRk9STUFUX0JHUlg4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnWCcsICcyJywgJzQnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JYODg4OCAoWzMxOjBdIEI6RzpSOnggODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWEyMDY4NDkzMmNmMzU1NmRmYTQwZGQ0ZDMzMTE2NzRmXCI+SEFMX1RCTV9GT1JNQVRfQVJHQjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdSJywgJzInLCAnNCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFSR0I4ODg4IChbMzE6MF0gQTpSOkc6QiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOGU2ZmZjMThjMmRkYmYzYzgxMzk4YzE3ZGY0N2VmMWVcIj5IQUxfVEJNX0ZPUk1BVF9BQkdSODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ0InLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQUJHUjg4ODggKFszMTowXSBbMzE6MF0gQTpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTNkYTIyNTk1ZjdlMjU3NWQxNzBiN2VhNzlmNmVkYWFcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCQTg4ODggKFszMTowXSBSOkc6QjpBIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlNGJhZDMwMzA0NDc3NGU3OGE2MjMwMjhjNzM0OTdjNFwiPkhBTF9UQk1fRk9STUFUX0JHUkE4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICcyJywgJzQnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JBODg4OCAoWzMxOjBdIEI6RzpSOkEgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTZhMTNhOWRmM2Q5MDYxMGFlOGNkYmEzY2Y0MWU4M2I2XCI+SEFMX1RCTV9GT1JNQVRfWFJHQjIxMDEwMTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzMnLCAnMCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhSR0IyMTAxMDEwIChbMzE6MF0geDpSOkc6QiAyOjEwOjEwOjEwIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYzJmNGE4ZjhiMGRiYzU4YjU5OTExNmI2ZjNkMzU0YTVcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSMjEwMTAxMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMycsICcwJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWEJHUjIxMDEwMTAgKFszMTowXSB4OkI6RzpSIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzNDA4NDIxMjc1NmYwODY4MWVjMWIyMDYxN2VjNTI5NVwiPkhBTF9UQk1fRk9STUFUX1JHQlgxMDEwMTAyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnWCcsICczJywgJzAnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYMTAxMDEwMiAoWzMxOjBdIFI6RzpCOnggMTA6MTA6MTA6MiBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFmZTA2ZmI3ZmE1ZGRjZjBiMzFmMWQ4OTBhNjFlN2RkXCI+SEFMX1RCTV9GT1JNQVRfQkdSWDEwMTAxMDI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdYJywgJzMnLCAnMCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlgxMDEwMTAyIChbMzE6MF0gQjpHOlI6eCAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOWVkMTE3NmNjOGYyZjc2ODhkMDhjNTYyYmZiMDQzYWZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCMjEwMTAxMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMycsICcwJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQVJHQjIxMDEwMTAgKFszMTowXSBBOlI6RzpCIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlMTQ0M2VhNjZmMzM0OTZhYjVjYWNjMzA1ZTg2NzE0OVwiPkhBTF9UQk1fRk9STUFUX0FCR1IyMTAxMDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnQicsICczJywgJzAnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSMjEwMTAxMCAoWzMxOjBdIEE6QjpHOlIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ1OWQ2ZTcxOWEzYjg2MTk2ZGI0Yjg4NjkyNjhiMjA4XCI+SEFMX1RCTV9GT1JNQVRfUkdCQTEwMTAxMDI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdBJywgJzMnLCAnMCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkExMDEwMTAyIChbMzE6MF0gUjpHOkI6QSAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOGViMzk5OWY2MTEyNzgyOTJkNzZkOWRlNWMwYTY3NjJcIj5IQUxfVEJNX0ZPUk1BVF9CR1JBMTAxMDEwMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMycsICcwJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTEwMTAxMDIgKFszMTowXSBCOkc6UjpBIDEwOjEwOjEwOjIgbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhYTY2MGNlOTI1MDczMWVjMDRmOTBhMTE0MmU3Njg2NVwiPkhBTF9UQk1fRk9STUFUX1lVWVY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJ1knLCAnVicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVWVYgKFszMTowXSBDcjA6WTE6Q2IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E2NmRmNzZmYmE2MjUzNDYwZjVjYTYyMmRmZTExYmExMVwiPkhBTF9UQk1fRk9STUFUX1lWWVU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdWJywgJ1knLCAnVScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWWVUgKFszMTowXSBDYjA6WTE6Q3IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwZjVlMjE0NTJmOWY3MGI2ZDllYTAyOWNmN2FiMjk1N1wiPkhBTF9UQk1fRk9STUFUX1VZVlk8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnVScsICdZJywgJ1YnLCAnWScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFVZVlkgKFszMTowXSBZMTpDcjA6WTA6Q2IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlNmE3MWEzMWUyZTNmMmUzM2I5MDQ5NWRlMmU1YTg1OFwiPkhBTF9UQk1fRk9STUFUX1ZZVVk8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnVicsICdZJywgJ1UnLCAnWScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFZZVVkgKFszMTowXSBZMTpDYjA6WTA6Q3IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwMmQwNDQ1MDljODNmNjI4NDMxODBkMzUyZjNjZTU5N1wiPkhBTF9UQk1fRk9STUFUX0FZVVY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdZJywgJ1UnLCAnVicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFZVVYgKFszMTowXSBBOlk6Q2I6Q3IgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ2M2U3NzlhZWY2ZmRjN2ZkMjNhZDdlNjgwMGJjM2EyXCI+SEFMX1RCTV9GT1JNQVRfTlYxMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdOJywgJ1YnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxMiAoMngyIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjhmY2EwOGMwYzdmZTUyNDI3YjJmOTMyNjI1NGJmOTlcIj5IQUxfVEJNX0ZPUk1BVF9OVjIxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ04nLCAnVicsICcyJywgJzEnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBOVjIxICgyeDIgc3Vic2FtcGxlZCBDYjpDciBwbGFuZSkuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E2NWIzZTUyNGU3NjJhODc2MDZmN2QyMTg5Y2NjYmFlM1wiPkhBTF9UQk1fRk9STUFUX05WMTY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnTicsICdWJywgJzEnLCAnNicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IE5WMTYgKDJ4MSBzdWJzYW1wbGVkIENyOkNiIHBsYW5lKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTdlZTFmZjU5MjViYmI2NGQ4YmFmM2RjMmQwYWFkNjBiXCI+SEFMX1RCTV9GT1JNQVRfTlY2MTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdOJywgJ1YnLCAnNicsICcxJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlY2MSAoMngxIHN1YnNhbXBsZWQgQ2I6Q3IgcGxhbmUpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGZiM2MzMzQxODU0NDZjYWI1YTJjN2FjMzYwOTE2ZjRcIj5IQUxfVEJNX0ZPUk1BVF9ZVVY0MTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJ1YnLCAnOScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQxMCAoNHg0IHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWNiYzFiOTE0NmFjZTk1NjMzN2QwNzljZGJmOWViNDhiXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICdVJywgJzknKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVlU0MTAgKDR4NCBzdWJzYW1wbGVkIENyICgxKSBhbmQgQ2IgKDIpIHBsYW5lcykuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTM2Yzk4NDk4Y2FiZDQ2MmQ4NGVhMzIxNWRhODg1ZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQxMTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICcxJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVVWNDExICg0eDEgc3Vic2FtcGxlZCBDYiAoMSkgYW5kIENyICgyKSBwbGFuZXMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWU4NGVhNmFhOGExZWU0MDFhNmJmZjM4ODE0MjA2NmVcIj5IQUxfVEJNX0ZPUk1BVF9ZVlU0MTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdWJywgJzEnLCAnMScpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWVTQxMSAoNHgxIHN1YnNhbXBsZWQgQ3IgKDEpIGFuZCBDYiAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFiYTk3ZmNmZDliY2UyOWEzOTQ1ZThlZDIxZTNhNGFiXCI+SEFMX1RCTV9GT1JNQVRfWVVWNDIwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVScsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVVY0MjAgKDJ4MiBzdWJzYW1wbGVkIENiICgxKSBhbmQgQ3IgKDIpIHBsYW5lcykuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1ZWQxY2Q4ZWVjNzhjYTk4MTE2NGYyYmQwNjE5YzMwNVwiPkhBTF9UQk1fRk9STUFUX1lWVTQyMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1YnLCAnMScsICcyJyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDIwICgyeDIgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYmM4NzEzNjIyOGFkNThiNTc0NmZmZWU4MGE5MThiNWZcIj5IQUxfVEJNX0ZPUk1BVF9ZVVY0MjI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJzEnLCAnNicpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQyMiAoMngxIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWE5YjZiNDMyZDQ0Nzk0MWY2YmZlNTVmNmVhM2RkODYyXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDIyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzYnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVlU0MjIgKDJ4MSBzdWJzYW1wbGVkIENyICgxKSBhbmQgQ2IgKDIpIHBsYW5lcykuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiYzZlY2QzNWU4NGE0NjMzN2IwNjE1M2M1Yzg3NDFiZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMicsICc0Jyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVVWNDQ0IChub24tc3Vic2FtcGxlZCBDYiAoMSkgYW5kIENyICgyKSBwbGFuZXMpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+I2RlZmluZTxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhODI0Mjg0ZTMzOWFjYzAyMzBmMzJhMzI3ZWMwMGJkZjFcIj5IQUxfVEJNX0ZPUk1BVF9ZVlU0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdWJywgJzInLCAnNCcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWVTQ0NCAobm9uLXN1YnNhbXBsZWQgQ3IgKDEpIGFuZCBDYiAoMikgcGxhbmVzKS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTYwODI0OGE3OTFiMTRjMTgwZWQxNjNhZTgwZTZmZWRhXCI+SEFMX1RCTV9GT1JNQVRfTlYxMk1UPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1QnLCAnTScsICcxJywgJzInKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBOVjEyTVQgKHRpbGVkICc2NHgzMicgJmFtcDsgbXVsdGktcGxhbmUgdmVyc2lvbiBvZiBOVjEyKS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgdGJtIGJhY2tlbmQgZGF0YS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMzE5Yzg3MDQ5OGFhMzYxYjdkNGE1YWUyNWVkNzg3ZDdcIj5idWZtZ3I8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWU5MjIwZTRhNDFlMzk3YTA1NmEwODY5ZGVhNjY1OGUxXCI+aGFzX2RybV9kZXZpY2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiNTFjMTFkZTc4NTM5MGZjYTY4N2I3OGZkYWMwNDM5NlwiPmhhbF90Ym1fYnVmbWdyX2Z1bmNzPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjYWNjNGEzOTBjMjZlMzUxZGQ2NTk3YjgzZGFjNGZjOVwiPmJ1Zm1ncl9mdW5jczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiMjE2NzJmYjc1Nzg5YTZjMjk4OTFjMGNmNzY1MDU4MFwiPnN1cmZhY2VfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0MWU2NGM5MmY0OGM2ZDU3MzZlODMzMmVjYTU2NTdlMFwiPmhhbF90Ym1fYm9fZnVuY3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTYzMTczZTYzMWU4NGIyNzkwOGUyNmM2NDJkM2M4MjZkXCI+Ym9fZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhY2VlYzIxOWZkY2IyYWFjMjA3NDdiMTQxYzE2YmEzNlwiPmhhbF90Ym1fZmQ8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2EyMmMxMjUzNmZmOGZlMjUzYzhhYWRmMmRkZGU0ZDRiMFwiPmRybV9mZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMDI2MTE0YmJlYWU3N2M3NTkwNzY0ZmVkNjgwNDUwZTJcIj5pc19tYXN0ZXI8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExYjQxNDcxOTQxN2FhNTM4ODQ2OGQxZTU0OWQxY2I2MVwiPmhhbF90Ym1fYXV0aGVudGljYXRlZF9kcm1fZmRfaGFuZGxlcjxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWY2MjRjYTY4OTA3YjRjOTFmOWQzZTBmODE2ZWQ0YmVkXCI+YXV0aF9kcm1fZmRfZnVuYzxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhODJmMTNjYzc4NGVjNmZjOTg2N2NmOGQyZTkzN2RiMzZcIj51c2VyX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTFiNDE0NzE5NDE3YWE1Mzg4NDY4ZDFlNTQ5ZDFjYjYxXCI+aGFsX3RibV9hdXRoZW50aWNhdGVkX2RybV9mZF9oYW5kbGVyPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWY2MjRjYTY4OTA3YjRjOTFmOWQzZTBmODE2ZWQ0YmVkXCI+X2hhbF90Ym1fYmFja2VuZF9kYXRhOjphdXRoX2RybV9mZF9mdW5jPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB3aGVuIGRybSBmaWxlIGRlc2NyaXB0b3IgaXMgYXV0aGVybnRpY2F0ZWQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFlNjRjOTJmNDhjNmQ1NzM2ZTgzMzJlY2E1NjU3ZTBcIj5oYWxfdGJtX2JvX2Z1bmNzPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2MzE3M2U2MzFlODRiMjc5MDhlMjZjNjQyZDNjODI2ZFwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6Ym9fZnVuY3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBUQk0gQnVmZmVyIE9iamVjdCdzIGZ1bmN0aW9ucyBvZiBiYWNrZW5kPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMzE5Yzg3MDQ5OGFhMzYxYjdkNGE1YWUyNWVkNzg3ZDdcIj5faGFsX3RibV9iYWNrZW5kX2RhdGE6OmJ1Zm1ncjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIGhhbmRsZSBvZiBidWZtZ3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiNTFjMTFkZTc4NTM5MGZjYTY4N2I3OGZkYWMwNDM5NlwiPmhhbF90Ym1fYnVmbWdyX2Z1bmNzPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjYWNjNGEzOTBjMjZlMzUxZGQ2NTk3YjgzZGFjNGZjOVwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6YnVmbWdyX2Z1bmNzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgYnVmZmVyIG1hbmFnZXIncyBmdW5jdGlvbnMgb2YgYmFja2VuZDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFjZWVjMjE5ZmRjYjJhYWMyMDc0N2IxNDFjMTZiYTM2XCI+aGFsX3RibV9mZDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2EyMmMxMjUzNmZmOGZlMjUzYzhhYWRmMmRkZGU0ZDRiMFwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6ZHJtX2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgZHJtIGZpbGUgZGVzY3JpcHRvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWU5MjIwZTRhNDFlMzk3YTA1NmEwODY5ZGVhNjY1OGUxXCI+X2hhbF90Ym1fYmFja2VuZF9kYXRhOjpoYXNfZHJtX2RldmljZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIGZsYWcgb2YgaGF2aW5nIGRybSBkZXZpY2Ugb3Igbm90PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMDI2MTE0YmJlYWU3N2M3NTkwNzY0ZmVkNjgwNDUwZTJcIj5faGFsX3RibV9iYWNrZW5kX2RhdGE6OmlzX21hc3RlcjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIGZsYWcgb2YgbWFzdGVyIG9yIG5vdDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiMjE2NzJmYjc1Nzg5YTZjMjk4OTFjMGNmNzY1MDU4MFwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTo6c3VyZmFjZV9mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIFRCTSBTdXJmYWNlJ3MgZnVuY3Rpb25zIG9mIGJhY2tlbmQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTgyZjEzY2M3ODRlYzZmYzk4NjdjZjhkMmU5MzdkYjM2XCI+X2hhbF90Ym1fYmFja2VuZF9kYXRhOjp1c2VyX2RhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSB1c2VyIGRhdGEgZm9yIGNhbGxiYWNrPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfaGFsX3RibV9idWZtZ3JfZnVuY3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGIxMjdkNmYyYzIxM2Y3YmQ4MjVlNGI3NmE5MGZlYTZcIj5oYWxfdGJtX2J1Zm1ncl9jYXBhYmlsaXR5PFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1MzZiNjczNjI3YWRjOTM2NGZhMjBjMjViZDliZDA0OVwiPmJ1Zm1ncl9nZXRfY2FwYWJpbGl0aWVzPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FhNWNiNmZjMzIwMmQzNzE5ZjAxYmY1OGUyNDAyZjVkZVwiPmJ1Zm1ncl9nZXRfc3VwcG9ydGVkX2Zvcm1hdHM8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIHVpbnQzMl90ICoqZm9ybWF0cywgdWludDMyX3QgKm51bSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1ODdiYTRhYmVlMDA4MzZmMDg5N2E2NzIwYWYwNTM5YlwiPmJ1Zm1ncl9nZXRfcGxhbmVfZGF0YTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiMDJmNDMwNGNmODRlZWMxMzgyYjAxYjY1OWZjMThhM1wiPmhhbF90Ym1fZm9ybWF0PFwvYT4gZm9ybWF0LCBpbnQgcGxhbmVfaWR4LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90ICpzaXplLCB1aW50MzJfdCAqb2Zmc2V0LCB1aW50MzJfdCAqcGl0Y2gsIGludCAqYm9faWR4KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FkNTAwNmRiODA3MjRlZjgwNmI4OTFkYzA3ZmE4OGJlMVwiPmJ1Zm1ncl9hbGxvY19zdXJmYWNlPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWIwMmY0MzA0Y2Y4NGVlYzEzODJiMDFiNjU5ZmMxOGEzXCI+aGFsX3RibV9mb3JtYXQ8XC9hPiBmb3JtYXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4gbWVtX3R5cGVzLCB1aW50NjRfdCAqbW9kaWZpZXJzLCB1aW50MzJfdCBudW1fbW9kaWZpZXJzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPiAqKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYjZmMDA3ZDUyYzFiMjMzNWYwMjMwZTczYjI5ZWU1NTdcIj5idWZtZ3JfaW1wb3J0X3N1cmZhY2U8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+IGZvcm1hdCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTc5Y2YwNWZjNjJiMDAzMjdhZTllY2QzNzMxMzhjM1wiPmhhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL2E+ICpidWZmZXJfZGF0YSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjODI4YzhlOTM3ZmVmMzBhOGFiYzFlZDYyMTc2MzY4NlwiPmJ1Zm1ncl9hbGxvY19ibzxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgdW5zaWduZWQgaW50IHNpemUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4gbWVtX3R5cGVzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTQzZWE4OTVlMTRjODA3OWEyZGM0NGUyNGNhMjdiN2ZjXCI+YnVmbWdyX2FsbG9jX2JvX3dpdGhfZm9ybWF0PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCBpbnQgZm9ybWF0LCBpbnQgYm9faWR4LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBicHAsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4gbWVtX3R5cGVzLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTIzZTA3YjYxMGI3YmZjNTVhZjBiYmNiNzk0NTcyMzIxXCI+YnVmbWdyX2ltcG9ydF9mZDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhY2VlYzIxOWZkY2IyYWFjMjA3NDdiMTQxYzE2YmEzNlwiPmhhbF90Ym1fZmQ8XC9hPiBmZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2EwOTYyNjUyZTQ3OGNiN2Q4M2QxMTBmNWI2NmIwYzA2YVwiPmJ1Zm1ncl9pbXBvcnRfa2V5PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTMyY2VhMjhhY2ZiZGQwNjU1NzBiMDM2YjM4MDE3YjI0XCI+aGFsX3RibV9rZXk8XC9hPiBrZXksIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiooKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYzgyOGM4ZTkzN2ZlZjMwYThhYmMxZWQ2MjE3NjM2ODZcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M6OmJ1Zm1ncl9hbGxvY19ibzxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCB1bnNpZ25lZCBpbnQgc2l6ZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0NGI3YTc2MzYwYmUyYzE2NDVjODI5OWFlOGJlZGViNVwiPmhhbF90Ym1fYm9fbWVtb3J5X3R5cGU8XC9hPiBtZW1fdHlwZXMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFsbG9jYXRlIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+KigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E0M2VhODk1ZTE0YzgwNzlhMmRjNDRlMjRjYTI3YjdmY1wiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2FsbG9jX2JvX3dpdGhfZm9ybWF0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIGludCBmb3JtYXQsIGludCBib19pZHgsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IGJwcCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0NGI3YTc2MzYwYmUyYzE2NDVjODI5OWFlOGJlZGViNVwiPmhhbF90Ym1fYm9fbWVtb3J5X3R5cGU8XC9hPiBtZW1fdHlwZXMsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFsbG9jYXRlIHRoZSBidWZmZXIgb2JqZWN0IGF0IGJ1ZmZlciBvYmplY3QgaW5kZXggaW4gc3VyZmFjZSBhY2NvcmRpbmcgdG8gdGhlIGZvcm1hdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+KigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FkNTAwNmRiODA3MjRlZjgwNmI4OTFkYzA3ZmE4OGJlMVwiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2FsbG9jX3N1cmZhY2U8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTE4MjdlYjQxODU1MmYzM2NiNjJmYmE3NjJkMmQxNlwiPmhhbF90Ym1fYnVmbWdyPFwvYT4gKmJ1Zm1nciwgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiMDJmNDMwNGNmODRlZWMxMzgyYjAxYjY1OWZjMThhM1wiPmhhbF90Ym1fZm9ybWF0PFwvYT4gZm9ybWF0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ0YjdhNzYzNjBiZTJjMTY0NWM4Mjk5YWU4YmVkZWI1XCI+aGFsX3RibV9ib19tZW1vcnlfdHlwZTxcL2E+IG1lbV90eXBlcywgdWludDY0X3QgKm1vZGlmaWVycywgdWludDMyX3QgbnVtX21vZGlmaWVycywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWxsb2NhdGUgdGhlIHN1cmZhY2UgYWNjb3JkaW5nIHRvIHRoZSBjb2xvciBmb3JtYXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGIxMjdkNmYyYzIxM2Y3YmQ4MjVlNGI3NmE5MGZlYTZcIj5oYWxfdGJtX2J1Zm1ncl9jYXBhYmlsaXR5PFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhNTM2YjY3MzYyN2FkYzkzNjRmYTIwYzI1YmQ5YmQwNDlcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M6OmJ1Zm1ncl9nZXRfY2FwYWJpbGl0aWVzPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgY2FwYWJpbGl0aWVzIG9mIGEgYnVmZmVyIG1hbmFnZXI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1ODdiYTRhYmVlMDA4MzZmMDg5N2E2NzIwYWYwNTM5YlwiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2dldF9wbGFuZV9kYXRhPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+IGZvcm1hdCwgaW50IHBsYW5lX2lkeCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCAqc2l6ZSwgdWludDMyX3QgKm9mZnNldCwgdWludDMyX3QgKnBpdGNoLCBpbnQgKmJvX2lkeCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgcGxhbmUncyBpbmZvcm1hdGlvbiBmcm9tIFRCTSBidWZmZXIgbWFuYWdlciBIQUwgYWNjb3JkaW5nIHRvIHRoZSBjb2xvciBmb3JtYXQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FhNWNiNmZjMzIwMmQzNzE5ZjAxYmY1OGUyNDAyZjVkZVwiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2dldF9zdXBwb3J0ZWRfZm9ybWF0czxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCB1aW50MzJfdCAqKmZvcm1hdHMsIHVpbnQzMl90ICpudW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHN1cHBvcnRlZCBjb2xvciBmb3JtYXQgZnJvbSBUQk0gYnVmZmVyIG1hbmFnZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4qKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTIzZTA3YjYxMGI3YmZjNTVhZjBiYmNiNzk0NTcyMzIxXCI+X2hhbF90Ym1fYnVmbWdyX2Z1bmNzOjpidWZtZ3JfaW1wb3J0X2ZkPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT4gZmQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCB0aGUgYnVmZmVyIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHRibV9mZChwcmltZSBmZCkuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4qKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTA5NjI2NTJlNDc4Y2I3ZDgzZDExMGY1YjY2YjBjMDZhXCI+X2hhbF90Ym1fYnVmbWdyX2Z1bmNzOjpidWZtZ3JfaW1wb3J0X2tleTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPiAqYnVmbWdyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTMyY2VhMjhhY2ZiZGQwNjU1NzBiMDM2YjM4MDE3YjI0XCI+aGFsX3RibV9rZXk8XC9hPiBrZXksIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkltcG9ydCB0aGUgYnVmZmVyIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHRibV9rZXk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+KigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiNmYwMDdkNTJjMWIyMzM1ZjAyMzBlNzNiMjllZTU1N1wiPl9oYWxfdGJtX2J1Zm1ncl9mdW5jczo6YnVmbWdyX2ltcG9ydF9zdXJmYWNlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWExODI3ZWI0MTg1NTJmMzNjYjYyZmJhNzYyZDJkMTZcIj5oYWxfdGJtX2J1Zm1ncjxcL2E+ICpidWZtZ3IsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+IGZvcm1hdCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1YTc5Y2YwNWZjNjJiMDAzMjdhZTllY2QzNzMxMzhjM1wiPmhhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL2E+ICpidWZmZXJfZGF0YSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SW1wb3J0IHRoZSBzdXJmYWNlIGFjY29yZGluZyB0byB0aGUgZm9ybWF0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF90Ym1fc3VyZmFjZV9mdW5jczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIHN1cmZhY2UgZnVuY3Rpb25zIG9mIGJhY2tlbmQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD52b2lkKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMjliMWViZGI2YmFiM2VjODg5Nzg4ZmJjZDgwYmRlMDRcIj5zdXJmYWNlX2ZyZWU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPiAqc3VyZmFjZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKiooKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2MGQyZTcxNzBjMjUwY2JjZDFkMWYwZWFkNDUzN2NhYVwiPnN1cmZhY2VfZ2V0X2JvczxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCBpbnQgKm51bV9ib3MsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTY2NzY4ZjFlNDk4MjEwYmYxMGMxZGI4NjI0N2QxZTdkXCI+c3VyZmFjZV9nZXRfcGxhbmVfZGF0YTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCBpbnQgcGxhbmVfaWR4LCB1aW50MzJfdCAqc2l6ZSwgdWludDMyX3QgKm9mZnNldCwgdWludDMyX3QgKnBpdGNoLCBpbnQgKmJvX2lkeCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPiAqKCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYWViNzczNjdkOGExNWExMThhMjNlZDM4NzY5Y2Y2NGNcIj5zdXJmYWNlX2V4cG9ydDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPiooKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYWViNzczNjdkOGExNWExMThhMjNlZDM4NzY5Y2Y2NGNcIj5faGFsX3RibV9zdXJmYWNlX2Z1bmNzOjpzdXJmYWNlX2V4cG9ydDxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ3NzdjZWZhNDgxZmZkZDI1Y2JiZjVlZDkxNDRiYWE2XCI+aGFsX3RibV9zdXJmYWNlPFwvYT4gKnN1cmZhY2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkV4cG9ydCBhIGJ1ZmZlcl9kYXRhIG9mIHRibV9zdXJmYWNlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTI5YjFlYmRiNmJhYjNlYzg4OTc4OGZiY2Q4MGJkZTA0XCI+X2hhbF90Ym1fc3VyZmFjZV9mdW5jczo6c3VyZmFjZV9mcmVlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDc3N2NlZmE0ODFmZmRkMjVjYmJmNWVkOTE0NGJhYTZcIj5oYWxfdGJtX3N1cmZhY2U8XC9hPiAqc3VyZmFjZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWFsbG9jYXRlIHRibV9zdXJmYWNlIHVzaW5nIGJhY2tlbmQncyBzdXJmYWNlIGZyZWUgZnVuY3Rpb24uPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4qKigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2MGQyZTcxNzBjMjUwY2JjZDFkMWYwZWFkNDUzN2NhYVwiPl9oYWxfdGJtX3N1cmZhY2VfZnVuY3M6OnN1cmZhY2VfZ2V0X2JvczxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWQ3NzdjZWZhNDgxZmZkZDI1Y2JiZjVlZDkxNDRiYWE2XCI+aGFsX3RibV9zdXJmYWNlPFwvYT4gKnN1cmZhY2UsIGludCAqbnVtX2JvcywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBudW1iZXIgb2YgYnVmZmVyIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0Ym1fc3VyZmFjZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2Njc2OGYxZTQ5ODIxMGJmMTBjMWRiODYyNDdkMWU3ZFwiPl9oYWxfdGJtX3N1cmZhY2VfZnVuY3M6OnN1cmZhY2VfZ2V0X3BsYW5lX2RhdGE8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+ICpzdXJmYWNlLCBpbnQgcGxhbmVfaWR4LCB1aW50MzJfdCAqc2l6ZSwgdWludDMyX3QgKm9mZnNldCwgdWludDMyX3QgKnBpdGNoLCBpbnQgKmJvX2lkeCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgc2l6ZSwgb2Zmc2V0LCBwaXRjaCwgYnVmZmVyIG9iamVjdCBpbmRleCByZWxhdGVkIHdpdGggcGxhbmVfaW5kZXggZnJvbSB0Ym1fc3VyZmFjZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9oYWxfdGJtX2JvX2Z1bmNzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSBUQk0gSEFMJ3MgYnVmZmVyIG9iamVjdCBmdW5jdGlvbnMgb2YgYmFja2VuZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnZvaWQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiM2U5OTU1OWVhNmNmMzFkZWFiZTY5MDQ0MGI4OTExMlwiPmJvX2ZyZWU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYzBlOTIyYWYwZGE0MzUyYmIwYmNlM2RkYzRjZDk3ODRcIj5ib19nZXRfc2l6ZTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0NGI3YTc2MzYwYmUyYzE2NDVjODI5OWFlOGJlZGViNVwiPmhhbF90Ym1fYm9fbWVtb3J5X3R5cGU8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWRkZDkzNGEzZWY0NWQxYjg1ZTVlYWU0MjUzMjkxN2U1XCI+Ym9fZ2V0X21lbW9yeV90eXBlczxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjODE4Y2I1N2EyOTJiZTM3ODExYWY4ZGVjM2NiZjQ2YVwiPmhhbF90Ym1fYm9faGFuZGxlPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E5ZmFlYWQ0ZDAzNGIyNjA1MGQzMTkwOGIyNTA0ZjYwNVwiPmJvX2dldF9oYW5kbGU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ4YzJhMmFkY2FiYzZjMWIzZTUyMWEwNGIzNzg5MmNjXCI+aGFsX3RibV9ib19kZXZpY2VfdHlwZTxcL2E+IGRldmljZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWE3NzVmNzY3M2VmOTJlOWI1NTJiM2FkMGZiODgyOGE1XCI+Ym9fbWFwPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPiBkZXZpY2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNzZlZjE4OWMwMmMxMjZjZGEyZjFmMGRhMGZjOTZmODFcIj5oYWxfdGJtX2JvX2FjY2Vzc19vcHRpb248XC9hPiBvcHQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTRmMTNmNzgxOTNmNWNlZTRlZmYyZjA4N2RmZmRjNDk1XCI+Ym9fdW5tYXA8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTZlMjI3N2MxN2YxNTY0NDU2NTA3YTFmYmFjNmIzYTZkXCI+Ym9fbG9jazxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDhjMmEyYWRjYWJjNmMxYjNlNTIxYTA0YjM3ODkyY2NcIj5oYWxfdGJtX2JvX2RldmljZV90eXBlPFwvYT4gZGV2aWNlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTc2ZWYxODljMDJjMTI2Y2RhMmYxZjBkYTBmYzk2ZjgxXCI+aGFsX3RibV9ib19hY2Nlc3Nfb3B0aW9uPFwvYT4gb3B0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTc0ZDg4ZTk0MjBhZDBjYzUyYmJkNDQ0Mjk3NGYxYmIxXCI+Ym9fdW5sb2NrPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibyk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FiM2FkMTVmNjZkMjllZmQ5MjliZjk3ZDUzNGRjYzBjOFwiPmJvX2V4cG9ydF9mZDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzMmNlYTI4YWNmYmRkMDY1NTcwYjAzNmIzODAxN2IyNFwiPmhhbF90Ym1fa2V5PFwvYT4oKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FkZjcwNWU2MzZkYTAyOWU5YTI0ZTcxZWRiZWIyZWQ0Y1wiPmJvX2V4cG9ydF9rZXk8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tM1wiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhYjNhZDE1ZjY2ZDI5ZWZkOTI5YmY5N2Q1MzRkY2MwYzhcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZXhwb3J0X2ZkPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FeHBvcnQgZmlsZSBkZXNjcmlwdG9yIHVzZWQgYnkgdGhlIGJ1ZmZlciBvYmplY3Q8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzMmNlYTI4YWNmYmRkMDY1NTcwYjAzNmIzODAxN2IyNFwiPmhhbF90Ym1fa2V5PFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhZGY3MDVlNjM2ZGEwMjllOWEyNGU3MWVkYmViMmVkNGNcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZXhwb3J0X2tleTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RXhwb3J0IHRibV9rZXkgdXNlZCBieSB0aGUgYnVmZmVyIG9iamVjdDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWIzZTk5NTU5ZWE2Y2YzMWRlYWJlNjkwNDQwYjg5MTEyXCI+X2hhbF90Ym1fYm9fZnVuY3M6OmJvX2ZyZWU8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnJlZSB0aGUgYnVmZmVyIG9iamVjdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjODE4Y2I1N2EyOTJiZTM3ODExYWY4ZGVjM2NiZjQ2YVwiPmhhbF90Ym1fYm9faGFuZGxlPFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhOWZhZWFkNGQwMzRiMjYwNTBkMzE5MDhiMjUwNGY2MDVcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZ2V0X2hhbmRsZTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPiBkZXZpY2UsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOTBjMmRhMjBiMjU4YTJjYTkzYTQ2MGQ5ZTgwZWEzZjlcIj5oYWxfdGJtX2Vycm9yPFwvYT4gKmVycm9yKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgaGFuZGxlIG9mIFRCTSBidWZmZXIgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgZGV2aWNlIHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT4oKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhZGRkOTM0YTNlZjQ1ZDFiODVlNWVhZTQyNTMyOTE3ZTVcIj5faGFsX3RibV9ib19mdW5jczo6Ym9fZ2V0X21lbW9yeV90eXBlczxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBtZW1vcnkgdHlwZSBvZiBidWZmZXIgb2JqZWN0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjMGU5MjJhZjBkYTQzNTJiYjBiY2UzZGRjNGNkOTc4NFwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib19nZXRfc2l6ZTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+ICpibywgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPiAqZXJyb3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBzaXplIG9mIGEgYnVmZmVyIG9iamVjdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E2ZTIyNzdjMTdmMTU2NDQ1NjUwN2ExZmJhYzZiM2E2ZFwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib19sb2NrPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ4YzJhMmFkY2FiYzZjMWIzZTUyMWEwNGIzNzg5MmNjXCI+aGFsX3RibV9ib19kZXZpY2VfdHlwZTxcL2E+IGRldmljZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3NmVmMTg5YzAyYzEyNmNkYTJmMWYwZGEwZmM5NmY4MVwiPmhhbF90Ym1fYm9fYWNjZXNzX29wdGlvbjxcL2E+IG9wdCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Mb2NrIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FhNzc1Zjc2NzNlZjkyZTliNTUyYjNhZDBmYjg4MjhhNVwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib19tYXA8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8sIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDhjMmEyYWRjYWJjNmMxYjNlNTIxYTA0YjM3ODkyY2NcIj5oYWxfdGJtX2JvX2RldmljZV90eXBlPFwvYT4gZGV2aWNlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTc2ZWYxODljMDJjMTI2Y2RhMmYxZjBkYTBmYzk2ZjgxXCI+aGFsX3RibV9ib19hY2Nlc3Nfb3B0aW9uPFwvYT4gb3B0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+ICplcnJvcik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXAgdGhlIGJ1ZmZlciBvYmplY3QgYWNjb3JkaW5nIHRvIHRoZSBkZXZpY2UgdHlwZSBhbmQgdGhlIG9wdGlvbi48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E5MGMyZGEyMGIyNThhMmNhOTNhNDYwZDllODBlYTNmOVwiPmhhbF90Ym1fZXJyb3I8XC9hPigqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E3NGQ4OGU5NDIwYWQwY2M1MmJiZDQ0NDI5NzRmMWJiMVwiPl9oYWxfdGJtX2JvX2Z1bmNzOjpib191bmxvY2s8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E1OTZkYTVhYTUzNTFlMjk4ZjU0MDk4MjhlZWEwMmFhZFwiPmhhbF90Ym1fYm88XC9hPiAqYm8pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW5sb2NrIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTRmMTNmNzgxOTNmNWNlZTRlZmYyZjA4N2RmZmRjNDk1XCI+X2hhbF90Ym1fYm9fZnVuY3M6OmJvX3VubWFwPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNTk2ZGE1YWE1MzUxZTI5OGY1NDA5ODI4ZWVhMDJhYWRcIj5oYWxfdGJtX2JvPFwvYT4gKmJvKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVubWFwIHRoZSBidWZmZXIgb2JqZWN0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBidWZmZXIgZGF0YSBvZiBoYWxfdGJtX3N1cmZhY2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjMGIwNmU0OThlMzc1YjcyMGI1ZDQwNDUxMDcwOWQ3MFwiPmZkczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51bnNpZ25lZCBpbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMjZjN2E4ZjJlZjQ2ZWRiZWM0ZTc3NjNiMzczZmZjOGJcIj5udW1fZmRzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTUzYzg2MzUyODAwNzNmZmNmMDJmODcwMjc5N2FkZTg4XCI+bWV0YV9kYXRhPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVuc2lnbmVkIGludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FmZjcyNjY3N2M4ZDBlYjc3M2RjZDVkOWYyMTIzNDM0MVwiPm51bV9tZXRhX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dm9pZCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYTdmYzYzNDY0MWI5MTUyNmM1ZWJiMjVhNjJiMmE5MTNhXCI+cmVzZXJ2ZWQxPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FlMzZlNDA3MjMzNTdkNmZmMTU0YWI1OGJmY2JkMDhjZlwiPnJlc2VydmVkMjxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTRcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FjMGIwNmU0OThlMzc1YjcyMGI1ZDQwNDUxMDcwOWQ3MFwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6OmZkczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+YW4gYXJyYXkgb2YgZG1hYnVmIGZkczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E1M2M4NjM1MjgwMDczZmZjZjAyZjg3MDI3OTdhZGU4OFwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6Om1ldGFfZGF0YTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+YW4gYXJyYXkgb2YgbWV0YSBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVuc2lnbmVkIGludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNhMjZjN2E4ZjJlZjQ2ZWRiZWM0ZTc3NjNiMzczZmZjOGJcIj5faGFsX3RibV9zdXJmYWNlX2J1ZmZlcl9kYXRhOjpudW1fZmRzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD50aGUgbnVtYmVyIG9mIGRtYWJ1ZiBmZHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dW5zaWduZWQgaW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2FmZjcyNjY3N2M4ZDBlYjc3M2RjZDVkOWYyMTIzNDM0MVwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6Om51bV9tZXRhX2RhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPnRoZSBudW1iZXIgb2YgbWV0YSBkYXRhPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2E3ZmM2MzQ2NDFiOTE1MjZjNWViYjI1YTYyYjJhOTEzYVwiPl9oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE6OnJlc2VydmVkMTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+cmVzZXJ2ZWQgZGF0YTE8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjYWUzNmU0MDcyMzM1N2Q2ZmYxNTRhYjU4YmZjYmQwOGNmXCI+X2hhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTo6cmVzZXJ2ZWQyPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5yZXNlcnZlZCBkYXRhMjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bmlvbiBfaGFsX3RibV9ib19oYW5kbGU8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5oYWxfdGJtX2JvX2hhbmRsZSBhYnN0cmFjdGlvbiBvZiB0aGUgbWVtb3J5IGhhbmRsZSBieSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQ4YzJhMmFkY2FiYzZjMWIzZTUyMWEwNGIzNzg5MmNjXCIgdGl0bGU9XCJEZWZpbml0aW9uIGZvciB0aGUgZGV2aWNlIHR5cGUgdG8gYWNjZXNzIGhhbF90Ym1fYm8uXCI+aGFsX3RibV9ib19kZXZpY2VfdHlwZTxcL2E+PFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5EZWZpbmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMjM1YTUzNGI5NDRhY2JkYmFkNTU0ZmU5OGNlYzAyXCI+SEFMX1RCTV9GT1JNQVRfQUJHUjE1NTU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdCJywgJzEnLCAnNScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSMTU1NSAoWzE1OjBdIEE6QjpHOlIgMTo1OjU6NSBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlMTQ0M2VhNjZmMzM0OTZhYjVjYWNjMzA1ZTg2NzE0OVwiPkhBTF9UQk1fRk9STUFUX0FCR1IyMTAxMDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnQicsICczJywgJzAnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQUJHUjIxMDEwMTAgKFszMTowXSBBOkI6RzpSIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDdmMmEyMmFmNTkxODc5NjY0NGJiMTk3MTY2ZWUwYmNcIj5IQUxfVEJNX0ZPUk1BVF9BQkdSNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ0InLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFCR1I0NDQ0IChbMTU6MF0gQTpCOkc6UiA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYThlNmZmYzE4YzJkZGJmM2M4MTM5OGMxN2RmNDdlZjFlXCI+SEFMX1RCTV9GT1JNQVRfQUJHUjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdCJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBQkdSODg4OCAoWzMxOjBdIFszMTowXSBBOkI6RzpSIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFiMTU5NTU5YThlZTNjNjhiZDRhMWZmZmRiN2FhMWZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMScsICc1Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFSR0IxNTU1IChbMTU6MF0gQTpSOkc6QiAxOjU6NTo1IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTllZDExNzZjYzhmMmY3Njg4ZDA4YzU2MmJmYjA0M2FmXCI+SEFMX1RCTV9GT1JNQVRfQVJHQjIxMDEwMTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQScsICdSJywgJzMnLCAnMCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBBUkdCMjEwMTAxMCAoWzMxOjBdIEE6UjpHOkIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzOGYzYzQxZWFkNzc2ZGUyOTYyNzM2ZjZkY2VlOTY5NFwiPkhBTF9UQk1fRk9STUFUX0FSR0I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0EnLCAnUicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQVJHQjQ0NDQgKFsxNTowXSBBOlI6RzpCIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTIwNjg0OTMyY2YzNTU2ZGZhNDBkZDRkMzMxMTY3NGZcIj5IQUxfVEJNX0ZPUk1BVF9BUkdCODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1InLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFSR0I4ODg4IChbMzE6MF0gQTpSOkc6QiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTAyZDA0NDUwOWM4M2Y2Mjg0MzE4MGQzNTJmM2NlNTk3XCI+SEFMX1RCTV9GT1JNQVRfQVlVVjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdBJywgJ1knLCAnVScsICdWJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEFZVVYgKFszMTowXSBBOlk6Q2I6Q3IgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E4NzBhODk5OTk2YTlhMDdmNzQ0MWE2YTcwZjE3MjVmZVwiPkhBTF9UQk1fRk9STUFUX0JHUjIzMzxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0cnLCAnUicsICc4Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjIzMyAoWzc6MF0gQjpHOlIgMjozOjMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWI1OTkwNDAzYWNlZjJlYjM5YTM4MTQ4ODM0OGYxZWZlXCI+SEFMX1RCTV9GT1JNQVRfQkdSNTY1PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnRycsICcxJywgJzYnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSNTY1IChbMTU6MF0gQjpHOlIgNTo2OjUgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMmZlNTgzNTdhZWEyZTIxYzc3ZTg3Y2E1NGIwMmY3N2ZcIj5IQUxfVEJNX0ZPUk1BVF9CR1I4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdHJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1I4ODggKFsyMzowXSBCOkc6UiBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E4ZWIzOTk5ZjYxMTI3ODI5MmQ3NmQ5ZGU1YzBhNjc2MlwiPkhBTF9UQk1fRk9STUFUX0JHUkExMDEwMTAyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICczJywgJzAnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTEwMTAxMDIgKFszMTowXSBCOkc6UjpBIDEwOjEwOjEwOjIgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDBkYzQwOTNiMjYyNDRlNzhkYjhmY2ZkZjgyZGYyZTlcIj5IQUxfVEJNX0ZPUk1BVF9CR1JBNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ0EnLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUkE0NDQ0IChbMTU6MF0gQjpHOlI6QSA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWMyZTkwZGY2MGZiMDMwMzg1NTQ2NmNjYjg3YjZlZTc3XCI+SEFMX1RCTV9GT1JNQVRfQkdSQTU1NTE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdBJywgJzEnLCAnNScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JBNTU1MSAoWzE1OjBdIEI6RzpSOkEgNTo1OjU6MSBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FlNGJhZDMwMzA0NDc3NGU3OGE2MjMwMjhjNzM0OTdjNFwiPkhBTF9UQk1fRk9STUFUX0JHUkE4ODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnQScsICcyJywgJzQnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSQTg4ODggKFszMTowXSBCOkc6UjpBIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWZlMDZmYjdmYTVkZGNmMGIzMWYxZDg5MGE2MWU3ZGRcIj5IQUxfVEJNX0ZPUk1BVF9CR1JYMTAxMDEwMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ1gnLCAnMycsICcwJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlgxMDEwMTAyIChbMzE6MF0gQjpHOlI6eCAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWJmMmI2NDRhMTllMWZiOTFiOWJkZDYxYjA3MGUwZWU5XCI+SEFMX1RCTV9GT1JNQVRfQkdSWDQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQicsICdYJywgJzEnLCAnMicpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBCR1JYNDQ0NCAoWzE1OjBdIEI6RzpSOnggNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhODJjNzgzODhmZjQ4ZWIyNTNkNjQ2NDU1YjY1YjVkZlwiPkhBTF9UQk1fRk9STUFUX0JHUlg1NTUxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ0InLCAnWCcsICcxJywgJzUnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgQkdSWDU1NTEgKFsxNTowXSBCOkc6Ujp4IDU6NTo1OjEgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZWM5YjNiNTNmMWRjZmVhMjJlYWJiZTNmYjliMGMzNTJcIj5IQUxfVEJNX0ZPUk1BVF9CR1JYODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdCJywgJ1gnLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IEJHUlg4ODg4IChbMzE6MF0gQjpHOlI6eCA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWNlYWM1MGEyYjI5YmY4MjE1YjgxYTgyY2I0YzcyNGNlXCI+SEFMX1RCTV9GT1JNQVRfQzg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnQycsICc4JywgJyAnLCAnICcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBDOCAoWzc6MF0gQykuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDYzZTc3OWFlZjZmZGM3ZmQyM2FkN2U2ODAwYmMzYTJcIj5IQUxfVEJNX0ZPUk1BVF9OVjEyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ04nLCAnVicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxMiAoMngyIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTYwODI0OGE3OTFiMTRjMTgwZWQxNjNhZTgwZTZmZWRhXCI+SEFMX1RCTV9GT1JNQVRfTlYxMk1UPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1QnLCAnTScsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxMk1UICh0aWxlZCAnNjR4MzInICZhbXA7IG11bHRpLXBsYW5lIHZlcnNpb24gb2YgTlYxMikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNjViM2U1MjRlNzYyYTg3NjA2ZjdkMjE4OWNjY2JhZTNcIj5IQUxfVEJNX0ZPUk1BVF9OVjE2PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ04nLCAnVicsICcxJywgJzYnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgTlYxNiAoMngxIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWI4ZmNhMDhjMGM3ZmU1MjQyN2IyZjkzMjYyNTRiZjk5XCI+SEFMX1RCTV9GT1JNQVRfTlYyMTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdOJywgJ1YnLCAnMicsICcxJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IE5WMjEgKDJ4MiBzdWJzYW1wbGVkIENiOkNyIHBsYW5lKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3ZWUxZmY1OTI1YmJiNjRkOGJhZjNkYzJkMGFhZDYwYlwiPkhBTF9UQk1fRk9STUFUX05WNjE8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnTicsICdWJywgJzYnLCAnMScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBOVjYxICgyeDEgc3Vic2FtcGxlZCBDYjpDciBwbGFuZSkuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjUxMWI1ZjRmNzRjODhkZDYyZDFlY2NkZTI2MTljNmVcIj5IQUxfVEJNX0ZPUk1BVF9SR0IzMzI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdHJywgJ0InLCAnOCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0IzMjIgKFs3OjBdIFI6RzpCIDM6MzoyKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwYmJlMjE5OTM2MzZlMTYwYzc4N2QxMTA0MjU0OTViMFwiPkhBTF9UQk1fRk9STUFUX1JHQjU2NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0cnLCAnMScsICc2Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQjU2NSAoWzE1OjBdIFI6RzpCIDU6Njo1IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTdhZWIwMDM2NTY0YTE5OGI2YTExYTU0MDRjMDE3ZTAzXCI+SEFMX1RCTV9GT1JNQVRfUkdCODg4PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnRycsICcyJywgJzQnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCODg4IChbMjM6MF0gUjpHOkIgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZDU5ZDZlNzE5YTNiODYxOTZkYjRiODg2OTI2OGIyMDhcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBMTAxMDEwMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMycsICcwJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkExMDEwMTAyIChbMzE6MF0gUjpHOkI6QSAxMDoxMDoxMDoyIGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWUxNzZmMWIyMDNkNzFkNjU1NDE3ZWMwZTMxNTIwODQwXCI+SEFMX1RCTV9GT1JNQVRfUkdCQTQ0NDQ8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdBJywgJzEnLCAnMicpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JBNDQ0NCAoWzE1OjBdIFI6RzpCOkEgNDo0OjQ6NCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EyZTQ2MGJmMDEzYmQwZjUzZTIxZjVhMjYzMjVmY2I0MFwiPkhBTF9UQk1fRk9STUFUX1JHQkE1NTUxPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnQScsICcxJywgJzUnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCQTU1NTEgKFsxNTowXSBSOkc6QjpBIDU6NTo1OjEgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTNkYTIyNTk1ZjdlMjU3NWQxNzBiN2VhNzlmNmVkYWFcIj5IQUxfVEJNX0ZPUk1BVF9SR0JBODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ0EnLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQkE4ODg4IChbMzE6MF0gUjpHOkI6QSA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTM0MDg0MjEyNzU2ZjA4NjgxZWMxYjIwNjE3ZWM1Mjk1XCI+SEFMX1RCTV9GT1JNQVRfUkdCWDEwMTAxMDI8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdYJywgJzMnLCAnMCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYMTAxMDEwMiAoWzMxOjBdIFI6RzpCOnggMTA6MTA6MTA6MiBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0ZDU4MGJmNmI3ZWY3ZGNkYWM0NWYxNzNkNjkzY2IzNlwiPkhBTF9UQk1fRk9STUFUX1JHQlg0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1InLCAnWCcsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgUkdCWDQ0NDQgKFsxNTowXSBSOkc6Qjp4IDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYTYxNDkyNTUxMTY0NzMwMjM1NjYwZjNmYjQ0YmQwNDJcIj5IQUxfVEJNX0ZPUk1BVF9SR0JYNTU1MTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdSJywgJ1gnLCAnMScsICc1Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFJHQlg1NTUxIChbMTU6MF0gUjpHOkI6eCA1OjU6NToxIGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTQxZWEwYmUxYmU5Y2U4NTdkYzM4MWNkMjAwMjJlY2UyXCI+SEFMX1RCTV9GT1JNQVRfUkdCWDg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnUicsICdYJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBSR0JYODg4OCAoWzMxOjBdIFI6RzpCOnggODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwZjVlMjE0NTJmOWY3MGI2ZDllYTAyOWNmN2FiMjk1N1wiPkhBTF9UQk1fRk9STUFUX1VZVlk8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnVScsICdZJywgJ1YnLCAnWScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBVWVZZIChbMzE6MF0gWTE6Q3IwOlkwOkNiMCA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWU2YTcxYTMxZTJlM2YyZTMzYjkwNDk1ZGUyZTVhODU4XCI+SEFMX1RCTV9GT1JNQVRfVllVWTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdWJywgJ1knLCAnVScsICdZJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFZZVVkgKFszMTowXSBZMTpDYjA6WTA6Q3IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNzkyMjg1YjNkYmE1YTI4MGY1NWY2OWY5YTI4MDE5NThcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSMTU1NTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMScsICc1Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhCR1IxNTU1IChbMTU6MF0geDpCOkc6UiAxOjU6NTo1IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWMyZjRhOGY4YjBkYmM1OGI1OTkxMTZiNmYzZDM1NGE1XCI+SEFMX1RCTV9GT1JNQVRfWEJHUjIxMDEwMTA8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdCJywgJzMnLCAnMCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYQkdSMjEwMTAxMCAoWzMxOjBdIHg6QjpHOlIgMjoxMDoxMDoxMCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTBkZWE2YzgxMGRlZTAyOTJiZDY5MWQ5YjhiNTc4MFwiPkhBTF9UQk1fRk9STUFUX1hCR1I0NDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnQicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWEJSRzQ0NDQgKFsxNTowXSB4OkI6RzpSIDQ6NDo0OjQgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhZmQ1NjMyZmIzMzFhNzFlYTBiMDIxZmFmODBlMGY5ZTNcIj5IQUxfVEJNX0ZPUk1BVF9YQkdSODg4ODxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ0InLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhCR1I4ODg4IChbMzE6MF0geDpCOkc6UiA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTE2NGE2MzU5ZTZkYmQyYjdkZDU2N2FkZmMwZDQ4N2ZmXCI+SEFMX1RCTV9GT1JNQVRfWFJHQjE1NTU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzEnLCAnNScpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYUkdCMTU1NSAoWzE1OjBdIHg6UjpHOkIgMTo1OjU6NSBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E2YTEzYTlkZjNkOTA2MTBhZThjZGJhM2NmNDFlODNiNlwiPkhBTF9UQk1fRk9STUFUX1hSR0IyMTAxMDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1gnLCAnUicsICczJywgJzAnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWFJHQjIxMDEwMTAgKFszMTowXSB4OlI6RzpCIDI6MTA6MTA6MTAgbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhY2U2MWI3ZjRlODdiZDEwNzA0NTFlYTYyNjE0YjZlN2ZcIj5IQUxfVEJNX0ZPUk1BVF9YUkdCNDQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdYJywgJ1InLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFhSR0I0NDQ0IChbMTU6MF0geDpSOkc6QiA0OjQ6NDo0IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTc0ZDM5MGQ4NjA2MTllNjk2YzU2MGI0YmYzZDRkODhjXCI+SEFMX1RCTV9GT1JNQVRfWFJHQjg4ODg8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWCcsICdSJywgJzInLCAnNCcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBYUkdCODg4OCAoWzMxOjBdIHg6UjpHOkIgODo4Ojg6OCBsaXR0bGUgZW5kaWFuKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EwZmIzYzMzNDE4NTQ0NmNhYjVhMmM3YWMzNjA5MTZmNFwiPkhBTF9UQk1fRk9STUFUX1lVVjQxMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnVicsICc5Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQxMCAoNHg0IHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FjMTM2Yzk4NDk4Y2FiZDQ2MmQ4NGVhMzIxNWRhODg1ZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQxMTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICcxJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQxMSAoNHgxIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhYmE5N2ZjZmQ5YmNlMjlhMzk0NWU4ZWQyMWUzYTRhYlwiPkhBTF9UQk1fRk9STUFUX1lVVjQyMDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICcyJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQyMCAoMngyIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiYzg3MTM2MjI4YWQ1OGI1NzQ2ZmZlZTgwYTkxOGI1ZlwiPkhBTF9UQk1fRk9STUFUX1lVVjQyMjxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMScsICc2Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQyMiAoMngxIHN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FiYzZlY2QzNWU4NGE0NjMzN2IwNjE1M2M1Yzg3NDFiZVwiPkhBTF9UQk1fRk9STUFUX1lVVjQ0NDxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMicsICc0Jyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlVVjQ0NCAobm9uLXN1YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FhYTY2MGNlOTI1MDczMWVjMDRmOTBhMTE0MmU3Njg2NVwiPkhBTF9UQk1fRk9STUFUX1lVWVY8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMF9faGFsX3RibV9mb3VyY2NfY29kZSgnWScsICdVJywgJ1knLCAnVicpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRCTSBzdXJmYWNlIGZvcm1hdCBZVVlWIChbMzE6MF0gQ3IwOlkxOkNiMDpZMCA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4pLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWNiYzFiOTE0NmFjZTk1NjMzN2QwNzljZGJmOWViNDhiXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDEwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICdVJywgJzknKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDEwICg0eDQgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFlODRlYTZhYThhMWVlNDAxYTZiZmYzODgxNDIwNjZlXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDExPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzEnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDExICg0eDEgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVlZDFjZDhlZWM3OGNhOTgxMTY0ZjJiZDA2MTljMzA1XCI+SEFMX1RCTV9GT1JNQVRfWVZVNDIwPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzInKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDIwICgyeDIgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWE5YjZiNDMyZDQ0Nzk0MWY2YmZlNTVmNmVhM2RkODYyXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDIyPFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcxJywgJzYnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDIyICgyeDEgc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTgyNDI4NGUzMzlhY2MwMjMwZjMyYTMyN2VjMDBiZGYxXCI+SEFMX1RCTV9GT1JNQVRfWVZVNDQ0PFwvYT5cdTAwYTBcdTAwYTBcdTAwYTBfX2hhbF90Ym1fZm91cmNjX2NvZGUoJ1knLCAnVicsICcyJywgJzQnKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBUQk0gc3VyZmFjZSBmb3JtYXQgWVZVNDQ0IChub24tc3Vic2FtcGxlZCBDciAoMSkgYW5kIENiICgyKSBwbGFuZXMpLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTY2ZGY3NmZiYTYyNTM0NjBmNWNhNjIyZGZlMTFiYTExXCI+SEFMX1RCTV9GT1JNQVRfWVZZVTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwX19oYWxfdGJtX2ZvdXJjY19jb2RlKCdZJywgJ1YnLCAnWScsICdVJyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgVEJNIHN1cmZhY2UgZm9ybWF0IFlWWVUgKFszMTowXSBDYjA6WTE6Q3IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbikuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LXR5cGVkZWYtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2ExYjQxNDcxOTQxN2FhNTM4ODQ2OGQxZTU0OWQxY2I2MVwiPmhhbF90Ym1fYXV0aGVudGljYXRlZF9kcm1fZmRfaGFuZGxlcjxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWFjZWVjMjE5ZmRjYjJhYWMyMDc0N2IxNDFjMTZiYTM2XCI+aGFsX3RibV9mZDxcL2E+IGF1dGhfZmQsIHZvaWQgKnVzZXJfZGF0YSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB3aGVuIGRybSBmaWxlIGRlc2NyaXB0b3IgaXMgYXV0aGVybnRpY2F0ZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48cD48c3Ryb25nPlBhcmFtZXRlcnM6PFwvc3Ryb25nPlxuOiAgIHwgW2luXSB8IGF1dGhfZmQgfCBhdXRoZXJudGljYXRlZCBkcm0gZmlsZSBkZXNjcmlwdG9yLiB8XG58IC0tLSB8IC0tLSB8IC0tLSB8XG58IFtpbl0gfCB1c2VyX2RhdGEgfCBUaGUgdXNlciBkYXRhIGZvciBoYW5kbGVyLiB8PFwvcD5cbjxwPjxzdHJvbmc+UHJlY29uZGl0aW9uOjxcL3N0cm9uZz5cbjogICBoYWxfdGJtX2JhY2tlbmRfc2V0X2F1dGhlbnRpY2F0ZWRfZHJtX2ZkKCkgd2lsbCBpbnZva2UgdGhpcyBoYW5kbGVyLjxcL3A+XG48cD48c3Ryb25nPlNlZSBhbHNvOjxcL3N0cm9uZz5cbjogICBoYWxfdGJtX2JhY2tlbmRfc2V0X2F1dGhlbnRpY2F0ZWRfZHJtX2ZkKCkuXG46ICAgaGFsX3RibV9iYWNrZW5kX2dldF9tYXN0ZXJfZHJtX2ZkKCkuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTFkYTA3Y2JhMmJkMmJhYjIwZDdmNzEzZjEyZjBhNzI5XCI+aGFsX3RibV9iYWNrZW5kPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciBoYWxfdGJtX2JhY2tlbmQgaGFuZGxlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYmFja2VuZF9fZGF0YVwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMDU4YjJlOTEzNDNhZDgxZWQ5NDhhYjhmYWE0Nzk3M2FcIj5oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSB0Ym0gYmFja2VuZCBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYmFja2VuZF9fZGF0YVwiIHRpdGxlPVwiVGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSB0Ym0gYmFja2VuZCBkYXRhLlwiPl9oYWxfdGJtX2JhY2tlbmRfZGF0YTxcL2E+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTU5NmRhNWFhNTM1MWUyOThmNTQwOTgyOGVlYTAyYWFkXCI+aGFsX3RibV9ibzxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIGJ1ZmZlciBvYmplY3QuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fdGJtX19ib19fZnVuY3NcIj5faGFsX3RibV9ib19mdW5jczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDFlNjRjOTJmNDhjNmQ1NzM2ZTgzMzJlY2E1NjU3ZTBcIj5oYWxfdGJtX2JvX2Z1bmNzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgb2JqZWN0IGZ1bmN0aW9ucyBvZiBiYWNrZW5kLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYm9fX2Z1bmNzXCIgdGl0bGU9XCJUaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBidWZmZXIgb2JqZWN0IGZ1bmN0aW9ucyBvZiBiYWNrZW5kLlwiPl9oYWxfdGJtX2JvX2Z1bmNzPFwvYT48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiB1bmlvbiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCN1bmlvbl9faGFsX190Ym1fX2JvX19oYW5kbGVcIj5faGFsX3RibV9ib19oYW5kbGU8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWM4MThjYjU3YTI5MmJlMzc4MTFhZjhkZWMzY2JmNDZhXCI+aGFsX3RibV9ib19oYW5kbGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPmhhbF90Ym1fYm9faGFuZGxlIGFic3RyYWN0aW9uIG9mIHRoZSBtZW1vcnkgaGFuZGxlIGJ5IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDhjMmEyYWRjYWJjNmMxYjNlNTIxYTA0YjM3ODkyY2NcIiB0aXRsZT1cIkRlZmluaXRpb24gZm9yIHRoZSBkZXZpY2UgdHlwZSB0byBhY2Nlc3MgaGFsX3RibV9iby5cIj5oYWxfdGJtX2JvX2RldmljZV90eXBlPFwvYT48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVhMTgyN2ViNDE4NTUyZjMzY2I2MmZiYTc2MmQyZDE2XCI+aGFsX3RibV9idWZtZ3I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIGhhbF90Ym1fYnVmbWdyIGhhbmRsZSBjcmVhdGVkIGJ5IGhhbCB0Ym0gYmFja2VuZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI3N0cnVjdF9faGFsX190Ym1fX2J1Zm1ncl9fZnVuY3NcIj5faGFsX3RibV9idWZtZ3JfZnVuY3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYWI1MWMxMWRlNzg1MzkwZmNhNjg3Yjc4ZmRhYzA0Mzk2XCI+aGFsX3RibV9idWZtZ3JfZnVuY3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIGJ1ZmZlciBtYW5hZ2VtZW50IGZ1bmN0aW9ucyBvZiBiYWNrZW5kLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fYnVmbWdyX19mdW5jc1wiIHRpdGxlPVwiVGhlIHN0cnVjdHVyZSB0eXBlIG9mIHRoZSBUQk0gSEFMJ3MgYnVmZmVyIG1hbmFnZW1lbnQgZnVuY3Rpb25zIG9mIGJhY2tlbmQuXCI+X2hhbF90Ym1fYnVmbWdyX2Z1bmNzPFwvYT48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYWNlZWMyMTlmZGNiMmFhYzIwNzQ3YjE0MWMxNmJhMzZcIj5oYWxfdGJtX2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBzeXN0ZW0gYnVmZmVyIG1hbmFnZXIuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhYjAyZjQzMDRjZjg0ZWVjMTM4MmIwMWI2NTlmYzE4YTNcIj5oYWxfdGJtX2Zvcm1hdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRpemVuIGJ1ZmZlciBzdXJmYWNlIGZvcm1hdC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2EzMmNlYTI4YWNmYmRkMDY1NTcwYjAzNmIzODAxN2IyNFwiPmhhbF90Ym1fa2V5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIGZvciB0aGUga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyIG9iamVjdC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkyZGI4OTFkZTM3MGM5NTExODhmZWY5MjBjMzdhOGYyXCI+aGFsX3RibV9uYXRpdmVfZGlzcGxheTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgbmF0aXZlIGRpc3BsYXkgKHdsX2Rpc3BsYXkgaW4gdGl6ZW4pPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHZvaWQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2FkNzc3Y2VmYTQ4MWZmZGQyNWNiYmY1ZWQ5MTQ0YmFhNlwiPmhhbF90Ym1fc3VyZmFjZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIHRpemVuIHN1cmZhY2Ugb2JqZWN0LjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fc3VyZmFjZV9fYnVmZmVyX19kYXRhXCI+X2hhbF90Ym1fc3VyZmFjZV9idWZmZXJfZGF0YTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNWE3OWNmMDVmYzYyYjAwMzI3YWU5ZWNkMzczMTM4YzNcIj5oYWxfdGJtX3N1cmZhY2VfYnVmZmVyX2RhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBidWZmZXIgZGF0YSBvZiBoYWxfdGJtX3N1cmZhY2UuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfVEJNIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fdGJtX19zdXJmYWNlX19mdW5jc1wiPl9oYWxfdGJtX3N1cmZhY2VfZnVuY3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTVjYzVkZDA5NTU4NmNjNmQ1YWU4Yjk2MjIzZDJjMTdlXCI+aGFsX3RibV9zdXJmYWNlX2Z1bmNzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaGUgc3RydWN0dXJlIHR5cGUgb2YgdGhlIFRCTSBIQUwncyBzdXJmYWNlIGZ1bmN0aW9ucyBvZiBiYWNrZW5kLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPHA+PHN0cm9uZz5TZWUgYWxzbzo8XC9zdHJvbmc+XG46ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjc3RydWN0X19oYWxfX3RibV9fc3VyZmFjZV9fZnVuY3NcIiB0aXRsZT1cIlRoZSBzdHJ1Y3R1cmUgdHlwZSBvZiB0aGUgVEJNIEhBTCdzIHN1cmZhY2UgZnVuY3Rpb25zIG9mIGJhY2tlbmQuXCI+X2hhbF90Ym1fc3VyZmFjZV9mdW5jczxcL2E+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IF9oYWxfdGJtX3N1cmZhY2UqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhOWJjMDlhZThmYmI2OTIxMjU3ZmY2Y2JkZWNhYWZlYTFcIj5oYWxfdGJtX3N1cmZhY2VfaDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIFRpemVuIGJ1ZmZlciBzdXJmYWNlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1RCTSAxLjA8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E3NmVmMTg5YzAyYzEyNmNkYTJmMWYwZGEwZmM5NmY4MVwiPmhhbF90Ym1fYm9fYWNjZXNzX29wdGlvbjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGVmaW5pdGlvbiBmb3IgdGhlIG9wdGlvbiB0byBhY2Nlc3MgaGFsX3RibV9iby48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9PUFRJT05fTk9ORTxcL2VtPiB8IFRoZSBvcHRpb24gaXMgbm9uZSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfVEJNX09QVElPTl9SRUFEPFwvZW0+IHwgVGhlIG9wdGlvbiB0byBhY2Nlc3MgdG8gcmVhZCB0aGUgYm8gfFxufCA8ZW0+SEFMX1RCTV9PUFRJT05fV1JJVEU8XC9lbT4gfCBUaGUgb3B0aW9uIHRvIGFjY2VzcyB0byB3cml0ZSB0aGUgYm8gfFxufCA8ZW0+SEFMX1RCTV9PUFRJT05fVkVORE9SPFwvZW0+IHwgVGhlIHRoZSB2ZW5kb3Igc3BlY2lmaWMgb3B0aW9uIHRoYXQgZGVwZW5kcyBvbiB0aGUgYmFja2VuZCB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUubWQjZ2E0OGMyYTJhZGNhYmM2YzFiM2U1MjFhMDRiMzc4OTJjY1wiPmhhbF90Ym1fYm9fZGV2aWNlX3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlZmluaXRpb24gZm9yIHRoZSBkZXZpY2UgdHlwZSB0byBhY2Nlc3MgaGFsX3RibV9iby48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9ERVZJQ0VfREVGQVVMVDxcL2VtPiB8IFRoZSBkZXZpY2UgdHlwZSB0byBnZXQgdGhlIGRlZmF1bHQgaGFuZGxlIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9UQk1fREVWSUNFX0NQVTxcL2VtPiB8IFRoZSBkZXZpY2UgdHlwZSB0byBnZXQgdGhlIHZpcnR1YWwgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fREVWSUNFXzJEPFwvZW0+IHwgVGhlIGRldmljZSB0eXBlIHRvIGdldCB0aGUgMkQgbWVtb3J5IGhhbmRsZSB8XG58IDxlbT5IQUxfVEJNX0RFVklDRV8zRDxcL2VtPiB8IFRoZSBkZXZpY2UgdHlwZSB0byBnZXQgdGhlIDNEIG1lbW9yeSBoYW5kbGUgfFxufCA8ZW0+SEFMX1RCTV9ERVZJQ0VfTU08XC9lbT4gfCBUaGUgZGV2aWNlIHR5cGUgdG8gZ2V0IHRoZSB0aGUgbXVsdGltZWRpYSBoYW5kbGUgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhNDRiN2E3NjM2MGJlMmMxNjQ1YzgyOTlhZThiZWRlYjVcIj5oYWxfdGJtX2JvX21lbW9yeV90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBvZiBibyBtZW1vcnkgdHlwZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9CT19ERUZBVUxUPFwvZW0+IHwgRGVmYXVsdCBtZW1vcnk6IGl0IGRlcGVuZHMgb24gdGhlIGJhY2tlbmQgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+SEFMX1RCTV9CT19TQ0FOT1VUPFwvZW0+IHwgU2Nhbm91dCBtZW1vcnkgfFxufCA8ZW0+SEFMX1RCTV9CT19OT05DQUNIQUJMRTxcL2VtPiB8IE5vbi1jYWNoZWFibGUgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fQk9fV0M8XC9lbT4gfCBXcml0ZS1jb21iaW5lIG1lbW9yeSB8XG58IDxlbT5IQUxfVEJNX0JPX1RJTEVEPFwvZW0+IHwgVGlsZWQgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fQk9fUFJPVEVDVEVEPFwvZW0+IHwgUHJvdGVjdGVkIG1lbW9yeSAoU2luY2UgMS4xKSB8XG58IDxlbT5IQUxfVEJNX0JPX1ZFTkRPUjxcL2VtPiB8IFZlbmRvciBzcGVjaWZpYyBtZW1vcnk6IGl0IGRlcGVuZHMgb24gdGhlIGJhY2tlbmQgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1RCTV9fTU9EVUxFLm1kI2dhMGIxMjdkNmYyYzIxM2Y3YmQ4MjVlNGI3NmE5MGZlYTZcIj5oYWxfdGJtX2J1Zm1ncl9jYXBhYmlsaXR5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBvZiB0Ym0gYnVmZmVyIG1hbmFnZXIgY2FwYWJpbGl0eS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9CVUZNR1JfQ0FQQUJJTElUWV9OT05FPFwvZW0+IHwgTm90IFN1cHBvcnQgY2FwYWJpbGl0eSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfVEJNX0JVRk1HUl9DQVBBQklMSVRZX1NIQVJFX0tFWTxcL2VtPiB8IFN1cHBvcnQgc2hhcmluZyBidWZmZXIgYnkgdGJtIGtleSB8XG58IDxlbT5IQUxfVEJNX0JVRk1HUl9DQVBBQklMSVRZX1NIQVJFX0ZEPFwvZW0+IHwgU3VwcG9ydCBzaGFyaW5nIGJ1ZmZlciBieSB0Ym0gZmQgfFxufCA8ZW0+SEFMX1RCTV9CVUZNR1JfQ0FQQUJJTElUWV9UQk1fU1lOQzxcL2VtPiB8IFN1cHBvcnQgdGltZWxpbmUgc3luYyB8XG58IDxlbT5IQUxfVEJNX0JVRk1HUl9DQVBBQklMSVRZX1RJTEVEX01FTU9SWTxcL2VtPiB8IFN1cHBvcnQgdGlsZWQgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fQlVGTUdSX0NBUEFCSUxJVFlfU0hBUkVfU1VSRkFDRTxcL2VtPiB8IFN1cHBvcnQgc2hhcmluZyBzdXJmYWNlIGJ5IGJ1ZmZlciBkYXRhIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19UQk1fX01PRFVMRS5tZCNnYTkwYzJkYTIwYjI1OGEyY2E5M2E0NjBkOWU4MGVhM2Y5XCI+aGFsX3RibV9lcnJvcjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGhhbCB0Ym0gZXJyb3IgdHlwZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9UQk0gMS4wPFwvcD5cbjxwPkVycm9yJ3MgZW51bXVsYXRpb24gaGFzIGdyb3VwIHVzaW5nIG9mZnNldCAweDAxMDEuIEhBTF9UQk1fRVJST1JfWFhYLiBzdGFydCBmcm9tIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAwMDEpIHRvIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAwOTkpIEhBTF9UQk1fQk9fRVJST1JfWFhYLiBzdGFydCBmcm9tIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAxMDEpIHRvIChIQUxfVEJNX0VSUk9SX0JBU0UgfCAweDAxOTkpPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+SEFMX1RCTV9FUlJPUl9OT05FPFwvZW0+IHwgU3VjY2Vzc2Z1bCB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfVEJNX0VSUk9SX09VVF9PRl9NRU1PUlk8XC9lbT4gfCBPdXQgb2YgbWVtb3J5IHxcbnwgPGVtPkhBTF9UQk1fRVJST1JfSU5WQUxJRF9QQVJBTUVURVI8XC9lbT4gfCBJbnZhbGlkIGZ1bmN0aW9uIHBhcmFtZXRlciB8XG58IDxlbT5IQUxfVEJNX0VSUk9SX0lOVkFMSURfT1BFUkFUSU9OPFwvZW0+IHwgRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIHxcbnwgPGVtPkhBTF9UQk1fRVJST1JfTk9UX1NVUFBPUlRFRDxcL2VtPiB8IE5vdCBzdXBwb3J0ZWQgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9HRVRfRkRfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGdldCBmZCBpbiBibyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwMVwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0hFQVBfQUxMT0NfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGFsbG9jYXRlIHRoZSBoZWFwIG1lbW9yeSBpbiBibyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwMlwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0xPQURfTU9EVUxFX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBsb2FkIG1vZHVsZSAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwM1wiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX1RIUkVBRF9JTklUX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBwdGhyZWFkICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDA0XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfQk9fQUxMT0NfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGFsbG9jYXRlIGhhbF90Ym1fYm8gIDxzdHJvbmc+PGEgaHJlZj1cImRlcHJlY2F0ZWQubWQjX2RlcHJlY2F0ZWQwMDAwMDVcIj5EZXByZWNhdGVkOjxcL2E+PFwvc3Ryb25nPiAgRGVwcmVjYXRlZCBzaW5jZSBIQUxfTU9EVUxFX1RCTSAxLjAgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9JTklUX1NUQVRFX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBzdGF0ZSBvZiBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDA2XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfSU1QT1JUX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbXBvcnQgdGhlIGhhbmRsZSBvZiBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDA3XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfSU1QT1JUX0ZEX0ZBSUxFRDxcL2VtPiB8IEZhaWxlZCB0byBpbXBvcnQgZmQgb2YgaGFsX3RibV9ibyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAwOFwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0VYUE9SVF9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gZXhwb3J0IHRoZSBoYW5kbGUgb2YgdGhlIGhhbF90Ym1fYm8gIDxzdHJvbmc+PGEgaHJlZj1cImRlcHJlY2F0ZWQubWQjX2RlcHJlY2F0ZWQwMDAwMDlcIj5EZXByZWNhdGVkOjxcL2E+PFwvc3Ryb25nPiAgRGVwcmVjYXRlZCBzaW5jZSBIQUxfTU9EVUxFX1RCTSAxLjAgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9FWFBPUlRfRkRfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGV4cG9ydCBmZCBvZiBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDEwXCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfR0VUX0hBTkRMRV9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gZ2V0IHRoZSBoYWxfdGJtX2JvX2hhbmRsZSAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAxMVwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0xPQ0tfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIGxvY2sgdGhlIGhhbF90Ym1fYm8gIDxzdHJvbmc+PGEgaHJlZj1cImRlcHJlY2F0ZWQubWQjX2RlcHJlY2F0ZWQwMDAwMTJcIj5EZXByZWNhdGVkOjxcL2E+PFwvc3Ryb25nPiAgRGVwcmVjYXRlZCBzaW5jZSBIQUxfTU9EVUxFX1RCTSAxLjAgfFxufCA8ZW0+SEFMX1RCTV9CT19FUlJPUl9NQVBfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIG1hcCB0aGUgaGFsX3RibV9ibyB0byBnZXQgdGhlIGhhbF90Ym1fYm9faGFuZGxlICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDEzXCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfVU5NQVBfRkFJTEVEPFwvZW0+IHwgRmFpbGVkIHRvIHVubWFwIHRoZSBoYWxfdGJtX2JvICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDE0XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHxcbnwgPGVtPkhBTF9UQk1fQk9fRVJST1JfU1dBUF9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gc3dhcCB0aGUgdGJtX2JvcyAgPHN0cm9uZz48YSBocmVmPVwiZGVwcmVjYXRlZC5tZCNfZGVwcmVjYXRlZDAwMDAxNVwiPkRlcHJlY2F0ZWQ6PFwvYT48XC9zdHJvbmc+ICBEZXByZWNhdGVkIHNpbmNlIEhBTF9NT0RVTEVfVEJNIDEuMCB8XG58IDxlbT5IQUxfVEJNX0JPX0VSUk9SX0RVUF9GRF9GQUlMRUQ8XC9lbT4gfCBGYWlsZWQgdG8gZHVwbGljYXRlIGZkICA8c3Ryb25nPjxhIGhyZWY9XCJkZXByZWNhdGVkLm1kI19kZXByZWNhdGVkMDAwMDE2XCI+RGVwcmVjYXRlZDo8XC9hPjxcL3N0cm9uZz4gIERlcHJlY2F0ZWQgc2luY2UgSEFMX01PRFVMRV9UQk0gMS4wIHw8XC9wPlxuPGhyIFwvPlxuPHA+RXhjZXB0IGFzIG5vdGVkLCB0aGlzIGNvbnRlbnQgLSBleGNsdWRpbmcgdGhlIENvZGUgRXhhbXBsZXMgLSBpcyBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cDpcL1wvY3JlYXRpdmVjb21tb25zLm9yZ1wvbGljZW5zZXNcL2J5XC8zLjBcL2xlZ2FsY29kZVwiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wPFwvYT5cbmFuZCBhbGwgb2YgdGhlIENvZGUgRXhhbXBsZXMgY29udGFpbmVkIGhlcmVpbiBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9ic2QtMy1jbGF1c2UtbGljZW5zZVwiPkJTRC0zLUNsYXVzZTxcL2E+LjxiciBcLz5cbkZvciBkZXRhaWxzLCBzZWUgdGhlIDxhIGhyZWY9XCJodHRwczpcL1wvd3d3LnRpemVuLm9yZ1wvY29udGVudC1saWNlbnNlXCI+Q29udGVudCBMaWNlbnNlPFwvYT4uPFwvcD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIj5SZXF1aXJlZCBIZWFkZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiPk92ZXJ2aWV3PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1kZWZpbmUtZG9jdW1lbnRhdGlvblwiPkRlZmluZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCI+RW51bWVyYXRpb24gVHlwZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUaXplbiBIQUwgQVBJOiBUQk0iLCJyYXciOm51bGx9LHsiY2xhc3MiOiJBcHBcXFNlcnZpY2VzXFxEb2N1bWVudGF0aW9uXFxEYXRhXFxSZW5kZXJlZE1hcmtkb3duIiwicyI6IndyYmwifV19LHsicyI6ImFyciJ9XX0sIm1lbW8iOnsiaWQiOiI1VTRWVUppWGJ5Q3ZUUE4xTDFOUiIsIm5hbWUiOiJfX21vdW50UGFyYW1zQ29udGFpbmVyIiwicGF0aCI6ImRvY3NcL3BsYXRmb3JtXC9oYWxcL2FwaVwvMS4wLjBcL2dyb3VwX19IQUxBUElfX0hBTF9fVEJNX19NT0RVTEUiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiJmOTc0N2FlNjdlMTBlMWQwMTNiMmFjZjAwYjczYjhiOTYxNWZhNTkxNTdhM2ZjMzNhNjJjMjRmNjZlOWFmMjNkIn0=')" >