Last active
April 25, 2017 21:25
-
-
Save madidier/26ac9009df1ae435df508af4fcf37c5e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii***i | |
| *i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i | |
| *ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii | |
| ***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii** | |
| *i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii*** | |
| i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i* | |
| i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*i | |
| i***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii* | |
| **i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii** | |
| *i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i | |
| *i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii* | |
| ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii | |
| ***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii* | |
| **i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii** | |
| i*i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii | |
| *ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*i | |
| i***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii | |
| ***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii*ii**i*i*ii***i* | |
| i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii**i*i*ii**i*i* | |
| i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i* | |
| ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii** | |
| i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i* | |
| i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii | |
| **i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i | |
| *i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i | |
| *i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*i | |
| i*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i | |
| *i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i | |
| *i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i | |
| *ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i* | |
| i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii** | |
| *i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i | |
| *i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii* | |
| ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*i | |
| i**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*i | |
| i**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i | |
| *i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i* | |
| i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i | |
| *ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii** | |
| *i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i | |
| *ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i* | |
| i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i* | |
| ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i | |
| *i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii*** | |
| i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i* | |
| i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i* | |
| i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i* | |
| ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i | |
| *i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i | |
| *i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i | |
| *ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i | |
| *i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*i | |
| i**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii | |
| ***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i* | |
| i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*i | |
| i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i | |
| *ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii** | |
| i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i | |
| *i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i | |
| *i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*i | |
| i**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i* | |
| i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i* | |
| i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i* | |
| ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i* | |
| i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii* | |
| i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i* | |
| i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i | |
| *i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i* | |
| i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii** | |
| *i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i* | |
| i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i* | |
| i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*i | |
| i**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii* | |
| **i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii*** | |
| i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii | |
| *i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii** | |
| *i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i | |
| *i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii* | |
| *i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i* | |
| ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i | |
| *i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*i | |
| i**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii* | |
| ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i | |
| *ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i* | |
| i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii | |
| ***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i | |
| *i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii** | |
| i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*i | |
| i**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i | |
| *ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii | |
| **i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i* | |
| ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i | |
| *i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i* | |
| ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i | |
| *i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i* | |
| i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i | |
| *ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*i | |
| i**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii | |
| **i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii* | |
| **i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i | |
| *i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i | |
| *i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii** | |
| i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii | |
| ***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii* | |
| *i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i | |
| *i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii | |
| **i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i | |
| *i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*i | |
| i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii* | |
| *i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii** | |
| i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i* | |
| i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i | |
| *i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii | |
| *ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i* | |
| ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii** | |
| i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii* | |
| **i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*i | |
| i**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*i | |
| i*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i* | |
| ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*i | |
| i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii | |
| *ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii | |
| **i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i* | |
| i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii* | |
| ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*i | |
| i**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i | |
| *i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii* | |
| **i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i | |
| *ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i | |
| *i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i* | |
| i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii** | |
| *i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii | |
| **i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii | |
| *i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*i | |
| i**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i | |
| *ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii | |
| ***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii | |
| **i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i | |
| *i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii | |
| **i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii | |
| *ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*i | |
| i**i*i*ii****i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i* | |
| ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i* | |
| i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i | |
| *ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii*** | |
| i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i* | |
| i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i* | |
| i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii | |
| ***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii* | |
| **i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii** | |
| i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i* | |
| i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii** | |
| *i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*i | |
| i***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii | |
| ***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i* | |
| ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*i | |
| i*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i* | |
| i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i*i* | |
| ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i* | |
| ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii** | |
| *i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i | |
| *i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i | |
| *ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i* | |
| ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i | |
| i***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii | |
| **i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii****i | |
| *i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i* | |
| i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii** | |
| i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i* | |
| i*i*ii**i*i*ii*i*i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii | |
| **i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i | |
| *i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i | |
| *i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*i | |
| i*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i | |
| *i*ii**i*i*ii*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i | |
| *i*ii*ii**i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii**i*i*ii*i*i*ii***i*i*i | |
| *ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii* | |
| ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*i | |
| i***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii | |
| **i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i | |
| *i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i* | |
| i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii | |
| *i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii** | |
| *i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii*** | |
| i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii*ii |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {-# LANGUAGE BangPatterns #-} | |
| module Iota | |
| ( Expr(..) | |
| , run | |
| ) where | |
| import Prelude hiding (succ) | |
| import Control.Monad (void) | |
| import Data.Char (chr, ord) | |
| data Expr | |
| = Iota | |
| | App Expr Expr | |
| instance Show Expr where | |
| show Iota = "i" | |
| show (App f x) = "*" ++ show f ++ show x | |
| run :: Expr -> IO () | |
| run = void . eval . wrapMain . toEval | |
| data Eval | |
| = Iota' | |
| | S | |
| | K | |
| | Eval :$ Eval | |
| | Bind | |
| | Read | |
| | Write | |
| | Zero | |
| | Succ | |
| deriving Eq | |
| infixl 9 :$ | |
| instance Show Eval where | |
| show Iota' = "i" | |
| show S = "s" | |
| show K = "k" | |
| show (f :$ x) = "*" ++ show f ++ show x | |
| show Bind = ">" | |
| show Read = "r" | |
| show Write = "w" | |
| show Zero = "0" | |
| show Succ = "+" | |
| toEval :: Expr -> Eval | |
| toEval Iota = Iota' | |
| toEval (App f x) = toEval f :$ toEval x | |
| wrapMain :: Eval -> Eval | |
| wrapMain e = e :$ Bind :$ Read :$ Write | |
| interpret :: (Eval -> a) -> Eval -> a | |
| interpret go (Iota' :$ x ) = interpret go $ x :$ S :$ K | |
| interpret go (K :$ x :$ _ ) = interpret go x | |
| interpret go (S :$ x :$ y :$ z) = interpret go $ x :$ z :$ (y :$ z) | |
| interpret go (f :$ x ) | f /= f' = interpret go (f' :$ x) where f' = interpret id f | |
| interpret go expr = go expr | |
| eval :: Eval -> IO Eval | |
| eval = interpret go | |
| where | |
| go (Bind :$ x :$ y) = eval x >>= eval . (y :$) | |
| go Read = church . ord <$> getChar | |
| go (Write :$ x ) = write x | |
| go expr = pure expr | |
| write x = case unChurch x of | |
| Just c -> putChar (chr c) *> pure Iota' | |
| Nothing -> error "Write: Not a number" | |
| -- Huge thanks to: | |
| -- http://journal.batard.info/post/2008/03/02/ski-calculus-in-haskell-shell | |
| church :: Int -> Eval | |
| church n = iterate succ zero !! n | |
| where | |
| succ n = S :$ (S :$ (K :$ S) :$ K) :$ n | |
| zero = K :$ (S :$ K :$ K) | |
| unChurch :: Eval -> Maybe Int | |
| unChurch expr = interpret (go 0) (expr :$ Succ :$ Zero) | |
| where | |
| go !acc Zero = Just acc | |
| go !acc (Succ :$ x) = interpret (go (acc + 1)) x | |
| go _ x = Nothing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| **i*i*ii**i*i*ii***i*i*i*ii*ii**i*i*ii****i*i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii | |
| *i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*i | |
| i**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i | |
| *ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii*** | |
| i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii*ii***i*i*i*ii**i*i*ii*i* | |
| i*ii***i*i*i*ii*ii**i*i*ii**i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i* | |
| i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii | |
| ***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii* | |
| *i*i*ii*i*i*ii*ii**i*i*ii*ii***i*i*i*ii**i*i*ii**i*i*i*ii***i*i*i*ii**i*i*ii*i*i | |
| *i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i* | |
| i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii**i*i*i*ii**i*i*ii*i*i | |
| *ii***i*i*i*ii***i*i*i*ii**i*i*ii*i*i*i*ii***i*i*i*ii**i*i*ii*i*i*ii*ii**i*i*ii* | |
| ii**i*i*ii**i*i*ii*ii |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment