1<!DOCTYPE html><html lang="ru"><head> 2 <meta charset="utf-8"> 3 <title>SmartDec - Publications</title> 4 <base href="/"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <link rel="icon" type="image/x-icon" href="favicon.ico"> 7 <link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-icon-57x57.png"> 8 <link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-icon-60x60.png"> 9 <link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-icon-72x72.png"> 10 <link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-icon-76x76.png"> 11 <link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-icon-114x114.png"> 12 <link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-icon-120x120.png"> 13 <link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-icon-144x144.png"> 14 <link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-icon-152x152.png"> 15 <link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-icon-180x180.png"> 16 <link rel="icon" type="image/png" sizes="192x192" href="/assets/android-icon-192x192.png"> 17 <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"> 18 <link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon-96x96.png"> 19 <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"> 20 <link rel="manifest" href="/assets/manifest.json"> 21 <meta name="msapplication-TileColor" content="#ffffff"> 22 <meta name="msapplication-TileImage" content="/assets/ms-icon-144x144.png"> 23 <meta name="theme-color" content="#ffffff"> 24 25 <!-- Google Tag Manager -->
26<script>
vendor: 333 bytes, lines 26-30
26(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 27 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 28 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 29 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 30})(window,document,'script','dataLayer','
30GTM-KZNW26F
vendor: 3 bytes, line 30
30');
30</script>
30 31<!-- End Google Tag Manager --> 32<link rel="stylesheet" href="/styles.0344c89fbc0e2f86b2ff.css"><style ng-transition="smartdec-site">.collapse[_ngcontent-sc0] { 33 display: none; } 34 35.nav-container[_ngcontent-sc0] .navbar.hidden[_ngcontent-sc0] { 36 height: 0; 37 top: -55px; } 38 39.nav-container[_ngcontent-sc0] .navbar[_ngcontent-sc0] { 40 position: fixed; 41 top: 0; 42 padding-top: 0; 43 width: 100%; 44 margin-left: auto; 45 margin-right: auto; 46 z-index: 1000; 47 background-color: #b9b9b9; 48 height: 60px; 49 visibility: visible; 50 transition: height 0.5s; } 51 52#navbarSecondSupportedContent.hidden[_ngcontent-sc0] { 53 display: none; }</style><style ng-transition="smartdec-site">.nav[_ngcontent-sc1] { 54 display: flex; 55 flex-wrap: wrap; 56 padding-left: 0; 57 margin-bottom: 0; 58 list-style: none; } 59 60.nav-link[_ngcontent-sc1] { 61 display: block; 62 padding: 0.5rem 1rem; } 63 64.nav-link[_ngcontent-sc1]:hover, .nav-link[_ngcontent-sc1]:focus { 65 text-decoration: none; } 66 67.nav-link.disabled[_ngcontent-sc1] { 68 color: #6c757d; 69 pointer-events: none; 70 cursor: default; } 71 72.nav-tabs[_ngcontent-sc1] { 73 border-bottom: 1px solid #dee2e6; } 74 75.nav-tabs[_ngcontent-sc1] .nav-item[_ngcontent-sc1] { 76 margin-bottom: -1px; } 77 78.nav-tabs[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 79 border: 1px solid transparent; 80 border-top-left-radius: 0.25rem; 81 border-top-right-radius: 0.25rem; } 82 83.nav-tabs[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:hover, .nav-tabs[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:focus { 84 border-color: #e9ecef #e9ecef #dee2e6; } 85 86.nav-tabs[_ngcontent-sc1] .nav-link.disabled[_ngcontent-sc1] { 87 color: #6c757d; 88 background-color: transparent; 89 border-color: transparent; } 90 91.nav-tabs[_ngcontent-sc1] .nav-link.active[_ngcontent-sc1], .nav-tabs[_ngcontent-sc1] .nav-item.show[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 92 color: #495057; 93 background-color: #fff; 94 border-color: #dee2e6 #dee2e6 #fff; } 95 96.nav-tabs[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 97 margin-top: -1px; 98 border-top-left-radius: 0; 99 border-top-right-radius: 0; } 100 101.nav-pills[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 102 border-radius: 0.25rem; } 103 104.nav-pills[_ngcontent-sc1] .nav-link.active[_ngcontent-sc1], .nav-pills[_ngcontent-sc1] .show[_ngcontent-sc1] > .nav-link[_ngcontent-sc1] { 105 color: #fff; 106 background-color: #007bff; } 107 108.nav-fill[_ngcontent-sc1] .nav-item[_ngcontent-sc1] { 109 flex: 1 1 auto; 110 text-align: center; } 111 112.nav-justified[_ngcontent-sc1] .nav-item[_ngcontent-sc1] { 113 flex-basis: 0; 114 flex-grow: 1; 115 text-align: center; } 116 117.tab-content[_ngcontent-sc1] > .tab-pane[_ngcontent-sc1] { 118 display: none; } 119 120.tab-content[_ngcontent-sc1] > .active[_ngcontent-sc1] { 121 display: block; } 122 123.navbar[_ngcontent-sc1] { 124 position: relative; 125 display: flex; 126 flex-wrap: wrap; 127 align-items: center; 128 justify-content: space-between; 129 padding: 0.5rem 1rem; } 130 131.navbar[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 132 display: flex; 133 flex-wrap: wrap; 134 align-items: center; 135 justify-content: space-between; } 136 137.navbar-brand[_ngcontent-sc1] { 138 display: inline-block; 139 padding-top: 0.3125rem; 140 padding-bottom: 0.3125rem; 141 margin-right: 1rem; 142 font-size: 1.25rem; 143 line-height: inherit; 144 white-space: nowrap; } 145 146.navbar-brand[_ngcontent-sc1]:hover, .navbar-brand[_ngcontent-sc1]:focus { 147 text-decoration: none; } 148 149.navbar-nav[_ngcontent-sc1] { 150 display: flex; 151 flex-direction: column; 152 padding-left: 0; 153 margin-bottom: 0; 154 list-style: none; } 155 156.navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 157 padding-right: 0; 158 padding-left: 0; } 159 160.navbar-nav[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 161 position: static; 162 float: none; } 163 164.navbar-text[_ngcontent-sc1] { 165 display: inline-block; 166 padding-top: 0.5rem; 167 padding-bottom: 0.5rem; } 168 169.navbar-collapse[_ngcontent-sc1] { 170 flex-basis: 100%; 171 flex-grow: 1; 172 align-items: center; } 173 174.navbar-toggler[_ngcontent-sc1] { 175 padding: 0.25rem 0.75rem; 176 font-size: 1.25rem; 177 line-height: 1; 178 background-color: transparent; 179 border: 1px solid transparent; 180 border-radius: 0.25rem; } 181 182.navbar-toggler[_ngcontent-sc1]:hover, .navbar-toggler[_ngcontent-sc1]:focus { 183 text-decoration: none; } 184 185.navbar-toggler-icon[_ngcontent-sc1] { 186 display: inline-block; 187 width: 1.5em; 188 height: 1.5em; 189 vertical-align: middle; 190 content: ""; 191 background: no-repeat center center; 192 background-size: 100% 100%; } 193 194@media (max-width: 575.98px) { 195 .navbar-expand-sm[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-sm[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 196 padding-right: 0; 197 padding-left: 0; } } 198 199@media (min-width: 576px) { 200 .navbar-expand-sm[_ngcontent-sc1] { 201 flex-flow: row nowrap; 202 justify-content: flex-start; } 203 .navbar-expand-sm[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] { 204 flex-direction: row; } 205 .navbar-expand-sm[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 206 position: absolute; } 207 .navbar-expand-sm[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 208 padding-right: 0.5rem; 209 padding-left: 0.5rem; } 210 .navbar-expand-sm[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-sm[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 211 flex-wrap: nowrap; } 212 .navbar-expand-sm[_ngcontent-sc1] .navbar-collapse[_ngcontent-sc1] { 213 display: flex !important; 214 flex-basis: auto; } 215 .navbar-expand-sm[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 216 display: none; } } 217 218@media (max-width: 767.98px) { 219 .navbar-expand-md[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-md[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 220 padding-right: 0; 221 padding-left: 0; } } 222 223@media (min-width: 768px) { 224 .navbar-expand-md[_ngcontent-sc1] { 225 flex-flow: row nowrap; 226 justify-content: flex-start; } 227 .navbar-expand-md[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] { 228 flex-direction: row; } 229 .navbar-expand-md[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 230 position: absolute; } 231 .navbar-expand-md[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 232 padding-right: 0.5rem; 233 padding-left: 0.5rem; } 234 .navbar-expand-md[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-md[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 235 flex-wrap: nowrap; } 236 .navbar-expand-md[_ngcontent-sc1] .navbar-collapse[_ngcontent-sc1] { 237 display: flex !important; 238 flex-basis: auto; } 239 .navbar-expand-md[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 240 display: none; } } 241 242@media (max-width: 991.98px) { 243 .navbar-expand-lg[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-lg[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 244 padding-right: 0; 245 padding-left: 0; } } 246 247@media (min-width: 992px) { 248 .navbar-expand-lg[_ngcontent-sc1] { 249 flex-flow: row nowrap; 250 justify-content: flex-start; } 251 .navbar-expand-lg[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] { 252 flex-direction: row; } 253 .navbar-expand-lg[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 254 position: absolute; } 255 .navbar-expand-lg[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 256 padding-right: 0.5rem; 257 padding-left: 0.5rem; } 258 .navbar-expand-lg[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-lg[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 259 flex-wrap: nowrap; } 260 .navbar-expand-lg[_ngcontent-sc1] .navbar-collapse[_ngcontent-sc1] { 261 display: flex !important; 262 flex-basis: auto; } 263 .navbar-expand-lg[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 264 display: none; } } 265 266@media (max-width: 1199.98px) { 267 .navbar-expand-xl[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-xl[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 268 padding-right: 0; 269 padding-left: 0; } } 270 271@media (min-width: 1200px) { 272 .navbar-expand-xl[_ngcontent-sc1] { 273 flex-flow: row nowrap; 274 justify-content: flex-start; } 275 .navbar-expand-xl[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] { 276 flex-direction: row; } 277 .navbar-expand-xl[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 278 position: absolute; } 279 .navbar-expand-xl[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 280 padding-right: 0.5rem; 281 padding-left: 0.5rem; } 282 .navbar-expand-xl[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand-xl[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 283 flex-wrap: nowrap; } 284 .navbar-expand-xl[_ngcontent-sc1] .navbar-collapse[_ngcontent-sc1] { 285 display: flex !important; 286 flex-basis: auto; } 287 .navbar-expand-xl[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 288 display: none; } } 289 290.navbar-expand[_ngcontent-sc1] { 291 flex-flow: row nowrap; 292 justify-content: flex-start; } 293 294.navbar-expand[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 295 padding-right: 0; 296 padding-left: 0; } 297 298.navbar-expand[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] { 299 flex-direction: row; } 300 301.navbar-expand[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .dropdown-menu[_ngcontent-sc1] { 302 position: absolute; } 303 304.navbar-expand[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 305 padding-right: 0.5rem; 306 padding-left: 0.5rem; } 307 308.navbar-expand[_ngcontent-sc1] > .container[_ngcontent-sc1], .navbar-expand[_ngcontent-sc1] > .container-fluid[_ngcontent-sc1] { 309 flex-wrap: nowrap; } 310 311.navbar-expand[_ngcontent-sc1] .navbar-collapse[_ngcontent-sc1] { 312 display: flex !important; 313 flex-basis: auto; } 314 315.navbar-expand[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 316 display: none; } 317 318.navbar-light[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1] { 319 color: rgba(0, 0, 0, 0.9); } 320 321.navbar-light[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1]:hover, .navbar-light[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1]:focus { 322 color: rgba(0, 0, 0, 0.9); } 323 324.navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 325 color: rgba(0, 0, 0, 0.5); } 326 327.navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:hover, .navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:focus { 328 color: rgba(0, 0, 0, 0.7); } 329 330.navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link.disabled[_ngcontent-sc1] { 331 color: rgba(0, 0, 0, 0.3); } 332 333.navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .show[_ngcontent-sc1] > .nav-link[_ngcontent-sc1], .navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .active[_ngcontent-sc1] > .nav-link[_ngcontent-sc1], .navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link.show[_ngcontent-sc1], .navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link.active[_ngcontent-sc1] { 334 color: rgba(0, 0, 0, 0.9); } 335 336.navbar-light[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 337 color: rgba(0, 0, 0, 0.5); 338 border-color: rgba(0, 0, 0, 0.1); } 339 340.navbar-light[_ngcontent-sc1] .navbar-toggler-icon[_ngcontent-sc1] { 341 background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } 342 343.navbar-light[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] { 344 color: rgba(0, 0, 0, 0.5); } 345 346.navbar-light[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] a[_ngcontent-sc1] { 347 color: rgba(0, 0, 0, 0.9); } 348 349.navbar-light[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] a[_ngcontent-sc1]:hover, .navbar-light[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] a[_ngcontent-sc1]:focus { 350 color: rgba(0, 0, 0, 0.9); } 351 352.navbar-dark[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1] { 353 color: #fff; } 354 355.navbar-dark[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1]:hover, .navbar-dark[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1]:focus { 356 color: #fff; } 357 358.navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 359 color: rgba(255, 255, 255, 0.5); } 360 361.navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:hover, .navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:focus { 362 color: rgba(255, 255, 255, 0.75); } 363 364.navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link.disabled[_ngcontent-sc1] { 365 color: rgba(255, 255, 255, 0.25); } 366 367.navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .show[_ngcontent-sc1] > .nav-link[_ngcontent-sc1], .navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .active[_ngcontent-sc1] > .nav-link[_ngcontent-sc1], .navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link.show[_ngcontent-sc1], .navbar-dark[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link.active[_ngcontent-sc1] { 368 color: #fff; } 369 370.navbar-dark[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 371 color: rgba(255, 255, 255, 0.5); 372 border-color: rgba(255, 255, 255, 0.1); } 373 374.navbar-dark[_ngcontent-sc1] .navbar-toggler-icon[_ngcontent-sc1] { 375 background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } 376 377.navbar-dark[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] { 378 color: rgba(255, 255, 255, 0.5); } 379 380.navbar-dark[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] a[_ngcontent-sc1] { 381 color: #fff; } 382 383.navbar-dark[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] a[_ngcontent-sc1]:hover, .navbar-dark[_ngcontent-sc1] .navbar-text[_ngcontent-sc1] a[_ngcontent-sc1]:focus { 384 color: #fff; } 385 386.fade[_ngcontent-sc1] { 387 transition: opacity 0.15s linear; } 388 389@media (prefers-reduced-motion: reduce) { 390 .fade[_ngcontent-sc1] { 391 transition: none; } } 392 393.fade[_ngcontent-sc1]:not(.show) { 394 opacity: 0; } 395 396.collapse[_ngcontent-sc1]:not(.show) { 397 display: none; } 398 399.collapsing[_ngcontent-sc1] { 400 position: relative; 401 height: 0; 402 overflow: hidden; 403 transition: height 0.35s ease; } 404 405@media (prefers-reduced-motion: reduce) { 406 .collapsing[_ngcontent-sc1] { 407 transition: none; } } 408 409.logo[_ngcontent-sc1], a.logo[_ngcontent-sc1] { 410 font-family: 'Foundry Gridnik Bold', Verdana, Arial, sans-serif !important; 411 font-size: 28px; 412 letter-spacing: -0.04em; 413 display: inline-block; } 414 415.logo[_ngcontent-sc1] a[_ngcontent-sc1] { 416 text-decoration: none; 417 color: black; } 418 419a.logo-top[_ngcontent-sc1] { 420 font-size: 22px; 421 letter-spacing: normal; 422 margin-right: 0; } 423
424.nav-main[_ngcontent-sc1] { 425 padding: 15px 0; 426 margin: 0; } 427 428.nav-main[_ngcontent-sc1] .nav-item[_ngcontent-sc1] { 429 padding: 0 23px; } 430 431.nav-main[_ngcontent-sc1] .nav-item[_ngcontent-sc1]:last-child { 432 padding-left: 26px; 433 padding-right: 0; } 434 435.nav-main.fixednav[_ngcontent-sc1] .nav-item[_ngcontent-sc1]:last-child { 436 padding-right: 52px; } 437 438.nav-main[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 439 font-family: 'Proba Pro Md', Verdana, Arial, sans-serif; 440 color: black !important; 441 text-decoration: none; 442 display: block; 443 margin-right: 52px; 444 margin-bottom: 10px; 445 font-size: 15px; 446 font-variant: small-caps; 447 letter-spacing: 3px; 448 border-radius: 20px; 449 padding-right: 3px !important; 450 padding-left: 3px !important; } 451 452.nav-main[_ngcontent-sc1] .nav-link[_ngcontent-sc1]:last-child { 453 margin-right: 0; 454 display: inline-block; } 455 456@media (min-width: 768px) { 457 .nav-main.mainnav[_ngcontent-sc1] .nav-main-highlighted[_ngcontent-sc1] { 458 border-radius: 20px; 459 text-decoration: none; 460 border: 1px solid #353535; 461 padding: 9px 17px !important; 462 text-align: center; 463 min-width: 155px; 464 box-sizing: border-box; 465 background: white; 466 position: relative; 467 z-index: 150; } 468 .nav-main[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 469 display: inline-block; } 470 a.logo-top[_ngcontent-sc1] { 471 font-size: 22px; 472 letter-spacing: normal; } 473 .logo-top-expand-sm[_ngcontent-sc1] .logo-top-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 474 padding-right: 2rem; 475 padding-left: 2rem; } } 476 477@media (max-width: 767.98px) { 478 .nav-main[_ngcontent-sc1] .navbar-collapse[_ngcontent-sc1] { 479 background-color: white; 480 border-bottom: #e1e1e1 1px solid; 481 z-index: 1500; } 482 .navbar[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1] { 483 margin-left: 30px; } 484 .navbar[_ngcontent-sc1] .navbar-toggler[_ngcontent-sc1] { 485 margin-right: 20px; } 486 .navbar[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] { 487 margin-left: 20px; } } 488 489.navbar-toggler[_ngcontent-sc1] { 490 color: black; } 491 492.navbar-light[_ngcontent-sc1] .navbar-nav[_ngcontent-sc1] .nav-link[_ngcontent-sc1] { 493 color: rgba(0, 0, 0, 0.87); } 494 495.navbar-nav[_ngcontent-sc1] { 496 margin-left: auto; } 497 498.navbar.mainnav[_ngcontent-sc1] { 499 position: absolute; 500 top: 0; 501 left: 0; 502 right: 0; 503 padding-top: 50px; 504 width: 100%; 505 z-index: 1; 506 height: 100px; 507 margin-left: auto; 508 margin-right: auto; } 509 510@media (min-width: 576px) { 511 .navbar.mainnav[_ngcontent-sc1] { 512 max-width: 540px; } } 513 514@media (min-width: 768px) { 515 .navbar.mainnav[_ngcontent-sc1] { 516 max-width: 720px; } } 517 518@media (min-width: 992px) { 519 .navbar.mainnav[_ngcontent-sc1] { 520 max-width: 960px; } } 521 522@media (min-width: 1200px) { 523 .navbar.mainnav[_ngcontent-sc1] { 524 max-width: 1140px; } } 525 526.navbar.fixednav[_ngcontent-sc1] { 527 position: fixed; 528 z-index: 1500; 529 width: 100%; 530 height: 60px; 531 background-color: white; 532 top: 0; 533 border-bottom: #e1e1e1 1px solid; } 534 535.navbar.fixednav[_ngcontent-sc1] .navbar-brand[_ngcontent-sc1] { 536 margin-left: 30px; }</style><style ng-transition="smartdec-site">.progressive[_ngcontent-sc2] img { 537 min-width: 100%; } 538 539.contact-card-en[_ngcontent-sc2] { 540 margin-top: 40px; } 541 542@media (min-width: 576px) { 543 .contact-card-en[_ngcontent-sc2] { 544 width: 420px; } } 545 546.contact-card-en[_ngcontent-sc2] .contact-logo[_ngcontent-sc2] { 547 margin-top: -4px; 548 margin-right: 0; } 549 550.contact-card-en[_ngcontent-sc2] .telephone[_ngcontent-sc2] a[_ngcontent-sc2] { 551 font-size: 20px; } 552 553.contact-card-top-en[_ngcontent-sc2] { 554 padding: 21px 35px 30px 40px; 555 border-bottom: 1px solid #e1e1e1; } 556 557.contact-dep[_ngcontent-sc2] { 558 display: block; 559 margin: 25px 0 3px 0; } 560 561.contact-address-hor[_ngcontent-sc2] { 562 display: inline-block; 563 margin-left: 10px; 564 font-size: 17px; }</style><style ng-transition="smartdec-site"></style><meta name="author" content="smartdec.net"><meta name="keywords" content="audit, development, smart contracts, publications"><meta name="description" content="SmartDec publications"></head> 565<body> 566<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 566-567
566 567<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
567GTM-KZNW26F
vendor: 101 bytes, lines 567-568
567" 568 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
569<!-- End Google Tag Manager (noscript) --> 570 571 <app-root _nghost-sc0="" ng-version="6.1.9"><app-navbar _ngcontent-sc0="" _nghost-sc1="" class="ng-tns-c1-0"><nav _ngcontent-sc1="" class="navbar navbar-expand-lg navbar-light nav-main mainnav ng-trigger ng-trigger-navState" style=""><a _ngcontent-sc1="" class="navbar-brand logo logo-top" routerlink="/" href="/">SmartDec</a><button _ngcontent-sc1="" class="navbar-toggler" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" data-target="#navbarSupportedContent" data-toggle="collapse" type="button"><span _ngcontent-sc1="" class="navbar-toggler-icon"></span></button><div _ngcontent-sc1="" class="collapse navbar-collapse" id="navbarSupportedContent"><ul _ngcontent-sc1="" class="navbar-nav ml-auto mt-2 mt-lg-0"><li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link" href="https://blog.smartdec.net/" rel="noopener" target="_blank">blog</a></li><li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link" routerlink="publications" href="/publications">publications</a></li><li _ngcontent-sc1="" class="nav-item"><!----></li><li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link nav-main-highlighted" fragment="contacts" routerlink="" href="/#contacts">contact us</a></li></ul></div></nav></app-navbar><router-outlet _ngcontent-sc0=""></router-outlet><app-publications _nghost-sc8="" class="ng-star-inserted"><div _ngcontent-sc8="" class="container section-title-cont section-title-publications" style="margin-top: 180px;"><h1 _ngcontent-sc8="" class="section-title page-title page-title-publications">Publications</h1><span _ngcontent-sc8="" class="bg-title bg-publications bg-page-publications"></span></div><div _ngcontent-sc8="" class="container bg-publ-div"><div _ngcontent-sc8="" class="cont-1-col"><section _ngcontent-sc8="" class="card publications-card"><div _ngcontent-sc8="" class="card-top grayscale progressive replace" data-href="images/bg_publ_en.jpg"><img _ngcontent-sc8="" alt="image" class="preview" src="images/bg_publ_en_tiny.jpg"><h2 _ngcontent-sc8="" class="card-title card-title-publ">In English</h2></div><div _ngcontent-sc8="" class="card-bot card-bot-publ"><ol _ngcontent-sc8="" class="publ-ol"><li _ngcontent-sc8="">Sergei Tikhomirov [University of Luxembourg], Ekaterina Voskresenskaya, Ivan Ivanitskiy, Ramil Takhaviev, Evgeny Marchenko, Yaroslav Alexandrov. <strong _ngcontent-sc8="">SmartCheck: Static Analysis of Ethereum Smart Contracts.</strong> ICSE WETSEB, Gothenburg 2018. [<a _ngcontent-sc8="" href="http://orbilu.uni.lu/handle/10993/35862">link</a>]</li><li _ngcontent-sc8="">Egor Fominykh, Lenar Safin, Yaroslav Alexandrov. <strong _ngcontent-sc8="">Analysing iOS apps: road from AppStore to security analysis report.</strong> REcon, Brussels 2017. [<a _ngcontent-sc8="" href="https://recon.cx/2017/brussels/resources/slides/RECON-BRX-2017-Analysing_ios_Apps.pdf">PDF</a>]</li><li _ngcontent-sc8="">Aleksandrov Y., Safin L., Troshina K., Chernov A. <strong _ngcontent-sc8="">Static Binary Analysis of Mobile Applications for the Android Platform, According to the Requirements of Information Security.</strong> Moscow University Computational Mathematics and Cybernetics (ISSN 0278-6419). 2016, N 3. pp 141-146.</li><li _ngcontent-sc8="">A. Chernov and K. Troshina. <strong _ngcontent-sc8="">Reverse engineering of binary programs for custom virtual machines.</strong> Recon conference. Montreal, Canada. 14-16 June 2012. [<a _ngcontent-sc8="" href="https://recon.cx/2012/schedule/attachments/40_Chernov-Troshina.pdf">presentation</a>]</li><li _ngcontent-sc8="">A. Fokin, E. Derevenetc, A. Chernov and K. Troshina. <strong _ngcontent-sc8="">SmartDec: Approaching C++ Decompilation.</strong> In Proceedings of 18th Working Conference on Reverse Engineering. Limerick, Ireland. 17-20 October 2011, pp. 347-356. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/6079860/">IEEE</a>]</li><li _ngcontent-sc8="">K. Troshina, Y. Derevenets and A. Chernov. <strong _ngcontent-sc8="">Reconstruction of composite types for Decompilation.</strong> In Proceedings of 10th IEEE International Working Conference on Source Code Analysis and Manipulation. Timisoara, Romania. 12-13 September 2010, pp. 179-188. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/5601851/">IEEE</a>]</li><li _ngcontent-sc8="">
571A. Fokin, K. Troshina and A. Chernov. <strong _ngcontent-sc8="">Reconstruction of Class Hierarchies for Decompilation of C++ Programs.</strong> In Proceedings of 14th European Conference on Software Maintenance and Reengineering, March 2010. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/5714442/">IEEE</a>]</li><li _ngcontent-sc8="">K. Troshina, A. Chernov and Y. Derevenets. <strong _ngcontent-sc8="">C Decompilation: Is It Possible?</strong> In Proceedings of International Workshop on Program Understanding. Altai Mountains, Russia. 19-23 June 2009, pp. 18-27.</li><li _ngcontent-sc8="">K. Troshina and A. Chernov. <strong _ngcontent-sc8="">High-Level Composite Type Reconstruction During Decompilation from Assembly Programs.</strong> In Proceedings of 7th Perspectives of System Informatics. Akademgorodok, Novosibirsk, Russia, 15-19 June 2009, pp. 292-299.</li><li _ngcontent-sc8="">K. Troshina, A. Chernov and A. Fokin. <strong _ngcontent-sc8="">Profile-Based Type Reconstruction for Decompilation.</strong> In Proceedings of IEEE 17th International Conference on Program Comprehension. Vancouver, Canada, 17-19 May 2009, pp. 263-267. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/5090054/">IEEE</a>]</li><li _ngcontent-sc8="">K. Dolgova, A. Chernov. <strong _ngcontent-sc8="">Automatic Type Reconstruction in Disassembled C Programs.</strong> In Proceedings of IEEE 15th Working Conference on Reverse Engineering 2008. Antwerp, Belgium, October 2008, ÑÑ. 202-206. [<a _ngcontent-sc8="" href="http://ieeexplore.ieee.org/document/4656411/">IEEE</a>]</li></ol></div></section></div></div></app-publications><app-footer _ngcontent-sc0="" id="contacts" _nghost-sc2=""><footer _ngcontent-sc2="" class="gradient-border mt-md-5"><div _ngcontent-sc2="" appmap="" id="footer-back" style="height: 600px"></div><!----><!----><div _ngcontent-sc2="" class="cont footer-cont ng-star-inserted"><div _ngcontent-sc2="" class="card-border contact-card contact-card-en"><div _ngcontent-sc2="" class="contact-card-top-en" itemscope="" itemtype="http://schema.org/Organization"><span _ngcontent-sc2="" class="logo contact-logo" itemprop="name">SmartDec</span><span _ngcontent-sc2="" class="contact-phone" itemprop="telephone"><strong _ngcontent-sc2="">+7 (499) 750â03â27</strong></span><br _ngcontent-sc2=""><a _ngcontent-sc2="" class="contact-email" href="mailto:[email protected]" itemprop="email" rel="noopener" target="_blank"><strong _ngcontent-sc2="">[email protected]</strong></a></div><div _ngcontent-sc2="" class="contact-card-bot"><div _ngcontent-sc2="" class="contact-bot-left"><a _ngcontent-sc2="" class="contact-email" href="mailto:[email protected]" itemprop="email" rel="noopener" target="_blank"><strong _ngcontent-sc2="">[email protected]</strong></a></div></div></div></div></footer></app-footer></app-root>
572<script type="text/javascript" src="/runtime.6793fd3703c0e4a51900.js"></script>
572<script type="text/javascript" src="/polyfills.be4d8e30f39bc39f66bb.js"></script>
572<script type="text/javascript" src="/scripts.8c8a3b7556a03e2f1c44.js"></script>
572<script type="text/javascript" src="/main.3d0c99a52c1db0715a14.js"></script>
572 573
574<script id="smartdec-site-state" type="application/json">{}</script>
574</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.