Last active
April 25, 2017 21:25
-
-
Save madidier/26ac9009df1ae435df508af4fcf37c5e to your computer and use it in GitHub Desktop.
This file contains 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 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 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