← Back to team overview

openlp-core team mailing list archive

Re: [Merge] lp:~minkus/openlp/searchfields into lp:openlp

 

Hi Chris, 

Welcome!

I've had a quick glance.
I see a few small issues. First is doc strings, please see my in-line comment.

Second is you don't have any unit tests. Preferably you'd write tests for the new methods you've added: display_results_topic, display_results_themes, display_results_cclinumber Your proposal will more than likely rejected with out tests.

Finally, whilst you're waiting for your code to be merged, you might want to keep it up to date every so often by merging trunk in to your code.
Assuming you checked out OpenLP in to a folder called trunk you would do this:

cd in to trunk
"bzr update"
cd in to your branch
"bzr merge ../trunk"
"bzr commit -m'head'"


Diff comments:

> === modified file 'openlp/core/resources.py'
> --- openlp/core/resources.py	2015-01-18 13:39:21 +0000
> +++ openlp/core/resources.py	2015-01-26 13:33:22 +0000
> @@ -83076,6 +83076,40 @@
>  \x45\x89\x7c\x8d\xf2\x2a\x3c\xf2\xcf\xe6\x64\x3a\x45\x2c\x1e\xff\
>  \x08\xf0\x0d\xb5\xd2\xd7\x39\x77\xc6\x6b\x4e\x00\x00\x00\x00\x49\
>  \x45\x4e\x44\xae\x42\x60\x82\
> +\x00\x00\x01\xf2\
> +\x89\
> +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
> +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
> +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
> +\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
> +\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
> +\xa8\x64\x00\x00\x00\x18\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\
> +\x72\x65\x00\x70\x61\x69\x6e\x74\x2e\x6e\x65\x74\x20\x34\x2e\x30\
> +\x2e\x35\x65\x85\x32\x65\x00\x00\x01\x63\x49\x44\x41\x54\x38\x4f\
> +\xa5\x93\x11\x54\x43\x51\x18\xc7\x2f\x0c\x06\x83\x41\x30\x08\x82\
> +\x41\x18\x04\x83\x20\x18\x06\x83\x20\x18\x0c\xc2\xc1\x60\x10\x76\
> +\x4e\x10\x0c\x82\x41\x10\x04\x41\x10\x84\xc1\x20\x18\x04\x83\x20\
> +\x08\x82\x20\x0c\x82\x20\x08\x5e\xbf\xff\x7d\xff\xb7\xf3\xee\x6b\
> +\xd0\x39\xbd\x73\x7e\xe7\xfc\xff\xdf\x77\xbf\x7b\xdf\xfd\xbe\xf7\
> +\x42\x96\x65\xff\xe2\x77\x20\x84\x06\x0c\xe1\x0a\x9e\x60\x06\x13\
> +\xe8\x54\xd7\xc6\xf5\x89\x09\x61\x17\x5e\x41\xe6\x05\x6e\x60\x0e\
> +\x9f\x8e\x9d\x41\x3d\xa9\x29\x15\xef\x79\xd1\x23\x6c\x25\x8b\x42\
> +\xa8\xc1\x29\x7c\xc3\x2c\xc9\x79\x41\x13\xde\xe0\x01\x6a\x8e\x1d\
> +\xc0\x14\x2e\xe1\x08\xd6\xa0\x0f\x4a\x8e\xab\x1b\x9c\xc0\x17\x6c\
> +\xda\xdf\x81\xc4\x3b\xe8\x0a\xca\x0d\x9c\x53\x6f\xe4\x1b\xe5\x0d\
> +\x54\x30\xb7\xd6\xc9\x12\x2a\x8c\xf7\xe5\x69\x41\xdb\xba\x0b\x12\
> +\xb1\xa9\xc5\x06\x3a\x69\x6a\xad\x46\x49\x8c\xe4\xab\xf0\xe8\x2a\
> +\x12\xc3\xe8\x1d\xd4\xfd\xcf\xad\xd5\x2c\x89\xe3\xa2\xa8\x0c\xcf\
> +\xba\xf3\x87\xd1\x3b\x78\x0b\x0b\xeb\x0e\x48\x68\x8c\xdb\x50\x87\
> +\x7d\xe8\x3a\x5f\x4c\x2b\x4e\xaa\xd8\x60\xe4\xe0\x8e\xfd\x18\x34\
> +\x32\x99\x82\xbe\x73\xf7\xa0\x2b\xe7\xd3\x72\x50\x73\xd6\xfc\x9f\
> +\xa1\xe9\x58\x1b\x74\xf2\x00\xf2\xd3\xf2\x71\x4a\xf4\xe4\x97\x1b\
> +\x38\xa9\xd7\xd5\x17\xa7\x7e\xf4\x20\x9e\xe0\x9c\xa6\x70\x0d\x32\
> +\xb1\x57\xcb\x5c\x62\x42\xd8\x00\xbd\xa2\x8c\x66\xbd\x00\x6d\x28\
> +\xff\x01\xf1\x5b\x48\x6a\xaa\x81\x18\xcc\xff\x09\xf5\xe5\x02\xf4\
> +\x23\xe9\x2a\xad\x95\x6b\x57\x05\xff\x4e\x16\x7e\x00\x00\x5d\xb5\
> +\xca\x12\xb1\x1e\x15\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
> +\x82\
>  \x00\x00\x03\x75\
>  \x89\
>  \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
> @@ -83518,6 +83552,71 @@
>  \x4c\xa6\xa4\x6a\x56\x87\x3d\x5e\xcf\x60\x28\x14\x1a\xe0\x9c\x3b\
>  \x39\xe7\xdb\x7b\xfe\x9f\x91\xfc\x17\xb9\x74\x8f\xb8\x3b\x01\x1d\
>  \xdc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
> +\x00\x00\x03\xe1\
> +\x89\
> +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
> +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
> +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x37\x5c\x00\x00\x37\x5c\
> +\x01\xcb\xc7\xa4\xb9\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\
> +\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x03\x53\x49\x44\x41\x54\x18\
> +\x19\x5d\xc1\x5f\x4c\x95\x65\x1c\x07\xf0\xef\xef\xf7\xbc\xe7\x7d\
> +\xe1\xc0\x39\x87\x38\x1d\x46\x07\x50\x32\x25\x45\x2e\xda\x59\xa1\
> +\x60\xe1\x14\xa7\xb0\xdc\x74\x63\xe6\xda\x6a\x45\xa3\x96\xda\xba\
> +\x49\xd7\x5a\x7f\xb6\x6e\x8a\x8b\x26\x37\x6d\xd5\x56\x5e\x94\x5d\
> +\xe4\x5a\xab\xab\x48\x6d\x2a\xcb\x0d\x94\xd8\x2a\x6b\x36\x35\x31\
> +\x48\x03\x44\x04\xde\xc3\x7b\xde\xf7\x7d\x9e\xe7\x17\x5b\x36\xb7\
> +\x3e\x1f\x6a\xdb\xd3\x8e\xd8\x0b\x41\x01\x83\x4a\x0a\x13\xdf\x05\
> +\xf0\xea\x75\xaa\x7d\xcf\x9a\x27\xaa\xeb\x2a\xb6\x3a\x1e\x67\x02\
> +\x3f\xba\x3c\xf9\xdb\xdc\xa7\xdb\xf7\xb5\x8c\xfd\x7c\x66\x92\x3e\
> +\x39\x74\x4c\xfa\x1f\xed\xc7\xa1\xbe\x67\x40\x72\x53\xb0\xeb\x8d\
> +\x6e\x88\x08\x2d\xcc\x94\xc4\x86\xb4\xaa\xe5\xf1\xda\xcf\xb3\xf5\
> +\x15\x1b\x95\x67\xc5\x52\x0c\xb1\x42\xc1\x82\x09\xa6\x2f\xfb\xaf\
> +\xef\x7d\xad\x30\xb0\x88\x12\x9e\xa4\x8f\xb1\x69\x73\x13\x68\xeb\
> +\xae\x6d\x98\xbe\xe8\xe3\xc2\xef\xc3\x00\xee\x51\x3d\x87\x1f\x3e\
> +\x51\xbb\x26\xb5\xc5\x51\x09\x0d\x06\x2b\x18\x90\x88\xa8\x84\xe2\
> +\xa5\x79\x43\x93\xe7\xe6\x77\xa3\x5c\xbe\x71\x3c\xc5\x3a\x34\x96\
> +\xda\x5e\x7a\x04\xe4\x09\x9b\x50\x2c\x6b\xd5\x91\x69\xe5\x33\x5e\
> +\xb9\x32\xcc\x0e\x3b\x2e\x13\x31\x09\x0b\x11\x09\xb4\x85\x75\x16\
> +\xaf\xc4\x5f\x35\xbc\x22\x3d\x0c\xd0\x07\xb4\x4e\x9c\xa8\x62\x09\
> +\x9c\x14\x88\x05\xe0\xbb\x2b\x8a\x46\xa3\x18\x0a\x94\x62\x4a\x88\
> +\x02\x81\xc8\x88\x85\xb5\xc2\x49\xe5\x22\x74\x6c\xc3\x47\xb4\x93\
> +\x01\xcf\xb6\xe6\x4f\xc1\xf1\x8a\x1e\x18\x16\x12\x03\x1c\x26\xae\
> +\x27\x5d\x81\x53\x49\xe4\x3a\x8e\x38\x4a\x11\x81\xa0\xc5\x40\x62\
> +\x48\x05\x97\x61\x9e\xa3\xbf\x0e\xca\xd7\x16\x00\xbd\x47\x5d\x42\
> +\x9d\x3d\x9d\xf0\xa7\x62\x5c\xfc\x81\x91\x84\x93\xec\x38\xea\x8f\
> +\x54\xd4\x73\x8b\x62\x65\x89\x89\x21\x90\x28\xd2\x14\x04\x62\x28\
> +\x22\x35\x37\xa6\x9f\x56\x59\x7d\x94\x18\x1c\xc5\xc6\x52\x33\xfa\
> +\xb0\x69\xf0\x57\x48\xa8\xd8\x68\xb1\x8b\x57\xb8\xb7\x71\x8b\x7b\
> +\x24\x95\x4c\x59\xb1\xc2\x81\x2d\xe2\xd6\xed\xd0\xea\x88\x58\x4f\
> +\x99\xe1\xcf\x9e\x2a\x6e\x06\xa2\x68\xdd\x83\x69\xa4\x57\x3a\xa0\
> +\xc2\xf6\x36\xa4\x4c\x1a\x63\xdf\xcf\x62\x11\xa3\x58\xc6\xaf\x9e\
> +\xec\x3e\xbe\x6a\x75\xbe\x53\x62\x36\x73\xf2\x37\x5f\x9f\xf1\x61\
> +\x7c\xa2\x99\xb3\x71\x77\x65\x2d\x06\x2d\xc0\x3a\x84\xcd\xfe\xb8\
> +\x16\x4e\x53\xd4\x8c\xc9\x51\x60\xef\x61\x86\x5b\xdd\xc5\x06\x91\
> +\x9d\x38\x1f\xbc\x5b\x9f\xd7\x9d\x95\x89\x34\x2b\xed\x5a\x4f\x25\
> +\xd4\xfc\x6c\xfc\xed\xb1\xb7\x9b\x07\x2f\x61\x9a\x9a\x68\xdc\x02\
> +\x6f\xa1\x75\xf7\x3b\x20\x2c\x6b\xdf\xf1\x18\x16\xfe\x48\x62\xea\
> +\xcf\x59\xcc\x84\xa3\x00\xaa\xdc\x37\x4f\x77\x8c\xd5\xd4\xa7\xd7\
> +\x07\x71\x10\xdf\xb8\x31\x9b\x98\x1a\xc5\xbe\x4c\x23\x7d\x28\x56\
> +\x38\x5a\xb2\xb6\xa6\x77\x08\x17\xaa\x5e\x06\x61\x59\x0b\x1f\xc0\
> +\x43\xfb\x27\xf0\xdc\xc1\x6d\x18\x39\x71\x95\x3d\xcf\xb5\x43\xc7\
> +\xc7\xbe\x6c\x5a\x7f\x7f\x4f\x29\x8c\xf4\x03\x8d\x6b\x9d\x81\xfe\
> +\xf7\x37\xc6\x3a\x1e\xb9\x37\x97\x65\x47\x39\x56\xcf\x57\xe3\xa7\
> +\x5f\x4e\x83\xf0\x3f\x07\x5e\x78\x51\xe5\x72\x39\x73\x6e\xf4\xfc\
> +\x91\xf6\x0d\x1b\x7a\xf3\x75\x2b\xcd\x7d\x75\x79\xd3\xbd\xb3\xab\
> +\x05\xc0\xa5\x72\xaf\x8c\x82\xb0\x24\xb8\x83\x71\x47\x3e\x5f\x8b\
> +\xe7\xfb\x9e\x85\x55\x1a\xb7\x16\x6e\x02\xca\xfa\x4b\x71\x11\x4e\
> +\x39\xd3\xb5\xc9\xab\x16\x80\xc6\xb2\x48\x97\xd0\xd0\x50\x87\xff\
> +\x10\xee\x52\x00\x5c\xa5\x54\x99\x31\x46\xd5\xd4\xe4\x56\x14\x0a\
> +\x85\x2f\x32\x99\xaa\xd5\xe3\xe3\xd7\xfa\x47\x46\x86\x07\x3c\xcf\
> +\x43\x18\x86\x01\x80\x10\x40\x0c\x40\x14\xee\x4a\x00\x48\x8a\x48\
> +\x8a\x99\xb3\xbe\x5f\x14\xcf\xf5\xce\x56\x67\xab\x4f\x0d\x0d\x0d\
> +\x9d\x34\xc6\xa4\x8d\x31\x0a\xff\x32\x00\x34\x00\xf9\x07\x3b\xee\
> +\x8c\x7e\x14\x4b\x96\xda\x00\x00\x00\x22\x7a\x54\x58\x74\x53\x6f\
> +\x66\x74\x77\x61\x72\x65\x00\x00\x78\xda\x2b\x2f\x2f\xd7\xcb\xcc\
> +\xcb\x2e\x4e\x4e\x2c\x48\xd5\xcb\x2f\x4a\x07\x00\x36\xd8\x06\x58\
> +\x10\x53\xca\x5c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
> +\
>  \x00\x00\x02\x5f\
>  \x89\
>  \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
> @@ -84014,6 +84113,34 @@
>  \xab\x99\x54\x50\x1c\x3c\x38\x84\x2f\xf9\x3c\xfc\x17\xd3\x96\x9e\
>  \xac\xde\x63\x08\x54\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\
>  \x82\
> +\x00\x00\x01\x93\
> +\x89\
> +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
> +\x00\x00\x10\x00\x00\x00\x10\x08\x03\x00\x00\x00\x28\x2d\x0f\x53\
> +\x00\x00\x00\x03\x73\x42\x49\x54\x08\x08\x08\xdb\xe1\x4f\xe0\x00\
> +\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\
> +\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\
> +\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\
> +\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x00\x81\x50\x4c\x54\
> +\x45\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x7e\x23\
> +\x4a\xaf\x4a\x50\xbc\x2a\x5e\xaa\x5e\x78\xc3\x67\x82\xde\x64\x8c\
> +\xc0\x8c\x97\xd1\x97\x9c\xd3\x9c\xae\xdb\xae\xbb\xbb\xbb\xc2\xc2\
> +\xc2\xc4\xc4\xc4\xc9\xc9\xc9\xca\xca\xca\xcb\xcb\xcb\xcc\xcc\xcc\
> +\xcd\xcd\xcd\xcf\xcf\xcf\xcf\xcf\xd1\xd0\xd0\xd0\xd3\xd3\xd3\xda\
> +\xda\xda\xdb\xdb\xdb\xde\xde\xde\xde\xde\xe0\xe2\xe2\xe2\xe6\xe6\
> +\xe6\xe9\xe9\xe9\xee\xee\xee\xf3\xf3\xf4\xf6\xf6\xf6\xf7\xf7\xf7\
> +\xf7\xf9\xf7\xf8\xfa\xf8\xf9\xf9\xf9\xfc\xfc\xfc\xfe\xfe\xfe\xff\
> +\xff\xff\x2b\x2d\x88\x9e\x00\x00\x00\x04\x74\x52\x4e\x53\x00\x1c\
> +\x3e\x3f\x51\x0c\x0a\xce\x00\x00\x00\x74\x49\x44\x41\x54\x78\xda\
> +\x85\xcf\xcb\x12\xc1\x40\x18\x44\xe1\x3f\x3d\xee\x77\x62\x86\x88\
> +\x4b\x18\x84\xf3\xfe\x0f\xa8\x8a\xa4\xd4\x94\x85\x6f\x79\x36\x5d\
> +\x6d\xff\x65\x92\xfb\x52\x66\xba\x24\x64\x3a\x24\x64\x6e\x93\x70\
> +\xe6\x48\xbc\xc3\x78\x04\xc7\xc2\xef\x77\x65\x68\x42\x7f\xca\x39\
> +\xc6\x78\xba\xc6\x26\xdc\xba\xf8\x55\xbe\x5d\x86\xaa\x0d\x13\xe0\
> +\xf9\x00\xda\x00\x8b\x30\x9b\xfb\xfa\x13\x86\x9d\x3b\x50\xb7\x2b\
> +\xa2\x37\x00\xd6\x65\x91\x57\x80\x4c\x24\xf4\x73\xee\x05\xef\xee\
> +\x16\x05\x5f\x26\x19\x13\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
> +\x60\x82\
>  \x00\x00\x03\xef\
>  \x89\
>  \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
> @@ -97194,6 +97321,11 @@
>  \x00\x8e\xa2\x87\
>  \x00\x62\
>  \x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
> +\x00\x14\
> +\x0e\x5e\x06\x47\
> +\x00\x73\
> +\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x73\x00\x65\x00\x61\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x63\x00\x6f\x00\x70\x00\x79\x00\x2e\
> +\x00\x70\x00\x6e\x00\x67\
>  \x00\x0f\
>  \x0e\xea\xff\x07\
>  \x00\x61\
> @@ -97239,6 +97371,11 @@
>  \x03\x95\xc6\xa7\
>  \x00\x74\
>  \x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
> +\x00\x15\
> +\x04\x93\x3c\x87\
> +\x00\x73\
> +\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x73\x00\x65\x00\x61\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x74\x00\x6f\x00\x70\x00\x69\x00\x63\
> +\x00\x2e\x00\x70\x00\x6e\x00\x67\
>  \x00\x13\
>  \x0a\xad\x32\x47\
>  \x00\x73\
> @@ -97272,6 +97409,11 @@
>  \x00\x61\
>  \x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x6e\x00\x61\x00\x6e\x00\x63\
>  \x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
> +\x00\x14\
> +\x02\x0e\x07\xa7\
> +\x00\x73\
> +\x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x73\x00\x65\x00\x61\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x63\x00\x63\x00\x6c\x00\x69\x00\x2e\
> +\x00\x70\x00\x6e\x00\x67\
>  \x00\x0d\
>  \x01\x6a\xa4\x07\
>  \x00\x74\
> @@ -97765,10 +97907,10 @@
>  
>  qt_resource_struct = b"\
>  \x00\x00\x00\x00\x00\x02\x00\x00\x00\x15\x00\x00\x00\x01\
> -\x00\x00\x01\x10\x00\x02\x00\x00\x00\x06\x00\x00\x00\xb0\
> -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\xac\
> -\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x09\x00\x00\x00\xa3\
> -\x00\x00\x00\xee\x00\x02\x00\x00\x00\x14\x00\x00\x00\x8f\
> +\x00\x00\x01\x10\x00\x02\x00\x00\x00\x06\x00\x00\x00\xb3\
> +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\xaf\
> +\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x09\x00\x00\x00\xa6\
> +\x00\x00\x00\xee\x00\x02\x00\x00\x00\x17\x00\x00\x00\x8f\
>  \x00\x00\x00\x3e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x8d\
>  \x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x8b\
>  \x00\x00\x00\xc4\x00\x02\x00\x00\x00\x1a\x00\x00\x00\x71\
> @@ -97794,70 +97936,70 @@
>  \x00\x00\x04\x62\x00\x00\x00\x00\x00\x01\x00\x05\xa5\x4f\
>  \x00\x00\x05\x22\x00\x00\x00\x00\x00\x01\x00\x10\x28\xd7\
>  \x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x05\x0a\xf8\
> -\x00\x00\x17\x88\x00\x00\x00\x00\x00\x01\x00\x17\x1c\x7b\
> -\x00\x00\x18\x04\x00\x00\x00\x00\x00\x01\x00\x17\x26\x42\
> -\x00\x00\x17\x62\x00\x00\x00\x00\x00\x01\x00\x17\x19\xa1\
> -\x00\x00\x16\xe8\x00\x00\x00\x00\x00\x01\x00\x17\x11\x89\
> -\x00\x00\x19\x44\x00\x00\x00\x00\x00\x01\x00\x17\x3f\x10\
> -\x00\x00\x17\x38\x00\x00\x00\x00\x00\x01\x00\x17\x17\x03\
> -\x00\x00\x17\xda\x00\x00\x00\x00\x00\x01\x00\x17\x23\x5d\
> -\x00\x00\x16\x86\x00\x00\x00\x00\x00\x01\x00\x17\x0a\x6f\
> -\x00\x00\x18\x80\x00\x00\x00\x00\x00\x01\x00\x17\x30\x66\
> -\x00\x00\x18\xf8\x00\x00\x00\x00\x00\x01\x00\x17\x38\x8a\
> -\x00\x00\x18\x2c\x00\x00\x00\x00\x00\x01\x00\x17\x29\xb6\
> -\x00\x00\x19\x1e\x00\x00\x00\x00\x00\x01\x00\x17\x3c\x3c\
> -\x00\x00\x16\xbe\x00\x00\x00\x00\x00\x01\x00\x17\x0f\x11\
> -\x00\x00\x18\xce\x00\x00\x00\x00\x00\x01\x00\x17\x36\x08\
> -\x00\x00\x17\x14\x00\x00\x00\x00\x00\x01\x00\x17\x14\xbc\
> -\x00\x00\x17\xae\x00\x00\x00\x00\x00\x01\x00\x17\x1e\xb2\
> -\x00\x00\x16\x62\x00\x00\x00\x00\x00\x01\x00\x17\x07\x72\
> -\x00\x00\x18\xa8\x00\x00\x00\x00\x00\x01\x00\x17\x32\x79\
> -\x00\x00\x18\x5a\x00\x00\x00\x00\x00\x01\x00\x17\x2e\x4f\
> +\x00\x00\x18\x14\x00\x00\x00\x00\x00\x01\x00\x17\x23\xed\
> +\x00\x00\x18\x90\x00\x00\x00\x00\x00\x01\x00\x17\x2d\xb4\
> +\x00\x00\x17\xee\x00\x00\x00\x00\x00\x01\x00\x17\x21\x13\
> +\x00\x00\x17\x74\x00\x00\x00\x00\x00\x01\x00\x17\x18\xfb\
> +\x00\x00\x19\xd0\x00\x00\x00\x00\x00\x01\x00\x17\x46\x82\
> +\x00\x00\x17\xc4\x00\x00\x00\x00\x00\x01\x00\x17\x1e\x75\
> +\x00\x00\x18\x66\x00\x00\x00\x00\x00\x01\x00\x17\x2a\xcf\
> +\x00\x00\x17\x12\x00\x00\x00\x00\x00\x01\x00\x17\x11\xe1\
> +\x00\x00\x19\x0c\x00\x00\x00\x00\x00\x01\x00\x17\x37\xd8\
> +\x00\x00\x19\x84\x00\x00\x00\x00\x00\x01\x00\x17\x3f\xfc\
> +\x00\x00\x18\xb8\x00\x00\x00\x00\x00\x01\x00\x17\x31\x28\
> +\x00\x00\x19\xaa\x00\x00\x00\x00\x00\x01\x00\x17\x43\xae\
> +\x00\x00\x17\x4a\x00\x00\x00\x00\x00\x01\x00\x17\x16\x83\
> +\x00\x00\x19\x5a\x00\x00\x00\x00\x00\x01\x00\x17\x3d\x7a\
> +\x00\x00\x17\xa0\x00\x00\x00\x00\x00\x01\x00\x17\x1c\x2e\
> +\x00\x00\x18\x3a\x00\x00\x00\x00\x00\x01\x00\x17\x26\x24\
> +\x00\x00\x16\xee\x00\x00\x00\x00\x00\x01\x00\x17\x0e\xe4\
> +\x00\x00\x19\x34\x00\x00\x00\x00\x00\x01\x00\x17\x39\xeb\
> +\x00\x00\x18\xe6\x00\x00\x00\x00\x00\x01\x00\x17\x35\xc1\
>  \x00\x00\x03\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\
> -\x00\x00\x13\x22\x00\x00\x00\x00\x00\x01\x00\x15\x88\xea\
> -\x00\x00\x13\xa2\x00\x00\x00\x00\x00\x01\x00\x15\x8f\xb0\
> -\x00\x00\x12\xa6\x00\x00\x00\x00\x00\x01\x00\x15\x81\xe6\
> -\x00\x00\x13\x4a\x00\x00\x00\x00\x00\x01\x00\x15\x8b\x8a\
> -\x00\x00\x13\xcc\x00\x00\x00\x00\x00\x01\x00\x15\x92\x7b\
> -\x00\x00\x12\xf0\x00\x00\x00\x00\x00\x01\x00\x15\x87\x00\
> -\x00\x00\x12\xca\x00\x00\x00\x00\x00\x01\x00\x15\x84\x8d\
> -\x00\x00\x13\x80\x00\x00\x00\x00\x00\x01\x00\x15\x8d\x0c\
> +\x00\x00\x13\xae\x00\x00\x00\x00\x00\x01\x00\x15\x90\x5c\
> +\x00\x00\x14\x2e\x00\x00\x00\x00\x00\x01\x00\x15\x97\x22\
> +\x00\x00\x13\x32\x00\x00\x00\x00\x00\x01\x00\x15\x89\x58\
> +\x00\x00\x13\xd6\x00\x00\x00\x00\x00\x01\x00\x15\x92\xfc\
> +\x00\x00\x14\x58\x00\x00\x00\x00\x00\x01\x00\x15\x99\xed\
> +\x00\x00\x13\x7c\x00\x00\x00\x00\x00\x01\x00\x15\x8e\x72\
> +\x00\x00\x13\x56\x00\x00\x00\x00\x00\x01\x00\x15\x8b\xff\
> +\x00\x00\x14\x0c\x00\x00\x00\x00\x00\x01\x00\x15\x94\x7e\
>  \x00\x00\x01\x98\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
>  \x00\x00\x01\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\
>  \x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\
> -\x00\x00\x15\xb2\x00\x00\x00\x00\x00\x01\x00\x15\xad\xc9\
> -\x00\x00\x15\xdc\x00\x00\x00\x00\x00\x01\x00\x15\xb3\x33\
> -\x00\x00\x16\x0c\x00\x00\x00\x00\x00\x01\x00\x16\x21\xbc\
> -\x00\x00\x16\x2c\x00\x00\x00\x00\x00\x01\x00\x16\x28\x6d\
> -\x00\x00\x1a\x0a\x00\x00\x00\x00\x00\x01\x00\x17\x4c\xd7\
> -\x00\x00\x19\xb0\x00\x00\x00\x00\x00\x01\x00\x17\x47\xd6\
> -\x00\x00\x1c\x26\x00\x00\x00\x00\x00\x01\x00\x17\x76\xdc\
> -\x00\x00\x1a\xb0\x00\x00\x00\x00\x00\x01\x00\x17\x54\xe1\
> -\x00\x00\x1a\x4c\x00\x00\x00\x00\x00\x01\x00\x17\x50\x2a\
> -\x00\x00\x19\xd6\x00\x00\x00\x00\x00\x01\x00\x17\x4b\x07\
> -\x00\x00\x1b\x78\x00\x00\x00\x00\x00\x01\x00\x17\x67\xb7\
> -\x00\x00\x1b\x16\x00\x00\x00\x00\x00\x01\x00\x17\x5f\x87\
> -\x00\x00\x1c\x4c\x00\x00\x00\x00\x00\x01\x00\x17\x79\xbe\
> -\x00\x00\x1b\xf2\x00\x00\x00\x00\x00\x01\x00\x17\x72\xff\
> -\x00\x00\x1b\x42\x00\x00\x00\x00\x00\x01\x00\x17\x64\x93\
> -\x00\x00\x1c\x7e\x00\x00\x00\x00\x00\x01\x00\x17\x7d\x7b\
> -\x00\x00\x1b\x9a\x00\x00\x00\x00\x00\x01\x00\x17\x6c\x26\
> -\x00\x00\x1a\xde\x00\x00\x00\x00\x00\x01\x00\x17\x5d\x11\
> -\x00\x00\x1b\xc8\x00\x00\x00\x00\x00\x01\x00\x17\x70\x77\
> -\x00\x00\x1a\x7a\x00\x00\x00\x00\x00\x01\x00\x17\x52\x31\
> -\x00\x00\x0b\xae\x00\x00\x00\x00\x00\x01\x00\x14\x80\x2f\
> -\x00\x00\x0b\xce\x00\x00\x00\x00\x00\x01\x00\x14\x84\x0c\
> -\x00\x00\x0b\x88\x00\x00\x00\x00\x00\x01\x00\x14\x7d\x91\
> -\x00\x00\x14\x90\x00\x00\x00\x00\x00\x01\x00\x15\x9c\x97\
> -\x00\x00\x15\x2e\x00\x00\x00\x00\x00\x01\x00\x15\xa7\x0c\
> -\x00\x00\x15\x88\x00\x00\x00\x00\x00\x01\x00\x15\xab\xc5\
> -\x00\x00\x14\x26\x00\x00\x00\x00\x00\x01\x00\x15\x98\xa7\
> -\x00\x00\x15\x0a\x00\x00\x00\x00\x00\x01\x00\x15\xa3\xd9\
> -\x00\x00\x14\x5a\x00\x00\x00\x00\x00\x01\x00\x15\x9a\x9e\
> -\x00\x00\x14\xc4\x00\x00\x00\x00\x00\x01\x00\x15\x9e\x95\
> -\x00\x00\x14\xe6\x00\x00\x00\x00\x00\x01\x00\x15\xa0\xa8\
> -\x00\x00\x15\x64\x00\x00\x00\x00\x00\x01\x00\x15\xa8\xf4\
> -\x00\x00\x13\xfe\x00\x00\x00\x00\x00\x01\x00\x15\x95\xeb\
> +\x00\x00\x16\x3e\x00\x00\x00\x00\x00\x01\x00\x15\xb5\x3b\
> +\x00\x00\x16\x68\x00\x00\x00\x00\x00\x01\x00\x15\xba\xa5\
> +\x00\x00\x16\x98\x00\x00\x00\x00\x00\x01\x00\x16\x29\x2e\
> +\x00\x00\x16\xb8\x00\x00\x00\x00\x00\x01\x00\x16\x2f\xdf\
> +\x00\x00\x1a\x96\x00\x00\x00\x00\x00\x01\x00\x17\x54\x49\
> +\x00\x00\x1a\x3c\x00\x00\x00\x00\x00\x01\x00\x17\x4f\x48\
> +\x00\x00\x1c\xb2\x00\x00\x00\x00\x00\x01\x00\x17\x7e\x4e\
> +\x00\x00\x1b\x3c\x00\x00\x00\x00\x00\x01\x00\x17\x5c\x53\
> +\x00\x00\x1a\xd8\x00\x00\x00\x00\x00\x01\x00\x17\x57\x9c\
> +\x00\x00\x1a\x62\x00\x00\x00\x00\x00\x01\x00\x17\x52\x79\
> +\x00\x00\x1c\x04\x00\x00\x00\x00\x00\x01\x00\x17\x6f\x29\
> +\x00\x00\x1b\xa2\x00\x00\x00\x00\x00\x01\x00\x17\x66\xf9\
> +\x00\x00\x1c\xd8\x00\x00\x00\x00\x00\x01\x00\x17\x81\x30\
> +\x00\x00\x1c\x7e\x00\x00\x00\x00\x00\x01\x00\x17\x7a\x71\
> +\x00\x00\x1b\xce\x00\x00\x00\x00\x00\x01\x00\x17\x6c\x05\
> +\x00\x00\x1d\x0a\x00\x00\x00\x00\x00\x01\x00\x17\x84\xed\
> +\x00\x00\x1c\x26\x00\x00\x00\x00\x00\x01\x00\x17\x73\x98\
> +\x00\x00\x1b\x6a\x00\x00\x00\x00\x00\x01\x00\x17\x64\x83\
> +\x00\x00\x1c\x54\x00\x00\x00\x00\x00\x01\x00\x17\x77\xe9\
> +\x00\x00\x1b\x06\x00\x00\x00\x00\x00\x01\x00\x17\x59\xa3\
> +\x00\x00\x0c\x3a\x00\x00\x00\x00\x00\x01\x00\x14\x87\xa1\
> +\x00\x00\x0c\x5a\x00\x00\x00\x00\x00\x01\x00\x14\x8b\x7e\
> +\x00\x00\x0c\x14\x00\x00\x00\x00\x00\x01\x00\x14\x85\x03\
> +\x00\x00\x15\x1c\x00\x00\x00\x00\x00\x01\x00\x15\xa4\x09\
> +\x00\x00\x15\xba\x00\x00\x00\x00\x00\x01\x00\x15\xae\x7e\
> +\x00\x00\x16\x14\x00\x00\x00\x00\x00\x01\x00\x15\xb3\x37\
> +\x00\x00\x14\xb2\x00\x00\x00\x00\x00\x01\x00\x15\xa0\x19\
> +\x00\x00\x15\x96\x00\x00\x00\x00\x00\x01\x00\x15\xab\x4b\
> +\x00\x00\x14\xe6\x00\x00\x00\x00\x00\x01\x00\x15\xa2\x10\
> +\x00\x00\x15\x50\x00\x00\x00\x00\x00\x01\x00\x15\xa6\x07\
> +\x00\x00\x15\x72\x00\x00\x00\x00\x00\x01\x00\x15\xa8\x1a\
> +\x00\x00\x15\xf0\x00\x00\x00\x00\x00\x01\x00\x15\xb0\x66\
> +\x00\x00\x14\x8a\x00\x00\x00\x00\x00\x01\x00\x15\x9d\x5d\
>  \x00\x00\x08\x06\x00\x00\x00\x00\x00\x01\x00\x14\x30\xd7\
>  \x00\x00\x08\x2c\x00\x00\x00\x00\x00\x01\x00\x14\x33\x3b\
>  \x00\x00\x07\xe2\x00\x00\x00\x00\x00\x01\x00\x14\x2e\x92\
> @@ -97877,69 +98019,72 @@
>  \x00\x00\x05\x9a\x00\x00\x00\x00\x00\x01\x00\x12\xd1\xac\
>  \x00\x00\x06\x34\x00\x00\x00\x00\x00\x01\x00\x12\xd7\xc5\
>  \x00\x00\x06\x02\x00\x00\x00\x00\x00\x01\x00\x12\xd5\xfd\
> -\x00\x00\x0d\x98\x00\x00\x00\x00\x00\x01\x00\x14\xc5\x23\
> -\x00\x00\x10\xf0\x00\x00\x00\x00\x00\x01\x00\x15\x27\x5f\
> -\x00\x00\x10\x9a\x00\x00\x00\x00\x00\x01\x00\x15\x13\xcb\
> -\x00\x00\x0c\xc6\x00\x00\x00\x00\x00\x01\x00\x14\xa2\x9e\
> -\x00\x00\x0d\xf6\x00\x00\x00\x00\x00\x01\x00\x14\xc9\x75\
> -\x00\x00\x0d\xc6\x00\x00\x00\x00\x00\x01\x00\x14\xc5\xd1\
> -\x00\x00\x0f\x3a\x00\x00\x00\x00\x00\x01\x00\x14\xf9\xbb\
> -\x00\x00\x0e\x4c\x00\x00\x00\x00\x00\x01\x00\x14\xde\x54\
> -\x00\x00\x0f\xa6\x00\x00\x00\x00\x00\x01\x00\x14\xff\xa2\
> -\x00\x00\x10\x36\x00\x00\x00\x00\x00\x01\x00\x15\x09\x4b\
> -\x00\x00\x0e\x74\x00\x00\x00\x00\x00\x01\x00\x14\xec\xfd\
> -\x00\x00\x10\x06\x00\x00\x00\x00\x00\x01\x00\x15\x05\xfd\
> -\x00\x00\x0e\xb0\x00\x00\x00\x00\x00\x01\x00\x14\xf0\x99\
> -\x00\x00\x0f\x72\x00\x00\x00\x00\x00\x01\x00\x14\xfc\x4b\
> -\x00\x00\x0e\xf2\x00\x00\x00\x00\x00\x01\x00\x14\xf4\x2f\
> -\x00\x00\x10\xc6\x00\x00\x00\x00\x00\x01\x00\x15\x24\xa5\
> -\x00\x00\x0c\xa0\x00\x00\x00\x00\x00\x01\x00\x14\x91\xf0\
> -\x00\x00\x0d\x3c\x00\x00\x00\x00\x00\x01\x00\x14\xb0\xac\
> -\x00\x00\x0d\x06\x00\x00\x00\x00\x00\x01\x00\x14\xad\x51\
> -\x00\x00\x0c\x62\x00\x00\x00\x00\x00\x01\x00\x14\x8e\x45\
> -\x00\x00\x0c\x30\x00\x00\x00\x00\x00\x01\x00\x14\x8a\xc8\
> -\x00\x00\x0d\x66\x00\x00\x00\x00\x00\x01\x00\x14\xb3\x98\
> -\x00\x00\x0e\x1e\x00\x00\x00\x00\x00\x01\x00\x14\xcc\x86\
> -\x00\x00\x0f\xd0\x00\x00\x00\x00\x00\x01\x00\x15\x02\x7c\
> -\x00\x00\x10\x60\x00\x00\x00\x00\x00\x01\x00\x15\x0a\xae\
> -\x00\x00\x0b\xf0\x00\x00\x00\x00\x00\x01\x00\x14\x87\x46\
> -\x00\x00\x1c\xa2\x00\x00\x00\x00\x00\x01\x00\x17\x81\x2e\
> -\x00\x00\x1c\xd6\x00\x00\x00\x00\x00\x01\x00\x17\x83\xfe\
> -\x00\x00\x19\x6c\x00\x00\x00\x00\x00\x01\x00\x17\x42\x55\
> -\x00\x00\x19\x90\x00\x00\x00\x00\x00\x01\x00\x17\x45\x53\
> +\x00\x00\x0e\x24\x00\x00\x00\x00\x00\x01\x00\x14\xcc\x95\
> +\x00\x00\x11\x7c\x00\x00\x00\x00\x00\x01\x00\x15\x2e\xd1\
> +\x00\x00\x11\x26\x00\x00\x00\x00\x00\x01\x00\x15\x1b\x3d\
> +\x00\x00\x0d\x52\x00\x00\x00\x00\x00\x01\x00\x14\xaa\x10\
> +\x00\x00\x0e\x82\x00\x00\x00\x00\x00\x01\x00\x14\xd0\xe7\
> +\x00\x00\x0e\x52\x00\x00\x00\x00\x00\x01\x00\x14\xcd\x43\
> +\x00\x00\x0f\xc6\x00\x00\x00\x00\x00\x01\x00\x15\x01\x2d\
> +\x00\x00\x0e\xd8\x00\x00\x00\x00\x00\x01\x00\x14\xe5\xc6\
> +\x00\x00\x10\x32\x00\x00\x00\x00\x00\x01\x00\x15\x07\x14\
> +\x00\x00\x10\xc2\x00\x00\x00\x00\x00\x01\x00\x15\x10\xbd\
> +\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x01\x00\x14\xf4\x6f\
> +\x00\x00\x10\x92\x00\x00\x00\x00\x00\x01\x00\x15\x0d\x6f\
> +\x00\x00\x0f\x3c\x00\x00\x00\x00\x00\x01\x00\x14\xf8\x0b\
> +\x00\x00\x0f\xfe\x00\x00\x00\x00\x00\x01\x00\x15\x03\xbd\
> +\x00\x00\x0f\x7e\x00\x00\x00\x00\x00\x01\x00\x14\xfb\xa1\
> +\x00\x00\x11\x52\x00\x00\x00\x00\x00\x01\x00\x15\x2c\x17\
> +\x00\x00\x0d\x2c\x00\x00\x00\x00\x00\x01\x00\x14\x99\x62\
> +\x00\x00\x0d\xc8\x00\x00\x00\x00\x00\x01\x00\x14\xb8\x1e\
> +\x00\x00\x0d\x92\x00\x00\x00\x00\x00\x01\x00\x14\xb4\xc3\
> +\x00\x00\x0c\xee\x00\x00\x00\x00\x00\x01\x00\x14\x95\xb7\
> +\x00\x00\x0c\xbc\x00\x00\x00\x00\x00\x01\x00\x14\x92\x3a\
> +\x00\x00\x0d\xf2\x00\x00\x00\x00\x00\x01\x00\x14\xbb\x0a\
> +\x00\x00\x0e\xaa\x00\x00\x00\x00\x00\x01\x00\x14\xd3\xf8\
> +\x00\x00\x10\x5c\x00\x00\x00\x00\x00\x01\x00\x15\x09\xee\
> +\x00\x00\x10\xec\x00\x00\x00\x00\x00\x01\x00\x15\x12\x20\
> +\x00\x00\x0c\x7c\x00\x00\x00\x00\x00\x01\x00\x14\x8e\xb8\
> +\x00\x00\x1d\x2e\x00\x00\x00\x00\x00\x01\x00\x17\x88\xa0\
> +\x00\x00\x1d\x62\x00\x00\x00\x00\x00\x01\x00\x17\x8b\x70\
> +\x00\x00\x19\xf8\x00\x00\x00\x00\x00\x01\x00\x17\x49\xc7\
> +\x00\x00\x1a\x1c\x00\x00\x00\x00\x00\x01\x00\x17\x4c\xc5\
>  \x00\x00\x08\x84\x00\x00\x00\x00\x00\x01\x00\x14\x3e\x6a\
> -\x00\x00\x09\x62\x00\x00\x00\x00\x00\x01\x00\x14\x4e\xba\
> -\x00\x00\x0b\x68\x00\x00\x00\x00\x00\x01\x00\x14\x79\x9e\
> -\x00\x00\x0b\x36\x00\x00\x00\x00\x00\x01\x00\x14\x72\x88\
> -\x00\x00\x0a\x1c\x00\x00\x00\x00\x00\x01\x00\x14\x57\x88\
> -\x00\x00\x08\xcc\x00\x00\x00\x00\x00\x01\x00\x14\x44\xcf\
> -\x00\x00\x0a\xbc\x00\x00\x00\x00\x00\x01\x00\x14\x6a\x47\
> -\x00\x00\x0a\xe6\x00\x00\x00\x00\x00\x01\x00\x14\x6c\x7c\
> -\x00\x00\x09\xbc\x00\x00\x00\x00\x00\x01\x00\x14\x53\x6b\
> -\x00\x00\x09\xea\x00\x00\x00\x00\x00\x01\x00\x14\x55\xeb\
> -\x00\x00\x08\xf0\x00\x00\x00\x00\x00\x01\x00\x14\x47\x6d\
> -\x00\x00\x09\x42\x00\x00\x00\x00\x00\x01\x00\x14\x4b\xae\
> -\x00\x00\x09\x8a\x00\x00\x00\x00\x00\x01\x00\x14\x52\x18\
> -\x00\x00\x0a\x6e\x00\x00\x00\x00\x00\x01\x00\x14\x5d\xfd\
> -\x00\x00\x0a\x42\x00\x00\x00\x00\x00\x01\x00\x14\x5b\x9a\
> -\x00\x00\x0b\x08\x00\x00\x00\x00\x00\x01\x00\x14\x70\x80\
> +\x00\x00\x09\x90\x00\x00\x00\x00\x00\x01\x00\x14\x50\xb0\
> +\x00\x00\x0b\xf4\x00\x00\x00\x00\x00\x01\x00\x14\x81\x10\
> +\x00\x00\x0b\x94\x00\x00\x00\x00\x00\x01\x00\x14\x78\x63\
> +\x00\x00\x0b\xc6\x00\x00\x00\x00\x00\x01\x00\x14\x7f\x79\
> +\x00\x00\x0a\x4a\x00\x00\x00\x00\x00\x01\x00\x14\x59\x7e\
> +\x00\x00\x0a\x70\x00\x00\x00\x00\x00\x01\x00\x14\x5d\x90\
> +\x00\x00\x08\xfa\x00\x00\x00\x00\x00\x01\x00\x14\x46\xc5\
> +\x00\x00\x0b\x1a\x00\x00\x00\x00\x00\x01\x00\x14\x70\x22\
> +\x00\x00\x0b\x44\x00\x00\x00\x00\x00\x01\x00\x14\x72\x57\
> +\x00\x00\x09\xea\x00\x00\x00\x00\x00\x01\x00\x14\x55\x61\
> +\x00\x00\x0a\x18\x00\x00\x00\x00\x00\x01\x00\x14\x57\xe1\
> +\x00\x00\x09\x1e\x00\x00\x00\x00\x00\x01\x00\x14\x49\x63\
> +\x00\x00\x09\x70\x00\x00\x00\x00\x00\x01\x00\x14\x4d\xa4\
> +\x00\x00\x09\xb8\x00\x00\x00\x00\x00\x01\x00\x14\x54\x0e\
> +\x00\x00\x0a\xcc\x00\x00\x00\x00\x00\x01\x00\x14\x63\xd8\
> +\x00\x00\x0a\xa0\x00\x00\x00\x00\x00\x01\x00\x14\x61\x75\
> +\x00\x00\x0b\x66\x00\x00\x00\x00\x00\x01\x00\x14\x76\x5b\
>  \x00\x00\x08\x56\x00\x00\x00\x00\x00\x01\x00\x14\x37\xac\
>  \x00\x00\x08\xa8\x00\x00\x00\x00\x00\x01\x00\x14\x41\x56\
> -\x00\x00\x09\x20\x00\x00\x00\x00\x00\x01\x00\x14\x48\x66\
> -\x00\x00\x0a\x8c\x00\x00\x00\x00\x00\x01\x00\x14\x60\x9f\
> -\x00\x00\x12\x38\x00\x00\x00\x00\x00\x01\x00\x15\x70\x1d\
> -\x00\x00\x11\x8e\x00\x00\x00\x00\x00\x01\x00\x15\x5e\xe2\
> -\x00\x00\x11\xc2\x00\x00\x00\x00\x00\x01\x00\x15\x61\xe5\
> -\x00\x00\x12\x60\x00\x00\x00\x00\x00\x01\x00\x15\x78\x29\
> -\x00\x00\x11\x5e\x00\x00\x00\x00\x00\x01\x00\x15\x5c\x89\
> -\x00\x00\x12\x08\x00\x00\x00\x00\x00\x01\x00\x15\x6c\xea\
> -\x00\x00\x12\x82\x00\x00\x00\x00\x00\x01\x00\x15\x7a\xff\
> -\x00\x00\x11\x1c\x00\x00\x00\x00\x00\x01\x00\x15\x28\xe4\
> -\x00\x00\x11\xe4\x00\x00\x00\x00\x00\x01\x00\x15\x65\xb8\
> -\x00\x00\x1d\x06\x00\x00\x00\x00\x00\x01\x00\x17\x86\xf7\
> -\x00\x00\x1d\x68\x00\x00\x00\x00\x00\x01\x00\x17\x8d\x6d\
> -\x00\x00\x1d\x3a\x00\x00\x00\x00\x00\x01\x00\x17\x8a\x59\
> -\x00\x00\x1d\x90\x00\x00\x00\x00\x00\x01\x00\x17\x90\x0b\
> +\x00\x00\x08\xd6\x00\x00\x00\x00\x00\x01\x00\x14\x43\x4c\
> +\x00\x00\x09\x4e\x00\x00\x00\x00\x00\x01\x00\x14\x4a\x5c\
> +\x00\x00\x0a\xea\x00\x00\x00\x00\x00\x01\x00\x14\x66\x7a\
> +\x00\x00\x12\xc4\x00\x00\x00\x00\x00\x01\x00\x15\x77\x8f\
> +\x00\x00\x12\x1a\x00\x00\x00\x00\x00\x01\x00\x15\x66\x54\
> +\x00\x00\x12\x4e\x00\x00\x00\x00\x00\x01\x00\x15\x69\x57\
> +\x00\x00\x12\xec\x00\x00\x00\x00\x00\x01\x00\x15\x7f\x9b\
> +\x00\x00\x11\xea\x00\x00\x00\x00\x00\x01\x00\x15\x63\xfb\
> +\x00\x00\x12\x94\x00\x00\x00\x00\x00\x01\x00\x15\x74\x5c\
> +\x00\x00\x13\x0e\x00\x00\x00\x00\x00\x01\x00\x15\x82\x71\
> +\x00\x00\x11\xa8\x00\x00\x00\x00\x00\x01\x00\x15\x30\x56\
> +\x00\x00\x12\x70\x00\x00\x00\x00\x00\x01\x00\x15\x6d\x2a\
> +\x00\x00\x1d\x92\x00\x00\x00\x00\x00\x01\x00\x17\x8e\x69\
> +\x00\x00\x1d\xf4\x00\x00\x00\x00\x00\x01\x00\x17\x94\xdf\
> +\x00\x00\x1d\xc6\x00\x00\x00\x00\x00\x01\x00\x17\x91\xcb\
> +\x00\x00\x1e\x1c\x00\x00\x00\x00\x00\x01\x00\x17\x97\x7d\
>  \x00\x00\x07\x4a\x00\x00\x00\x00\x00\x01\x00\x13\x1c\x71\
>  \x00\x00\x06\xea\x00\x00\x00\x00\x00\x01\x00\x12\xed\x31\
>  \x00\x00\x06\xba\x00\x00\x00\x00\x00\x01\x00\x12\xe2\x9d\
> 
> === modified file 'openlp/plugins/songs/lib/mediaitem.py'
> --- openlp/plugins/songs/lib/mediaitem.py	2015-01-18 13:39:21 +0000
> +++ openlp/plugins/songs/lib/mediaitem.py	2015-01-26 13:33:22 +0000
> @@ -26,7 +26,7 @@
>  import shutil
>  
>  from PyQt4 import QtCore, QtGui
> -from sqlalchemy.sql import or_
> +from sqlalchemy.sql import and_, or_
>  
>  from openlp.core.common import Registry, AppLocation, Settings, check_directory_exists, UiStrings, translate
>  from openlp.core.lib import MediaManagerItem, ItemCapabilities, PluginStatus, ServiceItemContext, \
> @@ -37,7 +37,7 @@
>  from openlp.plugins.songs.forms.songimportform import SongImportForm
>  from openlp.plugins.songs.forms.songexportform import SongExportForm
>  from openlp.plugins.songs.lib import VerseType, clean_string, delete_song
> -from openlp.plugins.songs.lib.db import Author, AuthorType, Song, Book, MediaFile
> +from openlp.plugins.songs.lib.db import Author, AuthorType, Song, Book, MediaFile, Topic
>  from openlp.plugins.songs.lib.ui import SongStrings
>  from openlp.plugins.songs.lib.openlyricsxml import OpenLyrics, SongXML
>  
> @@ -52,8 +52,11 @@
>      Titles = 2
>      Lyrics = 3
>      Authors = 4
> -    Books = 5
> -    Themes = 6
> +    Topics = 5
> +    Books = 6
> +    Themes = 7
> +    Copyright = 8
> +    CCLInumber = 9
>  
>  
>  class SongMediaItem(MediaManagerItem):
> @@ -147,9 +150,17 @@
>                  translate('SongsPlugin.MediaItem', 'Search Lyrics...')),
>              (SongSearch.Authors, ':/songs/song_search_author.png', SongStrings.Authors,
>                  translate('SongsPlugin.MediaItem', 'Search Authors...')),
> +            (SongSearch.Topics, ':/songs/song_search_topic.png', SongStrings.Topics,
> +                translate('SongsPlugin.MediaItem', 'Search Topics...')),
>              (SongSearch.Books, ':/songs/song_book_edit.png', SongStrings.SongBooks,
>                  translate('SongsPlugin.MediaItem', 'Search Song Books...')),
> -            (SongSearch.Themes, ':/slides/slide_theme.png', UiStrings().Themes, UiStrings().SearchThemes)
> +            (SongSearch.Themes, ':/slides/slide_theme.png', UiStrings().Themes, UiStrings().SearchThemes),
> +            (SongSearch.Copyright, ':/songs/song_search_copy.png',
> +                translate('SongsPlugin.MediaItem', 'Copyright'),
> +                translate('SongsPlugin.MediaItem', 'Search Copyright...')),
> +            (SongSearch.CCLInumber, ':/songs/song_search_ccli.png',
> +                translate('SongsPlugin.MediaItem', 'CCLI number'),
> +                translate('SongsPlugin.MediaItem', 'Search CCLI number...'))
>          ])
>          self.search_text_edit.set_current_search_type(Settings().value('%s/last search type' % self.settings_section))
>          self.config_update()
> @@ -180,6 +191,12 @@
>              search_results = self.plugin.manager.get_all_objects(
>                  Author, Author.display_name.like(search_string), Author.display_name.asc())
>              self.display_results_author(search_results)
> +        elif search_type == SongSearch.Topics:
> +            log.debug('Topics Search')
> +            search_string = '%' + search_keywords + '%'
> +            search_results = self.plugin.manager.get_all_objects(
> +                Topic, Topic.name.like(search_string), Topic.name.asc())
> +            self.display_results_topic(search_results)
>          elif search_type == SongSearch.Books:
>              log.debug('Books Search')
>              search_string = '%' + search_keywords + '%'
> @@ -195,8 +212,21 @@
>          elif search_type == SongSearch.Themes:
>              log.debug('Theme Search')
>              search_string = '%' + search_keywords + '%'
> -            search_results = self.plugin.manager.get_all_objects(Song, Song.theme_name.like(search_string))
> +            search_results = self.plugin.manager.get_all_objects(
> +                Song, Song.theme_name.like(search_string), Song.theme_name.asc())
> +            self.display_results_themes(search_results)
> +        elif search_type == SongSearch.Copyright:
> +            log.debug('Copyright Search')
> +            search_string = '%' + search_keywords + '%'
> +            search_results = self.plugin.manager.get_all_objects(
> +                Song, and_(Song.copyright.like(search_string), Song.copyright != ''))
>              self.display_results_song(search_results)
> +        elif search_type == SongSearch.CCLInumber:
> +            log.debug('CCLI number Search')
> +            search_string = '%' + search_keywords + '%'
> +            search_results = self.plugin.manager.get_all_objects(
> +                Song, and_(Song.ccli_number.like(search_string), Song.ccli_number != ''), Song.ccli_number.asc())
> +            self.display_results_cclinumber(search_results)
>          self.check_search_result()
>  
>      def search_entire(self, search_keywords):
> @@ -267,6 +297,44 @@
>                  song_name.setData(QtCore.Qt.UserRole, song.id)
>                  self.list_view.addItem(song_name)
>  
> +    def display_results_topic(self, search_results):

