PageSourceSearch

https://www.h4hacks.com/2026/

html h4hacks.com collected 2026-09-24 14:13:52 UTC 158,639 bytes, 3,908 lines download raw bytes

1<!DOCTYPE html>
2<html dir='ltr' lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
3<head>
4<meta content='width=device-width, initial-scale=1' name='viewport'/>
5<title>H4hacks</title>
6<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
7<!-- Chrome, Firefox OS and Opera -->
8<meta content='#444444' name='theme-color'/>
9<!-- Windows Phone -->
10<meta content='#444444' name='msapplication-navbutton-color'/>
11<meta content='blogger' name='generator'/>
12<link href='https://www.h4hacks.com/favicon.ico' rel='icon' type='image/x-icon'/>
13<link href='https://www.h4hacks.com/2026/' rel='canonical'/>
14<link rel="alternate" type="application/atom+xml" title="H4hacks - Atom" href="https://www.h4hacks.com/feeds/posts/default" />
15<link rel="alternate" type="application/rss+xml" title="H4hacks - RSS" href="https://www.h4hacks.com/feeds/posts/default?alt=rss" />
16<link rel="service.post" type="application/atom+xml" title="H4hacks - Atom" href="https://www.blogger.com/feeds/6383593460046105926/posts/default" />
17<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
18<meta content='Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security' name='description'/>
19<meta content='https://www.h4hacks.com/2026/' property='og:url'/>
20<meta content='H4hacks' property='og:title'/>
21<meta content='Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security' property='og:description'/>
22<meta content='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w1200-h630-n-k-no-nu' property='og:image'/>
23<meta content='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w1200-h630-n-k-no-nu' property='og:image'/>
24<meta content='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w1200-h630-n-k-no-nu' property='og:image'/>
25<style type='text/css'>@font-face{font-family:'Damion';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/damion/v15/hv-XlzJ3KEUe_YZkZGw2ATE.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Damion';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/damion/v15/hv-XlzJ3KEUe_YZkamw2.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDTbtPY_Q.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDYbtPY_Q.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDZbtPY_Q.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;
25src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDXbtM.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAX-k2Qn.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAz-k2Qn.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAT-k2Qn.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAv-k2Qn.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuHT-k2Qn.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuGb-k2Qn.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAf-k2Qn.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAb-k2Qn.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAj-kw.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}</style>
26<style id='page-skin-1' type='text/css'><!--
27/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
28/*!************************************************
29* Blogger Template Style
30* Name: Contempo
31**************************************************/
32body{
33overflow-wrap:break-word;
34word-break:break-word;
35word-wrap:break-word
36}
37.hidden{
38display:none
39}
40.invisible{
41visibility:hidden
42}
43.container::after,.float-container::after{
44clear:both;
45content:"";
46display:table
47}
48.clearboth{
49clear:both
50}
51#comments .comment .comment-actions,.subscribe-popup .FollowByEmail .follow-by-email-submit,.widget.Profile .profile-link,.widget.Profile .profile-link.visit-profile{
52background:0 0;
53border:0;
54box-shadow:none;
55color:#2196f3;
56cursor:pointer;
57font-size:14px;
58font-weight:700;
59outline:0;
60text-decoration:none;
61text-transform:uppercase;
62width:auto
63}
64.dim-overlay{
65background-color:rgba(0,0,0,.54);
66height:100vh;
67left:0;
68position:fixed;
69top:0;
70width:100%
71}
72#sharing-dim-overlay{
73background-color:transparent
74}
75input::-ms-clear{
76display:none
77}
78.blogger-logo,.svg-icon-24.blogger-logo{
79fill:#ff9800;
80opacity:1
81}
82.loading-spinner-large{
83-webkit-animation:mspin-rotate 1.568s infinite linear;
84animation:mspin-rotate 1.568s infinite linear;
85height:48px;
86overflow:hidden;
87position:absolute;
88width:48px;
89z-index:200
90}
91.loading-spinner-large>div{
92-webkit-animation:mspin-revrot 5332ms infinite steps(4);
93animation:mspin-revrot 5332ms infinite steps(4)
94}
95.loading-spinner-large>div>div{
96-webkit-animation:mspin-singlecolor-large-film 1333ms infinite steps(81);
97animation:mspin-singlecolor-large-film 1333ms infinite steps(81);
98background-size:100%;
99height:48px;
100width:3888px
101}
102.mspin-black-large>div>div,.mspin-grey_54-large>div>div{
103background-image:url(https://www.blogblog.com/indie/mspin_black_large.svg)
104}
105.mspin-white-large>div>div{
106background-image:url(https://www.blogblog.com/indie/mspin_white_large.svg)
107}
108.mspin-grey_54-large{
109opacity:.54
110}
111@-webkit-keyframes mspin-singlecolor-large-film{
112from{
113-webkit-transform:translateX(0);
114transform:translateX(0)
115}
116to{
117-webkit-transform:translateX(-3888px);
118transform:translateX(-3888px)
119}
120}
121@keyframes mspin-singlecolor-large-film{
122from{
123-webkit-transform:translateX(0);
124transform:translateX(0)
125}
126to{
127-webkit-transform:translateX(-3888px);
128transform:translateX(-3888px)
129}
130}
131@-webkit-keyframes mspin-rotate{
132from{
133-webkit-transform:rotate(0);
134transform:rotate(0)
135}
136to{
137-webkit-transform:rotate(360deg);
138transform:rotate(360deg)
139}
140}
141@keyframes mspin-rotate{
142from{
143-webkit-transform:rotate(0);
144transform:rotate(0)
145}
146to{
147-webkit-transform:rotate(360deg);
148transform:rotate(360deg)
149}
150}
151@-webkit-keyframes mspin-revrot{
152from{
153-webkit-transform:rotate(0);
154transform:rotate(0)
155}
156to{
157-webkit-transform:rotate(-360deg);
158transform:rotate(-360deg)
159}
160}
161@keyframes mspin-revrot{
162from{
163-webkit-transform:rotate(0);
164transform:rotate(0)
165}
166to{
167-webkit-transform:rotate(-360deg);
168transform:rotate(-360deg)
169}
170}
171.skip-navigation{
172background-color:#fff;
173box-sizing:border-box;
174color:#000;
175display:block;
176height:0;
177left:0;
178line-height:50px;
179overflow:hidden;
180padding-top:0;
181position:fixed;
182text-align:center;
183top:0;
184-webkit-transition:box-shadow .3s,height .3s,padding-top .3s;
185transition:box-shadow .3s,height .3s,padding-top .3s;
186width:100%;
187z-index:900
188}
189.skip-navigation:focus{
190box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);
191height:50px
192}
193#main{
194outline:0
195}
196.main-heading{
197position:absolute;
198clip:rect(1px,1px,1px,1px);
199padding:0;
200border:0;
201height:1px;
202width:1px;
203overflow:hidden
204}
205.Attribution{
206margin-top:1em;
207text-align:center
208}
209.Attribution .blogger img,.Attribution .blogger svg{
210vertical-align:bottom
211}
212.Attribution .blogger img{
213margin-right:.5em
214}
215.Attribution div{
216line-height:24px;
217margin-top:.5em
218}
219.Attribution .copyright,.Attribution .image-attribution{
220font-size:.7em;
221margin-top:1.5em
222}
223.BLOG_mobile_video_class{
224display:none
225}
226.bg-photo{
227background-attachment:scroll!important
228}
229body .CSS_LIGHTBOX{
230z-index:900
231}
232.extendable .show-less,.extendable .show-more{
233border-color:#2196f3;
234color:#2196f3;
235margin-top:8px
236}
237.extendable .show-less.hidden,.extendable .show-more.hidden{
238display:none
239}
240.inline-ad{
241display:none;
242max-width:100%;
243overflow:hidden
244}
245.adsbygoogle{
246display:block
247}
248#cookieChoiceInfo{
249bottom:0;
250top:auto
251}
252iframe.b-hbp-video{
253border:0
254}
255.post-body img{
256max-width:100%
257}
258.post-body iframe{
259max-width:100%
260}
261.post-body a[imageanchor="1"]{
262display:inline-block
263}
264.byline{
265margin-right:1em
266}
267.byline:last-child{
268margin-right:0
269}
270.link-copied-dialog{
271max-width:520px;
272outline:0
273}
274.link-copied-dialog .modal-dialog-buttons{
275margin-top:8px
276}
277.link-copied-dialog .goog-buttonset-default{
278background:0 0;
279border:0
280}
281.link-copied-dialog .goog-buttonset-default:focus{
282outline:0
283}
284.paging-control-container{
285margin-bottom:16px
286}
287.paging-control-container .paging-control{
288display:inline-block
289}
290.paging-control-container .comment-range-text::after,.paging-control-container .paging-control{
291color:#2196f3
292}
293.paging-control-container .comment-range-text,.paging-control-container .paging-control{
294margin-right:8px
295}
296.paging-control-container .comment-range-text::after,.paging-control-container .paging-control::after{
297content:"\b7";
298cursor:default;
299padding-left:8px;
300pointer-events:none
301}
302.paging-control-container .comment-range-text:last-child::after,.paging-control-container .paging-control:last-child::after{
303content:none
304}
305.byline.reactions iframe{
306height:20px
307}
308.b-notification{
309color:#000;
310background-color:#fff;
311border-bottom:solid 1px #000;
312box-sizing:border-box;
313padding:16px 32px;
314text-align:center
315}
316.b-notification.visible{
317-webkit-transition:margin-top .3s cubic-bezier(.4,0,.2,1);
318transition:margin-top .3s cubic-bezier(.4,0,.2,1)
319}
320.b-notification.invisible{
321position:absolute
322}
323.b-notification-close{
324position:absolute;
325right:8px;
326top:8px
327}
328.no-posts-message{
329line-height:40px;
330text-align:center
331}
332@media screen and (max-width:800px){
333body.item-view .post-body a[imageanchor="1"][style*="float: left;"],body.item-view .post-body a[imageanchor="1"][style*="float: right;"]{
334float:none!important;
335clear:none!important
336}
337body.item-view .post-body a[imageanchor="1"] img{
338display:block;
339height:auto;
340margin:0 auto
341}
342body.item-view .post-body>.separator:first-child>a[imageanchor="1"]:first-child{
343margin-top:20px
344}
345.post-body a[imageanchor]{
346display:block
347}
348body.item-view .post-body a[imageanchor="1"]{
349margin-left:0!important;
350margin-right:0!important
351}
352body.item-view .post-body a[imageanchor="1"]+a[imageanchor="1"]{
353margin-top:16px
354}
355}
356.item-control{
357display:none
358}
359#comments{
360border-top:1px dashed rgba(0,0,0,.54);
361margin-top:20px;
362padding:20px
363}
364#comments .comment-thread ol{
365margin:0;
366padding-left:0;
367padding-left:0
368}
369#comments .comment .comment-replybox-single,#comments .comment-thread .comment-replies{
370margin-left:60px
371}
372#comments .comment-thread .thread-count{
373display:none
374}
375#comments .comment{
376list-style-type:none;
377padding:0 0 30px;
378position:relative
379}
380#comments .comment .comment{
381padding-bottom:8px
382}
383.comment .avatar-image-container{
384position:absolute
385}
386.comment .avatar-image-container img{
387border-radius:50%
388}
389.avatar-image-container svg,.comment .avatar-image-container .avatar-icon{
390border-radius:50%;
391border:solid 1px #ffffff;
392box-sizing:border-box;
393fill:#ffffff;
394height:35px;
395margin:0;
396padding:7px;
397width:35px
398}
399.comment .comment-block{
400margin-top:10px;
401margin-left:60px;
402padding-bottom:0
403}
404#comments .comment-author-header-wrapper{
405margin-left:40px
406}
407#comments .comment .thread-expanded .comment-block{
408padding-bottom:20px
409}
410#comments .comment .comment-header .user,#comments .comment .comment-header .user a{
411color:#ffffff;
412font-style:normal;
413font-weight:700
414}
415#comments .comment .comment-actions{
416bottom:0;
417margin-bottom:15px;
418position:absolute
419}
420#comments .comment .comment-actions>*{
421margin-right:8px
422}
423#comments .comment .comment-header .datetime{
424bottom:0;
425color:rgba(255,255,255,.54);
426display:inline-block;
427font-size:13px;
428font-style:italic;
429margin-left:8px
430}
431#comments .comment .comment-footer .comment-timestamp a,#comments .comment .comment-header .datetime a{
432color:rgba(255,255,255,.54)
433}
434#comments .comment .comment-content,.comment .comment-body{
435margin-top:12px;
436word-break:break-word
437}
438.comment-body{
439margin-bottom:12px
440}
441#comments.embed[data-num-comments="0"]{
442border:0;
443margin-top:0;
444padding-top:0
445}
446#comments.embed[data-num-comments="0"] #comment-post-message,#comments.embed[data-num-comments="0"] div.comment-form>p,#comments.embed[data-num-comments="0"] p.comment-footer{
447display:none
448}
449#comment-editor-src{
450display:none
451}
452.comments .comments-content .loadmore.loaded{
453max-height:0;
454opacity:0;
455overflow:hidden
456}
457.extendable .remaining-items{
458height:0;
459overflow:hidden;
460-webkit-transition:height .3s cubic-bezier(.4,0,.2,1);
461transition:height .3s cubic-bezier(.4,0,.2,1)
462}
463.extendable .remaining-items.expanded{
464height:auto
465}
466.svg-icon-24,.svg-icon-24-button{
467cursor:pointer;
468height:24px;
469width:24px;
470min-width:24px
471}
472.touch-icon{
473margin:-12px;
474padding:12px
475}
476.touch-icon:active,.touch-icon:focus{
477background-color:rgba(153,153,153,.4);
478border-radius:50%
479}
480svg:not(:root).touch-icon{
481overflow:visible
482}
483html[dir=rtl] .rtl-reversible-icon{
484-webkit-transform:scaleX(-1);
485-ms-transform:scaleX(-1);
486transform:scaleX(-1)
487}
488.svg-icon-24-button,.touch-icon-button{
489background:0 0;
490border:0;
491margin:0;
492outline:0;
493padding:0
494}
495.touch-icon-button .touch-icon:active,.touch-icon-button .touch-icon:focus{
496background-color:transparent
497}
498.touch-icon-button:active .touch-icon,.touch-icon-button:focus .touch-icon{
499background-color:rgba(153,153,153,.4);
500border-radius:50%
501}
502.Profile .default-avatar-wrapper .avatar-icon{
503border-radius:50%;
504border:solid 1px #ffffff;
505box-sizing:border-box;
506fill:#ffffff;
507margin:0
508}
509.Profile .individual .default-avatar-wrapper .avatar-icon{
510padding:25px
511}
512.Profile .individual .avatar-icon,.Profile .individual .profile-img{
513height:120px;
514width:120px
515}
516.Profile .team .default-avatar-wrapper .avatar-icon{
517padding:8px
518}
519.Profile .team .avatar-icon,.Profile .team .default-avatar-wrapper,.Profile .team .profile-img{
520height:40px;
521width:40px
522}
523.snippet-container{
524margin:0;
525position:relative;
526overflow:hidden
527}
528.snippet-fade{
529bottom:0;
530box-sizing:border-box;
531position:absolute;
532width:96px
533}
534.snippet-fade{
535right:0
536}
537.snippet-fade:after{
538content:"\2026"
539}
540.snippet-fade:after{
541float:right
542}
543.post-bottom{
544-webkit-box-align:center;
545-webkit-align-items:center;
546-ms-flex-align:center;
547align-items:center;
548display:-webkit-box;
549display:-webkit-flex;
550display:-ms-flexbox;
551display:flex;
552-webkit-flex-wrap:wrap;
553-ms-flex-wrap:wrap;
554flex-wrap:wrap
555}
556.post-footer{
557-webkit-box-flex:1;
558-webkit-flex:1 1 auto;
559-ms-flex:1 1 auto;
560flex:1 1 auto;
561-webkit-flex-wrap:wrap;
562-ms-flex-wrap:wrap;
563flex-wrap:wrap;
564-webkit-box-ordinal-group:2;
565-webkit-order:1;
566-ms-flex-order:1;
567order:1
568}
569.post-footer>*{
570-webkit-box-flex:0;
571-webkit-flex:0 1 auto;
572-ms-flex:0 1 auto;
573flex:0 1 auto
574}
575.post-footer .byline:last-child{
576margin-right:1em
577}
578.jump-link{
579-webkit-box-flex:0;
580-webkit-flex:0 0 auto;
581-ms-flex:0 0 auto;
582flex:0 0 auto;
583-webkit-box-ordinal-group:3;
584-webkit-order:2;
585-ms-flex-order:2;
586order:2
587}
588.centered-top-container.sticky{
589left:0;
590position:fixed;
591right:0;
592top:0;
593width:auto;
594z-index:50;
595-webkit-transition-property:opacity,-webkit-transform;
596transition-property:opacity,-webkit-transform;
597transition-property:transform,opacity;
598transition-property:transform,opacity,-webkit-transform;
599-webkit-transition-duration:.2s;
600transition-duration:.2s;
601-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);
602transition-timing-function:cubic-bezier(.4,0,.2,1)
603}
604.centered-top-placeholder{
605display:none
606}
607.collapsed-header .centered-top-placeholder{
608display:block
609}
610.centered-top-container .Header .replaced h1,.centered-top-placeholder .Header .replaced h1{
611display:none
612}
613.centered-top-container.sticky .Header .replaced h1{
614display:block
615}
616.centered-top-container.sticky .Header .header-widget{
617background:0 0
618}
619.centered-top-container.sticky .Header .header-image-wrapper{
620display:none
621}
622.centered-top-container img,.centered-top-placeholder img{
623max-width:100%
624}
625.collapsible{
626-webkit-transition:height .3s cubic-bezier(.4,0,.2,1);
627transition:height .3s cubic-bezier(.4,0,.2,1)
628}
629.collapsible,.collapsible>summary{
630display:block;
631overflow:hidden
632}
633.collapsible>:not(summary){
634display:none
635}
636.collapsible[open]>:not(summary){
637display:block
638}
639.collapsible:focus,.collapsible>summary:focus{
640outline:0
641}
642.collapsible>summary{
643cursor:pointer;
644display:block;
645padding:0
646}
647.collapsible:focus>summary,.collapsible>summary:focus{
648background-color:transparent
649}
650.collapsible>summary::-webkit-details-marker{
651display:none
652}
653.collapsible-title{
654-webkit-box-align:center;
655-webkit-align-items:center;
656-ms-flex-align:center;
657align-items:center;
658display:-webkit-box;
659display:-webkit-flex;
660display:-ms-flexbox;
661display:flex
662}
663.collapsible-title .title{
664-webkit-box-flex:1;
665-webkit-flex:1 1 auto;
666-ms-flex:1 1 auto;
667flex:1 1 auto;
668-webkit-box-ordinal-group:1;
669-webkit-order:0;
670-ms-flex-order:0;
671order:0;
672overflow:hidden;
673text-overflow:ellipsis;
674white-space:nowrap
675}
676.collapsible-title .chevron-down,.collapsible[open] .collapsible-title .chevron-up{
677display:block
678}
679.collapsible-title .chevron-up,.collapsible[open] .collapsible-title .chevron-down{
680display:none
681}
682.flat-button{
683cursor:pointer;
684display:inline-block;
685font-weight:700;
686text-transform:uppercase;
687border-radius:2px;
688padding:8px;
689margin:-8px
690}
691.flat-icon-button{
692background:0 0;
693border:0;
694margin:0;
695outline:0;
696padding:0;
697margin:-12px;
698padding:12px;
699cursor:pointer;
700box-sizing:content-box;
701display:inline-block;
702line-height:0
703}
704.flat-icon-button,.flat-icon-button .splash-wrapper{
705border-radius:50%
706}
707.flat-icon-button .splash.animate{
708-webkit-animation-duration:.3s;
709animation-duration:.3s
710}
711.overflowable-container{
712max-height:46px;
713overflow:hidden;
714position:relative
715}
716.overflow-button{
717cursor:pointer
718}
719#overflowable-dim-overlay{
720background:0 0
721}
722.overflow-popup{
723box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
724background-color:#1d1d1d;
725left:0;
726max-width:calc(100% - 32px);
727position:absolute;
728top:0;
729visibility:hidden;
730z-index:101
731}
732.overflow-popup ul{
733list-style:none
734}
735.overflow-popup .tabs li,.overflow-popup li{
736display:block;
737height:auto
738}
739.overflow-popup .tabs li{
740padding-left:0;
741padding-right:0
742}
743.overflow-button.hidden,.overflow-popup .tabs li.hidden,.overflow-popup li.hidden{
744display:none
745}
746.pill-button{
747background:0 0;
748border:1px solid;
749border-radius:12px;
750cursor:pointer;
751display:inline-block;
752padding:4px 16px;
753text-transform:uppercase
754}
755.ripple{
756position:relative
757}
758.ripple>*{
759z-index:1
760}
761.splash-wrapper{
762bottom:0;
763left:0;
764overflow:hidden;
765pointer-events:none;
766position:absolute;
767right:0;
768top:0;
769z-index:0
770}
771.splash{
772background:#ccc;
773border-radius:100%;
774display:block;
775opacity:.6;
776position:absolute;
777-webkit-transform:scale(0);
778-ms-transform:scale(0);
779transform:scale(0)
780}
781.splash.animate{
782-webkit-animation:ripple-effect .4s linear;
783animation:ripple-effect .4s linear
784}
785@-webkit-keyframes ripple-effect{
786100%{
787opacity:0;
788-webkit-transform:scale(2.5);
789transform:scale(2.5)
790}
791}
792@keyframes ripple-effect{
793100%{
794opacity:0;
795-webkit-transform:scale(2.5);
796transform:scale(2.5)
797}
798}
799.search{
800display:-webkit-box;
801display:-webkit-flex;
802display:-ms-flexbox;
803display:flex;
804line-height:24px;
805width:24px
806}
807.search.focused{
808width:100%
809}
810.search.focused .section{
811width:100%
812}
813.search form{
814z-index:101
815}
816.search h3{
817display:none
818}
819.search form{
820display:-webkit-box;
821display:-webkit-flex;
822display:-ms-flexbox;
823display:flex;
824-webkit-box-flex:1;
825-webkit-flex:1 0 0;
826-ms-flex:1 0 0px;
827flex:1 0 0;
828border-bottom:solid 1px transparent;
829padding-bottom:8px
830}
831.search form>*{
832display:none
833}
834.search.focused form>*{
835display:block
836}
837.search .search-input label{
838display:none
839}
840.centered-top-placeholder.cloned .search form{
841z-index:30
842}
843.search.focused form{
844border-color:#ffffff;
845position:relative;
846width:auto
847}
848.collapsed-header .centered-top-container .search.focused form{
849border-bottom-color:transparent
850}
851.search-expand{
852-webkit-box-flex:0;
853-webkit-flex:0 0 auto;
854-ms-flex:0 0 auto;
855flex:0 0 auto
856}
857.search-expand-text{
858display:none
859}
860.search-close{
861display:inline;
862vertical-align:middle
863}
864.search-input{
865-webkit-box-flex:1;
866-webkit-flex:1 0 1px;
867-ms-flex:1 0 1px;
868flex:1 0 1px
869}
870.search-input input{
871background:0 0;
872border:0;
873box-sizing:border-box;
874color:#ffffff;
875display:inline-block;
876outline:0;
877width:calc(100% - 48px)
878}
879.search-input input.no-cursor{
880color:transparent;
881text-shadow:0 0 0 #ffffff
882}
883.collapsed-header .centered-top-container .search-action,.collapsed-header .centered-top-container .search-input input{
884color:#ffffff
885}
886.collapsed-header .centered-top-container .search-input input.no-cursor{
887color:transparent;
888text-shadow:0 0 0 #ffffff
889}
890.collapsed-header .centered-top-container .search-input input.no-cursor:focus,.search-input input.no-cursor:focus{
891outline:0
892}
893.search-focused>*{
894visibility:hidden
895}
896.search-focused .search,.search-focused .search-icon{
897visibility:visible
898}
899.search.focused .search-action{
900display:block
901}
902.search.focused .search-action:disabled{
903opacity:.3
904}
905.widget.Sharing .sharing-button{
906display:none
907}
908.widget.Sharing .sharing-buttons li{
909padding:0
910}
911.widget.Sharing .sharing-buttons li span{
912display:none
913}
914.post-share-buttons{
915position:relative
916}
917.centered-bottom .share-buttons .svg-icon-24,.share-buttons .svg-icon-24{
918fill:#ffffff
919}
920.sharing-open.touch-icon-button:active .touch-icon,.sharing-open.touch-icon-button:focus .touch-icon{
921background-color:transparent
922}
923.share-buttons{
924background-color:#1d1d1d;
925border-radius:2px;
926box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
927color:#ffffff;
928list-style:none;
929margin:0;
930padding:8px 0;
931position:absolute;
932top:-11px;
933min-width:200px;
934z-index:101
935}
936.share-buttons.hidden{
937display:none
938}
939.sharing-button{
940background:0 0;
941border:0;
942margin:0;
943outline:0;
944padding:0;
945cursor:pointer
946}
947.share-buttons li{
948margin:0;
949height:48px
950}
951.share-buttons li:last-child{
952margin-bottom:0
953}
954.share-buttons li .sharing-platform-button{
955box-sizing:border-box;
956cursor:pointer;
957display:block;
958height:100%;
959margin-bottom:0;
960padding:0 16px;
961position:relative;
962width:100%
963}
964.share-buttons li .sharing-platform-button:focus,.share-buttons li .sharing-platform-button:hover{
965background-color:rgba(128,128,128,.1);
966outline:0
967}
968.share-buttons li svg[class*=" sharing-"],.share-buttons li svg[class^=sharing-]{
969position:absolute;
970top:10px
971}
972.share-buttons li span.sharing-platform-button{
973position:relative;
974top:0
975}
976.share-buttons li .platform-sharing-text{
977display:block;
978font-size:16px;
979line-height:48px;
980white-space:nowrap
981}
982.share-buttons li .platform-sharing-text{
983margin-left:56px
984}
985.sidebar-container{
986background-color:#1d1d1d;
987max-width:284px;
988overflow-y:auto;
989-webkit-transition-property:-webkit-transform;
990transition-property:-webkit-transform;
991transition-property:transform;
992transition-property:transform,-webkit-transform;
993-webkit-transition-duration:.3s;
994transition-duration:.3s;
995-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);
996transition-timing-function:cubic-bezier(0,0,.2,1);
997width:284px;
998z-index:101;
999-webkit-overflow-scrolling:touch
1000}
1001.sidebar-container .navigation{
1002line-height:0;
1003padding:16px
1004}
1005.sidebar-container .sidebar-back{
1006cursor:pointer
1007}
1008.sidebar-container .widget{
1009background:0 0;
1010margin:0 16px;
1011padding:16px 0
1012}
1013.sidebar-container .widget .title{
1014color:#c5c1c1;
1015margin:0
1016}
1017.sidebar-container .widget ul{
1018list-style:none;
1019margin:0;
1020padding:0
1021}
1022.sidebar-container .widget ul ul{
1023margin-left:1em
1024}
1025.sidebar-container .widget li{
1026font-size:16px;
1027line-height:normal
1028}
1029.sidebar-container .widget+.widget{
1030border-top:1px dashed #cccccc
1031}
1032.BlogArchive li{
1033margin:16px 0
1034}
1035.BlogArchive li:last-child{
1036margin-bottom:0
1037}
1038.Label li a{
1039display:inline-block
1040}
1041.BlogArchive .post-count,.Label .label-count{
1042float:right;
1043margin-left:.25em
1044}
1045.BlogArchive .post-count::before,.Label .label-count::before{
1046content:"("
1047}
1048.BlogArchive .post-count::after,.Label .label-count::after{
1049content:")"
1050}
1051.widget.Translate .skiptranslate>div{
1052display:block!important
1053}
1054.widget.Profile .profile-link{
1055display:-webkit-box;
1056display:-webkit-flex;
1057display:-ms-flexbox;
1058display:flex
1059}
1060.widget.Profile .team-member .default-avatar-wrapper,.widget.Profile .team-member .profile-img{
1061-webkit-box-flex:0;
1062-webkit-flex:0 0 auto;
1063-ms-flex:0 0 auto;
1064flex:0 0 auto;
1065margin-right:1em
1066}
1067.widget.Profile .individual .profile-link{
1068-webkit-box-orient:vertical;
1069-webkit-box-direction:normal;
1070-webkit-flex-direction:column;
1071-ms-flex-direction:column;
1072flex-direction:column
1073}
1074.widget.Profile .team .profile-link .profile-name{
1075-webkit-align-self:center;
1076-ms-flex-item-align:center;
1077align-self:center;
1078display:block;
1079-webkit-box-flex:1;
1080-webkit-flex:1 1 auto;
1081-ms-flex:1 1 auto;
1082flex:1 1 auto
1083}
1084.dim-overlay{
1085background-color:rgba(0,0,0,.54);
1086z-index:100
1087}
1088body.sidebar-visible{
1089overflow-y:hidden
1090}
1091@media screen and (max-width:1439px){
1092.sidebar-container{
1093bottom:0;
1094position:fixed;
1095top:0;
1096left:0;
1097right:auto
1098}
1099.sidebar-container.sidebar-invisible{
1100-webkit-transition-timing-function:cubic-bezier(.4,0,.6,1);
1101transition-timing-function:cubic-bezier(.4,0,.6,1);
1102-webkit-transform:translateX(-284px);
1103-ms-transform:translateX(-284px);
1104transform:translateX(-284px)
1105}
1106}
1107@media screen and (min-width:1440px){
1108.sidebar-container{
1109position:absolute;
1110top:0;
1111left:0;
1112right:auto
1113}
1114.sidebar-container .navigation{
1115display:none
1116}
1117}
1118.dialog{
1119box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
1120background:#1d1d1d;
1121box-sizing:border-box;
1122color:#9ba2a8;
1123padding:30px;
1124position:fixed;
1125text-align:center;
1126width:calc(100% - 24px);
1127z-index:101
1128}
1129.dialog input[type=email],.dialog input[type=text]{
1130background-color:transparent;
1131border:0;
1132border-bottom:solid 1px rgba(155,162,168,.12);
1133color:#9ba2a8;
1134display:block;
1135font-family:Roboto, sans-serif;
1136font-size:16px;
1137line-height:24px;
1138margin:auto;
1139padding-bottom:7px;
1140outline:0;
1141text-align:center;
1142width:100%
1143}
1144.dialog input[type=email]::-webkit-input-placeholder,.dialog input[type=text]::-webkit-input-placeholder{
1145color:#9ba2a8
1146}
1147.dialog input[type=email]::-moz-placeholder,.dialog input[type=text]::-moz-placeholder{
1148color:#9ba2a8
1149}
1150.dialog input[type=email]:-ms-input-placeholder,.dialog input[type=text]:-ms-input-placeholder{
1151color:#9ba2a8
1152}
1153.dialog input[type=email]::-ms-input-placeholder,.dialog input[type=text]::-ms-input-placeholder{
1154color:#9ba2a8
1155}
1156.dialog input[type=email]::placeholder,.dialog input[type=text]::placeholder{
1157color:#9ba2a8
1158}
1159.dialog input[type=email]:focus,.dialog input[type=text]:focus{
1160border-bottom:solid 2px #2196f3;
1161padding-bottom:6px
1162}
1163.dialog input.no-cursor{
1164color:transparent;
1165text-shadow:0 0 0 #9ba2a8
1166}
1167.dialog input.no-cursor:focus{
1168outline:0
1169}
1170.dialog input.no-cursor:focus{
1171outline:0
1172}
1173.dialog input[type=submit]{
1174font-family:Roboto, sans-serif
1175}
1176.dialog .goog-buttonset-default{
1177color:#2196f3
1178}
1179.subscribe-popup{
1180max-width:364px
1181}
1182.subscribe-popup h3{
1183color:#ffffff;
1184font-size:1.8em;
1185margin-top:0
1186}
1187.subscribe-popup .FollowByEmail h3{
1188display:none
1189}
1190.subscribe-popup .FollowByEmail .follow-by-email-submit{
1191color:#2196f3;
1192display:inline-block;
1193margin:0 auto;
1194margin-top:24px;
1195width:auto;
1196white-space:normal
1197}
1198.subscribe-popup .FollowByEmail .follow-by-email-submit:disabled{
1199cursor:default;
1200opacity:.3
1201}
1202@media (max-width:800px){
1203.blog-name div.widget.Subscribe{
1204margin-bottom:16px
1205}
1206body.item-view .blog-name div.widget.Subscribe{
1207margin:8px auto 16px auto;
1208width:100%
1209}
1210}
1211.tabs{
1212list-style:none
1213}
1214.tabs li{
1215display:inline-block
1216}
1217.tabs li a{
1218cursor:pointer;
1219display:inline-block;
1220font-weight:700;
1221text-transform:uppercase;
1222padding:12px 8px
1223}
1224.tabs .selected{
1225border-bottom:4px solid #ffffff
1226}
1227.tabs .selected a{
1228color:#ffffff
1229}
1230body#layout .bg-photo,body#layout .bg-photo-overlay{
1231display:none
1232}
1233body#layout .page_body{
1234padding:0;
1235position:relative;
1236top:0
1237}
1238body#layout .page{
1239display:inline-block;
1240left:inherit;
1241position:relative;
1242vertical-align:top;
1243width:540px
1244}
1245body#layout .centered{
1246max-width:954px
1247}
1248body#layout .navigation{
1249display:none
1250}
1251body#layout .sidebar-container{
1252display:inline-block;
1253width:40%
1254}
1255body#layout .hamburger-menu,body#layout .search{
1256display:none
1257}
1258.centered-top-container .svg-icon-24,body.collapsed-header .centered-top-placeholder .svg-icon-24{
1259fill:#ffffff
1260}
1261.sidebar-container .svg-icon-24{
1262fill:#ffffff
1263}
1264.centered-bottom .svg-icon-24,body.collapsed-header .centered-top-container .svg-icon-24{
1265fill:#ffffff
1266}
1267.centered-bottom .share-buttons .svg-icon-24,.share-buttons .svg-icon-24{
1268fill:#ffffff
1269}
1270body{
1271background-color:#444444;
1272color:#9ba2a8;
1273font:15px Roboto, sans-serif;
1274margin:0;
1275min-height:100vh
1276}
1277img{
1278max-width:100%
1279}
1280h3{
1281color:#9ba2a8;
1282font-size:16px
1283}
1284a{
1285text-decoration:none;
1286color:#2196f3
1287}
1288a:visited{
1289color:#2196f3
1290}
1291a:hover{
1292color:#2196f3
1293}
1294blockquote{
1295color:#dddddd;
1296font:italic 300 15px Roboto, sans-serif;
1297font-size:x-large;
1298text-align:center
1299}
1300.pill-button{
1301font-size:12px
1302}
1303.bg-photo-container{
1304height:480px;
1305overflow:hidden;
1306position:absolute;
1307width:100%;
1308z-index:1
1309}
1310.bg-photo{
1311background:#444444 url(https://themes.googleusercontent.com/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa) no-repeat scroll top center /* Credit: Radius Images (http://www.offset.com/photos/225860) */;;
1312background-attachment:scroll;
1313background-size:cover;
1314-webkit-filter:blur(0px);
1315filter:blur(0px);
1316height:calc(100% + 2 * 0px);
1317left:0px;
1318position:absolute;
1319top:0px;
1320width:calc(100% + 2 * 0px)
1321}
1322.bg-photo-overlay{
1323background:rgba(0,0,0,.26);
1324background-size:cover;
1325height:480px;
1326position:absolute;
1327width:100%;
1328z-index:2
1329}
1330.hamburger-menu{
1331float:left;
1332margin-top:0
1333}
1334.sticky .hamburger-menu{
1335float:none;
1336position:absolute
1337}
1338.search{
1339border-bottom:solid 1px rgba(255, 255, 255, 0);
1340float:right;
1341position:relative;
1342-webkit-transition-property:width;
1343transition-property:width;
1344-webkit-transition-duration:.5s;
1345transition-duration:.5s;
1346-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);
1347transition-timing-function:cubic-bezier(.4,0,.2,1);
1348z-index:101
1349}
1350.search .dim-overlay{
1351background-color:transparent
1352}
1353.search form{
1354height:36px;
1355-webkit-transition-property:border-color;
1356transition-property:border-color;
1357-webkit-transition-delay:.5s;
1358transition-delay:.5s;
1359-webkit-transition-duration:.2s;
1360transition-duration:.2s;
1361-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);
1362transition-timing-function:cubic-bezier(.4,0,.2,1)
1363}
1364.search.focused{
1365width:calc(100% - 48px)
1366}
1367.search.focused form{
1368display:-webkit-box;
1369display:-webkit-flex;
1370display:-ms-flexbox;
1371display:flex;
1372-webkit-box-flex:1;
1373-webkit-flex:1 0 1px;
1374-ms-flex:1 0 1px;
1375flex:1 0 1px;
1376border-color:#ffffff;
1377margin-left:-24px;
1378padding-left:36px;
1379position:relative;
1380width:auto
1381}
1382.item-view .search,.sticky .search{
1383right:0;
1384float:none;
1385margin-left:0;
1386position:absolute
1387}
1388.item-view .search.focused,.sticky .search.focused{
1389width:calc(100% - 50px)
1390}
1391.item-view .search.focused form,.sticky .search.focused form{
1392border-bottom-color:#9ba2a8
1393}
1394.centered-top-placeholder.cloned .search form{
1395z-index:30
1396}
1397.search_button{
1398-webkit-box-flex:0;
1399-webkit-flex:0 0 24px;
1400-ms-flex:0 0 24px;
1401flex:0 0 24px;
1402-webkit-box-orient:vertical;
1403-webkit-box-direction:normal;
1404-webkit-flex-direction:column;
1405-ms-flex-direction:column;
1406flex-direction:column
1407}
1408.search_button svg{
1409margin-top:0
1410}
1411.search-input{
1412height:48px
1413}
1414.search-input input{
1415display:block;
1416color:#ffffff;
1417font:16px Roboto, sans-serif;
1418height:48px;
1419line-height:48px;
1420padding:0;
1421width:100%
1422}
1423.search-input input::-webkit-input-placeholder{
1424color:#ffffff;
1425opacity:.3
1426}
1427.search-input input::-moz-placeholder{
1428color:#ffffff;
1429opacity:.3
1430}
1431.search-input input:-ms-input-placeholder{
1432color:#ffffff;
1433opacity:.3
1434}
1435.search-input input::-ms-input-placeholder{
1436color:#ffffff;
1437opacity:.3
1438}
1439.search-input input::placeholder{
1440color:#ffffff;
1441opacity:.3
1442}
1443.search-action{
1444background:0 0;
1445border:0;
1446color:#ffffff;
1447cursor:pointer;
1448display:none;
1449height:48px;
1450margin-top:0
1451}
1452.sticky .search-action{
1453color:#9ba2a8
1454}
1455.search.focused .search-action{
1456display:block
1457}
1458.search.focused .search-action:disabled{
1459opacity:.3
1460}
1461.page_body{
1462position:relative;
1463z-index:20
1464}
1465.page_body .widget{
1466margin-bottom:16px
1467}
1468.page_body .centered{
1469box-sizing:border-box;
1470display:-webkit-box;
1471display:-webkit-flex;
1472display:-ms-flexbox;
1473display:flex;
1474-webkit-box-orient:vertical;
1475-webkit-box-direction:normal;
1476-webkit-flex-direction:column;
1477-ms-flex-direction:column;
1478flex-direction:column;
1479margin:0 auto;
1480max-width:922px;
1481min-height:100vh;
1482padding:24px 0
1483}
1484.page_body .centered>*{
1485-webkit-box-flex:0;
1486-webkit-flex:0 0 auto;
1487-ms-flex:0 0 auto;
1488flex:0 0 auto
1489}
1490.page_body .centered>#footer{
1491margin-top:auto
1492}
1493.blog-name{
1494margin:24px 0 16px 0
1495}
1496.item-view .blog-name,.sticky .blog-name{
1497box-sizing:border-box;
1498margin-left:36px;
1499min-height:48px;
1500opacity:1;
1501padding-top:12px
1502}
1503.blog-name .subscribe-section-container{
1504margin-bottom:32px;
1505text-align:center;
1506-webkit-transition-property:opacity;
1507transition-property:opacity;
1508-webkit-transition-duration:.5s;
1509transition-duration:.5s
1510}
1511.item-view .blog-name .subscribe-section-container,.sticky .blog-name .subscribe-section-container{
1512margin:0 0 8px 0
1513}
1514.blog-name .PageList{
1515margin-top:16px;
1516padding-top:8px;
1517text-align:center
1518}
1519.blog-name .PageList .overflowable-contents{
1520width:100%
1521}
1522.blog-name .PageList h3.title{
1523color:#ffffff;
1524margin:8px auto;
1525text-align:center;
1526width:100%
1527}
1528.centered-top-container .blog-name{
1529-webkit-transition-property:opacity;
1530transition-property:opacity;
1531-webkit-transition-duration:.5s;
1532transition-duration:.5s
1533}
1534.item-view .return_link{
1535margin-bottom:12px;
1536margin-top:12px;
1537position:absolute
1538}
1539.item-view .blog-name{
1540display:-webkit-box;
1541display:-webkit-flex;
1542display:-ms-flexbox;
1543display:flex;
1544-webkit-flex-wrap:wrap;
1545-ms-flex-wrap:wrap;
1546flex-wrap:wrap;
1547margin:0 48px 27px 48px
1548}
1549.item-view .subscribe-section-container{
1550-webkit-box-flex:0;
1551-webkit-flex:0 0 auto;
1552-ms-flex:0 0 auto;
1553flex:0 0 auto
1554}
1555.item-view #header,.item-view .Header{
1556margin-bottom:5px;
1557margin-right:15px
1558}
1559.item-view .sticky .Header{
1560margin-bottom:0
1561}
1562.item-view .Header p{
1563margin:10px 0 0 0;
1564text-align:left
1565}
1566.item-view .post-share-buttons-bottom{
1567margin-right:16px
1568}
1569.sticky{
1570background:#1d1d1d;
1571box-shadow:0 0 20px 0 rgba(0,0,0,.7);
1572box-sizing:border-box;
1573margin-left:0
1574}
1575.sticky #header{
1576margin-bottom:8px;
1577margin-right:8px
1578}
1579.sticky .centered-top{
1580margin:4px auto;
1581max-width:890px;
1582min-height:48px
1583}
1584.sticky .blog-name{
1585display:-webkit-box;
1586display:-webkit-flex;
1587display:-ms-flexbox;
1588display:flex;
1589margin:0 48px
1590}
1591.sticky .blog-name #header{
1592-webkit-box-flex:0;
1593-webkit-flex:0 1 auto;
1594-ms-flex:0 1 auto;
1595flex:0 1 auto;
1596-webkit-box-ordinal-group:2;
1597-webkit-order:1;
1598-ms-flex-order:1;
1599order:1;
1600overflow:hidden
1601}
1602.sticky .blog-name .subscribe-section-container{
1603-webkit-box-flex:0;
1604-webkit-flex:0 0 auto;
1605-ms-flex:0 0 auto;
1606flex:0 0 auto;
1607-webkit-box-ordinal-group:3;
1608-webkit-order:2;
1609-ms-flex-order:2;
1610order:2
1611}
1612.sticky .Header h1{
1613overflow:hidden;
1614text-overflow:ellipsis;
1615white-space:nowrap;
1616margin-right:-10px;
1617margin-bottom:-10px;
1618padding-right:10px;
1619padding-bottom:10px
1620}
1621.sticky .Header p{
1622display:none
1623}
1624.sticky .PageList{
1625display:none
1626}
1627.search-focused>*{
1628visibility:visible
1629}
1630.search-focused .hamburger-menu{
1631visibility:visible
1632}
1633.item-view .search-focused .blog-name,.sticky .search-focused .blog-name{
1634opacity:0
1635}
1636.centered-bottom,.centered-top-container,.centered-top-placeholder{
1637padding:0 16px
1638}
1639.centered-top{
1640position:relative
1641}
1642.item-view .centered-top.search-focused .subscribe-section-container,.sticky .centered-top.search-focused .subscribe-section-container{
1643opacity:0
1644}
1645.page_body.has-vertical-ads .centered .centered-bottom{
1646display:inline-block;
1647width:calc(100% - 176px)
1648}
1649.Header h1{
1650color:#ffffff;
1651font:bold 45px Roboto, sans-serif;
1652line-height:normal;
1653margin:0 0 13px 0;
1654text-align:center;
1655width:100%
1656}
1657.Header h1 a,.Header h1 a:hover,.Header h1 a:visited{
1658color:#ffffff
1659}
1660.item-view .Header h1,.sticky .Header h1{
1661font-size:24px;
1662line-height:24px;
1663margin:0;
1664text-align:left
1665}
1666.sticky .Header h1{
1667color:#9ba2a8
1668}
1669.sticky .Header h1 a,.sticky .Header h1 a:hover,.sticky .Header h1 a:visited{
1670color:#9ba2a8
1671}
1672.Header p{
1673color:#ffffff;
1674margin:0 0 13px 0;
1675opacity:.8;
1676text-align:center
1677}
1678.widget .title{
1679line-height:28px
1680}
1681.BlogArchive li{
1682font-size:16px
1683}
1684.BlogArchive .post-count{
1685color:#9ba2a8
1686}
1687#page_body .FeaturedPost,.Blog .blog-posts .post-outer-container{
1688background:#1d1d1d;
1689min-height:40px;
1690padding:30px 40px;
1691width:auto
1692}
1693.Blog .blog-posts .post-outer-container:last-child{
1694margin-bottom:0
1695}
1696.Blog .blog-posts .post-outer-container .post-outer{
1697border:0;
1698position:relative;
1699padding-bottom:.25em
1700}
1701.post-outer-container{
1702margin-bottom:16px
1703}
1704.post:first-child{
1705margin-top:0
1706}
1707.post .thumb{
1708float:left;
1709height:20%;
1710width:20%
1711}
1712.post-share-buttons-bottom,.post-share-buttons-top{
1713float:right
1714}
1715.post-share-buttons-bottom{
1716margin-right:24px
1717}
1718.post-footer,.post-header{
1719clear:left;
1720color:rgba(255,255,255,0.54);
1721margin:0;
1722width:inherit
1723}
1724.blog-pager{
1725text-align:center
1726}
1727.blog-pager a{
1728color:#2196f3
1729}
1730.blog-pager a:visited{
1731color:#2196f3
1732}
1733.blog-pager a:hover{
1734color:#2196f3
1735}
1736.post-title{
1737font:bold 22px Roboto, sans-serif;
1738float:left;
1739margin:0 0 8px 0;
1740max-width:calc(100% - 48px)
1741}
1742.post-title a{
1743font:bold 30px Roboto, sans-serif
1744}
1745.post-title,.post-title a,.post-title a:hover,.post-title a:visited{
1746color:#ffffff
1747}
1748.post-body{
1749color:#9ba2a8;
1750font:15px Roboto, sans-serif;
1751line-height:1.6em;
1752margin:1.5em 0 2em 0;
1753display:block
1754}
1755.post-body img{
1756height:inherit
1757}
1758.post-body .snippet-thumbnail{
1759float:left;
1760margin:0;
1761margin-right:2em;
1762max-height:128px;
1763max-width:128px
1764}
1765.post-body .snippet-thumbnail img{
1766max-width:100%
1767}
1768.main .FeaturedPost .widget-content{
1769border:0;
1770position:relative;
1771padding-bottom:.25em
1772}
1773.FeaturedPost img{
1774margin-top:2em
1775}
1776.FeaturedPost .snippet-container{
1777margin:2em 0
1778}
1779.FeaturedPost .snippet-container p{
1780margin:0
1781}
1782.FeaturedPost .snippet-thumbnail{
1783float:none;
1784height:auto;
1785margin-bottom:2em;
1786margin-right:0;
1787overflow:hidden;
1788max-height:calc(600px + 2em);
1789max-width:100%;
1790text-align:center;
1791width:100%
1792}
1793.FeaturedPost .snippet-thumbnail img{
1794max-width:100%;
1795width:100%
1796}
1797.byline{
1798color:rgba(255,255,255,0.54);
1799display:inline-block;
1800line-height:24px;
1801margin-top:8px;
1802vertical-align:top
1803}
1804.byline.post-author:first-child{
1805margin-right:0
1806}
1807.byline.reactions .reactions-label{
1808line-height:22px;
1809vertical-align:top
1810}
1811.byline.post-share-buttons{
1812position:relative;
1813display:inline-block;
1814margin-top:0;
1815width:100%
1816}
1817.byline.post-share-buttons .sharing{
1818float:right
1819}
1820.flat-button.ripple:hover{
1821background-color:rgba(33,150,243,.12)
1822}
1823.flat-button.ripple .splash{
1824background-color:rgba(33,150,243,.4)
1825}
1826a.timestamp-link,a:active.timestamp-link,a:visited.timestamp-link{
1827color:inherit;
1828font:inherit;
1829text-decoration:inherit
1830}
1831.post-share-buttons{
1832margin-left:0
1833}
1834.clear-sharing{
1835min-height:24px
1836}
1837.comment-link{
1838color:#2196f3;
1839position:relative
1840}
1841.comment-link .num_comments{
1842margin-left:8px;
1843vertical-align:top
1844}
1845#comment-holder .continue{
1846display:none
1847}
1848#comment-editor{
1849margin-bottom:20px;
1850margin-top:20px
1851}
1852#comments .comment-form h4,#comments h3.title{
1853position:absolute;
1854clip:rect(1px,1px,1px,1px);
1855padding:0;
1856border:0;
1857height:1px;
1858width:1px;
1859overflow:hidden
1860}
1861.post-filter-message{
1862background-color:rgba(0,0,0,.7);
1863color:#fff;
1864display:table;
1865margin-bottom:16px;
1866width:100%
1867}
1868.post-filter-message div{
1869display:table-cell;
1870padding:15px 28px
1871}
1872.post-filter-message div:last-child{
1873padding-left:0;
1874text-align:right
1875}
1876.post-filter-message a{
1877white-space:nowrap
1878}
1879.post-filter-message .search-label,.post-filter-message .search-query{
1880font-weight:700;
1881color:#2196f3
1882}
1883#blog-pager{
1884margin:2em 0
1885}
1886#blog-pager a{
1887color:#2196f3;
1888font-size:14px
1889}
1890.subscribe-button{
1891border-color:#ffffff;
1892color:#ffffff
1893}
1894.sticky .subscribe-button{
1895border-color:#9ba2a8;
1896color:#9ba2a8
1897}
1898.tabs{
1899margin:0 auto;
1900padding:0
1901}
1902.tabs li{
1903margin:0 8px;
1904vertical-align:top
1905}
1906.tabs .overflow-button a,.tabs li a{
1907color:#cccccc;
1908font:700 normal 15px Roboto, sans-serif;
1909line-height:18px
1910}
1911.tabs .overflow-button a{
1912padding:12px 8px
1913}
1914.overflow-popup .tabs li{
1915text-align:left
1916}
1917.overflow-popup li a{
1918color:#9ba2a8;
1919display:block;
1920padding:8px 20px
1921}
1922.overflow-popup li.selected a{
1923color:#ffffff
1924}
1925a.report_abuse{
1926font-weight:400
1927}
1928.Label li,.Label span.label-size,.byline.post-labels a{
1929background-color:#444444;
1930border:1px solid #444444;
1931border-radius:15px;
1932display:inline-block;
1933margin:4px 4px 4px 0;
1934padding:3px 8px
1935}
1936.Label a,.byline.post-labels a{
1937color:#ffffff
1938}
1939.Label ul{
1940list-style:none;
1941padding:0
1942}
1943.PopularPosts{
1944background-color:#444444;
1945padding:30px 40px
1946}
1947.PopularPosts .item-content{
1948color:#9ba2a8;
1949margin-top:24px
1950}
1951.PopularPosts a,.PopularPosts a:hover,.PopularPosts a:visited{
1952color:#2196f3
1953}
1954.PopularPosts .post-title,.PopularPosts .post-title a,.PopularPosts .post-title a:hover,.PopularPosts .post-title a:visited{
1955color:#ffffff;
1956font-size:18px;
1957font-weight:700;
1958line-height:24px
1959}
1960.PopularPosts,.PopularPosts h3.title a{
1961color:#9ba2a8;
1962font:15px Roboto, sans-serif
1963}
1964.main .PopularPosts{
1965padding:16px 40px
1966}
1967.PopularPosts h3.title{
1968font-size:14px;
1969margin:0
1970}
1971.PopularPosts h3.post-title{
1972margin-bottom:0
1973}
1974.PopularPosts .byline{
1975color:rgba(255,255,255,0.54)
1976}
1977.PopularPosts .jump-link{
1978float:right;
1979margin-top:16px
1980}
1981.PopularPosts .post-header .byline{
1982font-size:.9em;
1983font-style:italic;
1984margin-top:6px
1985}
1986.PopularPosts ul{
1987list-style:none;
1988padding:0;
1989margin:0
1990}
1991.PopularPosts .post{
1992padding:20px 0
1993}
1994.PopularPosts .post+.post{
1995border-top:1px dashed #cccccc
1996}
1997.PopularPosts .item-thumbnail{
1998float:left;
1999margin-right:32px
2000}
2001.PopularPosts .item-thumbnail img{
2002height:88px;
2003padding:0;
2004width:88px
2005}
2006.inline-ad{
2007margin-bottom:16px
2008}
2009.desktop-ad .inline-ad{
2010display:block
2011}
2012.adsbygoogle{
2013overflow:hidden
2014}
2015.vertical-ad-container{
2016float:right;
2017margin-right:16px;
2018width:128px
2019}
2020.vertical-ad-container .AdSense+.AdSense{
2021margin-top:16px
2022}
2023.inline-ad-placeholder,.vertical-ad-placeholder{
2024background:#1d1d1d;
2025border:1px solid #000;
2026opacity:.9;
2027vertical-align:middle;
2028text-align:center
2029}
2030.inline-ad-placeholder span,.vertical-ad-placeholder span{
2031margin-top:290px;
2032display:block;
2033text-transform:uppercase;
2034font-weight:700;
2035color:#ffffff
2036}
2037.vertical-ad-placeholder{
2038height:600px
2039}
2040.vertical-ad-placeholder span{
2041margin-top:290px;
2042padding:0 40px
2043}
2044.inline-ad-placeholder{
2045height:90px
2046}
2047.inline-ad-placeholder span{
2048margin-top:36px
2049}
2050.Attribution{
2051color:#9ba2a8
2052}
2053.Attribution a,.Attribution a:hover,.Attribution a:visited{
2054color:#2196f3
2055}
2056.Attribution svg{
2057fill:#ffffff
2058}
2059.sidebar-container{
2060box-shadow:1px 1px 3px rgba(0,0,0,.1)
2061}
2062.sidebar-container,.sidebar-container .sidebar_bottom{
2063background-color:#1d1d1d
2064}
2065.sidebar-container .navigation,.sidebar-container .sidebar_top_wrapper{
2066background-color:#1d1d1d
2067}
2068.sidebar-container .sidebar_top{
2069overflow:auto
2070}
2071.sidebar-container .sidebar_bottom{
2072width:100%;
2073padding-top:16px
2074}
2075.sidebar-container .widget:first-child{
2076padding-top:0
2077}
2078.sidebar_top .widget.Profile{
2079padding-bottom:16px
2080}
2081.widget.Profile{
2082margin:0;
2083width:100%
2084}
2085.widget.Profile h2{
2086display:none
2087}
2088.widget.Profile h3.title{
2089color:#c5c1c1;
2090margin:16px 32px
2091}
2092.widget.Profile .individual{
2093text-align:center
2094}
2095.widget.Profile .individual .profile-link{
2096padding:1em
2097}
2098.widget.Profile .individual .default-avatar-wrapper .avatar-icon{
2099margin:auto
2100}
2101.widget.Profile .team{
2102margin-bottom:32px;
2103margin-left:32px;
2104margin-right:32px
2105}
2106.widget.Profile ul{
2107list-style:none;
2108padding:0
2109}
2110.widget.Profile li{
2111margin:10px 0
2112}
2113.widget.Profile .profile-img{
2114border-radius:50%;
2115float:none
2116}
2117.widget.Profile .profile-link{
2118color:#ffffff;
2119font-size:.9em;
2120margin-bottom:1em;
2121opacity:.87;
2122overflow:hidden
2123}
2124.widget.Profile .profile-link.visit-profile{
2125border-style:solid;
2126border-width:1px;
2127border-radius:12px;
2128cursor:pointer;
2129font-size:12px;
2130font-weight:400;
2131padding:5px 20px;
2132display:inline-block;
2133line-height:normal
2134}
2135.widget.Profile dd{
2136color:rgba(238, 238, 238, 0.54);
2137margin:0 16px
2138}
2139.widget.Profile location{
2140margin-bottom:1em
2141}
2142.widget.Profile .profile-textblock{
2143font-size:14px;
2144line-height:24px;
2145position:relative
2146}
2147body.sidebar-visible .page_body{
2148overflow-y:scroll
2149}
2150body.sidebar-visible .bg-photo-container{
2151overflow-y:scroll
2152}
2153@media screen and (min-width:1440px){
2154.sidebar-container{
2155margin-top:480px;
2156min-height:calc(100% - 480px);
2157overflow:visible;
2158z-index:32
2159}
2160.sidebar-container .sidebar_top_wrapper{
2161background-color:#1d1d1d;
2162height:480px;
2163margin-top:-480px
2164}
2165.sidebar-container .sidebar_top{
2166display:-webkit-box;
2167display:-webkit-flex;
2168display:-ms-flexbox;
2169display:flex;
2170height:480px;
2171-webkit-box-orient:horizontal;
2172-webkit-box-direction:normal;
2173-webkit-flex-direction:row;
2174-ms-flex-direction:row;
2175flex-direction:row;
2176max-height:480px
2177}
2178.sidebar-container .sidebar_bottom{
2179max-width:284px;
2180width:284px
2181}
2182body.collapsed-header .sidebar-container{
2183z-index:15
2184}
2185.sidebar-container .sidebar_top:empty{
2186display:none
2187}
2188.sidebar-container .sidebar_top>:only-child{
2189-webkit-box-flex:0;
2190-webkit-flex:0 0 auto;
2191-ms-flex:0 0 auto;
2192flex:0 0 auto;
2193-webkit-align-self:center;
2194-ms-flex-item-align:center;
2195align-self:center;
2196width:100%
2197}
2198.sidebar_top_wrapper.no-items{
2199display:none
2200}
2201}
2202.post-snippet.snippet-container{
2203max-height:120px
2204}
2205.post-snippet .snippet-item{
2206line-height:24px
2207}
2208.post-snippet .snippet-fade{
2209background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%);
2210background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%);
2211color:#9ba2a8;
2212height:24px
2213}
2214.popular-posts-snippet.snippet-container{
2215max-height:72px
2216}
2217.popular-posts-snippet .snippet-item{
2218line-height:24px
2219}
2220.PopularPosts .popular-posts-snippet .snippet-fade{
2221color:#9ba2a8;
2222height:24px
2223}
2224.main .popular-posts-snippet .snippet-fade{
2225background:-webkit-linear-gradient(left,#444444 0,#444444 20%,rgba(68, 68, 68, 0) 100%);
2226background:linear-gradient(to left,#444444 0,#444444 20%,rgba(68, 68, 68, 0) 100%)
2227}
2228.sidebar_bottom .popular-posts-snippet .snippet-fade{
2229background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%);
2230background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%)
2231}
2232.profile-snippet.snippet-container{
2233max-height:192px
2234}
2235.has-location .profile-snippet.snippet-container{
2236max-height:144px
2237}
2238.profile-snippet .snippet-item{
2239line-height:24px
2240}
2241.profile-snippet .snippet-fade{
2242background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%);
2243background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%);
2244color:rgba(238, 238, 238, 0.54);
2245height:24px
2246}
2247@media screen and (min-width:1440px){
2248.profile-snippet .snippet-fade{
2249background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%);
2250background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%)
2251}
2252}
2253@media screen and (max-width:800px){
2254.blog-name{
2255margin-top:0
2256}
2257body.item-view .blog-name{
2258margin:0 48px
2259}
2260.centered-bottom{
2261padding:8px
2262}
2263body.item-view .centered-bottom{
2264padding:0
2265}
2266.page_body .centered{
2267padding:10px 0
2268}
2269body.item-view #header,body.item-view .widget.Header{
2270margin-right:0
2271}
2272body.collapsed-header .centered-top-container .blog-name{
2273display:block
2274}
2275body.collapsed-header .centered-top-container .widget.Header h1{
2276text-align:center
2277}
2278.widget.Header header{
2279padding:0
2280}
2281.widget.Header h1{
2282font-size:24px;
2283line-height:24px;
2284margin-bottom:13px
2285}
2286body.item-view .widget.Header h1{
2287text-align:center
2288}
2289body.item-view .widget.Header p{
2290text-align:center
2291}
2292.blog-name .widget.PageList{
2293padding:0
2294}
2295body.item-view .centered-top{
2296margin-bottom:5px
2297}
2298.search-action,.search-input{
2299margin-bottom:-8px
2300}
2301.search form{
2302margin-bottom:8px
2303}
2304body.item-view .subscribe-section-container{
2305margin:5px 0 0 0;
2306width:100%
2307}
2308#page_body.section div.widget.FeaturedPost,div.widget.PopularPosts{
2309padding:16px
2310}
2311div.widget.Blog .blog-posts .post-outer-container{
2312padding:16px
2313}
2314div.widget.Blog .blog-posts .post-outer-container .post-outer{
2315padding:0
2316}
2317.post:first-child{
2318margin:0
2319}
2320.post-body .snippet-thumbnail{
2321margin:0 3vw 3vw 0
2322}
2323.post-body .snippet-thumbnail img{
2324height:20vw;
2325width:20vw;
2326max-height:128px;
2327max-width:128px
2328}
2329div.widget.PopularPosts div.item-thumbnail{
2330margin:0 3vw 3vw 0
2331}
2332div.widget.PopularPosts div.item-thumbnail img{
2333height:20vw;
2334width:20vw;
2335max-height:88px;
2336max-width:88px
2337}
2338.post-title{
2339line-height:1
2340}
2341.post-title,.post-title a{
2342font-size:20px
2343}
2344#page_body.section div.widget.FeaturedPost h3 a{
2345font-size:22px
2346}
2347.mobile-ad .inline-ad{
2348display:block
2349}
2350.page_body.has-vertical-ads .vertical-ad-container,.page_body.has-vertical-ads .vertical-ad-container ins{
2351display:none
2352}
2353.page_body.has-vertical-ads .centered .centered-bottom,.page_body.has-vertical-ads .centered .centered-top{
2354display:block;
2355width:auto
2356}
2357div.post-filter-message div{
2358padding:8px 16px
2359}
2360}
2361@media screen and (min-width:1440px){
2362body{
2363position:relative
2364}
2365body.item-view .blog-name{
2366margin-left:48px
2367}
2368.page_body{
2369margin-left:284px
2370}
2371.search{
2372margin-left:0
2373}
2374.search.focused{
2375width:100%
2376}
2377.sticky{
2378padding-left:284px
2379}
2380.hamburger-menu{
2381display:none
2382}
2383body.collapsed-header .page_body .centered-top-container{
2384padding-left:284px;
2385padding-right:0;
2386width:100%
2387}
2388body.collapsed-header .centered-top-container .search.focused{
2389width:100%
2390}
2391body.collapsed-header .centered-top-container .blog-name{
2392margin-left:0
2393}
2394body.collapsed-header.item-view .centered-top-container .search.focused{
2395width:calc(100% - 50px)
2396}
2397body.collapsed-header.item-view .centered-top-container .blog-name{
2398margin-left:40px
2399}
2400}
2401
2402--></style>
2403<style id='template-skin-1' type='text/css'><!--
2404body#layout .hidden,
2405body#layout .invisible {
2406display: inherit;
2407}
2408body#layout .navigation {
2409display: none;
2410}
2411body#layout .page,
2412body#layout .sidebar_top,
2413body#layout .sidebar_bottom {
2414display: inline-block;
2415left: inherit;
2416position: relative;
2417vertical-align: top;
2418}
2419body#layout .page {
2420float: right;
2421margin-left: 20px;
2422width: 55%;
2423}
2424body#layout .sidebar-container {
2425float: right;
2426width: 40%;
2427}
2428body#layout .hamburger-menu {
2429display: none;
2430}
2431--></style>
2432<style>
2433    .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa);}
2434    
2435@media (max-width: 480px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w480);}}
2436@media (max-width: 640px) and (min-width: 481px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w640);}}
2437@media (max-width: 800px) and (min-width: 641px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w800);}}
2438@media (max-width: 1200px) and (min-width: 801px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w1200);}}
2439/* Last tag covers anything over one higher than the previous max-size cap. */
2440@media (min-width: 1201px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w1600);}}
2441  </style>
2442<script async='async' src='//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script>
vendor: 1 bytes, line 2442
2442
2443<script type='text/javascript'>
vendor: 374 bytes, lines 2443-2448
2443
2444        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
2445        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
2446        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
2447        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
2448        ga('create', '
2448UA-39676116-1
vendor: 31 bytes, lines 2448-2449
2448', 'auto', 'blogger');
2449        
2449ga('blogger.send', 'pageview');
2450      </script>
vendor: 1 bytes, line 2450
2450
2451<script async='async' src='https://www.gstatic.com/external_hosted/clipboardjs/clipboard.min.js'></script>
2451
2452<style type='text/css'>
2453/* h4hacks: keep third-party embeds inside the sidebar column. Telegram and
2454   Facebook widgets force a fixed pixel width (Telegram renders at 320px in a
2455   252px column) which is what made the sidebar bleed past its border. */
2456.sidebar .widget iframe, .sidebar_bottom .widget iframe, .sidebar_top .widget iframe { max-width: 100% !important; min-width: 0 !important; width: 100% !important; border: 0; }
2457/* Telegram's own script sets an inline min-width of 320px, and per the CSS
2458   spec min-width beats max-width -- so capping max-width alone left the
2459   iframe overflowing and merely clipped by the rule below. */
2460.sidebar .widget, .sidebar_bottom .widget, .sidebar_top .widget { overflow-x: hidden; }
2461.sidebar .widget-content, .sidebar_bottom .widget-content { overflow-x: hidden; }
2462/* The Telegram feed renders its entire history: 1149px of chat against a
2463   1424px post list. Cap it and let it scroll on its own. */
2464/* Telegram lays its content out at a fixed 320px internally. Squeezing the
2465   iframe narrower just clips the text mid-word, and the iframe is cross-origin
2466   so its inside cannot be restyled. Keep the native width and scale the whole
2467   widget down to fit the column instead: 320 * 0.7875 = 252px. */
2468#HTML3 .widget-content iframe { width: 320px !important; min-width: 320px !important; max-width: none !important; transform: scale(0.7875); transform-origin: top left; }
2469#HTML3 .widget-content { max-height: 360px; overflow-y: auto; overflow-x: hidden; }
2470#HTML2 .widget-content { max-height: 320px; overflow-y: auto; }
2471#HTML1 .widget-content { max-height: 220px; overflow-y: auto; }
2472/* Featured Post shows a broken placeholder when a post leads with a video
2473   embed instead of an image. */
2474.FeaturedPost img[src=''], .FeaturedPost .snippet-thumbnail img[src=''] { display: none; }
2475</style>
2476<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
2477<meta name='google-adsense-platform-domain' content='blogspot.com'/>
2478
2479<!-- data-ad-client=ca-pub-7526045351349686 -->
2480
2481</head>
2482<body class='archive-view version-1-3-3'>
2483<a class='skip-navigation' href='#main' tabindex='0'>
2484Skip to main content
2485</a>
2486<div class='page'>
2487<div class='bg-photo-overlay'></div>
2488<div class='bg-photo-container'>
2489<div class='bg-photo'></div>
2490</div>
2491<div class='page_body has-vertical-ads'>
2492<div class='centered'>
2493<div class='centered-top-placeholder'></div>
2494<header class='centered-top-container' role='banner'>
2495<div class='centered-top'>
2496<button class='svg-icon-24-button hamburger-menu flat-icon-button ripple'>
2497<svg class='svg-icon-24'>
2498<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_menu_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2499</svg>
2500</button>
2501<div class='search'>
2502<button aria-label='Search' class='search-expand touch-icon-button'>
2503<div class='flat-icon-button ripple'>
2504<svg class='svg-icon-24 search-expand-icon'>
2505<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2506</svg>
2507</div>
2508</button>
2509<div class='section' id='search_top' name='Search (Top)'><div class='widget BlogSearch' data-version='2' id='BlogSearch1'>
2510<h3 class='title'>
2511Search This Blog
2512</h3>
2513<div class='widget-content' role='search'>
2514<form action='https://www.h4hacks.com/search' target='_top'>
2515<div class='search-input'>
2516<input aria-label='Search this blog' autocomplete='off' name='q' placeholder='Search this blog' value=''/>
2517</div>
2518<input class='search-action flat-button' type='submit' value='Search'/>
2519</form>
2520</div>
2521</div></div>
2522</div>
2523<div class='clearboth'></div>
2524<div class='blog-name container'>
2525<div class='container section' id='header' name='Header'><div class='widget Header' data-version='2' id='Header1'>
2526<div class='header-widget'>
2527<div>
2528<h1>
2529<a href='https://www.h4hacks.com/'>
2530H4hacks
2531</a>
2532</h1>
2533</div>
2534<p>
2535Robotics, DIY, hacking, 3d printing, Hardware Hacking, penetration testing, prusa i3, linux, python, information security, SSL, qualys, arduino, 3d printer etc
2536</p>
2537</div>
2538</div></div>
2539<nav role='navigation'>
2540<div class='clearboth section' id='page_list_top' name='Page List (Top)'><div class='widget PageList' data-version='2' id='PageList1'>
2541<h3 class='title'>
2542Pages
2543</h3>
2544<div class='widget-content'>
2545<div class='overflowable-container'>
2546<div class='overflowable-contents'>
2547<div class='container'>
2548<ul class='tabs'>
2549<li class='overflowable-item'>
2550<a href='http://www.h4hacks.com/'>Home</a>
2551</li>
2552<li class='overflowable-item'>
2553<a href='https://www.h4hacks.com/p/my-3d-printing-saga.html'>My 3D Printing saga</a>
2554</li>
2555<li class='overflowable-item'>
2556<a href='https://www.h4hacks.com/p/hello-world-welcome-to-h4hacks-this-is.html'>About h4hacks</a>
2557</li>
2558</ul>
2559</div>
2560</div>
2561<div class='overflow-button hidden'>
2562<a>More&hellip;</a>
2563</div>
2564</div>
2565</div>
2566</div></div>
2567</nav>
2568</div>
2569</div>
2570</header>
2571<div>
2572<div class='vertical-ad-container section' id='ads' name='Ads'><div class='widget AdSense' data-version='2' id='AdSense1'>
2573<div class='widget-content'>
2574<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7526045351349686&host=ca-host-pub-1556223355139109" crossorigin="anonymous"></script>
2574
2575<!-- h4hacks-mohesh_ads_AdSense1_1x1_as -->
2576<ins class="adsbygoogle"
2577     style="display:block"
2578     data-ad-client="ca-pub-7526045351349686"
2579     data-ad-host="ca-host-pub-1556223355139109"
2580     data-ad-slot="8993779025"
2581     data-ad-format="auto"
2582     data-full-width-responsive="true"></ins>
2583<script>
2584(adsbygoogle = window.adsbygoogle || []).push({});
2585</script>
2585
2586</div>
2587</div><div class='widget AdSense' data-version='2' id='AdSense2'>
2588<div class='widget-content'>
2589<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7526045351349686&host=ca-host-pub-1556223355139109" crossorigin="anonymous"></script>
2589
2590<!-- h4hacks-mohesh_ads_AdSense2_1x1_as -->
2591<ins class="adsbygoogle"
2592     style="display:block"
2593     data-ad-client="ca-pub-7526045351349686"
2594     data-ad-host="ca-host-pub-1556223355139109"
2595     data-ad-slot="3685612029"
2596     data-ad-format="auto"
2597     data-full-width-responsive="true"></ins>
2598<script>
2599(adsbygoogle = window.adsbygoogle || []).push({});
2600</script>
2600
2601</div>
2602</div></div>
2603<main class='centered-bottom' id='main' role='main' tabindex='-1'>
2604<h2 class='main-heading'>Posts</h2>
2605<div class='post-filter-message'>
2606<div>
2607Showing posts from 2026
2608</div>
2609<div>
2610<a class='flat-button ripple' href='https://www.h4hacks.com/'>
2611Show all
2612</a>
2613</div>
2614</div>
2615<div class='main section' id='page_body' name='Page Body'><div class='widget FeaturedPost' data-version='2' id='FeaturedPost1'>
2616<h3 class='title'>
2617Featured Post
2618</h3>
2619<div class='widget-content'>
2620<div role='feed'>
2621<article class='post' role='article'>
2622<h3 class='post-title'><a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'>Running four AI models fully offline on a Nextion ONX3248G035</a></h3>
2623<div class='post-share-buttons post-share-buttons-top'>
2624<div class='byline post-share-buttons goog-inline-block'>
2625<div aria-owns='sharing-popup-FeaturedPost1-byline-1489533363326807711' class='sharing' data-title='Running four AI models fully offline on a Nextion ONX3248G035'>
2626<button aria-controls='sharing-popup-FeaturedPost1-byline-1489533363326807711' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-FeaturedPost1-byline-1489533363326807711' role='button'>
2627<div class='flat-icon-button ripple'>
2628<svg class='svg-icon-24'>
2629<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2630</svg>
2631</div>
2632</button>
2633<div class='share-buttons-container'>
2634<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-FeaturedPost1-byline-1489533363326807711' role='menu'>
2635<li>
2636<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Get link'>
2637<svg class='svg-icon-24 touch-icon sharing-link'>
2638<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2639</svg>
2640<span class='platform-sharing-text'>Get link</span>
2641</span>
2642</li>
2643<li>
2644<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=facebook' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
2645<svg class='svg-icon-24 touch-icon sharing-facebook'>
2646<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2647</svg>
2648<span class='platform-sharing-text'>Facebook</span>
2649</span>
2650</li>
2651<li>
2652<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=twitter' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to X'>
2653<svg class='svg-icon-24 touch-icon sharing-twitter'>
2654<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2655</svg>
2656<span class='platform-sharing-text'>X</span>
2657</span>
2658</li>
2659<li>
2660<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=pinterest' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
2661<svg class='svg-icon-24 touch-icon sharing-pinterest'>
2662<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2663</svg>
2664<span class='platform-sharing-text'>Pinterest</span>
2665</span>
2666</li>
2667<li>
2668<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=email' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Email'>
2669<svg class='svg-icon-24 touch-icon sharing-email'>
2670<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2671</svg>
2672<span class='platform-sharing-text'>Email</span>
2673</span>
2674</li>
2675<li aria-hidden='true' class='hidden'>
2676<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to other apps'>
2677<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
2678<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2679</svg>
2680<span class='platform-sharing-text'>Other Apps</span>
2681</span>
2682</li>
2683</ul>
2684</div>
2685</div>
2686</div>
2687</div>
2688<div class='post-header'>
2689<div class='post-header-line-1'>
2690<span class='byline post-timestamp'>
2691-
2692<meta content='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'/>
2693<a class='timestamp-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' rel='bookmark' title='permanent link'>
2694<time class='published' datetime='2026-07-30T22:12:00+05:30' title='2026-07-30T22:12:00+05:30'>
2695July 30, 2026
2696</time>
2697</a>
2698</span>
2699</div>
2700</div>
2701<div class='snippet-thumbnail'>
2702<img alt='Image' data-ess='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vgKJ9z7RdT1TIZw4Q2RYJKP5xyb5r4NQqQdQOMOIPOl0HJTr2LV73x7DPG7S2_qONy0jrp2I_zs0G9MOdvytQgm5U2dMUzdKTqKBs2hvwRhv5bWZpHxA=w945-h600-pd' sizes='(min-width: 954px) 842px, (min-width: 801px) calc(100vw - 112px), calc(100vw - 64px)' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w256-h162-n-k-no-nu 256w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w512-h325-n-k-no-nu 512w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w945-h600-n-k-no-nu 945w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w1684-h1069-n-k-no-nu 1684w'/>
2703</div>
2704<div class='post-snippet snippet-container r-snippet-container'>
2705<div class='snippet-item r-snippetized'>
2706A while back I unboxed a Nextion touchscreen dev board and vibe-coded a WiFi auditor onto it . That board has been sitting on my desk ever since, and one question kept nagging: this thing has 8&#160;MB of PSRAM and a dual-core ESP32-S3. Could it run an actual language model? Not talk to one over WiFi &#8212; run  one.  Turns out: yes. Four of them, in fact. No internet, no server, no phone, no PC. Everything in this video is generated by the chip on the board.   All four models, on the board, offline. Loading a model from the SD card, then generating.  What is actually running  The board boots into a menu. Tap a model, it loads and starts generating. All of these were trained from scratch on an M2 Max in well under an hour.  Malayalam English Arithmetic Icons Parameters 7.6M 7.6M 1.0M 577K Flash 3.95 MB 3.95 MB 0.41 MB 0.58 MB Speed 13.0 tok/s 14.9 tok/s 20.7 tok/s 3.4 s/image  First things first: this is not a Nextion HMI  The ONX3248G035 is sold under Nextion branding, and the name is...
2707</div>
2708<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'></a>
2709</div>
2710<div class='post-bottom'>
2711<div class='post-footer float-container'>
2712<div class='post-footer-line post-footer-line-1'>
2713<span class='byline post-comment-link container'>
2714<a class='comment-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html#comments' onclick=''>
2715<svg class='svg-icon-24 touch-icon'>
2716<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2717</svg>
2718<span class='num_comments'>
27193 comments
2720</span>
2721</a>
2722</span>
2723</div>
2724<div class='post-footer-line post-footer-line-2'>
2725</div>
2726<div class='post-footer-line post-footer-line-3'>
2727</div>
2728</div>
2729<div class='jump-link flat-button ripple'>
2730<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' title='Running four AI models fully offline on a Nextion ONX3248G035'>
2731Read more
2732</a>
2733</div>
2734</div>
2735</article>
2736</div>
2737</div>
2738</div><div class='widget Blog' data-version='2' id='Blog1'>
2739<div class='blog-posts hfeed container'>
2740<article class='post-outer-container'>
2741<div class='post-outer'>
2742<div class='post'>
2743<script type='application/ld+json'>{
2744  "@context": "http://schema.org",
2745  "@type": "BlogPosting",
2746  "mainEntityOfPage": {
2747    "@type": "WebPage",
2748    "@id": "https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html"
2749  },
2750  "headline": "Running four AI models fully offline on a Nextion ONX3248G035","description": "A while back I unboxed a Nextion touchscreen dev board and vibe-coded a WiFi auditor onto it . That board has been sitting on my desk ever s...","datePublished": "2026-07-30T22:12:00+05:30",
2751  "dateModified": "2026-07-30T22:43:54+05:30","image": {
2752    "@type": "ImageObject","url": "https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w1200-h630-n-k-no-nu",
2753    "height": 630,
2754    "width": 1200},"publisher": {
2755    "@type": "Organization",
2756    "name": "Blogger",
2757    "logo": {
2758      "@type": "ImageObject",
2759      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
2760      "width": 206,
2761      "height": 60
2762    }
2763  },"author": {
2764    "@type": "Person",
2765    "name": "Observer"
2766  }
2767}</script>
2767
2768<a name='1489533363326807711'></a>
2769<h3 class='post-title entry-title'>
2770<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'>Running four AI models fully offline on a Nextion ONX3248G035</a>
2771</h3>
2772<div class='post-share-buttons post-share-buttons-top'>
2773<div class='byline post-share-buttons goog-inline-block'>
2774<div aria-owns='sharing-popup-Blog1-byline-1489533363326807711' class='sharing' data-title='Running four AI models fully offline on a Nextion ONX3248G035'>
2775<button aria-controls='sharing-popup-Blog1-byline-1489533363326807711' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-1489533363326807711' role='button'>
2776<div class='flat-icon-button ripple'>
2777<svg class='svg-icon-24'>
2778<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2779</svg>
2780</div>
2781</button>
2782<div class='share-buttons-container'>
2783<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-1489533363326807711' role='menu'>
2784<li>
2785<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Get link'>
2786<svg class='svg-icon-24 touch-icon sharing-link'>
2787<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2788</svg>
2789<span class='platform-sharing-text'>Get link</span>
2790</span>
2791</li>
2792<li>
2793<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=facebook' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
2794<svg class='svg-icon-24 touch-icon sharing-facebook'>
2795<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2796</svg>
2797<span class='platform-sharing-text'>Facebook</span>
2798</span>
2799</li>
2800<li>
2801<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=twitter' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to X'>
2802<svg class='svg-icon-24 touch-icon sharing-twitter'>
2803<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2804</svg>
2805<span class='platform-sharing-text'>X</span>
2806</span>
2807</li>
2808<li>
2809<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=pinterest' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
2810<svg class='svg-icon-24 touch-icon sharing-pinterest'>
2811<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2812</svg>
2813<span class='platform-sharing-text'>Pinterest</span>
2814</span>
2815</li>
2816<li>
2817<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=email' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Email'>
2818<svg class='svg-icon-24 touch-icon sharing-email'>
2819<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2820</svg>
2821<span class='platform-sharing-text'>Email</span>
2822</span>
2823</li>
2824<li aria-hidden='true' class='hidden'>
2825<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to other apps'>
2826<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
2827<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2828</svg>
2829<span class='platform-sharing-text'>Other Apps</span>
2830</span>
2831</li>
2832</ul>
2833</div>
2834</div>
2835</div>
2836</div>
2837<div class='post-header'>
2838<div class='post-header-line-1'>
2839<span class='byline post-timestamp'>
2840-
2841<meta content='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'/>
2842<a class='timestamp-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' rel='bookmark' title='permanent link'>
2843<time class='published' datetime='2026-07-30T22:12:00+05:30' title='2026-07-30T22:12:00+05:30'>
2844July 30, 2026
2845</time>
2846</a>
2847</span>
2848</div>
2849</div>
2850<div class='container post-body entry-content' id='post-snippet-1489533363326807711'>
2851<div class='snippet-thumbnail'>
2852<img alt='Image' sizes='(max-width: 800px) 20vw, 128px' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6P
2852XZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w32-h32-n-k-no-nu 32w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w64-h64-n-k-no-nu 64w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w128-h128-n-k-no-nu 128w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w256-h256-n-k-no-nu 256w'/>
2853</div>
2854<div class='post-snippet snippet-container r-snippet-container'>
2855<div class='snippet-item r-snippetized'>
2856A while back I unboxed a Nextion touchscreen dev board and vibe-coded a WiFi auditor onto it . That board has been sitting on my desk ever since, and one question kept nagging: this thing has 8&#160;MB of PSRAM and a dual-core ESP32-S3. Could it run an actual language model? Not talk to one over WiFi &#8212; run  one.  Turns out: yes. Four of them, in fact. No internet, no server, no phone, no PC. Everything in this video is generated by the chip on the board.   All four models, on the board, offline. Loading a model from the SD card, then generating.  What is actually running  The board boots into a menu. Tap a model, it loads and starts generating. All of these were trained from scratch on an M2 Max in well under an hour.  Malayalam English Arithmetic Icons Parameters 7.6M 7.6M 1.0M 577K Flash 3.95 MB 3.95 MB 0.41 MB 0.58 MB Speed 13.0 tok/s 14.9 tok/s 20.7 tok/s 3.4 s/image  First things first: this is not a Nextion HMI  The ONX3248G035 is sold under Nextion branding, and the name is...
2857</div>
2858<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'></a>
2859</div>
2860</div>
2861<div class='post-bottom'>
2862<div class='post-footer float-container'>
2863<div class='post-footer-line post-footer-line-1'>
2864<span class='byline post-comment-link container'>
2865<a class='comment-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html#comments' onclick=''>
2866<svg class='svg-icon-24 touch-icon'>
2867<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2868</svg>
2869<span class='num_comments'>
28703 comments
2871</span>
2872</a>
2873</span>
2874</div>
2875<div class='post-footer-line post-footer-line-2'>
2876</div>
2877<div class='post-footer-line post-footer-line-3'>
2878</div>
2879</div>
2880<div class='jump-link flat-button ripple'>
2881<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' title='Running four AI models fully offline on a Nextion ONX3248G035'>
2882Read more
2883</a>
2884</div>
2885</div>
2886</div>
2887</div>
2888</article>
2889<div class='desktop-ad mobile-ad'>
2890<div class='inline-ad'>
2891<ins class='adsbygoogle' data-ad-client='ca-pub-7526045351349686' data-ad-format='auto' data-ad-host='ca-h
2891ost-pub-1556223355139109' data-analytics-uacct='UA-39676116-1' style='/* Done in css. */'>
2892</ins>
2893<script>
2894   (adsbygoogle = window.adsbygoogle || []).push({});
2895  </script>
2895
2896</div>
2897</div>
2898<article class='post-outer-container'>
2899<div class='post-outer'>
2900<div class='post'>
2901<script type='application/ld+json'>{
2902  "@context": "http://schema.org",
2903  "@type": "BlogPosting",
2904  "mainEntityOfPage": {
2905    "@type": "WebPage",
2906    "@id": "https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html"
2907  },
2908  "headline": "Meet Dhara &#8212; send files without the cloud, without accounts, without internet","description": "DHARA    SHARE FILES &#183; NO CLOUD &#183; NO ACCOUNTS &#183; NO INTERNET    A cross-platform file-share app that runs a tiny HTTP server on you...","datePublished": "2026-07-05T23:29:00+05:30",
2909  "dateModified": "2026-08-01T17:49:49+05:30","image": {
2910    "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/",
2911    "height": 348,
2912    "width": 1200},"publisher": {
2913    "@type": "Organization",
2914    "name": "Blogger",
2915    "logo": {
2916      "@type": "ImageObject",
2917      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
2918      "width": 206,
2919      "height": 60
2920    }
2921  },"author": {
2922    "@type": "Person",
2923    "name": "Observer"
2924  }
2925}</script>
2925
2926<a name='6065616582831346989'></a>
2927<h3 class='post-title entry-title'>
2928<a href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'>Meet Dhara &#8212; send files without the cloud, without accounts, without internet</a>
2929</h3>
2930<div class='post-share-buttons post-share-buttons-top'>
2931<div class='byline post-share-buttons goog-inline-block'>
2932<div aria-owns='sharing-popup-Blog1-byline-6065616582831346989' class='sharing' data-title='Meet Dhara — send files without the cloud, without accounts, without internet'>
2933<button aria-controls='sharing-popup-Blog1-byline-6065616582831346989' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-6065616582831346989' role='button'>
2934<div class='flat-icon-button ripple'>
2935<svg class='svg-icon-24'>
2936<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2937</svg>
2938</div>
2939</button>
2940<div class='share-buttons-container'>
2941<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-6065616582831346989' role='menu'>
2942<li>
2943<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Get link'>
2944<svg class='svg-icon-24 touch-icon sharing-link'>
2945<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2946</svg>
2947<span class='platform-sharing-text'>Get link</span>
2948</span>
2949</li>
2950<li>
2951<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=facebook' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
2952<svg class='svg-icon-24 touch-icon sharing-facebook'>
2953<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2954</svg>
2955<span class='platform-sharing-text'>Facebook</span>
2956</span>
2957</li>
2958<li>
2959<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=twitter' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to X'>
2960<svg class='svg-icon-24 touch-icon sharing-twitter'>
2961<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2962</svg>
2963<span class='platform-sharing-text'>X</span>
2964</span>
2965</li>
2966<li>
2967<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=pinterest' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
2968<svg class='svg-icon-24 touch-icon sharing-pinterest'>
2969<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2970</svg>
2971<span class='platform-sharing-text'>Pinterest</span>
2972</span>
2973</li>
2974<li>
2975<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=email' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Email'>
2976<svg class='svg-icon-24 touch-icon sharing-email'>
2977<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2978</svg>
2979<span class='platform-sharing-text'>Email</span>
2980</span>
2981</li>
2982<li aria-hidden='true' class='hidden'>
2983<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to other apps'>
2984<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
2985<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
2986</svg>
2987<span class='platform-sharing-text'>Other Apps</span>
2988</span>
2989</li>
2990</ul>
2991</div>
2992</div>
2993</div>
2994</div>
2995<div class='post-header'>
2996<div class='post-header-line-1'>
2997<span class='byline post-timestamp'>
2998-
2999<meta content='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'/>
3000<a class='timestamp-link' href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' rel='bookmark' title='permanent link'>
3001<time class='published' datetime='2026-07-05T23:29:00+05:30' title='2026-07-05T23:29:00+05:30'>
3002July 05, 2026
3003</time>
3004</a>
3005</span>
3006</div>
3007</div>
3008<div class='container post-body entry-content' id='post-snippet-6065616582831346989'>
3009<div class='post-snippet snippet-container r-snippet-container'>
3010<div class='snippet-item r-snippetized'>
3011          DHARA    SHARE FILES &#183; NO CLOUD &#183; NO ACCOUNTS &#183; NO INTERNET    A cross-platform file-share app that runs a tiny HTTP server on your device. Anyone on the same Wi-Fi (or your phone&#39;s hotspot) can pull the files straight from you &#8212; from any browser, no app required.      TL;DR &#8212;  Dhara turns your phone or Mac into a temporary file server. You pick a folder or files, Dhara spins up a local HTTP server, and any device on the same network opens the URL and grabs what it needs. No signup, no upload to a third party, no data leaving the local network. Just launched on the iOS App Store; macOS in review; Android and Windows on the runway.    Why I built Dhara   Every &quot;share this file to my other device&quot; workflow in 2026 involves at least one of the following annoyances:      Upload to a cloud  you don&#39;t own so it can come back down two feet away.    Create an account  on some third-party service that now has your file in its logs.    Pair devices , install the same ...
3012</div>
3013<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'></a>
3014</div>
3015</div>
3016<div class='post-bottom'>
3017<div class='post-footer float-container'>
3018<div class='post-footer-line post-footer-line-1'>
3019<span class='byline post-comment-link container'>
3020<a class='comment-link' href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html#comments' onclick=''>
3021<svg class='svg-icon-24 touch-icon'>
3022<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3023</svg>
3024<span class='num_comments'>
30252 comments
3026</span>
3027</a>
3028</span>
3029</div>
3030<div class='post-footer-line post-footer-line-2'>
3031</div>
3032<div class='post-footer-line post-footer-line-3'>
3033</div>
3034</div>
3035<div class='jump-link flat-button ripple'>
3036<a href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' title='Meet Dhara — send files without the cloud, without accounts, without internet'>
3037Read more
3038</a>
3039</div>
3040</div>
3041</div>
3042</div>
3043</article>
3044<article class='post-outer-container'>
3045<div class='post-outer'>
3046<div class='post'>
3047<script type='application/ld+json'>{
3048  "@context": "http://schema.org",
3049  "@type": "BlogPosting",
3050  "mainEntityOfPage": {
3051    "@type": "WebPage",
3052    "@id": "https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html"
3053  },
3054  "headline": "Cloning a CAME parking-gate remote with a Flipper Zero &#8212; why static Princeton codes are a security own-goal","description": "Cloning a CAME parking-gate remote with a Flipper Zero &#8212; why static Princeton codes are a security own-goal   A surprising number of buildin...","datePublished": "2026-06-29T11:05:00+05:30",
3055  "dateModified": "2026-06-29T11:05:12+05:30","image": {
3056    "@type": "ImageObject","url": "https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w1200-h630-n-k-no-nu",
3057    "height": 630,
3058    "width": 1200},"publisher": {
3059    "@type": "Organization",
3060    "name": "Blogger",
3061    "logo": {
3062      "@type": "ImageObject",
3063      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
3064      "width": 206,
3065      "height": 60
3066    }
3067  },"author": {
3068    "@type": "Person",
3069    "name": "Observer"
3070  }
3071}</script>
3071
3072<a name='6051265452619665271'></a>
3073<h3 class='post-title entry-title'>
3074<a href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'>Cloning a CAME parking-gate remote with a Flipper Zero &#8212; why static Princeton codes are a security own-goal</a>
3075</h3>
3076<div class='post-share-buttons post-share-buttons-top'>
3077<div class='byline post-share-buttons goog-inline-block'>
3078<div aria-owns='sharing-popup-Blog1-byline-6051265452619665271' class='sharing' data-title='Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal'>
3079<button aria-controls='sharing-popup-Blog1-byline-6051265452619665271' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-6051265452619665271' role='button'>
3080<div class='flat-icon-button ripple'>
3081<svg class='svg-icon-24'>
3082<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3083</svg>
3084</div>
3085</button>
3086<div class='share-buttons-container'>
3087<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-6051265452619665271' role='menu'>
3088<li>
3089<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Get link'>
3090<svg class='svg-icon-24 touch-icon sharing-link'>
3091<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3092</svg>
3093<span class='platform-sharing-text'>Get link</span>
3094</span>
3095</li>
3096<li>
3097<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=facebook' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
3098<svg class='svg-icon-24 touch-icon sharing-facebook'>
3099<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3100</svg>
3101<span class='platform-sharing-text'>Facebook</span>
3102</span>
3103</li>
3104<li>
3105<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=twitter' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to X'>
3106<svg class='svg-icon-24 touch-icon sharing-twitter'>
3107<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3108</svg>
3109<span class='platform-sharing-text'>X</span>
3110</span>
3111</li>
3112<li>
3113<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=pinterest' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
3114<svg class='svg-icon-24 touch-icon sharing-pinterest'>
3115<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3116</svg>
3117<span class='platform-sharing-text'>Pinterest</span>
3118</span>
3119</li>
3120<li>
3121<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=email' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Email'>
3122<svg class='svg-icon-24 touch-icon sharing-email'>
3123<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3124</svg>
3125<span class='platform-sharing-text'>Email</span>
3126</span>
3127</li>
3128<li aria-hidden='true' class='hidden'>
3129<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to other apps'>
3130<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
3131<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3132</svg>
3133<span class='platform-sharing-text'>Other Apps</span>
3134</span>
3135</li>
3136</ul>
3137</div>
3138</div>
3139</div>
3140</div>
3141<div class='post-header'>
3142<div class='post-header-line-1'>
3143<span class='byline post-timestamp'>
3144-
3145<meta content='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'/>
3146<a class='timestamp-link' href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' rel='bookmark' title='permanent link'>
3147<time class='published' datetime='2026-06-29T11:05:00+05:30' title='2026-06-29T11:05:00+05:30'>
3148June 29, 2026
3149</time>
3150</a>
3151</span>
3152</div>
3153</div>
3154<div class='container post-body entry-content' id='post-snippet-6051265452619665271'>
3155<div class='snippet-thumbnail'>
3156<img alt='Image' sizes='(max-width: 800px) 20vw, 128px' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w32-h32-n-k-no-nu 32w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w64-h64-n-k-no-nu 64w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w128-h128-n-k-no-nu 128w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w256-h256-n-k-no-nu 256w'/>
3157</div>
3158<div class='post-snippet snippet-container r-snippet-container'>
3159<div class='snippet-item r-snippetized'>
3160Cloning a CAME parking-gate remote with a Flipper Zero &#8212; why static Princeton codes are a security own-goal   A surprising number of buildings hand each tenant a little plastic fob to open the parking barr
3160ier &#8212; and a surprising number of those fobs are not  what you&#39;d call secure. If the building installer cheaped out (or just picked the default jumper settings), the remote sends a fixed sub-GHz signal every single time. No rolling code, no challenge, no cryptography. Just the same packet, on the same frequency, every press.   Which means anyone with a Flipper Zero and a few minutes can clone it.   Here&#39;s a 90-second demo of doing exactly that on a CAME  barrier &#8212; and the technical context for why it works.         The setup   The gate is a CAME -branded barrier, the kind you see at almost every apartment compound parking entrance. Every tenant is given a static remote &#8212; not rolling code. Why?      Cheaper.  Static encoders like Princeton&#39;s PT2262 (and the dozens of clones ...
3161</div>
3162<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'></a>
3163</div>
3164</div>
3165<div class='post-bottom'>
3166<div class='post-footer float-container'>
3167<div class='post-footer-line post-footer-line-1'>
3168<span class='byline post-comment-link container'>
3169<a class='comment-link' href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html#comments' onclick=''>
3170<svg class='svg-icon-24 touch-icon'>
3171<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3172</svg>
3173<span class='num_comments'>
31741 comment
3175</span>
3176</a>
3177</span>
3178</div>
3179<div class='post-footer-line post-footer-line-2'>
3180</div>
3181<div class='post-footer-line post-footer-line-3'>
3182</div>
3183</div>
3184<div class='jump-link flat-button ripple'>
3185<a href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' title='Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal'>
3186Read more
3187</a>
3188</div>
3189</div>
3190</div>
3191</div>
3192</article>
3193<article class='post-outer-container'>
3194<div class='post-outer'>
3195<div class='post'>
3196<script type='application/ld+json'>{
3197  "@context": "http://schema.org",
3198  "@type": "BlogPosting",
3199  "mainEntityOfPage": {
3200    "@type": "WebPage",
3201    "@id": "https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html"
3202  },
3203  "headline": "From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor","description": "From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor   A parcel landed at my door from Nextion Systems : the new Open Ne...","datePublished": "2026-06-27T19:46:00+05:30",
3204  "dateModified": "2026-06-27T19:46:50+05:30","image": {
3205    "@type": "ImageObject","url": "https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w1200-h630-n-k-no-nu",
3206    "height": 630,
3207    "width": 1200},"publisher": {
3208    "@type": "Organization",
3209    "name": "Blogger",
3210    "logo": {
3211      "@type": "ImageObject",
3212      "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/",
3213      "width": 206,
3214      "height": 60
3215    }
3216  },"author": {
3217    "@type": "Person",
3218    "name": "Observer"
3219  }
3220}</script>
3220
3221<a name='8357775696645137267'></a>
3222<h3 class='post-title entry-title'>
3223<a href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'>From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor</a>
3224</h3>
3225<div class='post-share-buttons post-share-buttons-top'>
3226<div class='byline post-share-buttons goog-inline-block'>
3227<div aria-owns='sharing-popup-Blog1-byline-8357775696645137267' class='sharing' data-title='From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor'>
3228<button aria-controls='sharing-popup-Blog1-byline-8357775696645137267' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-8357775696645137267' role='button'>
3229<div class='flat-icon-button ripple'>
3230<svg class='svg-icon-24'>
3231<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3232</svg>
3233</div>
3234</button>
3235<div class='share-buttons-container'>
3236<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-8357775696645137267' role='menu'>
3237<li>
3238<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Get link'>
3239<svg class='svg-icon-24 touch-icon sharing-link'>
3240<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3241</svg>
3242<span class='platform-sharing-text'>Get link</span>
3243</span>
3244</li>
3245<li>
3246<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=facebook' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
3247<svg class='svg-icon-24 touch-icon sharing-facebook'>
3248<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3249</svg>
3250<span class='platform-sharing-text'>Facebook</span>
3251</span>
3252</li>
3253<li>
3254<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=twitter' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to X'>
3255<svg class='svg-icon-24 touch-icon sharing-twitter'>
3256<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3257</svg>
3258<span class='platform-sharing-text'>X</span>
3259</span>
3260</li>
3261<li>
3262<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=pinterest' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
3263<svg class='svg-icon-24 touch-icon sharing-pinterest'>
3264<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3265</svg>
3266<span class='platform-sharing-text'>Pinterest</span>
3267</span>
3268</li>
3269<li>
3270<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=email' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Email'>
3271<svg class='svg-icon-24 touch-icon sharing-email'>
3272<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3273</svg>
3274<span class='platform-sharing-text'>Email</span>
3275</span>
3276</li>
3277<li aria-hidden='true' class='hidden'>
3278<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to other apps'>
3279<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
3280<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3281</svg>
3282<span class='platform-sharing-text'>Other Apps</span>
3283</span>
3284</li>
3285</ul>
3286</div>
3287</div>
3288</div>
3289</div>
3290<div class='post-header'>
3291<div class='post-header-line-1'>
3292<span class='byline post-timestamp'>
3293-
3294<meta content='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'/>
3295<a class='timestamp-link' href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' rel='bookmark' title='permanent link'>
3296<time class='published' datetime='2026-06-27T19:46:00+05:30' title='2026-06-27T19:46:00+05:30'>
3297June 27, 2026
3298</time>
3299</a>
3300</span>
3301</div>
3302</div>
3303<div class='container post-body entry-content' id='post-snippet-835
33037775696645137267'>
3304<div class='snippet-thumbnail'>
3305<img alt='Image' sizes='(max-width: 800px) 20vw, 128px' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w32-h32-n-k-no-nu 32w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w64-h64-n-k-no-nu 64w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w128-h128-n-k-no-nu 128w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w256-h256-n-k-no-nu 256w'/>
3306</div>
3307<div class='post-snippet snippet-container r-snippet-container'>
3308<div class='snippet-item r-snippetized'>
3309From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor   A parcel landed at my door from Nextion Systems : the new Open Nextion  &#8212; an ESP32-based board with a built-in capacitive touch display. Came in two flavors (3.5&quot; and 2.8&quot;), plus a speaker, a dual-microphone board, and an IO adapter. The kind of package that&#39;s begging  to be turned into something it was never meant to do.   So, naturally, I did exactly that.         What&#39;s actually in the box   Before any of the fun started, here&#39;s what the Open Nextion package shipped with:      Two Open Nextion boards  &#8212; 3.5&quot; and 2.8&quot; variants    Onboard speaker    Dual-microphone board  (for stereo capture / wake-word work)    IO adapter  for breaking out the rest of the GPIO    The board itself is generous on connectivity: USB-C , a battery connector with a real RTC , I2C, UART , a camera  interface, SD card , plus mic and speaker pins. It&#39;s basically a tiny computer with a touchscreen bol...
3310</div>
3311<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'></a>
3312</div>
3313</div>
3314<div class='post-bottom'>
3315<div class='post-footer float-container'>
3316<div class='post-footer-line post-footer-line-1'>
3317<span class='byline post-comment-link container'>
3318<a class='comment-link' href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html#comments' onclick=''>
3319<svg class='svg-icon-24 touch-icon'>
3320<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3321</svg>
3322<span class='num_comments'>
33231 comment
3324</span>
3325</a>
3326</span>
3327</div>
3328<div class='post-footer-line post-footer-line-2'>
3329</div>
3330<div class='post-footer-line post-footer-line-3'>
3331</div>
3332</div>
3333<div class='jump-link flat-button ripple'>
3334<a href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' title='From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor'>
3335Read more
3336</a>
3337</div>
3338</div>
3339</div>
3340</div>
3341</article>
3342<div class='mobile-ad'>
3343<div class='inline-ad'>
3344<ins class='adsbygoogle' data-ad-client='ca-pub-7526045351349686' data-ad-format='auto' data-ad-host='ca-h
3344ost-pub-1556223355139109' data-analytics-uacct='UA-39676116-1' style='/* Done in css. */'>
3345</ins>
3346<script>
3347   (adsbygoogle = window.adsbygoogle || []).push({});
3348  </script>
3348
3349</div>
3350</div>
3351</div>
3352<div class='blog-pager container' id='blog-pager'>
3353<a class='blog-pager-older-link flat-button ripple' href='https://www.h4hacks.com/search?updated-max=2026-06-27T19:46:00%2B05:30&max-results=7' title='More posts'>
3354More posts
3355</a>
3356</div>
3357<style>
3358    .post-body a.b-tooltip-container {
3359      position: relative;
3360      display: inline-block;
3361    }
3362
3363    .post-body a.b-tooltip-container .b-tooltip {
3364      display: block !important;
3365      position: absolute;
3366      top: 100%;
3367      left: 50%;
3368      transform: translate(-20%, 1px);
3369      visibility: hidden;
3370      opacity: 0;
3371      z-index: 1;
3372      transition: opacity 0.2s ease-in-out;
3373    }
3374
3375    .post-body a.b-tooltip-container .b-tooltip iframe {
3376      width: 200px;
3377      height: 198px;
3378      max-width: none;
3379      border: none;
3380      border-radius: 20px;
3381      box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
3382    }
3383
3384    @media (hover: hover) {
3385      .post-body a.b-tooltip-container:hover .b-tooltip {
3386        visibility: visible;
3387        opacity: 1;
3388      }
3389    }
3390  </style>
3391</div>
3392</div>
3393</main>
3394</div>
3395<footer class='footer section' id='footer' name='Footer'><div class='widget Attribution' data-version='2' id='Attribution1'>
3396<div class='widget-content'>
3397<div class='blogger'>
3398<a href='https://www.blogger.com' rel='nofollow'>
3399<svg class='svg-icon-24'>
3400<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_post_blogger_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3401</svg>
3402Powered by Blogger
3403</a>
3404</div>
3405<div class='image-attribution'>
3406Theme images by <a href="http://www.offset.com/photos/225860">Radius Images</a>
3407</div>
3408</div>
3409</div></footer>
3410</div>
3411</div>
3412</div>
3413<aside class='sidebar-container container sidebar-invisible' role='complementary'>
3414<div class='navigation'>
3415<button class='svg-icon-24-button flat-icon-button ripple sidebar-back'>
3416<svg class='svg-icon-24'>
3417<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_arrow_back_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3418</svg>
3419</button>
3420</div>
3421<div class='sidebar_top_wrapper'>
3422<div class='sidebar_top section' id='sidebar_top' name='Sidebar (Top)'><div class='widget Profile' data-version='2' id='Profile1'>
3423<div class='wrapper solo'>
3424<div class='widget-content individual'>
3425<a href='https://www.blogger.com/profile/12902040797859045174' rel='nofollow'>
3426<img alt='My photo' class='profile-img' height='120' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQGEzXGAAavcVK6bnAiuZyvDrOIE1XMIPkXapluHktd7axLNeMdIFd4McjUYPvTcDnxjdxNr7jjPHBLPoo4WHRlUCIUS7BiOV13PrvabWlbuuL5oThGMwFmBSBwyUC5g/s220/IMG_20201231_200026.jpg' width='120'/>
3427</a>
3428<div class='profile-info'>
3429<dl class='profile-datablock'>
3430<dt class='profile-data'>
3431<a class='profile-link g-profile' href='https://www.blogger.com/profile/12902040797859045174' rel='author nofollow'>
3432Observer
3433</a>
3434</dt>
3435</dl>
3436<a class='profile-link visit-profile pill-button' href='https://www.blogger.com/profile/12902040797859045174' rel='author'>
3437Visit profile
3438</a>
3439</div>
3440</div>
3441</div>
3442</div></div>
3443</div>
3444<div class='sidebar_bottom section' id='sidebar_bottom' name='Sidebar (Bottom)'><div class='widget BlogArchive' data-version='2' id='BlogArchive1'>
3445<details class='collapsible extendable' open='open'>
3446<summary>
3447<div class='collapsible-title'>
3448<h3 class='title'>
3449Older posts
3450</h3>
3451<svg class='svg-icon-24 chevron-down'>
3452<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3453</svg>
3454<svg class='svg-icon-24 chevron-up'>
3455<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3456</svg>
3457</div>
3458</summary>
3459<div class='widget-content'>
3460<div id='ArchiveList'>
3461<div id='BlogArchive1_ArchiveList'>
3462<div class='first-items'>
3463<ul class='hierarchy'>
3464<li class='archivedate'>
3465<div class='hierarchy-title'>
3466<a class='post-count-link' href='https://www.h4hacks.com/2026/'>
34672026
3468<span class='post-count'>4</span>
3469</a>
3470</div>
3471<div class='hierarchy-content'>
3472<ul class='hierarchy'>
3473<li class='archivedate'>
3474<div class='hierarchy-title'>
3475<a class='post-count-link' href='https://www.h4hacks.com/2026/07/'>
3476Jul
3477<span class='post-count'>2</span>
3478</a>
3479</div>
3480<div class='hierarchy-content'>
3481<ul class='posts hierarchy'>
3482<li>
3483<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'>Running four AI models fully offline on a Nextion ...</a>
3484</li>
3485<li>
3486<a href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'>Meet Dhara &#8212; send files without the cloud, without...</a>
3487</li>
3488</ul>
3489</div>
3490</li>
3491<li class='archivedate'>
3492<div class='hierarchy-title'>
3493<a class='post-count-link' href='https://www.h4hacks.com/2026/06/'>
3494Jun
3495<span class='post-count'>2</span>
3496</a>
3497</div>
3498<div class='hierarchy-content'>
3499<ul class='posts hierarchy'>
3500<li>
3501<a href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'>Cloning a CAME parking-gate remote with a Flipper ...</a>
3502</li>
3503<li>
3504<a href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'>From unboxing a touchscreen dev board to vibe-codi...</a>
3505</li>
3506</ul>
3507</div>
3508</li>
3509</ul>
3510</div>
3511</li>
3512</ul>
3513</div>
3514<div class='remaining-items'>
3515<ul class='hierarchy'>
3516<li class='archivedate'>
3517<div class='hierarchy-title'>
3518<a class='post-count-link' href='https://www.h4hacks.com/2023/'>
35192023
3520<span class='post-count'>1</span>
3521</a>
3522</div>
3523<div class='hierarchy-content'>
3524<ul class='hierarchy'>
3525<li class='archivedate'>
3526<div class='hierarchy-title'>
3527<a class='post-count-link' href='https://www.h4hacks.com/2023/06/'>
3528Jun
3529<span class='post-count'>1</span>
3530</a>
3531</div>
3532<div class='hierarchy-content'>
3533</div>
3534</li>
3535</ul>
3536</div>
3537</li>
3538<li class='archivedate'>
3539<div class='hierarchy-title'>
3540<a class='post-count-link' href='https://www.h4hacks.com/2022/'>
35412022
3542<span class='post-count'>2</span>
3543</a>
3544</div>
3545<div class='hierarchy-content'>
3546<ul class='hierarchy'>
3547<li class='archivedate'>
3548<div class='hierarchy-title'>
3549<a class='post-count-link' href='https://www.h4hacks.com/2022/03/'>
3550Mar
3551<span class='post-count'>1</span>
3552</a>
3553</div>
3554<div class='hierarchy-content'>
3555</div>
3556</li>
3557<li class='archivedate'>
3558<div class='hierarchy-title'>
3559<a class='post-count-link' href='https://www.h4hacks.com/2022/01/'>
3560Jan
3561<span class='post-count'>1</span>
3562</a>
3563</div>
3564<div class='hierarchy-content'>
3565</div>
3566</li>
3567</ul>
3568</div>
3569</li>
3570<li class='archivedate'>
3571<div class='hierarchy-title'>
3572<a class='post-count-link' href='https://www.h4hacks.com/2017/'>
35732017
3574<span class='post-count'>1</span>
3575</a>
3576</div>
3577<div class='hierarchy-content'>
3578<ul class='hierarchy'>
3579<li class='archivedate'>
3580<div class='hierarchy-title'>
3581<a class='post-count-link' href='https://www.h4hacks.com/2017/03/'>
3582Mar
3583<span class='post-count'>1</span>
3584</a>
3585</div>
3586<div class='hierarchy-content'>
3587</div>
3588</li>
3589</ul>
3590</div>
3591</li>
3592<li class='archivedate'>
3593<div class='hierarchy-title'>
3594<a class='post-count-link' href='https://www.h4hacks.com/2016/'>
35952016
3596<span class='post-count'>1</span>
3597</a>
3598</div>
3599<div class='hierarchy-content'>
3600<ul class='hierarchy'>
3601<li class='archivedate'>
3602<div class='hierarchy-title'>
3603<a class='post-count-link' href='https://www.h4hacks.com/2016/05/'>
3604May
3605<span class='post-count'>1</span>
3606</a>
3607</div>
3608<div class='hierarchy-content'>
3609</div>
3610</li>
3611</ul>
3612</div>
3613</li>
3614<li class='archivedate'>
3615<div class='hierarchy-title'>
3616<a class='post-count-link' href='https://www.h4hacks.com/2015/'>
36172015
3618<span class='post-count'>7</span>
3619</a>
3620</div>
3621<div class='hierarchy-content'>
3622<ul class='hierarchy'>
3623<li class='archivedate'>
3624<div class='hierarchy-title'>
3625<a class='post-count-link' href='https://www.h4hacks.com/2015/10/'>
3626Oct
3627<span class='post-count'>1</span>
3628</a>
3629</div>
3630<div class='hierarchy-content'>
3631</div>
3632</li>
3633<li class='archivedate'>
3634<div class='hierarchy-title'>
3635<a class='post-count-link' href='https://www.h4hacks.com/2015/08/'>
3636Aug
3637<span class='post-count'>1</span>
3638</a>
3639</div>
3640<div class='hierarchy-content'>
3641</div>
3642</li>
3643<li class='archivedate'>
3644<div class='hierarchy-title'>
3645<a class='post-count-link' href='https://www.h4hacks.com/2015/07/'>
3646Jul
3647<span class='post-count'>2</span>
3648</a>
3649</div>
3650<div class='hierarchy-content'>
3651</div>
3652</li>
3653<li class='archivedate'>
3654<div class='hierarchy-title'>
3655<a class='post-count-link' href='https://www.h4hacks.com/2015/06/'>
3656Jun
3657<span class='post-count'>3</span>
3658</a>
3659</div>
3660<div class='hierarchy-content'>
3661</div>
3662</li>
3663</ul>
3664</div>
3665</li>
3666<li class='archivedate'>
3667<div class='hierarchy-title'>
3668<a class='post-count-link' href='https://www.h4hacks.com/2014/'>
36692014
3670<span class='post-count'>3</span>
3671</a>
3672</div>
3673<div class='hierarchy-content'>
3674<ul class='hierarchy'>
3675<li class='archivedate'>
3676<div class='hierarchy-title'>
3677<a class='post-count-link' href='https://www.h4hacks.com/2014/11/'>
3678Nov
3679<span class='post-count'>1</span>
3680</a>
3681</div>
3682<div class='hierarchy-content'>
3683</div>
3684</li>
3685<li class='archivedate'>
3686<div class='hierarchy-title'>
3687<a class='post-count-link' href='https://www.h4hacks.com/2014/10/'>
3688Oct
3689<span class='post-count'>2</span>
3690</a>
3691</div>
3692<div class='hierarchy-content'>
3693</div>
3694</li>
3695</ul>
3696</div>
3697</li>
3698</ul>
3699</div>
3700<span class='show-more pill-button'>Show more</span>
3701<span class='show-less hidden pill-button'>Show less</span>
3702</div>
3703</div>
3704</div>
3705</details>
3706</div><div class='widget Label' data-version='2' id='Label1'>
3707<details class='collapsible extendable'>
3708<summary>
3709<div class='collapsible-title'>
3710<h3 class='title'>
3711Labels
3712</h3>
3713<svg class='svg-icon-24 chevron-down'>
3714<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3715</svg>
3716<svg class='svg-icon-24 chevron-up'>
3717<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
3718</svg>
3719</div>
3720</summary>
3721<div class='widget-content list-label-widget-content'>
3722<div class='first-items'>
3723<ul>
3724<li><a class='label-name' href='https://www.h4hacks.com/search/label/3d%20print'>3d print</a></li>
3725<li><a class='label-name' href='https://www.h4hacks.com/search/label/3d%20printing'>3d printing</a></li>
3726<li><a class='label-name' href='https://www.h4hacks.com/search/label/3d%20printing%20in%20india'>3d printing in india</a></li>
3727<li><a class='label-name' href='https://www.h4hacks.com/search/label/AI'>AI</a></li>
3728<li><a class='label-name' href='https://www.h4hacks.com/search/label/AirTag'>AirTag</a></li>
3729<li><a class='label-name' href='https://www.h4hacks.com/search/label/arduino'>arduino</a></li>
3730<li><a class='label-name' href='https://www.h4hacks.com/search/label/arnold'>arnold</a></li>
3731<li><a class='label-name' href='https://www.h4hacks.com/search/label/arnold%20schwarzenegger'>arnold schwarzenegger</a></li>
3732<li><a class='label-name' href='https://www.h4hacks.com/search/label/auto%20exposure'>auto exposure</a></li>
3733<li><a class='label-name' href='https://www.h4hacks.com/search/label/BLE'>BLE</a></li>
3734</ul>
3735</div>
3736<div class='remaining-items'>
3737<ul>
3738<li><a class='label-name' href='https://www.h4hacks.com/search/label/bug%20zapper'>bug zapper</a></li>
3739<li><a class='label-name' href='https://www.h4hacks.com/search/label/bypass%20otp'>bypass otp</a></li>
3740<li><a class='label-name' href='https://www.h4hacks.com/search/label/CAME'>CAME</a></li>
3741<li><a class='label-name' href='https://www.h4hacks.com/search/label/camera%20module'>camera module</a></li>
3742<li><a class='label-name' href='https://www.h4hacks.com/search/label/cheap%203d%20printer'>cheap 3d printer</a></li>
3743<li><a class='label-name' href='https://www.h4hacks.com/search/label/chromedriver'>chromedriver</a></li>
3744<li><a class='label-name' href='https://www.h4hacks.com/search/label/Claude%20AI'>Claude AI</a></li>
3745<li><a class='label-name' href='https://www.h4hacks.com/search/label/container'>container</a></li>
3746<li><a class='label-name' href='https://www.h4hacks.com/search/label/cool%20project'>cool project</a></li>
3747<li><a class='label-name' href='https://www.h4hacks.com/search/label/criticality'>criticality</a></li>
3748<li><a class='label-name' href='https://www.h4hacks.com/search/label/cvss'>cvss</a></li>
3749<li><a class='label-name' href='https://www.h4hacks.com/search/label/cvssv3'>cvssv3</a></li>
3750<li><a class='label-name' href='https://www.h4hacks.com/search/label/Cybersecurity'>Cybersecurity</a></li>
3751<li><a class='label-name' href='https://www.h4hacks.com/search/label/day%20night%20timelapse'>day night timelapse</a></li>
3752<li><a class='label-name' href='https://www.h4hacks.com/search/label/desktop%20toy'>desktop toy</a></li>
3753<li><a class='label-name' href='https://www.h4hacks.com/search/label/digilocker'>digilocker</a></li>
3754<li><a class='label-name' href='https://www.h4hacks.com/search/label/diy'>diy</a></li>
3755<li><a class='label-name' href='https://www.h4hacks.com/search/label/diy%20hacking'>diy hacking</a></li>
3756<li><a class='label-name' href='https://www.h4hacks.com/search/label/do%20it%20yourself'>do it yourself</a></li>
3757<li><a class='label-name' href='https://www.h4hacks.com/search/label/ESP-IDF'>ESP-IDF</a></li>
3758<li><a class='label-name' href='https://www.h4hacks.com/search/label/ESP32'>ESP32</a></li>
3759<li><a class='label-name' href='https://www.h4hacks.com/search/label/ESP32-S3'>ESP32-S3</a></li>
3760<li><a class='label-name' href='https://www.h4hacks.com/search/label/ethical%20hacking'>ethical hacking</a></li>
3761<li><a class='label-name' href='https://www.h4hacks.com/search/label/fix'>fix</a></li>
3762<li><a class='label-name' href='https://www.h4hacks.com/search/label/Flipper%20Zero'>Flipper Zero</a></li>
3763<li><a class='label-name' href='https://www.h4hacks.com/search/label/fun'>fun</a></li>
3764<li><a class='label-name' href='https://www.h4hacks.com/search/label/governance'>governance</a></li>
3765<li><a class='label-name' href='https://www.h4hacks.com/search/label/hacking'>hacking</a></li>
3766<li><a class='label-name' href='https://www.h4hacks.com/search/label/hacks'>hacks</a></li>
3767<li><a class='label-name' href='https://www.h4hacks.com/search/label/Hardware%20Hacking'>Hardware Hacking</a></li>
3768<li><a class='label-name' href='https://www.h4hacks.com/search/label/hologram'>hologram</a></li>
3769<li><a class='label-name' href='https://www.h4hacks.com/search/label/how%20to%20make%203d%20printer'>how to make 3d printer</a></li>
3770<li><a class='label-name' href='https://www.h4hacks.com/search/label/i2c'>i2c</a></li>
3771<li><a class='label-name' href='https://www.h4hacks.com/search/label/india'>india</a></li>
3772<li><a class='label-name' href='https://www.h4hacks.com/search/label/india%203d%20printer'>india 3d printer</a></li>
3773<li><a class='label-name' href='https://www.h4hacks.com/search/label/ipa
3773d'>ipad</a></li>
3774<li><a class='label-name' href='https://www.h4hacks.com/search/label/kali%20linux'>kali linux</a></li>
3775<li><a class='label-name' href='https://www.h4hacks.com/search/label/kickstarter'>kickstarter</a></li>
3776<li><a class='label-name' href='https://www.h4hacks.com/search/label/kids'>kids</a></li>
3777<li><a class='label-name' href='https://www.h4hacks.com/search/label/LLM'>LLM</a></li>
3778<li><a class='label-name' href='https://www.h4hacks.com/search/label/Machine%20Learning'>Machine Learning</a></li>
3779<li><a class='label-name' href='https://www.h4hacks.com/search/label/Malayalam'>Malayalam</a></li>
3780<li><a class='label-name' href='https://www.h4hacks.com/search/label/mk808'>mk808</a></li>
3781<li><a class='label-name' href='https://www.h4hacks.com/search/label/mobile%20hacking'>mobile hacking</a></li>
3782<li><a class='label-name' href='https://www.h4hacks.com/search/label/mobile%20security'>mobile security</a></li>
3783<li><a class='label-name' href='https://www.h4hacks.com/search/label/moorebot'>moorebot</a></li>
3784<li><a class='label-name' href='https://www.h4hacks.com/search/label/moorebot%20scout'>moorebot scout</a></li>
3785<li><a class='label-name' href='https://www.h4hacks.com/search/label/motion%20detection'>motion detection</a></li>
3786<li><a class='label-name' href='https://www.h4hacks.com/search/label/multithreaded'>multithreaded</a></li>
3787<li><a class='label-name' href='https://www.h4hacks.com/search/label/Nextion'>Nextion</a></li>
3788<li><a class='label-name' href='https://www.h4hacks.com/search/label/old%20post'>old post</a></li>
3789<li><a class='label-name' href='https://www.h4hacks.com/search/label/OLED'>OLED</a></li>
3790<li><a class='label-name' href='https://www.h4hacks.com/search/label/password%20audit'>password audit</a></li>
3791<li><a class='label-name' href='https://www.h4hacks.com/search/label/password%20spray'>password spray</a></li>
3792<li><a class='label-name' href='https://www.h4hacks.com/search/label/pen-test%20platform'>pen-test platform</a></li>
3793<li><a class='label-name' href='https://www.h4hacks.com/search/label/penetration%20testing'>penetration testing</a></li>
3794<li><a class='label-name' href='https://www.h4hacks.com/search/label/Pentesting'>Pentesting</a></li>
3795<li><a class='label-name' href='https://www.h4hacks.com/search/label/picamera'>picamera</a></li>
3796<li><a class='label-name' href='https://www.h4hacks.com/search/label/Princeton'>Princeton</a></li>
3797<li><a class='label-name' href='https://www.h4hacks.com/search/label/prusa%20i3'>prusa i3</a></li>
3798<li><a class='label-name' href='https://www.h4hacks.com/search/label/PT2262'>PT2262</a></li>
3799<li><a class='label-name' href='https://www.h4hacks.com/search/label/python'>python</a></li>
3800<li><a class='label-name' href='https://www.h4hacks.com/search/label/qualys%20api'>qualys api</a></li>
3801<li><a class='label-name' href='https://www.h4hacks.com/search/label/qualys%20ssllabs'>qualys ssllabs</a></li>
3802<li><a class='label-name' href='https://www.h4hacks.com/search/label/qualys%20ssllabs%20api'>qualys ssllabs api</a></li>
3803<li><a class='label-name' href='https://www.h4hacks.com/search/label/raspberry%20pi'>raspberry pi</a></li>
3804<li><a class='label-name' href='https://www.h4hacks.com/search/label/rating'>rating</a></li>
3805<li><a class='label-name' href='https://www.h4hacks.com/search/label/Re%20purpose'>Re purpose</a></li>
3806<li><a class='label-name' href='https://www.h4hacks.com/search/label/Replay%20Attack'>Replay Attack</a></li>
3807<li><a class='label-name' href='https://www.h4hacks.com/search/label/robot'>robot</a></li>
3808<li><a class='label-name' href='https://www.h4hacks.com/search/label/Rolling%20Code'>Rolling Code</a></li>
3809<li><a class='label-name' href='https://www.h4hacks.com/search/label/SANS'>SANS</a></li>
3810<li><a class='label-name' href='https://www.h4hacks.com/search/label/scout'>scout</a></li>
3811<li><a class='label-name' href='https://www.h4hacks.com/search/label/SEC575'>SEC575</a></li>
3812<li><a class='label-name' href='https://www.h4hacks.com/search/label/security'>security</a></li>
3813<li><a class='label-name' href='https://www.h4hacks.com/search/label/selenium'>selenium</a></li>
3814<li><a class='label-name' href='https://www.h4hacks.com/search/label/smartphone'>smartphone</a></li>
3815<li><a class='label-name' href='https://www.h4hacks.com/search/label/SSD1306'>SSD1306</a></li>
3816<li><a class='label-name' href='https://www.h4hacks.com/search/label/ssl%20labs'>ssl labs</a></li>
3817<li><a class='label-name' href='https://www.h4hacks.com/search/label/Sub-GHz'>Sub-GHz</a></li>
3818<li><a class='label-name' href='https://www.h4hacks.com/search/label/Sub-GHz%20Radio'>Sub-GHz Radio</a></li>
3819<li><a class='label-name' href='https://www.h4hacks.com/search/label/t800'>t800</a></li>
3820<li><a class='label-name' href='https://www.h4hacks.com/search/label/tablet'>tablet</a></li>
3821<li><a class='label-name' href='https://www.h4hacks.com/search/label/terminator'>terminator</a></li>
3822<li><a class='label-name' href='https://www.h4hacks.com/search/label/terminator%20genisys'>terminator genisys</a></li>
3823<li><a class='label-name' href='https://www.h4hacks.com/search/label/timelapse'>timelapse</a></li>
3824<li><a class='label-name' href='https://www.h4hacks.com/search/label/TinyML'>TinyML</a></li>
3825<li><a class='label-name' href='https://www.h4hacks.com/search/label/usb%20toy'>usb toy</a></li>
3826<li><a class='label-name' href='https://www.h4hacks.com/search/label/Vibe%20Coding'>Vibe Coding</a></li>
3827<li><a class='label-name' href='https://www.h4hacks.com/search/label/vmware%20tools'>vmware tools</a></li>
3828<li><a class='label-name' href='https://www.h4hacks.com/search/label/WiFi%20Security'>WiFi Security</a></li>
3829</ul>
3830</div>
3831<span class='show-more pill-button'>Show more</span>
3832<span class='show-less hidden pill-button'>Show less</span>
3833</div>
3834</details>
3835</div><div class='widget ReportAbuse' data-version='2' id='ReportAbuse1'>
3836<h3 class='title'>
3837<a class='report_abuse' href='https://www.blogger.com/go/report-abuse' rel='noopener nofollow' target='_blank'>
3838Report Abuse
3839</a>
3840</h3>
3841</div><div class='widget Stats' data-version='2' id='Stats1'>
3842<h3 class='title'>
3843Stats
3844</h3>
3845<div class='widget-content'>
3846<div id='Stats1_content' style='display: none;'>
3847<script src='https://www.gstatic.com/charts/loader.js' type='text/javascript'></script>
3847
3848<span id='Stats1_sparklinespan' style='display:inline-block; width:75px; height:30px'></span>
3849<span class='counter-wrapper text-counter-wrapper' id='Stats1_totalCount'>
3850</span>
3851</div>
3852</div>
3853</div><div class='widget HTML' data-version='2' id='HTML1'>
3854<h3 class='title'>
3855Please subscibe
3856</h3>
3857<div class='widget-content'>
3858<script src="https://apis.google.com/js/platform.js"></script>
3858
3859<br />
3860<div class="g-ytsubscribe" data-channelid="UCsNXd6AQGDWVzyo7aX5MWWw" data-layout="full" data-theme="dark" data-count="default"></div>
3861</div>
3862</div><div class='widget HTML' data-version='2' id='HTML2'>
3863<h3 class='title'>
3864Follow my facebook page
3865</h3>
3866<div class='widget-content'>
3867<div id="fb-root"></div>
3868<script async="async" defer="defer" crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v13.0&amp;appId=367647723348582&amp;autoLogAppEvents=1" nonce="GRsbqH5h"></script>
3868
3869<br />
3870
3871<div class="fb-page" data-href="https://www.facebook.com/h4hacks/" data-tabs="timeline" data-width="" data-height="" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"><blockquote cite="https://www.facebook.com/h4hacks/" class="fb-xfbml-parse-ignore"><a href="https://www.facebook.com/h4hacks/">H4hacks</a></blockquote></div>
3872</div>
3873</div><div class='widget HTML' data-version='2' id='HTML3'>
3874<h3 class='title'>
3875Join us on telegram
3876</h3>
3877<div class='widget-content'>
3878<br />
3879<script async="async" src="https://telegram.org/js/telegram-widget.js?15" data-telegram-post="h4hack/36" data-width="10%" data-dark="1"></script>
3879
3880</div>
3881</div></div>
3882</aside>
3883<script type="text/javascript" src="https://resources.blogblog.com/blogblog/data/res/608349471-indie_compiled.js" async="true"></script>
3883
3884
3885<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/851759228-widgets.js"></script>
vendor: 1 bytes, line 3885
3885
3886<script type='text/javascript'>
3887window['__wavt'] = 'AAPvtVkaJej-exP32pQ-iIbP--Hj:1790259232200';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6383593460046105926','//www.h4hacks.com/2026/','6383593460046105926');
3888_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6383593460046105926', 'title': 'H4hacks', 'url': 'https://www.h4hacks.com/2026/', 'canonicalUrl': 'https://www.h4hacks.com/2026/', 'homepageUrl': 'https://www.h4hacks.com/', 'searchUrl': 'https://www.h4hacks.com/search', 'canonicalHomepageUrl': 'https://www.h4hacks.com/', 'blogspotFaviconUrl': 'https://www.h4hacks.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-39676116-1', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22H4hacks - Atom\x22 href\x3d\x22https://www.h4hacks.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22H4hacks - RSS\x22 href\x3d\x22https://www.h4hacks.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22H4hacks - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6383593460046105926/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseClientId': 'ca-pub-7526045351349686', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': true, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'isGoogleEverywhereLinkTooltipEnabled': true, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/7ce469edaf870342', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}
3888, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': '2026', 'pageTitle': 'H4hacks: 2026', 'metaDescription': 'Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': true, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'H4hacks', 'description': 'Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security', 'url': 'https://www.h4hacks.com/2026/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2026, 'rangeMessage': 'Showing posts from 2026'}}}, {'name': 'widgets', 'data': [{'title': 'Search This Blog', 'type': 'BlogSearch', 'sectionId': 'search_top', 'id': 'BlogSearch1'}, {'title': 'H4hacks (Header)', 'type': 'Header', 'sectionId': 'header', 'id': 'Header1'}, {'title': 'Pages', 'type': 'PageList', 'sectionId': 'page_list_top', 'id': 'PageList1'}, {'type': 'AdSense', 'sectionId': 'ads', 'id': 'AdSense1'}, {'type': 'AdSense', 'sectionId': 'ads', 'id': 'AdSense2'}, {'title': 'Featured Post', 'type': 'FeaturedPost', 'sectionId': 'page_body', 'id': 'FeaturedPost1', 'postId': '1489533363326807711'}, {'title': 'Blog Posts', 'type': 'Blog', 'sectionId': 'page_body', 'id': 'Blog1', 'posts': [{'id': '1489533363326807711', 'title': 'Running four AI models fully offline on a Nextion ONX3248G035', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ', 'showInlineAds': true}, {'id': '6065616582831346989', 'title': 'Meet Dhara \u2014 send files without the cloud, without accounts, without internet', 'showInlineAds': true}, {'id': '6051265452619665271', 'title': 'Cloning a CAME parking-gate remote with a Flipper Zero \u2014 why static Princeton codes are a security own-goal', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN', 'showInlineAds': true}, {'id': '8357775696645137267', 'title': 'From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g', 'showInlineAds': true}], 'headerByline': {'regionName': 'header1', 'items': [{'name': 'share', 'label': ''}, {'name': 'timestamp', 'label': '-'}]}, 'footerBylines': [{'regionName': 'footer1', 'items': [{'name': 'comments', 'label': 'comments'}]}, {'regionName': 'footer2', 'items': [{'name': 'labels', 'label': ''}]}, {'regionName': 'footer3', 'items': [{'name': 'location', 'label': 'Location:'}]}], 'allBylineItems': [{'name': 'share', 'label': ''}, {'name': 'timestamp', 'label': '-'}, {'name': 'comments', 'label': 'comments'}, {'name': 'labels', 'label': ''}, {'name': 'location', 'label': 'Location:'}]}, {'title': '', 'type': 'PopularPosts', 'sectionId': 'page_body', 'id': 'PopularPosts1', 'posts': [{'title': 'Qualys SSL labs API - A MultiThreaded python script to scan large number of servers and produce neat results', 'id': 4995393246652549565}, {'title': 'Re-Post : How I managed to gain access to The Indian Digital treasure \u2013 3 Billion documents on Digilocker', 'id': 7266409350508753041}, {'title': 'Fixing VMWARE tools on kali linux to enable copy paste properly - especially when you are doing OSCP', 'id': 7307300108556001075}]}, {'type': 'Attribution', 'sectionId': 'footer', 'id': 'Attribution1'}, {'title': 'About Me', 'type': 'Profile', 'sectionId': 'sidebar_top', 'id': 'Profile1'}, {'title': 'Older posts', 'type': 'BlogArchive', 'sectionId': 'sidebar_bottom', 'id': 'BlogArchive1'}, {'title': 'Labels', 'type': 'Label', 'sectionId': 'sidebar_bottom', 'id': 'Label1'}, {'title': '', 'type': 'ReportAbuse', 'sectionId': 'sidebar_bottom', 'id': 'ReportAbuse1'}, {'title': 'Stats', 'type': 'Stats', 'sectionId': 'sidebar_bottom', 'id': 'Stats1'}, {'title': 'Please subscibe', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML1'}, {'title': 'Follow my facebook page', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML2'}, {'title': 'Join us on telegram', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML3'}]}]);
3889_WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'search_top', document.getElementById('BlogSearch1'), {}, 'displayModeFull'));
3890_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
3891_WidgetManager._RegisterWidget('_PageListView', new _WidgetInfo('PageList1', 'page_list_top', document.getElementById('PageList1'), {'title': 'Pages', 'links': [{'isCurrentPage': false, 'href': 'http://www.h4hacks.com/', 'title': 'Home'}, {'isCurrentPage': false, 'href': 'https://www.h4hacks.com/p/my-3d-printing-saga.html', 'id': '4024638140521500763', 'title': 'My 3D Printing saga'}, {'isCurrentPage': false, 'href': 'https://www.h4hacks.com/p/hello-world-welcome-to-h4hacks-this-is.html', 'id': '3893750772079799418', 'title': 'About h4hacks'}], 'mobile': false, 'showPlaceholder': true, 'hasCurrentPage': false}, 'displayModeFull'));
3892_WidgetManager._RegisterWidget('_AdSenseView', new _WidgetInfo('AdSense1', 'ads', document.getElementById('AdSense1'), {}, 'displayModeFull'));
3893_WidgetManager._RegisterWidget('_AdSenseView', new _WidgetInfo('AdSense2', 'ads', document.getElementById('AdSense2'), {}, 'displayModeFull'));
3894_WidgetManager._RegisterWidget('_FeaturedPostView', new _WidgetInfo('FeaturedPost1', 'page_body', document.getElementById('FeaturedPost1'), {}, 'displayModeFull'));
3895_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'page_body', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/120969204-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull'));
3896_WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'page_body', document.getElementById('PopularPosts1'), {}, 'displayModeFull'));
3897_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer', document.getElementById('Attribution1'), {}, 'displayModeFull'));
3898_WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar_top', document.getElementById('Profile1'), {}, 'displayModeFull'));
3899_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar_bottom', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
3900_WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar_bottom', document.getElementById('Label1'), {}, 'displayModeFull'));
3901_WidgetManager._RegisterWidget('_ReportAbuseView', new _WidgetInfo('ReportAbuse1', 'sidebar_bottom', document.getElementById('ReportAbuse1'), {}, 'displayModeFull'));
3902_WidgetManager._RegisterWidget('_StatsView', new _WidgetInfo('Stats1', 'sidebar_bottom', document.getElementById('Stats1'), {'title': 'Stats', 'showGraphicalCounter': false, 'showAnimatedCounter': false, 'showSparkline': true, 'statsUrl': '//www.h4hacks.com/b/stats?style\x3dBLACK_TRANSPARENT\x26timeRange\x3dALL_TIME\x26token\x3dAEz_qU-mqTGfgKtiwHp3huKiT21x6rdNmIeDTrlgidAajDCOnLdmOn4vFKNoggSSg_66KlQt93u4UZaykHPoaQo'}, 'displayModeFull'));
3903_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar_bottom', document.getElementById('HTML1'), {}, 'displayModeFull'));
3904_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'sidebar_bottom', document.getElementById('HTML2'), {}, 'displayModeFull'));
3905_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML3', 'sidebar_bottom', document.getElementById('HTML3'), {}, 'displayModeFull'));
3906</script>
3906
3907</body>
3908</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.