[added user list and user's recent changes links. added optional geoip support.
getzdan@gmail.com**20070205133439] {
hunk ./INSTALL 8
+REQUIREMENTS
+~~~~~~~~~~~~
+
+OPTIONAL SOFTWARE
+~~~~~~~~~~~~~~~~~
+- Debian's python-geoip and dependencies
+
hunk ./app/accounts.py 15
+N_ = lambda x: x
hunk ./app/accounts.py 118
- first_name = forms.CharField(label=_('First name'),max_length=30)
- last_name = forms.CharField(label=_('Last name'),max_length=30)
- location = forms.CharField(label=_('Location'),max_length=30,required=False)
- otro_lang = forms.ChoiceField(label=_('Language'),choices=settings.LANGUAGES,required=False)
- otro_first_name = forms.CharField(label=_('First name in language'),max_length=30,required=False)
- otro_last_name = forms.CharField(label=_('Last name in language'),max_length=30,required=False)
+ first_name = forms.CharField(label=N_('First name'),max_length=30,translate=True)
+ last_name = forms.CharField(label=N_('Last name'),max_length=30,translate=True)
+ location = forms.CharField(label=N_('Location'),max_length=30,required=False,translate=True)
+ otro_lang = forms.ChoiceField(label=N_('Language'),choices=settings.LANGUAGES,required=False,translate=True)
+ otro_first_name = forms.CharField(label=N_('First name in language'),max_length=30,required=False,translate=True)
+ otro_last_name = forms.CharField(label=N_('Last name in language'),max_length=30,required=False,translate=True)
hunk ./app/accounts.py 184
- return http.HttpResponseRedirect('%s/accounts/thankyou' % (site_base))
+ return http.HttpResponseRedirect('%s/accounts/info/' % (site_base))
hunk ./app/contact.py 8
+N_ = lambda x: x
hunk ./app/contact.py 17
- name = forms.CharField(label=_('Name'),max_length=20)
- email = forms.EmailField(label=_('E-mail address'))
- subject = forms.CharField(label=_('Subject'),max_length=30)
- inquiry = forms.ChoiceField(label=_('Inquiry'),choices=email_choices)
- contents = forms.CharField(label=_('Contents'),widget=forms.Textarea(attrs={'rows': 14, 'cols': 60}))
+ name = forms.CharField(label=N_('Name'),max_length=20,translate=True)
+ email = forms.EmailField(label=N_('E-mail address'),translate=True)
+ subject = forms.CharField(label=N_('Subject'),max_length=30,translate=True)
+ inquiry = forms.ChoiceField(label=N_('Inquiry'),choices=email_choices,translate=True)
+ contents = forms.CharField(label=N_('Contents'),widget=forms.Textarea(attrs={'rows': 14, 'cols': 60}),translate=True)
hunk ./app/models.py 21
- create_date = models.DateField(auto_now_add=True,null=True)
+ create_date = models.DateField(auto_now_add=True)
hunk ./app/models.py 26
- otro_lang = models.CharField(_('Language'),null=True,maxlength=10,choices=settings.LANGUAGES,default=settings.LANGUAGE_CODE[:2], blank=True)
+ otro_lang = models.CharField(_('Language'),maxlength=10,choices=settings.LANGUAGES,default=settings.LANGUAGE_CODE[:2], blank=True)
hunk ./app/models.py 28
- otro_first_name = models.CharField(null=True,maxlength=30, blank=True)
- otro_last_name = models.CharField(null=True,maxlength=30, blank=True)
+ otro_first_name = models.CharField(maxlength=30, blank=True)
+ otro_last_name = models.CharField(maxlength=30, blank=True)
hunk ./app/models.py 45
- mtime = models.DateTimeField(auto_now = True,null=True)
+ mtime = models.DateTimeField(auto_now = True)
hunk ./app/models.py 47
- msg = models.TextField(maxlength=65535,null=True)
+ msg = models.TextField(maxlength=65535)
hunk ./app/templates/base.html 38
- Account Management
+ Account Management:
hunk ./app/templates/base.html 42
+Recent Activity
hunk ./app/templates/locale/he/base.html 41
+פעולות אחרונות
hunk ./app/templates/locale/he/wiki.html 16
-
גרסה מתורגמת חסרה. הקלק תקגום בתחתית העמוד כדי להוסיפה בעצמך.
+
גרסה מתורגמת חסרה. הקלק תרגום בתחתית העמוד כדי להוסיפה בעצמך.
hunk ./app/templates/locale/he/wikibase.html 17
+
משתמשים
hunk ./app/templates/wikibase.html 16
+
User list
hunk ./app/views.py 7
-from ghestalt.app.models import Log
+from ghestalt.app.models import Log, UserProfile
hunk ./app/views.py 109
+def wiki_roster(request):
+ userlist = UserProfile.objects.all().order_by('create_date')[:50]
+ return render_to_response('roster.html',{'userlist':userlist},
+ RequestContext(request))
+
hunk ./app/views.py 186
+def recent_actions(request):
+ user = User.objects.get(id=request.user.id)
+ log = Log.objects.filter(muser=user.username).order_by('-id')[:5]
+ return render_to_response('recent_activity.html',{'theuser':user.username,'log':log},
+ RequestContext(request))
+
+recent_actions = login_required(recent_actions)
hunk ./i18n/utils.py 41
- if len(page)<3:
- return page
+ try:
+ if len(page)<3:
+ return page
+ except TypeError:
+ return ''
hunk ./local_settings.py 27
+ENABLE_GEOIP = False
+
+CC2LANG = {'IL' : 'he'}
+
hunk ./middleware/localeurl.py 26
+ if settings.ENABLE_GEOIP:
+ import GeoIP
+ gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
+ cc = gi.country_code_by_addr(request.META['REMOTE_ADDR'])
+ if settings.CC2LANG.has_key(cc):
+ return settings.CC2LANG[cc]
binary ./static/images/ghestalt.png
oldhex
*89504e470d0a1a0a0000000d4948445200000105000000580806000000fcf1e20c00000006624b
*474400ff00ff00ffa0bda793000000097048597300000b1300000b1301009a9c18000000077449
*4d4507d7011a121b146d6570850000001d74455874436f6d6d656e740043726561746564207769
*7468205468652047494d50ef64256e000010d34944415478daed9d7bb855c575c07f17bd228a0a
*2824a2c820885131d84403220aa255a934629bf8481b8d494d1a12ada11a5b53153f53b5e6a1a1
*564d529368e2a335522a510b4a4b7cc4478b0f408a5161e28b800614441e5eb8fd63addbefe47a
*f69e39e7ec7deede87f5fbbef37d70f76366af3db3f6cc9ab5d680611886611886611886611846
*edb499080ca33938e73a1bed8fdefbdcebb963f9443b2320d819a6e80ca3017a99080cc330a560
*18862905c330e2d8d144601401e75c2f602cf02b10839a738eae7f1b71f2f3deffaa526e5dffae
*24245b530a464f36e43d80138129c064602fd4025fad311b61f939e7da2a8e275d672305a3500d
*79a436e229c078a0dda4522cf99952309acd0b268262cbcf0c8d86619852300cc394826118a614
*0cc330a56018862905c3304c291886614ac1308c6661ce4b3d84736e08701c70147020300cd803
*d805d8026c0056022f030b818781c7bcf75b73aa4f3fe00f8149c0e1c02060a07e38de015600cf
*693dee03deeebab66cb109ceb9c3f459c70023807d80be8877e006e0772af76781ff02e6039bab
*ddab15e3324a989024eb242b33fac08c8d4d6a8cbd80d38069888b6aadf25f05fc0cf8aef7fe8d
*8cea3414980e7c01d835f2b22dc03dc055c0926a1d2422cb506e6db85a4775cef5063e0f5c008c
*acb18cb5c04f816b81d7eb550e35665eea31f965a514f606fe18381a3804d80fd85d8fad03f6cc
*5029344bf9b465ac1026003701076570bbcdc0b7812bbdf79bebac4f9b7690ab809debac4727f0
*efc085fa65fdff0e5224a5e09c9b0cdc00ecdf60599b80abf5f77eadca617b510a1380af032735
*cf3ed12ca5908d7270ceed00fc837e8db31e992d013ee9bd5f51639d060077eb54210bd6015f04
*fea5088dbaab63aaecbf057c2de332ff1b980abc518b62288b52a8b723efa35f8805c01fd1d206
*cb199d0d2884de2aa7bfce69aa360a78ca3937ba863a0d041ec95021a0a3c2bb803f2990dd6047
*60760e0a01e008e029e08084b24bdde2ebe9cc53babe506c37d4ae18b451de0d9c9c73e5f602e6
*39e70e88a8533b30073838877a3c02dc5b9437e6bdef005ec9b1887d1003e4beada6186a550ae7
*e997af1fdb1d352b866bd4ce12e265e09bc0386088ceeff7452ce397034b23ee310898e59cdb25
*70de657adf34162146c7e15a97ddf58b782a702bb0beca35ab8033808e82bdb4bfd28e5b556f00
*d7eb346004d05f9fd7212b13372306c63486a8e26f6f25c550cb90761af04f05e89c3d58f63567
*c3a6db22bec89381fb03a76d042e05aef3de6f4bb9571b70aeda2542caf846effd5712eef321ed
*086946c5ef035fadecdc558c7603802b812f6bfbd90a9c00fc67684e5dc7bc3a78bf8877d11f78
*b262a8bf12b818b81dd8966613d0a9d6f7803303c55c91d4306b5c9189e98f9d19f6e9aab28dbd
*c124601eb043e0bc5f02b7216bd92bf56f7b03c7009f0526165b29cc686b74c9d339d707781ef1
*3b48e26d6092f7fe991a1af70895efe0408319e7bd7fa2caf57f8358cd93781049edd519d9b94f
*02ee00be03fc7d6c076eb652d0320f049ed051c3b94923801403e155c0dfa614b149a7642b024a
*a66594c26e6a43d82fe59cb5c0d93a5f0dd9236ed3a15a12bf410c68efd6398c9f00331ece77aa
*90ac189c731721ebd949bc071c57ade34634ee91c0636a47486281f7fed82ad72e10d924325eef
*1ddd119d73fb01af7aef3b6393acf68452d072f7079677252dade8a8b1cffa23e09c94536ed6d1
*53e995428c4d617a4021bca3f3e13911f7fa859efb4eca394369cc62fcd19e9a5ce86ac3f4c069
*5faf4721e80bfc35f0a5c069139d73e3aafc7d54e0baa7eba8cf2bdefbceaec65564ef3eeffdf2
*aefa55d6b3863a4f077e9b72fc6c12fc71ca665b082985dec0f98173ce0596d550e632644d3b8d
*0bb4ec7abef23764338da88b53800f079efde6061bf72c9d9ea551ed8bb547e09abd30d2e4feb6
*da0e92e8037caa159e35a4144e0606a41c5f82585f6be56e2adc63ab3000f17f282889d38b3f0f
*5c787d46b10bd7058e4f75ceedd4ed6feb03d79c695d3fc81d3afd4be2d3db8352382170fc6775
*96db89587f1b293bef8e5fd36841a70ec7a79cd2c1ef7bfc35c2fd881761127d11e36e25ab02f7
*bc14185dd6216f93460beb9060b0248e4a1ae196499e21a5f0f1c0f1471b283b74edc74ad6668e
*d42164128feb10348bc6b985e4f5f72ebadb151e0f9cdf1778a852b19962a8ca9329c776063e51
*f6070c854e875ac5f206ca0ef9eb0f2b992c0f0f1c7f3c87c6796a0d4af53ed2ade75d7685b9c0
*8dc025c0fa56deba4dbd4e8f4196ca3f8e044c7d188916ed005623e1e28f2251a1cb9130f63446
*23de9d2dab1442c6a9b50d94bda6c1b28b4668d5e3b98ccbfbdf1a95ea6c6423910323468f5f05
*fe5415c36dc0b656520e1a2e7e3ef039926d66edc84ad850c4a5ff5ac4c07b67e0f607975d3e96
*64253b42239bdb9d73b737b13e83bb4d39b63ae7a623cbc231f692bd811f234b717f87c635c4ae
*eb175419f4415610cea7bed5ad63f8a0ada63bc3cbde904336857702c7fb3750f68006cb2e1a83
*0b569fbe556c11f723f114b5702812eff20c1205d9e69ca3eb572285300ac9a47411752f7747f1
*a156570aa14f4223492b425fd615c516dd079625f72c5805ab367ceffd95480056ad1ca6f3ea85
*48c05057672b8342381ed9e27e64138a1bd4ea4a21e4e536be81b2c7375876d1e853b0fa6c49d4
*f4de5f8a3890d593b5e90f903898dbbb146191470d9af1ea5ec45dbf19ecdaea4a615ee0f89fd5
*596e5bc4b5f34a26cba26da99e6a04f6deff1059575f5ae7fd3fa38a7b4c51470dceb9613aba89
*51d8ab81998881f5009ddeb6abe21b8d78eece2321b2b2829d5b5d29fc82f4558243a9cf8bebd3
*a4fbe2af211c7a5c343617ac3e2f854ef0de2fd42fffa5843d1eabb11f12b939b5688a4143ce7f
*1231addb80181e8722f91766a9ecd622cb926bbcf78bbcf7ffecbd3f91b053dd4e65570a3b4634
*f47f24dd38f5436031f1f10f1f017e10386766013b5988f7025f89fe59392f65893a427dd33977
*339267e0cb350e817b033f47b254cfea520c0558a13893f04ac1cbc872e3d204d954fbdbfc5677
*ea8a8992fc0ef05acaf13d10234e4c96a1297a6e9a0fc2abc0774b28cbb702c70b6d95f6debfe5
*bdbf087158bb5abfa0b1ec80f8338c2ad088e11b81e3bf43120e472b84ed8518a5b01ef1844b0b
*e4e98f187316e8b9c3914d4d76d17f9f836caa3187f465ccad7aeefa12caf2d5c0f12165780855
*0e97e87bbb29f0de2bd95547958dd256652a50ebd4e148c24e445f499a62955c21d41ab3539752
*00f1898fc9713001f8910a7b83fe5ed2bf4d8cb8fe02c23efd45e5c5c0f15279ba79ef5779efa7
*a9cd21d6457b62e590bdced1421686ba2981e34f03ffdaa21ffa86e5574be2d6b9393e48a72a9d
*1b4afc32423ef14796f1a1bcf78b91558a8b23470d5303c73b9aa014c6068edf494206a3128c12
*3a8aa21476457ce7f3601de229777dc93574e86b3a49372729a362e8f4de5f0b9c4e381d586844
*b82970bc7f06550e39293d54e27696bbfc6295c21564b3dd5977ee47963567975c21e0bd7f1ec9
*2f99c4206443d9323fe33d11a3b97d02c74381704333a86a288bd46b257e0db9cb2f46290c46f6
*7bc872aaf01fda414e26df0d3b9acdacc0f10b5ae01943e9e442312dab03c7b308280af90ad41d
*57a31beaf424b9cb2f46297c2e42c8df42f685b8030911ee72fce8d07f3fa7c7a62156f8c954ec
*13d04284fc2f263be78e2df933867268bcd7e0f559d85e427518d8c0bdf72fb8fc1b965f4ce8f4
*8981e3b3914d664196b0b65bbcf7cb9c730fa8d24be216e7dce1defb35257dcc50c0cf6f02c743
*6ed55928cddf22bb3e257134f5a7c63ba387e59fbbfc62460a87048e5f8351c925a41be38601f7
*e94e4b75e39c1bec9cfb37e75cbf1aaf3bc43977ab736ea73a43a043cb7d4f058e870cb2c3a892
*ebb2c63a86bc6bcfab53e6c391d0eb9ea42ef9059eab66a510ca80b4d8f4c0ef8d169e25bcbdde
*58e051cd00544fe31c87ec78341571338fbdae8f7e21cf4262165c2d9d4eb79ebbac41bbcaa3c8
*9679695c51ad6dd6a01842e9d08e022e8ce920157fdf17b185f5741464ddf28b550c3117be1938
*3ec254c107b838e26b7510b0d8397761acf1ca39d7cf39f76d242d589787e4a79c735f8cacd7cc
*8a91df58647bbbcb51e360daa8c13977a8969be6aefd82769c34a5f91ef040a09ee380ab02b2d8
*df3937db3937a672c4a3f5bf274216d7a6299f4a3938e74e45fc507abcad67253fb58dcca65b94
*ab732eca25723eb29764da70714a84f2c888c6f67a6c5659ba35fc1384adf100af234145731043
*d24a249ea01f1289f8317dd1a7247ca93602877bef97a6d4e774e0ae84c39b90b5fb0790d894d7
*100bfd0024a1e919488051c8067512154e6e297b334e22ce7375b676de453a251ba8b2380d0971
*6e47f61039adcab5f712178ff302b2cc3a1f5909eb50b98fd011c5591153e8ee24b58b86b77cd3
*6def72955f4c07fa3c704be09cb5483ebfb94842d137093b59b4b452d0c63f46bf9cfd9aa02d97
*004778ef3755fbaa22e9d476cfb1fc6ba8d88435624fc9d0c72696adda81bb17f8117de6acf31b
*3c86a4ba1bdd534a216ff9c54c1fee24ecd7df1f49f03957b5ed461540da6f9b2a9397f4bacb55
*33b7927de1497d716f34a1b88d29f69f41c40736d5c34d8881b516be4436816f3b50ddff6319f0
*97193fe7bb48c6aa22b8e3e726bf5e918ded801c1eaa4dbfa0c391c41533d488b208d9acb3ad45
*14c3334850d1833915b10d71113fda7bbf2aa10e4fe8dcf17f322e7b9336a8695d5fc1d88d66bd
*f72f21b90cd665508f2f248cc66e05fe02783f8332d6eb347929928a6e6d0fb7abdce417a3143a
*9bfcbc87221973e653be0d61925ee06aeffd093a3f7d3dc35b3f098cf7de7fcd7bbf3950871711
*c796e91935e88791bd2ebe173b65a852a70548ac44a323a917936c37defb5b908d7a1a51884b55
*76bfacf850de528076958bfc7a154c2154722c62f43a8816c17bff53c4ea7b2ee9db8f85e68073
*8129defbb1defbc76b28bfc37b7f1de21f3f9df08632d57848bf98132ba795f54617ea486aa48e
*14dfadf1f2c5c067b5d32f4f9a7f7bef1721ab2de72069de6b992e5c86185b9fef76ec46c2f91a
*9b3512cd547e4943f4d391cd40d276378ed96d280b5623e9c557ca7fcb63680ce164dd6b12b2b2
*7020e237d00f494eb31571d77d53ed344b90959eb9defbb7b27a425d6a3c4e3bcd4864a97337fd
*60acd1f29f4712e83c88a4306b4811a4d46537adcb4988957ca0feda7598fc86da0a9e4592a82e
*4c520481728e50b91fad53e33dd51eb301d98877a1deffe7491dad8821d659c82ff1de3a7f0a19
*0ad121d5c548c28a253a347e37e2da5a7f776118468f31275221d44b9b7e893eaa06aaa72315c3
*687b3586d17c3e11e898792cc5b421a9b5b705cabed25e8f61e44f7743e36702e7bf95431d3a11
*0bf6ccc079c7dbeb328ce6f35ce06b3d2ac7b20f0a94fd8abd1ec3683eeb021d33cffd127b07ca
*de6cafc7309a3f7d086dd1dd37c7ba84b6f7da64afcb309aaf145606ce1f93635d42710fbfb6d7
*6518cde7cec0103eaf9da0db110fbfb4b2afb6d76318cde714c2fe0259a7a3da098975482bb383
*7c82b20cc388984e2c8a500c33236c0031659d80c4bc87cabbc95e8d6134876abefb47221170a1
*2c3b5dd97a1e41022b5e41e214d621a1aadbf41e3b231e8c0311bffa91885ff671487c45886588
*53d57a7b5d86d1739c47f6f10bf5fc5e239bcd410cc3c8806ff4b042584acf6fbc61184637ce22
*9fa8c7d0ef27e49b4fd0308c06188e84466f6b823258004c30911b4639188164ec5d96b12258a4
*f73dd8446c183d4fbd99838620de8d87e9486228b2ba3000c91ad48e2c39be0f6c41560ed62059
*6d5620d97b9e45f2e6bd69afc1300cc3300cc3300cc3300cc3300cc3300cc3305a95ff03ac27c4
*ecc7b280ac0000000049454e44ae426082
newhex
*89504e470d0a1a0a0000000d49484452000000fa0000005a080600000091f04bd300000006624b
*4744000000000000f943bb7f000000097048597300007b0800007b080178241da1000000077449
*4d4507d702031409393e724254000018bf4944415478daed9d7b945c559def3fdf535da7aaf30e
*10200828844890302002f212c85c04019900e9aa30e125c200a33caef2583ac20dac85e885d109
*8a02a3882088e94e02a20e1060500630c3532420cf4b604c78442090477755779fdffde39c4e77
*923aa74f5757f52bfbbb56af54ea549db36beffdddbfc7feeddf4f66868383c3c886e7bac0c1c1
*11ddc1c1c111ddc1c1c111ddc1c16148a061b83474a2664c6845dbc0582087cf58ca640cc63281
*c9cbdfb68bd6bae1747018e6445f4bfb6c18f5030802032bd181f00d025bc37bc7010fb8e17470
*1831aabbb4fe151288cee1b35e393838899e8ae63d5e1b610c40c68da383c3c821ba1146f74492
*dcd483ec0e0e030d5fc5bd84a654ba56a6fc27b33b5f7344af4a9a4b604124d915608187d4e9e6
*9cc3a0d8bd76a6616757ba96a5e102e0c7ce46af52a277d9e5d16b0ccca9ee0e0e2388e85aef88
*b3f5ff37c0497407871126d1ad07ed8dc08473c639388c281b7d53e28702be930e37920e0e2391
*e85ee88fc3c070fbe80e0e238be8d1969a051860e66db8b5eee0e030dc6df42ee75b97532e24b9
*db477770185144efa2bb45923d702c777018a94437a2fd731ccf1d1c4620d1c3ed353323b06ee9
*2e1730334c304933c74a723e953e604b9d3c6eb394e862c3c019810b811d26245f4deeb75070c9
*4e5222afd947aea17ce9664774217539e440cedd3e4c304673b6f988dc62c30e74bd910e39cd2e
*1ac10241632dee37ecb6d782704b8dae736ba1b5ee02668632c9dbe9b81f6c37d71be9d0a8d927
*43f0536a18f4394c0fb584f25c918dee02661cc94712c9831a937c98aaee5da477702477241f91
*4467239287cabbb9432d8ee48ee48361a34b1a5da1c1ad40b6c73327470b4d16d83a7a6f34e427
*64188de14ff418dd18e05b86d19303b2bb7b11c9b591943782ef35eaca0f3d1a65b06dbc46405b
*80bde9a165424f74a047daec6bafd65d1351d16fa073ff0cdebe017c4ab03528facdf696f05606
*d8b32278b8cc1e4bcde606b56fc38c8606b63ac08303c1fe0e342e6ac307601f01af839e2ec3e3
*d0b2ccaaacd5251d3fc527f30068fb4ad7c7931db7a54e4eb551f23e53d7a4e90be90a2fcbb37b
*40e6200f3e65e1dcda16d400bc03b6167855f0581e7fc92abbfd83a144f2bc0a171a7c37e6d765
*d36eb1bdcf871d66bf5957f12efda9bd26691be028e060605a44de49c0a814448f2163de206fd0
*681e8d74bd163913a331f241f87ea389bc89468c51ebdfeb9b2980093d2bec076bb870a1d5382f
*55a38a3b1a7cddb026609b946d7a35c0ae6b67ec4d6637b7f59fe0c78ef2c99f079c05ec98f25b
*2f03bf2cc37cb3e6576b45f22a74b73d4ab6e0c5b8abe355dca20d3b5f30c760a794ad2c19410b
*78d795adf9a97e12f43a83b363b4ce0bcad6f2e37424d777c06ab089a4074bd6fc859aa9ee92f6
*917427b01cb81938033808d89930f17a25f5a3318d06615d4f00d90604f0143ae350b7e2dee58c
*abce66b7301dd55e9df0b346beff605ed74cad8df43c75744e85ab02ec2f867d352dc9a336ed22
*34cf67cd0b79cd3eb23fedf0356bff1cf9a7802bd3931cc03e0976b98f3d9f53a1c55771bf8127
*79b204f7553cb7157b05f8567a9203584ee864618fe555f857e9e8dce04b72abfb4eb1d747828f
*977433f038705c3dec89c8ab1e91774375a3a733ae87022f751d6aeb9ff4d82783f7e0287defe0
*fe4dc2e3a7f8b43d0a5c0cf8fdb8d50e86fd26a7c2dc6aa2c91a357b86f0ee35d8a59ff3e338c1
*237915771d0a24df42c5f13e4b5b84fd9ba03f51639ec1053ea3ff304933c70e2d757d10892e69
*0ab004f812753c1ada25b52d54abd5c3f1661b7f52eb534a8511723570f24d10fc729cbe37ad9a
*efe774c2749f86ff02dbbd46bd21e0d21c4dd7f46db199b57380dd15fa3c6ad30e8b59d47dcdda
*dba7e1fe8191e4c5c675f03be01f6a78dbcf7c486e9174c58039a6732a5e3190244fed8c93b41d
*703f7d5291526119f0ad68c1191349c0ad808c87b60db9679381ac6057c3b689168248840b3033
*d402f69a87f2106cd1edd8f3c687e4b509c0644b11656430a1036e92ae38d46c6e471fc8f5719f
*cce2c84751e3c58f0b7c15fe5ab69679a95476bcebc046d57bf2f89ab53778f7021307440aa283
*0282cfd65e8bb4c37c965e045c5ddf854aca51f857b0f3075a836848d1380ff8552f247f075804
*bc007c18a9f49f00f6030e239e609f002e058e36b365c993eae0b3816bbb9576adff378377fb1a
*bbec815eecba86318c9fda41e72ca133c0b64cf8f81ea3197b32f0f374037874ce67cc22b049bd
*38da5e07ee09b0a73df42e40806deda1fd0d3b063439e1bb57f96afa43d9163cd39b34f7c91c9e
*64c9083d16600b32787f013a3be9d8d923b30770846153d3fde6d3f359bc7b354024ef03d6002f
*81fe1a2e76da3ef439249b99862e9ea8e3fffd03bb7355bd1a9665d6e93608244f2bd1cf063e17
*73ad03b802b8daccca310bc538e01c602ea1377e63ec06dc23693f335bddbbfd2ebafd74a13d9f
*66af2692ce7f01ae1cab1fde1850bec5c2dd823813e27ce98a5bd36ceff88cbe34dcb28a5f083d
*bc6fb461779835576aee2dd2d1b92ca3ce14fa4eccc29815de0dd2150724b5298bbe18efdc9119
*c1574bd6f2938d2e3cd4bda09eb0a747e6cb06a7465a560c7e5e6ae0a4bd2b5de9a4f47abcada8
*29c24fb57dd8caf2b753cee3b5423fef84f91db42cd9786b70824e9ad84af9ac48a8e463a4fa84
*b5644e046ea817d9c6d3deb296b18b37edaff2696097c76873b736909b9b8ecc415b554497e447
*9d1347f253cdec8e6482d947c0d59197fe77402589318dd066f96a0afbbdfb7f0455a5925a6de7
*ad94ae9edd48e68168a1a9d4c1bb8c62cca781a792fba869aa8f7751bc04d5f30d648e5e6b77ac
*48eea7ff28013ff235eb8fe02d168caff0a9bd7d5e381e58184f246fe7f85d427bb06c0b7e92d4
*8eb22d7a16b860ac4efd7699b6af819d5389f01199fe5ad9062dc4debf0d969bdd56ab03879d82
*5b1bc85eb6c67ef94edc87a27df3ff9b55f1610f7b20ce492af4f97a127da5fd7a35b07a536db5
*6955dc112d0fad5b67b7fdb5deceb82f00dbc55cbbb637926f34315e01be087c14f39133a37df9
*7456eb7a3bbd3a6fbbd925abc13b2f291795e07ff5ea5821730958dc82b9a281dc51bd917c43a2
*2d7cdac33b3dbe4dc105bd2c86491ee415e917c35bdf2d59f337b36837e0560dbdf4f96f7b7847
*b559cb594924ef89766bfe63921d2e349d118ade883e336e1e10eecdf6915cf6327055ac060cc7
*f4a6ba772587ecb6d4abdf835c675f7b1c7834c16edb3fe9fbe334672bc38a092dfedf6bed176f
*f5b55d6d36ff37c4948136f8acd43435a18fd6255c3b409ad1a768c835d6fc76c95ace68b3e697
*86d0bc7d2e8bf66db5f90ff5f58b19f453a0a2e91024fb6d4634d1f78d79ff3e33abd669f113e2
*a543af7bd8a1f8f5d4fdbadf5894f0b444c7541bedc7c679b785969469b9abda46097d3f6ecc72
*a16644e5c91a3c9320eda7fa4cba6c384f58c1236574c81a6b7ebb9aefafb3e6e571268720279d
*9ddd1c89be73ccfb8f56fb40337b1f782ee6f20ee906dbe819f5de9fa89d20dc368cc3f64ac86f
*21ecc804c2dd6cfd882f2eb1e66143ab63348d43e32556ee4150c2b6a0fd4b5e851f48a7e787df
*74b5974be858b3e635fd5b2c1467f3e6b7e2edfce648f4b86db10ffbf9dc6571da708a157d03c2
*5b3f057bab5df886627e8f41663cdf9d90d09a38d53ec8e3dfddaf296dff51f2e04f31973f1d17
*2dd76ab7bf0176672f5ad13ffbac7d22ab59870ca7c9da6acd6ff697e4918adece66866a4faff5
*3718234e4a96fbbc3623f5b72493a1d7c0f6aedca0dc286093d34e6354dc16f8584cab5e5bcdaa
*d5fd8da3ce32facd988eda6e02c78d0756556e73f0cd2c992f28d13167d33c320fe4d4d452c6bb
*d4acf9f5cd65d27b48b6996534e88de86d31a4ee6f88e7de31efbf954cc8300bacd7439e876a7c
*7f4fdbda8a8436c5ad483b2ad1161ebda69e03b78eccc7e2886eb6f08d4615ce0bd0cdc907264c
*a0a20f5fcca970dd38cadf8db680461ca4e24e396c96c129c0a7363789de9beafeff62de3f51d2
*98ea3a5c9f4bb0c55fec457ecba35b6555941336d3ff9c71ef562115b619cc810bf02626abb92d
*b71b5c906cafaf27fc28e0928fc8fe39a7e2f12365728fd62993f32a5c985361898fbd68f09dcd
*91e46988fee798f72712765a5f49ded0cbf7fe9052d50ee566a47ed56083b7cf2b45b25a5c7f64
*52c4b297adf97a612718bc9ff2576d0fd69c5361fe049d3471b892db57e12b7915ffb383b665d1
*e191cf304cb3290d14d17f9b70ed5c49dfec23c97f4c786e3d4e6d7fb837d5bddbc0578ff7063e
*396427961bcc8133948a886dd6724f3bc17e420ff7e1f627b4527e2a3cb4323c9057f1f33915e6
*77d0f69ae05ac33e1733bfd71a5ab5b911bd37862c045e03a6c45cbf4ad274e062335b9140f269
*c03c202991c28fcc92bda1d1b155ebda5eeba9c6f7cb7e43e5be3a673cbcbf197121dbb6d0c3bb
*a49e03d746ebdf522f0ab6f00d49876799f515a12b498c615f8f1dc05b9cd7ec93da6cfe7d4375
*02376af68c00bb0a6c9f841136618f06706b3b6ac98647780f75445f3f41ac2ce934c2bde6b8ad
*b6394093a45f030f4676fdbb8469a5a61246bbfd3d611aa9382c8b168254d3b6db4ec53cd4efec
*1786bd17afd3774c22cca4b3a9508f5d38bcad5badf9cda134d0d19efe8f46a9785727f67dd0f1
*bd6536118c37acd957d311655bf0df43e9f748a7e773acbdc6b0b31234d395c0cda2e396365bf4
*72d79b7e422cfee62ad131b34725cd047e9d40761f28447f7d453b709a99ad4d4148ebce40d353
*75af5f01876c6c1c7bfbab71a13a864d91a4fe04ccd40b5164d8ec46150e0be0fbc01ebdf4fa28
*a1456354fc4cb5d168b5c624cd1c9b23f7db84ca2f2b0c5dd3cee89fd622efdee660a37791fdfe
*48d579afe6a62e9c61660ff7fdabb6be0e5be720d8e82526bd0e2ac55cde2ecbf17f379407bed5
*5a7e5f46fb1a3adf2ac4096c84addb09e60d85764b45ff43fc3b2b935c26b8b68c762f5bf3758e
*e47d24baa41d816f00136af8ec7709134efca20fb6b4c28c32eb2567bf23e3aa57856f6c277e57
*029119f2db5466cd9d656bbebe017d1ab8b797a972424e4d83be78f9f02d55b4af6546e73fb759
*cb45b5889edbec882ee913c093c009d426196407f0efc05e66b6b88fb6b41191bd7b4fdd06b1d6
*a2dd17df56ce1dafe216c36112acb3e6e565a6cf24318f9909346730dbd9a8933e0e5c18e34fb8
*b56c0b6f7294ae5ea2ff98ca79d04a91b3c35292fb49e0326017333bdbccdeaaa6c161c5354f16
*7ae58c41ac8f6ed8ddf1ed647c099b5b8fe7d6e38495d9dca0ccf4b9424b129e9c36363ed6df32
*9e6cd5995b03ca2712b3ad19c0f5c39786f1fea980604cdd891e2585acb425761bb0a5996d4d98
*9ae7e3c001c011c0893dfe6612062b4c34b37dcdec4a337ba3ea098e141058b7e24e541f7d70aa
*a9966dc13342ff9d20d5bfe26bd619b523b8e46bd697b2bc1f9b0525afe20fc769ce56d592ddb0
*dfc4f7bfa5bcafc5dafceb68ab3ac1a8c5260291b587f90a872544e6c378826aca4048f4bd633e
*73599797dcccca66f6a6992d31b3fbcd6c7e8fbfbbcdec6933ab99cde4e1a9eb886a18ed3eb89e
*6dc3ae4d1e446f9eafc299fd7d4e4e4dbbfb34dd2bbc9f28cc941bd79ea6363a96fa2a9c5a4d3e
*780b2beac4fd9a947dedbd9f30710feddbe2d69d86d94b3cc6dcaae14af480cef7e2c7437ba72d
*c954a9cfd2123dee016307bf7bc2232da1836ef0ca269759b04028e97c7e5e70bdafc2cf47e9e4
*edfb3660525ec563722adc037a9a301e218584b02d0537f9343d9257e1a8f4cf2b663c343b7e42
*daffa41c9b841c67de3952b131cd5db22a1c98e5f91e7e1065e3fc070d34ee395c89de4126a15f
*2db786d23929c7af31a7c2253e4b2fee2bd1e3d4ec6f48ca0c0ebd37a1fbe04a7433333ace258c
*0748201f2775527e31afe28d39159bc669ce561b4b5ca938469ab5b3afa6d37c35ddecd3f49a85
*515c87535dacf67e0677e7547cac51c539d2b1b1f1f15beae4713ec1ad867d36e137fc57cae726
*9833b6b38ffd2aae3a8a54f4732acccca978af077f10b67f8fefbe13af29d8d7d334ac5185c3e8
*436e3849aa77d699e88870d2c1aacb732ac62ec0a374f2f63915fec5277809f836155270f7260a
*9f22dc3bdf3897d61c604f4977007f248c6c5bd95bbae61ac870530faa87af0769c5e981922d5a
*eaabe9eb423fece517e40cbe0c7cb9443b599a3eccabf07ee44cdac287f1f5397b61fb06704b96
*fc0739151e30ece10c99973ae95ce5a18f193a08829392f2ca47f75990ee799d7742e68a840f1c
*fd11fe4b79157e1dc04b91ff652bb0bdb2b03f30be928f57f0a485b5022a5172665ec58bdbacf9
*9a3869e78765b2be212c96b87fa3611251a6d6bc8abbfa34cd2bf3c179405dabee0aef2e23382b
*4eb901bb2dafe2b9863d6c046f086f6bc1d6863e1795a7ce242544ee2d04b64dd23554de76d99d
*0d13440692824d34dbd033dff5ef72c210d99709ebb7bd60664175840f436686ca91a4b22db821
*afc29e0667a61f5cc65b94d679200ccca8d84241a81010445e8e2e3d49bdf5f96d655bf07cca85
*ef2fbe8abf177658c2c726199ca98d743525b7ff4e83afc4a9ef0657f92a7c5ee826e0390824bc
*1dc08ef0c3a8cd6d7b6bbb4f669eaf598b847724a133794072c8197603e1dcf1123eb33fb07fd7
*acb78a3a6e15448ff06f84a5917b73a278151ad940e89187caf9dcdf96d402dc60662ff43e5125
*c30285c921d74bf7a19287b8c4f4afe6783e6bd8697526ec3b03fcd3deccf5f1908ee8f81a641e
*234519acb468b596dffb2a3c249891d03733c06674eb7c7db5ecec28e11d35e073c79a9fcbab78
*7d547db7e6e855204615588e266579a23e625be03ce0394937486a4c3789ac07f1a96bac7bdf6c
*adb94189967fb25045ac475eb2e51e3aadc4f473e2577d2dad35c9cbe8f0d5d6bcb2afe68cf00a
*84598a6a86763ace32546528b64ce8670cd1adb8122b2f025a0685e851b59633086ba8d50b1e61
*e9a7fb258d4dfe60b703ab3bfcb561c80c969959d95ae6197688d06335baeb1bc0ff29d3b87bab
*35ff32a92453d99a3fef8585377e0704fd7ceec22cd903abcd27d766f3ef338243855eab9698c0
*e20dfbf7ce6584bf6f459fee845e11f6c5366b3edb529e9434b43a5cb4572e1b98b9f35047199d
*02ba3c5d66a04a6de67df09ee813d125ed063c01fc80b02062bd7110e4e725d9e65d7f5d125d30
*e8ceb8189bfdc9122d8779784719fc828468b158bf10cc171c53c6dbb5642ddf31bb35d53d5aad
*e5c192b51c5746d3802b855ee923b9ee151c53b20527a6ad8212df0f0b9f2e91ff0c61d5dc1529
*09f69ed0cf0c0e2859cbac0a8bd99f32e40e12dc9cbc98a943f00830a7c4eed3dbac6571a8154c
*bf45706d7c5c80d609aef7e153656b9967f6d080a98c66cd9d256bfe36b01fd8c2f484d733862e
*1a833e59b2f90b371dd598dda928b7dbddf47e90a54c98ebed25c253503da37c2612eec5ef4098
*237eebdebc3e221f3430e6b3655bf9e486ed993106fc89d048238d91e9d708e4d986b12b5fb7cb
*ab5611a5abc73656ac75063bd1faeef336b7dcdf010c8b288ed90d823d853715f08d20720ea95d
*b0d2d05b8237052f946879b956c75cc36dbc1376cce31d1aa02946b093d036420d86ad33ec03e1
*2d077ba28186257d2921d5d73e68a0711f0fef10c37613de58c1b88060b947665d40f08c112ced
*60abc7a34343bd62b4fe71bb76ca47086f9ac1640fde0b557bbd98a3fdf71fd9a258353fa71376
*1399a3c19b16d0990bfb80a746d1fe409aaaaa1374d2c412ed1535d031943ea845a2cdd13a6572
*07a543841d186013c19b2c6835825542ff03deb365ca8f479a4ec2f25d612e499a0a3c467c0456
*10a9863703f798595bca09b72361228af3090b2b5622ba89fc759df6c1a0949775701889d884e8
*5110c77f26d8e4af10268af8633f248c0fdc087ca912d121f75260ab7673c3e3e0503fa21f4e7c
*99a2e7801966d6ef041492b2c0b36c52b6386fa2d18c895b98bdf6a11b220787fea392332e2ee0
*a31d28d482e4a1d3c1da813b3695e8a13bc6a77d07373c0e0e75207aa4b6c7a9ec779b59ad4be7
*562cb6684040e778373c0e0ef591e81381b80a24f5c8025af1dcb2dcb83838d495e849b1c0a53a
*3cff6395a4b96a94afddc1c1a132d1938ecaed5387e71fb96983c2b0d60ebc656e781c1c6a830d
*bcee9127fc3d2a279628017bd6ca4e97b42761d45d7643b53d6f905f61acda6128e645777018f6
*123df284c72517c8017749daa10624ff04b08098238086ee72247770a89fea0e612ae6384c039e
*94f48fd5649891e4493a8530a1c52e95494ee0c30d6e681c1ceaa4ba47645424d50feae5bb2f03
*bf22acb8fa67332bc5913b5a208e258c849b967cdbdc8d666de7b8a17170a823d12372ee44b89d
*3629e57dda08d349bd03f4ccf8ba0db02be993492e050eac774a2a070747f46eb2ef05dc4778e2
*6c20f032f0f766b6dc0d8b8343fd6df4d05636fb13f069e0810168c77dc0c18ee40e0e034cf488
*ec2b08abafcca63ee9779603a710165b5ce986c3c1618055f70aaabc4718e0721ae199f26a6b42
*0591fd7f13707bdab3ec0e0e0e0340f48d489f27ccbf7d30b007f049c26caf132b7cfc6f84299e
*97024b80c5fda9bfe6e0e03040448f21bf08836a3c603261386dbb93d80e0e2388e80e0e0e4317
*9eeb020707477407070747740707074774070707477407070747740707871ae1ff0370f12c0cf2
*3065d80000000049454e44ae426082
}