{"id":326849,"date":"2022-01-10T08:39:43","date_gmt":"2022-01-10T08:39:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=326849"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=326849","title":{"rendered":"<span>03. \u0421 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c\u0438 \u0432\u043e\u0440\u043e\u0442\u0430\u043c\u0438 \u0438 \u044f\u0440\u043a\u043e\u044e \u0437\u0432\u0435\u0437\u0434\u043e\u0439<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u043e\u0432 Siemens VDO Dayton CARMiN<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597625\/\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u0432\u0435\u0440\u0441 \u0447\u0435\u0440\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0441\u0435\u0440\u0430\u043a\u0442\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597851\/\" rel=\"noopener noreferrer nofollow\">01 \u0421\u0448\u0435\u0439 \u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0441 \u043a\u0440\u0430\u0441\u043d\u044b\u043c, \u0436\u0435\u043b\u0442\u043e\u0435 \u0441 \u0436\u0435\u043b\u0442\u044b\u043c, \u0431\u0435\u043b\u043e\u0435 \u0441 \u0431\u0435\u043b\u044b\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/598673\/\" rel=\"noopener noreferrer nofollow\">02. \u042f \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0432\u0438\u0436\u0443 \u043a\u043e\u0434. \u042f \u0432\u0438\u0436\u0443 \u0431\u043b\u043e\u043d\u0434\u0438\u043d\u043a\u0443, \u0431\u0440\u044e\u043d\u0435\u0442\u043a\u0443 \u0438 \u0440\u044b\u0436\u0443\u044e<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>\u0411\u043b\u043e\u043a\u0438 0xA \u0438 0xB<\/h3>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/598673\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0443 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0447\u0438\u0441\u0435\u043b \u0438 \u0446\u0438\u0444\u0440 \u0442\u0438\u043f\u0430 \u0431\u043b\u043e\u043a\u0430 0xA, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0430\u043c, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u0438\u043f\u0430 \u0431\u043b\u043e\u043a\u0430 0x0\u0421, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0433\u043e\u0440\u043e\u0434\u0430\u043c.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e \u043a\u0430\u0440\u0442\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0441\u0442\u0440\u0430\u043d 0xA. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ce\/oo\/9q\/ceoo9qyboxmhorpnssxtqrt01qk.jpeg\" width=\"auto\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/ce\/oo\/9q\/ceoo9qyboxmhorpnssxtqrt01qk.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0421\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f 0 \u043f\u043e 0x30 &#8212; \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430 \u0438 TOC &#8212; table of contents, \u0441\u043f\u0438\u0441\u043e\u043a LIST \u043d\u0430 \u043f\u043e\u043b\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0431\u043b\u043e\u043a\u0435. \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 &#8212; LIST \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c, brief, \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d \u0441 \u043a\u0440\u0430\u0442\u043a\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. (\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0436\u0435\u043b\u0442\u044b\u043c)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f 0x30 &#8212; 8-\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 brief \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d. (\u041a\u0440\u0430\u0441\u043d\u0435\u043d\u044c\u043a\u043e\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c &#8212; \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f (\u0424\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c &#8212; \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043c\u0435\u0441\u0442, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0445 \u043a \u0443\u0440\u043e\u0432\u043d\u044e \u0434\u043e\u0441\u0442\u043e\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b. \u0412\u0435\u0440\u043d\u0435\u0435, \u0434\u0430\u043b\u0435\u043a\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 (FAR_LIST) \u043d\u0430 \u0441\u043f\u0438\u0441\u043a\u0438 points of interests, POI. (\u0421\u0438\u043d\u0435\u043d\u044c\u043a\u043e\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 (\u043d\u0430 \u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445) \u0441\u0442\u0440\u0430\u043d. \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f (\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0445 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u0430)  \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0430\u043c \u0441\u0442\u0440\u0430\u043d, \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0434\u043e\u0432 en_ENG_COUNTRY_NAME &#8212; \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435, \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0440\u0430\u043d, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/{en_PLACE_CATEGORY 0xA block, ADDINFO_0xA struct typedef enum &lt;ushort>{ Sites_of_interest = 0x14, \/\/ manneken pis ect Museum= 0x20, \/\/musee d'art moderne, musee de l'armee, musee des sciences Naturelles     Sport   = 0x23,  \/\/automotodrom brno, o2 arena, ski areal jasna, o2 arena Architecture = 0x25,\/\/ Fun_park = 0x26,\/\/boudewijn seapark, bruparck Nature_park = 0x27,\/\/het zwin, nationale plantentuin     UN_United_Nations = 0x28, City = 0x30,\/\/russian map Aeroport = 0x3a,\/\/brussel nationaal, brussels airport; , luchthaven brussel Seaport  = 0x35,  \/\/ oostende ramsgate (tonnel), zeebrugge (port), need mode exmpls Border_point = 0x34, \/\/     Winery   = 0x39 \/\/ lanson caves, champagne krug, moet et chandon, ruinart caves }en_PLACE_CATEGORY&lt;bgcolor=cDkGreen, fgcolor=cAqua>;; <\/code><\/pre>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435 &#171;\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f&#187; \u0438\u0437 \u0441\u0435\u043a\u0446\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\n<p>BRIF_0xA &#8212; \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0441 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 PTR \u043d\u0430 MORE_INFO_0xA.<\/p>\n<\/li>\n<li>\n<p>MORE_INFO_0xA &#8212; \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0430\u043d\u0435, \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0441\u0441\u044b\u043b\u043e\u043a FAR_LIST \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u044b. \u0422\u043e\u0447\u043d\u0435\u0435, \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 CH_IDX \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 BT_0x0B_0x0D_0x0F_0x11, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f (\u0438\u043d\u043e\u0433\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 BT_0x0B_0x0D_0x0F_0x11, &#171;\u043d\u0430\u0431\u0438\u0440\u0430\u044f&#187; \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0431\u0443\u043a\u0432) \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u043b\u043e\u043a\u043e\u0432 \u0442\u0438\u043f\u0430 0xC. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 (LIST) \u0442\u043e\u0447\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 (POI) \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0441\u0442\u0440\u0430\u043d\u044b,<\/p>\n<\/li>\n<li>\n<p>ADDINFO_0xA, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c POI_CATEGORY. POI_CATEGORY &#8212; enum en_PLACE_CATEGORY \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI, FAR_LIST \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 CH_IDX \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 BT_0x0B_0x0D_0x0F_0x11, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0x10, \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430 (\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0430\u0440\u0435 \u043c\u0435\u0441\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0441\u043f\u0438\u0441\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 BT_0x0B_0x0D_0x0F_0x11, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b CH_IDX, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043b\u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u043f\u0438\u0441\u043a\u0438 CH_IDX, \u0438\u043b\u0438 \u0432\u0435\u0434\u0443\u0442 &#171;\u043d\u0430\u0440\u0443\u0436\u0443&#187;, \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0438\u043f\u0430\u0445. \u0415\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u0443\u044e \u0432 Variables \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Read_CH_IDX \u0442\u0430\u043a, \u0447\u0442\u043e \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u044b\u0437\u043e\u0432 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0442\u043e \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u0441\u044f.<\/p>\n<pre><code class=\"cpp\">\/\/{BT_0x0B_0x0D_0x0F_0x11; \/\/{CH_IDX struct CH_IDX; typedef struct{     BL_ADDR   bl_postaddr;     char      ch &lt;fgcolor=cYellow, bgcolor=cDkGreen>; \/\/ char     local     en_BL_TYPE en_curr_bl_type &lt;format=hex, hidden=false> = head.type; \/\/ current bl type     \/\/ is_ptr_out - boolean     if(bl_postaddr.type == (en_curr_bl_type-1) ){ \/\/ outer link         ubyte is_ptr_out &lt;bgcolor=cLtBlue, fgcolor=cYellow,hidden=true>;     }else{                                          \/\/ innler link         ubyte is_ptr_out &lt;bgcolor=cLtBlue, fgcolor=cBlue, hidden=true>;     }     \/\/ next for LIST far_away, have use size and offset - from bl_type_0c     local uint size   &lt;format=hex, hidden=true> = bl_postaddr.size *0x800; \/\/ size in blocks, * 0x800     local uint offset &lt;format=hex, hidden=true> = bl_postaddr.offset;       LIST       pl_postaddr &lt;optimize=false>;      CONST_S    align_s(0);         if(align_s.value)     \/\/ \u0442\u0443\u0442 \u043d\u043e\u043b\u044c \u043d\u0435 \u043d\u043e\u043b\u044c             Printf(\"Warn, %X align_s = %i( %X )\\n\",              FTell(), \/\/ offset where happened             align_s.value, align_s.value); \/\/BAD WAY - MAY NOT ENOUGHT MEMORY FOR BIG BLOCKS     if(!is_ptr_out){         \/\/ jmp and recursive declare children struct         local uint return_addr &lt;hidden=true> = FTell();         FSeek(pl_postaddr.offset);            CH_IDX childs[pl_postaddr.cnt]&lt;optimize=false>;         FSeek(return_addr);     } }CH_IDX &lt;read = Read_CH_IDX>; string Read_CH_IDX(CH_IDX &amp;a){     local string brif_str;     local uchar MAX_CNT_STR_getPStrList = 5;     if(a.is_ptr_out){          \/\/ get str list of brif strnames         SPrintf(brif_str, \" block(0x%06X); \/\/of:%X '%c' [%i]>%02x(%s)>%s\",              a.bl_postaddr.raw, a.pl_postaddr.offset,                           a.ch, a.pl_postaddr.cnt,              a.bl_postaddr.type, EnumToString(a.bl_postaddr.type),             getPStrList(a.bl_postaddr.offset,                  a.pl_postaddr, MAX_CNT_STR_getPStrList) );     }else{ \/\/if(!is_ptr_out){         \/\/ get chars list         SPrintf(brif_str, \"%c [%i]>%s\", a.ch,              a.pl_postaddr.cnt,  getChList(a.pl_postaddr));     }      \/\/if(is_ptr_out)     return brif_str; } \/\/}CH_IDX \/\/ BT_0x0B_0x0D_0x0F_0x11 chars - and index to ge names or char set typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST       pl_data;        CH_IDX     char_of[pl_data.cnt] &lt;optimize=false>;     byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0B_0x0D_0x0F_0x11; \/\/}BT_0x0B_0x0D_0x0F_0x11; <\/code><\/pre>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 BT_0x0B_0x0D_0x0F_0x11 \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0435, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044e  \u0435\u0433\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435 0xA \u0432 \u0442\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0433\u0434\u0435 \u043d\u0430 \u043d\u0438\u0445 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f.<\/p>\n<p>\u0412 MORE_INFO_0xA \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c FAR_LIST idx_ch_cityes? \u0422\u0430\u043a \u0442\u0443\u0442 \u0436\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 CH_IDX, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u044f\u043c\u043e \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u0441\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u044b \u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<pre><code class=\"cpp\">\/\/{BT_0x0A \/\/POI_CATEGORY - additional data - part of MORE_INFO_0xA  typedef     struct{   local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block     local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST POIs;         \/\/type 0xF, streets ch_idx     if(POIs.pl_data.cnt){         local uint ret_str_here &lt;hidden=true> = FTell();         FSeek(POIs.pl_data.offset); \/\/ jmp to streets ch_idx             CH_IDX name[POIs.pl_data.cnt] &lt;optimize=false>;          FSeek(ret_str_here);     }     en_PLACE_CATEGORY   en_cat_places;   \/\/     PTR     unkn_str_begin; }POI_CATEGORY&lt;read=Read_POI_CATEGORY>; string Read_POI_CATEGORY(POI_CATEGORY &amp;a){     string s;     SPrintf(s,\"%02Xh %s: [%i]: >%s  block(0x%X);\/\/off:%X\",          a.en_cat_places, EnumToString(a.en_cat_places),         a.POIs.pl_data.cnt, getChList(a.POIs.pl_data),         a.POIs.far_block.raw,         a.POIs.pl_data.offset         );     return s; }\/\/}ADDINFO_0xA == POI_CATEGORY  \/\/MORE_INFO_0xA; - call from BRIF_0xA typedef struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST     idx_ch_cityes;   \/\/ ch_idx with country cityes     \/\/make list ch \/\/ try make citylist from ch_idx values \/\/ TOOooooo slow - 5-10 seconds...     if(idx_ch_cityes.pl_data.cnt){ \/\/ count>0         \/\/struct{         local uint ret_city_here &lt;hidden=true> = FTell();         FSeek(idx_ch_cityes.pl_data.offset);             CH_IDX city[idx_ch_cityes.pl_data.cnt]&lt;optimize=false>; \/\/ ch_idx type data elements         FSeek(ret_city_here);         \/\/}     }     CONST_I dec_11(0x0B) &lt;hidden=true>;     CONST_I dec_22(0x16) &lt;hidden=true>;     CONST_I dec_33(0x21) &lt;hidden=true>;     CONST_I dec_44(0x2C) &lt;hidden=true>;     LIST        pl_addinfo;     CONST_I hex01f4012c(0x01f4012c); \/\/ dec 32768300     CONST_I hex03e801f4(0x03e801f4); \/\/ dec 65536500     ushort       is_island &lt;bgcolor=cLtBlue>;     if((is_island &amp; ~1)) {     \/\/ !=0, !=1         Printf (\" is_island = %i\\n\", is_island); \/\/ !=0, !=1         FSeek(FTell()-2); ushort is_island &lt;bgcolor=cRed, fgcolor=cAqua>;     }     ushort      is_EU &lt;bgcolor=cLtBlue>;     if(is_EU &amp; ~1){      \/\/ !=0, !=1         Printf (\" is_EU = %i\\n\", is_EU);         FSeek(FTell()-2); ushort is_EU &lt;bgcolor=cRed, fgcolor=cAqua>;     }     en_ENG_COUNTRY_NAME      en_eng_strname&lt;fgcolor=cDkGreen, bgcolor=cGreen>;     CONST_S     aligment(0);     if(IS_OFICIAL_MAP){         CONST_S     zero2(0);         \/\/https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1         string   alpha_2_ISO3166_1 &lt;bgcolor=cLtGreen, fgcolor=cDkYellow>;         CONST_B  aligment_b(0);         string   const_triple_defice &lt;bgcolor=cLtGreen,fgcolor=cDkYellow,hidden=true>;         CONST_S  aligment_s(0);      }         \/\/ call ADDINFO_0xA     if(pl_addinfo.cnt){ \/\/ if pl_addinfo != 0         local uint return_here &lt;hidden=true> = FTell();         FSeek(pl_addinfo.offset);             POI_CATEGORY country_POI[pl_addinfo.cnt] &lt;optimize=false>;         FSeek(return_here);     } }MORE_INFO_0xA&lt;read=Read_MORE_INFO_0xA>; string Read_MORE_INFO_0xA(MORE_INFO_0xA &amp;a){     local string s;     SPrintf(s, \"%s\",EnumToString(a.en_eng_strname));     if(exists(a.alpha_2_ISO3166_1)) SPrintf(s, \"%s, '%s'\", s, a.alpha_2_ISO3166_1);     if(a.is_EU) SPrintf(s, \"%s, EU\", s);     if(a.is_island) SPrintf(s, \"%s, island\", s); \/\/\/ Iseland in rus map - not iseland))     SPrintf(s,\"%s . add_cnt:[%i]\", s, a.pl_addinfo.cnt);     return s; } \/\/}MORE_INFO_0xA;  \/\/{BRIF_0xA; main data 0xA - BRIF_0xA typedef     struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt;hidden=true> = head.addr.offset; \/\/ absolute block offset     PSTR        pstr_name;  \/\/ ptr to zero-ended str     en_TYPE_ADDR   is_synonym;\/\/ !!! carindb_rus.0xA.osterreich = 1      en_LANG     en_lang;\/\/ language code     CONST_S     zero(0);    \/\/ ushort allways 0     PTR         p_moreinfo&lt;hidden=true>; \/\/ ptr to item of LIST pl_all_moreinfo;     \/\/ jump to MORE_INFO     local uint return_here &lt;hidden=true> = FTell();     FSeek(p_moreinfo.ptr + offset);         MORE_INFO_0xA more_info;         FSeek(return_here); }BRIF_0xA&lt;read=Read_BRIF_0xA>; string Read_BRIF_0xA(BRIF_0xA &amp;a){     local string s;     SPrintf(s, \"%s: `%s`. Lang: %s, add_cnt:[%i]\",         EnumToString(a.more_info.en_eng_strname),          a.pstr_name.str, EnumToString(a.en_lang),         a.more_info.pl_addinfo.cnt         );     return s; } \/\/}BRIF_0xA;  typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     \/\/ size of this block     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800;      \/\/ absolute block offset   local uint   offset &lt;hidden=true> = head.addr.offset;          LIST    pl_all_countries;  \/\/ brief geo info     LIST    pl_all_moreinfo;   \/\/ more info, ptrs from briefs     \/\/pl_all_POIs - outer links to ch_idx file 0x11 type     CONST_I zero(0); LIST pl_all_POIs;  CONST_I zero(0);  CONST_I zero(0);      CONST_I zero(0); CONST_I zero(0);   CONST_I zero(0);  CONST_I zero(0);        BRIF_0xA country[pl_all_countries.cnt] &lt;optimize=false>;  \/\/ main data \/*     MORE_INFO_0xA   more_info[pl_all_moreinfo.cnt] &lt;optimize=false>; NO NEED MADE THIS ARRAY - ALL ITEMS WILL BE CREATD FROM brief_geo ptrs     FSeek(pl_all_POIs.offset); \/\/ pl_all_addinfo - byte after more_info      COUNTRY_POI_0xA addinfo[pl_all_POIs.cnt] &lt;optimize=false>; NO NEED MADE THIS ARRAY - ALL ITEMS WILL BE CREATD FROM brief_geo ptrs *\/     byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0A; \/\/}BT_0x0A <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 0xA \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u043b\u043e\u043a\u0430 0xD, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c \u044d\u0442\u043e\u0442 \u0431\u043b\u043e\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043b\u043e\u043a 0xC \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0433\u043e\u0440\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u044b, \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 Variables \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/k6\/xw\/et\/k6xwet5dsg8ddo9y2wzf5myystu.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xC, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0433\u043e\u0440\u043e\u0434\u0430\u0445, \u0441\u0445\u043e\u0434\u043d\u0430 \u0441 0xA. \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u044e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0435\u0451 \u0442\u0438\u043f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e block() \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432.<\/p>\n<h3>\u0411\u043b\u043e\u043a 0xC, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, brief info<\/h3>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u0435 32\u0431\u0438\u0442\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432 \u0431\u043b\u043e\u043a\u0435 \u0442\u0438\u043f\u0430 0xC \u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"cpp\">typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST    pl_all_cityes;    \/\/ brief geo info     LIST    pl_all_moreinfo;\/\/ more info, ptrs from briefs     \/\/ next eight uints seems like in hex from rel offset 10h \/\/0xA:  CONST_I zero(0); LIST pl_all_POIs;  CONST_I zero(0);  CONST_I zero(0);   \/\/0xA:  CONST_I zero(0); CONST_I zero(0);   CONST_I zero(0);  CONST_I zero(0);      CONST_I zero(0); LIST pl_all_cat_pois; CONST_I zero(0);  LIST pl_new_list_ofic;       CONST_I zero(0); LIST pl_new_list_ru;  BL_ADDR next_0xC; BL_ADDR prev_0xC;       BRIF_0xC city[pl_all_cityes.cnt] &lt;optimize=false>;  \/\/ main data }BT_0x0C; \/\/}BT_0x0C; <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 2 uint \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 &#8212; \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 \u0442\u0438\u043f\u0430 0xC, \u0438\u0434\u0443\u0449\u0438\u0435 &#171;\u043f\u043e\u0441\u043b\u0435&#187; \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e, \u0438 &#171;\u0434\u043e&#187;. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 BL_ADDR &#8212; \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439 (\u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u0437\u0432\u0430\u0442\u044c block(0) \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f).<\/p>\n<pre><code class=\"cpp\">\/\/ }BL_ADDR \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 typedef struct{     BitfieldDisablePadding();  \/\/\u0431\u0438\u0442\u044b - \u043a\u0430\u043a \u0441\u043f\u043b\u043e\u0448\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c      unsigned int    addr : 24 &lt;bgcolor=0x00a0f0, fgcolor=cYellow>; \/\/\u043f\u0435\u0440\u0432\u044b\u0435 3 \u0431\u0430\u0439\u0442\u0430 - \u0430\u0434\u0440\u0435\u0441, offset\/0x800     unsigned short  size : 8 &lt;bgcolor=0x00a0f0, fgcolor=cDkAqua>;  \/\/\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0439\u0442 - \u0440\u0430\u0437\u043c\u0435\u0440     local DWORD     raw &lt;hidden=true> = addr &lt;&lt;8 | size; \/\/addr \u0438 size \u0432 \u0432\u0438\u0434\u0435 32-\u0431\u0438\u0442\u043d\u043e\u043c     local DWORD     offset = addr &lt;&lt;11;     \/\/ \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 hex addr*800h     local uchar     is_valid &lt;hidden=true>; \/\/ \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, default-0      local en_BL_TYPE    type=0xFF;       \/\/ \u0422\u0438\u043f \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443     if( raw ){       \/\/ 00 00 00 00 - too valid, but should not be checked, it place for BL_ADDR         if ( offset &lt; FileSize() )              \/\/ \u0415\u0441\u043b\u0438 offset \u0432\u043d\u0443\u0442\u0440\u0438 hex \u0444\u0430\u0439\u043b\u0430             is_valid = ( ReadUInt(offset) == raw );   \/\/ \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e offset \u0430\u0434\u0440\u0435\u0441\u0443         if( !is_valid ){ \/\/ \u0415\u0441\u043b\u0438 \u043f\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u043b\u0435\u0436\u0438\u0442 \u0438\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435             FSeek(FTell()-4);               \/\/ \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c \u043a\u0443\u0440\u0441\u043e\u0440 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e BL_ADDR              DWORD non_valid_bl_addr&lt;bgcolor=cRed, fgcolor=cLtGray>; \/\/ paint it in red         }else{             \/\/ \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0438\u043f \u0431\u043b\u043e\u043a\u0430                    type = ReadUByte(offset+5); \/\/ \u0427\u0435\u0440\u0435\u0437 \u0431\u0430\u0439\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 BL_ADDR - type         }     }else{         is_valid = 1;\/\/ 00 00 00 00 - too valid     } }BL_ADDR &lt; read = Read_BL_ADDR>; <\/code><\/pre>\n<p>\u0421 \u043d\u043e\u0432\u044b\u043c\u0438 LIST pl_new_list_ofic (\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438) \u0438 LIST pl_new_list_ru (\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445  carindb) \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0435\u043a\u0446\u0438\u0435\u0439 \u0432 \u0442\u0438\u043f\u0435 0xA \u0448\u043b\u0438 \u0432\u043e\u0441\u044c\u043c\u0438\u0431\u0438\u0442\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0440\u0430\u0442\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 brief \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d. \u0420\u0430\u0437\u043c\u0435\u0440 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0432 \u0431\u043b\u043e\u043a\u0430\u0445 \u0442\u0438\u043f\u0430 0xC \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c. \u0420\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0432 brief \u0431\u044b\u0432\u0448\u0430\u044f \u043d\u0443\u043b\u0435\u0432\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0432 0xA \u0442\u0430\u043a \u0436\u0435 \u043e\u0431\u0440\u0435\u043b\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, PSTR pstr_region, \u043d\u0435\u0441\u0443\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0435\u0433\u0438\u043e\u043d\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u043e\u0434.<\/p>\n<pre><code class=\"cpp\">\/\/{BRIF_0xC - main data, cityes typedef     struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt;hidden=true> = head.addr.offset; \/\/ absolute block offset     PSTR        pstr_name;    \/\/ ptr to zero-ended str     ubyte     place_bitemask&lt;bgcolor=cDkGreen, fgcolor=cYellow>;\/\/ 0xA={0,1}, 0xC={0,1,2,10,12}     en_LANG     en_lang;      \/\/ language code     PSTR        pstr_region;  \/\/ ushort always 0 in 0xA     PTR         p_moreinfo &lt;hidden=true>; \/\/ ptr to item of LIST pl_all_moreinfo;     \/\/ jump to MORE_INFO     local uint retur_here &lt;hidden=true> = FTell();     FSeek(p_moreinfo.ptr + offset);         \/\/MORE_INFO_0xC more_info;         FSeek(retur_here); }BRIF_0xC&lt;read=Read_BRIF_0xC>; string Read_BRIF_0xC(BRIF_0xC &amp;a){     local string s;     SPrintf(s, \"%02X %s     (%s) . Lang: %s\",          a.place_bitemask,           a.pstr_name.str, a.pstr_region.str,           EnumToString(a.en_lang)         );     return s; }\/\/}BRIF_0xC <\/code><\/pre>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c ex- CONST_B is_synonim, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436 \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430. \u0412 0xA \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f &#8212; 0, \u043a\u0440\u043e\u043c\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0430, \u0410\u0432\u0441\u0442\u0440\u0438\u0438 \u0438 \u0435\u0451 \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u0430. \u0412 0xC \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b {0, 1, 2h, 10h, 12h} \u041d\u0435 \u0431\u0438\u0442\u043e\u0432\u0430\u044f \u043b\u0438 \u043c\u0430\u0441\u043a\u0430, \u043a\u0441\u0442\u0430\u0442\u0438?<\/p>\n<p>\u041d\u0430\u0437\u044b\u0432\u0430\u044e ubyte place_bitemask \u0438 \u043f\u044b\u0442\u0430\u044e\u0441\u044c \u043e\u0442\u044b\u0441\u043a\u0430\u0442\u044c \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438.<\/p>\n<ul>\n<li>\n<p>00h \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0440\u0430\u0439\u043e\u043d\u0430\u043c, \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u043c, \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u0438\u0442\u0435\u0442\u0430\u043c, \u0433\u043e\u0440\u043e\u0434\u0430\u043c<\/p>\n<\/li>\n<li>\n<p>10h &#8212; \u0434\u0435\u0440\u0435\u0432\u043d\u0438, \u0440\u0430\u0439\u043e\u043d\u044b \u0433\u043e\u0440\u043e\u0434\u043e\u0432, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>02h &#8212; \u043a\u043e\u043c\u043c\u0443\u043d\u044b, 5\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0430\u043c\u043e\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0411\u0435\u043b\u044c\u0433\u0438\u0438 \u0438 \u0424\u0440\u0430\u043d\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>12h &#8212; \u043a\u043e\u043c\u043c\u0443\u043d\u044b, \u0441\u0443\u0431\u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u0438\u0442\u0435\u0442\u044b<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u043e, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0411\u043b\u043e\u043a 0xC, more info<\/h3>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 MORE_INFO_0x\u0421, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0433\u043e\u0440\u043e\u0434\u0435, \u043e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0432 0xA \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0414\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432\u043e\u0437\u044c\u043c\u0443 \u0436\u0438\u0432\u043e\u043f\u0438\u0441\u043d\u044b\u0439 \u043a\u0443\u0440\u043e\u0440\u0442\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A5%D0%B5%D0%BB%D1%8C_(%D0%B3%D0%BE%D1%80%D0%BE%D0%B4)\" rel=\"noopener noreferrer nofollow\">\u0425\u0435\u043b\u044c<\/a> \u2014 \u0433\u043e\u0440\u043e\u0434 \u0432 \u041f\u043e\u043b\u044c\u0448\u0435, \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u041f\u043e\u043c\u043e\u0440\u0441\u043a\u043e\u0435 \u0432\u043e\u0435\u0432\u043e\u0434\u0441\u0442\u0432\u043e, \u041f\u0443\u0446\u043a\u0438\u0439 \u043f\u043e\u0432\u044f\u0442. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043d\u0430 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0439 \u043a\u043e\u0441\u0435. \u0417\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u043b\u043e\u0449\u0430\u0434\u044c 21,72 \u043a\u043c\u00b2. \u041d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 3480 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. 54\u00b036\u203242\u2033 \u0441. \u0448. 18\u00b048\u203229\u2033 \u0432. \u0434. \u041e\u0442\u0434\u044b\u0445\u0430\u043b \u0441 \u0441\u0435\u043c\u044c\u0451\u0439 \u0442\u0430\u043c \u043f\u0430\u0440\u0443 \u043d\u0435\u0434\u0435\u043b\u044c, \u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043c\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412 carindb_ee \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u044e <code>Poland, moreinfo, city[7] == h [8]> a e i l o r u y<\/code>, \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <code>struct CH_IDX childs[1]<\/code> \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code> block(0x0C1108); \/\/of:608C78 'e' [38]>0c()>, hebdow, hecznarowice, hedwizyn, hejdyk, hel<\/code>. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/iw\/kj\/2q\/iwkj2qvwige-zdfirvwnipdmnw0.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043f\u0438\u043f\u0430\u0441\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442 template, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0435\u0433\u043e <code>&lt;F5><\/code>, \u0438 \u0432 \u0444\u043e\u043a\u0443\u0441\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u043b\u043e\u043a\u0430 0xC, \u0438\u0434\u0443\u0449\u0430\u044f \u043f\u043e\u0441\u043b\u0435 brif.<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b MORE_INFO_0xC \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u0438\u0437 BRIF_0x\u0421 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/r9\/zw\/7w\/r9zw7wbflsge6rssp9t8acifuqg.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0435 8 \u0431\u0430\u0439\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u0430\u043a FAR_LIST, \u0437\u0430\u0442\u0435\u043c 4 \u0431\u0430\u0439\u0442\u0430 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d LIST, \u0437\u0430\u0442\u0435\u043c 4 \u0431\u0430\u0439\u0442\u0430 \u043d\u0435\u044f\u0441\u043d\u043e\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043c\u043e\u0436\u0435\u0442, BL_ADDR?), 2 \u0431\u0430\u0439\u0442\u0430 &#8212; \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, 6 \u0431\u0430\u0439\u0442, \u0440\u0430\u0432\u043d\u044b\u0445 0. \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<pre><code class=\"cpp\">\/\/{MORE_INFO_0xC; typedef struct{   local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block     local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST unk_1;     LIST     unk_2;     BL_ADDR  unk_3;     ushort   _may_be_ptr&lt;bgcolor=cRed>;     CONST_S  zero(0);     CONST_I  zero(0); }MORE_INFO_0xC; \/\/}MORE_INFO_0xC; <\/code><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/gk\/st\/b5\/gkstb5zpkt0mhn_ybny0sh-ndvk.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>unk_1 &#8212; \u0441\u043f\u0438\u0441\u043e\u043a FAR_LIST \u0432 \u0431\u043b\u043e\u043a\u0435 CH_idx_F \u0442\u0438\u043f\u0430 BT_0x0B_0x0D_0x0F_0x11, \u043a\u0430\u043a \u0432 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0431\u044b\u043b \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430, \u0442\u0430\u043a \u0432 \u0433\u043e\u0440\u043e\u0434\u0430\u0445 &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0438-\u0443\u043b\u0438\u0446\u044b, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0432 ch_roads \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 <code>CH_IDX road[ch_roads.pl_data.cnt]<\/code>.<\/p>\n<\/li>\n<li>\n<p>unk_2 &#8212; \u0441\u043f\u0438\u0441\u043e\u043a LIST \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI, \u0442\u043e\u0447\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430, \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435. \u0421\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0443\u044e \u0441 POI_CATEGORY \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xA, \u043d\u0435 \u0431\u0443\u0434\u0443 \u0432\u044b\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u0440\u044f\u043c\u043e \u0435\u0451 \u0436\u0435.<\/p>\n<\/li>\n<li>\n<p>unk_3 &#8212; \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u043b\u043e\u043a \u0442\u0438\u043f\u0430 0x00, \u043d\u0435 \u0437\u043d\u0430\u044e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043e \u043d\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p>may_be_ptr &#8212; \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u0442.\u043a. \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0433\u043e\u0440\u043e\u0434\u043e\u0432 \u043d\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u043b\u043e\u043a\u0435. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0443, \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID \u0433\u043e\u0440\u043e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b&#8230;. \u0421\u0442\u043e\u043f, \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 64\u0431\u0438\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 &#8212; \u0438\u043d\u043e\u0433\u0434\u0430 LIST, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043d\u0430 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u0432\u043b\u044e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0440\u0442\u044b. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/x5\/e7\/6p\/x5e76pbw_f6-_zquphcn3aocits.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/j-\/fr\/3f\/j-fr3fun_cnq5aits5r9ou9lzcs.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<h3>\u0411\u043b\u043e\u043a 0xC, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI<\/h3>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430 &#171;\u0432\u043d\u0443\u0442\u0440\u0438&#187; \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0443\u043b\u0438\u0446, \u0438 \u0441\u043f\u0438\u0441\u043a\u0438 POI, \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0435 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0430\u043c ( Interesting, Museum, Sport, Architecture, Nature_park). <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/e9\/wk\/ls\/e9wklsmyjnr_zkrwdputi9igihg.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 0x0C &#8212;  stacja paliw &#8212; \u043f\u0440\u044f\u043c\u044b\u043c \u043f\u043e\u043b\u044c\u0441\u043a\u0438\u043c \u043f\u043e-\u0431\u0435\u043b\u043e\u043c\u0443: \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0440\u0430\u0432\u043a\u0430, \u0432 en_PLACE_CATEGORY \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e <code>Gas_station  = 0xC<\/code><\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 0x0E &#8212; <code>biala foka, strzezony, ul. adm. steyera w., ul. boczna, ul. kuracyjna, ul. lesna, ul. szkolna<\/code>. \u041f\u043e\u043c\u043d\u044e, \u043d\u0430 \u043c\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0435\u0441\u0435\u043b\u0438\u043b\u0430 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c &#8212; \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u0441\u0442\u043e\u044f\u043d\u043a\u0443 &#171;\u0411\u0435\u043b\u044b\u0439 \u0442\u044e\u043b\u0435\u043d\u044c&#187; (biala foka). \u0410 strzezony \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a &#171;\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0430\u0440\u043a\u043e\u0432\u043a\u0430&#187;, \u0437\u043d\u0430\u0447\u0438\u0442, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f Parking = 0x0E<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 0x14 &#8212; \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u043f\u043e \u0431\u043b\u043e\u043a\u0443 \u0441\u0442\u0440\u0430\u043d, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u0435\u0441\u0442\u0430, \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, Interesting. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438, \u0447\u0442\u043e <code>focarium<\/code> &#8212; \u044d\u0442\u043e \u0442\u044e\u043b\u0435\u043d\u0438\u0439 \u0437\u043e\u043e\u043f\u0430\u0440\u043a, \u0442\u043e \u0432\u044b \u043d\u0435 \u043e\u0448\u0438\u0431\u043b\u0438\u0441\u044c, <code>hel cypel plaza<\/code> &#8212; \u043a\u0443\u043f\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u044f\u0436 \u0432 \u0425\u0435\u043b\u0435, <code>latarnia morska hel<\/code> &#8212; \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e latarnia \u043f\u043e-\u043f\u043e\u043b\u044c\u0441\u043a\u0438 \u044d\u0442\u043e \u043c\u0430\u044f\u043a (\u0430 \u043f\u0440\u043e\u0436\u0438\u0432 \u0432 \u0425\u0435\u043b\u0435 \u043d\u0435\u0434\u0435\u043b\u044e \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u043d\u0438\u044f), \u0442\u043e \u0438 \u044d\u0442\u0430 \u0434\u043e\u0441\u0442\u043e\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 0x1E \u0438 0x17, \u043e\u0431\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u0431\u0430\u043d\u043a\u0430\u043c. \u0412 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 &#8212; \u0434\u0432\u0430. \u041e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u043d\u043a\u0430 \u0432 \u0425\u0435\u043b\u0435 \u043e\u0434\u043d\u043e, \u0430 \u0431\u0430\u043d\u043a\u043e\u043c\u0430\u0442\u043e\u0432 &#8212; \u0441\u0430\u043c \u0432\u0438\u0434\u0435\u043b. \u0422\u0430\u043a \u0447\u0442\u043e \u0432\u044b\u0432\u043e\u0434 &#8212; \u0433\u0434\u0435 Bank, \u0433\u0434\u0435 ATM \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d.<\/p>\n<\/li>\n<li>\n<p>\u0418 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435&#8230;<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f &#171;\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c POI \u0443\u0434\u043e\u0431\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u044f\u0437\u044b\u043a \u0445\u043e\u0442\u044f \u0431\u044b \u0431\u043b\u0438\u0437\u043e\u043a \u043a \u0440\u043e\u0434\u043d\u043e\u043c\u0443. \u0418 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0434\u0435\u0442 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u043e\u0442\u044c \u0447\u0443\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u043e \u043d\u0430 \u043c\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438. \u0412 \u0425\u0435\u043b\u0435 19 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 POI &#8212; \u0441\u043e\u043b\u0438\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u043e\u0435 \u0442\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e-\u043a\u0443\u0440\u043e\u0440\u0442\u043d\u043e\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0433\u043e\u0440\u043e\u0434\u043a\u0430. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u044b \u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f <code>Hospital  = 0x2d<\/code> &#8212; \u043f\u0430\u0440\u0430 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0445 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0439: &#171;115 szpital wojskowy z przychodnia&#187; \u0438 &#171;przych. lek. samodzielny nzoz&#187;. \u0410 \u0442\u0430\u043a \u0436\u0435 <code>__city_railst_    =0x33<\/code> &#8212; \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u044f\u0445 \u0442\u043e\u043b\u044c\u043a\u043e &#171;Hel&#187;, \u043a\u0430\u043a \u0438 \u0432 \u0442\u0438\u043f\u0435 0x30, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043a\u0430\u043a \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0435\u0439, \u0442\u0430\u043a \u0438 \u0430\u0432\u0442\u043e\u0432\u043e\u043a\u0437\u0430\u043b\u043e\u043c.<\/p>\n<p>\u0412 carindb_rus \u0432\u043e\u043e\u0431\u0449\u0435 \u0443 \u0432\u0441\u0435\u0445 \u0433\u043e\u0440\u043e\u0434\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0443 \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0425\u0435\u043b\u044f, \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f POI (City = 0x30), \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u043c &#8212; \u044d\u0442\u0438\u043c \u0441\u0430\u043c\u044b\u043c \u0433\u043e\u0440\u043e\u0434\u043e\u043c.<\/p>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0441\u044c \u0432 block countries, 0xA, \u0438 \u043d\u0430\u0445\u043e\u0436\u0443 \u0431\u043b\u043e\u043a \u0441 \u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u043f\u043e\u043b\u044c\u0441\u043a\u0438\u043c \u0433\u043e\u0440\u043e\u0434\u043e\u043c: \u041e\u043b\u044c\u0448\u0442\u044b\u043d\u043e\u043c: <code> block(0x0DE006); \/\/of:6F0030 ''' [1]>0c(CITY)>, ol'shtyn<\/code><br \/> \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI, \u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e \u043d\u043e\u0432\u044b\u043c \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 enum.<\/p>\n<pre><code>29h : [1]: > w  block(0x1550408); \/\/off:AA841A8  block(0x1BA0208); \/\/of:DD012C0 'w' [2]>10()>, wojewodzki szpital spec pogotowie, wojewodzki szpital specjalistyczny <\/code><\/pre>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0430, \u0432\u043e\u0435\u0432\u043e\u0434\u0441\u0442\u0432\u043e &#8212; \u043a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0430\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u041f\u043e\u043b\u044c\u0448\u0438. \u0410 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 \u0442\u0438\u043f\u0430 POI 2Dh &#8212; 12 \u0448\u0442\u0443\u043a. \u041f\u043e\u0445\u043e\u0436\u0435, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u0433\u0434\u0430 Hospital=29h, \u0430 \u0431\u044b\u0432\u0448\u0438\u0439 \u0433\u043e\u0441\u043f\u0438\u0442\u0430\u043b\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0432 Clinic=2Dh<\/p>\n<pre><code>2Ah : [2]: > k p  block(0x1550408); \/\/off:AA841B4  block(0x1BA0208); \/\/of:DD012D0 'k' [6]>10()>, komenda miejska policji, komenda miejska policji, komenda miejska policji, komenda policji rewir dzielnicowych, komenda wojewodzka policji  block(0x1BA0208); \/\/of:DD01300 'p' [1]>10()>, posterunek policji <\/code><\/pre>\n<p>\u0411\u0435\u0437 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0439, Police = 0x2A<\/p>\n<pre><code>33h __city_railst_: [2]: > g o  block(0x1550408); \/\/off:AA84484  block(0x1BA0A08); \/\/of:DD05508 'g' [1]>10()>, gutkowo  block(0x1BA0A08); \/\/of:DD05510 'o' [2]>10()>, olsztyn glowny, olsztyn zachodni <\/code><\/pre>\n<p>Olsztyn Gutkowo &#8212; \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0436\/\u0434 \u0441\u0442\u0430\u043d\u0446\u0438\u044f, \u043a\u0430\u043a \u0438 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u041e\u043b\u044c\u0448\u0442\u044b\u043d \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u041e\u043b\u044c\u0448\u0442\u044b\u043d \u0417\u0430\u043f\u0430\u0434\u043d\u044b\u0439, \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0433\u0443\u0433\u043b. RailStation=0x33<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u044f \u0441 \u0433\u0443\u0433\u043b\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u044e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435 \u0425\u0435\u043b\u044f, \u041e\u043b\u044c\u0448\u0442\u044b\u043d\u0430 \u0438 \u0412\u0430\u0440\u0448\u0430\u0432\u044b \u043e\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0438\u0434:<\/p>\n<pre><code class=\"cpp\">\/\/{en_PLACE_CATEGORY 0xA 0xC blocks typedef enum &lt;ushort>{     CarRepair  = 0xB,     GasStation = 0xC,     CarRent     = 0xD,     Parking     = 0xE,     ParkAndRide = 0xF, \/\/ park and ride, intercept parking, parkuj i jedz metro marymont RestingPlace= 0x10, \/\/  mop olesnica mala,  mop jonas polnoc, mop jonas poludnie  Intresting  = 0x14,     Hotel       = 0x15,     Restaurant  = 0x16,     Bank        = 0x17,     Culture     = 0x18,     Library     = 0x19,     Court       = 0x1a,     Embassy     = 0x1D,     BankomatATM = 0x1E,     Tourist_info= 0x1F,  Museum    = 0x20,\/\/musee d'art moderne, musee de l'armee, musee des sciences Naturelles     Theater     = 0x21,     Sport       = 0x23,  \/\/automotodrom brno, o2 arena, ski areal jasna, o2 arena     Church      = 0x24, Architecture = 0x25,\/\/ Fun_park    = 0x26,\/\/boudewijn seapark, bruparck Nature_park = 0x27,\/\/het zwin, nationale plantentuin     UN_United_Nations = 0x28,     Hospital    = 0x29,     Police      = 0x2A,     Goverment   = 0x2B,     Post        = 0x2C,     Clinic      = 0x2D,     Aphoteca    = 0x2E,     Shop        = 0x2F, \/\/ supermarket?  City    = 0x30,\/\/russian map     Cinema      = 0x31,     __golf_club = 0x32, \/\/first warsaw golf country club     RailStation = 0x33, Border_point= 0x34, \/\/ Seaport     = 0x35,  \/\/ oostende ramsgate (tonnel), zeebrugge (port), need mode exmpls     BusStation  = 0x36,     Pier        = 0x37, \/\/ przystan kortowska-> Piers, Dock     Shcool      = 0x38,     Winery      = 0x39, \/\/ lanson caves, champagne krug, moet et chandon, ruinart caves Aeroport    = 0x3a,\/\/brussel nationaal, brussels airport; , luchthaven brussel     __bmw_motorbike_service = 0x3B,     Business    = 0x3D    \/\/ Olsztyn, Poland https:\/\/en.wikipedia.org\/wiki\/Michelin_Polska  }en_PLACE_CATEGORY&lt;format=hex, bgcolor=cDkGreen, fgcolor=cAqua>; <\/code><\/pre>\n<p>\u042f\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u044d\u0442\u043e \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0437 \u0431\u043b\u043e\u043a\u043e\u0432 \u0442\u0438\u043f\u0430 0xA \u0438 0xC \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 carindb.<\/p>\n<h3>\u0411\u043b\u043e\u043a 0xC, \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI<\/h3>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 POI_CATEGORY \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xA \u043d\u0435\u0441\u043b\u0430 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 0xA \u044d\u043b\u0435\u043c\u0435\u043d\u0442 PTR unkn_str_begin, \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0432\u0448\u0438\u0439 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e &#8212; \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<pre><code class=\"cpp\">\/\/POI_CATEGORY - additional data - part of MORE_INFO_0xA  typedef     struct{ FAR_LIST POIs;         \/\/type 0xF, streets ch_idx     en_PLACE_CATEGORY   en_cat_places;   \/\/     PTR     unkn_str_begin; }POI_CATEGORY <\/code><\/pre>\n<p>\u0412 \u0431\u043b\u043e\u043a\u0430\u0445 \u0442\u0438\u043f 0xC \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f reference_addr_start, \u0437\u0430\u043c\u0435\u043d\u0438\u0432\u0448\u0430\u044f unkn_str_begin, \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 POI \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 {FAR_LIST, PSTR, CONST_S(0)}, \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 pl_new_list_ofic \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0431\u043b\u043e\u043a\u0430. \u0422\u0438\u043f PTR \u043d\u0435 \u043d\u0435\u0441\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432, \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u0435\u0440\u0432\u0443\u044e. \u041f\u0440\u0438\u0447\u0435\u043c, \u0441\u0443\u0434\u044f \u043f\u043e \u0433\u043e\u043b\u0443\u0431\u044b\u043c &#171;\u043f\u044f\u0442\u043d\u0430\u0448\u043a\u0430\u043c&#187;, \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 POI \u0447\u0438\u0441\u043b\u043e \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 &#8212; \u043d\u0435\u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/0j\/-m\/0v\/0j-m0vaykahbaquce5j_tmnphfc.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 POI_CATEGORY \u0438\u0437 LIST pl_all_cat_pois \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435, \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u0432 \u0445\u0432\u043e\u0441\u0442\u0435 \u043d\u0430\u0445\u043e\u0436\u0443 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443, \u043f\u0443\u0441\u0442\u0443\u044e POI_CATEGORY, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0443\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 reference_addr_start (\u0438\u043b\u0438 unkn_str_begin).<\/p>\n<p>\u0418 \u044d\u0442\u043e\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u043d\u043e \u043d\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440, &#171;\u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u0432\u043f\u0435\u0440\u0451\u0434&#187;, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 POI_CATEGORY, \u0431\u0435\u0440\u044f \u043e\u0442\u0442\u0443\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 reference_addr_start &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0433\u043e, \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<p>\u041c\u0435\u043d\u044f\u044e \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u044b\u0448\u0435\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e POI_CATEGORY, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 POI \u043d\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b POI_REFERENCE.<\/p>\n<pre><code class=\"cpp\">\/\/{part BT_0x0C, use in POI_CATEGORY typedef struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST ch_idx_11;     local uint   ret_str_here &lt;hidden=true> = FTell();     FSeek(ch_idx_11.pl_data.offset); \/\/ jmp to streets ch_idx         CH_IDX POI_reference[ch_idx_11.pl_data.cnt] &lt;optimize=false>;      FSeek(ret_str_here);     PSTR    name&lt;fgcolor=cRed>;     CONST_S zero(0); }POI_REFERENCE &lt;read=Read_POI_REFERENCE>; string Read_POI_REFERENCE(POI_REFERENCE &amp;a){     string s;     SPrintf(s, \"%s: [%i] %s(%X)\",         a.name.str, a.ch_idx_11.pl_data.cnt,         EnumToString(a.ch_idx_11.far_block.type),          a.ch_idx_11.far_block.type     );     return s; } \/\/{part BT_0x0C  \/\/{BT_0x0A \/\/POI_CATEGORY - additional data - part of MORE_INFO_0xA , used in 0xC too typedef     struct{   local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block     local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST POIs;         \/\/type 0xF, streets ch_idx     if(POIs.pl_data.cnt){         local uint ret_str_here &lt;hidden=true> = FTell();         FSeek(POIs.pl_data.offset); \/\/ jmp to streets ch_idx             CH_IDX POI_name[POIs.pl_data.cnt] &lt;optimize=false>;          FSeek(ret_str_here);     }     en_PLACE_CATEGORY   en_cat_places;   \/\/     PTR        reference_addr_start;     local PTR  reference_addr_till;     reference_addr_till.ptr = ReadUShort(FTell()+10);     \/\/ BL_0xX - BRIF - MORE_INFO - POI_CATEGORY     \/\/ in 0xA unkn_str_begin - pointer to firts str in all items     \/\/ on 0xC reference_addr_start - pointer to item pl_new_list_ofic array     \/\/ {only in oficial 0xC will work     if( exists( parentof(this).pl_category_POI_city) &amp;&amp; IS_OFICIAL_MAP ){         \/\/ in carindb_rus pointed to begin pl_new_list_ru array         if ( (  (reference_addr_till.ptr - reference_addr_start.ptr) \/ 8 ) > 0 ){             local uint ret_poi_here  &lt;hidden=true> = FTell();             FSeek(offset + reference_addr_start.ptr);                 POI_REFERENCE POI_reference[ (reference_addr_till.ptr - reference_addr_start.ptr) \/ 8] &lt;optimize=false>;             FSeek(ret_poi_here);         }     }     \/\/ }only in oficial 0xC will work     \/\/ {debug - print unknown en_PLACE_CATEGORY:      if(Strlen(EnumToString(en_cat_places) ) == 0){         Printf(\"POI_CATEGORY %X cat:%X - unknown en_PLACE_CATEGORY\\n\",             FTell(), en_cat_places);     }     \/\/ }debug - print unknown en_PLACE_CATEGORY:  }POI_CATEGORY&lt;read=Read_POI_CATEGORY>; string Read_POI_CATEGORY(POI_CATEGORY &amp;a){     string s;     SPrintf(s,\"%02Xh %s: [%i]: >%s  block(0x%X); \/\/off:%X\",          a.en_cat_places, EnumToString(a.en_cat_places),         a.POIs.pl_data.cnt, getChList(a.POIs.pl_data),         a.POIs.far_block.raw,         a.POIs.pl_data.offset         );     return s; }\/\/}POI_CATEGORY == ex ADDINFO_0xA used in 0xA, 0xC   <\/code><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/6d\/11\/44\/6d1144lsbzovoj5qjaypgxbdpke.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0445 \u043d\u0435 \u044f\u0441\u043d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e. \u0412 \u0425\u0435\u043b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d\u0438 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443 2 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0411\u0430\u043d\u043a\u0438<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u043d\u043a\u043e\u043c\u0430\u0442\u044b<\/p>\n<\/li>\n<\/ul>\n<p>\u042f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0431\u044b, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432, \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u043c POI (\u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 \u0442\u0438\u043f\u0430 0x10 &#8212; \u0440\u0430\u0437\u043d\u044b\u0435). \u041d\u043e \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u044d\u0442\u0438\u043c \u0442\u043e\u0447\u043a\u0430\u043c.<\/p>\n<p>\u041f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0x10 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f 0xC &#8212; \u0434\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 &#171;\u0447\u0442\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e&#187; \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c.<\/p>\n<h3>\u0420\u0435\u0437\u044e\u043c\u0438\u0440\u0443\u044f<\/h3>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438 &#171;\u043d\u0430\u0440\u0443\u0436\u0443&#187; \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430 0xC \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"cpp\">BRIF_0xC city[pl_all_cityes.cnt] MORE_INFO_0xC CH_IDX road[ch_roads.pl_data.cnt]                  \/\/ -> CH_idx_f -> Eh POI_CATEGORY city_POI[pl_category_POI_city.cnt]    \/\/ -> CH_idx_11 -> 10h POI_REFERENCE[(reference_addr_till.ptr - reference_addr_start.ptr) \/ 8 ] CH_IDX POI_reference[ch_idx_11.pl_data.cnt] \/\/ -> CH_idx_11 -> 10h<\/code><\/pre>\n<p>\u0422\u0435\u0437\u0438\u0441\u043d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435.<\/p>\n<ul>\n<li>\n<p>\u0411\u043b\u043e\u043a \u0442\u0438\u043f\u0430 0xC \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0433\u043e\u0440\u043e\u0434\u0430\u0445. \u041a\u0441\u0442\u0430\u0442\u0438, \u0432 \u0431\u043b\u043e\u043a\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043d\u0435\u0442 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439, \u043a \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u043e\u0434. &#171;\u0413\u043e\u0440\u043e\u0434&#187; &#8212; \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0441\u0442\u044c, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0440\u0430\u0439\u043e\u043d \u0438\u043b\u0438 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u043e-\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0441\u0442\u0440\u0430\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430 0xC \u0440\u0430\u0432\u0435\u043d \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443 \u0431\u043b\u043e\u043a\u0430 \u0441\u0442\u0440\u0430\u043d 0xA (30h), \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d \u0437\u043d\u0430\u0447\u0430\u0449\u0438\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442: \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u043e\u0432 \u0433\u043e\u0440\u043e\u0434\u043e\u0432, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0432\u0441\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0447\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 (POI), \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0432\u0441\u0435 &#171;\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435&#187; \u0442\u043e\u0447\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 POI_REFERENCE (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435, \u0438\u043b\u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430)<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f &#8212; BRIF &#8212; \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 (\u0432\u043e\u0442 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430, \u0435\u0441\u0442\u044c \u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b), \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u043e\u0434, \u044f\u0437\u044b\u043a (\u043d\u0435 \u0431\u0435\u0437 \u0441\u043c\u0435\u0448\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u0432 \u041e\u043b\u044c\u0448\u0442\u044b\u043d\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u043a\u0430\u0440\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432, \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043f\u043e-\u0447\u0435\u0448\u0441\u043a\u0438, \u0430 \u043d\u0435 \u043f\u043e-\u043f\u043e\u043b\u044c\u0441\u043a\u0438) \u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u043a \u044d\u0442\u043e\u043c\u0443 \u0433\u043e\u0440\u043e\u0434\u0443\/\u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u044e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0447\u0430\u0441\u0442\u0438, \u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 &#8212; \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0432 0xA, \u043d\u043e \u0441 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u0440\u0435\u0433\u0438\u043e\u043d\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f &#8212; MORE_INFO &#8212; \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u043b\u0438\u0446, \u0434\u043e\u0440\u043e\u0433 \u0433\u043e\u0440\u043e\u0434\u0430 \u0438\u043b\u0438 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 (\u0447\u0435\u0440\u0435\u0437 \u0442\u0438\u043f CH_idx_f \u043d\u0430 \u0442\u0438\u043f Eh), \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438\u0431\u043b\u043e\u043a\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 POI \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430, \u0430\u0434\u0440\u0435\u0441 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 00(block_type_00), ID \u0433\u043e\u0440\u043e\u0434\u0430 (\u043f\u043e\u0434 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c). \u0412 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043a\u0430\u0440\u0442\u044b &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442, \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 0, 1 \u0438 2. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b &#8212; \u043d\u0435\u044f\u0441\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043a\u0430\u0440\u0442\u044b (\u0430 \u0442\u0430\u043c \u0432\u043f\u0438\u0445\u043d\u0443\u043b\u0438 42, \u0421\u0422\u0420\u0410\u041d\u042b, \u041a\u0430\u0440\u043b!) \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0440\u043e\u0433\/\u0443\u043b\u0438\u0446 \u0443 \u0433\u043e\u0440\u043e\u0434\u043e\u0432 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043a\u0443\u0434\u043d\u044b\u0439 (\u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433 &#8212; 81 \u0443\u043b\u0438\u0446\u0430 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043d\u044b\u0439 \u0433\u043e\u0440\u043e\u0434; \u041a\u0430\u043b\u0438\u043d\u0438\u043d\u0433\u0440\u0430\u0434 &#8212; 17 \u0443\u043b\u0438\u0446 \u0438 11 \u0430\u0432\u0442\u043e\u0434\u043e\u0440\u043e\u0433; \u0425\u0435\u043b\u044c &#8212; 1 \u0434\u043e\u0440\u043e\u0433\u0430, \u043f\u0440\u043e\u0442\u0438\u0432 58 \u0432 &#171;\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439&#187;; \u0411\u0435\u043b\u0433\u043e\u0440\u043e\u0434 &#8212; 2 \u0434\u043e\u0440\u043e\u0433\u0438, \u043e\u043d\u0438 \u0436\u0435 \u0443\u043b\u0438\u0446\u044b {p185, p186}, \u0432\u0441\u044f \u0411\u0435\u043b\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c &#8212; \u0430\u0436 9 \u0434\u043e\u0440\u043e\u0433 {e105, m2, p185, p186, p187, p188, p189}; \u0431\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0411\u0440\u0435\u0441\u0442 &#8212; \u0433\u043e\u0440\u043e\u0434, \u043d\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u044c &#8212; 5 \u0443\u043b\u0438\u0446: {e30, e581, m1, p17, p83})<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI &#8212; \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 POI_CATEGORY, \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u0441 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0432 \u0442\u0438\u043f\u0435  0xA, \u043d\u043e \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0431\u043b\u043e\u043a\u0430, \u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 POI POI_REFERENCE. \u0421\u043f\u0438\u0441\u043a\u0438 POI \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0434\u0430\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0431\u043b\u043e\u043a\u0438 \u0442\u0438\u043f\u0430 CH_idx_11 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438 \u0442\u0438\u043f\u0430 10h, \u043a\u0430\u043a \u0432 POI_REFERENCE, \u0442\u0430\u043a \u0438 \u0432 POI_CATEGORY.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI \u0443 \u0433\u043e\u0440\u043e\u0434\u043e\u0432 &#8212; City=30h, \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u043c \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430 &#8212; \u0441\u0430\u043c\u0438\u043c \u044d\u0442\u0438\u043c \u0433\u043e\u0440\u043e\u0434\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 en_PLACE_CATEGORY &#8212; \u043a\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u0435\u0441\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u0436\u043d\u043e: \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e, \u0430 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0435\u0451 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0443\u0449\u0435\u0439. \u041f\u0440\u0438\u0437\u043d\u0430\u043a: \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 POI_CATEGORY) \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0445\u0432\u043e\u0441\u0442\u043e\u0432\u0430\u044f &#171;\u043f\u0443\u0441\u0442\u0430\u044f&#187; \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0431\u043b\u043e\u043a\u0435 \u0442\u0438\u043f\u0430 0xC \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 POI_REFERENCE, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 POI.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 &#8212; \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/599661\/\"> https:\/\/habr.com\/ru\/post\/599661\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u043e\u0432 Siemens VDO Dayton CARMiN<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597625\/\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u0432\u0435\u0440\u0441 \u0447\u0435\u0440\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0441\u0435\u0440\u0430\u043a\u0442\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597851\/\" rel=\"noopener noreferrer nofollow\">01 \u0421\u0448\u0435\u0439 \u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0441 \u043a\u0440\u0430\u0441\u043d\u044b\u043c, \u0436\u0435\u043b\u0442\u043e\u0435 \u0441 \u0436\u0435\u043b\u0442\u044b\u043c, \u0431\u0435\u043b\u043e\u0435 \u0441 \u0431\u0435\u043b\u044b\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/598673\/\" rel=\"noopener noreferrer nofollow\">02. \u042f \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0432\u0438\u0436\u0443 \u043a\u043e\u0434. \u042f \u0432\u0438\u0436\u0443 \u0431\u043b\u043e\u043d\u0434\u0438\u043d\u043a\u0443, \u0431\u0440\u044e\u043d\u0435\u0442\u043a\u0443 \u0438 \u0440\u044b\u0436\u0443\u044e<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>\u0411\u043b\u043e\u043a\u0438 0xA \u0438 0xB<\/h3>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/598673\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0443 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0447\u0438\u0441\u0435\u043b \u0438 \u0446\u0438\u0444\u0440 \u0442\u0438\u043f\u0430 \u0431\u043b\u043e\u043a\u0430 0xA, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0430\u043c, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u0438\u043f\u0430 \u0431\u043b\u043e\u043a\u0430 0x0\u0421, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0433\u043e\u0440\u043e\u0434\u0430\u043c.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e \u043a\u0430\u0440\u0442\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0441\u0442\u0440\u0430\u043d 0xA. <\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0421\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f 0 \u043f\u043e 0x30 &#8212; \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430 \u0438 TOC &#8212; table of contents, \u0441\u043f\u0438\u0441\u043e\u043a LIST \u043d\u0430 \u043f\u043e\u043b\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0431\u043b\u043e\u043a\u0435. \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 &#8212; LIST \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c, brief, \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d \u0441 \u043a\u0440\u0430\u0442\u043a\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. (\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0436\u0435\u043b\u0442\u044b\u043c)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f 0x30 &#8212; 8-\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 brief \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d. (\u041a\u0440\u0430\u0441\u043d\u0435\u043d\u044c\u043a\u043e\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c &#8212; \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f (\u0424\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c &#8212; \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043c\u0435\u0441\u0442, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0445 \u043a \u0443\u0440\u043e\u0432\u043d\u044e \u0434\u043e\u0441\u0442\u043e\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b. \u0412\u0435\u0440\u043d\u0435\u0435, \u0434\u0430\u043b\u0435\u043a\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 (FAR_LIST) \u043d\u0430 \u0441\u043f\u0438\u0441\u043a\u0438 points of interests, POI. (\u0421\u0438\u043d\u0435\u043d\u044c\u043a\u043e\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 (\u043d\u0430 \u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445) \u0441\u0442\u0440\u0430\u043d. \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f (\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0445 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u0430)  \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u043a\u043e\u0434\u0430\u043c \u0441\u0442\u0440\u0430\u043d, \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0434\u043e\u0432 en_ENG_COUNTRY_NAME &#8212; \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435, \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0440\u0430\u043d, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/{en_PLACE_CATEGORY 0xA block, ADDINFO_0xA struct typedef enum &lt;ushort>{ Sites_of_interest = 0x14, \/\/ manneken pis ect Museum= 0x20, \/\/musee d'art moderne, musee de l'armee, musee des sciences Naturelles     Sport   = 0x23,  \/\/automotodrom brno, o2 arena, ski areal jasna, o2 arena Architecture = 0x25,\/\/ Fun_park = 0x26,\/\/boudewijn seapark, bruparck Nature_park = 0x27,\/\/het zwin, nationale plantentuin     UN_United_Nations = 0x28, City = 0x30,\/\/russian map Aeroport = 0x3a,\/\/brussel nationaal, brussels airport; , luchthaven brussel Seaport  = 0x35,  \/\/ oostende ramsgate (tonnel), zeebrugge (port), need mode exmpls Border_point = 0x34, \/\/     Winery   = 0x39 \/\/ lanson caves, champagne krug, moet et chandon, ruinart caves }en_PLACE_CATEGORY&lt;bgcolor=cDkGreen, fgcolor=cAqua>;; <\/code><\/pre>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435 &#171;\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f&#187; \u0438\u0437 \u0441\u0435\u043a\u0446\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\n<p>BRIF_0xA &#8212; \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0441 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 PTR \u043d\u0430 MORE_INFO_0xA.<\/p>\n<\/li>\n<li>\n<p>MORE_INFO_0xA &#8212; \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0430\u043d\u0435, \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0441\u0441\u044b\u043b\u043e\u043a FAR_LIST \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u044b. \u0422\u043e\u0447\u043d\u0435\u0435, \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 CH_IDX \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 BT_0x0B_0x0D_0x0F_0x11, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f (\u0438\u043d\u043e\u0433\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 BT_0x0B_0x0D_0x0F_0x11, &#171;\u043d\u0430\u0431\u0438\u0440\u0430\u044f&#187; \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0431\u0443\u043a\u0432) \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u043b\u043e\u043a\u043e\u0432 \u0442\u0438\u043f\u0430 0xC. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 (LIST) \u0442\u043e\u0447\u0435\u043a \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 (POI) \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0441\u0442\u0440\u0430\u043d\u044b,<\/p>\n<\/li>\n<li>\n<p>ADDINFO_0xA, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c POI_CATEGORY. POI_CATEGORY &#8212; enum en_PLACE_CATEGORY \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI, FAR_LIST \u043d\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 CH_IDX \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 BT_0x0B_0x0D_0x0F_0x11, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0x10, \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430 (\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0430\u0440\u0435 \u043c\u0435\u0441\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0441\u043f\u0438\u0441\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 BT_0x0B_0x0D_0x0F_0x11, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b CH_IDX, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043b\u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u043f\u0438\u0441\u043a\u0438 CH_IDX, \u0438\u043b\u0438 \u0432\u0435\u0434\u0443\u0442 &#171;\u043d\u0430\u0440\u0443\u0436\u0443&#187;, \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0438\u043f\u0430\u0445. \u0415\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u0443\u044e \u0432 Variables \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Read_CH_IDX \u0442\u0430\u043a, \u0447\u0442\u043e \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u044b\u0437\u043e\u0432 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0442\u043e \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u0441\u044f.<\/p>\n<pre><code class=\"cpp\">\/\/{BT_0x0B_0x0D_0x0F_0x11; \/\/{CH_IDX struct CH_IDX; typedef struct{     BL_ADDR   bl_postaddr;     char      ch &lt;fgcolor=cYellow, bgcolor=cDkGreen>; \/\/ char     local     en_BL_TYPE en_curr_bl_type &lt;format=hex, hidden=false> = head.type; \/\/ current bl type     \/\/ is_ptr_out - boolean     if(bl_postaddr.type == (en_curr_bl_type-1) ){ \/\/ outer link         ubyte is_ptr_out &lt;bgcolor=cLtBlue, fgcolor=cYellow,hidden=true>;     }else{                                          \/\/ innler link         ubyte is_ptr_out &lt;bgcolor=cLtBlue, fgcolor=cBlue, hidden=true>;     }     \/\/ next for LIST far_away, have use size and offset - from bl_type_0c     local uint size   &lt;format=hex, hidden=true> = bl_postaddr.size *0x800; \/\/ size in blocks, * 0x800     local uint offset &lt;format=hex, hidden=true> = bl_postaddr.offset;       LIST       pl_postaddr &lt;optimize=false>;      CONST_S    align_s(0);         if(align_s.value)     \/\/ \u0442\u0443\u0442 \u043d\u043e\u043b\u044c \u043d\u0435 \u043d\u043e\u043b\u044c             Printf(\"Warn, %X align_s = %i( %X )\\n\",              FTell(), \/\/ offset where happened             align_s.value, align_s.value); \/\/BAD WAY - MAY NOT ENOUGHT MEMORY FOR BIG BLOCKS     if(!is_ptr_out){         \/\/ jmp and recursive declare children struct         local uint return_addr &lt;hidden=true> = FTell();         FSeek(pl_postaddr.offset);            CH_IDX childs[pl_postaddr.cnt]&lt;optimize=false>;         FSeek(return_addr);     } }CH_IDX &lt;read = Read_CH_IDX>; string Read_CH_IDX(CH_IDX &amp;a){     local string brif_str;     local uchar MAX_CNT_STR_getPStrList = 5;     if(a.is_ptr_out){          \/\/ get str list of brif strnames         SPrintf(brif_str, \" block(0x%06X); \/\/of:%X '%c' [%i]>%02x(%s)>%s\",              a.bl_postaddr.raw, a.pl_postaddr.offset,                           a.ch, a.pl_postaddr.cnt,              a.bl_postaddr.type, EnumToString(a.bl_postaddr.type),             getPStrList(a.bl_postaddr.offset,                  a.pl_postaddr, MAX_CNT_STR_getPStrList) );     }else{ \/\/if(!is_ptr_out){         \/\/ get chars list         SPrintf(brif_str, \"%c [%i]>%s\", a.ch,              a.pl_postaddr.cnt,  getChList(a.pl_postaddr));     }      \/\/if(is_ptr_out)     return brif_str; } \/\/}CH_IDX \/\/ BT_0x0B_0x0D_0x0F_0x11 chars - and index to ge names or char set typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST       pl_data;        CH_IDX     char_of[pl_data.cnt] &lt;optimize=false>;     byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0B_0x0D_0x0F_0x11; \/\/}BT_0x0B_0x0D_0x0F_0x11; <\/code><\/pre>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 BT_0x0B_0x0D_0x0F_0x11 \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0435, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044e  \u0435\u0433\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435 0xA \u0432 \u0442\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0433\u0434\u0435 \u043d\u0430 \u043d\u0438\u0445 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f.<\/p>\n<p>\u0412 MORE_INFO_0xA \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c FAR_LIST idx_ch_cityes? \u0422\u0430\u043a \u0442\u0443\u0442 \u0436\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 CH_IDX, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u044f\u043c\u043e \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u0441\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u044b \u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<pre><code class=\"cpp\">\/\/{BT_0x0A \/\/POI_CATEGORY - additional data - part of MORE_INFO_0xA  typedef     struct{   local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block     local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST POIs;         \/\/type 0xF, streets ch_idx     if(POIs.pl_data.cnt){         local uint ret_str_here &lt;hidden=true> = FTell();         FSeek(POIs.pl_data.offset); \/\/ jmp to streets ch_idx             CH_IDX name[POIs.pl_data.cnt] &lt;optimize=false>;          FSeek(ret_str_here);     }     en_PLACE_CATEGORY   en_cat_places;   \/\/     PTR     unkn_str_begin; }POI_CATEGORY&lt;read=Read_POI_CATEGORY>; string Read_POI_CATEGORY(POI_CATEGORY &amp;a){     string s;     SPrintf(s,\"%02Xh %s: [%i]: >%s  block(0x%X);\/\/off:%X\",          a.en_cat_places, EnumToString(a.en_cat_places),         a.POIs.pl_data.cnt, getChList(a.POIs.pl_data),         a.POIs.far_block.raw,         a.POIs.pl_data.offset         );     return s; }\/\/}ADDINFO_0xA == POI_CATEGORY  \/\/MORE_INFO_0xA; - call from BRIF_0xA typedef struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST     idx_ch_cityes;   \/\/ ch_idx with country cityes     \/\/make list ch \/\/ try make citylist from ch_idx values \/\/ TOOooooo slow - 5-10 seconds...     if(idx_ch_cityes.pl_data.cnt){ \/\/ count>0         \/\/struct{         local uint ret_city_here &lt;hidden=true> = FTell();         FSeek(idx_ch_cityes.pl_data.offset);             CH_IDX city[idx_ch_cityes.pl_data.cnt]&lt;optimize=false>; \/\/ ch_idx type data elements         FSeek(ret_city_here);         \/\/}     }     CONST_I dec_11(0x0B) &lt;hidden=true>;     CONST_I dec_22(0x16) &lt;hidden=true>;     CONST_I dec_33(0x21) &lt;hidden=true>;     CONST_I dec_44(0x2C) &lt;hidden=true>;     LIST        pl_addinfo;     CONST_I hex01f4012c(0x01f4012c); \/\/ dec 32768300     CONST_I hex03e801f4(0x03e801f4); \/\/ dec 65536500     ushort       is_island &lt;bgcolor=cLtBlue>;     if((is_island &amp; ~1)) {     \/\/ !=0, !=1         Printf (\" is_island = %i\\n\", is_island); \/\/ !=0, !=1         FSeek(FTell()-2); ushort is_island &lt;bgcolor=cRed, fgcolor=cAqua>;     }     ushort      is_EU &lt;bgcolor=cLtBlue>;     if(is_EU &amp; ~1){      \/\/ !=0, !=1         Printf (\" is_EU = %i\\n\", is_EU);         FSeek(FTell()-2); ushort is_EU &lt;bgcolor=cRed, fgcolor=cAqua>;     }     en_ENG_COUNTRY_NAME      en_eng_strname&lt;fgcolor=cDkGreen, bgcolor=cGreen>;     CONST_S     aligment(0);     if(IS_OFICIAL_MAP){         CONST_S     zero2(0);         \/\/https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1         string   alpha_2_ISO3166_1 &lt;bgcolor=cLtGreen, fgcolor=cDkYellow>;         CONST_B  aligment_b(0);         string   const_triple_defice &lt;bgcolor=cLtGreen,fgcolor=cDkYellow,hidden=true>;         CONST_S  aligment_s(0);      }         \/\/ call ADDINFO_0xA     if(pl_addinfo.cnt){ \/\/ if pl_addinfo != 0         local uint return_here &lt;hidden=true> = FTell();         FSeek(pl_addinfo.offset);             POI_CATEGORY country_POI[pl_addinfo.cnt] &lt;optimize=false>;         FSeek(return_here);     } }MORE_INFO_0xA&lt;read=Read_MORE_INFO_0xA>; string Read_MORE_INFO_0xA(MORE_INFO_0xA &amp;a){     local string s;     SPrintf(s, \"%s\",EnumToString(a.en_eng_strname));     if(exists(a.alpha_2_ISO3166_1))<\/code><\/pre>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-326849","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=326849"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326849\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=326849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=326849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=326849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}