Browse Source

Forgot to push for ages

master
Jonathan Hodgson 8 months ago
parent
commit
9d8c010bad
  1. 44
      assets/css/main.less
  2. 15
      assets/key/jonathan-hodgson-ecc.asc
  3. 56
      assets/key/jonathan-hodgson-rsa.asc
  4. 996
      assets/pappy/password-brute.cast
  5. BIN
      assets/pappy/password-brute.gif
  6. BIN
      assets/prompt/focus.png
  7. 97
      assets/rev-shell/reverse-shell.cast
  8. BIN
      assets/rev-shell/reverse-shell.gif
  9. BIN
      assets/word-complete/currentWordComplete.gif
  10. BIN
      assets/wordpress/login-username-enumeration.png
  11. 2
      build.sh
  12. 1
      content/blog/001-fuzzy-search-hashcat-modes.md
  13. 3
      content/blog/002-the-switch-to-zsh.md
  14. 8
      content/blog/003-exchange-mutt.md
  15. 6
      content/blog/004-tools-that-make-my-life-easier.md
  16. 2
      content/blog/005-keyboard-driven-firefox.md
  17. 4
      content/blog/007-mutt-setup.md
  18. 149
      content/blog/008-current-word-completion.md
  19. 230
      content/blog/009-upgrading-reverse-shells.md
  20. 207
      content/blog/010-wordpress-username-enumeration.md
  21. 140
      content/blog/011-my-setup-jan-2021.md
  22. 110
      content/blog/012-starting-out-with-homeassistant.md
  23. 11
      content/card.curl
  24. 4
      content/other-stuff-you-might-like.md
  25. 2
      templates/blog.html

44
assets/css/main.less

