From da6d6e5d43b7ccd9f22e3bbb5d500286498e852b Mon Sep 17 00:00:00 2001 From: Daniel Heath Date: Wed, 31 Jan 2018 09:33:23 +1100 Subject: [PATCH] Avoid overwriting others work (fix #107) --- bindata.go | 4 ++-- handlers.go | 6 +++++- page.go | 8 ++++++++ templates/index.tmpl | 5 ++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/bindata.go b/bindata.go index f91b140..b38212a 100644 --- a/bindata.go +++ b/bindata.go @@ -950,7 +950,7 @@ func staticTextSitemapXml() (*asset, error) { return a, nil } -var _templatesIndexTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3d\xed\x72\xdb\x38\x92\xff\x53\x95\x77\xe8\x30\xde\x91\xbc\x91\x48\xcb\x13\x27\x13\xc5\xd2\xdc\x9c\x9d\xad\xc9\x9d\xd7\x49\xc5\x9e\xad\xda\xda\xdb\xba\x85\xc8\x96\x88\x18\x04\xb8\x00\x28\xc9\x71\xf9\xdd\xaf\x00\x92\x12\x25\x91\x14\x2d\x3b\x99\xcc\x95\xf5\x23\x96\xf0\xd1\xdf\xe8\x6e\x34\x48\xe4\xf8\xd9\xe9\x87\x93\xcb\xbf\x7f\x7c\x07\xa1\x8e\xd8\xf0\xe9\x93\xe3\xec\xef\xd3\x27\x00\x00\xc7\x21\x92\x60\x98\x7e\xb7\xbf\x23\xd4\x04\x42\xad\xe3\x2e\xfe\x3b\xa1\xd3\x81\xe3\x0b\xae\x91\xeb\xae\xbe\x8e\xd1\x81\xec\xd7\xc0\xd1\x38\xd7\x9e\x01\xf5\x16\xfc\x90\x48\x85\x7a\xf0\xdb\xe5\x5f\xba\x3f\x39\x1b\xc0\x38\x89\x70\xe0\x4c\x29\xce\x62\x21\x75\x01\xc4\x8c\x06\x3a\x1c\x04\x38\xa5\x3e\x76\xed\x8f\x0e\x50\x4e\x35\x25\xac\xab\x7c\xc2\x70\xd0\x5b\x81\xc6\x28\xbf\x02\x89\x6c\xe0\x90\x38\x66\xd8\xd5\x22\xf1\xc3\x2e\xf5\x05\x77\x40\xd1\x2f\xa8\x06\xce\xd1\xeb\xf9\xd1\x6b\x07\x42\x89\xe3\x81\xa7\x34\xd1\xd4\xf7\x68\x34\xf1\x7c\x31\xbb\x16\x5e\x3a\xcd\x4c\xe8\xda\x81\x6e\xcc\x27\x77\x44\xf0\xea\x60\xfe\xea\xa0\x12\x41\x29\x2a\x3b\x65\x07\x54\xaf\x0f\xe7\xaf\x0f\x9b\xf0\x62\x07\xee\x82\xe0\xd5\xfc\xf5\xab\x46\x08\xcc\xc0\x1d\x10\xf4\x7a\x2f\xe7\xbd\xde\xcb\x26\x28\xb2\xa1\xbb\x20\x39\x3c\x98\xf7\x0e\xab\x75\x52\x44\x92\x0e\xdd\x05\xc9\xcb\x97\xf3\xde\xcb\x66\x9c\xa4\x43\x77\x41\x72\x74\x38\xef\x1d\x35\x52\x79\x36\x74\x17\x24\x3f\x1d\xcc\x7b\x3f\x35\x13\x57\x3a\xb4\x1a\x49\x0a\xd8\x38\x86\x81\x43\x23\x32\x41\x2f\xe6\x93\x25\xa6\x37\x87\xf3\xde\x9b\x1a\x76\x78\x20\x05\x0d\x32\x5c\xe9\xe0\x5d\x71\xfd\x78\x38\xff\xb1\x1a\xd3\x98\x4c\x2d\x12\x3b\x6a\x57\x14\x6f\x5e\xcd\xdf\x54\xaf\x96\x1c\x85\x1d\xb5\xb3\xc4\x5e\xcd\x7b\xdb\x51\xd8\x51\xd5\x28\x22\xc2\xe9\x18\x95\xae\x84\x93\x0f\x70\x3f\x2b\xc1\x2b\xbc\x75\xa4\x8c\x1d\x50\x9f\x68\x2a\x78\xf7\x92\x32\x3c\x11\x4c\xc8\x82\xf3\x7e\x3e\x1e\x8f\xab\x7c\xfd\xe6\xec\xf7\x86\xd7\xc2\x6c\x2f\x52\x1b\xab\xa5\x0a\x9a\x0e\x31\xc2\xae\x5f\x81\xff\xe9\x93\x9b\x1b\xa0\x63\x20\x3c\x00\xf7\x24\x51\x5a\x44\x27\x17\x17\xe0\x7e\x42\x12\x7c\x24\x13\x84\xdb\xdb\xa7\x4f\x0a\xe2\x51\xfa\x9a\xa1\x0a\x11\x75\xae\x07\x1b\xc9\x7c\xa5\x32\x81\x39\xb9\xc4\x7c\xa5\x3c\xdf\x02\x74\x4d\xef\xd0\x62\x42\xa6\x32\x90\xca\x97\x34\xd6\x45\x18\x9f\xc9\x94\xa4\xad\x0e\x28\xe9\x2f\x21\x7d\x56\xde\xe7\x7f\x27\x28\xaf\xbb\x3d\xf7\x27\xf7\x47\xf7\xb3\x72\x86\xc7\x5e\x3a\x74\x78\x0f\xea\x26\x54\x87\xc9\xa8\x1b\x11\x79\x15\x88\x19\xcf\xc9\xdc\x19\x5e\x84\x3c\x51\xdd\x88\xde\x1f\xd2\x88\x28\x6c\x00\x68\x73\x62\x48\x27\x21\xa3\x93\x50\x2f\x66\x66\x72\x5e\x17\xe8\x72\xa0\x41\xb3\x2e\xd1\xbb\x29\x67\x09\x2b\x26\xfe\xd5\x3a\x30\x03\xce\xd0\xbc\xce\xf6\x30\x37\x3d\xf7\x8c\x2a\xbd\xb0\x35\xef\xcf\xf0\xc9\xa4\x4e\x12\x03\x18\x0b\x09\x8c\x2a\xad\xe0\xcf\xde\xd3\x27\x2a\x26\x1c\x6e\xc0\x4f\xa4\x12\xb2\x0f\xb1\xa0\x5c\xa3\x7c\x0b\xb7\xa9\x65\xf1\xc0\xce\x1f\x89\xe0\x1a\x6e\xd2\xa5\x30\x22\xfe\xd5\x44\x8a\x84\x07\x7d\x30\x06\xff\xf6\xe9\x93\xdb\xa7\x4f\x5c\x95\xf8\x3e\x2a\x95\x8f\xb2\x4b\xa3\x0f\xcf\x8f\xfc\xd1\x4f\x47\xfe\xdb\xb4\x71\x2c\xb8\xee\xce\xd0\x70\xd5\x87\x91\x60\x41\x36\x77\x4c\x28\x4b\x24\xae\xcf\x0d\xde\x1c\xfd\xf8\x72\xbc\x65\x6e\x9c\x48\xec\x1a\x23\x01\xb2\x3e\xff\xf5\xeb\xd7\xd9\xa0\x00\x19\x6a\xca\x27\xf9\x08\x11\x13\x9f\xea\xeb\x3e\x1c\xb8\x47\xe9\x90\xe7\x33\x49\xe2\xbc\x3b\x16\x8a\x1a\x37\xd1\x07\x32\x52\x82\x25\x1a\x33\x22\xb4\x88\xfb\x70\x74\x10\xcf\xb3\xdf\x0c\xc7\xba\x0f\xcb\xdf\x32\x25\x6f\xd9\x30\x12\x5a\x8b\x28\x6f\x31\x78\x62\x12\xe4\x68\xc2\x94\x9b\xde\xc1\xc1\x9f\xd2\xce\x4c\x75\xef\x02\xba\x54\x5d\x51\xf4\x62\x8a\x72\xcc\xc4\xac\x1f\xd2\x20\x40\xbe\x98\x64\xd4\xb4\x18\x6c\x31\x18\x83\x20\x12\x17\x22\xb1\x99\x6c\x1f\x32\x54\x05\xe4\xc5\xa6\x91\x98\x77\x15\xfd\x42\xf9\xc4\x48\x58\x06\x28\xbb\x23\x91\x73\xd2\x8d\xc4\x97\x6e\xfd\x88\x19\x8e\xae\xa8\xae\x1f\x54\x29\xda\x4c\x94\x6b\x82\x5c\x17\x63\x51\x0f\xcb\x4e\x83\x63\xf3\x37\x17\x3c\x07\x2e\x12\xcd\x28\xc7\x95\xb6\x15\x72\x43\x12\x88\xd9\x6a\xf7\x82\xdf\xcd\xbe\x8a\x66\x89\x26\x66\xae\x34\x59\xab\x4d\x5b\x7b\xee\x01\x46\x59\x73\xa6\xe8\x5f\x89\x3a\x15\xfa\x3d\x3f\x27\x51\xaa\xec\xc5\x94\x31\x89\x28\xbb\xee\x83\x73\x96\xf8\x34\x20\x70\x22\xb8\x12\x0c\x9d\x0e\xfc\x55\x70\xe2\x8b\x0e\x44\x82\x0b\x15\x13\x1f\x17\x20\x4d\x18\x28\x05\xd2\xfa\x10\x23\x87\x0b\xc2\x55\xab\xd3\xba\xc0\x89\x40\xf8\xed\x7d\xab\x73\x49\x42\x11\x91\xce\x2f\x92\x12\xd6\x51\x84\xab\xae\x42\x49\xc7\x4b\x12\xf3\xd5\x7f\x6b\xfc\x8d\x9b\x7b\xf4\xae\xb5\xc8\x84\x75\x60\xad\x49\xb0\xc5\xfa\x21\x41\x40\xf9\xa4\x9b\xe9\xd4\xb2\x6d\x81\xfc\x47\x84\x01\x25\xd0\x8e\x28\xef\x66\x26\x79\x84\xd1\x7e\x3e\x2f\xa0\xd3\xe7\x66\x29\x77\xec\x37\x89\x3c\x40\x89\x41\x07\x2a\xcd\x7a\x13\xd9\x61\x6e\xcc\xc5\xae\xcc\x9a\x16\x7d\x99\x90\x0a\xbe\x63\xf9\xb5\x1b\x0a\x49\xbf\x08\xae\x09\x2b\x62\x89\xc8\x3c\xa7\xf8\xc7\x83\xe5\xfa\xde\x80\xd4\x0d\xa8\x22\x23\x66\xa8\x2e\xc2\x44\x62\x08\x59\x69\xb3\xd1\xa7\x8a\x8f\x9e\x7b\xb8\x30\x96\x4d\x4e\x16\x5d\xa9\x72\xca\xa4\x7a\xf0\xb0\x62\xed\x1d\xd4\xc8\x75\xd9\xf9\xf0\xe2\xe8\x83\x7b\x84\x11\xf4\xb6\xb3\xfc\xfa\xa1\x59\x3e\xaa\x63\xf9\xe8\x4f\x2b\xf4\x94\x52\xd4\x3b\x78\x60\x92\x0e\xeb\xb4\x70\x78\xb0\x4a\xd2\xb1\x67\x33\x84\xe1\x4a\x20\x5f\xe4\xb2\x9a\x6a\x86\xc3\x9b\x1b\x70\xb3\x48\x73\xec\xa5\x4d\x79\x11\xc6\x8e\x2a\xa6\x2c\xad\xb5\x94\xa5\x55\x48\x8d\x53\x1f\xcb\x68\x2c\x60\x00\x63\xc2\x14\xbe\x5d\xed\xf4\xbc\xe3\x67\xff\x38\x39\xfd\xe5\xf2\x97\x7f\xac\x76\xec\xb5\x67\x94\x07\x62\xb6\xef\x32\x41\x82\xf6\x38\xe1\xbe\x09\x0f\xed\xfd\xa2\x14\x96\x50\xe0\x13\xea\x44\x72\x05\x04\xf2\xa1\x1d\xd0\x21\xd1\x1d\x20\x0a\x98\xe0\x13\xf3\x97\x6a\x9b\x93\x53\x9e\xa0\x02\x2d\x60\x84\x40\xf9\x54\x5c\x19\x71\xcf\x28\x63\xc0\x85\x2e\x85\x3e\x42\xd0\x92\x4e\x26\x46\x33\x2e\x5c\x86\xb8\xc0\x92\xce\x1b\x21\xf8\x84\x31\x0c\x80\x8c\x35\x4a\x83\x48\x69\x11\x2b\x18\xa1\xc9\x2e\xb2\xbe\xb1\x90\xa5\xd0\xcf\x21\xa2\x8c\x51\x85\xbe\xe0\x81\x72\xe1\xfd\x18\xfe\x45\x23\x6b\x37\x1a\xff\x05\x54\x41\x4c\x94\x32\x44\x66\x44\x80\x2e\x52\x20\xb8\xf9\x5d\x0a\x99\xa5\x0b\x0a\x30\x98\x60\x07\x28\x57\x1a\x49\x00\x62\x6c\x01\x68\x49\x28\xa3\x7c\xe2\x6e\x4e\x5d\xc0\x0e\x70\x24\x12\xee\xa3\x55\x40\x07\x66\x84\xea\x0e\x2c\x68\x2b\x55\x86\xf9\x4c\x89\x04\x4d\x23\x14\x89\x7e\x5b\x3e\x42\x5a\x7d\x41\xbd\x5e\x97\xc6\xd0\x7a\xae\xc8\x14\x4d\x02\xf4\x9f\x89\xd6\x82\xb7\xf6\x5d\x89\x91\x98\xe2\x09\x23\x4a\xb5\xf7\xef\x38\xd7\x98\x6c\xdb\x31\x4d\x94\x4f\x9c\xfd\x0a\x1a\x73\x4e\xec\x3e\x6e\xae\x61\x00\x3a\xa4\xaa\x53\x3d\xd8\x7c\x88\x9c\x28\x18\x98\x3f\x49\x84\x5c\xab\x2d\xb0\x19\x31\xf6\x32\x68\x28\x08\xf3\xc9\xe4\x0a\x03\xe0\x09\x63\x35\xe0\xcd\x87\x8e\xa1\xfd\xac\xa0\x2f\x83\xc6\x35\x1b\xde\xeb\x76\xc6\x55\xc7\x52\x5c\x27\x82\xdb\x6d\xe2\x21\x8c\x9d\x8b\x19\x0c\x96\x86\x01\x3f\xfc\x00\xcf\xea\x0d\xc0\x7c\x7c\x86\x44\x5e\xa6\xc3\xda\xd9\xf0\x3a\x4a\x96\xac\x2b\xd4\xf9\x3c\x2b\xc1\xd4\x34\xeb\xe6\x1a\x49\x64\x94\xde\x5d\x0c\x65\x22\x30\x6d\xa5\x8b\xee\x32\xa4\x2a\x75\x0b\x16\x83\x5d\x6b\xf9\x3a\x02\x1c\x8f\xd1\xd7\xd9\x9a\x85\x2b\xbc\x4e\x62\xc0\x29\xf2\x72\xbf\xf3\x0b\x0f\x8c\x2f\x11\x9c\x5d\xc3\x98\x4a\x54\x70\x74\x70\x10\x29\x10\x12\x42\xc2\xc6\x40\x20\x75\x1a\x99\xdb\x31\x20\x13\x85\xd2\x3a\x9f\x18\x03\xe3\xa0\x29\x9f\x6c\x82\x36\x8b\xc2\x0c\x7c\xcf\xe3\x44\xb7\xf6\x5d\xc1\xdb\x2d\x4b\x4b\xab\xb3\xba\xe4\xeb\x4d\xd2\xc8\x34\x75\xef\x5b\x97\x6f\x11\xdb\x94\xb0\x76\x59\x9b\x59\xd3\x31\x23\x3e\xb6\x3d\xf4\x26\x1d\xc7\xd9\xaf\xd4\x47\x79\xf3\xae\x7e\xa2\xc6\x47\x5c\x90\xa9\x75\x11\xe5\x13\x93\xd8\x46\xa7\x32\x32\x6f\x3b\x26\x55\x76\x4f\x73\xc5\xdf\xde\x5a\x6e\x6a\x7c\x6d\x0e\xac\x4a\x94\x7b\x2e\xf9\x4c\xe6\xed\x1a\x41\x9b\x78\xdc\x87\xd6\xc7\x0f\x17\x97\xad\x1a\x37\x95\x48\xd6\x87\x96\x97\xc4\x01\xd1\x58\x37\x30\x20\x9a\xf4\xe1\xbf\x2e\x3e\x9c\xbb\x4a\x4b\xca\x27\x74\x7c\x5d\x87\xdf\x7c\x38\xce\xfe\xd7\x88\xae\x5f\xaa\xf6\xfd\x2d\xde\x33\x26\x13\xec\x83\x53\xc8\x3f\x9c\x1a\xc7\x54\x07\x2d\xab\x3b\xf4\x97\x9e\xd5\x70\xb3\xd5\xbb\xde\x27\xd4\x40\xb6\x24\x0c\xa2\x45\xdd\x63\x30\x00\x2d\x93\xea\x50\xb9\x15\x39\x09\x82\x14\xb3\x93\x81\xac\x8d\x57\x56\x2e\x69\xe5\xef\xfe\x08\xb3\xfa\xcb\x76\x84\x3b\xc8\xd4\x2e\x2f\x2b\xa9\x08\x95\x22\x13\xac\x0d\x41\x35\x8a\x46\x29\x85\x2c\xa8\x79\x1e\xca\x4e\xda\xf8\xd5\x95\xfd\x40\xe2\xab\x96\x4f\xca\xc6\x8e\x82\xc9\xca\xcf\x97\xd6\x29\x38\x85\x2a\xb7\xf7\x59\x09\xee\x6c\x59\xf7\xe9\xb4\x96\x19\xda\xaa\x70\xc2\xa5\x6e\xaf\xd6\xc5\xc5\x92\x46\xf8\x17\x21\x2f\x90\x8d\x4f\x51\x69\x99\xf8\xfa\xdb\x39\x3c\x8b\xfd\xa1\xfd\xdd\xa3\xc7\x7a\xf4\x58\x65\x08\x1e\x3d\xd6\xdd\x05\xf3\x1d\x7a\x2c\x26\xfc\x2b\xb3\xae\xdb\x66\x0b\x1e\x87\x92\xa8\xea\x85\xf1\xd0\xfe\xca\xe0\xfe\x06\xee\x6a\x6b\x4a\x96\x33\xde\x2f\x7c\x7f\xf4\x71\x8f\x3e\x0e\x6a\x24\x0b\x3f\xfc\x60\x31\xe4\xeb\x27\x87\xbd\x6f\x06\x38\x67\xc2\xbf\x72\x1a\x09\x3f\xad\x02\xba\x4c\xa4\x8e\x00\x06\xe0\x78\x05\xe3\xf5\xa6\x14\x67\xce\xfd\x04\xb1\x1b\x0b\xbf\x71\xf6\x60\x4c\x60\x40\xf5\x3d\x98\x78\x8c\x35\x3b\x08\xe6\x3b\x8c\x35\x71\x32\x62\x54\x85\x36\xdc\x7c\xbb\xa4\x38\x45\xfa\x1d\xc4\x99\x94\x90\xb4\x6e\x50\x10\xc5\xea\xb2\xfb\x98\x76\x3c\xe6\xd8\x8f\xf1\xc7\x7e\x16\x92\xcd\xc6\x67\xbe\x39\xb3\x1f\x0c\x9a\x39\xe8\x0a\x93\x5b\x58\xdb\xc3\xca\xb6\x0c\xd3\x82\xe4\xfb\x88\xf5\x31\x10\xec\x20\x98\xef\x30\x10\x20\xf7\xe5\x75\xac\x7f\xaf\x7d\x47\x86\xfe\x3b\x08\x09\x8f\x5b\x8f\x47\xd7\x5f\xf9\xd9\x96\xb7\x17\x56\xd1\x6a\x0e\xf1\x2e\xed\xf8\xc3\x6c\x40\x2a\x19\x39\xc5\x07\x64\xe4\x71\x13\x72\x57\x30\xff\x2f\x63\x8f\x3d\x93\xff\xc0\x1e\xe2\x1c\xf2\xf4\xdd\xd9\xbb\xcb\x77\x0d\x02\x8e\x60\x01\xa3\xea\x5b\x04\x9c\xc7\xd8\xf1\x18\x3b\xe0\xbe\x92\xdd\xe6\x49\x8d\x2d\xff\x11\x3d\xe9\x2e\x3e\xf0\xd1\x95\x96\x38\xd3\xbd\xb6\x53\x0c\xda\xce\xbe\xeb\x33\xea\x5f\x2d\x9f\xa8\xa9\xb6\x33\x74\x63\x69\x9f\x07\x3a\xc5\x31\x49\x98\xae\xd4\xca\x94\xc8\x42\x4e\x0c\x03\x88\xa5\x88\x62\xb3\x67\x65\x68\x1a\x90\x6b\x94\x40\x0a\x63\x5c\x38\x17\x1a\xfb\x90\xa5\x3f\x94\x4f\xd2\xa7\x94\x52\x1b\x00\xc2\x18\x18\xdc\x54\x24\x0a\x42\xaa\xb4\x90\xd7\xae\xd3\x01\xa7\x52\xa3\x66\x11\x15\x48\x78\x96\x3e\x91\x56\x6b\x88\x15\x3b\x9b\xe6\x8f\xf9\xdc\xa6\x0f\xd1\x54\xc8\xdc\x00\xfb\xaa\x12\x97\x30\x30\x96\x36\xa6\x32\x6a\x3b\xbf\x48\x84\x6b\x91\x80\x4a\xb2\x2f\x33\xc2\x35\x68\x01\x96\x8e\x9f\x6b\xe5\x26\x1b\x79\x9c\xad\x39\x9b\x41\x54\xe5\x6a\xb6\x7b\xee\xb9\x01\xf8\x77\x91\x18\xbd\x2b\x85\x01\x9c\x10\xee\x23\x7b\x56\x09\xf1\x8e\xfa\x50\x85\x63\xfe\x6f\xa7\x96\xe5\xf3\x77\x56\x3c\xf6\xa9\x38\x93\x0a\xd8\x2f\x1c\xe7\xda\x3e\x47\x08\x54\x03\x55\x20\x62\xe4\x18\x74\x80\x54\xe9\x32\x10\xf6\x39\xe2\x87\xd0\x66\xf9\xd3\x0f\xdf\xad\xf6\xf2\x73\x8f\xef\xc4\x7d\x19\x65\xd8\x23\x97\x07\x76\x49\x66\xca\x7d\x4f\xaa\x1e\x20\xb6\x3a\x6b\x00\x9c\xbc\x32\x68\x28\xd8\xf6\x94\x72\xb3\x24\xed\x6b\x52\x99\x1e\x87\x6d\xa5\xb3\xba\xab\xec\xa0\xbd\x06\x92\xe7\xc1\xc7\x0f\x17\x97\x79\x40\xb1\x0b\xbc\x76\xb4\x44\x26\x48\x50\x33\xae\x7a\x79\x94\x89\xa1\x50\xc3\xfd\x6a\xeb\x63\x51\xd2\x06\xa7\xf8\x50\x71\x10\x18\x07\x25\x33\x9f\x26\xac\x5b\x53\x54\x63\x44\x62\x77\x1e\x31\x50\xc2\xf8\xb6\xfc\xbd\x04\xca\x03\x9c\x63\x00\xa3\x6b\x50\x48\xa4\x1f\x02\xf2\x09\xe5\xa8\xdc\x2a\x3f\x91\x2f\x88\xca\x33\x98\x42\xad\xba\xce\xe4\x0a\xe4\xdf\xc1\x25\xc1\xf2\xa1\x7b\xe3\xce\x31\xa8\x8a\xb8\x3f\x3b\xf0\x02\xb6\xa4\xfb\xf6\xa1\xef\x25\xa0\x06\x3e\xfa\xa1\x98\x87\xaf\xbe\xde\x32\x32\xbe\x7f\xd7\xf0\xb1\x21\xa1\x35\x81\xb3\x78\x30\x7a\xe7\xe8\x56\x46\x6a\x5e\xe5\xf8\x7d\x32\x12\x93\x6a\x5b\x0a\x30\xb0\xaf\x5c\x83\x59\xbd\xaa\x41\x12\x02\xed\xbf\xa1\x54\x54\xf0\x0c\x9c\xd2\xe4\x1a\x28\xcf\xd3\xf5\x7d\xf7\x01\xb2\x94\x65\x01\xe8\xf7\x4f\x4c\xd6\x9b\xf7\xda\x4e\xfe\x36\x9c\xb3\xef\x5e\xe1\x75\x20\x66\xbc\x89\xee\xe8\xb8\x8d\x66\xfc\x89\x08\x10\x06\x83\x01\xbc\xd9\x87\x1b\x13\x16\x34\x19\xc1\x8c\xa8\x9c\xd4\xda\x10\x32\x41\x0d\x3e\x91\xa8\x17\x6f\x2b\x7b\x0a\x19\x5a\xdc\xd5\x13\x8d\x35\x28\x4d\x64\xfe\xfe\x90\xbb\x98\x73\x61\x5a\xb7\xbc\x5c\x83\x3c\xd8\x98\xf7\x8e\x07\xa5\xd2\x29\xce\xdb\x33\x53\x60\x00\x7b\x6d\xf3\x65\xdb\x1b\x4e\x53\xc2\x12\xe3\xa8\xed\xac\xf4\x41\xfd\x5a\x0c\x9e\x07\x0a\xf5\xf2\xcd\xc4\x74\xbe\x16\x7d\xdb\x04\x23\x1c\x0b\x89\x99\xac\x5e\x58\x19\xbf\x48\x7b\xd2\xf7\x54\x6c\x47\x35\xf4\x25\x15\x16\xae\xab\x92\x51\x5a\xf3\x6b\x1f\x74\x52\x51\x6e\xa9\x9b\xe5\x9f\x17\xe0\xfc\x8f\xae\xa9\xf9\xad\x8e\x5d\x47\x86\x3c\xa8\x78\x65\xa3\x20\x86\x38\xc9\x6d\x82\xe8\xf4\xed\xf4\x85\x71\x00\x99\x10\xca\xa1\x6d\x02\xb6\xe0\x68\x2f\x58\xb0\xef\xdd\x91\x51\x0d\xfd\x25\x26\x52\x66\x00\x30\xc8\x8c\xea\x05\xf4\xb6\xd2\x98\xba\xad\xf4\xad\x41\xe1\x27\x0a\x98\xa8\x3b\x46\x6b\xec\xe8\xee\xb2\x70\x5b\xe9\x65\x0b\x64\xc4\x4c\x40\x5d\x77\xba\x06\x5b\xc5\xe2\xb5\x7d\xcd\x28\xb2\x2f\xd4\x51\x8e\xe7\x49\xb4\x34\x7d\x97\x68\x2d\xdb\x2d\x1a\xb4\xaa\x94\x59\x5f\xd0\xb6\x35\x6a\xc7\x16\xf5\x8c\x9b\x36\x59\x47\xeb\xe7\x16\xbc\x80\x3d\x37\x26\x92\x44\xd5\x55\x68\x27\xa3\xc5\xe9\xe7\x54\x55\x56\xa1\x1c\x93\xcc\x39\x8d\x8a\xd5\x95\x85\xea\x46\x55\xf7\xcd\x4a\x76\x4d\x30\x58\x2b\x3f\xb8\x69\x0e\xdd\xb6\x21\xe4\x2e\x19\x5d\x69\xed\x2c\xd7\xac\x26\x72\x82\xda\xf5\x4d\x9a\x71\x46\x95\x76\x49\x10\xb4\x5b\xf9\xcd\x1c\xad\xd2\xb2\x5b\xd9\xb6\xf5\x76\xff\x2d\x78\xde\x3f\xff\xb9\xfa\xa6\xf2\xf2\x6a\x94\x45\x53\xd6\x12\xb2\xcf\xca\xa5\x9c\xea\x5f\xf3\x1b\x55\x28\x9f\x7c\xe0\x67\xe9\x0b\x5d\x2b\x77\xaa\xa4\x90\x0a\xb7\xcf\x1d\xdb\x8b\x0d\x68\x30\x70\x62\x12\xac\xdc\x05\x44\xa4\xa6\x3e\x43\xb0\xec\x0c\x9c\x95\x9b\x10\x9c\xe1\x3a\xcd\xd9\x7d\x0f\x8b\xfb\x7f\x56\xde\xc5\x5e\xc0\x7c\xd6\xed\xc2\xb9\x00\x7b\x21\x81\x71\x22\x12\xb3\x8d\x0c\x74\xbb\xc3\x0d\x80\x8b\x5b\x7f\x36\xe0\x04\x74\x9a\xd3\xb5\xbc\xe1\xa0\xec\x82\x03\xc7\xb2\x66\x1a\x9d\x61\xb9\x9a\x8f\x13\xb6\x01\xaa\x6b\xeb\xde\x15\x13\x20\xbd\xf8\x69\x78\xec\x31\x5a\x37\xc4\xf0\xba\xb8\x92\x46\x0b\xb8\x42\x8c\x8d\xe3\x8a\x80\xe1\x14\xd9\xcf\x9b\x2c\xaf\x61\xd8\x24\xcb\xac\xda\x22\x9b\x44\x75\xfd\x90\xb2\x40\x22\x2f\x34\x13\xc6\xc4\xac\x1b\x8a\x29\xca\x3a\x1e\x2c\x16\x92\x5d\x06\xf4\x7c\x29\xa8\x33\xca\xaf\x7a\x4e\x99\x4c\xf8\x95\xb3\xfa\x3e\x3d\xd9\x06\xbe\x4c\xb6\x39\xc5\xdb\x68\x83\xa5\x55\x9d\x52\x22\xaf\xff\x6a\x12\x9e\x32\x6b\x68\x2c\x3a\x67\xb8\xe0\xd7\xd6\x1e\x4f\x89\x5e\x9e\x17\x57\x31\x7c\x8e\x33\xc3\xe8\x16\x6d\x17\x08\xae\xb4\xda\x9d\xe8\x7c\x40\xba\xd6\x2e\x48\xb8\x0f\x59\xa1\xd6\xb1\xea\x7b\xd9\x55\x58\xae\x2f\x22\x4f\xf9\xa1\x60\xec\x4b\x7a\xdb\x59\x25\xd5\x17\x22\x91\x3e\xde\x8d\xf0\x8d\x0b\x83\x1e\x82\x83\xe7\x55\x24\xa6\xbe\xb0\x50\x13\x69\x44\x64\xd7\x52\xf9\x5e\x7d\xcc\x9f\xd6\x83\x6e\x13\x4a\x17\x7b\xdf\x66\x38\xac\x69\x35\x02\xfc\xf1\x4e\x60\x79\x43\x72\xbf\x92\xc1\x85\xb2\xb1\x21\xb4\x85\x84\xb6\xfb\x5e\x9d\x09\xff\x0a\x83\x7d\xfb\x3d\x3b\x05\x32\x3f\xf7\x9b\xe0\x7b\xe8\x35\x5a\x6f\x4a\xc5\xd3\xb3\x61\x66\xcd\x05\x9a\xe1\xf6\x36\x7b\xf6\x65\x49\x56\xd6\x79\x73\x83\x3c\x48\xdd\x6c\x43\xa1\xdf\x9f\xda\x45\xa5\x7c\x49\x6a\x2a\x6a\xb8\xbd\x4d\x0b\xa3\x4b\x32\xcf\xec\xaf\xaf\x41\xe3\xca\xc9\x50\x56\x11\xa8\x74\x29\xbf\xa6\xfd\x77\x21\xa1\x91\xc1\xdd\x5f\x98\x1b\x87\x46\xc3\x0b\x64\xe3\x6e\x90\x35\x7d\x53\xc5\x2e\x0f\x14\x87\xef\xcc\xd7\x87\x5f\xca\xc7\x5e\xc2\xea\x12\x9a\x14\xd9\xd7\xce\x78\x2c\xb9\x33\xaa\x43\x70\xff\x46\x71\x96\x19\xd1\x72\x68\xba\xf3\xc4\x60\xc1\x54\xe3\x14\x69\xf3\x59\x39\xa8\x32\x49\x83\xf9\x2b\x67\x47\x35\x16\x51\x23\xe2\x52\x5e\x4c\x12\x5e\xb9\xba\x4e\x12\x29\x91\xeb\x06\xdc\x6c\x37\xa6\x9b\x1b\x90\x84\x4f\xd0\x6c\x13\x7c\xe4\x9a\x5d\x9b\xb0\x8e\xc1\xfd\x1d\x71\x95\xe5\x2f\xb8\x75\x73\x3e\x87\xf6\x7b\x43\xeb\xff\x46\x96\x7f\xff\xd0\xb6\xe9\xac\x77\x58\x67\xdf\x41\x90\xa8\xa6\xad\xca\x3e\x0b\x24\x0f\x8f\xed\x55\x9f\xd6\xf3\xae\xd6\xef\x87\xc7\x9e\xe9\x1a\x36\xa0\xa0\x49\x72\xf0\xc7\x48\x0a\xbe\x0f\x59\x6e\x59\x3e\xab\x77\x3a\x56\x00\xd9\xb8\xec\xf5\xce\x2c\x2f\x83\x42\x01\x4e\x6d\x50\x68\xa8\xc8\xc5\xe9\xcb\xf0\xc4\x7c\x83\x40\xf0\x26\xa1\xf5\x5e\x56\x76\x0f\x66\x36\x1f\xee\xab\xb2\x05\x03\xfa\x61\x54\xdc\x80\x8f\xc2\xee\x6e\x07\x3e\x6a\xb7\xef\xd5\x76\x6c\xbe\xdf\xc5\x96\xed\xba\xab\xa8\x21\x95\x07\x80\x63\x2f\xa0\xd3\x92\xb2\x56\x26\xb0\xd5\x0e\x5b\xd3\x32\x74\xce\x24\x89\xcb\x82\x78\xd3\x9d\xf0\x02\xd0\x5a\x41\x6f\x63\x5c\x7e\xe6\x51\x1f\xdc\x48\xa2\x85\x2d\xb5\xd7\x0f\xb3\xb7\x5d\x85\x82\x05\x28\x07\xce\x6f\x0a\x21\xaf\x17\x82\x16\x30\x93\x54\x63\x7a\xd4\xcf\x85\xc6\x67\x70\x8e\xb3\xbe\x3d\x16\xf4\xc9\xe2\x65\xd1\x65\x3f\xcc\x42\xe4\xb6\x9b\x48\xb4\x4b\x0a\xda\x05\x85\x43\x77\x98\xef\x6f\xf7\xdd\x2d\x67\x22\x46\x0e\x8b\x9b\x9b\x6a\xc6\xda\xba\xd6\x27\x32\x5b\x5e\x15\x99\x09\xa7\xaa\x6a\x58\xa2\x5a\xa8\x53\x2f\x14\x35\x93\x5f\x8d\x59\xa5\x9e\xbc\xec\x25\xb8\xfe\x6f\x2e\x66\xdb\xfd\x9e\xd2\x52\xac\xdc\x4c\x5f\x3a\xca\xb7\x8f\x22\x35\xcb\xf8\xdd\x4f\x22\xb1\xd5\x31\xa3\x11\x48\x0c\xbd\x4a\x0b\x11\x3c\xdb\x96\x0a\x6d\x45\x72\xec\xd5\x52\x5b\x2b\x41\x58\x0a\xa7\x90\xdd\xd7\xba\x27\xf7\x53\x26\xec\xda\xc1\x4d\xb1\xae\xdc\x6f\xff\xcd\xb0\x66\x5b\xdc\xed\x76\x10\xf6\x96\xdb\xe1\xb0\x57\xa7\x84\xda\x8c\x35\x45\x9d\xe6\xea\x7b\xb4\x03\x7b\x08\xfd\x01\xb8\xf9\x89\x7d\xd3\x7c\xdd\xde\xce\x3a\x70\x4c\x9c\xe9\xda\xef\xd9\xc5\xd1\x4d\x4a\x6a\x2b\xae\x7e\x6f\x65\xdf\xf5\xf3\x34\xa5\x63\x70\x73\xb3\x87\x26\x2c\x34\xdb\x6e\x99\xcf\x0f\x7c\xa4\xe2\xb7\xe9\xbf\x3b\xd3\x60\xf8\xd9\xa0\x21\x8f\x97\xdf\x88\x06\x49\x36\xc5\xf0\x89\x7c\x15\x29\xdc\xdc\xd8\x07\xaf\x60\x6f\xa1\xff\x4b\x9c\x6b\xd8\xa3\xb7\xb7\x29\x88\xf6\xcd\x0d\x1d\x03\xd3\xd0\x5e\x1f\x78\x12\x1a\x13\xba\x48\x22\x05\x7b\x74\x1f\x0e\x6e\x6f\xd3\x70\x9c\x19\x46\x7a\x8b\xbd\xf5\x83\x79\x1e\x58\xd2\x3f\x91\x68\xb6\xc3\x2f\xb2\x08\xbc\x49\xce\x0a\x16\xe3\xbb\x6d\x4c\xdf\x6f\xb4\xbf\xab\x09\xea\x50\xbf\xb3\x6b\xba\x76\x1b\x25\xae\x85\xbd\xf1\x9e\x65\xcf\xac\x39\x86\x11\x72\x6d\x57\x9e\x01\xf2\x5e\x63\xa4\xb6\xee\x45\x8d\x95\xe4\x33\xb7\x62\xac\x4b\xdd\x9a\xf2\x77\x4a\x25\xfa\xcd\xbc\x93\x3d\x32\xcf\x95\x9b\xde\x20\xdd\x3b\x38\xf8\x53\xbd\x3b\x38\xd6\xdb\x22\xd6\xb1\x0e\x87\xa7\xc2\xb7\x97\xd4\x1e\x7b\x3a\x6c\x30\x3c\xab\x6a\xd8\xff\x01\xa6\xe1\x94\xf3\x24\x02\x93\x7b\xa9\x86\xe3\xcf\x88\xd2\x90\xd6\x37\xb6\xce\x38\xf6\xb6\x30\x99\x3b\xe3\xa5\xb4\xdf\x71\x2d\x29\x6e\x71\xc5\x4d\x64\x17\xac\x65\xd5\xd9\x4d\xfd\x69\x85\x6b\x58\x68\x49\x93\x64\x1d\x34\x80\x78\x73\xe3\x9e\x21\x9f\xe8\xd0\x66\x52\x0d\x67\x9c\x27\x91\x6f\x57\xb2\xba\xcb\x2c\x23\x66\x23\xe5\x4b\x1a\x61\x83\x79\x0d\x24\xbd\x7d\x43\xe3\x59\x43\xae\xf4\x0b\x15\x3e\xa5\x2c\x65\x5c\x6f\x3b\xf6\xb2\x53\xf7\xfc\x74\xde\x1b\x89\xe0\x7a\xf8\xf4\xc9\xb1\x97\xfd\xff\x71\xff\x17\x00\x00\xff\xff\x9b\xed\x7e\x8a\x59\x6e\x00\x00") +var _templatesIndexTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x6d\x73\xdb\x36\xb6\xf0\xf7\xcc\xe4\x3f\x9c\x30\xde\x4a\xde\x48\x94\xe5\xc6\x49\xa3\x58\xea\xd3\xc7\x4e\xa7\xb9\xd7\xeb\x64\x62\x77\x67\x76\xf6\xee\x74\x21\xf2\x48\x44\x0c\x02\x5c\x00\x94\xe4\x7a\xf4\xdf\xef\x00\x24\x45\x4a\x22\x29\xfa\x25\x69\x7a\xc7\xfa\x90\x48\x78\x39\xef\x38\xe7\xe0\x80\x84\x8f\x9f\x9d\x7e\x38\xb9\xfc\xc7\xc7\x77\x10\xe8\x90\x8d\x9e\x3e\x39\x4e\xff\x7f\xfa\x04\x00\xe0\x38\x40\xe2\x8f\x92\xef\xf6\x77\x88\x9a\x40\xa0\x75\xd4\xc5\xff\xc4\x74\x36\x74\x3c\xc1\x35\x72\xdd\xd5\xd7\x11\x3a\x90\xfe\x1a\x3a\x1a\x17\xba\x67\x40\xbd\x05\x2f\x20\x52\xa1\x1e\xfe\x7a\xf9\x73\xf7\x07\x67\x0b\x18\x27\x21\x0e\x9d\x19\xc5\x79\x24\xa4\x2e\x80\x98\x53\x5f\x07\x43\x1f\x67\xd4\xc3\xae\xfd\xd1\x01\xca\xa9\xa6\x84\x75\x95\x47\x18\x0e\xfb\x6b\xd0\x18\xe5\x57\x20\x91\x0d\x1d\x12\x45\x0c\xbb\x5a\xc4\x5e\xd0\xa5\x9e\xe0\x0e\x28\xfa\x3b\xaa\xa1\x73\xf4\x7a\x71\xf4\xda\x81\x40\xe2\x64\xd8\x53\x9a\x68\xea\xf5\x68\x38\xed\x79\x62\x7e\x2d\x7a\xc9\x34\x33\xa1\x6b\x07\xba\x11\x9f\xde\x12\xc1\xab\x83\xc5\xab\x83\x4a\x04\xa5\xa8\xec\x94\x3b\xa0\x7a\x7d\xb8\x78\x7d\xd8\x84\x17\x3b\xf0\x2e\x08\x5e\x2d\x5e\xbf\x6a\x84\xc0\x0c\xbc\x03\x82\x7e\xff\xe5\xa2\xdf\x7f\xd9\x04\x45\x3a\xf4\x2e\x48\x0e\x0f\x16\xfd\xc3\x6a\x9d\x14\x91\x24\x43\xef\x82\xe4\xe5\xcb\x45\xff\x65\x33\x4e\x92\xa1\x77\x41\x72\x74\xb8\xe8\x1f\x35\x52\x79\x3a\xf4\x2e\x48\x7e\x38\x58\xf4\x7f\x68\x26\xae\x64\x68\x35\x92\x04\xb0\x71\x0c\x43\x87\x86\x64\x8a\xbd\x88\x4f\x73\x4c\x6f\x0e\x17\xfd\x37\x35\xec\x70\x5f\x0a\xea\xa7\xb8\x92\xc1\x77\xc5\xf5\xfd\xe1\xe2\xfb\x6a\x4c\x13\x32\xb3\x48\xec\xa8\xbb\xa2\x78\xf3\x6a\xf1\xa6\x7a\xb5\x64\x28\xec\xa8\x3b\x4b\xec\xd5\xa2\xbf\x1b\x85\x1d\x55\x8d\x22\x24\x9c\x4e\x50\xe9\x4a\x38\xd9\x00\xf7\xb3\x12\xbc\xc2\x5b\x87\xca\xd8\x01\xf5\x88\xa6\x82\x77\x2f\x29\xc3\x13\xc1\x84\x2c\x38\xef\xe7\x93\xc9\xa4\xca\xd7\x6f\xcf\x7e\x6f\x78\x2d\xcc\xee\x85\x6a\x6b\xb5\x54\x41\xd3\x01\x86\xd8\xf5\x2a\xf0\x3f\x7d\x72\x73\x03\x74\x02\x84\xfb\xe0\x9e\xc4\x4a\x8b\xf0\xe4\xe2\x02\xdc\x4f\x48\xfc\x8f\x64\x8a\xb0\x5c\x3e\x7d\x52\x10\x8f\xd2\xd7\x0c\x55\x80\xa8\x33\x3d\xd8\x48\xe6\x29\x95\x0a\xcc\xc9\x24\xe6\x29\xd5\xf3\x2c\x40\xd7\xf4\x8e\x2c\x26\x64\x2a\x05\xa9\x3c\x49\x23\x5d\x84\xf1\x99\xcc\x48\xd2\xea\x80\x92\x5e\x0e\xe9\xb3\xea\x7d\xfe\x4f\x8c\xf2\xba\xdb\x77\x7f\x70\xbf\x77\x3f\x2b\x67\x74\xdc\x4b\x86\x8e\xee\x41\xdd\x94\xea\x20\x1e\x77\x43\x22\xaf\x7c\x31\xe7\x19\x99\x77\x86\x17\x22\x8f\x55\x37\xa4\xf7\x87\x34\x26\x0a\x1b\x00\xda\x9e\x18\xd0\x69\xc0\xe8\x34\xd0\xab\x99\xa9\x9c\x37\x05\x9a\x0f\x34\x68\x36\x25\x7a\x3b\xe5\xe4\xb0\x22\xe2\x5d\x6d\x02\x33\xe0\x0c\xcd\x9b\x6c\x8f\x32\xd3\x73\xcf\xa8\xd2\x2b\x5b\xeb\xfd\x15\x3e\x99\xd4\x49\xa2\x0f\x13\x21\x81\x51\xa5\x15\xfc\xb5\xf7\xf4\x89\x8a\x08\x87\x1b\xf0\x62\xa9\x84\x1c\x40\x24\x28\xd7\x28\xdf\xc2\x32\xb1\x2c\xee\xdb\xf9\x63\xe1\x5f\xc3\x4d\xb2\x14\xc6\xc4\xbb\x9a\x4a\x11\x73\x7f\x00\xc6\xe0\xdf\x3e\x7d\xb2\x7c\xfa\xc4\x55\xb1\xe7\xa1\x52\xd9\x28\xbb\x34\x06\xf0\xfc\xc8\x1b\xff\x70\xe4\xbd\x4d\x1a\x27\x82\xeb\xee\x1c\x0d\x57\x03\x18\x0b\xe6\xa7\x73\x27\x84\xb2\x58\xe2\xe6\x5c\xff\xcd\xd1\xf7\x2f\x27\x3b\xe6\x46\xb1\xc4\xae\x31\x12\x20\x9b\xf3\x5f\xbf\x7e\x9d\x0e\xf2\x91\xa1\xa6\x7c\x9a\x8d\x10\x11\xf1\xa8\xbe\x1e\xc0\x81\x7b\x94\x0c\x79\x3e\x97\x24\xca\xba\x23\xa1\xa8\x71\x13\x03\x20\x63\x25\x58\xac\x31\x25\x42\x8b\x68\x00\x47\x07\xd1\x22\xfd\xcd\x70\xa2\x07\x90\xff\x96\x09\x79\x79\xc3\x58\x68\x2d\xc2\xac\xc5\xe0\x89\x88\x9f\xa1\x09\x12\x6e\xfa\x07\x07\x7f\x49\x3a\x53\xd5\xbd\xf3\x69\xae\xba\xa2\xe8\xc5\x0c\xe5\x84\x89\xf9\x20\xa0\xbe\x8f\x7c\x35\xc9\xa8\x69\x35\xd8\x62\x30\x06\x41\x24\xae\x44\x62\x33\xd9\x01\xa4\xa8\x0a\xc8\x8b\x4d\x63\xb1\xe8\x2a\xfa\x3b\xe5\x53\x23\x61\xe9\xa3\xec\x8e\x45\xc6\x49\x37\x14\xbf\x77\xeb\x47\xcc\x71\x7c\x45\x75\xfd\xa0\x4a\xd1\xa6\xa2\xdc\x10\xe4\xa6\x18\x8b\x7a\xc8\x3b\x0d\x8e\xed\xdf\x5c\xf0\x0c\xb8\x88\x35\xa3\x1c\xd7\xda\xd6\xc8\x0d\x88\x2f\xe6\xeb\xdd\x2b\x7e\xb7\xfb\x2a\x9a\x25\x9a\x98\xb9\xd6\x64\xad\x36\x69\xed\xbb\x07\x18\xa6\xcd\xa9\xa2\x7f\x21\xea\x54\xe8\xf7\xfc\x9c\x84\x89\xb2\x57\x53\x26\x24\xa4\xec\x7a\x00\xce\x59\xec\x51\x9f\xc0\x89\xe0\x4a\x30\x74\x3a\xf0\x37\xc1\x89\x27\x3a\x10\x0a\x2e\x54\x44\x3c\x5c\x81\x34\x61\xa0\x14\x48\xeb\x43\x84\x1c\x2e\x08\x57\xad\x4e\xeb\x02\xa7\x02\xe1\xd7\xf7\xad\xce\x25\x09\x44\x48\x3a\x3f\x49\x4a\x58\x47\x11\xae\xba\x0a\x25\x9d\xe4\x24\x66\xab\x7f\x69\xfc\x8d\x9b\x79\xf4\xae\xb5\xc8\x98\x75\x60\xa3\x49\xb0\xd5\xfa\x21\xbe\x4f\xf9\xb4\x9b\xea\xd4\xb2\x6d\x81\xfc\xbf\x10\x7d\x4a\xa0\x1d\x52\xde\x4d\x4d\xf2\x08\xc3\xfd\x6c\x9e\x4f\x67\xcf\xcd\x52\xee\xd8\x6f\x12\xb9\x8f\x12\xfd\x0e\x54\x9a\xf5\x36\xb2\xc3\xcc\x98\x8b\x5d\xa9\x35\xad\xfa\x52\x21\x15\x7c\x47\xfe\xb5\x1b\x08\x49\x7f\x17\x5c\x13\x56\xc4\x12\x92\x45\x46\xf1\xf7\x07\xf9\xfa\xde\x82\xd4\xf5\xa9\x22\x63\x66\xa8\x2e\xc2\x44\x62\x08\x59\x6b\xb3\xd1\xa7\x8a\x8f\xbe\x7b\xb8\x32\x96\x6d\x4e\x56\x5d\x89\x72\xca\xa4\x7a\xf0\xb0\x62\xed\x1f\xd4\xc8\x35\xef\x7c\x78\x71\x0c\xc0\x3d\xc2\x10\xfa\xbb\x59\x7e\xfd\xd0\x2c\x1f\xd5\xb1\x7c\xf4\x97\x35\x7a\x4a\x29\xea\x1f\x3c\x30\x49\x87\x75\x5a\x38\x3c\x58\x27\xe9\xb8\x67\x33\x84\xd1\x5a\x20\x5f\xe5\xb2\x9a\x6a\x86\xa3\x9b\x1b\x70\xd3\x48\x73\xdc\x4b\x9a\xb2\x22\x8c\x1d\x55\x4c\x59\x5a\x1b\x29\x4b\xab\x90\x1a\x27\x3e\x96\xd1\x48\xc0\x10\x26\x84\x29\x7c\xbb\xde\xd9\xeb\x1d\x3f\xfb\xe7\xc9\xe9\x4f\x97\x3f\xfd\x73\xbd\x63\xaf\x3d\xa7\xdc\x17\xf3\x7d\x97\x09\xe2\xb7\x27\x31\xf7\x4c\x78\x68\xef\x17\xa5\x90\x43\x81\x4f\xa8\x63\xc9\x15\x10\xc8\x86\x76\x40\x07\x44\x77\x80\x28\x60\x82\x4f\xcd\xff\x54\xdb\x9c\x9c\xf2\x18\x15\x68\x01\x63\x04\xca\x67\xe2\xca\x88\x7b\x4e\x19\x03\x2e\x74\x29\xf4\x31\x82\x96\x74\x3a\x35\x9a\x71\xe1\x32\xc0\x15\x96\x64\xde\x18\xc1\x23\x8c\xa1\x0f\x64\xa2\x51\x1a\x44\x4a\x8b\x48\xc1\x18\x4d\x76\x91\xf6\x4d\x84\x2c\x85\x7e\x0e\x21\x65\x8c\x2a\xf4\x04\xf7\x95\x0b\xef\x27\xf0\x6f\x1a\x5a\xbb\xd1\xf8\x6f\xa0\x0a\x22\xa2\x94\x21\x32\x25\x02\x74\x91\x02\xc1\xcd\xef\x52\xc8\x2c\x59\x50\x80\xfe\x14\x3b\x40\xb9\xd2\x48\x7c\x10\x13\x0b\x40\x4b\x42\x19\xe5\x53\x77\x7b\xea\x0a\xb6\x8f\x63\x11\x73\x0f\xad\x02\x3a\x30\x27\x54\x77\x60\x45\x5b\xa9\x32\xcc\x67\x46\x24\x68\x1a\xa2\x88\xf5\xdb\xf2\x11\xd2\xea\x0b\xea\xf5\x9a\x1b\x43\xeb\xb9\x22\x33\x34\x09\xd0\xff\x8f\xb5\x16\xbc\xb5\xef\x4a\x0c\xc5\x0c\x4f\x18\x51\xaa\xbd\x7f\xcb\xb9\xc6\x64\xdb\x8e\x69\xa2\x7c\xea\xec\x57\xd0\x98\x71\x62\xf7\x71\x0b\x0d\x43\xd0\x01\x55\x9d\xea\xc1\xe6\x43\xe4\x54\xc1\xd0\xfc\x17\x87\xc8\xb5\xda\x01\x9b\x11\x63\x2f\xc3\x86\x82\x30\x9f\x54\xae\x30\x04\x1e\x33\x56\x03\xde\x7c\xe8\x04\xda\xcf\x0a\xfa\x32\x68\x5c\xb3\xe1\xbd\x6e\xa7\x5c\x75\x2c\xc5\x75\x22\x58\xee\x12\x0f\x61\xec\x5c\xcc\x61\x98\x1b\x06\x7c\xf7\x1d\x3c\xab\x37\x00\xf3\xf1\x18\x12\x79\x99\x0c\x6b\xa7\xc3\xeb\x28\xc9\x59\x57\xa8\xb3\x79\x56\x82\x89\x69\xd6\xcd\x35\x92\x48\x29\xbd\xbd\x18\xca\x44\x60\xda\x4a\x17\xdd\x65\x40\x55\xe2\x16\x2c\x06\xbb\xd6\xb2\x75\x04\x38\x99\xa0\xa7\xd3\x35\x0b\x57\x78\x1d\x47\x80\x33\xe4\xe5\x7e\xe7\x27\xee\x1b\x5f\x22\x38\xbb\x86\x09\x95\xa8\xe0\xe8\xe0\x20\x54\x20\x24\x04\x84\x4d\x80\x40\xe2\x34\x52\xb7\x63\x40\xc6\x0a\xa5\x75\x3e\x11\xfa\xc6\x41\x53\x3e\xdd\x06\x6d\xd4\x16\x49\x9c\x5d\x26\x66\x6d\xd6\x88\x99\xf7\x9e\x47\xb1\x6e\xed\xbb\x33\xc2\xda\x65\xa2\xd8\x1c\x27\x78\xbb\x65\x59\x68\x75\xd6\x3d\x45\xbd\x25\x1b\x55\xe4\xd8\x2b\xd0\xd7\xae\x83\xd4\x7b\xf4\x7a\xc0\x05\x78\x01\xe1\x53\x54\x15\x9a\x2b\x6f\x6e\xc0\x7c\x35\xed\x49\x44\xdb\xe9\xb1\x36\x81\x96\x22\x72\x25\x46\x8c\x78\xd8\xee\x61\x6f\xda\x71\x9c\xfd\x4a\x13\x2c\x6f\xbe\xab\x6b\xac\x71\x8b\x17\x64\x66\xbd\x62\xf9\xc4\x38\xb2\x01\xb9\x8c\xcc\x65\xc7\xec\x0e\xdc\xd3\xcc\xd6\x97\xcb\xfd\x72\x41\x26\x8e\x4f\xe9\x9f\x51\x7b\x01\x0c\xed\xac\x5f\x39\x5d\x98\x25\x0d\xcb\xb2\xc5\xb6\x0a\x48\x19\xfa\x2a\xe1\xef\xb9\xe4\x33\x59\xb4\x6b\x54\x63\x92\x96\x01\xb4\x3e\x7e\xb8\xb8\x6c\xd5\xf8\xf2\x58\xb2\x01\xb4\x7a\x71\xe4\x13\x8d\x75\x03\x7d\xa2\xc9\x00\xfe\xeb\xe2\xc3\xb9\xab\xb4\xa4\x7c\x4a\x27\xd7\x75\xf8\xcd\x87\xe3\xfc\x37\x23\xec\x41\xb9\xf5\xed\x08\x31\x11\x99\xe2\x00\x9c\x42\x92\xe6\xec\x98\x31\x31\x82\x46\xff\x37\xa2\x07\xb9\xe0\x6b\xe6\x2c\xeb\x48\x48\x2b\x3a\x83\x3c\x66\x19\x11\xec\x8c\x5b\xf7\x09\xe2\x90\xae\x3c\x83\x68\x55\x51\x1a\x0e\x41\xcb\xb8\x3a\x09\xd9\x89\x9c\xf8\x7e\x82\xd9\x49\x41\xd6\x66\x02\xd9\xa7\x68\xb8\x96\x9e\x98\xd3\xc5\x6f\x26\x34\xed\x98\xbc\x4c\x0a\xb2\xf7\xa7\x36\x2d\x8b\xed\xa4\xb6\xc2\x65\xd4\x62\xb1\x2e\xc0\xb2\x15\xa2\x52\x64\x8a\xb5\x99\x41\x8d\x95\xa0\x94\x42\x16\x6c\x64\x11\xc8\x4e\xd2\xf8\xc5\x2d\xe5\x81\xc4\x57\x2d\x9f\x84\x8d\x3b\x0a\x26\x3d\x15\xb8\xb4\x6e\xc8\x29\x1c\x3e\xf4\x3e\x2b\xc1\xeb\x56\xb2\x51\x4b\x32\xad\x65\x86\xb6\x2a\x02\x45\xa9\x6b\x2e\x73\xc3\x2b\xa7\x1a\x49\x1a\xe2\xcf\x42\x5e\x20\x9b\x9c\xa2\xd2\x32\xf6\xf4\xd7\x73\xb1\x16\xfb\x43\x7b\xd8\x12\x1f\xf9\xe8\xee\x6e\xeb\xee\x1e\x3d\xd6\xa3\xc7\xfa\x36\x3d\x16\x13\xde\x95\x59\xd7\xed\x88\x28\x15\x05\x92\xa8\xea\x85\xf1\xd0\xfe\xca\xe0\xfe\x0a\xee\x6a\x67\x12\x98\x31\x3e\x28\x7c\x7f\xf4\x71\x8f\x3e\x0e\x6a\x24\x0b\xdf\x7d\x67\x31\x64\xeb\x27\x83\xbd\x6f\x06\x38\x67\xc2\xbb\x72\x1a\x09\x3f\x29\xce\xba\x4c\x24\x8e\x00\x86\xe0\xf4\x0a\xc6\xdb\x9b\x51\x9c\x3b\xf7\x13\xc4\xdd\x58\xf8\x95\xb3\x07\x63\x02\x7d\xaa\xef\xc1\xc4\x63\xac\xb9\x83\x60\xbe\xc1\x58\x13\xc5\x63\x46\x55\x60\xc3\xcd\xd7\x4b\x8a\x13\xa4\xdf\x40\x9c\x49\x08\x49\x2a\x15\x05\x51\xac\x2f\xbb\x8f\x49\xc7\x63\x8e\xfd\x18\x7f\xec\x67\x25\xd9\x74\x7c\xea\x9b\x53\xfb\x41\xbf\x99\x83\xae\x30\xb9\x95\xb5\x3d\xac\x6c\xcb\x30\xad\x48\xbe\x8f\x58\x1f\x03\xc1\x1d\x04\xf3\x0d\x06\x02\xe4\x9e\xbc\x8e\xf4\x1f\xb5\xef\x48\xd1\x7f\x03\x21\xe1\x71\xeb\xf1\xe8\xfa\x2b\x3f\xbb\xf2\xf6\xc2\x2a\x5a\xcf\x21\xde\x25\x1d\x7f\x9a\x0d\x48\x25\x23\xa7\xf8\x80\x8c\x3c\x6e\x42\x6e\x0b\xe6\xff\x64\xec\xb1\x8f\x4a\x7c\x60\x0f\x71\xf2\x79\xfa\xee\xec\xdd\xe5\xbb\x06\x01\x47\x30\x9f\x51\xf5\x35\x02\xce\x63\xec\x78\x8c\x1d\x70\x5f\xc9\xee\xf2\xa4\xc6\x96\xff\x8c\x9e\xf4\x2e\x3e\xf0\xd1\x95\x96\x38\xd3\xbd\xb6\x53\x0c\xda\xce\xbe\xeb\x31\xea\x5d\xe5\x4f\x2c\x55\xdb\x19\xba\x91\xb4\x8f\x69\x9d\xe2\x84\xc4\x4c\x57\x6a\xc5\x3e\x59\xb5\xca\x89\x61\x08\x91\x14\x61\x64\xf6\xac\x0c\x4d\x03\x72\x8d\x12\x48\x61\x8c\x0b\xe7\x42\xe3\x00\xd2\xf4\x87\xf2\x69\xf2\xf0\x58\x62\x03\x40\x18\xb3\x4f\x2b\x51\x11\x2b\x08\xa8\xd2\x42\x5e\xbb\x4e\x07\x9c\x4a\x8d\xda\xc7\xab\x72\x12\x9e\x25\x0f\x0a\xd6\x1a\x62\xc5\xce\xa6\xf9\xa3\x48\xcb\xe4\x41\x9f\x0a\x99\x1b\x60\x5f\x54\xe2\x12\x86\xc6\xd2\x26\x54\x86\x6d\xe7\x27\x89\x70\x2d\x62\x50\x71\xfa\x65\x4e\xb8\x06\x2d\xc0\xd2\xf1\x63\xad\xdc\x64\x23\x8f\xb3\x33\x67\x33\x88\xaa\x5c\xcd\x6e\xcf\xbd\x30\x00\xff\x21\x62\xa3\x77\xa5\xd0\x87\x13\xc2\x3d\x64\xcf\x2a\x21\xde\x52\x1f\xaa\x70\xcc\xff\xf5\xd4\x92\x3f\x16\x69\xc5\x63\x1f\x56\x34\xa9\x80\xfd\xc2\x71\xa1\xed\xe3\x9d\x40\x35\x50\x05\x22\x42\x8e\x7e\x07\x48\x95\x2e\x7d\x61\x1f\xef\x7e\x08\x6d\x96\x3f\xfd\xf0\xcd\x6a\x2f\x3b\xf7\xf8\x46\xdc\x97\x51\x86\x3d\x72\x79\x60\x97\x64\xa6\xdc\xf7\xa4\xea\x01\x62\xab\xb3\x01\xc0\xc9\x2a\x83\x86\x82\x5d\x0f\x8f\x37\x4b\xd2\xbe\x24\x95\xc9\x71\xd8\x4e\x3a\xab\xbb\xca\x0e\xda\x6b\x20\xf5\x7a\xf0\xf1\xc3\xc5\x65\x16\x50\xec\x02\xaf\x1d\x2d\x91\x09\xe2\xd7\x8c\xab\x5e\x1e\x65\x62\x28\xd4\x70\xbf\xd8\xfa\x58\x95\xb4\xc1\x29\x3e\xeb\xed\xfb\xc6\x41\xc9\xd4\xa7\x09\xeb\xd6\x14\xd5\x18\x92\xc8\x5d\x84\x0c\x94\x30\xbe\x2d\x7b\x5d\x84\x72\x1f\x17\xe8\xc3\xf8\x1a\x14\x12\xe9\x05\x80\x7c\x4a\x39\x2a\xb7\xca\x4f\x64\x0b\xa2\xf2\x0c\xa6\x50\xab\xae\x33\xb9\x02\xf9\xb7\x70\x49\x90\xbf\x0b\x61\xdc\x39\xfa\x55\x11\xf7\x47\x07\x5e\xc0\x8e\x74\xdf\x3e\x8b\x9f\x03\x6a\xe0\xa3\x1f\x8a\x79\xf8\xe2\xeb\x2d\x25\xe3\xdb\x77\x0d\x1f\x1b\x12\x5a\x13\x38\x8b\x07\xa3\xb7\x8e\x6e\x65\xa4\x66\x55\x8e\x3f\x26\x23\x31\xa9\xb6\xa5\x00\x7d\xfb\x26\x3c\x98\xd5\xab\x1a\x24\x21\xd0\xfe\x3b\x4a\x45\x05\x4f\xc1\x29\x4d\xae\x81\xf2\x2c\x5d\xdf\x77\x1f\x20\x4b\xc9\x0b\x40\x7f\x7c\x62\xb2\xd9\xbc\xd7\x76\xb2\x97\x14\x9d\x7d\xf7\x0a\xaf\x7d\x31\xe7\x4d\x74\x47\x27\x6d\x34\xe3\x4f\x84\x8f\x30\x1c\x0e\xe1\xcd\x3e\xdc\x98\xb0\xa0\xc9\x18\xe6\x44\x65\xa4\xd6\x86\x90\x29\x6a\xf0\x88\x44\xbd\x7a\x89\xbc\xa7\x90\xa1\xc5\x5d\x3d\xd1\x58\x83\xd2\x44\x66\xaf\x75\xb9\xab\x39\x17\xa6\x75\xc7\x3b\x4f\xc8\xfd\xad\x79\xef\xb8\x5f\xf9\xda\x48\x36\x6f\xcf\x4c\xb1\x2f\x9d\x98\x2f\xbb\x5e\x3c\x9b\x11\x16\x1b\x47\x6d\x67\xed\x78\x31\x25\x15\x86\x42\x9d\xbf\x30\x9a\xcc\xd7\x62\x60\x9b\x60\x8c\x13\x21\x31\x95\xd5\x0b\x2b\xe3\x17\x49\x4f\xf2\xfa\x90\xed\xa8\x86\x9e\x53\x61\xe1\xba\x2a\x1e\x27\x35\xbf\xf6\x41\x27\x11\xe5\x8e\xba\x59\xf6\x79\x01\xce\xff\xe8\x9a\x9a\xdf\xfa\xd8\x4d\x64\xc8\xfd\x8a\xd7\x4a\x0a\x62\x88\xe2\xcc\x26\x88\x4e\x2e\x0d\x58\x19\x07\x90\x29\xa1\x1c\xda\x26\x60\x0b\x8e\xf6\xde\x0b\xfb\x3a\x24\x19\xd7\xd0\x5f\x62\x22\x65\x06\x00\xc3\xd4\xa8\x5e\x40\x7f\x27\x8d\x89\xdb\x4a\x5e\xe6\x14\x5e\xac\x80\x89\xba\x63\xb4\xc6\x8e\xee\x36\x0b\xb7\x95\xdc\x81\x41\xc6\xcc\x04\xd4\x4d\xa7\x6b\xb0\x55\x2c\x5e\xdb\xd7\x8c\x22\xfb\xba\x0f\xe5\x78\x1e\x87\xb9\xe9\xbb\x44\x6b\xd9\x6e\x51\xbf\x55\xa5\xcc\xfa\x82\xb6\xad\x51\x3b\xb6\xa8\x67\xdc\xb4\xc9\x3a\x5a\x3f\xb6\xe0\x05\xec\xb9\x11\x91\x24\xac\xae\x42\x3b\x29\x2d\xce\x20\xa3\xaa\xb2\x0a\xe5\x98\x64\xce\x69\x54\xac\xae\x2c\x54\x37\xaa\xba\x6f\x57\xb2\x6b\x82\xc1\x46\xf9\xc1\x4d\x72\xe8\xb6\x0d\x21\xb7\xc9\xe8\x4a\x6b\x67\x99\x66\x35\x91\x53\xd4\xae\x67\xd2\x8c\x33\xaa\xb4\x4b\x7c\xbf\xdd\xca\x2e\x4c\x69\x95\x96\xdd\xca\xb6\xad\xcb\xfd\xb7\xd0\xeb\xfd\xeb\x5f\xeb\x2f\x90\xe7\x37\xd6\xac\x9a\xd2\x96\x80\x7d\x56\x2e\xe5\x54\xff\x92\x5d\x74\x43\xf9\xf4\x03\x3f\x4b\x5e\x3a\x5b\xbb\xea\x26\x81\x54\xb8\x14\xf0\xd8\xde\x37\x41\xfd\xa1\x13\x11\x7f\xed\x8a\x26\x22\x35\xf5\x18\x82\x65\x67\xe8\xac\x5d\x50\xe1\x8c\x36\x69\x4e\xaf\xe1\x58\x5d\xcb\xb4\xf6\x8a\xfc\x0a\xe6\xb3\x6e\x17\xce\x05\xd8\x7b\x22\x8c\x13\x91\x98\x6e\x64\xa0\xdb\x1d\x6d\x01\x5c\x5d\xc6\xb4\x05\xc7\xa7\xb3\x8c\xae\xfc\xe2\x89\xb2\x7b\x27\x1c\xcb\x9a\x69\x74\x46\xe5\x6a\x3e\x8e\xd9\x16\xa8\xae\xad\x7b\x57\x4c\x80\xe4\x3e\xae\xd1\x71\x8f\xd1\xba\x21\x86\xd7\xd5\x4d\x41\x5a\xc0\x15\x62\x64\x1c\x57\x08\x0c\x67\xc8\x7e\xdc\x66\x79\x03\xc3\x36\x59\x66\xd5\x16\xd9\x24\xaa\xeb\x05\x94\xf9\x12\x79\xa1\x99\x30\x26\xe6\xdd\x40\xcc\x50\xd6\xf1\x60\xb1\x90\xf4\x8e\xa6\xe7\xb9\xa0\xce\x28\xbf\xea\x3b\x65\x32\xe1\x57\xce\xfa\x35\x07\x64\x17\xf8\x32\xd9\x66\x14\xef\xa2\x0d\x72\xab\x3a\xa5\x44\x5e\xff\xcd\x24\x3c\x65\xd6\xd0\x58\x74\xce\x68\xc5\xaf\xad\x3d\x9e\x12\x9d\x9f\x17\x57\x31\x7c\x8e\x73\xc3\xe8\x0e\x6d\x17\x08\xae\xb4\xda\x3b\xd1\xf9\x80\x74\x6d\xdc\x5b\x71\x1f\xb2\x02\xad\x23\x35\xe8\xa5\x37\x94\xb9\x9e\x08\x7b\xca\x0b\x04\x63\xbf\x27\x97\xd0\x55\x52\x7d\x21\x62\xe9\xe1\xed\x08\xdf\xba\xc7\xe9\x21\x38\x78\x5e\x45\x62\xe2\x0b\x0b\x35\x91\x46\x44\x76\x2d\x95\xef\xd5\xc7\xec\x69\x3d\xe8\x36\xa1\x74\xb5\xf7\x6d\x86\xc3\x9a\x56\x23\xc0\x1f\x6f\x05\x96\x37\x24\xf7\x0b\x19\x5c\x20\x1b\x1b\x42\x5b\x48\x68\xbb\xef\xd5\x99\xf0\xae\xd0\xdf\xb7\xdf\xd3\x53\x20\xf3\x73\xbf\x09\xbe\x87\x5e\xa3\xf5\xa6\x54\x3c\x3d\x1b\xa5\xd6\x5c\xa0\x19\x96\xcb\xf4\xd9\x97\x9c\xac\xb4\xf3\xe6\x06\xb9\x9f\xb8\xd9\x86\x42\xbf\x3f\xb5\xab\x4a\x79\x4e\x6a\x22\x6a\x58\x2e\x93\xc2\x68\x4e\xe6\x99\xfd\xf5\x25\x68\x5c\x3b\x19\x4a\x2b\x02\x95\x2e\xe5\x97\xa4\xff\x36\x24\x34\x32\xb8\xfb\x0b\x73\xeb\xd0\x68\x74\x81\x6c\xd2\xf5\xd3\xa6\xaf\xaa\xd8\xfc\x40\x71\xf4\xce\x7c\x7d\xf8\xa5\x7c\xdc\x8b\x59\x5d\x42\x93\x20\xfb\xd2\x19\x8f\x25\x77\x4e\x75\x00\xee\xdf\x29\xce\x53\x23\xca\x87\x26\x3b\x4f\xf4\x57\x4c\x35\x4e\x91\xb6\x9f\x95\x83\x2a\x93\x34\x98\xbf\x70\x76\x54\x63\x11\x35\x22\x2e\xe5\xc5\x24\xe1\x95\xab\xeb\x24\x96\x12\xb9\x6e\xc0\xcd\x6e\x63\xba\xb9\x01\x49\xf8\x14\xcd\x36\xc1\x43\xae\xd9\xb5\x09\xeb\xe8\xdf\xdf\x11\x57\x59\xfe\x8a\x5b\x37\xe3\x73\x64\xbf\x37\xb4\xfe\xaf\x64\xf9\xf7\x0f\x6d\xdb\xce\xfa\x0e\xeb\xec\x1b\x08\x12\xd5\xb4\x55\xd9\x67\x81\xe4\xd1\xb1\xbd\x81\xd5\x7a\xde\xf5\xfa\xfd\xe8\xb8\x67\xba\x46\x0d\x28\x68\x92\x1c\xfc\x39\x92\x82\x6f\x43\x96\x3b\x96\xcf\xfa\x55\x9b\x15\x40\xb6\xee\xe0\xbd\x35\xcb\x79\x50\x28\xc0\xa9\x0d\x0a\x0d\x15\xb9\x3a\x7d\x19\x9d\x98\x6f\xe0\x0b\xde\x24\xb4\xde\xcb\xca\xee\xc1\xcc\xf6\xc3\x7d\x55\xb6\x60\x40\x3f\x8c\x8a\x1b\xf0\x51\xd8\xdd\xdd\x81\x8f\xda\xed\x7b\xb5\x1d\x9b\xef\xb7\xb1\x65\xbb\xee\x2a\x6a\x48\xe5\x01\xe0\xb8\xe7\xd3\x59\x49\x59\x2b\x15\xd8\x7a\x87\xad\x69\x19\x3a\xe7\x92\x44\x65\x41\xbc\xe9\x4e\x78\x05\x68\xa3\xa0\xb7\x35\x2e\x3b\xf3\xa8\x0f\x6e\x24\xd6\xc2\x96\xda\xeb\x87\xd9\x1b\xb9\x02\xc1\x7c\x94\x43\xe7\x57\x85\x90\xd5\x0b\x41\x0b\x98\x4b\xaa\x31\x39\xea\xe7\x42\xe3\x33\x38\xc7\xf9\xc0\x1e\x0b\x7a\x64\xf5\xb2\x68\xde\x0f\xf3\x00\xb9\xed\x26\x12\xed\x92\x82\x76\x41\xe1\xd0\x1d\x65\xfb\xdb\x7d\x77\xc7\x99\x88\x91\xc3\xea\xae\xa8\x9a\xb1\xb6\xae\xf5\x89\xcc\xf3\x1b\x3c\x53\xe1\x54\x55\x0d\x4b\x54\x0b\x75\xea\x85\xa2\x66\xb2\x1b\x4b\xab\xd4\x93\x95\xbd\x04\xd7\xff\xcd\xc5\x7c\xb7\xdf\x53\x5a\x8a\xb5\x3f\x18\x50\x3a\xca\xb3\x8f\x22\x35\xcb\xf8\xdd\x4f\x22\xb6\xd5\x31\xa3\x11\x88\x0d\xbd\x4a\x0b\xe1\x3f\xdb\x95\x0a\xed\x44\x72\xdc\xab\xa5\xb6\x56\x82\x90\x0b\xa7\x90\xdd\xd7\xba\x27\xf7\x53\x2a\xec\xda\xc1\x4d\xb1\xae\xfd\xd9\x81\xaf\x86\x35\xdd\xe2\xee\xb6\x83\xa0\x9f\x6f\x87\x83\x7e\x9d\x12\x6a\x33\xd6\x04\x75\x92\xab\xef\xd1\x0e\xec\x21\x0c\x86\xe0\x66\x27\xf6\x4d\xf3\x75\x7b\x69\xee\xd0\x31\x71\xa6\x6b\xbf\xa7\xf7\x79\x37\x29\xa9\xad\xb9\xfa\xbd\xb5\x7d\xd7\x8f\xb3\x84\x8e\xe1\xcd\xcd\x1e\x9a\xb0\xd0\x6c\xbb\x65\x3e\xdf\xf1\xb1\x8a\xde\x26\xff\xde\x99\x06\xc3\xcf\x16\x0d\x59\xbc\xfc\x4a\x34\x48\xb2\x2d\x86\x4f\xe4\x8b\x48\xe1\xe6\xc6\x3e\x78\x05\x7b\x2b\xfd\xdb\x5b\x20\xf7\xe8\x72\x99\x80\x68\xdf\xdc\xd0\x09\x30\x0d\xed\xcd\x81\x27\xf6\x9a\xc9\x8b\x38\x54\xb0\x47\xf7\xe1\x60\xb9\x4c\xc2\x71\x6a\x18\xc9\x1f\x17\xb0\x7e\x30\xcb\x03\x4b\xfa\xa7\x12\xcd\x76\xf8\x45\x1a\x81\xb7\xc9\x59\xc3\x62\x7c\xb7\x8d\xe9\xfb\x8d\xf6\x77\x35\x41\x1d\xea\x77\x76\x4d\xd7\x6e\xa3\xc4\xb5\xb0\x37\xde\xb3\xec\x99\x35\xc7\x30\x44\xae\xed\xca\x33\x40\xde\x6b\x0c\xd5\xce\xbd\xa8\xb1\x92\x6c\xe6\x4e\x8c\x75\xa9\x5b\x53\xfe\x4e\xa9\x44\xaf\x99\x77\xb2\x47\xe6\x99\x72\x93\x8b\xbd\xfb\x07\x07\x7f\xa9\x77\x07\xc7\x7a\x57\xc4\x3a\xd6\xc1\xe8\x54\x78\xf6\xee\xe0\xe3\x9e\x0e\x1a\x0c\x4f\xab\x1a\xf6\x0f\xf3\x34\x9c\x72\x1e\x87\x60\x72\x2f\xd5\x70\xfc\x19\x51\x1a\x92\xfa\xc6\xce\x19\xc7\xbd\x1d\x4c\x66\xce\x38\x97\xf6\x3b\xae\x25\xc5\x1d\xae\xb8\x89\xec\xfc\x8d\xac\x3a\xfd\x03\x0a\x49\x85\x6b\x54\x68\x49\x92\x64\xed\x37\x80\x78\x73\xe3\x9e\x21\x9f\xea\xc0\x66\x52\x0d\x67\x9c\xc7\x61\x7a\x2d\xed\x6d\x66\x19\x31\x1b\x29\x5f\xd2\x10\x1b\xcc\x6b\x20\xe9\xdd\x1b\x9a\x9e\x35\xe4\x4a\xbf\x50\xe1\x53\xca\x52\xc6\xcd\xb6\xe3\x5e\x7a\xea\x9e\x9d\xce\xf7\xc6\xc2\xbf\x1e\x3d\x7d\x72\xdc\x4b\xff\xac\xdf\xff\x06\x00\x00\xff\xff\x44\xd1\x78\x9e\xf0\x6f\x00\x00") func templatesIndexTmplBytes() ([]byte, error) { return bindataRead( @@ -965,7 +965,7 @@ func templatesIndexTmpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "templates/index.tmpl", size: 28249, mode: os.FileMode(493), modTime: time.Unix(1517377499, 0)} + info := bindataFileInfo{name: "templates/index.tmpl", size: 28656, mode: os.FileMode(493), modTime: time.Unix(1517377516, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/handlers.go b/handlers.go index 7eb4c62..12c3f74 100755 --- a/handlers.go +++ b/handlers.go @@ -356,6 +356,7 @@ func handlePageRequest(c *gin.Context) { "Debounce": debounceTime, "DiaryMode": diaryMode, "Date": time.Now().Format("2006-01-02"), + "UnixTime": time.Now().Unix(), }) } @@ -415,6 +416,7 @@ func handlePageUpdate(c *gin.Context) { type QueryJSON struct { Page string `json:"page"` NewText string `json:"new_text"` + FetchedAt int64 `json:"fetched_at"` IsEncrypted bool `json:"is_encrypted"` IsPrimed bool `json:"is_primed"` Meta string `json:"meta"` @@ -442,6 +444,8 @@ func handlePageUpdate(c *gin.Context) { message = "Locked, must unlock first" } else if p.IsEncrypted { message = "Encrypted, must decrypt first" + } else if json.FetchedAt > 0 && p.LastEditUnixTime() > json.FetchedAt { + message = "Refusing to overwrite others work" } else { p.Meta = json.Meta p.Update(json.NewText) @@ -455,7 +459,7 @@ func handlePageUpdate(c *gin.Context) { message = "Saved" success = true } - c.JSON(http.StatusOK, gin.H{"success": success, "message": message}) + c.JSON(http.StatusOK, gin.H{"success": success, "message": message, "unix_time": time.Now().Unix()}) } func handlePrime(c *gin.Context) { diff --git a/page.go b/page.go index df44845..0023597 100755 --- a/page.go +++ b/page.go @@ -27,6 +27,14 @@ type Page struct { IsPublished bool } +func (p Page) LastEditTime() time.Time { + return time.Unix(p.LastEditUnixTime(), 0) +} + +func (p Page) LastEditUnixTime() int64 { + return p.Text.LastEditTime() / 1000000000 +} + func Open(name string) (p *Page) { p = new(Page) p.Name = name diff --git a/templates/index.tmpl b/templates/index.tmpl index f020dcc..f48a5c4 100755 --- a/templates/index.tmpl +++ b/templates/index.tmpl @@ -182,18 +182,21 @@ body#pad textarea { upload(); }, {{ .Debounce }})); + var lastFetch = {{ .UnixTime }}; function upload() { $.ajax({ type: 'POST', url: '/update', data: JSON.stringify({ new_text: $('#userInput').val(), - page: "{{ .Page }}" + page: "{{ .Page }}", + fetched_at: lastFetch, }), success: function(data) { $('#saveEditButton').removeClass() if (data.success == true) { $('#saveEditButton').addClass("success"); + lastFetch = data.unix_time; } else { $('#saveEditButton').addClass("failure"); }