From 0c3b93707e3378eaaa1ffb62a5c827bca19076f8 Mon Sep 17 00:00:00 2001 From: bot50 Date: Sat, 15 Aug 2020 10:52:42 +0000 Subject: [PATCH] Priyatham-sai-chand-web50/projects/2020/x/wiki@20200815T105242.148096769Z --- db.sqlite3 | 0 encyclopedia/__init__.py | 0 .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 141 bytes encyclopedia/__pycache__/admin.cpython-37.pyc | Bin 0 -> 182 bytes .../__pycache__/models.cpython-37.pyc | Bin 0 -> 179 bytes encyclopedia/__pycache__/urls.cpython-37.pyc | Bin 0 -> 523 bytes encyclopedia/__pycache__/util.cpython-37.pyc | Bin 0 -> 1429 bytes encyclopedia/__pycache__/views.cpython-37.pyc | Bin 0 -> 4649 bytes encyclopedia/admin.py | 3 + encyclopedia/apps.py | 5 + encyclopedia/markdown.py | 11 ++ encyclopedia/migrations/__init__.py | 0 .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 152 bytes encyclopedia/models.py | 3 + encyclopedia/static/encyclopedia/styles.css | 44 +++++ .../templates/encyclopedia/create.html | 28 +++ encyclopedia/templates/encyclopedia/edit.html | 29 ++++ .../templates/encyclopedia/error.html | 11 ++ .../templates/encyclopedia/index.html | 17 ++ .../templates/encyclopedia/layout.html | 38 ++++ .../templates/encyclopedia/search.html | 17 ++ encyclopedia/templates/encyclopedia/wiki.html | 19 ++ encyclopedia/tests.py | 3 + encyclopedia/urls.py | 14 ++ encyclopedia/util.py | 37 ++++ encyclopedia/views.py | 162 ++++++++++++++++++ entries/CSS.md | 3 + entries/Django.md | 2 + entries/Git.md | 25 +++ entries/HTML.md | 14 ++ entries/Python.md | 3 + manage.py | 21 +++ wiki/__init__.py | 0 wiki/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 133 bytes wiki/__pycache__/settings.cpython-37.pyc | Bin 0 -> 2247 bytes wiki/__pycache__/urls.cpython-37.pyc | Bin 0 -> 958 bytes wiki/__pycache__/wsgi.cpython-37.pyc | Bin 0 -> 530 bytes wiki/asgi.py | 16 ++ wiki/settings.py | 121 +++++++++++++ wiki/urls.py | 22 +++ wiki/wsgi.py | 16 ++ 41 files changed, 684 insertions(+) create mode 100644 db.sqlite3 create mode 100644 encyclopedia/__init__.py create mode 100644 encyclopedia/__pycache__/__init__.cpython-37.pyc create mode 100644 encyclopedia/__pycache__/admin.cpython-37.pyc create mode 100644 encyclopedia/__pycache__/models.cpython-37.pyc create mode 100644 encyclopedia/__pycache__/urls.cpython-37.pyc create mode 100644 encyclopedia/__pycache__/util.cpython-37.pyc create mode 100644 encyclopedia/__pycache__/views.cpython-37.pyc create mode 100644 encyclopedia/admin.py create mode 100644 encyclopedia/apps.py create mode 100644 encyclopedia/markdown.py create mode 100644 encyclopedia/migrations/__init__.py create mode 100644 encyclopedia/migrations/__pycache__/__init__.cpython-37.pyc create mode 100644 encyclopedia/models.py create mode 100644 encyclopedia/static/encyclopedia/styles.css create mode 100644 encyclopedia/templates/encyclopedia/create.html create mode 100644 encyclopedia/templates/encyclopedia/edit.html create mode 100644 encyclopedia/templates/encyclopedia/error.html create mode 100644 encyclopedia/templates/encyclopedia/index.html create mode 100644 encyclopedia/templates/encyclopedia/layout.html create mode 100644 encyclopedia/templates/encyclopedia/search.html create mode 100644 encyclopedia/templates/encyclopedia/wiki.html create mode 100644 encyclopedia/tests.py create mode 100644 encyclopedia/urls.py create mode 100644 encyclopedia/util.py create mode 100644 encyclopedia/views.py create mode 100644 entries/CSS.md create mode 100644 entries/Django.md create mode 100644 entries/Git.md create mode 100644 entries/HTML.md create mode 100644 entries/Python.md create mode 100644 manage.py create mode 100644 wiki/__init__.py create mode 100644 wiki/__pycache__/__init__.cpython-37.pyc create mode 100644 wiki/__pycache__/settings.cpython-37.pyc create mode 100644 wiki/__pycache__/urls.cpython-37.pyc create mode 100644 wiki/__pycache__/wsgi.cpython-37.pyc create mode 100644 wiki/asgi.py create mode 100644 wiki/settings.py create mode 100644 wiki/urls.py create mode 100644 wiki/wsgi.py diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000..e69de29 diff --git a/encyclopedia/__init__.py b/encyclopedia/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/encyclopedia/__pycache__/__init__.cpython-37.pyc b/encyclopedia/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d1ff03d609a1370fa34915e0344c1cee81ef511 GIT binary patch literal 141 zcmZ?b<>g`k0>1>iI1v39M8E(ekl_Ht#VkM~g&~+hlhJP_LlHg`k0>1>iIC~)d7{q}ACLqHBh>Hb)L<&O+V-7Ila!a7 zkr?BWU!IqfpO{h{Q=XZf8IziqT$!AcUyz!TnHU2$Rj;7(7Kcr4eoARhsvRTHoXg`k0>1>iI7=Y?7{q}ACLqHBh>Hb)L<&O+V-7Ila!a7kr?BW zU!IqfpO{h{Q=XZf8IziqT$!AcUyz!TnHU2xQLmu#7KaUxU7C|>#|Sj&GY~TX09-dL AS^xk5 literal 0 HcmV?d00001 diff --git a/encyclopedia/__pycache__/urls.cpython-37.pyc b/encyclopedia/__pycache__/urls.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..226c70b328375016b057c73dd96b08c0ab658578 GIT binary patch literal 523 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 Z1J`kQw5+-6oa;5ci{1r)#`C;W{{|L1UPJ%@ literal 0 HcmV?d00001 diff --git a/encyclopedia/admin.py b/encyclopedia/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/encyclopedia/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/encyclopedia/apps.py b/encyclopedia/apps.py new file mode 100644 index 0000000..b343d5d --- /dev/null +++ b/encyclopedia/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class EncyclopediaConfig(AppConfig): + name = 'encyclopedia' diff --git a/encyclopedia/markdown.py b/encyclopedia/markdown.py new file mode 100644 index 0000000..44f81f9 --- /dev/null +++ b/encyclopedia/markdown.py @@ -0,0 +1,11 @@ +import re + +class MyMarkdown(): + + def add_tags(tag, word): + return "<%s>%s" % (tag, word, tag) + def heading(string): + if re.search("") + def convert(string): + + \ No newline at end of file diff --git a/encyclopedia/migrations/__init__.py b/encyclopedia/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/encyclopedia/migrations/__pycache__/__init__.cpython-37.pyc b/encyclopedia/migrations/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e08d08225beab5f0ec5370ff3b37071172cea25d GIT binary patch literal 152 zcmZ?b<>g`k0>1>iI1v39M8E(ekl_Ht#VkM~g&~+hlhJP_LlH +{% csrf_token %} + + Title: {{ form.title }} +
+
+
+ Content: +
+ {{ form.textarea }} +
+
+
+
+ + + + + + +{% endblock %} \ No newline at end of file diff --git a/encyclopedia/templates/encyclopedia/edit.html b/encyclopedia/templates/encyclopedia/edit.html new file mode 100644 index 0000000..2513cb1 --- /dev/null +++ b/encyclopedia/templates/encyclopedia/edit.html @@ -0,0 +1,29 @@ +{% extends "encyclopedia/layout.html" %} + +{% block title %} +Edit Page +{% endblock %} + +{% block body %} +
+{% csrf_token %} +
+
+ Title: {{ form.title }} +
+
+
+ Content: +
+ {{ form.textarea }} +
+
+
+
+ + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/encyclopedia/templates/encyclopedia/error.html b/encyclopedia/templates/encyclopedia/error.html new file mode 100644 index 0000000..23e88c7 --- /dev/null +++ b/encyclopedia/templates/encyclopedia/error.html @@ -0,0 +1,11 @@ +{% extends "encyclopedia/layout.html" %} + +{% block title %} + Error +{% endblock %} + +{% block body %} +

{{ error_heading }}

+

{{ error_message }}

+ +{% endblock %} \ No newline at end of file diff --git a/encyclopedia/templates/encyclopedia/index.html b/encyclopedia/templates/encyclopedia/index.html new file mode 100644 index 0000000..79d66d6 --- /dev/null +++ b/encyclopedia/templates/encyclopedia/index.html @@ -0,0 +1,17 @@ +{% extends "encyclopedia/layout.html" %} + +{% block title %} + Encyclopedia +{% endblock %} + +{% block body %} + +

All Pages

+ +
    + {% for entry in entries %} +
  • {{ entry }}
  • + {% endfor %} +
+ +{% endblock %} \ No newline at end of file diff --git a/encyclopedia/templates/encyclopedia/layout.html b/encyclopedia/templates/encyclopedia/layout.html new file mode 100644 index 0000000..886b08a --- /dev/null +++ b/encyclopedia/templates/encyclopedia/layout.html @@ -0,0 +1,38 @@ +{% load static %} + + + + + + {% block title %}{% endblock %} + + + + +
+ +
+ {% block body %} + {% endblock %} +
+
+ + + \ No newline at end of file diff --git a/encyclopedia/templates/encyclopedia/search.html b/encyclopedia/templates/encyclopedia/search.html new file mode 100644 index 0000000..6ca946c --- /dev/null +++ b/encyclopedia/templates/encyclopedia/search.html @@ -0,0 +1,17 @@ +{% extends "encyclopedia/layout.html" %} + +{% block title %} + Search +{% endblock %} + +{% block body %} + +

Search Results for "{{ search }}"

+ +
    + {% for entry in res %} +
  • {{ entry }}
  • + {% endfor %} +
+ +{% endblock %} \ No newline at end of file diff --git a/encyclopedia/templates/encyclopedia/wiki.html b/encyclopedia/templates/encyclopedia/wiki.html new file mode 100644 index 0000000..3b2cb71 --- /dev/null +++ b/encyclopedia/templates/encyclopedia/wiki.html @@ -0,0 +1,19 @@ +{% extends "encyclopedia/layout.html" %} +{% block title %} + {{title}} +{% endblock %} + +{% block body %} + {% for message in messages %} + + {% endfor %} +
+{{ wiki_content| safe }} + +
+ + {% csrf_token %} +
+{% endblock %} \ No newline at end of file diff --git a/encyclopedia/tests.py b/encyclopedia/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/encyclopedia/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/encyclopedia/urls.py b/encyclopedia/urls.py new file mode 100644 index 0000000..2f7ba77 --- /dev/null +++ b/encyclopedia/urls.py @@ -0,0 +1,14 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path("", views.index, name="index"), + path("wiki/",views.page,name="page"), + path("wiki//edit", views.edit, name="edit"), + path("submit", views.editSubmit, name="editSubmit"), + path("create",views.create,name="create"), + path("error",views.error,name="error"), + path("random",views.randomPage,name = "random"), + path("search",views.index,name = "search") +] diff --git a/encyclopedia/util.py b/encyclopedia/util.py new file mode 100644 index 0000000..070b105 --- /dev/null +++ b/encyclopedia/util.py @@ -0,0 +1,37 @@ +import re + +from django.core.files.base import ContentFile +from django.core.files.storage import default_storage + + +def list_entries(): + """ + Returns a list of all names of encyclopedia entries. + """ + _, filenames = default_storage.listdir("entries") + return list(sorted(re.sub(r"\.md$", "", filename) + for filename in filenames if filename.endswith(".md"))) + + +def save_entry(title, content): + """ + Saves an encyclopedia entry, given its title and Markdown + content. If an existing entry with the same title already exists, + it is replaced. + """ + filename = f"entries/{title}.md" + if default_storage.exists(filename): + default_storage.delete(filename) + default_storage.save(filename, ContentFile(content)) + + +def get_entry(title): + """ + Retrieves an encyclopedia entry by its title. If no such + entry exists, the function returns None. + """ + try: + f = default_storage.open(f"entries/{title}.md") + return f.read().decode("utf-8") + except FileNotFoundError: + return None diff --git a/encyclopedia/views.py b/encyclopedia/views.py new file mode 100644 index 0000000..97083c4 --- /dev/null +++ b/encyclopedia/views.py @@ -0,0 +1,162 @@ +from django.shortcuts import render +from markdown2 import Markdown +from . import util +from django import forms +import random +from django.contrib import messages +from django.core.files.storage import default_storage + +class CreateForm(forms.Form): + """ + Creates a form for creating a new entry with title and content. + """ + title = forms.CharField(label="Title ",max_length = 30) + textarea = forms.CharField(widget=forms.Textarea(attrs={'rows': 5,'cols': 40,'style': 'height: 23.5em;'}),label = 'TextArea') + +class EditForm(forms.Form): + """ + Edits an existing form for with title and content. + """ + title = forms.CharField(label="Title",max_length = 30) + textarea = forms.CharField(widget=forms.Textarea(attrs={'rows': 5,'cols': 40,'style': 'height: 23.5em;'}),label = 'TextArea') +def page(request,title): + """ + Displays the content of an entry given it's title. + """ + markdown = Markdown() + wiki_content= markdown.convert(util.get_entry(title)) + return render(request,"encyclopedia/wiki.html",{ + + "title": title, + "wiki_content":wiki_content + + }) + + +def index(request): + """ + index page and obtaining search result. + """ + if request.method == "GET": + return render(request, "encyclopedia/index.html", { + "entries": util.list_entries() + }) + elif request.method == "POST": + search = request.POST.get("q", "") + entries = util.list_entries() + if search in entries: + return render(request,"encyclopedia/{search}") + else: + res = [i for i in entries if search in i] + if not res: + return error(request,error_heading = "Search not found!") + else: + return render(request,"encyclopedia/search.html",{ + + 'res':res, + 'search': search + + }) + + + + +def create(request): + """ + Dislays the created form, obtains the details and adding it entries. + """ + if request.method == "POST": + form = CreateForm(request.POST) + if form.is_valid(): + title = form.cleaned_data["title"] + content = form.cleaned_data["textarea"] + if title in util.list_entries(): + return error(request, error_heading = "Already Page Exists",error_message = "Would you like to choose a different title?") + if content[0] == '#': + util.save_entry(title,content) + else: + content = "# " + title +"\n"+ content + util.save_entry(title,content) + messages.success(request,"Entry added successfully") + request.method = "GET" + return page(request,title) + else: + return render(request,"encyclopedia/create.html",{ + + "form": CreateForm() + + + }) +def error(request,error_heading = "Page not found!",error_message = "Would you like to add a new page with this title?"): + """ + Dispays given heading and message on the error page + """ + return render(request,"encyclopedia/error.html",{ + + 'error_heading':error_heading, + 'error_message':error_message + + + }) +def randomPage(request): + """ + Displays a random page from the given list of entries. + """ + entries = util.list_entries() + title = random.choice(entries) + return page(request,title) + +def edit(request,title): + """ + Displays the edit form. + """ + return render(request,"encyclopedia/edit.html", + { + + "form":EditForm(initial = { + "title": title, + "textarea": util.get_entry(title) + }), + + "title":title + + }) + + +def editSubmit(request): + """ + Obtains the submitted edit form and returns to edited entry. + """ + if request.method == "POST": + title = request.POST.get("or_title", "") + form = EditForm(request.POST) + if form.is_valid(): + content = form.cleaned_data["textarea"] + edit_title = form.cleaned_data["title"] + old_content = util.get_entry(title) + if edit_title == title and old_content == content: + messages.success(request,"No edits done") + elif edit_title == title and old_content != content: + util.save_entry(title,content) + messages.success(request,"Edits Successful") + + elif edit_title != title: + entries = util.list_entries() + exclude_entries = [i for i in entries if i != title] + if edit_title in exclude_entries: + return error(request, error_heading = "Already Page Exists",error_message = "Would you like to choose a different title?") + else: + filename = f"entries/{edit_title}.md" + util.save_entry(edit_title, content) + messages.success(request,"Edit succesful") + request.method = "GET" + return page(request,edit_title) + + else: + + return render(request,"encyclopedia/edit.html",{ + + "form": EditForm() + + + }) \ No newline at end of file diff --git a/entries/CSS.md b/entries/CSS.md new file mode 100644 index 0000000..ba449ae --- /dev/null +++ b/entries/CSS.md @@ -0,0 +1,3 @@ +# CSS + +CSS is a language that can be used to add style to an [HTML](/wiki/HTML) page. \ No newline at end of file diff --git a/entries/Django.md b/entries/Django.md new file mode 100644 index 0000000..87293fc --- /dev/null +++ b/entries/Django.md @@ -0,0 +1,2 @@ +# Django +Django is a web framework written using [Python](/wiki/Python) that allows for the design of web applications that generate [HTML](/wiki/HTML) dynamically. \ No newline at end of file diff --git a/entries/Git.md b/entries/Git.md new file mode 100644 index 0000000..ad7641d --- /dev/null +++ b/entries/Git.md @@ -0,0 +1,25 @@ +# Git + + + + + + + +Git is a version control tool that can be used to keep track of versions of a software project. + + + + + + + +## GitHub + + + + + + + +GitHub is an online service for hosting git repositories. \ No newline at end of file diff --git a/entries/HTML.md b/entries/HTML.md new file mode 100644 index 0000000..43eefcc --- /dev/null +++ b/entries/HTML.md @@ -0,0 +1,14 @@ +# HTML + +HTML is a markup language that can be used to define the structure of a web page. HTML elements include + +* headings + +* paragraphs +* lists + +* links + +* and more! + +The most recent major version of HTML is HTML5. \ No newline at end of file diff --git a/entries/Python.md b/entries/Python.md new file mode 100644 index 0000000..8702d5c --- /dev/null +++ b/entries/Python.md @@ -0,0 +1,3 @@ +# Python + +Python is a programming language that can be used both for writing **command-line scripts** or building **web applications**. \ No newline at end of file diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..f7a7876 --- /dev/null +++ b/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wiki.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/wiki/__init__.py b/wiki/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wiki/__pycache__/__init__.cpython-37.pyc b/wiki/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a919f37f5dc11c5689ae7166ae825ae84c632836 GIT binary patch literal 133 zcmZ?b<>g`k0>1>iI1v39M8E(ekl_Ht#VkM~g&~+hlhJP_LlHK=XU}E5vA9^y;HUlTt9LgSGMT@Um&vDu zn{|BHpGY91XCMnXC#z>k_8|9reu@fY?sGO-dI9o!5d^(tXY_fPg8~$x1oKdaGj>rg z!vZYA5}bu|a2_ro=L}rb7hu`WfB=`^GF*YH@RcplEL{5}*jarMuIo#11HMkZoh1dh z`8fx-KILduKL;Y*MokgEN$H)G-lbVv(9gp?{Q`WeU&L6J@wtT0Ww@_jft;GDteBN- zCR45-n4ay6jBrjpn~D2=ARf~9R2&5U0kODLE^iT!1STgS_J-npNDUsE;8IUy+zj|w z^S&4|gb>GwkEK=V5n68|pz8-jq#k0sCa1n9;+OX+dZP~c9-WhNpYs8GS*?O^F=^yu z5`pErRpM0YdObVO(%el(qsu>a#LAp28} z{>J)e+R>wX&(>Dm2NAU@cUHrdl@FnPcxP>$yyL^$R^`RP>XR2gJpH)t3|EZjPrbW= zUFmE30`aV&<@f^v)Qpx#r;{w-;{okSX(pqKv)qvPqw6!w#DsX94+n%rS7wBaFowB3 zDR5C>+GufY)`DX-tfU4kdN`K36u=>eWL3>qr(onS~lVm!|C15pT+> za?%MF*Y!QAmj3*QDhu|d8j`n^98Re|n~BB5)J?}B<2z=JT50c18O|PJlBj9p)+l*X zR!_fh2!~ql4@~Pl_P_M=W?;IcGe{bpP1(&SVmGGylFTn4CrOST z&nO=y@CybLSw)D88*=T9(yr@5y|JUlC3$<>NO#4~w$|vh)#y^1t3zf}$s7zYyJ_j- zB9MJEbofyxL+?0s?1Mu&c^s9IIo?-taY1QsHQGunwB?o(6mf{7*E3P4{W35aJM;rE z@S>oQx|6z$1Ts&CG~`63E_KXg9^Q^L{2+RDTBH{Bs2jRX;@P}^Z2!|~?MLIWJ&y4h zVEwcJ?a(CwwN4_;5$|Eh^n6#VMWrg<=Qt*uf54Y|8DeuDqofwN70@*hWh+^bWQ~ zsf%GZ)}FUVyXM+zJ1!(VO~;dH=&6=O^G7DQg{_m4f27*Wy`(kRUeB}o=3d=D^c>#= zwwHA6h)n*Wq`@#Q{pk7-I^@+EgkTyHAy>-ZC<=KYClqqo<5duj_ql8#FO1%E6Yf$$ SC?@;mav`6ratRSetMD&up!9?Q literal 0 HcmV?d00001 diff --git a/wiki/__pycache__/urls.cpython-37.pyc b/wiki/__pycache__/urls.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b6c88f5120191eed19a80d1ab3236e28ad3dc2f GIT binary patch literal 958 zcma)5%Z}496m`;MTGAOFKY+YTgGvI-E`kwI7%>u>1u&baqIF}paf$87b|{@~zlLAR zmKDFi3Oh}u3JGZ}WF zd`VZeM4Ad71YZgQ=d~;=q&1OT&0$HEhEmj;C|jVQ7VtYI8x_M#At4izK+2awvbF`R zN`e%DijXvb<`i02DoqkBauwq>;ww=}u_n2WbHNhAlk@mlqD4h>mDuFOj8{qU{s&^F zmr8@nn&%eXer((Hc?{oR3=xNvRYK|%!le`pvh562RTn(Uf6?W)lnsF+hNjezEk3WU|vK9Ie!9pY-+3|=yU>ylhNFqLXxjOUy>4|}K1U+kJG0RR91 literal 0 HcmV?d00001 diff --git a/wiki/__pycache__/wsgi.cpython-37.pyc b/wiki/__pycache__/wsgi.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e80ef127cc26a9243c3c9125d78f93e470d38ea5 GIT binary patch literal 530 zcmYjOO>Yx15cN7~6DT zdrJ}(HXyVmwQ6@D&=R?JVyO*06%HU?d0)HZG*wu*M6IPQ@zzs;RSGtJo*bns+IIt)qwuH%pS6409UI~C=-sR7_$-^9o}W*q<5~9MY;^Jd^k&dL zJ#pZ@wxt{PLNCimKg$9~7as0iBn6pITF!=(O6Y;z=mu?wsZhaEUKt