Please can you put doc strings in your functions. Something like: (Its just an example, the details may be wrong)
def display_results_topic(self, search_results):
    """
    Display the topic search results in the media manager list

    :param search_results: A list of db Song objects
    :return: None
    """"

> +        log.debug('display results Topic')
> +        self.list_view.clear()
> +        for topic in search_results:
> +            songs = sorted(topic.songs, key=lambda song: song.sort_key)
> +            for song in songs:
> +                # Do not display temporary songs
> +                if song.temporary:
> +                    continue
> +                song_detail = '%s (%s)' % (topic.name, song.title)
> +                song_name = QtGui.QListWidgetItem(song_detail)
> +                song_name.setData(QtCore.Qt.UserRole, song.id)
> +                self.list_view.addItem(song_name)
> +
> +    def display_results_themes(self, search_results):
> +        log.debug('display results Themes')
> +        self.list_view.clear()
> +        for song in search_results:
> +            # Do not display temporary songs
> +            if song.temporary:
> +                continue
> +            song_detail = '%s (%s)' % (song.theme_name, song.title)
> +            song_name = QtGui.QListWidgetItem(song_detail)
> +            song_name.setData(QtCore.Qt.UserRole, song.id)
> +            self.list_view.addItem(song_name)
> +
> +    def display_results_cclinumber(self, search_results):
> +        log.debug('display results CCLI number')
> +        self.list_view.clear()
> +        for song in search_results:
> +            # Do not display temporary songs
> +            if song.temporary:
> +                continue
> +            song_detail = '%s (%s)' % (song.ccli_number, song.title)
> +            song_name = QtGui.QListWidgetItem(song_detail)
> +            song_name.setData(QtCore.Qt.UserRole, song.id)
> +            self.list_view.addItem(song_name)
> +
>      def on_clear_text_button_click(self):
>          """
>          Clear the search text.
> 
> === modified file 'resources/images/openlp-2.qrc'
> --- resources/images/openlp-2.qrc	2014-10-16 20:48:41 +0000
> +++ resources/images/openlp-2.qrc	2015-01-26 13:33:22 +0000
> @@ -2,8 +2,11 @@
>    <qresource prefix="songs">
>      <file>song_search_all.png</file>
>      <file>song_search_author.png</file>
> +    <file>song_search_ccli.png</file>
> +    <file>song_search_copy.png</file>
>      <file>song_search_lyrics.png</file>
>      <file>song_search_title.png</file>
> +    <file>song_search_topic.png</file>
>      <file>topic_edit.png</file>
>      <file>author_add.png</file>
>      <file>author_delete.png</file>
> 
> === added file 'resources/images/song_search_ccli.png'
> Binary files resources/images/song_search_ccli.png	1970-01-01 00:00:00 +0000 and resources/images/song_search_ccli.png	2015-01-26 13:33:22 +0000 differ
> === added file 'resources/images/song_search_copy.png'
> Binary files resources/images/song_search_copy.png	1970-01-01 00:00:00 +0000 and resources/images/song_search_copy.png	2015-01-26 13:33:22 +0000 differ
> === added file 'resources/images/song_search_topic.png'
> Binary files resources/images/song_search_topic.png	1970-01-01 00:00:00 +0000 and resources/images/song_search_topic.png	2015-01-26 13:33:22 +0000 differ


-- 
https://code.launchpad.net/~minkus/openlp/searchfields/+merge/246954
Your team OpenLP Core is requested to review the proposed merge of lp:~minkus/openlp/searchfields into lp:openlp.


Follow ups

References