WJ';}@media only screen and (min-width:37.5rem){.bar-header .logo a:after{content:'> Souhaieb Tarhouni'}}.header-post{min-height:31.25rem;position:fixed;width:100%;}.header-post .content{margin:auto;max-width:50rem}.header-post .subheader{display:table;padding:20px;}.header-post .subheader a{border:2px solid #fff;border-radius:20px;padding:0 10px;}@media only screen and (min-width:37.5rem){.header-post .subheader a{padding:0 10px}}.header-post .date{font-weight:300;font-style:normal;font-size:1rem}.header-post h1{font-size:1.875rem;margin:0 0 30px;text-shadow:3px 3px #004c79;}@media only screen and (min-width:37.5rem){.header-post h1{font-size:3.75rem}}.header-post .subtitle{font-weight:300;font-style:normal;font-size:1.25rem}.header-post h1,.header-post .subtitle,.header-post .date{color:#fff;text-align:center}.header-post a,.header-post p{color:#fff;text-decoration:none;font-weight:300;font-style:normal;font-size:1.125rem}.post-content h1:before,.frame-content h1:before,.post-content h2:before,.frame-content h2:before,.post-content h3:before,.frame-content h3:before,.post-content h4:before,.frame-content h4:before,.post-content h5:before,.frame-content h5:before,.tag-title:before{display:block;content:" ";margin-top:-60px;height:75px;visibility:hidden}.post{position:relative;top:31.25rem;background:#fff}.post-content,.frame-content{padding:2.5rem 0;}.post-content img,.frame-content img{max-width:100%;margin:1.875rem auto;display:block}.post-content p,.frame-content p,.post-content h1,.frame-content h1,.post-content h2,.frame-content h2,.post-content h3,.frame-content h3,.post-content h4,.frame-content h4,.post-content ul,.frame-content ul,.post-content ol,.frame-content ol,.post-content .tags,.frame-content .tags,.post-content iframe,.frame-content iframe,.post-content .button-post,.frame-content .button-post{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem;margin:0 auto 1.875rem;font-weight:300;font-style:normal;font-size:1.25rem;line-height:2;letter-spacing:.069rem;}.post-content p:before,.frame-content p:before,.post-content h1:before,.frame-content h1:before,.post-content h2:before,.frame-content h2:before,.post-content h3:before,.frame-content h3:before,.post-content h4:before,.frame-content h4:before,.post-content ul:before,.frame-content ul:before,.post-content ol:before,.frame-content ol:before,.post-content .tags:before,.frame-content .tags:before,.post-content iframe:before,.frame-content iframe:before,.post-content .button-post:before,.frame-content .button-post:before,.post-content p:after,.frame-content p:after,.post-content h1:after,.frame-content h1:after,.post-content h2:after,.frame-content h2:after,.post-content h3:after,.frame-content h3:after,.post-content h4:after,.frame-content h4:after,.post-content ul:after,.frame-content ul:after,.post-content ol:after,.frame-content ol:after,.post-content .tags:after,.frame-content .tags:after,.post-content iframe:after,.frame-content iframe:after,.post-content .button-post:after,.frame-content .button-post:after{content:'';display:table}.post-content p:after,.frame-content p:after,.post-content h1:after,.frame-content h1:after,.post-content h2:after,.frame-content h2:after,.post-content h3:after,.frame-content h3:after,.post-content h4:after,.frame-content h4:after,.post-content ul:after,.frame-content ul:after,.post-content ol:after,.frame-content ol:after,.post-content .tags:after,.frame-content .tags:after,.post-content iframe:after,.frame-content iframe:after,.post-content .button-post:after,.frame-content .button-post:after{clear:both}@media only screen and (min-width:37.5rem){.post-content p,.frame-content p,.post-content h1,.frame-content h1,.post-content h2,.frame-content h2,.post-content h3,.frame-content h3,.post-content h4,.frame-content h4,.post-content ul,.frame-content ul,.post-content ol,.frame-content ol,.post-content .tags,.frame-content .tags,.post-content iframe,.frame-content iframe,.post-content .button-post,.frame-content .button-post{font-size:1.25rem}}.post-content li,.frame-content li{padding:.625rem 0;}.post-content li > ul,.frame-content li > ul{margin-bottom:0}.post-content p,.frame-content p,.post-content li,.frame-content li{color:#333;}.post-content p code,.frame-content p code,.post-content li code,.frame-content li code{color:#005f97;word-wrap:break-word}.post-content a,.frame-content a{color:#005f97;border-bottom:2px dashed #005f97;font-weight:300;font-style:normal;text-decoration:none;transition:all .3s;}.post-content a:hover,.frame-content a:hover{background:#005f97;color:#fff}.post-content .externalLink:after,.frame-content .externalLink:after{display:inline-block;content:'';color:#005f97;background-image:url("/assets/img/external.svg");background-size:100%;margin-left:.313rem;width:1.125rem;height:1.125rem}.post-content iframe,.frame-content iframe{margin-top:1.875rem;width:100%}.post-content #twitter-widget-0,.frame-content #twitter-widget-0,.post-content .instagram-media,.frame-content .instagram-media,.post-content .twitter-tweet,.frame-content .twitter-tweet{margin:20px auto !important}.post-content h1,.frame-content h1,.post-content h2,.frame-content h2,.post-content h3,.frame-content h3,.post-content h4,.frame-content h4,.post-content h5,.frame-content h5{font-weight:800;font-style:normal;}.post-content h1,.frame-content h1{font-size:1.875rem;line-height:1.4;}@media only screen and (min-width:37.5rem){.post-content h1,.frame-content h1{font-size:2.813rem}}.post-content h2,.frame-content h2{font-size:1.375rem;line-height:1.4;}@media only screen and (min-width:37.5rem){.post-content h2,.frame-content h2{font-size:2.188rem}}.post-content h3,.frame-content h3{font-size:1.125rem;line-height:1.4;}@media only screen and (min-width:37.5rem){.post-content h3,.frame-content h3{font-size:1.563rem}}.post-content ul,.frame-content ul,.post-content ol,.frame-content ol{padding-left:2.5rem}.post-content ul.post-list,.frame-content ul.post-list{padding:0;}.post-content ul.post-list.svg-serie p,.frame-content ul.post-list.svg-serie p{padding:0}@media only screen and (max-width:37.5rem){.post-content ul.post-list,.frame-content ul.post-list{padding:0 1.25rem}}.post-content blockquote,.frame-content blockquote{*zoom:1;width:auto;max-width:45.625rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;border-left:.313rem solid #005f97;padding:0 1.875rem;margin:3.125rem auto;}.post-content blockquote:before,.frame-content blockquote:before,.post-content blockquote:after,.frame-content blockquote:after{content:'';display:table}.post-content blockquote:after,.frame-content blockquote:after{clear:both}@media only screen and (max-width:37.5rem){.post-content blockquote,.frame-content blockquote{width:90%}}.post-content blockquote p,.frame-content blockquote p{color:rgba(0,0,0,0.6);margin:0;}@media only screen and (max-width:37.5rem){.post-content blockquote p,.frame-content blockquote p{font-size:1.125rem;line-height:1.5;padding:0}}.post-content hr,.frame-content hr{*zoom:1;width:auto;max-width:47.5rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;border:1px solid #f2f2f2;margin:50px auto}.post-content hr:before,.frame-content hr:before,.post-content hr:after,.frame-content hr:after{content:'';display:table}.post-content hr:after,.frame-content hr:after{clear:both}.post-content > table,.frame-content > table{margin:3.125rem auto;}@media only screen and (max-width:37.5rem){.post-content > table,.frame-content > table{display:none}}.post-content > table th,.frame-content > table th,.post-content > table td,.frame-content > table td{border:.125rem solid #ccc;padding:.313rem}.post-content td > pre,.frame-content td > pre{padding:0;margin:0}.post-content td.gutter.gl,.frame-content td.gutter.gl{padding-right:1.563rem;line-height:1.5rem}.tag-title{font-weight:300;font-style:normal;font-size:2.25rem;margin-top:3.75rem;*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;}.tag-title:before,.tag-title:after{content:'';display:table}.tag-title:after{clear:both}@media only screen and (max-width:37.5rem){.tag-title{font-size:1.75rem;margin-top:1.25rem;padding:0 1.25rem}}.post-list{list-style:none;margin:1.563rem auto;}@media only screen and (max-width:37.5rem){.post-list{padding:0 1.25rem}}.post-list a{display:block;border-bottom:1px solid #dadada;padding:.625rem 0;text-decoration:none;transition:all .5s;}.post-list a:hover{color:#002f4c;border-bottom:1px solid #002f4c;background:#fff}.post-list .entry-date{float:right;}@media only screen and (max-width:37.5rem){.post-list .entry-date{display:none}}iframe[src*='ads-iframe']{display:none}.share{*zoom:1;width:auto;max-width:800px;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;text-align:center;}.share:before,.share:after{content:'';display:table}.share:after{clear:both}.share svg{margin:.938rem;width:35px;height:35px}.share a{text-decoration:none;border:none}pre{background:#282c34;width:100%;padding:1.25rem 0;color:#fff;margin:1.875rem 0;font-size:.875rem;}@media only screen and (min-width:37.5rem){pre{font-size:1rem;padding:2.5rem 0;margin:3.125rem 0}}pre code{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem;}pre code:before,pre code:after{content:'';display:table}pre code:after{clear:both}@media only screen and (max-width:37.5rem){pre code{overflow-x:scroll}}pre span{line-height:1.5rem;font-family:'Monaco','Consolas','Menlo',monospace}.highlight{margin:1.25rem 0;}@media only screen and (min-width:37.5rem){.highlight{word-wrap:break-word}}.token.attr-name{color:#c5a5c5}.token.boolean{color:#ff8b50}.token.tag{color:#fc929e}.token.string{color:#8dc891}.token.punctuation{color:#5fb3b3}.token.function{color:#79b6f2}.token.attr-value{color:#8dc891}.token.keyword{color:#c5a5c5}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.property,.token.number,.token.function-name,.token.constant,.token.symbol,.token.deleted{color:#5a9bcf}.token.selector,.token.char,.token.builtin,.token.inserted{color:#d8dee9}.token.operator,.token.entity,.token.url,.token.variable{color:#d7deea}.token.atrule,.token.class-name{color:#fac863}.namespace{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);opacity:.7}.author{background:#f2f2f2;display:table;width:100%;padding:2.5rem 0;margin:2.5rem 0;}@media only screen and (min-width:37.5rem){.author{padding:3.125rem 0}}.author .details{margin:auto;max-width:50rem;padding:0 1.25rem;}@media only screen and (max-width:37.5rem){.author .details{text-align:center}}.author img{border-radius:50%;display:block;margin:auto;}@media only screen and (min-width:37.5rem){.author img{float:left;margin-right:3.125rem}}.author .def{color:#808080;font-size:1.125rem;font-weight:300;font-style:normal;margin:.625rem;}@media only screen and (min-width:37.5rem){.author .def{margin:0;padding-top:1.563rem}}.author .name{margin:0;}.author .name a{font-weight:800;font-style:normal;text-decoration:none;color:#000;font-size:1.875rem;}.author .name a:hover{color:#005f97}@media only screen and (min-width:37.5rem){.author .name a{font-size:2.813rem}}.author .desc{font-weight:300;font-style:normal;margin:.625rem;font-size:1rem;}@media only screen and (min-width:37.5rem){.author .desc{font-size:1.25rem}}.author .email{text-decoration:none;color:#005f97}.comments{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem;}.comments:before,.comments:after{content:'';display:table}.comments:after{clear:both}.comments h3{margin:0 0 1.875rem;font-size:1.875rem}footer{background:#005f97;padding:1.563rem 0;margin-top:100px;}footer p,footer a{text-decoration:none;font-weight:300;font-style:normal;color:#fff;text-align:center;margin:0}.post-jekyll .title-category{color:#b31917}.post-jekyll .post-content h1,.post-jekyll .post-content h2,.post-jekyll .post-content h3,.post-jekyll .post-content h4{color:#b31917}.post-jekyll .post-content a{color:#b31917;border-bottom:2px dashed #b31917;}.post-jekyll .post-content a:hover{background-color:#b31917;color:#fff}.post-jekyll .post-content strong{color:#b31917}.post-jekyll .post-content p code,.post-jekyll .post-content li code{color:#b31917}.post-jekyll .post-content blockquote{border-left:.313rem solid #b31917}.post-jekyll .header-post,.post-jekyll .header-site{background-color:#b31917;}.post-jekyll .header-post h1,.post-jekyll .header-site h1{text-shadow:3px 3px #8f1412}.post-jekyll .bar-header .logo a{color:#b31917}.post-jekyll .author .email{color:#b31917}.post-jekyll .share a:hover svg{fill:#b31917}@media only screen and (max-width:37.5rem){.post-jekyll body.search-overlay:after{background-color:#b31917}}.post-jekyll .icon-menu{fill:#b31917}.post-jekyll .cursos-menu{color:#b31917}.post-jekyll .box-body h2{color:#b31917}.post-jekyll .box-body .tags a{color:#b31917;border:1px solid #b31917;}.post-jekyll .box-body .tags a:hover{color:#fff;background:#b31917}.post-jekyll .related-post a{color:#b31917}.post-jekyll aside{background-color:#b31917;}.post-jekyll aside nav li a:hover{color:#b31917}.post-jekyll .ribbon span{background-color:#b31917;}.post-jekyll .ribbon span:before{border-left:3px solid #7d1210;border-top:3px solid #7d1210}.post-jekyll .ribbon span:after{border-right:3px solid #7d1210;border-top:3px solid #7d1210}.post-jekyll footer{background-color:#b31917}.post-css .title-category{color:#2da0c3}.post-css .post-content h1,.post-css .post-content h2,.post-css .post-content h3,.post-css .post-content h4{color:#2da0c3}.post-css .post-content a{color:#2da0c3;border-bottom:2px dashed #2da0c3;}.post-css .post-content a:hover{background-color:#2da0c3;color:#fff}.post-css .post-content strong{color:#2da0c3}.post-css .post-content p code,.post-css .post-content li code{color:#2da0c3}.post-css .post-content blockquote{border-left:.313rem solid #2da0c3}.post-css .header-post,.post-css .header-site{background-color:#2da0c3;}.post-css .header-post h1,.post-css .header-site h1{text-shadow:3px 3px #24809c}.post-css .bar-header .logo a{color:#2da0c3}.post-css .author .email{color:#2da0c3}.post-css .share a:hover svg{fill:#2da0c3}@media only screen and (max-width:37.5rem){.post-css body.search-overlay:after{background-color:#2da0c3}}.post-css .icon-menu{fill:#2da0c3}.post-css .cursos-menu{color:#2da0c3}.post-css .box-body h2{color:#2da0c3}.post-css .box-body .tags a{color:#2da0c3;border:1px solid #2da0c3;}.post-css .box-body .tags a:hover{color:#fff;background:#2da0c3}.post-css .related-post a{color:#2da0c3}.post-css aside{background-color:#2da0c3;}.post-css aside nav li a:hover{color:#2da0c3}.post-css .ribbon span{background-color:#2da0c3;}.post-css .ribbon span:before{border-left:3px solid #207088;border-top:3px solid #207088}.post-css .ribbon span:after{border-right:3px solid #207088;border-top:3px solid #207088}.post-css footer{background-color:#2da0c3}.post-js .title-category{color:#d6ba32}.post-js .post-content h1,.post-js .post-content h2,.post-js .post-content h3,.post-js .post-content h4{color:#d6ba32}.post-js .post-content a{color:#d6ba32;border-bottom:2px dashed #d6ba32;}.post-js .post-content a:hover{background-color:#d6ba32;color:#fff}.post-js .post-content strong{color:#d6ba32}.post-js .post-content p code,.post-js .post-content li code{color:#d6ba32}.post-js .post-content blockquote{border-left:.313rem solid #d6ba32}.post-js .header-post,.post-js .header-site{background-color:#d6ba32;}.post-js .header-post h1,.post-js .header-site h1{text-shadow:3px 3px #b09823}.post-js .bar-header .logo a{color:#d6ba32}.post-js .author .email{color:#d6ba32}.post-js .share a:hover svg{fill:#d6ba32}@media only screen and (max-width:37.5rem){.post-js body.search-overlay:after{background-color:#d6ba32}}.post-js .icon-menu{fill:#d6ba32}.post-js .cursos-menu{color:#d6ba32}.post-js .box-body h2{color:#d6ba32}.post-js .box-body .tags a{color:#d6ba32;border:1px solid #d6ba32;}.post-js .box-body .tags a:hover{color:#fff;background:#d6ba32}.post-js .related-post a{color:#d6ba32}.post-js aside{background-color:#d6ba32;}.post-js aside nav li a:hover{color:#d6ba32}.post-js .ribbon span{background-color:#d6ba32;}.post-js .ribbon span:before{border-left:3px solid #9a851f;border-top:3px solid #9a851f}.post-js .ribbon span:after{border-right:3px solid #9a851f;border-top:3px solid #9a851f}.post-js footer{background-color:#d6ba32}.post-svg .title-category{color:#7d669e}.post-svg .post-content h1,.post-svg .post-content h2,.post-svg .post-content h3,.post-svg .post-content h4{color:#7d669e}.post-svg .post-content a{color:#7d669e;border-bottom:2px dashed #7d669e;}.post-svg .post-content a:hover{background-color:#7d669e;color:#fff}.post-svg .post-content strong{color:#7d669e}.post-svg .post-content p code,.post-svg .post-content li code{color:#7d669e}.post-svg .post-content blockquote{border-left:.313rem solid #7d669e}.post-svg .header-post,.post-svg .header-site{background-color:#7d669e;}.post-svg .header-post h1,.post-svg .header-site h1{text-shadow:3px 3px #64517f}.post-svg .bar-header .logo a{color:#7d669e}.post-svg .author .email{color:#7d669e}.post-svg .share a:hover svg{fill:#7d669e}@media only screen and (max-width:37.5rem){.post-svg body.search-overlay:after{background-color:#7d669e}}.post-svg .icon-menu{fill:#7d669e}.post-svg .cursos-menu{color:#7d669e}.post-svg .box-body h2{color:#7d669e}.post-svg .box-body .tags a{color:#7d669e;border:1px solid #7d669e;}.post-svg .box-body .tags a:hover{color:#fff;background:#7d669e}.post-svg .related-post a{color:#7d669e}.post-svg aside{background-color:#7d669e;}.post-svg aside nav li a:hover{color:#7d669e}.post-svg .ribbon span{background-color:#7d669e;}.post-svg .ribbon span:before{border-left:3px solid #57476f;border-top:3px solid #57476f}.post-svg .ribbon span:after{border-right:3px solid #57476f;border-top:3px solid #57476f}.post-svg footer{background-color:#7d669e}.post-dev .title-category{color:#637a91}.post-dev .post-content h1,.post-dev .post-content h2,.post-dev .post-content h3,.post-dev .post-content h4{color:#637a91}.post-dev .post-content a{color:#637a91;border-bottom:2px dashed #637a91;}.post-dev .post-content a:hover{background-color:#637a91;color:#fff}.post-dev .post-content strong{color:#637a91}.post-dev .post-content p code,.post-dev .post-content li code{color:#637a91}.post-dev .post-content blockquote{border-left:.313rem solid #637a91}.post-dev .header-post,.post-dev .header-site{background-color:#637a91;}.post-dev .header-post h1,.post-dev .header-site h1{text-shadow:3px 3px #4f6274}.post-dev .bar-header .logo a{color:#637a91}.post-dev .author .email{color:#637a91}.post-dev .share a:hover svg{fill:#637a91}@media only screen and (max-width:37.5rem){.post-dev body.search-overlay:after{background-color:#637a91}}.post-dev .icon-menu{fill:#637a91}.post-dev .cursos-menu{color:#637a91}.post-dev .box-body h2{color:#637a91}.post-dev .box-body .tags a{color:#637a91;border:1px solid #637a91;}.post-dev .box-body .tags a:hover{color:#fff;background:#637a91}.post-dev .related-post a{color:#637a91}.post-dev aside{background-color:#637a91;}.post-dev aside nav li a:hover{color:#637a91}.post-dev .ribbon span{background-color:#637a91;}.post-dev .ribbon span:before{border-left:3px solid #455565;border-top:3px solid #455565}.post-dev .ribbon span:after{border-right:3px solid #455565;border-top:3px solid #455565}.post-dev footer{background-color:#637a91}.post-misc .title-category{color:#7aab13}.post-misc .post-content h1,.post-misc .post-content h2,.post-misc .post-content h3,.post-misc .post-content h4{color:#7aab13}.post-misc .post-content a{color:#7aab13;border-bottom:2px dashed #7aab13;}.post-misc .post-content a:hover{background-color:#7aab13;color:#fff}.post-misc .post-content strong{color:#7aab13}.post-misc .post-content p code,.post-misc .post-content li code{color:#7aab13}.post-misc .post-content blockquote{border-left:.313rem solid #7aab13}.post-misc .header-post,.post-misc .header-site{background-color:#7aab13;}.post-misc .header-post h1,.post-misc .header-site h1{text-shadow:3px 3px #62890f}.post-misc .bar-header .logo a{color:#7aab13}.post-misc .author .email{color:#7aab13}.post-misc .share a:hover svg{fill:#7aab13}@media only screen and (max-width:37.5rem){.post-misc body.search-overlay:after{background-color:#7aab13}}.post-misc .icon-menu{fill:#7aab13}.post-misc .cursos-menu{color:#7aab13}.post-misc .box-body h2{color:#7aab13}.post-misc .box-body .tags a{color:#7aab13;border:1px solid #7aab13;}.post-misc .box-body .tags a:hover{color:#fff;background:#7aab13}.post-misc .related-post a{color:#7aab13}.post-misc aside{background-color:#7aab13;}.post-misc aside nav li a:hover{color:#7aab13}.post-misc .ribbon span{background-color:#7aab13;}.post-misc .ribbon span:before{border-left:3px solid #55780d;border-top:3px solid #55780d}.post-misc .ribbon span:after{border-right:3px solid #55780d;border-top:3px solid #55780d}.post-misc footer{background-color:#7aab13}.post-tools .title-category{color:#b31917}.post-tools .post-content h1,.post-tools .post-content h2,.post-tools .post-content h3,.post-tools .post-content h4{color:#b31917}.post-tools .post-content a{color:#b31917;border-bottom:2px dashed #b31917;}.post-tools .post-content a:hover{background-color:#b31917;color:#fff}.post-tools .post-content strong{color:#b31917}.post-tools .post-content p code,.post-tools .post-content li code{color:#b31917}.post-tools .post-content blockquote{border-left:.313rem solid #b31917}.post-tools .header-post,.post-tools .header-site{background-color:#b31917;}.post-tools .header-post h1,.post-tools .header-site h1{text-shadow:3px 3px #8f1412}.post-tools .bar-header .logo a{color:#b31917}.post-tools .author .email{color:#b31917}.post-tools .share a:hover svg{fill:#b31917}@media only screen and (max-width:37.5rem){.post-tools body.search-overlay:after{background-color:#b31917}}.post-tools .icon-menu{fill:#b31917}.post-tools .cursos-menu{color:#b31917}.post-tools .box-body h2{color:#b31917}.post-tools .box-body .tags a{color:#b31917;border:1px solid #b31917;}.post-tools .box-body .tags a:hover{color:#fff;background:#b31917}.post-tools .related-post a{color:#b31917}.post-tools aside{background-color:#b31917;}.post-tools aside nav li a:hover{color:#b31917}.post-tools .ribbon span{background-color:#b31917;}.post-tools .ribbon span:before{border-left:3px solid #7d1210;border-top:3px solid #7d1210}.post-tools .ribbon span:after{border-right:3px solid #7d1210;border-top:3px solid #7d1210}.post-tools footer{background-color:#b31917}.night-mode{background:#444;}.night-mode a,.night-mode .related-post a,.night-mode .page_number{color:#d6ba32}.night-mode .bar-header,.night-mode .box-item{background:#2b2b2b}.night-mode .box-item{border:none;}.night-mode .box-item .box-body h2{color:#ddd}.night-mode .box-item .box-body p{color:#b1b1b1}.night-mode .box-item:hover{box-shadow:1px 2px 10px #000}.night-mode .home,.night-mode .post{background:#444}.night-mode .title-category,.night-mode .tag-title{color:#ddd}.night-mode .post-content h1,.night-mode .post-content h2,.night-mode .post-content h3,.night-mode .post-content h4{color:#ddd}.night-mode .post-content a{color:#ddd;border-bottom:2px dashed #ddd;}.night-mode .post-content a:hover{background-color:#2b2b2b;color:#fff}.night-mode .post-content strong,.night-mode .post-content code{color:#ddd;background:#000;padding:2px 5px;border-radius:5px}.night-mode .post-content p,.night-mode .post-content li,.night-mode .post-content code{color:#ddd}.night-mode .post-content pre code{background:none;padding:0 1.25rem}.night-mode .post-content .externalLink:after{-webkit-filter:invert(1);filter:invert(1)}.night-mode .author{background:#2b2b2b;}.night-mode .author .name a,.night-mode .author .desc,.night-mode .author .email{color:#ddd}.night-mode .related-post_title{color:#ddd}.night-mode .share{color:#ddd;}.night-mode .share a{-webkit-filter:invert(1);filter:invert(1);}.night-mode .share a:hover{color:#a6a6a6}.night-mode .comments{color:#ddd}.night-mode .header-post,.night-mode .header-site{background-color:#2b2b2b;color:#ddd}.night-mode .bar-header .logo a{color:#ddd}.night-mode .author .email{color:#ddd}.night-mode .share a:hover svg{fill:#ddd}@media only screen and (max-width:37.5rem){.night-mode body.search-overlay:after{background-color:#ddd}}.night-mode .icon-menu{fill:#ddd}.night-mode .cursos-menu{color:#ddd}.night-mode a.previous,.night-mode a.next{background:#2b2b2b;}.night-mode a.previous:hover,.night-mode a.next:hover{color:#d6ba32}.night-mode aside{background-color:#2b2b2b;}.night-mode aside nav li a:hover{color:#2b2b2b}.night-mode footer{background-color:#2b2b2b}.post-content{padding-bottom:0}.related{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem}.related:before,.related:after{content:'';display:table}.related:after{clear:both}.related-post_title{text-align:center}.related-posts_section{-webkit-column-count:1;-moz-column-count:1;column-count:1;-webkit-column-gap:3.75rem;-moz-column-gap:3.75rem;column-gap:3.75rem;list-style:none;padding:0 1.25rem;}@media only screen and (min-width:37.5rem){.related-posts_section{-webkit-column-count:2;-moz-column-count:2;column-count:2;padding:1.25rem 0 0}}.related-post{text-align:left;-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;column-break-inside:avoid;}.related-post a{margin:auto;display:block;font-size:1rem;text-decoration:none;padding-bottom:1.25rem;}.related-post a:hover{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80);opacity:.8}
Introduction i had my eyes on openWrt for quite some years now but because import is either diffucult or prone to theft, i had to wait until now to get a Router that support openwrt that is in retail,
How to proceed for the method and instruction, i used the instruction in https://github.com/acecilia/OpenWRTInvasion
for the firmware i downloaded the one from this repo https://gitlab.com/db260179/xiaomi-m4a/-/releases
that have the name Minor update v1.5.2-stable - Compatible with official repos and fixes
, you will find the file in the link with the name ‘Built images, imagebuilder and SDK with checksum’file
N.B: the name of the file i used is openwrt-19.07.7-ramips-mt7621-xiaomi_mir4ag-squashfs-sysupgrade.bin
you can copy the file using ftp client like filezilla
or cyberduck
, copy it to /tmp
( because you have write permission) and rename to firmware.bin
(to make it easier) than juste run
mtd -e OS1 -r write firmware.bin OS1
N.B: be patient and juste wait, go eat something
Resources https://github.com/acecilia/OpenWRTInvasion https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition https://forum.openwrt.org/t/xiaomi-mi-router-4a-gigabit-edition-r4ag-r4a-gigabit-fully-supported-and-flashable-with-openwrtinvasion/36685/643
Coments