@ -79,6 +79,10 @@ body{
scrollbar-width: thin;
}
body .commento-root *{
color: @gb-dm-fg0;
}
.container{
display: flex;
flex-direction: row-reverse;
@ -150,6 +154,30 @@ img{
max-width: 100%;
}
blockquote{
border-left: 0.5em solid @gb-dm-fg3;
margin-left: 0;
padding-left: 1em;
}
table{
border-collapse: collapse;
}
tr:hover{
background-color: @gb-dm-bg2;
}
td,th{
padding: 0.5em;
border: 1px solid @gb-dm-fg3;
}
th{
background-color: @gb-lm-bg0-soft;
color: @gb-lm-fg0;
}
.blog-name{
font-size: 2rem;
font-weight: 400;
@ -181,8 +209,6 @@ ul.tags{
}
}
a, a:visited{
color: @gb-dm-light-aqua;
}
@ -212,7 +238,18 @@ p code, li code{
}
}
.tip{
background-color: @gb-lm-light-green;
border: 3px solid @gb-lm-dark-green;
padding: 1em;
&::before{
content: "Tip:";
text-transform: uppercase;
text-align: center;
font-weight: bold;
display: block;
}
}
//Pandoc styles
code{white-space: pre-wrap;}
@ -304,4 +341,3 @@ code span.st { color: @gb-dm-dark-yellow; } /* String */
code span.va { color: @gb-dm-dark-red; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */

15
assets/key/jonathan-hodgson-ecc.asc

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: OpenPGP.js v4.10.4
Comment: https://openpgpjs.org
xjMEXMLhpBYJKwYBBAHaRw8BAQdAdP4j18qDM+5einbcOoMmbygC7blelM2D
1WjQ/QK4CzXNNSJqb25hdGhhbkBqb25hdGhhbmguY28udWsiIDxqb25hdGhh
bkBqb25hdGhhbmguY28udWs+wncEEBYKAB8FAlzC4aQGCwkHCAMCBBUICgID
FgIBAhkBAhsDAh4BAAoJEESBz3saoNE4wecA/R94tVukEZISL8dPYN17+JLl
QYo5U9NpSlYM1bjbKdqPAQDophGzo6KaCwNkm3/05xJvf+ZnsOBTG4PkvPFJ
5XZZAM44BFzC4aQSCisGAQQBl1UBBQEBB0BgX9KpJi1EvI74EU5jb4PVjo+H
0DuuN58sodzsIpQQDgMBCAfCYQQYFggACQUCXMLhpAIbDAAKCRBEgc97GqDR
OGapAPwNdh8veidfCqZuXoyBfdRGPRv9zb7pA3JvP85hMsTxXgEAld6Rqey2
dw17AxOy5uHs/nj/3Zwl2SvGNR4htgPv1go=
=qcW+
-----END PGP PUBLIC KEY BLOCK-----

56
assets/key/jonathan-hodgson-rsa.asc

@ -0,0 +1,56 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: OpenPGP.js v4.10.4
Comment: https://openpgpjs.org
xsFNBFyP9g8BEADc2ljwXe+WWTGXr4m6A0MxRu0CDMO++HayoEt7OynSPyec
kHs6k7tPjwJ+OcxAGiQ/FD3yuJDR/5xxwL61bqiF8CTw62fA2vS8J8PNiQ+g
wDrM1Gl/iUrRuD3L68NTRk7Ru0l3QIUCRwf/fphSP2D0TFT8JP8cLkAcRhee
3oElE2Gi8/qowW+xzXRcYLQnxks22Nai2p1SCzwIUSxx06lvfapuf16FVpZO
0+U+E73r2XDgFVk+MhFugZ57xgnBwTKWCorzIgQXU+DLbeFZp1yMS6aMQENi
mTX6ATLgDxVk7JeNjk8scQ/pqPGkA5oC6agxBJJWrRn5/8W13//7EQlwyMqP
zWanioniavwvX1PkJgLUrAuCjderqTKrIk0cor3H4pAqQYKySFdOGTX2b28k
WO6M15yFoRYLzIl7kKzr7kg4fXF/0TptkrbLmQD0HG2iqOPcB8vp6B7qPe7T
lL3IXyv7C9kSL7xhReO6hg7pjdrWfp7n8ZOPXhj/jmmjkx3+8wsNLga80s1C
uplJveuGSO4OUyrekt9ZRtL6KcT/TFoB98x/I0JPr7lsF/U3ObzExFuBTwtl
pOvKmhbcg8vE8HzwROlAJdtukonCtlMNo2Gj9+QlujMUH5EOIMhc+uIh6v2m
SntJ3mIPMgA3yZ6XsYpK8Bwy4yjJc+XIvtoF0QARAQABzTUiam9uYXRoYW5A
am9uYXRoYW5oLmNvLnVrIiA8am9uYXRoYW5Aam9uYXRoYW5oLmNvLnVrPsLB
dQQQAQgAHwUCXI/2DwYLCQcIAwIEFQgKAgMWAgECGQECGwMCHgEACgkQ1slB
UCE4fEg2EhAAk9RDhBV4gaHlhNejUQhxwPrXJ2C/mHD2FafcpsNrWDykgfNg
9iqQ5gN57xuHNK2MWxK0qTEtKBlW4KpYxoyG6zvt2ebpE2FTx/tCKlJ5BPHn
Dx8g94MPWcK08eXQcS2BfM8PLFDmw2+B0m+aJ+O94SDgsbi1SDM6UuqyodG5
4E49Lqhk1Rl9gE43NYCi1QpRoHFkd9MQkslHEIuvAY544AQ8iO0jXowUSIym
OBC8bXqWdLaS9SY6tTDFtBB56ClyYidFK1buiJPV/k8LYmgZy2ep463CL4n+
1mjxH8LMW2Ywx80XQx0XXJxDgt5XjRfzX2btQtx8PdatXLUxp97kL4G64B2S
BJs/B7asjRtq3PkFl+LywrguyLyZ3xlcsJAeeQVDlw6lDWcdyK6mZY5LVNA2
wtom6Orn4ctx3YyaQEHSAevkO5YTk4FA/s5/ToLtV/lyHJ7oy8vmsbnri+i/
UHOeevkCgP1Y9Y6/FH4lCJ1Yqtqmq0rT4qJnr3S6vFkPL8lx+aeTcvPm/Aeb
Qul/CYlSxmUAum/pA1Fsq5heRD1mxro9kqq95cSpIsdFmgoVOkngMPf2NPVt
4Y/VLHBoevd327+uUmjl1VjpAaccT6BX4J57dCjINQcrgAppAvMvpN6eoebk
XYaycTnSZ+Sd2jIWEKxadAPBK4cv1fXtoiTOwU0EXI/2DwEQAK9VW2MPxr96
GddgjO7Z8XYUKtgMWIxGtD9/WYGTnYGkje10QIGQRlsDtiJAJUBcaSNDIxrr
cPE9n7SkaaLUx9IH7X9g6LmiSPwdkI9ImX0AOzyjIrzbXcttoyYFrsMovF9B
dzjzDAzXZNkncB+L1GWvNP1UsnTWl9o/wVtuyWVCKSh1JArDC0QES4ysHoit
fu6ezx36woO8SBCY9lvcEJb/5kp9UXnWND9imYYrDj0+htEvq+Ne91I8eGMa
uUxBeiBgRwMzG9tXwJE6K1SeGu5jPIDfXfmcyZUlpRyOChTDcTRM1hPuLQXL
QIJO2RgtK6B4cQBZ8OyDSxgMlVWpPyCJFMAABg24hJGonNavIvOr7zlTCXt4
bLCMrtgrbSFws9o7a9p9SE6RM00PQgZurFUqPWHOe5fXAWHhmINl8yLH7h7T
gXebUFJhf50YQsFJkjy3krOXWyYMZ2Wlc+TLItMVSoVfmtHyQj2KVXcGOt18
l+c9LDW46pDGFrvMMU5eo2sWm4PNO7471SzlYybORu8LyhrgFSDyuvb7r53A
mW4c7sLaoCd3mg3LOUm27pOgDjC4n2f4ev9aoYw4r+H35xXIQS85kWYVIrvG
AZLWl7GBiOpk0HiaY01o9yx/ED9oupxh7TRvGrNqg81tHp+h+8HG7SNO10wp
f+ZCeqqJAqHJABEBAAHCwV8EGAEIAAkFAlyP9g8CGwwACgkQ1slBUCE4fEiW
MA/+PjF0xU7RMhh50lHkzrLQ3iAGjV8GV7HzdjIypqpSpReODTR8iqfM6WDu
CCntEUTPaGnCBdpIyOA0gRz+Lpb43JCAUvZiw5EsGqdZZuboIskSSCKszHpB
QxuJLcFpT8ELqiVEAAD7lkQGDYu72iME7+rn3tMG7NbuV3ayVF1l2C4cSnC1
nbDDxtdq0jDOQPZ1rdqkSnDJcB1YIHblOlHcuE6dyOdtuKBnVcgprlevrPgk
nefHyBnOk1PF9HiPTkNFRo6RvD01kPJkWV8CRicafL2+y8sl6nRgjoNMjYbv
D3lyHmhPDxWt8HlRw2sm3DrfVdb//4IlqDu4qCMsRUMF7Bdh72rHkq4j7quC
l7edYn0JASetV4uanoYvFDPRiIE+vXnME4scKCiMIg+nMM3+7K5cEjDZsOXg
hmvK4HItivUk1e0adxeXzPwsfLU0HyGovumN39GLxV0fU9nVTTT4jIR8rpSL
f8C23A1NfZMDqoL01RZ71uA6SRcsznd2debM5YtRGWJWI24f78NMmFAeX0Hb
FM1aKsSfeuCYSrmiiDUttHNKUCjKgx+C2w68tTuYFxt4GI25dMFr8OszVIt9
hJV5vVOp/78gR4rImj9aaa8z6vptmrM57nPk1U/27s2Qf4k0C8UlnaEihMXf
YDlctaOrI9VzScwGG3H7z+kzCKU=
=h4NF
-----END PGP PUBLIC KEY BLOCK-----

996
assets/pappy/password-brute.cast

@ -0,0 +1,996 @@
{"version": 2, "width": 136, "height": 59, "timestamp": 1590067123, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
[0.009294, "o", "\u001b[5 q"]
[0.009609, "o", "\u001b]4;0;rgb:1d/20/21\u001b\\\u001b]4;1;rgb:fb/49/34\u001b\\\u001b]4;2;rgb:b8/bb/26\u001b\\\u001b]4;3;rgb:fa/bd/2f\u001b\\\u001b]4;4;rgb:83/a5/98\u001b\\\u001b]4;5;rgb:d3/86/9b\u001b\\\u001b]4;6;rgb:8e/c0/7c\u001b\\\u001b]4;7;rgb:d5/c4/a1\u001b\\\u001b]4;8;rgb:66/5c/54\u001b\\\u001b]4;9;rgb:fb/49/34\u001b\\\u001b]4;10;rgb:b8/bb/26\u001b\\"]
[0.009628, "o", "\u001b]4;11;rgb:fa/bd/2f\u001b\\"]
[0.009643, "o", "\u001b]4;12;rgb:83/a5/98\u001b\\"]
[0.009678, "o", "\u001b]4;13;rgb:d3/86/9b\u001b\\\u001b]4;14;rgb:8e/c0/7c\u001b\\"]
[0.009927, "o", "\u001b]4;15;rgb:fb/f1/c7\u001b\\\u001b]4;16;rgb:fe/80/19\u001b\\\u001b]4;17;rgb:d6/5d/0e\u001b\\\u001b]4;18;rgb:3c/38/36\u001b\\\u001b]4;19;rgb:50/49/45\u001b\\\u001b]4;20;rgb:bd/ae/93\u001b\\\u001b]4;21;rgb:eb/db/b2\u001b\\\u001b]10;rgb:d5/c4/a1\u001b\\\u001b]11;rgb:1d/20/21\u001b\\\u001b]12;7\u001b\\"]
[0.081135, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[0.105635, "o", "\u001b[?1004h"]
[0.229151, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[44m \u001b[30m  Projects  natas \u001b[49m\u001b[37m\u001b[00m\u001b[34m\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m⁣\u001b[K\u001b[111C\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m\u001b[111D"]
[0.229491, "o", "\u001b[5 q"]
[0.229974, "o", "\u001b[5 q"]
[0.230895, "o", "\u001b[?1h\u001b="]
[0.232336, "o", "\u001b[?2004h"]
[0.495608, "o", "\u001b[4mp\u001b[24m\u001b[90mappy\u001b[39m\b\b\b\b"]
[0.685124, "o", "\b\u001b[24m\u001b[32mp\u001b[32ma\u001b[39m"]
[0.878024, "o", "\b\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31ma\u001b[1m\u001b[31mp\u001b[0m\u001b[39m"]
[1.043208, "o", "\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31mp\u001b[0m\u001b[39m"]
[1.159698, "o", "\b\b\b\b\u001b[0m\u001b[32mp\u001b[0m\u001b[32ma\u001b[0m\u001b[32mp\u001b[0m\u001b[32mp\u001b[32my\u001b[39m"]
[1.496722, "o", "\u001b[?1l\u001b>"]
[1.498992, "o", "\u001b[?2004l"]
[1.502209, "o", "\r\r\n"]
[1.517399, "o", "\u001b[5 q"]
[1.523316, "o", "\u001b[?1004l"]
[1.69889, "o", "/home/jonathan/go/bin/puppy\r\n"]
[1.754149, "o", "pappy\u0001\u001b[33m\u0002> \u0001\u001b[0m\u0002"]
[2.270945, "o", "l"]
[2.461025, "o", "m"]
[2.545502, "o", "a"]
[3.074592, "o", "\r\n"]
[3.081346, "o", "Loaded natas15-password (./macro_natas15-password.py)\r\nLoaded natas15 (./macro_natas15.py)\r\n"]
[3.084313, "o", "pappy\u0001\u001b[33m\u0002> \u0001\u001b[0m\u0002"]
[4.218342, "o", "rma natas15-password"]
[4.971896, "o", "\r\n"]
[5.085955, "o", "a\r"]
[5.206945, "o", "b\r"]
[5.326547, "o", "c\r"]
[5.437393, "o", "d\r"]
[5.549147, "o", "e\r"]
[5.664011, "o", "f\r"]
[5.775954, "o", "g\r"]
[5.890659, "o", "h\r"]
[6.000321, "o", "i\r"]
[6.112878, "o", "j\r"]
[6.224215, "o", "k\r"]
[6.34291, "o", "l\r"]
[6.455094, "o", "m\r"]
[6.570645, "o", "n\r"]
[6.680533, "o", "o\r"]
[6.81024, "o", "p\r"]
[6.977327, "o", "q\r"]
[7.103245, "o", "r\r"]
[7.289806, "o", "s\r"]
[7.446911, "o", "t\r"]
[7.556574, "o", "u\r"]
[7.673027, "o", "v\r"]
[7.786883, "o", "w\r"]
[7.901044, "o", "x\r"]
[8.012249, "o", "y\r"]
[8.121503, "o", "z\r"]
[8.24445, "o", "A\r"]
[8.35835, "o", "B\r"]
[8.468958, "o", "C\r"]
[8.593344, "o", "D\r"]
[8.702621, "o", "E\r"]
[8.816087, "o", "F\r"]
[8.930272, "o", "G\r"]
[9.040616, "o", "H\r"]
[9.151716, "o", "I\r"]
[9.269707, "o", "J\r"]
[9.38981, "o", "K\r"]
[9.50179, "o", "L\r"]
[9.620189, "o", "M\r"]
[9.730245, "o", "N\r"]
[9.83835, "o", "O\r"]
[9.963039, "o", "P\r"]
[10.073541, "o", "Q\r"]
[10.184917, "o", "R\r"]
[10.302333, "o", "S\r"]
[10.41378, "o", "T\r"]
[10.526031, "o", "U\r"]
[10.632808, "o", "V\r"]
[10.743539, "o", "W\r"]
[10.856169, "o", "Wa\r"]
[10.967108, "o", "Waa\r"]
[11.080604, "o", "Wab\r"]
[11.191907, "o", "Wac\r"]
[11.303536, "o", "Wad\r"]
[11.415241, "o", "Wae\r"]
[11.530972, "o", "Waf\r"]
[11.641707, "o", "Wag\r"]
[11.755344, "o", "Wah\r"]
[11.882111, "o", "Wai\r"]
[11.990773, "o", "Waj\r"]
[12.108172, "o", "Wak\r"]
[12.216477, "o", "Wal\r"]
[12.326423, "o", "Wam\r"]
[12.461, "o", "Wan\r"]
[12.5894, "o", "Wao\r"]
[12.70967, "o", "Wap\r"]
[12.82729, "o", "Waq\r"]
[12.938261, "o", "War\r"]
[13.053397, "o", "Was\r"]
[13.171885, "o", "Wat\r"]
[13.290897, "o", "Wau\r"]
[13.406958, "o", "Wav\r"]
[13.517919, "o", "Waw\r"]
[13.629137, "o", "Wax\r"]
[13.743345, "o", "Way\r"]
[13.854087, "o", "Waz\r"]
[13.96501, "o", "WaA\r"]
[14.077861, "o", "WaB\r"]
[14.19219, "o", "WaC\r"]
[14.301841, "o", "WaD\r"]
[14.413127, "o", "WaE\r"]
[14.535247, "o", "WaF\r"]
[14.642786, "o", "WaG\r"]
[14.755171, "o", "WaH\r"]
[14.865018, "o", "WaI\r"]
[14.978131, "o", "WaIa\r"]
[15.08807, "o", "WaIb\r"]
[15.204615, "o", "WaIc\r"]
[15.322641, "o", "WaId\r"]
[15.432938, "o", "WaIe\r"]
[15.546864, "o", "WaIf\r"]
[15.660372, "o", "WaIg\r"]
[15.76967, "o", "WaIh\r"]
[15.88513, "o", "WaIi\r"]
[15.996749, "o", "WaIj\r"]
[16.10822, "o", "WaIk\r"]
[16.232082, "o", "WaIl\r"]
[16.343544, "o", "WaIm\r"]
[16.461922, "o", "WaIn\r"]
[16.58825, "o", "WaIo\r"]
[16.714211, "o", "WaIp\r"]
[16.829112, "o", "WaIq\r"]
[16.953916, "o", "WaIr\r"]
[17.175998, "o", "WaIs\r"]
[17.340569, "o", "WaIt\r"]
[17.462973, "o", "WaIu\r"]
[17.573631, "o", "WaIv\r"]
[17.683688, "o", "WaIw\r"]
[17.799298, "o", "WaIx\r"]
[17.913619, "o", "WaIy\r"]
[18.024695, "o", "WaIz\r"]
[18.135448, "o", "WaIA\r"]
[18.252172, "o", "WaIB\r"]
[18.365551, "o", "WaIC\r"]
[18.483037, "o", "WaID\r"]
[18.59954, "o", "WaIE\r"]
[18.725284, "o", "WaIF\r"]
[18.83585, "o", "WaIG\r"]
[18.947164, "o", "WaIH\r"]
[19.06417, "o", "WaIHa\r"]
[19.17527, "o", "WaIHb\r"]
[19.290641, "o", "WaIHc\r"]
[19.402477, "o", "WaIHd\r"]
[19.519582, "o", "WaIHe\r"]
[19.637197, "o", "WaIHf\r"]
[19.745739, "o", "WaIHg\r"]
[19.858428, "o", "WaIHh\r"]
[19.978077, "o", "WaIHi\r"]
[20.090617, "o", "WaIHj\r"]
[20.203066, "o", "WaIHk\r"]
[20.318722, "o", "WaIHl\r"]
[20.428155, "o", "WaIHm\r"]
[20.540727, "o", "WaIHn\r"]
[20.651112, "o", "WaIHo\r"]
[20.768237, "o", "WaIHp\r"]
[20.882439, "o", "WaIHq\r"]
[20.995755, "o", "WaIHr\r"]
[21.110113, "o", "WaIHs\r"]
[21.233616, "o", "WaIHt\r"]
[21.351273, "o", "WaIHu\r"]
[21.463907, "o", "WaIHv\r"]
[21.573633, "o", "WaIHw\r"]
[21.685818, "o", "WaIHx\r"]
[21.795411, "o", "WaIHy\r"]
[21.90721, "o", "WaIHz\r"]
[22.024275, "o", "WaIHA\r"]
[22.14367, "o", "WaIHB\r"]
[22.378325, "o", "WaIHC\r"]
[22.537297, "o", "WaIHD\r"]
[22.645722, "o", "WaIHE\r"]
[22.76345, "o", "WaIHEa\r"]
[22.873234, "o", "WaIHEaa\r"]
[22.987793, "o", "WaIHEab\r"]
[23.102334, "o", "WaIHEac\r"]
[23.219663, "o", "WaIHEaca\r"]
[23.330463, "o", "WaIHEacb\r"]
[23.441842, "o", "WaIHEacc\r"]
[23.550191, "o", "WaIHEacd\r"]
[23.657784, "o", "WaIHEace\r"]
[23.772498, "o", "WaIHEacf\r"]
[23.88683, "o", "WaIHEacg\r"]
[24.003419, "o", "WaIHEach\r"]
[24.113853, "o", "WaIHEaci\r"]
[24.232215, "o", "WaIHEacj\r"]
[24.341747, "o", "WaIHEacja\r"]
[24.452998, "o", "WaIHEacjb\r"]
[24.572351, "o", "WaIHEacjc\r"]
[24.68316, "o", "WaIHEacjd\r"]
[24.797228, "o", "WaIHEacje\r"]
[24.952973, "o", "WaIHEacjf\r"]
[25.06879, "o", "WaIHEacjg\r"]
[25.184469, "o", "WaIHEacjh\r"]
[25.294503, "o", "WaIHEacji\r"]
[25.422565, "o", "WaIHEacjj\r"]
[25.548843, "o", "WaIHEacjk\r"]
[25.666239, "o", "WaIHEacjl\r"]
[25.779721, "o", "WaIHEacjm\r"]
[25.888261, "o", "WaIHEacjn\r"]
[26.003478, "o", "WaIHEacjo\r"]
[26.113533, "o", "WaIHEacjp\r"]
[26.237644, "o", "WaIHEacjq\r"]
[26.350451, "o", "WaIHEacjr\r"]
[26.463968, "o", "WaIHEacjs\r"]
[26.586051, "o", "WaIHEacjt\r"]
[26.701697, "o", "WaIHEacju\r"]
[26.814059, "o", "WaIHEacjv\r"]
[26.953743, "o", "WaIHEacjw\r"]
[27.166073, "o", "WaIHEacjx\r"]
[27.347881, "o", "WaIHEacjy\r"]
[27.463762, "o", "WaIHEacjz\r"]
[27.572303, "o", "WaIHEacjA\r"]
[27.684411, "o", "WaIHEacjB\r"]
[27.800222, "o", "WaIHEacjC\r"]
[27.915078, "o", "WaIHEacjD\r"]
[28.025781, "o", "WaIHEacjE\r"]
[28.140165, "o", "WaIHEacjF\r"]
[28.25461, "o", "WaIHEacjG\r"]
[28.381881, "o", "WaIHEacjH\r"]
[28.491354, "o", "WaIHEacjI\r"]
[28.605086, "o", "WaIHEacjJ\r"]
[28.741836, "o", "WaIHEacjK\r"]
[28.854173, "o", "WaIHEacjL\r"]
[28.971534, "o", "WaIHEacjM\r"]
[29.083463, "o", "WaIHEacjN\r"]
[29.193629, "o", "WaIHEacjO\r"]
[29.307248, "o", "WaIHEacjP\r"]
[29.421989, "o", "WaIHEacjQ\r"]
[29.54055, "o", "WaIHEacjR\r"]
[29.656517, "o", "WaIHEacjS\r"]
[29.770432, "o", "WaIHEacjT\r"]
[29.881032, "o", "WaIHEacjU\r"]
[30.003108, "o", "WaIHEacjV\r"]
[30.117913, "o", "WaIHEacjW\r"]
[30.22768, "o", "WaIHEacjX\r"]
[30.341493, "o", "WaIHEacjY\r"]
[30.453951, "o", "WaIHEacjZ\r"]
[30.567853, "o", "WaIHEacj0\r"]
[30.679953, "o", "WaIHEacj1\r"]
[30.792469, "o", "WaIHEacj2\r"]
[30.90356, "o", "WaIHEacj3\r"]
[31.021875, "o", "WaIHEacj4\r"]
[31.133948, "o", "WaIHEacj5\r"]
[31.248273, "o", "WaIHEacj6\r"]
[31.358908, "o", "WaIHEacj6a\r"]
[31.473854, "o", "WaIHEacj6b\r"]
[31.591511, "o", "WaIHEacj6c\r"]
[31.710087, "o", "WaIHEacj6d\r"]
[31.825008, "o", "WaIHEacj6e\r"]
[31.943366, "o", "WaIHEacj6f\r"]
[32.056021, "o", "WaIHEacj6g\r"]
[32.170055, "o", "WaIHEacj6h\r"]
[32.281069, "o", "WaIHEacj6i\r"]
[32.402932, "o", "WaIHEacj6j\r"]
[32.530905, "o", "WaIHEacj6k\r"]
[32.651462, "o", "WaIHEacj6l\r"]
[32.775425, "o", "WaIHEacj6m\r"]
[32.887614, "o", "WaIHEacj6n\r"]
[32.998358, "o", "WaIHEacj6o\r"]
[33.109569, "o", "WaIHEacj6p\r"]
[33.227988, "o", "WaIHEacj6q\r"]
[33.34824, "o", "WaIHEacj6r\r"]
[33.459948, "o", "WaIHEacj6s\r"]
[33.570255, "o", "WaIHEacj6t\r"]
[33.687988, "o", "WaIHEacj6u\r"]
[33.797454, "o", "WaIHEacj6v\r"]
[33.912343, "o", "WaIHEacj6w\r"]
[34.028418, "o", "WaIHEacj6x\r"]
[34.13878, "o", "WaIHEacj6y\r"]
[34.254306, "o", "WaIHEacj6z\r"]
[34.370447, "o", "WaIHEacj6A\r"]
[34.492104, "o", "WaIHEacj6B\r"]
[34.810294, "o", "WaIHEacj6C\r"]
[34.957762, "o", "WaIHEacj6D\r"]
[35.071313, "o", "WaIHEacj6E\r"]
[35.186914, "o", "WaIHEacj6F\r"]
[35.304344, "o", "WaIHEacj6G\r"]
[35.421811, "o", "WaIHEacj6H\r"]
[35.532483, "o", "WaIHEacj6I\r"]
[35.644497, "o", "WaIHEacj6J\r"]
[35.756068, "o", "WaIHEacj6K\r"]
[35.866504, "o", "WaIHEacj6L\r"]
[35.978699, "o", "WaIHEacj6M\r"]
[36.096092, "o", "WaIHEacj6N\r"]
[36.218461, "o", "WaIHEacj6O\r"]
[36.328097, "o", "WaIHEacj6P\r"]
[36.448385, "o", "WaIHEacj6Q\r"]
[36.560191, "o", "WaIHEacj6R\r"]
[36.677712, "o", "WaIHEacj6S\r"]
[36.787274, "o", "WaIHEacj6T\r"]
[36.897824, "o", "WaIHEacj6U\r"]
[37.038433, "o", "WaIHEacj6V\r"]
[37.173196, "o", "WaIHEacj6W\r"]
[37.301266, "o", "WaIHEacj6X\r"]
[37.45678, "o", "WaIHEacj6Y\r"]
[37.572406, "o", "WaIHEacj6Z\r"]
[37.683439, "o", "WaIHEacj60\r"]
[37.803159, "o", "WaIHEacj61\r"]
[37.920511, "o", "WaIHEacj62\r"]
[38.036463, "o", "WaIHEacj63\r"]
[38.148, "o", "WaIHEacj63a\r"]
[38.264178, "o", "WaIHEacj63b\r"]
[38.375362, "o", "WaIHEacj63c\r"]
[38.486433, "o", "WaIHEacj63d\r"]
[38.597142, "o", "WaIHEacj63e\r"]
[38.709784, "o", "WaIHEacj63f\r"]
[38.819288, "o", "WaIHEacj63g\r"]
[38.93244, "o", "WaIHEacj63h\r"]
[39.042712, "o", "WaIHEacj63i\r"]
[39.151456, "o", "WaIHEacj63j\r"]
[39.271731, "o", "WaIHEacj63k\r"]
[39.387647, "o", "WaIHEacj63l\r"]
[39.496118, "o", "WaIHEacj63m\r"]
[39.607635, "o", "WaIHEacj63n\r"]
[39.724979, "o", "WaIHEacj63o\r"]
[39.843119, "o", "WaIHEacj63p\r"]
[39.972997, "o", "WaIHEacj63q\r"]
[40.089333, "o", "WaIHEacj63r\r"]
[40.202443, "o", "WaIHEacj63s\r"]
[40.320717, "o", "WaIHEacj63t\r"]
[40.433443, "o", "WaIHEacj63u\r"]
[40.542592, "o", "WaIHEacj63v\r"]
[40.655137, "o", "WaIHEacj63w\r"]
[40.773572, "o", "WaIHEacj63wa\r"]
[40.88428, "o", "WaIHEacj63wb\r"]
[40.996629, "o", "WaIHEacj63wc\r"]
[41.110608, "o", "WaIHEacj63wd\r"]
[41.235698, "o", "WaIHEacj63we\r"]
[41.349467, "o", "WaIHEacj63wf\r"]
[41.475502, "o", "WaIHEacj63wg\r"]
[41.59004, "o", "WaIHEacj63wh\r"]
[41.699915, "o", "WaIHEacj63wi\r"]
[41.811698, "o", "WaIHEacj63wj\r"]
[41.930269, "o", "WaIHEacj63wk\r"]
[42.045749, "o", "WaIHEacj63wl\r"]
[42.155548, "o", "WaIHEacj63wm\r"]
[42.269847, "o", "WaIHEacj63wn\r"]
[42.386681, "o", "WaIHEacj63wna\r"]
[42.507885, "o", "WaIHEacj63wnb\r"]
[42.624924, "o", "WaIHEacj63wnc\r"]
[42.736377, "o", "WaIHEacj63wnd\r"]
[42.851744, "o", "WaIHEacj63wne\r"]
[42.969319, "o", "WaIHEacj63wnf\r"]
[43.081559, "o", "WaIHEacj63wng\r"]
[43.193262, "o", "WaIHEacj63wnh\r"]
[43.311164, "o", "WaIHEacj63wni\r"]
[43.42131, "o", "WaIHEacj63wnj\r"]
[43.535737, "o", "WaIHEacj63wnk\r"]
[43.645705, "o", "WaIHEacj63wnl\r"]
[43.758604, "o", "WaIHEacj63wnm\r"]
[43.876268, "o", "WaIHEacj63wnn\r"]
[43.991397, "o", "WaIHEacj63wno\r"]
[44.10587, "o", "WaIHEacj63wnp\r"]
[44.215786, "o", "WaIHEacj63wnq\r"]
[44.333521, "o", "WaIHEacj63wnr\r"]
[44.443835, "o", "WaIHEacj63wns\r"]
[44.560183, "o", "WaIHEacj63wnt\r"]
[44.669598, "o", "WaIHEacj63wnu\r"]
[44.784266, "o", "WaIHEacj63wnv\r"]
[44.898697, "o", "WaIHEacj63wnw\r"]
[45.020109, "o", "WaIHEacj63wnx\r"]
[45.135525, "o", "WaIHEacj63wny\r"]
[45.252722, "o", "WaIHEacj63wnz\r"]
[45.362593, "o", "WaIHEacj63wnA\r"]
[45.473815, "o", "WaIHEacj63wnB\r"]
[45.586762, "o", "WaIHEacj63wnC\r"]
[45.698345, "o", "WaIHEacj63wnD\r"]
[45.809989, "o", "WaIHEacj63wnE\r"]
[45.926097, "o", "WaIHEacj63wnF\r"]
[46.040982, "o", "WaIHEacj63wnG\r"]
[46.150723, "o", "WaIHEacj63wnH\r"]
[46.263205, "o", "WaIHEacj63wnI\r"]
[46.381673, "o", "WaIHEacj63wnJ\r"]
[46.492733, "o", "WaIHEacj63wnK\r"]
[46.609045, "o", "WaIHEacj63wnL\r"]
[46.721509, "o", "WaIHEacj63wnM\r"]
[46.84581, "o", "WaIHEacj63wnN\r"]
[46.969457, "o", "WaIHEacj63wnNa\r"]
[47.086251, "o", "WaIHEacj63wnNb\r"]
[47.234667, "o", "WaIHEacj63wnNc\r"]
[47.343714, "o", "WaIHEacj63wnNd\r"]
[47.477565, "o", "WaIHEacj63wnNe\r"]
[47.591056, "o", "WaIHEacj63wnNf\r"]
[47.700631, "o", "WaIHEacj63wnNg\r"]
[47.821683, "o", "WaIHEacj63wnNh\r"]
[47.941086, "o", "WaIHEacj63wnNi\r"]
[48.050053, "o", "WaIHEacj63wnNj\r"]
[48.160265, "o", "WaIHEacj63wnNk\r"]
[48.270009, "o", "WaIHEacj63wnNl\r"]
[48.385084, "o", "WaIHEacj63wnNm\r"]
[48.497475, "o", "WaIHEacj63wnNn\r"]
[48.606292, "o", "WaIHEacj63wnNo\r"]
[48.719915, "o", "WaIHEacj63wnNp\r"]
[48.83601, "o", "WaIHEacj63wnNq\r"]
[48.944638, "o", "WaIHEacj63wnNr\r"]
[49.289808, "o", "WaIHEacj63wnNs\r"]
[49.410105, "o", "WaIHEacj63wnNt\r"]
[49.529098, "o", "WaIHEacj63wnNu\r"]
[49.640752, "o", "WaIHEacj63wnNv\r"]
[49.751883, "o", "WaIHEacj63wnNw\r"]
[49.866043, "o", "WaIHEacj63wnNx\r"]
[49.989099, "o", "WaIHEacj63wnNy\r"]
[50.102163, "o", "WaIHEacj63wnNz\r"]
[50.212255, "o", "WaIHEacj63wnNA\r"]
[50.334127, "o", "WaIHEacj63wnNB\r"]
[50.445693, "o", "WaIHEacj63wnNC\r"]
[50.557559, "o", "WaIHEacj63wnND\r"]
[50.669518, "o", "WaIHEacj63wnNE\r"]
[50.788773, "o", "WaIHEacj63wnNF\r"]
[50.896984, "o", "WaIHEacj63wnNG\r"]
[51.012098, "o", "WaIHEacj63wnNH\r"]
[51.127403, "o", "WaIHEacj63wnNI\r"]
[51.251866, "o", "WaIHEacj63wnNIa\r"]
[51.365522, "o", "WaIHEacj63wnNIb\r"]
[51.476561, "o", "WaIHEacj63wnNIc\r"]
[51.585074, "o", "WaIHEacj63wnNId\r"]
[51.694091, "o", "WaIHEacj63wnNIe\r"]
[51.808927, "o", "WaIHEacj63wnNIf\r"]
[51.920787, "o", "WaIHEacj63wnNIg\r"]
[52.038195, "o", "WaIHEacj63wnNIh\r"]
[52.147816, "o", "WaIHEacj63wnNIi\r"]
[52.261194, "o", "WaIHEacj63wnNIj\r"]
[52.37437, "o", "WaIHEacj63wnNIk\r"]
[52.495069, "o", "WaIHEacj63wnNIl\r"]
[52.605323, "o", "WaIHEacj63wnNIm\r"]
[52.717433, "o", "WaIHEacj63wnNIn\r"]
[52.841762, "o", "WaIHEacj63wnNIo\r"]
[52.959326, "o", "WaIHEacj63wnNIp\r"]
[53.069026, "o", "WaIHEacj63wnNIq\r"]
[53.178351, "o", "WaIHEacj63wnNIr\r"]
[53.288772, "o", "WaIHEacj63wnNIs\r"]
[53.401056, "o", "WaIHEacj63wnNIt\r"]
[53.516315, "o", "WaIHEacj63wnNIu\r"]
[53.624855, "o", "WaIHEacj63wnNIv\r"]
[53.750987, "o", "WaIHEacj63wnNIw\r"]
[53.865552, "o", "WaIHEacj63wnNIx\r"]
[53.981671, "o", "WaIHEacj63wnNIy\r"]
[54.131099, "o", "WaIHEacj63wnNIz\r"]
[54.476314, "o", "WaIHEacj63wnNIA\r"]
[54.596725, "o", "WaIHEacj63wnNIB\r"]
[54.720566, "o", "WaIHEacj63wnNIBa\r"]
[54.833975, "o", "WaIHEacj63wnNIBb\r"]
[54.971882, "o", "WaIHEacj63wnNIBc\r"]
[55.087161, "o", "WaIHEacj63wnNIBd\r"]
[55.197732, "o", "WaIHEacj63wnNIBe\r"]
[55.317473, "o", "WaIHEacj63wnNIBf\r"]
[55.434793, "o", "WaIHEacj63wnNIBg\r"]
[55.551906, "o", "WaIHEacj63wnNIBh\r"]
[55.666182, "o", "WaIHEacj63wnNIBi\r"]
[55.775779, "o", "WaIHEacj63wnNIBj\r"]
[55.890774, "o", "WaIHEacj63wnNIBk\r"]
[56.015161, "o", "WaIHEacj63wnNIBl\r"]
[56.132111, "o", "WaIHEacj63wnNIBm\r"]
[56.254352, "o", "WaIHEacj63wnNIBn\r"]
[56.372153, "o", "WaIHEacj63wnNIBo\r"]
[56.48939, "o", "WaIHEacj63wnNIBp\r"]
[56.61258, "o", "WaIHEacj63wnNIBq\r"]
[56.741611, "o", "WaIHEacj63wnNIBr\r"]
[56.868879, "o", "WaIHEacj63wnNIBs\r"]
[57.041126, "o", "WaIHEacj63wnNIBt\r"]
[57.289581, "o", "WaIHEacj63wnNIBu\r"]
[57.409608, "o", "WaIHEacj63wnNIBv\r"]
[57.525075, "o", "WaIHEacj63wnNIBw\r"]
[57.645948, "o", "WaIHEacj63wnNIBx\r"]
[57.757035, "o", "WaIHEacj63wnNIBy\r"]
[57.875423, "o", "WaIHEacj63wnNIBz\r"]
[57.982994, "o", "WaIHEacj63wnNIBA\r"]
[58.095028, "o", "WaIHEacj63wnNIBB\r"]
[58.206851, "o", "WaIHEacj63wnNIBC\r"]
[58.318361, "o", "WaIHEacj63wnNIBD\r"]
[58.433073, "o", "WaIHEacj63wnNIBE\r"]
[58.544716, "o", "WaIHEacj63wnNIBF\r"]
[58.654899, "o", "WaIHEacj63wnNIBG\r"]
[58.770277, "o", "WaIHEacj63wnNIBH\r"]
[58.879415, "o", "WaIHEacj63wnNIBI\r"]
[58.987208, "o", "WaIHEacj63wnNIBJ\r"]
[59.100069, "o", "WaIHEacj63wnNIBK\r"]
[59.209735, "o", "WaIHEacj63wnNIBL\r"]
[59.322781, "o", "WaIHEacj63wnNIBM\r"]
[59.442869, "o", "WaIHEacj63wnNIBN\r"]
[59.559842, "o", "WaIHEacj63wnNIBO\r"]
[59.670825, "o", "WaIHEacj63wnNIBP\r"]
[59.779211, "o", "WaIHEacj63wnNIBQ\r"]
[59.885564, "o", "WaIHEacj63wnNIBR\r"]
[60.005301, "o", "WaIHEacj63wnNIBRa\r"]
[60.116804, "o", "WaIHEacj63wnNIBRb\r"]
[60.225765, "o", "WaIHEacj63wnNIBRc\r"]
[60.339643, "o", "WaIHEacj63wnNIBRd\r"]
[60.450219, "o", "WaIHEacj63wnNIBRe\r"]
[60.561673, "o", "WaIHEacj63wnNIBRf\r"]
[60.669311, "o", "WaIHEacj63wnNIBRg\r"]
[60.778254, "o", "WaIHEacj63wnNIBRh\r"]
[60.888809, "o", "WaIHEacj63wnNIBRi\r"]
[61.000878, "o", "WaIHEacj63wnNIBRj\r"]
[61.116168, "o", "WaIHEacj63wnNIBRk\r"]
[61.227752, "o", "WaIHEacj63wnNIBRl\r"]
[61.337761, "o", "WaIHEacj63wnNIBRm\r"]
[61.4525, "o", "WaIHEacj63wnNIBRn\r"]
[61.59238, "o", "WaIHEacj63wnNIBRo\r"]
[61.716852, "o", "WaIHEacj63wnNIBRp\r"]
[61.866359, "o", "WaIHEacj63wnNIBRq\r"]
[61.976806, "o", "WaIHEacj63wnNIBRr\r"]
[62.103341, "o", "WaIHEacj63wnNIBRs\r"]
[62.218833, "o", "WaIHEacj63wnNIBRt\r"]
[62.329327, "o", "WaIHEacj63wnNIBRu\r"]
[62.464303, "o", "WaIHEacj63wnNIBRv\r"]
[62.574842, "o", "WaIHEacj63wnNIBRw\r"]
[62.686281, "o", "WaIHEacj63wnNIBRx\r"]
[62.798118, "o", "WaIHEacj63wnNIBRy\r"]
[62.927862, "o", "WaIHEacj63wnNIBRz\r"]
[63.039208, "o", "WaIHEacj63wnNIBRA\r"]
[63.151363, "o", "WaIHEacj63wnNIBRB\r"]
[63.261454, "o", "WaIHEacj63wnNIBRC\r"]
[63.37898, "o", "WaIHEacj63wnNIBRD\r"]
[63.49421, "o", "WaIHEacj63wnNIBRE\r"]
[63.607479, "o", "WaIHEacj63wnNIBRF\r"]
[63.718539, "o", "WaIHEacj63wnNIBRG\r"]
[63.827821, "o", "WaIHEacj63wnNIBRH\r"]
[63.936119, "o", "WaIHEacj63wnNIBRI\r"]
[64.050596, "o", "WaIHEacj63wnNIBRJ\r"]
[64.165722, "o", "WaIHEacj63wnNIBRK\r"]
[64.275408, "o", "WaIHEacj63wnNIBRL\r"]
[64.386753, "o", "WaIHEacj63wnNIBRM\r"]
[64.497669, "o", "WaIHEacj63wnNIBRN\r"]
[64.607455, "o", "WaIHEacj63wnNIBRO\r"]
[64.71694, "o", "WaIHEacj63wnNIBROa\r"]
[64.829588, "o", "WaIHEacj63wnNIBROb\r"]
[64.966146, "o", "WaIHEacj63wnNIBROc\r"]
[65.075489, "o", "WaIHEacj63wnNIBROd\r"]
[65.188179, "o", "WaIHEacj63wnNIBROe\r"]
[65.298402, "o", "WaIHEacj63wnNIBROf\r"]
[65.408638, "o", "WaIHEacj63wnNIBROg\r"]
[65.544757, "o", "WaIHEacj63wnNIBROh\r"]
[65.655769, "o", "WaIHEacj63wnNIBROi\r"]
[65.766283, "o", "WaIHEacj63wnNIBROj\r"]
[65.878849, "o", "WaIHEacj63wnNIBROk\r"]
[65.995838, "o", "WaIHEacj63wnNIBROl\r"]
[66.110533, "o", "WaIHEacj63wnNIBROm\r"]
[66.221983, "o", "WaIHEacj63wnNIBROn\r"]
[66.33236, "o", "WaIHEacj63wnNIBROo\r"]
[66.443697, "o", "WaIHEacj63wnNIBROp\r"]
[66.553271, "o", "WaIHEacj63wnNIBROq\r"]
[66.664175, "o", "WaIHEacj63wnNIBROr\r"]
[66.787943, "o", "WaIHEacj63wnNIBROs\r"]
[66.912664, "o", "WaIHEacj63wnNIBROt\r"]
[67.166358, "o", "WaIHEacj63wnNIBROu\r"]
[67.281474, "o", "WaIHEacj63wnNIBROv\r"]
[67.397849, "o", "WaIHEacj63wnNIBROw\r"]
[67.517646, "o", "WaIHEacj63wnNIBROx\r"]
[67.635451, "o", "WaIHEacj63wnNIBROy\r"]
[67.749642, "o", "WaIHEacj63wnNIBROz\r"]
[67.857648, "o", "WaIHEacj63wnNIBROA\r"]
[67.967387, "o", "WaIHEacj63wnNIBROB\r"]
[68.076215, "o", "WaIHEacj63wnNIBROC\r"]
[68.192787, "o", "WaIHEacj63wnNIBROD\r"]
[68.299538, "o", "WaIHEacj63wnNIBROE\r"]
[68.413102, "o", "WaIHEacj63wnNIBROF\r"]
[68.533398, "o", "WaIHEacj63wnNIBROG\r"]
[68.645167, "o", "WaIHEacj63wnNIBROH\r"]
[68.761681, "o", "WaIHEacj63wnNIBROHa\r"]
[68.877331, "o", "WaIHEacj63wnNIBROHb\r"]
[68.987002, "o", "WaIHEacj63wnNIBROHc\r"]
[69.099403, "o", "WaIHEacj63wnNIBROHd\r"]
[69.214955, "o", "WaIHEacj63wnNIBROHe\r"]
[69.324451, "o", "WaIHEacj63wnNIBROHea\r"]
[69.434715, "o", "WaIHEacj63wnNIBROHeb\r"]
[69.547049, "o", "WaIHEacj63wnNIBROHec\r"]
[69.659927, "o", "WaIHEacj63wnNIBROHed\r"]
[69.769096, "o", "WaIHEacj63wnNIBROHee\r"]
[69.887856, "o", "WaIHEacj63wnNIBROHef\r"]
[70.007512, "o", "WaIHEacj63wnNIBROHeg\r"]
[70.119766, "o", "WaIHEacj63wnNIBROHeh\r"]
[70.231493, "o", "WaIHEacj63wnNIBROHei\r"]
[70.346591, "o", "WaIHEacj63wnNIBROHej\r"]
[70.458384, "o", "WaIHEacj63wnNIBROHek\r"]
[70.568463, "o", "WaIHEacj63wnNIBROHel\r"]
[70.678098, "o", "WaIHEacj63wnNIBROHem\r"]
[70.791002, "o", "WaIHEacj63wnNIBROHen\r"]
[70.907752, "o", "WaIHEacj63wnNIBROHeo\r"]
[71.029526, "o", "WaIHEacj63wnNIBROHep\r"]
[71.170778, "o", "WaIHEacj63wnNIBROHeq\r"]
[71.281009, "o", "WaIHEacj63wnNIBROHeqa\r"]
[71.471996, "o", "WaIHEacj63wnNIBROHeqb\r"]
[71.583845, "o", "WaIHEacj63wnNIBROHeqc\r"]
[71.697102, "o", "WaIHEacj63wnNIBROHeqd\r"]
[71.806595, "o", "WaIHEacj63wnNIBROHeqe\r"]
[71.919147, "o", "WaIHEacj63wnNIBROHeqf\r"]
[72.029215, "o", "WaIHEacj63wnNIBROHeqg\r"]
[72.14082, "o", "WaIHEacj63wnNIBROHeqh\r"]
[72.255111, "o", "WaIHEacj63wnNIBROHeqi\r"]
[72.363975, "o", "WaIHEacj63wnNIBROHeqia\r"]
[72.484869, "o", "WaIHEacj63wnNIBROHeqib\r"]
[72.602468, "o", "WaIHEacj63wnNIBROHeqic\r"]
[72.712748, "o", "WaIHEacj63wnNIBROHeqid\r"]
[72.835887, "o", "WaIHEacj63wnNIBROHeqie\r"]
[72.946331, "o", "WaIHEacj63wnNIBROHeqif\r"]
[73.061057, "o", "WaIHEacj63wnNIBROHeqig\r"]
[73.175652, "o", "WaIHEacj63wnNIBROHeqih\r"]
[73.286176, "o", "WaIHEacj63wnNIBROHeqii\r"]
[73.40231, "o", "WaIHEacj63wnNIBROHeqij\r"]
[73.516568, "o", "WaIHEacj63wnNIBROHeqik\r"]
[73.626788, "o", "WaIHEacj63wnNIBROHeqil\r"]
[73.737427, "o", "WaIHEacj63wnNIBROHeqim\r"]
[73.847108, "o", "WaIHEacj63wnNIBROHeqin\r"]
[73.957578, "o", "WaIHEacj63wnNIBROHeqio\r"]
[74.063922, "o", "WaIHEacj63wnNIBROHeqip\r"]
[74.174593, "o", "WaIHEacj63wnNIBROHeqiq\r"]
[74.287929, "o", "WaIHEacj63wnNIBROHeqir\r"]
[74.405804, "o", "WaIHEacj63wnNIBROHeqis\r"]
[74.515119, "o", "WaIHEacj63wnNIBROHeqit\r"]
[74.643575, "o", "WaIHEacj63wnNIBROHeqiu\r"]
[74.759404, "o", "WaIHEacj63wnNIBROHeqiv\r"]
[74.871738, "o", "WaIHEacj63wnNIBROHeqiw\r"]
[75.004769, "o", "WaIHEacj63wnNIBROHeqix\r"]
[75.116872, "o", "WaIHEacj63wnNIBROHeqiy\r"]
[75.235311, "o", "WaIHEacj63wnNIBROHeqiz\r"]
[75.359481, "o", "WaIHEacj63wnNIBROHeqiA\r"]
[75.474593, "o", "WaIHEacj63wnNIBROHeqiB\r"]
[75.587189, "o", "WaIHEacj63wnNIBROHeqiC\r"]
[75.694629, "o", "WaIHEacj63wnNIBROHeqiD\r"]
[75.809216, "o", "WaIHEacj63wnNIBROHeqiE\r"]
[75.927478, "o", "WaIHEacj63wnNIBROHeqiF\r"]
[76.03506, "o", "WaIHEacj63wnNIBROHeqiG\r"]
[76.148514, "o", "WaIHEacj63wnNIBROHeqiH\r"]
[76.287922, "o", "WaIHEacj63wnNIBROHeqiI\r"]
[76.394781, "o", "WaIHEacj63wnNIBROHeqiJ\r"]
[76.509342, "o", "WaIHEacj63wnNIBROHeqiK\r"]
[76.621212, "o", "WaIHEacj63wnNIBROHeqiL\r"]
[76.759362, "o", "WaIHEacj63wnNIBROHeqiM\r"]
[76.879878, "o", "WaIHEacj63wnNIBROHeqiN\r"]
[77.023138, "o", "WaIHEacj63wnNIBROHeqiO\r"]
[77.260298, "o", "WaIHEacj63wnNIBROHeqiP\r"]
[77.407325, "o", "WaIHEacj63wnNIBROHeqiQ\r"]
[77.567064, "o", "WaIHEacj63wnNIBROHeqiR\r"]
[77.712041, "o", "WaIHEacj63wnNIBROHeqiS\r"]
[77.894354, "o", "WaIHEacj63wnNIBROHeqiT\r"]
[78.004425, "o", "WaIHEacj63wnNIBROHeqiU\r"]
[78.111865, "o", "WaIHEacj63wnNIBROHeqiV\r"]
[78.217033, "o", "WaIHEacj63wnNIBROHeqiW\r"]
[78.328785, "o", "WaIHEacj63wnNIBROHeqiX\r"]
[78.436027, "o", "WaIHEacj63wnNIBROHeqiY\r"]
[78.545813, "o", "WaIHEacj63wnNIBROHeqiZ\r"]
[78.658592, "o", "WaIHEacj63wnNIBROHeqi0\r"]
[78.795194, "o", "WaIHEacj63wnNIBROHeqi1\r"]
[78.910231, "o", "WaIHEacj63wnNIBROHeqi2\r"]
[79.01901, "o", "WaIHEacj63wnNIBROHeqi3\r"]
[79.124284, "o", "WaIHEacj63wnNIBROHeqi3a\r"]
[79.236629, "o", "WaIHEacj63wnNIBROHeqi3b\r"]
[79.343957, "o", "WaIHEacj63wnNIBROHeqi3c\r"]
[79.469634, "o", "WaIHEacj63wnNIBROHeqi3d\r"]
[79.58128, "o", "WaIHEacj63wnNIBROHeqi3e\r"]
[79.689454, "o", "WaIHEacj63wnNIBROHeqi3f\r"]
[79.797959, "o", "WaIHEacj63wnNIBROHeqi3g\r"]
[79.9053, "o", "WaIHEacj63wnNIBROHeqi3h\r"]
[80.021441, "o", "WaIHEacj63wnNIBROHeqi3i\r"]
[80.129906, "o", "WaIHEacj63wnNIBROHeqi3j\r"]
[80.245136, "o", "WaIHEacj63wnNIBROHeqi3k\r"]
[80.354549, "o", "WaIHEacj63wnNIBROHeqi3l\r"]
[80.464892, "o", "WaIHEacj63wnNIBROHeqi3m\r"]
[80.572775, "o", "WaIHEacj63wnNIBROHeqi3n\r"]
[80.684795, "o", "WaIHEacj63wnNIBROHeqi3o\r"]
[80.796347, "o", "WaIHEacj63wnNIBROHeqi3p\r"]
[80.906119, "o", "WaIHEacj63wnNIBROHeqi3pa\r"]
[81.015162, "o", "WaIHEacj63wnNIBROHeqi3pb\r"]
[81.126729, "o", "WaIHEacj63wnNIBROHeqi3pc\r"]
[81.235186, "o", "WaIHEacj63wnNIBROHeqi3pd\r"]
[81.345873, "o", "WaIHEacj63wnNIBROHeqi3pe\r"]
[81.460209, "o", "WaIHEacj63wnNIBROHeqi3pf\r"]
[81.574424, "o", "WaIHEacj63wnNIBROHeqi3pg\r"]
[81.698308, "o", "WaIHEacj63wnNIBROHeqi3ph\r"]
[81.815257, "o", "WaIHEacj63wnNIBROHeqi3pi\r"]
[81.924806, "o", "WaIHEacj63wnNIBROHeqi3pj\r"]
[82.038298, "o", "WaIHEacj63wnNIBROHeqi3pk\r"]
[82.148059, "o", "WaIHEacj63wnNIBROHeqi3pl\r"]
[82.400866, "o", "WaIHEacj63wnNIBROHeqi3pm\r"]
[82.604465, "o", "WaIHEacj63wnNIBROHeqi3pn\r"]
[82.77887, "o", "WaIHEacj63wnNIBROHeqi3po\r"]
[82.926838, "o", "WaIHEacj63wnNIBROHeqi3pp\r"]
[83.190428, "o", "WaIHEacj63wnNIBROHeqi3pq\r"]
[83.334429, "o", "WaIHEacj63wnNIBROHeqi3pr\r"]
[83.466321, "o", "WaIHEacj63wnNIBROHeqi3ps\r"]
[83.603587, "o", "WaIHEacj63wnNIBROHeqi3pt\r"]
[83.716789, "o", "WaIHEacj63wnNIBROHeqi3pu\r"]
[83.842677, "o", "WaIHEacj63wnNIBROHeqi3pv\r"]
[83.958217, "o", "WaIHEacj63wnNIBROHeqi3pw\r"]
[84.063552, "o", "WaIHEacj63wnNIBROHeqi3px\r"]
[84.170718, "o", "WaIHEacj63wnNIBROHeqi3py\r"]
[84.27705, "o", "WaIHEacj63wnNIBROHeqi3pz\r"]
[84.388126, "o", "WaIHEacj63wnNIBROHeqi3pA\r"]
[84.499336, "o", "WaIHEacj63wnNIBROHeqi3pB\r"]
[84.606151, "o", "WaIHEacj63wnNIBROHeqi3pC\r"]
[84.718215, "o", "WaIHEacj63wnNIBROHeqi3pD\r"]
[84.829607, "o", "WaIHEacj63wnNIBROHeqi3pE\r"]
[84.960707, "o", "WaIHEacj63wnNIBROHeqi3pF\r"]
[85.070123, "o", "WaIHEacj63wnNIBROHeqi3pG\r"]
[85.17823, "o", "WaIHEacj63wnNIBROHeqi3pH\r"]
[85.293522, "o", "WaIHEacj63wnNIBROHeqi3pI\r"]
[85.417048, "o", "WaIHEacj63wnNIBROHeqi3pJ\r"]
[85.529531, "o", "WaIHEacj63wnNIBROHeqi3pK\r"]
[85.64381, "o", "WaIHEacj63wnNIBROHeqi3pL\r"]
[85.759208, "o", "WaIHEacj63wnNIBROHeqi3pM\r"]
[85.873474, "o", "WaIHEacj63wnNIBROHeqi3pN\r"]
[85.984084, "o", "WaIHEacj63wnNIBROHeqi3pO\r"]
[86.098335, "o", "WaIHEacj63wnNIBROHeqi3pP\r"]
[86.250006, "o", "WaIHEacj63wnNIBROHeqi3pQ\r"]
[86.3721, "o", "WaIHEacj63wnNIBROHeqi3pR\r"]
[86.52324, "o", "WaIHEacj63wnNIBROHeqi3pS\r"]
[86.704508, "o", "WaIHEacj63wnNIBROHeqi3pT\r"]
[86.814217, "o", "WaIHEacj63wnNIBROHeqi3pU\r"]
[86.938933, "o", "WaIHEacj63wnNIBROHeqi3pV\r"]
[87.127656, "o", "WaIHEacj63wnNIBROHeqi3pW\r"]
[87.249451, "o", "WaIHEacj63wnNIBROHeqi3pX\r"]
[87.368663, "o", "WaIHEacj63wnNIBROHeqi3pY\r"]
[87.497511, "o", "WaIHEacj63wnNIBROHeqi3pZ\r"]
[87.616168, "o", "WaIHEacj63wnNIBROHeqi3p0\r"]
[87.728707, "o", "WaIHEacj63wnNIBROHeqi3p1\r"]
[87.842837, "o", "WaIHEacj63wnNIBROHeqi3p2\r"]
[87.957047, "o", "WaIHEacj63wnNIBROHeqi3p3\r"]
[88.070037, "o", "WaIHEacj63wnNIBROHeqi3p4\r"]
[88.202037, "o", "WaIHEacj63wnNIBROHeqi3p5\r"]
[88.347508, "o", "WaIHEacj63wnNIBROHeqi3p6\r"]
[88.469328, "o", "WaIHEacj63wnNIBROHeqi3p7\r"]
[88.580032, "o", "WaIHEacj63wnNIBROHeqi3p8\r"]
[88.687974, "o", "WaIHEacj63wnNIBROHeqi3p9\r"]
[88.80586, "o", "WaIHEacj63wnNIBROHeqi3p9a\r"]
[88.917666, "o", "WaIHEacj63wnNIBROHeqi3p9b\r"]
[89.028919, "o", "WaIHEacj63wnNIBROHeqi3p9c\r"]
[89.142387, "o", "WaIHEacj63wnNIBROHeqi3p9d\r"]
[89.25246, "o", "WaIHEacj63wnNIBROHeqi3p9e\r"]
[89.361839, "o", "WaIHEacj63wnNIBROHeqi3p9f\r"]
[89.476245, "o", "WaIHEacj63wnNIBROHeqi3p9g\r"]
[89.595032, "o", "WaIHEacj63wnNIBROHeqi3p9h\r"]
[89.709214, "o", "WaIHEacj63wnNIBROHeqi3p9i\r"]
[89.829913, "o", "WaIHEacj63wnNIBROHeqi3p9j\r"]
[89.953806, "o", "WaIHEacj63wnNIBROHeqi3p9k\r"]
[90.097799, "o", "WaIHEacj63wnNIBROHeqi3p9l\r"]
[90.20857, "o", "WaIHEacj63wnNIBROHeqi3p9m\r"]
[90.318157, "o", "WaIHEacj63wnNIBROHeqi3p9n\r"]
[90.429952, "o", "WaIHEacj63wnNIBROHeqi3p9o\r"]
[90.546059, "o", "WaIHEacj63wnNIBROHeqi3p9p\r"]
[90.656114, "o", "WaIHEacj63wnNIBROHeqi3p9q\r"]
[90.767636, "o", "WaIHEacj63wnNIBROHeqi3p9r\r"]
[90.881998, "o", "WaIHEacj63wnNIBROHeqi3p9s\r"]
[90.994918, "o", "WaIHEacj63wnNIBROHeqi3p9t\r"]
[91.108953, "o", "WaIHEacj63wnNIBROHeqi3p9ta\r"]
[91.231586, "o", "WaIHEacj63wnNIBROHeqi3p9tb\r"]
[91.342023, "o", "WaIHEacj63wnNIBROHeqi3p9tc\r"]
[91.460042, "o", "WaIHEacj63wnNIBROHeqi3p9td\r"]
[91.570418, "o", "WaIHEacj63wnNIBROHeqi3p9te\r"]
[91.681983, "o", "WaIHEacj63wnNIBROHeqi3p9tf\r"]
[91.790781, "o", "WaIHEacj63wnNIBROHeqi3p9tg\r"]
[91.902463, "o", "WaIHEacj63wnNIBROHeqi3p9th\r"]
[92.024506, "o", "WaIHEacj63wnNIBROHeqi3p9ti\r"]
[92.135972, "o", "WaIHEacj63wnNIBROHeqi3p9tj\r"]
[92.254485, "o", "WaIHEacj63wnNIBROHeqi3p9tk\r"]
[92.37181, "o", "WaIHEacj63wnNIBROHeqi3p9tl\r"]
[92.515269, "o", "WaIHEacj63wnNIBROHeqi3p9tm\r"]
[92.642655, "o", "WaIHEacj63wnNIBROHeqi3p9tn\r"]
[92.759878, "o", "WaIHEacj63wnNIBROHeqi3p9to\r"]
[92.874407, "o", "WaIHEacj63wnNIBROHeqi3p9tp\r"]
[92.984763, "o", "WaIHEacj63wnNIBROHeqi3p9tq\r"]
[93.104709, "o", "WaIHEacj63wnNIBROHeqi3p9tr\r"]
[93.271709, "o", "WaIHEacj63wnNIBROHeqi3p9ts\r"]
[93.439198, "o", "WaIHEacj63wnNIBROHeqi3p9tt\r"]
[93.554788, "o", "WaIHEacj63wnNIBROHeqi3p9tu\r"]
[93.668859, "o", "WaIHEacj63wnNIBROHeqi3p9tv\r"]
[93.783041, "o", "WaIHEacj63wnNIBROHeqi3p9tw\r"]
[93.898665, "o", "WaIHEacj63wnNIBROHeqi3p9tx\r"]
[94.008727, "o", "WaIHEacj63wnNIBROHeqi3p9ty\r"]
[94.123223, "o", "WaIHEacj63wnNIBROHeqi3p9tz\r"]
[94.234441, "o", "WaIHEacj63wnNIBROHeqi3p9tA\r"]
[94.34994, "o", "WaIHEacj63wnNIBROHeqi3p9tB\r"]
[94.46206, "o", "WaIHEacj63wnNIBROHeqi3p9tC\r"]
[94.577177, "o", "WaIHEacj63wnNIBROHeqi3p9tD\r"]
[94.686097, "o", "WaIHEacj63wnNIBROHeqi3p9tE\r"]
[94.805711, "o", "WaIHEacj63wnNIBROHeqi3p9tF\r"]
[94.922315, "o", "WaIHEacj63wnNIBROHeqi3p9tG\r"]
[95.040296, "o", "WaIHEacj63wnNIBROHeqi3p9tH\r"]
[95.150587, "o", "WaIHEacj63wnNIBROHeqi3p9tI\r"]
[95.26193, "o", "WaIHEacj63wnNIBROHeqi3p9tJ\r"]
[95.373, "o", "WaIHEacj63wnNIBROHeqi3p9tK\r"]
[95.489345, "o", "WaIHEacj63wnNIBROHeqi3p9tL\r"]
[95.60612, "o", "WaIHEacj63wnNIBROHeqi3p9tM\r"]
[95.717256, "o", "WaIHEacj63wnNIBROHeqi3p9tN\r"]
[95.838385, "o", "WaIHEacj63wnNIBROHeqi3p9tO\r"]
[95.949347, "o", "WaIHEacj63wnNIBROHeqi3p9tP\r"]
[96.059814, "o", "WaIHEacj63wnNIBROHeqi3p9tQ\r"]
[96.171687, "o", "WaIHEacj63wnNIBROHeqi3p9tR\r"]
[96.280627, "o", "WaIHEacj63wnNIBROHeqi3p9tS\r"]
[96.400084, "o", "WaIHEacj63wnNIBROHeqi3p9tT\r"]
[96.538573, "o", "WaIHEacj63wnNIBROHeqi3p9tU\r"]
[96.658706, "o", "WaIHEacj63wnNIBROHeqi3p9tV\r"]
[96.809565, "o", "WaIHEacj63wnNIBROHeqi3p9tW\r"]
[96.92244, "o", "WaIHEacj63wnNIBROHeqi3p9tX\r"]
[97.174186, "o", "WaIHEacj63wnNIBROHeqi3p9tY\r"]
[97.308367, "o", "WaIHEacj63wnNIBROHeqi3p9tZ\r"]
[97.422232, "o", "WaIHEacj63wnNIBROHeqi3p9t0\r"]
[97.536238, "o", "WaIHEacj63wnNIBROHeqi3p9t0a\r"]
[97.651367, "o", "WaIHEacj63wnNIBROHeqi3p9t0b\r"]
[97.761385, "o", "WaIHEacj63wnNIBROHeqi3p9t0c\r"]
[97.871952, "o", "WaIHEacj63wnNIBROHeqi3p9t0d\r"]
[97.982241, "o", "WaIHEacj63wnNIBROHeqi3p9t0e\r"]
[98.095963, "o", "WaIHEacj63wnNIBROHeqi3p9t0f\r"]
[98.240594, "o", "WaIHEacj63wnNIBROHeqi3p9t0g\r"]
[98.434711, "o", "WaIHEacj63wnNIBROHeqi3p9t0h\r"]
[98.589058, "o", "WaIHEacj63wnNIBROHeqi3p9t0i\r"]
[98.723554, "o", "WaIHEacj63wnNIBROHeqi3p9t0j\r"]
[98.879272, "o", "WaIHEacj63wnNIBROHeqi3p9t0k\r"]
[99.056785, "o", "WaIHEacj63wnNIBROHeqi3p9t0l\r"]
[99.212232, "o", "WaIHEacj63wnNIBROHeqi3p9t0m\r"]
[99.326977, "o", "WaIHEacj63wnNIBROHeqi3p9t0ma\r"]
[99.435341, "o", "WaIHEacj63wnNIBROHeqi3p9t0mb\r"]
[99.546671, "o", "WaIHEacj63wnNIBROHeqi3p9t0mc\r"]
[99.659544, "o", "WaIHEacj63wnNIBROHeqi3p9t0md\r"]
[99.770395, "o", "WaIHEacj63wnNIBROHeqi3p9t0me\r"]
[99.889733, "o", "WaIHEacj63wnNIBROHeqi3p9t0mf\r"]
[100.020111, "o", "WaIHEacj63wnNIBROHeqi3p9t0mg\r"]
[100.166435, "o", "WaIHEacj63wnNIBROHeqi3p9t0mh\r"]
[100.333609, "o", "WaIHEacj63wnNIBROHeqi3p9t0mi\r"]
[100.449191, "o", "WaIHEacj63wnNIBROHeqi3p9t0mj\r"]
[100.55967, "o", "WaIHEacj63wnNIBROHeqi3p9t0mk\r"]
[100.669729, "o", "WaIHEacj63wnNIBROHeqi3p9t0ml\r"]
[100.781091, "o", "WaIHEacj63wnNIBROHeqi3p9t0mm\r"]
[100.902855, "o", "WaIHEacj63wnNIBROHeqi3p9t0mn\r"]
[101.020696, "o", "WaIHEacj63wnNIBROHeqi3p9t0mo\r"]
[101.131869, "o", "WaIHEacj63wnNIBROHeqi3p9t0mp\r"]
[101.251713, "o", "WaIHEacj63wnNIBROHeqi3p9t0mq\r"]
[101.369188, "o", "WaIHEacj63wnNIBROHeqi3p9t0mr\r"]
[101.47791, "o", "WaIHEacj63wnNIBROHeqi3p9t0ms\r"]
[101.5864, "o", "WaIHEacj63wnNIBROHeqi3p9t0mt\r"]
[101.71143, "o", "WaIHEacj63wnNIBROHeqi3p9t0mu\r"]
[101.827447, "o", "WaIHEacj63wnNIBROHeqi3p9t0mv\r"]
[101.942925, "o", "WaIHEacj63wnNIBROHeqi3p9t0mw\r"]
[102.068938, "o", "WaIHEacj63wnNIBROHeqi3p9t0mx\r"]
[102.191378, "o", "WaIHEacj63wnNIBROHeqi3p9t0my\r"]
[102.301813, "o", "WaIHEacj63wnNIBROHeqi3p9t0mz\r"]
[102.410637, "o", "WaIHEacj63wnNIBROHeqi3p9t0mA\r"]
[102.54169, "o", "WaIHEacj63wnNIBROHeqi3p9t0mB\r"]
[102.656134, "o", "WaIHEacj63wnNIBROHeqi3p9t0mC\r"]
[102.770313, "o", "WaIHEacj63wnNIBROHeqi3p9t0mD\r"]
[102.885243, "o", "WaIHEacj63wnNIBROHeqi3p9t0mE\r"]
[102.999158, "o", "WaIHEacj63wnNIBROHeqi3p9t0mF\r"]
[103.112292, "o", "WaIHEacj63wnNIBROHeqi3p9t0mG\r"]
[103.225335, "o", "WaIHEacj63wnNIBROHeqi3p9t0mH\r"]
[103.339264, "o", "WaIHEacj63wnNIBROHeqi3p9t0mI\r"]
[103.448769, "o", "WaIHEacj63wnNIBROHeqi3p9t0mJ\r"]
[103.656135, "o", "WaIHEacj63wnNIBROHeqi3p9t0mK\r"]
[103.771612, "o", "WaIHEacj63wnNIBROHeqi3p9t0mL\r"]
[103.885581, "o", "WaIHEacj63wnNIBROHeqi3p9t0mM\r"]
[104.005395, "o", "WaIHEacj63wnNIBROHeqi3p9t0mN\r"]
[104.124079, "o", "WaIHEacj63wnNIBROHeqi3p9t0mO\r"]
[104.239434, "o", "WaIHEacj63wnNIBROHeqi3p9t0mP\r"]
[104.352601, "o", "WaIHEacj63wnNIBROHeqi3p9t0mQ\r"]
[104.466115, "o", "WaIHEacj63wnNIBROHeqi3p9t0mR\r"]
[104.576828, "o", "WaIHEacj63wnNIBROHeqi3p9t0mS\r"]
[104.691093, "o", "WaIHEacj63wnNIBROHeqi3p9t0mT\r"]
[104.804355, "o", "WaIHEacj63wnNIBROHeqi3p9t0mU\r"]
[104.909589, "o", "WaIHEacj63wnNIBROHeqi3p9t0mV\r"]
[105.028598, "o", "WaIHEacj63wnNIBROHeqi3p9t0mW\r"]
[105.169417, "o", "WaIHEacj63wnNIBROHeqi3p9t0mX\r"]
[105.284342, "o", "WaIHEacj63wnNIBROHeqi3p9t0mY\r"]
[105.398273, "o", "WaIHEacj63wnNIBROHeqi3p9t0mZ\r"]
[105.511249, "o", "WaIHEacj63wnNIBROHeqi3p9t0m0\r"]
[105.629402, "o", "WaIHEacj63wnNIBROHeqi3p9t0m1\r"]
[105.750983, "o", "WaIHEacj63wnNIBROHeqi3p9t0m2\r"]
[105.865764, "o", "WaIHEacj63wnNIBROHeqi3p9t0m3\r"]
[105.995437, "o", "WaIHEacj63wnNIBROHeqi3p9t0m4\r"]
[106.109996, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5\r"]
[106.238878, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5a\r"]
[106.354383, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5b\r"]
[106.465166, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5c\r"]
[106.574389, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5d\r"]
[106.694287, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5e\r"]
[106.81056, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5f\r"]
[106.968627, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5g\r"]
[107.163355, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5h\r"]
[107.280714, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5i\r"]
[107.401439, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5j\r"]
[107.540477, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5k\r"]
[107.653687, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5l\r"]
[107.79548, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5m\r"]
[107.912701, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5n\r"]
[108.025991, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5na\r"]
[108.134131, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nb\r"]
[108.24212, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nc\r"]
[108.3581, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nd\r"]
[108.472376, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5ne\r"]
[108.598352, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nf\r"]
[108.708879, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5ng\r"]
[108.822847, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nh\r"]
[108.9362, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nha\r"]
[109.056791, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhb\r"]
[109.168738, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhc\r"]
[109.280796, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhd\r"]
[109.39064, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhe\r"]
[109.505713, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhf\r"]
[109.618462, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhg\r"]
[109.757837, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhh\r"]
[109.917552, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhi\r"]
[110.080528, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhj\r"]
[110.288417, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhk\r"]
[110.403705, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhl\r"]
[110.518902, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhm\r"]
[110.647548, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhma\r"]
[110.769018, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmb\r"]
[110.923544, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmc\r"]
[111.066284, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmd\r"]
[111.186248, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhme\r"]
[111.305981, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmf\r"]
[111.417305, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmg\r"]
[111.531663, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh\r"]
[111.645435, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmha\r"]
[111.757333, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhb\r"]
[111.871789, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhc\r"]
[111.985815, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhd\r"]
[112.096496, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhe\r"]
[112.420086, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhf\r"]
[112.562942, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhg\r"]
[112.670804, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhh\r"]
[112.782681, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhi\r"]
[112.901662, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhj\r"]
[113.013113, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhk\r"]
[113.129113, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhl\r"]
[113.24117, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhm\r"]
[113.351367, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhn\r"]
[113.4702, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmho\r"]
[113.58122, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhp\r"]
[113.694052, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhq\r"]
[113.806747, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhr\r"]
[113.920761, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhs\r"]
[114.036549, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmht\r"]
[114.175399, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhu\r"]
[114.287062, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhv\r"]
[114.404998, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhw\r"]
[114.53895, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhx\r"]
[114.667972, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhy\r"]
[114.809763, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhz\r"]
[114.92051, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhA\r"]
[115.036659, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhB\r"]
[115.145543, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhC\r"]
[115.255593, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhD\r"]
[115.406741, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhE\r"]
[115.521245, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhF\r"]
[115.638502, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhG\r"]
[115.7614, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhH\r"]
[115.877822, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhI\r"]
[115.990451, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhJ\r"]
[116.106667, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhK\r"]
[116.236325, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhL\r"]
[116.351852, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhM\r"]
[116.467964, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhN\r"]
[116.58084, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhO\r"]
[116.690103, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhP\r"]
[116.820359, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhQ\r"]
[116.968091, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhR\r"]
[117.11214, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhS\r"]
[117.276912, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhT\r"]
[117.392146, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhU\r"]
[117.571671, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhV\r"]
[117.681953, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhW\r"]
[117.791551, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhX\r"]
[117.903702, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhY\r"]
[118.01898, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmhZ\r"]
[118.147232, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh0\r"]
[118.257858, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh1\r"]
[118.371968, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh2\r"]
[118.491103, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh3\r"]
[118.621615, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh4\r"]
[118.732378, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh5\r"]
[118.862697, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh6\r"]
[118.984901, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh7\r"]
[119.100212, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh8\r"]
[119.217738, "o", "WaIHEacj63wnNIBROHeqi3p9t0m5nhmh9\rWaIHEacj63wnNIBROHeqi3p9t0m5nhmh \r\n"]
[119.223245, "o", "pappy\u0001\u001b[33m\u0002> \u0001\u001b[0m\u0002"]
[121.816272, "o", "\u001b[0m"]
[121.858093, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[121.889572, "o", "\u001b[?1004h"]
[122.082478, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[44m \u001b[30m  Projects  natas \u001b[49m\u001b[37m\u001b[00m\u001b[34m\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m⁣\u001b[K\u001b[111C\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m\u001b[111D"]
[122.082873, "o", "\u001b[5 q"]
[122.083358, "o", "\u001b[5 q"]
[122.084297, "o", "\u001b[?1h\u001b="]
[122.085432, "o", "\u001b[?2004h"]
[122.343785, "o", "\u001b[?2004l\r\r\n"]

BIN
assets/pappy/password-brute.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
assets/prompt/focus.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

97
assets/rev-shell/reverse-shell.cast

@ -0,0 +1,97 @@
{"version": 2, "width": 122, "height": 59, "timestamp": 1591023257, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
[0.010627, "o", "\u001b[5 q"]
[0.01119, "o", "\u001b]4;0;rgb:1d/20/21\u001b\\\u001b]4;1;rgb:fb/49/34\u001b\\\u001b]4;2;rgb:b8/bb/26\u001b\\\u001b]4;3;rgb:fa/bd/2f\u001b\\\u001b]4;4;rgb:83/a5/98\u001b\\\u001b]4;5;rgb:d3/86/9b\u001b\\\u001b]4;6;rgb:8e/c0/7c\u001b\\\u001b]4;7;rgb:d5/c4/a1\u001b\\\u001b]4;8;rgb:66/5c/54\u001b\\\u001b]4;9;rgb:fb/49/34\u001b\\\u001b]4;10;rgb:b8/bb/26\u001b\\\u001b]4;11;rgb:fa/bd/2f\u001b\\\u001b]4;12;rgb:83/a5/98\u001b\\\u001b]4;13;rgb:d3/86/9b\u001b\\\u001b]4;14;rgb:8e/c0/7c\u001b\\\u001b]4;15;rgb:fb/f1/c7\u001b\\\u001b]4;16;rgb:fe/80/19\u001b\\\u001b]4;17;rgb:d6/5d/0e\u001b\\\u001b]4;18;rgb:3c/38/36\u001b\\\u001b]4;19;rgb:50/49/45\u001b\\\u001b]4;20;rgb:bd/ae/93\u001b\\\u001b]4;21;rgb:eb/db/b2\u001b\\\u001b]10;rgb:d5/c4/a1\u001b\\\u001b]11;rgb:1d/20/21\u001b\\\u001b]12;7\u001b\\"]
[0.088068, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[0.111666, "o", "\u001b[?1004h"]
[0.222681, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[44m \u001b[30m \u001b[49m\u001b[37m\u001b[00m\u001b[34m\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m⁣\u001b[K\u001b[116C\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m\u001b[116D"]
[0.222999, "o", "\u001b[5 q"]
[0.223593, "o", "\u001b[5 q"]
[0.224508, "o", "\u001b[?1h\u001b="]
[0.225888, "o", "\u001b[?2004h"]
[0.653773, "o", "\u001b[1m\u001b[31mn\u001b[0m\u001b[39m\u001b[90mc -lvnp 4444\u001b[39m\u001b[12D"]
[0.715379, "o", "\b\u001b[0m\u001b[32mn\u001b[32mc\u001b[39m"]
[1.183971, "o", "\u001b[39m \u001b[39m-\u001b[39ml\u001b[39mv\u001b[39mn\u001b[39mp\u001b[39m \u001b[39m4\u001b[39m4\u001b[39m4\u001b[39m4"]
[1.446216, "o", "\u001b[?1l\u001b>"]
[1.449347, "o", "\u001b[?2004l"]
[1.458011, "o", "\r\r\n"]
[1.459486, "o", "\u001b[5 q"]
[1.465154, "o", "\u001b[?1004l"]
[1.468709, "o", "Listening on 0.0.0.0 4444\r\n"]
[4.077191, "o", "Connection received on 127.0.0.1 51870\r\n"]
[4.082998, "o", "sh-5.0$ "]
[5.685101, "o", "p"]
[5.91109, "o", "y"]
[6.124298, "o", "t"]
[6.188237, "o", "h"]
[6.335567, "o", "o"]
[6.396019, "o", "n"]
[6.590799, "o", " "]
[6.759803, "o", "-"]
[6.852531, "o", "c"]
[6.930206, "o", " "]
[7.866017, "o", "'"]
[8.109001, "o", "i"]
[8.253435, "o", "m"]
[8.381997, "o", "p"]
[8.515866, "o", "o"]
[8.637957, "o", "r"]
[8.663153, "o", "t"]
[9.413798, "o", " "]
[9.514598, "o", "p"]
[9.739548, "o", "t"]
[9.850342, "o", "y"]
[10.387176, "o", ";"]
[10.535847, "o", " "]
[10.658542, "o", "p"]
[10.891197, "o", "t"]
[11.006384, "o", "y"]
[11.357107, "o", "."]
[11.671752, "o", "s"]
[11.875899, "o", "p"]
[12.077258, "o", "a"]
[12.297662, "o", "w"]
[12.411224, "o", "n"]
[13.250654, "o", "("]
[13.460459, "o", "\""]
[14.358715, "o", "/"]
[14.599401, "o", "b"]
[14.655787, "o", "i"]
[14.727939, "o", "n"]
[14.942566, "o", "/"]
[15.157211, "o", "b"]
[15.347137, "o", "a"]
[15.559204, "o", "s"]
[15.597834, "o", "h"]
[16.70838, "o", "\""]
[16.780863, "o", ")"]
[18.121027, "o", "'"]
[18.81927, "o", "\r\n"]
[18.820547, "o", "python -c 'import pty; pty.spawn(\"/bin/bash\")'\r\n"]
[18.863345, "o", "bash: /home/jonathan/.dotfiles/shells/aliases: No such file or directory\r\r\nbash: /home/jonathan/.dotfiles/shells/functions: No such file or directory\r\r\n"]
[18.880476, "o", "\u001b[H\u001b[2J\u001b[3J"]
[18.981871, "o", "\u001b]0;jonathan@jonathanhodgson-laptop:/\u0007"]
[18.982154, "o", "\u001b]0;jonathan@jonathanhodgson-laptop: /\u0007\u001b[48;5;240m\u001b[38;5;250m\u001b[48;5;240m jonathan \u001b[48;5;237m\u001b[38;5;240m\u001b[38;5;250m\u001b[48;5;237m / \u001b[48;5;124m\u001b[38;5;237m\u001b[38;5;254m\u001b[48;5;124m  \u001b[48;5;236m\u001b[38;5;124m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m "]
[25.099666, "o", "^Z"]
[25.100201, "o", "\r\nzsh: suspended nc -lvnp 4444\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[25.184509, "o", "\u001b[?1004h"]
[25.382763, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[44m \u001b[30m \u001b[49m\u001b[37m\u001b[00m\u001b[34m\u001b[49m\u001b[37m\u001b[00m\u001b[49m\u001b[37m\u001b[00m⁣\u001b[K\u001b[110C\u001b[49m\u001b[37m\u001b[00m \u001b[31m-\u001b[00m\u001b[01;31m148\u001b[00m\u001b[31m-\u001b[00m\u001b[49m\u001b[37m\u001b[00m\u001b[116D"]
[25.383048, "o", "\u001b[5 q"]
[25.383524, "o", "\u001b[5 q"]
[25.384242, "o", "\u001b[?1h\u001b="]
[25.385297, "o", "\u001b[?2004h"]
[25.921348, "o", "[1] continued nc -lvnp 4444\n"]
[27.435219, "o", "stty rows 59 cols 122\r\n\r export TERM=\"xterm-256color\"\r\n\r"]
[28.19776, "o", "\u001b[A\r\n"]
[28.304585, "o", "\u001b]0;jonathan@jonathanhodgson-laptop:/\u0007"]
[28.396087, "o", "\u001b]0;jonathan@jonathanhodgson-laptop:/\u0007"]
[28.478125, "o", "\u001b]0;jonathan@jonathanhodgson-laptop:/\u0007\u001b]0;jonathan@jonathanhodgson-laptop: /\u0007\u001b[48;5;240m\u001b[38;5;250m\u001b[48;5;240m jonathan \u001b[48;5;237m\u001b[38;5;240m\u001b[38;5;250m\u001b[48;5;237m / \u001b[48;5;124m\u001b[38;5;237m\u001b[38;5;254m\u001b[48;5;124m  \u001b[48;5;236m\u001b[38;5;124m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m "]
[29.070472, "o", "l"]
[29.132573, "o", "s"]
[29.29781, "o", "\r\n"]
[29.302113, "o", "bin boot dev\tetc home lib\tlib64 lost+found media mnt opt proc root\trun sbin srv\tsys tmp usr var\r\n"]
[29.426522, "o", "\u001b]0;jonathan@jonathanhodgson-laptop:/\u0007"]
[29.42666, "o", "\u001b]0;jonathan@jonathanhodgson-laptop: /\u0007\u001b[48;5;240m\u001b[38;5;250m\u001b[48;5;240m jonathan \u001b[48;5;237m\u001b[38;5;240m\u001b[38;5;250m\u001b[48;5;237m / \u001b[48;5;124m\u001b[38;5;237m\u001b[38;5;254m\u001b[48;5;124m  \u001b[48;5;236m\u001b[38;5;124m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m "]
[31.708368, "o", "exit\r\n"]
[31.725334, "o", "sh-5.0$ "]
[31.945243, "o", "exit\n"]
[32.551323, "o", "\u001b[?2004l\r\n"]

BIN
assets/rev-shell/reverse-shell.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
assets/word-complete/currentWordComplete.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
assets/wordpress/login-username-enumeration.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

2
build.sh

@ -12,7 +12,7 @@ blog(){
find content/ -type f -name '*.md' $newer | while read file; do
newFileName=$(getBlogSlug "$file")
mkdir -p "public_html/${newFileName%/*}"
pandoc --template=templates/blog.html -f markdown -t html5 "$file" > "public_html/$newFileName"
pandoc --template=templates/blog.html -f markdown -t html5 -M comments "$file" > "public_html/$newFileName"
done
touch tmp/lastBlogUpdate
}

1
content/blog/001-fuzzy-search-hashcat-modes.md

@ -4,6 +4,7 @@ tags:
- Pentesting
- FZF
- Linux
- ZSH
description: Hashcat is an amazing tool for cracking hashes but the syntax leaves a bit to be desired. This article explains one way to improve the experience of selecting modes by overriding ZSH's built in tab-completion using FZF.
date: 2020-02-24
---

3
content/blog/002-the-switch-to-zsh.md

@ -3,6 +3,7 @@ title: The switch to ZSH
tags:
- Pentesting
- Linux
- ZSH
description: ZSH is great shell but in this blog I explain some of the annoyances I've had with it, as well as some of the benefits.
date: 2020-02-29
---
@ -62,3 +63,5 @@ If you try this in ZSH, it won't work. Why? Because ZSH's implementation resets
```zsh
stty raw -echo; fg <enter><enter>
```
[Read more about upgrading shells](/blog/upgrading-reverse-shells.html)

8
content/blog/003-exchange-mutt.md

@ -5,11 +5,15 @@ tags:
- Vim
- Mutt
- FZF
description: Like many organisations, the company I work at uses an Exchange server for email and calendar. My preferred email client is NeoMutt. I use Davmail to make these two work together.
description: Many companies use an Exchange server for email and calendar. My preferred email client is NeoMutt. You can use Davmail to make these two work together.
date: 2020-03-10
---
[Mutt](http://www.mutt.org/) is an extremely powerful, vim like email client. Unfortunately, like many, the company I work for uses Exchange for email and calenders. As a Linux user, I can't (and don't want) to install outlook and I don't want to have to open a web browser, every time I want to check an email. My mission was to find a way to manage my work emails using Mutt.
**Update:** Although everything in this post is (to the best of my knowledge)
correct, a more comprehensive setup guide for mutt and exchange can be found
here: <https://jonathanh.co.uk/blog/mutt-setup.html>.
[Mutt](http://www.mutt.org/) is an extremely powerful, vim like email client. If your company uses Exchange for email and calenders, you may have a hard time making them work together. As a Linux user, I can't (and don't want) to install outlook and I don't want to have to open a web browser, every time I want to check an email. My mission was to find a way to manage my work emails using Mutt.
For the purpose of this blog, I assume that you cannot connect to the Exchange server directly with IMAP or SMTP. If you are unsure, check at `yourdomain.com/owa/#path=/options/popandimap`. If you can use IMAP natively, use it.

6
content/blog/004-tools-that-make-my-life-easier.md

@ -61,9 +61,9 @@ This results in
Using your shell as a programming language could easily make a blog post by itself. When that is paired with the fact that you can write these as scripts in separate files (shell scripts) and call them on demand as needed makes this the single largest productivity boost for me. A lot of common tasks can be automated with shell scripts. Here are a few of my favourite:
* [Organise photos into portrait or landscape folders](https://git.jonathanh.co.uk/Jab2870/dotfiles/blob/master/bin/.bin/images/lanPortImages)
* [Add up the length of all audio tracks in a folder](https://git.jonathanh.co.uk/Jab2870/dotfiles/blob/master/bin/.bin/albumDuration)
* [Encode text in multiple different ways at once](https://git.jonathanh.co.uk/Jab2870/dotfiles/blob/master/bin/.bin/encode)
* [Organise photos into portrait or landscape folders](https://git.jonathanh.co.uk/jab2870/Dotfiles/src/branch/master/bin/.bin/images/lanPortImages)
* [Add up the length of all audio tracks in a folder](https://git.jonathanh.co.uk/jab2870/Dotfiles/src/branch/master/bin/.bin/albumDuration)
* [Encode text in multiple different ways at once](https://git.jonathanh.co.uk/jab2870/Dotfiles/src/branch/master/bin/.bin/encode)
## Vim

2
content/blog/005-keyboard-driven-firefox.md

@ -12,7 +12,7 @@ We spend a lot of time these days in a browser. Given that , I thought it might
Since using Qutebrowser, I have loved having the ability to browse the web from my keyboard. There are times that I use the mouse, but they are rare now. Until recently, I was using [a fork of Vim Vixen](https://git.jonathanh.co.uk/jab2870/Vim-Vixen). This fork didn't do much more than change the colour scheme and I added the ability to set a proxy server using it. However, I have recently been experimenting with [Tridactyl](https://github.com/tridactyl/tridactyl). I plan to write a blog post about it in the near future but if you are looking for a browser plugin to give you Vim-like navigation, both Vim-Vixen and Tridactyl are excellent choices.
I think it is fair to say that Tridactyl does more, that isn't always a benefit though. A tool with fewer features is far more likely to contain serious bugs. However, for me, the ability to easily call external scripts was enough to make the switch.
I think it is fair to say that Tridactyl does more, that isn't always a benefit though. A tool with fewer features is far less likely to contain serious bugs. However, for me, the ability to easily call external scripts was enough to make the switch.
## Custom Stylesheets

4
content/blog/007-mutt-setup.md

@ -11,7 +11,7 @@ My email system is based around my email client of choice, [Mutt](http://www.mut
In this blog post I will document how Mutt and the many surrounding cogs interlock, to get my emails the way I like them. My goals for setting up my email were as follows:
* **Exchange** - Like many companies, my work emails are handled by MS Exchange. Obviously, it is important that I can read my work email.
* **Exchange** - Many companies use Exchange. This post will cater for that situation
* **Offline** - It is fairly common for me to work in remote locations, often resulting in the need to check my emails before I am connected to the internet.
* **Powerful filtering** - I get a lot of emails and keeping them organised can be a lot of work. The more this can be automated, the better.
* **Terminal based** - I spend a lot of time in the terminal. If email can be done in the terminal, I would like to.
@ -506,7 +506,7 @@ After setting the environment variable, you can just run `notmuch setup` and it
After running the setup command, you can simply run `notmuch new` in order to index your emails. Depending on the size of your mailbox, this could take a while.
Once it is done, you can test it out on the command line. The search options here are even more powerful, for a full list type `neomutt help search-terms`. As an example though, the following will show me all messages that contain the word exam in the body that have been sent / received in the past 2 weeks.
Once it is done, you can test it out on the command line. The search options here are even more powerful, for a full list type `notmuch help search-terms`. As an example though, the following will show me all messages that contain the word exam in the body that have been sent / received in the past 2 weeks.
```bash
notmuch search 'body:exam date:-2weeks..now'

149
content/blog/008-current-word-completion.md

@ -0,0 +1,149 @@
---
title: Current Word Completion
date: 2020-05-26
description: ZSH's tab completion is excellent, although limited to completing based on your command. With this, I can also make completions based on my current word.
tags:
- ZSH
- FZF
---
Tab completion is one of the main reasons I decided to make the switch to ZSH. Being able to see descriptions and cycle between options makes finding options a breeze:
![ZSH Tab Completion](/assets/switch-to-zsh/zsh-tab-complete.gif)
However, there are times that I would prefer to have completion options based on the current word I have typed, regardless of the command I am running. I suppose this is more like an extension of ZSH's global aliases, but with the ability to choose from multiple options. An example of this is for word lists. There are a lot of commands I use that require word lists and it is a pain to write out the full path before I am able to tab-complete. My solution is what I have been calling Current Word Completion. My current iteration of it relies on [FZF](https://github.com/junegunn/fzf) for the completions, although in the long term, I would like to make it work with ZSH's built in completion system. Here is a demonstration using `wl` for wordlists and `myip` for my local machines ip addresses.
![Current Word Completion](/assets/word-complete/currentWordComplete.gif)
You can see that it doesn't stop ZSH's normal completion from working and it can work multiple times on any command.
As with tab-completion, I have it bound to my tab key.
If all you want to do is implement it yourself, you can find the source code [here](https://git.jonathanh.co.uk/jab2870/Dotfiles/src/branch/master/shells/zsh/includes/currentwordcompletion.zsh). Simply source the file in your `.zshrc` and you should be good to go. You can add new options to the `word_replace` function.
If you are interested in how it works, keep reading.
## Overriding tab key
The tab key is interpreted by the terminal as ctrl+i for [legacy reasons](https://bestasciitable.com/). That is why I am binding to `^I`.
The code below will check what ctrl+i is currently bound to and store it. This means we can override the tab key in such a way that if we are not on a word that should be expanded, we can fall back to whatever tab used to do.
We then bind ctrl+i to a new function that will spawn a notification and then run whatever ctrl+i used to be bound to.
```zsh
currentwordcomplete(){
notify-send "Yay, it works"
zle ${currentword_default_completion:-expand-or-complete}
}
# Record what ctrl+i is currently set to
# That way we can call it if currentword_default_completion doesn't result in anything
[ -z "$currentword_default_completion" ] && {
binding=$(bindkey '^I')
[[ $binding =~ 'undefined-key' ]] || currentword_default_completion=$binding[(s: :w)2]
unset binding
}
zle -N currentwordcomplete
bindkey '^I' currentwordcomplete
```
You can check this works by sourcing the file and pushing tab. You should get a notification and then normal tab completion should work.
## Splitting up the current line
The `LBUFFER` variable in a ZSH widget contains a string equal to everything before your cursor in the buffer. We can use expansion built into ZSH to turn that into an array of words.
```zsh
tokens=(${(z)LBUFFER})
```
The `z` flag here will expand the string using shell parsing to split the string into arguments. This takes into account quotes and escaped spaces. Full details can be found in [the documentation](http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags).
This means that we have an array of words. The word we are currently on will be the last:
```zsh
lastWord="${tokens[-1]}"
```
I also get the first argument which is normally going to be the command currently being run. Although I don't use this at the moment, I thought it might be useful to be able to exclude certain commands from completion.
```zsh
cmd="${tokens[1]}"
```
## Word Replace
I have a function called `word_replace` that takes the word that should be replaced and the command, and prints what it should be replaced with. It also returns 0 on success (there was a replacement found).
```zsh
word_replace(){
local ret=1
local word="$1"
local cmd="$2"
case "$word" in
wl) wordlistSelect; return 0 ;;
myip) ip route | grep -oE '(dev|src) [^ ]+' | sed 'N;s/\n/,/;s/src //;s/dev //' | awk -F',' '{print $2 " " $1}' | sort -u | fzf -1 --no-preview | cut -d' ' -f1; return 0 ;;
esac
return "$ret"
}
```
In this case, it is a simple switch statement. An interesting side note is the use of `-1` in the FZF command for `myip`. This will prevent FZF from running if there is only 1 option fed to it. So, if I am only connected on one interface, it will simply fill my ip address rather than prompting me to choose one.
Obviously, the logic used here could be as simple or complex as you wish.
## Getting the completion
Inside the `currentwordcomplete` function, I get the output of the `word_replace` function which is passed the current word. If that doesn't result in a completion, I will run the `word_replace` function again, using only the part of the word that comes after an `=` sign (if there is one).
In either case, a variable called swap will contain what the current word should be replaced with.
There will also be a variable called `ret` that will be equal to 0 if the replacement should be made.
```zsh
currentwordcomplete(){
...
# Check we haven't pushed space
if [ "${LBUFFER[-1]}" != " " ]; then
swap="$(word_replace "$lastWord" "$cmd")"
ret="$?"
# This part checks if the part after an = is completable
if [ "$ret" -ne "0" ]; then
local afterEqual="${lastWord##*=}"
local beforeEqual="${lastWord%=*}"
# If they are different, there is an equals in the word
if [ "$afterEqual" != "$lastWord" ]; then
swap="${beforeEqual}=$(word_replace "$afterEqual" "$cmd")"
ret="$?"
fi
fi
fi
...
}
```
## Making the change
Finally, I check if the completion should be made. If it shouldn't, I call whatever function the tab key used to be bound to. If it should, I change the last item of the tokens array that we created earlier. I then set the LBUFFER variable to the changed string.
```zsh
if [ "$ret" -eq "0" ]; then
if [ -n "$swap" ]; then
tokens[-1]="$swap"
LBUFFER="${tokens[@]}"
fi
zle reset-prompt
return 0
else
zle ${currentword_default_completion:-expand-or-complete}
return
fi
```
## Conclusion
This is a relatively un-intrusive addition to ZSH that I use most days. I don't use a huge number of these but the two I mentioned here, word lists and my ip, I use a lot.
You can find the [full source here](https://git.jonathanh.co.uk/jab2870/Dotfiles/src/branch/master/shells/zsh/includes/currentwordcompletion.zsh). If you are interested in my full [ZSH config is here](https://git.jonathanh.co.uk/jab2870/Dotfiles/src/branch/master/shells/zsh/).

230
content/blog/009-upgrading-reverse-shells.md

@ -0,0 +1,230 @@
---
title: Upgrading reverse shells
date: 2020-06-01
description: Once you've got a reverse shell, there are a number of things you can do to make it nicer to work with. I go through those and at the end, automate the annoying bit with zsh.
tags:
- ZSH
- Pentesting
- Linux
---
So, you've managed to get a reverse shell through one means or another. Unfortunately, it's pretty basic. You can't use your arrow keys, the line gets overwritten if your command is too long and you can't backspace properly. All in all, it's not a nice experience.
## Pseudo terminal
The first thing I like to do is spawn a TTY. This tells terminal tools that they can be run interactively. For example, if you run `ls` in a normal terminal, you are likely to see it output the files in columns:
```bash
localhost$ ls
burppro Desktop GitRepos Pictures
'Calibre Library' Documents go Templates
Contacts Downloads Music Videos
```
However, in your reverse shell, you won't see the output in columns
```bash
reverseshell$ ls
burppro
'Calibre Library'
Contacts
Desktop
Documents
Downloads
GitRepos
go
Music
Pictures
Templates
Videos
```
This is because in the first instance, ls "knows" that it is being used in an interactive session. However, in the reverse shell, ls doesn't know that it is being used interactively, so it gives the most simple output possible. If you were to pipe ls to another program, it would do the same.
```bash
localhost$ ls | cat
burppro
'Calibre Library'
Contacts
Desktop
Documents
Downloads
GitRepos
go
Music
Pictures
Templates
Videos
```
This is why you can use ls with tools like `grep` without worrying about joining all the columns.
It is possible to spawn a tty (or at least a pseudo tty) with python2 or 3 with the same command:
```bash
python 'import pty; pty.spawn("/bin/bash")'
python2 'import pty; pty.spawn("/bin/bash")'
python3 'import pty; pty.spawn("/bin/bash")'
```
On most Linux boxes you come across, one of these should work. If `/bin/bash` isn't available, you could try `/bin/sh`, although this is more limited than bash.
## Setting the window size
On our reverse shell, the width and height are not set and, as a result, default to 80x24. This is usable, but not particularly nice. To change it, we will background the reverse shell and take a note of the actual terminal size.
To background, simply press ctrl+z.
```bash
reverseshell$ ^Z
zsh: suspended nc -lvnp 4444
localhost$
```
To get the current size of your terminal window (in rows and columns), you can run the command:
```bash
localhost$ stty -a
speed 38400 baud; rows 59; columns 136; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
```
The important part here is on the first line, in this example, I have 59 rows and 136 columns. Your values are likely to be different.
We could foreground the session by typing `fg<enter><enter>` and running the command
```bash
stty rows 59 columns 136
```
However, while we have the session backgrounded, there is some more stuff we can do.
## Special keys and correct size
Special key codes, such as escape and key cords that begin with ctrl won't work. This makes using programs like vim almost impossible.
In order to rectify this, we need to make our local shell send the raw characters through netcat. Hopefully, you still have the netcat session backgrounded, if not, you can just push ctrl+z again.
We can then run the following command in order to make our shell pass the raw characters and prevent it from echoing those characters.
```bash
stty raw -echo
```
In order to get the reverse shell back, type `fg<enter><enter>`, although you won't see this on the screen as we have asked the terminal not echo commands (that is what the `-echo` does).
:::{.tip}
If your local shell is zsh, you will have to run the fg command before the prompt is re-drawn, otherwise the `-echo` option will be reset. If you are interested in why, read about it [here](https://www.zsh.org/mla/workers/2014/msg00870.html).
The remediation is simply this:
```zsh
stty raw -echo; fg<enter><enter>
```
:::
We now simply need to tell the shell running on the remote server what the window size is. This is done with another stty command:
```bash
stty rows 59 columns 136
```
By this point, you should have a pretty nice terminal. You can use programs such as vim or tmux that take over the whole terminal and rely on being able to hijack specific keys.
## Terminfo
Teaminfo is a database that describes the capabilities of terminals. This covers things like the ability to display colour or italics.
It is unlikely that your specific terminal has entries in the servers terminfo database, so a good choice is to set your `TERM` variable to `xterm-256color`.
This is a common setting that is very likely to be on servers, it also enables a lot of the capabilities that most people want out of a terminal, including colour support.
To do so, run:
```bash
EXPORT TERM="xterm-256color"
```
## Making it easier
By this point you should have quite a nice terminal to use. You can use your arrow keys, vim, tmux (if it's installed) and just about anything else. Importantly, you will also be able to use sudo or su which can ask for user input whilst running.
However, I would like to share with you my method that automates a significant part of this. You will need to be using zsh on your host machine for this to work. It may be possible in bash, I have just never spent the time trying to implement it.
Firstly, I took and adapted the [widget used by Greg Hurrell](https://github.com/wincent/wincent/blob/d6c52ed5528f353e652799e50d0e9250f1bec6ce/aspects/dotfiles/files/.zshrc#L280-L289) uses to foreground tasks with `ctrl+z`.
```zsh
function fg-bg() {
if [[ $#BUFFER -eq 0 ]]; then
fg
fi
}
zle -N fg-bg
bindkey '^Z' fg-bg
```
This means that after pushing ctrl+z to background a task, you can then push ctrl+z again to foreground it.
However, if we have backgrounded netcat, I would like to perform some extra steps. In the code below I check if the program is `nc`, `ncat` or `netcat`.
```zsh
local backgroundProgram="$(jobs | tail -n 1 | awk '{print $4}')"
case "$backgroundProgram" in
"nc"|"ncat"|"netcat")
# Our NC logic needs to go here
;;
*)
fg
;;
esac
```
Inside the netcat case, I get the rows and columns, put the commands that need running on the server on my clipboard and run the `stty raw -echo` command on my host. That looks like this:
```zsh
# Make sure that /dev/tty is given to the stty command by doing </dev/tty
local columns=$(stty -a < /dev/tty | grep -oE 'columns [0-9]+' | cut -d' ' -f2)
local rows=$(stty -a < /dev/tty | grep -oE 'rows [0-9]+' | cut -d' ' -f2)
notify-send "Terminal dimensions" "Rows: $rows\nColumns: $columns\nstty command on clipboard"
echo "stty rows $rows cols $columns
export TERM=\"xterm-256color\"" | xclip -i -selection clipboard
stty raw -echo < /dev/tty; fg
```
Notice that we need to provide the stty command `/dev/tty` as we are not running it interactively.
Put that all together:
```zsh
function fg-bg() {
if [[ $#BUFFER -eq 0 ]]; then
local backgroundProgram="$(jobs | tail -n 1 | awk '{print $4}')"
case "$backgroundProgram" in
"nc"|"ncat"|"netcat")
# Make sure that /dev/tty is given to the stty command by doing </dev/tty
local columns=$(stty -a < /dev/tty | grep -oE 'columns [0-9]+' | cut -d' ' -f2)
local rows=$(stty -a < /dev/tty | grep -oE 'rows [0-9]+' | cut -d' ' -f2)
notify-send "Terminal dimensions" "Rows: $rows\nColumns: $columns\nstty command on clipboard"
echo "stty rows $rows cols $columns
export TERM=\"xterm-256color\"" | xclip -i -selection clipboard
stty raw -echo < /dev/tty; fg
;;
*)
fg
;;
esac
fi
}
zle -N fg-bg
bindkey '^Z' fg-bg
```
There we go. Once you have a reverse shell, you still have to manually type the python command to get a tty. I suggest looking into your terminal emulator's settings to see if you can map the command to a key binding. Once that is done, simply press `ctrl+z` twice, then `enter`. You will be able to paste the stty command in order to set the correct width and height.
![Reverse shell upgraded quickly](/assets/rev-shell/reverse-shell.gif)

207
content/blog/010-wordpress-username-enumeration.md

@ -0,0 +1,207 @@
---
title: Enumerating Users on WordPress
description: |
Finding valid usernames can significantly improve your chances of breaking into a WordPress
account. In this blog post I cover some of the methods I use to find valid users and how you
can protect your own site against them.
date: 2020-09-05
tags:
- Security Advice
- Websites
---
WordPress is an extremely popular Content Management System (CMS) and as a result receives a lot of
interest from hackers. WordPress has a bad reputation in some circles for being insecure, however if
you are selective about the themes / plugins you install and keep it up to date, it is my belief
that it is a nice system for both developers and users.
However, assuming you keep everything up to date, in many cases the biggest security weakness is
your credentials. If a malicious actor guesses your username and password, it doesn't matter how
recently you did your updates, they are probably going to get in.
When I am tasked with testing the security of a WordPress site, one of the first things I do is
attempt to find usernames. In this blog post, I document some of the ways I do that.
:::note
For the purposes of this blog post, I have created a local WordPress site I can use for testing. Do
not attempt these tactics unless you own the site you are testing or have explicit permission from
the site owner to do so.
:::
## Trial and error
![Login form showing valid user](../../assets/wordpress/login-username-enumeration.png)
The most simple way is to attempt to login in with common usernames, `admin` being one of the most