JackAdams / meteor-accounts-ldap

Authentication against an LDAP server in Meteor
MIT License
21 stars 12 forks source link

thumbnailPhoto should be treated as binary instead of string #25

Closed sandrich closed 6 years ago

sandrich commented 6 years ago

This should fix #24

I was able to display the picture with that fix.

Template.navigation.helpers({
    avatar: function() {
        var user = Meteor.user();
        var img = user.profile.thumbnailPhoto;
                var blob = new Blob( [img], { type: "image/jpeg" } );
                var url = window.URL.createObjectURL(blob)
        return url;
    }
})

In the template

<span>
    <img alt="image" class="img-circle" src="{{avatar}}" />
</span>

best Chris

JackAdams commented 6 years ago

Nice PR. I'll merge and release a new version later today.

JackAdams commented 4 years ago

Hi Chris,

The above is very helpful (almost 2 years later!). I've been trying to do something similar but without much success so far. The data in my user.profile.thumbnailPhoto looks like the stuff pasted below, which I copied straight out of the mongo shell in a bash terminal. Sorry, bit of a cheeky question, but -- having been down this path yourself -- any idea what I might have done wrong? (The image is encoded in bytes using hexadecimal in the AD.)

����\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000H\u0000H\u0000\u0000��\u0001\u0010Exif\u0000\u0000MM\u0000*\u0000\u0000\u0000\b\u0000\b\u0001\u0006\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0002\u0000\u0000\u0001\u0012\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000\u0001\u001a\u0000\u0005\u0000\u0000\u0000\u0001\u0000\u0000\u0000n\u0001\u001b\u0000\u0005\u0000\u0000\u0000\u0001\u0000\u0000\u0000v\u0001(\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0002\u0000\u0000\u00011\u0000\u0002\u0000\u0000\u0000 \u0000\u0000\u0000~\u00012\u0000\u0002\u0000\u0000\u0000\u0014\u0000\u0000\u0000��i\u0000\u0004\u0000\u0000\u0000\u0001\u0000\u0000\u0000�\u0000\u0000\u0000\u0000\u0000\u0000\u0000H\u0000\u0000\u0000\u0001\u0000\u0000\u0000H\u0000\u0000\u0000\u0001Adobe Photoshop CS6 (Macintosh)\u00002017:09:08 14:14:21\u0000\u0000\u0005�\u0000\u0000\u0007\u0000\u0000\u0000\u00040221�\u0004\u0000\u0002\u0000\u0000\u0000\u0014\u0000\u0000\u0000�\u0001\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000�\u0002\u0000\u0004\u0000\u0000\u0000\u0001\u0000\u0000\u0000`�\u0003\u0000\u0004\u0000\u0000\u0000\u0001\u0000\u0000\u0000x\u0000\u0000\u0000\u00002017:09:07 11:19:08\u0000��\u001e�http://ns.adobe.com/xap/1.0/\u0000<?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?> <x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"XMP Core 5.4.0\"> <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"> <rdf:Description rdf:about=\"\" xmlns:xmp=\"http://ns.adobe.com/xap/1.0/\" xmlns:xmpMM=\"http://ns.adobe.com/xap/1.0/mm/\" xmlns:stRef=\"http://ns.adobe.com/xap/1.0/sType/ResourceRef#\" xmlns:stEvt=\"http://ns.adobe.com/xap/1.0/sType/ResourceEvent#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:photoshop=\"http://ns.adobe.com/photoshop/1.0/\" xmp:ModifyDate=\"2017-09-08T14:14:21+08:00\" xmp:CreateDate=\"2017-09-07T11:19:08+08:00\" xmp:MetadataDate=\"2017-09-08T14:14:21+08:00\" xmp:CreatorTool=\"Adobe Photoshop CS6 (Macintosh)\" xmpMM:InstanceID=\"xmp.iid:6AA8098A2A206811822AB2AC85E0DB09\" xmpMM:DocumentID=\"A1F211449733906FB1FBA2185247B2C8\" xmpMM:OriginalDocumentID=\"A1F211449733906FB1FBA2185247B2C8\" dc:format=\"image/jpeg\" photoshop:ColorMode=\"3\"> <xmpMM:DerivedFrom stRef:originalDocumentID=\"A1F211449733906FB1FBA2185247B2C8\" stRef:instanceID=\"xmp.iid:0A80117407206811822AB2AC85E0DB09\" stRef:documentID=\"A1F211449733906FB1FBA2185247B2C8\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-07T11:43:05+08:00\" stEvt:instanceID=\"xmp.iid:533FCD2609206811822AC6869121CBDD\" stEvt:action=\"saved\"/> <rdf:li stEvt:action=\"converted\" stEvt:parameters=\"from image/jpeg to application/vnd.adobe.photoshop\"/> <rdf:li stEvt:action=\"derived\" stEvt:parameters=\"converted from image/jpeg to application/vnd.adobe.photoshop\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-07T11:43:05+08:00\" stEvt:instanceID=\"xmp.iid:543FCD2609206811822AC6869121CBDD\" stEvt:action=\"saved\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-08T14:14:21+08:00\" stEvt:instanceID=\"xmp.iid:0A80117407206811822AB2AC85E0DB09\" stEvt:action=\"saved\"/> <rdf:li stEvt:action=\"converted\" stEvt:parameters=\"from application/vnd.adobe.photoshop to image/jpeg\"/> <rdf:li stEvt:action=\"derived\" stEvt:parameters=\"converted from application/vnd.adobe.photoshop to image/jpeg\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-08T14:14:21+08:00\" stEvt:instanceID=\"xmp.iid:6AA8098A2A206811822AB2AC85E0DB09\" stEvt:action=\"saved\"/> </rdf:Seq> </xmpMM:History> 0149C66504C436BD762EF31DA82B1B2F</rdf:li> 0849CE469F3BAC73B1645C7151B819F7</rdf:li> 13E230A7F6D58D627F0492B4FCA08DF4</rdf:li> 1438520015B4A6D7A8898E5983A77DCC</rdf:li> 153B1DB93B12899E037CB81BCB2DBF0B</rdf:li> 15F380BE84AD589ED1250BA305923CD8</rdf:li> 24CD328844F61286603146F4269E7C43</rdf:li> 33BA537C81B14B9C39B69EAAA021617A</rdf:li> 363E24E89143C068CDE408CDAB329A03</rdf:li> 3B1878DA6CA5726CBC77196862D882AE</rdf:li> 3FC55505123885C764A2434AEE3F0792</rdf:li> 401ADDE6B33B145E9A6E3BDD50AB9E4E</rdf:li> 4F7807BD8FD783BF84F4BA13EE0FB2C6</rdf:li> 523D8A326B69AC71440CC017B9696200</rdf:li> 55CB3E8798C47509D65392F1922B7608</rdf:li> 5AFC7535C8A28438154A8A83757242BC</rdf:li> 5D2CD446192EED2B474F3FB2531FBC5D</rdf:li> 5FDFF65EBB5E6AB2C353339C04F989FC</rdf:li> 705FE5E9D497DE2F87A3665628D6A7B2</rdf:li> 742614014E80E37081B5745FFCB4B254</rdf:li> 789937E82C0BF53BE8C9CF729121212C</rdf:li> 82644EE3C322E94BFB6DD27C5F243ABC</rdf:li> 85FA9936B6EF13BC5345FA5DAB10943A</rdf:li> 8BE88E1C9D63279896049B78AFB7477F</rdf:li> ADB8F45A789E6B1276828E84A388C770</rdf:li> AF9613A15E96ADCA0CAABF12A4C341D6</rdf:li> B2DFF429B47D65C1D1F56443A29C4A02</rdf:li> C2B1AF320BE5EE61E0A8601AF0969137</rdf:li> D811EF0498B8C853B30B32EEE76EB9E3</rdf:li> D8EA735F15AB8DB310BA08EE46E2E9C0</rdf:li> DA7FAE2845C16796BBB6E6EB84800B99</rdf:li> DB6DDD7021B4415570F52D5D2FF723E6</rdf:li> ECD6B28237E78041043BD650D313D694</rdf:li> EDA4573A8E545BC082D10CAE0C79375A</rdf:li> F1BA9E81EB0563C2CFAB2B2FB17E8432</rdf:li> FDA023300C25E1B26850E308F9289B00</rdf:li> xmp.did:1d7e2f69-6733-40d2-b0d6-3370888d2744</rdf:li> xmp.did:24c09370-030a-4537-ab38-b7785172e992</rdf:li> xmp.did:26bc7ebd-ca6c-4840-a4ff-28b917a69ec4</rdf:li> xmp.did:278008d3-f58c-4965-bc8e-6062091a5131</rdf:li> xmp.did:29cc215e-d026-40ae-8ff1-7e8489e992d7</rdf:li> xmp.did:2f053572-a6b5-49f0-98a3-1dbf04bfc3aa</rdf:li> xmp.did:3bf20479-aa04-4c87-8d08-41f9cba82350</rdf:li> xmp.did:3ce191fc-a60f-4ddf-a645-273c87348a54</rdf:li> xmp.did:437fb7d2-90d2-4af3-87f0-da99f242e6fd</rdf:li> xmp.did:46e9779d-b75b-4340-87b7-a99ad2139615</rdf:li> xmp.did:4fa1dcf0-ed17-4f01-af45-55888c49c0a9</rdf:li> xmp.did:526e5cf6-3552-4369-8d74-e908c2eddcdd</rdf:li> xmp.did:53c7d906-6e57-4fa9-9113-709e0918fcfb</rdf:li> xmp.did:5e3a64f5-7f5c-434b-a7e9-58f0fc7e7ae6</rdf:li> xmp.did:6c45a692-4543-4c1b-91cb-bd14b0ecf9b7</rdf:li> xmp.did:84bbb2e9-4905-4dca-bb72-2ce1e723c5b8</rdf:li> xmp.did:943de20f-45d0-42f3-95fe-3f10649e766b</rdf:li> xmp.did:a4aa7aa2-b40d-457c-b359-a4107ef9c864</rdf:li> xmp.did:a4f3b487-a44b-402e-8789-036cbcb5e9c9</rdf:li> xmp.did:ba262f40-a4fa-40d8-8644-9601376fa707</rdf:li> xmp.did:c28f5b5c-8005-4c03-bd0b-53bd4890af08</rdf:li> xmp.did:cf7a3d50-7015-406c-af5f-f111624f4b43</rdf:li> xmp.did:fae2353b-561b-40f8-9bc5-16396e7ea730</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end=\"w\"?>\u0000��\u0000dPhotoshop 3.0\u00008BIM\u0004\u0004\u0000\u0000\u0000\u0000\u0000,\u001c\u0001Z\u0000\u0003\u001b%G\u001c\u0002\u0000\u0000\u0002\u0000\u0002\u001c\u0002>\u0000\b20170907\u001c\u0002?\u0000\u000b111908+08008BIM\u0004%\u0000\u0000\u0000\u0000\u0000\u0010�4�J����Ȥ��\}���\u0000\u0011\b\u0000x\u0000\u0003\u0001\u0011\u0000\u0002\u0011\u0001\u0003\u0011\u0001��\u0000\u001f\u0000\u0000\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u000b��\u0000�\u0010\u0000\u0002\u0001\u0003\u0003\u0002\u0004\u0003\u0005\u0005\u0004\u0004\u0000\u0000\u0001}\u0001\u0002\u0003\u0000\u0004\u0011\u0005\u0012!1A\u0006\u0013Qa\u0007\"q\u00142���\b#B��\u0015R��$3br�\t\u0016\u0017\u0018\u0019\u001a%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������\u0000\u001f\u0001\u0000\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u000b��\u0000�\u0011\u0000\u0002\u0001\u0002\u0004\u0004\u0003\u0004\u0007\u0005\u0004\u0004\u0000\u0001\u0002w\u0000\u0001\u0002\u0003\u0011\u0004\u0005!1\u0006\u0012AQ\u0007aq\u0013\"2�\b\u0014B����\t#3R�\u0015br�\u0016$4�%�\u0017\u0018\u0019\u001a&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������\u0000C\u0000\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0003\u0004\u0003\u0002\u0002\u0003\u0004\u0005\u0004\u0004\u0004\u0004\u0004\u0005\u0006\u0005\u0005\u0005\u0005\u0005\u0005\u0006\u0006\u0007\u0007\b\u0007\u0007\u0006\t\t\t\t\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f��\u0000C\u0001\u0003\u0003\u0003\u0005\u0004\u0005\t\u0006\u0006\t\t\u000f\u000e\u000e\u000e\u000e\u000f\u000f\f\f\f\f\f\u000f\u000f\f\f\f\f\f\f\u000f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f��\u0000\u0004\u0000\f��\u0000\f\u0003\u0001\u0000\u0002\u0011\u0003\u0011\u0000?\u0000���[�{X?�O\"�\u001fL���9�麵U89=��3���\u0013Z4������-ߑ�vv��6�Y[�ۍ��9�X��rk�jT�I9�v���xa�F�5h�Y~�����.\u0003�{VgC&\u0018\u0003�\u0000�%�{���r^\u000e\u000e\u000f�(��YY�\u0017�q[3�#\u0000H\u001e��kJ�J�\u0004[�����p�o�T�/��M��,�<W\u0011y����\u0013Fw/�gNTݤ�~z\u001aP�N�y��N=�M~\u0004�\u0004{��f�q�x<sF�Z�\u0015�\u0004�����\u0000�ӛs\u0011�br\u0003���׭�W�uy:K�Z��\u001f%��\u001f�a=�����\u0017������<\u0019`���o\"��\u001a��ˀ���\u0007�W4���o-?����.\u0013����媂r��\"����\u0019��z�ƾT�j�����\td&�n.�1g\u000e#�)�\u000f�Dg\u0015yi��\u00003�����\u001e\u000e�s�%U����-/�&z��\u0006\u001d9�+�n~�\u0012K�rOq/�\f\b^i\u000f��N0sj)]�ԅ(���1Wo�8M?T��N�\u0005�\u0016�hM��\u000ew�x��c�1b8�:{׵[\u001c\u001d\u0006�����o+\u001f\u0017��jg8�\u0017�ч��ߗ����m\u001e��[��\u0013~;��&�F�{mc�ZH�j^,�K>�m\"��-�����[�9X��\u0006f\u0005k�߉����J�E��X�ͯ��/4�z\u001f�d|\u001f��\"�U�M]<��T�R��\u0019's�\u001b�\u000f�>,�����!j�G{&���F�U�#�X�\u00078\u001f7�M|�'���念��j\tzr���~���s���(��Xzn}e5�%'��ϙ7��К�/��\u0011��/\u001ek�U���)��I�Q�w�r'��0\u0006�=뒗\u0014c\u0012���ys�\u0000�|ǣ[�2���z{�P�����\u0000\u0013�O��\u0000�N�i��\u0017�-�E\"?\u001fX�X2���\u001bEϕ��c%s��\u0018\u0003?a�qe:���-\u0007�e��\u0000/���m\u0011��\u0002�ïi����?���z)��l�f��՟[D��\u0014W\u0010J��΋,\u0017\u00110ttq�]Xd\u0010��\u0011`|\u0003!��n,/�<���FϺ\u001aҌ�FK�G66����\u0007�2��?\u000e��\u0019Ǜ%�n��B����{���\"��>\u0017�'\u001fmV=\\u0013����=L��8��?Ch����\u0000F\u0005�� ��<i�&�~���~+���\u0006��\u0015%�I~\u0017=\u0005G\u0018=Ex��X�<}|��Y��q��f�\u000e�\u0019¯���\u0015���o9T��{�\u0007�q�5”(/��?E�~�#ʠ�\�uk/�>\u0017�:^��8'�X�\u0002�c�hvd}��H�$���\u0018��X������\u001b<y~\u0016�:nӨߪ�ݯ;�\u0015�7���\u0007p�ͱ��T��SQ^Nm��]RJ�Zͤ���\u0000gO�V\u0016��jh2�QBW7:��IN\u0007�8\u0001B�(\u0000\u000f¿��b�R[��-<���\u001c\u0005:0�}�����>���|1����\u000b��8\u0019��>\}�\q�\`���<��\\u001f���У����\t�v���0�omȫ+\"��t��%�k�/���I}�\u0019�~�\t��X\u0017��۔��Ycv�H=Ins��M�Y�O��l�gΚ\u0017�o~\u0011���\u0018o�u\u0001�qO�|=���[Nx[u�X\f��\t��q�\u0014aB�~��yӯM�=b�\u001f��x��Z��H�?�N\u001c�\u0012���V�ݦ�K[Kϙh��&����j�-����v��V\u0019��@\u001f�5�\u000e\u001e\u001c�#\u001e�\u001f��UU\u001c5Z��\t?����\u0017��rh����cp��3��î}�C���U\bצ��꼙��U��\u0001��X�gf����ݷ�����v���^Y�&��|�\u000e��V\u001d��|}Zr�'\u0019+?�o#�l5zx�j�'�\u0017��Mtk�����\u0000K��S��G�Q�\be8���\u0003:��\u0019z����\u0006T�:��������\f\f���xg��y'��:Ÿ\u0007 Yǰ}]�K��ܿ�?�#�.3m�\"�r/͜��-F'���\u0016�f�|�,�7�\u0006P#1�'�$(Ov����8�'�\u00143\u0007�̥M?v�Q����^��|��O\u00022����u���D�O;�)��̿��џ\b۠��F�����A��5��\u0015��ٱ��z��\u0012�B�t�\u000f����+�%U���Ǎ�m�G\u0015�L�v3u4Ya����\u0005wu�EUu��\u0007�%c�?����Mυ�!��'P]V\u0017+�\f$�g\u001c�3/�k�#��\t��U�Z��vw�6cę|s\u001cJ2�kO)-U�$���x�W�;84�\u001b/zV�Q��G�\u0018�\u0000�\u001e~����|=��tZ/W�\u0000\u0000�#�,�S�\u001c2��iK�'���E�y.s��?34��cP�e3X�4,�\tS�8\u0007����\u0000?C\���M3��f��3�+7�T�����k�G����\u001dx-5���lw�m�N\u0006$�#\u001f�Gf����n��\u00003�ׅ���\u0018�ݔ�/��W��|�\u0001�9����\u001f����\u001cZH��w��[6����К�rj�އ]�\u0000F|'\u0019P����?5��N3�w���Z��4)���$��\u0011�\u0017��n�NV<~����U]\�\u0010ޟ����W����\u0005��pp](S�\u0014y��ϫ�\u001f���4_�-O�^\u001a��P�Z�/\u0010j)�\u0017�Y����\u0018����)^�Wg�U�\u001b^�����{\u001a\u001e\b��\u0017ĺ�h�����M*+����#�$e�Q�\u001e��\f9\u0006��'\u0007i+2���T�4%̺y����\u0000\u001bj�\u0007�_Rim�1��wq�ă<\u0006\u0000\u0012r=9��֝=�L.\u0016�}\u0019��\u0014���-≯,u?\u001b��>�c$v�z<�\\Y�\f���f71�\u0002��T\u0013х\\�Q$�i}���3��.g\u001aK���ݯ��OƟ\u000fC�?\f���\u0005Sa2H�\b�@�G�*����\u0006��3�ZQj�\u0000!U�'�>F�H�\u0015����:���2�Ba�L�\u001ekZ�$��N\bPFG+�8��.\u0012ΰَ\u0010�8���\u000fi\u0015vMy�{��W?�|I�<�(��֯NJ�j�\u001d)�ZpN��n֋VM&֩Z��S����f\u001c�€?��Hݣ�\u001d\u0018��\f�:�9\u0007�<���I�3�J\u0013p��vk[���.�\u000e���|�Y1��!��Q��?x{\u001a��]\u0007B��N��֌��+�G\u001d��^�Iv����^L�Q������ζ�j��\u0017eC�S+\u0002�\u0003du5ň��B�\u0013k���u��W����0s�<^\u001e�����Jv��|�\"ڷ��ו��M�/\fX�~4�\u001c�f��_\u0013�es���o\u0010����\u0000i1�ʬ��1�\u0016>���:Φ\u001e7z�o�[��\u001fٵ�*\u0018���I�_K����=�G�C��K���M.�i56�o��l���\fe��9\u0018�\u0007\u0000q�()�T�rb+������v��YX��]�<����.%�\u001cJR\u0016\u00010����IU\u0003�\u001d*k+�_V�;p�ܶ�-�M�-὞K;�n-fD\u0001 g���\u0002\u0005v8+ٞ]?v\u001c�ѧ�v�B��մ�.�a\"����˒2�}��a�c�\u0013U��í����V�R�VO��\u0000���y�4}94i4\u000b;4�����ŵ�mUW\u0018\u00024�\u0003����pP��9NpnN��g�\u001f\u001c�(��|�h�R�[�W\u0000\u0011\u0014@�\u0012\u0014���c�\u0007z���'2���\u001fu��\u0000\u0016����ͥx,�Z���\u001f�|���f����>u�\u001d�\u0000����\fJ@��g#\u0006��\u000f��{���%ߙ��k8\tw\u0000=W�_F^ߗz���\u0016\"\u0016���C��3ye�y���K���}�s�-n-����_:�u�r��nG�#��+�g\tS��������\u001e�<U%:n��o�\u0000\u0001��S:�o\u001a9t��\"��˴�y�\u0015\u000bp9�\u0000\u000ek�È0��cq4c�j6��R���D���?�8_\u001b<~Y��T�S�\u001b���׫m]���i]|q]\u0007�Mrl����l����\u0019%��E\u0004��\u000e��*\u0015�V>�Xr�3z~g\u0007c�_\u001e���Z������Qԧ7�!�N�Kb�\f��q��fA���!��=*\u0012w���t��h蒲����c��C�0�ڍ��\u001e��4�[�k�\u000b�\u0000S��\u0018��\u0007�@�O�w)9�R<��U\u0006�v��o���#��⟇~)���\u001dα��\u0012�!���^���\u001a~�W�c��_��q��wœ�u����upT1Q�\\�[��/Mm�^^�y���qc5�$\u0010Ct\u000b�!¨U�Y��3�j�S��SΫ\u0005\u0004�|��VMO�\u001a��T��OHl�Z7.�Q\u0004�\u0001$�瑿ȯ�\u000e�+�Q�Υ�.�m��劷��3�Vk<w\u0012W��j��8��HǙ�i�o5�o&�r~H'\u0014\u001f�֌\u0010{��\u0001�\u001e� \u0003ւS7�]z�E��\u0018Ko)\u0006{W���9V�F\u001f�k�\u0017��!k�[4{9Vu/���^�{?NҶ���ZG�t���+�i\u0015.\u0016X⽂B\u0016e��S�FP[9\u001cz��>&ds�\u0007�\u001c��\u0013�䒻��l��M��ۡ�G�\u0017Q�f?SU-HK����g\u001fy���>�ow\u001d�K{�\u000b��2h�o!��t{Ǵ��kq8�\u001b���@����\u001c\u0010H8\u0004g5�=\u000b���\u001f�\u0013���u���\u0003�gDZ40�^)��Đ�n�5\u000b\u0006+�1gL��a��Ќ�cs1\u0019 ��צ��I�-\u0017}��\u0001�W\u0011Z\u0014�<c+�n\u0017�潽.{e������<Q��A#��Ҽ8lA�\u0016c-˺���$�������>]?&p�MG?r�W�i���-^�'�x\u001f^�ͺ�\u001f���m���Ϩ�v��[Ķ61J�Y۴�\"��\u0004\u0005�n�H\(\u0015�\u000bE\u001d�����M�[�>���n��+|F��4�.{=E�[�\u001e]� \u0016f{���\u0010xQ�5�~\u001f`jb�z\�Úz��Z?����\u0014�Z8\u000e\u001d�J��UZ^��J�+Y�\u0015+�|�uw�V=?Q���n\"e?�3qҰ�:\u001a�F^�歩�K��d���N�<�M/�u���'��ey�;��a�fHQZ;�\u001d�@ܑ��WDq����y\u001f}��}=\u0019�[$U\"焨�En�娽`�k�7�9�\u0012~��k��\u001a?�ג�լn��s��\u001f��\u001fο���U\"������7\f��\u001d7��R�'�N+\u000f\u0007=h%��X��K��\u001d��\u000e����k�4�S�aЪ��8J-wM���{�1�W�3<>&��gN�$�kI'~�Ŵ�T�>��7���\tt�X�y\u001d���=�\u0016xp�J3�3���g���Og�u���ִ��u�Oo��zZxv���\u0019c��3q�oq\b�iʰa���}k��n�U��~�ڝ����is%ާs�&�\u0014€>�u\u0007\u0004�Ir��9T�Eh���b]WQ���A$�5H�.\u000fݎ,6?\u0013���RWG,�3�o�7��ç�vv��=�������Q0�\u0012s�k�/\bp�uqU-�c\b���o�qG��7\u0019Qap4\u0013�e�k�\u0011�\"�Jmz��<<\u0002z��'�Y4RI\u0003��H��\u0013n�D%YH�\u0010G�je\u0015%g�f��ʜ���kT֖~��Tj��C�F��\"é(�L��z�\u0003�����+��'E�?\u000fn�����zX�\1��Q����O�Ke?�-%������]����V�\u0006�H��~W\u00021�#���ֿ���Bw��M��޶��ȼS��w\u0013\u001dSQR�{hߓZz�u8����h��+\u000e\u0007�\u001dOj\u0005�yW��+X�>��Z]�k^�I\u0015-��!�,�k�\u000eN�0B('�ݴ\u001c�����,#�Q���v�)����+^�G�\u001c%�ج�G\u00177��'uuyU�{Ai\��w��i��F�MSA��\u0000��+zc}GN��.J��\u0011�\u0018%^\b� ��k�-�t�*\u0015V��^i��n��ҍzOIE5٦��\u0018Zg�C�χ�-��<$ڭ�R��PJ\u0015�9\u0005�]� �\b\u001cWT0|��G\u0004���J�&z\u0016��[k���\u001d\u0013�3���\u0017�\u0012�Q�ec�*�\u0015��H��B��\u0007����\u000f\b�x���p�^(�\u000e�I�>5)\u0000r��$�g���Ny5��7ݟ0��>>��|}���W��\u0000�/��x��D\u0012[�ڔѼ\t*�01�\u0016㵁\u0001�s_�xyR�\u000b\u000fV�\u001aJ����PM7�yY>韏����ʴp�����^�n2���k=V�m�'�k�U��Gѵh�=F'���1�\u001c��n$^��y\u0003�\u000b������T�E�/?����c��:��\u001f�r�\u0015���V�j[�\u001bI��7~���\u0019�0AW\u0000�.\bz\u0010G\u0007�z�OΜ\u001am=\u001a��O�[�\u0018�4������\u001e�\u001dGJ����&�Eu\u0013��d\u001b]H9�J��\u0013\u0007J�K����\u001f�\u0019mh��I�\u001bIt�ѫv<��M�\u000f\u0007�6���r��O��\u001a4H...�z�\u0011�X\u0000H��v/s[��Џ�R���ˁ㏨�\u001a\\��\b��\u001a�Z��3��\u0011|I�^��\tox�\u001fӈ�v�$\t0x���\u001bٻ�v��־\u0019�\u0018���g\u001e����\u0000+X�\u0003&��\u0000+��.�=�E���\u001b�\u0000v�—���ݾ�����r�s�i��\u0018�%�yU�f�'q\u000b�s�I'���Խk7�����Ѕ����h�J�YvZ\u001fV|\b��e�T���\u0000�.6�F��G��ɹ]-�bΗ\u0018\u0019�3���)�'�d��\u001e#���d�\u0018u�ϵ\u001f�K���O������~\u0018�X�\u0012�b\u001d��ݗ������췭���\"\t�my\u0005��l��N\u0011�v�\u001b#\f����e#����S�ޝW�~�S��Ϣ�3����\u0005�3��[�.�� \u0004�\u0019\u0004q]\u0011�z�͝D��0~,�Z���o\tͬ�\u00047�%����\u001f\u0006�%�Œ\u0017~�-�,\u001aY1��@geS��YM\ƿ���Z�]\"�V�����M�Nk�����Ik'�c}[�\u0000$�o����\u001e���W�^1�>�zڎ���{�jڄ�kM>�#�2p\u0006\u0002���P\u0014p\u0005~�\u001aT�~H+F\u0011�]���ޭ�g��\u0011[�n��v�y%d��u)�\����1wm\u0015Փ\u0016��\u0005��\u001e��a��\u0015�k�yG�;�\u0003�sh�Q��^�\u0011\u001f9t��ZH�\u001b���\u0003���8��&iW\u000e�!6�g��۱���\u000beٔ�Z��Kݓ�\u0000\u0013\u0012�GӞ\u0017���mN!�x�F�@p\u00167��As���\u001b|���\u000f�WTq����O����>#��:|��\tA/��'oN�#�����{��wk᧊�I�\u0012��){x�\u0018\u000f\u0012\u001co;���_��٥\u001a��%����进�d=�\bc(�S\u0015/g\t˽��9?���^Mn��:��6�u>����jZ��\u0005ƣ120��\u00060\u0002�xU\u0000\u000e¾^�[��ݟ�P�B�\u0014)�\u0018������N;UP�E帑f�˰aH$\u0005=�9�Z���T\u0015�9֭���Ƥ���l�q�q�����\u001dhZ�7��9ic���+��>�ᣓ=�#��\u0000ꅘ=\u000f�>\u001c���\u001e\u000b�-&\u000b��\u000bg#×�B[���LC\u001b|�@\fg��Ij�3~\u001a��~�{��m/���.�Z\u001e�M�u��ݿ~����\u000f�~\u0017ӗV���~?x\u0013¾\u001a[��.�/\u0011��4�\u0001�Hc�7�;!���\fy�'+�\u0001$��\u001c1�u���ȯg=9=b���;�{\u001fk��l\u000b��!>gk�m?F��������G�u�{�^#�<_����w��ȋ��k\u0004d�v����PǓ�rI$�\u0012Ě�K/���t����'տ7�%e���;\u001bW\u0019Yը��o$�%��m��y׊-��;�F^�O��(�\u0000��\u0003�\u0000��um����>��~�%6��D\u001a\u0015��^\u0013�����Kk}�tQ\u001b\u0003�V\u0014�t���\u000eVRk͗�E���ӵ��c��.��Pxg�I\u0004R�q�9�(�\u001d\u0014�G��\u0011}\u0019�\u0004�Mu�O�-�\u001dge\u001bI\u0018\u0004�\u001e��\u0015���IX���R�K��%!\u0015�m\u0003��x��JL�\u0018�r:��ki ��y�D9\u0000s�\u0015�U�&�Wf�Ӷǥ��,f\"��8W{\u001e=[\u0002��D���6�Dz���d\u0001��gp\u000f\u0007\u0007����M������5��}�˕6\u0017\u0003�c�PN7��\t+\��,�f��F��9M\u0013S�����~!�6�\u001e6�\u0015��,� �C��\\u0015|���/,2�\u0019�\u001c�x�oթs'�?�׿�k��\u000f��ӳۯ���\u001f�����êJ.�g��w\u0017\u0012n��B�ydl��;d�\u001c�䜓�|S�9��m��w��5m��S�9#\u0015d~N~�z\u000f��\u0015~ў+�Kcu�[�X�������\u0012�P\u0013<�n�#ڴ.cn\u000b�@^6w��2����~�\u0000G��~rߵי�㰪\u000f�;u]��\u001e/��\u00171�[3\u0007F�\u0017/\u001a�a��>ۘW�U�$y�\u0013�\"iZD�b%-�G�\f�W��g\u0004�l��+���\u0012K�-���yq\b��܍Č�ڊ��/2���&ϲk\u0013�>�ԁ�\u0007�\u00120H���{�\u001f���&��. 1������E~�\u001e��3��T���]�I�&\u000f\u001d};�.%ꑽ=��S�t���\u0011�ш�\u0001��q]v��d6V�\u000bx�qV(\u000bt\u0003�+h%+�\u000b�Zs��5{H��$F9�@Iu\u0007�\u001c�¬5RF��m\u000f.�v��x�P�]I�t���9�m.av�Tx\u0019%�X��W3(ea���^n3\u000b��y�ʙ�G\u0011�]Y�\u000b~��\u0000\u0019G��>\u001c�uY��K���^/�0�c��P\u001d�\u001b���\u0012�\t��\u0019���RT���z�F{���R^k�?9?࠾\u0016K�\u0000���z�ż�g�<\ti=�⇉�i�\u00170�B�\u0002\u001a7�N{\u001czׯ�F��U����m-�;�Vc9��:~��\u000f�S�\u001bK�@D%Kq\u0004�,�P�|�I�w�\u001d���\u0002E}\u0014����!4�6nyoil\u000e\u0004�\u00063��V��G<�d\u0013n�շ\u0004�#�g�<��\u001a4���J��\u0012H��' gל洜SDFVg����I�\u0013�\u0016���S\u000f��_�����Ilc먳�����\u0012\u0019^w\u001f��3�ʺ�X����t�����\u0018C|�w8��վ��SuV-����\u001b@���=�@�\u0012\u0002�&�\u001c�Q�+�\u0014���x���@�P��c�y$d��\u0001�\u0019�+K�����\u0015����\u0002�j��\u001f\u0006|\u0001l���x�����T �����P)�\u001d��\u0014��W�cg�Y�i�\u0000��\u001fSF\u0014�^�y��|x?L��?���kq.���\u0000�:r����Ų�$\u001am�,�Le�B���V# \u001a����-ѧ�+��\u0006i\u001bѿ��]��MC�v�\u0000�\u00004S�?\u001c\u001e:������oVi3��O�\u001f�7c�޴KDg-��:��1\u0004�\u001eG�\u0015��$\~\u0016t��\b�\u00196��t��`���"

JackAdams commented 4 years ago

Hi Chris,

The above is very helpful. I've been trying to do something similar (almost 2 years later!) but without much success so far. The data in my user.profile.thumbnailPhoto looks like the stuff pasted below, which I copied straight out of the mongo shell in a bash terminal. Sorry, this is a bit of a cheeky question after all this time, but -- having been down this path yourself -- any idea what I might have done wrong? (The image is encoded in bytes using hexadecimal in the AD.) Do the thumnail images in your database look anything like this?

����\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000H\u0000H\u0000\u0000��\u0001\u0010Exif\u0000\u0000MM\u0000*\u0000\u0000\u0000\b\u0000\b\u0001\u0006\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0002\u0000\u0000\u0001\u0012\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000\u0001\u001a\u0000\u0005\u0000\u0000\u0000\u0001\u0000\u0000\u0000n\u0001\u001b\u0000\u0005\u0000\u0000\u0000\u0001\u0000\u0000\u0000v\u0001(\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0002\u0000\u0000\u00011\u0000\u0002\u0000\u0000\u0000 \u0000\u0000\u0000~\u00012\u0000\u0002\u0000\u0000\u0000\u0014\u0000\u0000\u0000��i\u0000\u0004\u0000\u0000\u0000\u0001\u0000\u0000\u0000�\u0000\u0000\u0000\u0000\u0000\u0000\u0000H\u0000\u0000\u0000\u0001\u0000\u0000\u0000H\u0000\u0000\u0000\u0001Adobe Photoshop CS6 (Macintosh)\u00002017:09:08 14:14:21\u0000\u0000\u0005�\u0000\u0000\u0007\u0000\u0000\u0000\u00040221�\u0004\u0000\u0002\u0000\u0000\u0000\u0014\u0000\u0000\u0000�\u0001\u0000\u0003\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000�\u0002\u0000\u0004\u0000\u0000\u0000\u0001\u0000\u0000\u0000`�\u0003\u0000\u0004\u0000\u0000\u0000\u0001\u0000\u0000\u0000x\u0000\u0000\u0000\u00002017:09:07 11:19:08\u0000��\u001e�http://ns.adobe.com/xap/1.0/\u0000<?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?> <x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"XMP Core 5.4.0\"> <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"> <rdf:Description rdf:about=\"\" xmlns:xmp=\"http://ns.adobe.com/xap/1.0/\" xmlns:xmpMM=\"http://ns.adobe.com/xap/1.0/mm/\" xmlns:stRef=\"http://ns.adobe.com/xap/1.0/sType/ResourceRef#\" xmlns:stEvt=\"http://ns.adobe.com/xap/1.0/sType/ResourceEvent#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:photoshop=\"http://ns.adobe.com/photoshop/1.0/\" xmp:ModifyDate=\"2017-09-08T14:14:21+08:00\" xmp:CreateDate=\"2017-09-07T11:19:08+08:00\" xmp:MetadataDate=\"2017-09-08T14:14:21+08:00\" xmp:CreatorTool=\"Adobe Photoshop CS6 (Macintosh)\" xmpMM:InstanceID=\"xmp.iid:6AA8098A2A206811822AB2AC85E0DB09\" xmpMM:DocumentID=\"A1F211449733906FB1FBA2185247B2C8\" xmpMM:OriginalDocumentID=\"A1F211449733906FB1FBA2185247B2C8\" dc:format=\"image/jpeg\" photoshop:ColorMode=\"3\"> <xmpMM:DerivedFrom stRef:originalDocumentID=\"A1F211449733906FB1FBA2185247B2C8\" stRef:instanceID=\"xmp.iid:0A80117407206811822AB2AC85E0DB09\" stRef:documentID=\"A1F211449733906FB1FBA2185247B2C8\"/> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-07T11:43:05+08:00\" stEvt:instanceID=\"xmp.iid:533FCD2609206811822AC6869121CBDD\" stEvt:action=\"saved\"/> <rdf:li stEvt:action=\"converted\" stEvt:parameters=\"from image/jpeg to application/vnd.adobe.photoshop\"/> <rdf:li stEvt:action=\"derived\" stEvt:parameters=\"converted from image/jpeg to application/vnd.adobe.photoshop\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-07T11:43:05+08:00\" stEvt:instanceID=\"xmp.iid:543FCD2609206811822AC6869121CBDD\" stEvt:action=\"saved\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-08T14:14:21+08:00\" stEvt:instanceID=\"xmp.iid:0A80117407206811822AB2AC85E0DB09\" stEvt:action=\"saved\"/> <rdf:li stEvt:action=\"converted\" stEvt:parameters=\"from application/vnd.adobe.photoshop to image/jpeg\"/> <rdf:li stEvt:action=\"derived\" stEvt:parameters=\"converted from application/vnd.adobe.photoshop to image/jpeg\"/> <rdf:li stEvt:softwareAgent=\"Adobe Photoshop CS6 (Macintosh)\" stEvt:changed=\"/\" stEvt:when=\"2017-09-08T14:14:21+08:00\" stEvt:instanceID=\"xmp.iid:6AA8098A2A206811822AB2AC85E0DB09\" stEvt:action=\"saved\"/> </rdf:Seq> </xmpMM:History> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>0149C66504C436BD762EF31DA82B1B2F</rdf:li> <rdf:li>0849CE469F3BAC73B1645C7151B819F7</rdf:li> <rdf:li>13E230A7F6D58D627F0492B4FCA08DF4</rdf:li> <rdf:li>1438520015B4A6D7A8898E5983A77DCC</rdf:li> <rdf:li>153B1DB93B12899E037CB81BCB2DBF0B</rdf:li> <rdf:li>15F380BE84AD589ED1250BA305923CD8</rdf:li> <rdf:li>24CD328844F61286603146F4269E7C43</rdf:li> <rdf:li>33BA537C81B14B9C39B69EAAA021617A</rdf:li> <rdf:li>363E24E89143C068CDE408CDAB329A03</rdf:li> <rdf:li>3B1878DA6CA5726CBC77196862D882AE</rdf:li> <rdf:li>3FC55505123885C764A2434AEE3F0792</rdf:li> <rdf:li>401ADDE6B33B145E9A6E3BDD50AB9E4E</rdf:li> <rdf:li>4F7807BD8FD783BF84F4BA13EE0FB2C6</rdf:li> <rdf:li>523D8A326B69AC71440CC017B9696200</rdf:li> <rdf:li>55CB3E8798C47509D65392F1922B7608</rdf:li> <rdf:li>5AFC7535C8A28438154A8A83757242BC</rdf:li> <rdf:li>5D2CD446192EED2B474F3FB2531FBC5D</rdf:li> <rdf:li>5FDFF65EBB5E6AB2C353339C04F989FC</rdf:li> <rdf:li>705FE5E9D497DE2F87A3665628D6A7B2</rdf:li> <rdf:li>742614014E80E37081B5745FFCB4B254</rdf:li> <rdf:li>789937E82C0BF53BE8C9CF729121212C</rdf:li> <rdf:li>82644EE3C322E94BFB6DD27C5F243ABC</rdf:li> <rdf:li>85FA9936B6EF13BC5345FA5DAB10943A</rdf:li> <rdf:li>8BE88E1C9D63279896049B78AFB7477F</rdf:li> <rdf:li>ADB8F45A789E6B1276828E84A388C770</rdf:li> <rdf:li>AF9613A15E96ADCA0CAABF12A4C341D6</rdf:li> <rdf:li>B2DFF429B47D65C1D1F56443A29C4A02</rdf:li> <rdf:li>C2B1AF320BE5EE61E0A8601AF0969137</rdf:li> <rdf:li>D811EF0498B8C853B30B32EEE76EB9E3</rdf:li> <rdf:li>D8EA735F15AB8DB310BA08EE46E2E9C0</rdf:li> <rdf:li>DA7FAE2845C16796BBB6E6EB84800B99</rdf:li> <rdf:li>DB6DDD7021B4415570F52D5D2FF723E6</rdf:li> <rdf:li>ECD6B28237E78041043BD650D313D694</rdf:li> <rdf:li>EDA4573A8E545BC082D10CAE0C79375A</rdf:li> <rdf:li>F1BA9E81EB0563C2CFAB2B2FB17E8432</rdf:li> <rdf:li>FDA023300C25E1B26850E308F9289B00</rdf:li> <rdf:li>xmp.did:1d7e2f69-6733-40d2-b0d6-3370888d2744</rdf:li> <rdf:li>xmp.did:24c09370-030a-4537-ab38-b7785172e992</rdf:li> <rdf:li>xmp.did:26bc7ebd-ca6c-4840-a4ff-28b917a69ec4</rdf:li> <rdf:li>xmp.did:278008d3-f58c-4965-bc8e-6062091a5131</rdf:li> <rdf:li>xmp.did:29cc215e-d026-40ae-8ff1-7e8489e992d7</rdf:li> <rdf:li>xmp.did:2f053572-a6b5-49f0-98a3-1dbf04bfc3aa</rdf:li> <rdf:li>xmp.did:3bf20479-aa04-4c87-8d08-41f9cba82350</rdf:li> <rdf:li>xmp.did:3ce191fc-a60f-4ddf-a645-273c87348a54</rdf:li> <rdf:li>xmp.did:437fb7d2-90d2-4af3-87f0-da99f242e6fd</rdf:li> <rdf:li>xmp.did:46e9779d-b75b-4340-87b7-a99ad2139615</rdf:li> <rdf:li>xmp.did:4fa1dcf0-ed17-4f01-af45-55888c49c0a9</rdf:li> <rdf:li>xmp.did:526e5cf6-3552-4369-8d74-e908c2eddcdd</rdf:li> <rdf:li>xmp.did:53c7d906-6e57-4fa9-9113-709e0918fcfb</rdf:li> <rdf:li>xmp.did:5e3a64f5-7f5c-434b-a7e9-58f0fc7e7ae6</rdf:li> <rdf:li>xmp.did:6c45a692-4543-4c1b-91cb-bd14b0ecf9b7</rdf:li> <rdf:li>xmp.did:84bbb2e9-4905-4dca-bb72-2ce1e723c5b8</rdf:li> <rdf:li>xmp.did:943de20f-45d0-42f3-95fe-3f10649e766b</rdf:li> <rdf:li>xmp.did:a4aa7aa2-b40d-457c-b359-a4107ef9c864</rdf:li> <rdf:li>xmp.did:a4f3b487-a44b-402e-8789-036cbcb5e9c9</rdf:li> <rdf:li>xmp.did:ba262f40-a4fa-40d8-8644-9601376fa707</rdf:li> <rdf:li>xmp.did:c28f5b5c-8005-4c03-bd0b-53bd4890af08</rdf:li> <rdf:li>xmp.did:cf7a3d50-7015-406c-af5f-f111624f4b43</rdf:li> <rdf:li>xmp.did:fae2353b-561b-40f8-9bc5-16396e7ea730</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> </rdf:Description> </rdf:RDF> </x:xmpmeta>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 <?xpacket end=\"w\"?>\u0000��\u0000dPhotoshop 3.0\u00008BIM\u0004\u0004\u0000\u0000\u0000\u0000\u0000,\u001c\u0001Z\u0000\u0003\u001b%G\u001c\u0002\u0000\u0000\u0002\u0000\u0002\u001c\u0002>\u0000\b20170907\u001c\u0002?\u0000\u000b111908+08008BIM\u0004%\u0000\u0000\u0000\u0000\u0000\u0010�4�J����Ȥ��\\}���\u0000\u0011\b\u0000x\u0000`\u0003\u0001\u0011\u0000\u0002\u0011\u0001\u0003\u0011\u0001��\u0000\u001f\u0000\u0000\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u000b��\u0000�\u0010\u0000\u0002\u0001\u0003\u0003\u0002\u0004\u0003\u0005\u0005\u0004\u0004\u0000\u0000\u0001}\u0001\u0002\u0003\u0000\u0004\u0011\u0005\u0012!1A\u0006\u0013Qa\u0007\"q\u00142���\b#B��\u0015R��$3br�\t\u0016\u0017\u0018\u0019\u001a%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������\u0000\u001f\u0001\u0000\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u000b��\u0000�\u0011\u0000\u0002\u0001\u0002\u0004\u0004\u0003\u0004\u0007\u0005\u0004\u0004\u0000\u0001\u0002w\u0000\u0001\u0002\u0003\u0011\u0004\u0005!1\u0006\u0012AQ\u0007aq\u0013\"2�\b\u0014B����\t#3R�\u0015br�\u0016$4�%�\u0017\u0018\u0019\u001a&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������\u0000C\u0000\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0003\u0004\u0003\u0002\u0002\u0003\u0004\u0005\u0004\u0004\u0004\u0004\u0004\u0005\u0006\u0005\u0005\u0005\u0005\u0005\u0005\u0006\u0006\u0007\u0007\b\u0007\u0007\u0006\t\t\t\t\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f��\u0000C\u0001\u0003\u0003\u0003\u0005\u0004\u0005\t\u0006\u0006\t\t\u000f\u000e\u000e\u000e\u000e\u000f\u000f\f\f\f\f\f\u000f\u000f\f\f\f\f\f\f\u000f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f��\u0000\u0004\u0000\f��\u0000\f\u0003\u0001\u0000\u0002\u0011\u0003\u0011\u0000?\u0000���[�{X?�O\"�\u001fL���9�麵U89=��3���\u0013Z4������-ߑ�vv��6�Y[�ۍ��9�X��rk�jT�I9�v���xa�F�5h�Y~�����.\u0003�{VgC&\u0018\u0003�\u0000�%�`{���r^\u000e\u000e\u000f�(*�*��YY�\u0017�q[3�#\u0000H\u001e��kJ�J�\u0004[�����p�o�T�/��M��,�<W\u0011y����

etc.