1
0
mirror of https://github.com/peeringdb/peeringdb.git synced 2024-05-11 05:55:09 +00:00
Commit Graph

129 Commits

Author SHA1 Message Date
Matt Griswold
1fa46e2acb Support 202009 (#841)
* Add EmailMultiAlternatives import

* Add strip_tags import

* Add settings imports and new email test

* Add email increment to ixf and tests

* IX-F Importer: suggested update when it should be add + remove #832

* Take email increment out of if-else

* Add max and min speed settings

* Change validation check for models

* new speed validation

* Add basic user command

* Add pdb cleanup users tool

* Add pretty printing for speed

* Add users as a subparser

* add translation override to signals

* Add parser as parent of subparser

* refactor and change test

* Move override to cover single variable

* Add tooltip option for individual checkboxes

* address 'fix me' issue with field_help helper func

* Add zipcode validator and black format

* Make website required input but zipcode dependent on country

* Add net POC requirement to Netixlan serializer

* Website is now blank=False ie required in all forms

* refine error message

* Require email is not blank and add test

* Change error message

* add website and zipcode test, edit zipcode error message

* change placement of tooltip

* add question mark

* Add comment

* Add runtime error logging for ixp member import

* add uncaught error test

* delete two unused methods

* Rename test file and add different tests

* Add missing email imports (reproduces changes in hot_fix_gh_831)

* add resend methods

* Add missing email imports (reproduces changes in hot_fix_gh_831)

* Add pytest-mock to pipfile

* Add resend email mechanism

* Add email resending

* remove failing assertion

* fix for ticket_aged_proposals

* Wrap resending emails in conditional for commit

* Add resend email tests

* fix mail_Debug bug

* Figure out production mailing and resending settings

* Add stale info field

* default IXF_RESEND_FAILED_EMAILS to False
fix issue with sent being set even if email was not sent
fix issue with output stating resending of emails even if it wasnt

* IX-F Preview - shows the consolidated delete operation when it shouldn't (#824)

* black format (v 19.10)

* black formatting

* black formatting

* pipfile relock

* make changes from #825 play nice with changes from #833

* black to pipenv dev packages

Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-09-29 13:07:56 -05:00
Matt Griswold
4bcaf8211c Gh 829 (#830)
* fix issue with ixlan serializer stemming from ixf_ixp_member_list_url being added to api (#829)

* add test for #829

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-08-26 05:50:12 -05:00
Matt Griswold
820e0e71e4 black format 2020-08-18 20:18:58 +00:00
Matt Griswold
31a0f886a7 Dotf fixes 3 (#820)
* [beta] IX-F importer: [showstopper]: Seeing 'Update' hint instead of 'Add' hint #816

* [beta] IX-F importer: list of hints should be case-independently sorted alphabetically #817

* [beta] IX-F importer: IX "Last Updated" timestamp is based on IX-F import time - not sure that is intended #812

* Improve soft delete error handling re: protectedactions

* Fix template bug

* Modify template again

* add a test to confirm ipaddr suggestions end up in template

* rebase #817 into this and adapt to changes in #817

* [beta] IX-F importer: notice about dismissed hints remains after no longer relevant #809

* Server Error 500 when deleting organisations #798

* black formatting

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: egfrank <elliot@20c.com>
2020-08-18 09:30:40 -05:00
Matt Griswold
ac047fa0bc Gh 815 (#818)
* [beta] IX-F importer: [showstopper]: unnecessary add and update suggested #815

* black formatting

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-08-18 09:29:11 -05:00
Matt Griswold
38a49b4a10 Gh 761 (#819)
* Make in_dfz a readonly field

* add migrations for in_dfz noop,
add validation error when trying to set in_dfz to false over api
fix template layout

* remove in_dfz from ixlanprefixinline admin

* fix error message

* black formatted

Co-authored-by: egfrank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-08-18 09:28:18 -05:00
Matt Griswold
0e2829d82f Dotf fixes 2 (#797)
* [beta] IX-F importer: Adding entry results in 'The server rejected your data' #789

* [beta] IX-F importer: tooltip remains visible after clicking "Auto-resolve", also misspelling #788

* fix protocol-conflict notifications not going out if there are no other conflicts (#771)

* fix messy white-space in ix-f notificaiton emails (#790)

* add link to python regex documentation (#768)

* IX-F import preview when authenticating via basic auth broken #791
Re-add preview tests

* [beta] IX-F importer: Lack of "routeserver" status in IX-F JSON should imply "undefined" rather than "false" and result in no action #792

* speed not being present in the ix-f data should be ignored (#792)

* [beta] IX-F importer: ignore speed and is_rs_peer differences for now, but retain code #793

* do a simple dedupe of ip addresses before processing the ix-f export
remove email debug spam

* normalize ip addresses
bug fixes for protocol conflict

* fix typo and remove debug output

* bail if unable to reasonably dedupe duplicate ips in ix-f export data

* sanitization fixes

* reset ix error notification timer on successful import

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
2020-08-03 14:51:11 -05:00
mcmanuss8
8e831f54df Add youtube link, update twitter icon (#783)
Add youtube link, update twitter icon, fixes #774

Co-authored-by: Steve McManus <smcmanus@fb.com>
2020-08-03 13:39:32 -05:00
Matt Griswold
abe3e78d50 Dotf fixes (#781)
* fix issue where ix-f import would raise suggestions ipaddresses not that ixlan (#764)

* IX-F Suggestions: Leaving the editor and returning to it via back button issues (#765)

* IX-F importer: Clicking "Preview" (IXP Update Tools) on /net/ page resulted in 170 ticket resolutions (#769)
More robust testing

* black formatting (was lost after pyupgrade)

* Add regex searching to deskpro ticket subjects

* Change operational error

* IX-F suggestions: consolidate delete+add (#770)

* Add reset functions to commandline tool

* Fix commandline tool bugs

* Fix reset commandline tool bugs

* add commandline tool

* Ixlan needs to be set for import commandline tool

* Add email model

* Add admin view to emails

* Allow network and ix to be null

* save emails as part of ixf import

* Add email model

* Add email delete

* add iregex search and better comments

* fix ixlan selection for import

* redefine migration dependencies for this branch

* only enable search w start and end char

* Add caption to regex search

* Remove delete all ixfmemberdata option

* [beta] IX-F importer: don't bother about missing IPv{4,6} address when network is not doing IPv{4,6} (#771)

* Add cmdline tests

* Resolve email conflicts

* Add cmd tool reset tests

* add autocomplete to commandline tool

* Fix email bugs

* Fix email migrations

* Fix typos

* [beta] IX-F importer: prevent Admin Committee overload by initially limiting importer to IXes enabled by AC (#772)

* Finalize regex search for emails and deskprotickets

* Fix keyword bug

* fix typo

* protocol-conflict will now be handled in the notification consolidation

771 changes where if the network indicates neither ipv4 nor ipv6 support, it is handled as supporting both (eg the network didnt configure these at all)

realised that the importer command re instantiates the `Importer` class for each ixlan it processes, so moved the sending of consolidated notifications (#772) out of the `update` function and into the command itself after its done processing all the ixlans. This means for tests you will need to call `importer.notify_proposals` after `importer.update` to test the consolidated notifications.

fixed several MultipleObjectsReturned errors when network switch protocol support in between imports

* should be checking for "ix" in the form data (#773)

* Fix cmd ixf tests

* fix issue in log_peer

* Add commit check for reset tool

* fix importer bugs

* remove dupe IXFImportEmail definition

* ixfimportemail support ix__name and net__name searching

* ticket resolution responses

* Add commit to command ixf import changes

* fix modify entry header

* remove whitespace in notification about remote data changes

* Begin updating tests

* ixf-import command line tool to queue

* refactor conflict inserts

* Update import protocol tests, including tests for 770

* More test edits

* Change cmd tests

* better ixfmemberdata error handling and fix some test data

* dont reset the same ixfmemberdata requirement

* fix many bugs add many tests

* remove debug message

* fix bug during import when consolidating delete+add

* fix perfomance issue in IXFMemberData listing

* dont show reset flags on prod env

* Add regex search tests

* Add 772 tests

* remove debug output

* fix `test_resolve_deskpro_ticket` test

* black formatting

* remove dupe import

* fix issue with unique constraint error handling

* add test for ixp / network ip protocol notification

* add missing test data

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
2020-07-27 04:36:27 +00:00
Chris Caputo
f9dedb5274 typo: "ixp" -> "IXP" (#780) 2020-07-24 10:12:06 -05:00
Matt Griswold
0c36f1a5c4 fix edit net issue asn not set (#358) (#763)
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-07-15 08:35:16 +00:00
Matt Griswold
ea55c4dc38 July updates (#762)
* Change label from primary ASN to ASN

* Raise validation error when trying to update ASN

* first steps for dotf importer procotol (#697)

* migrations (#697)

* Add translation to error meessage

* Make ASN readonly in table

* Add test now that ASN should not be able to update

* Set fac.rencode to '' for all entries and make it readonly in serializer

* Add unique constraints to network ixlan ip addresses

* Add migration to null out duplicate ipaddresses for deleted netixlans

* Add unique constraints to network ixlan ip addresses

* Add migration to null out duplicate ipaddresses for deleted netixlans

* remove old migrations (#697)

* fix netixlan ipaddr dedupe migration (#268)
add netixlan ipaddr unique constraint migration (#268)

* ixf_member_data migrations (#697)

* fix table name (#697)

* importer protocol (#697)

* fix netixlan ipaddr dedupe migration (#268)
add netixlan ipaddr unique constraint migration (#268)

* ixf proposed changes notifications (#697)

* Delete repeated query

* Add a test to show rencode is readonly

* Blank out rencode when mocking data

* Remove validator now that constraint exists

* Add back unique field validator w Check Deleted true

* conflict resolving (#697)

* UniqueFieldValidator raise error with code "unique" (#268)

* conflict resolution (#697)

* Add fixme comment to tests

* conflict resolution (#697)

* Remove now invalid undelete tests

* UniqueFieldValidator raise error with code "unique" (#268)

* delete admin tools for duplicate ip addresses

* Make migration to delete duplicateipnetworkixlan

* Add ixlan-ixpfx status matching validation, add corresponding test

* delete redundant checking in test

* resolve conflict ui (#697)

* fix migrations hierarchy

* squash migrations for ixf member data

* clean up preview and post-mortem tools

* remove non-sensical permission check when undeleting soft-deleted objects through unique integrity error handling

* only include the ix-f data url in notifications to admincom (#697)

* resolve on --skip-import (#697)

* ac conflict resolution (#697)

* Define more accurately the incompatible statuses for ixlan and ixpfx

* Add another status test

* Preventing disrupting changes (#697)

* fix tests (#697)

* Stop allow_ixp_update from being write only and add a global stat for automated networks

* Add tests for global stats that appear in footer

* Change how timezone is called with datetime, to get test_stats.py/test_generate_for_current_date to pass

* test for protected entities (#697)

* admincom conflict resolution refine readonly fields (#697)
network notifications only if the problem is actually actionable by the network (#697)

* ixp / ac notifcation when ix-f source cannot be parsed (#697)
fix issue with ixlan prefix protection (#697)

* migrations (#697)

* code documentation (#697)

* ux tweaks (#697)

* UX tweaks (#697)

* Fix typo

* fix netixlan returned in IXFMemberData.apply when adding a new one (#697)

* fix import log incosistencies (#697)

* Add IXFMemberData to test

* Update test data

* Add protocol tests

* Add tests for views

* always persist changes to remote data on set_conflict (#697)

* More tests

* always persist changes to remote data on set_conflict (#697)

* suggest-add test

* net_present_at_ix should check status (#697)

* Add more protocol tests

* Edit language of some tests

* django-peeringdb to 2.1.1
relock pipfile, pin django-ratelimit to <3 as it breaks stuff

* Add net_count_ixf field to ix object (#683)

* Add the IX-F Member Export URL to the ixlan API endpoint (#249)

* Lock some objects from being deleted by the owner (#696)

* regenerate api docs (#249)

* always persist changes to remote data on set_add and set_update (#697)

* IXFMemberData: always persist remote data changes during set_add and set_update, also allow for saving without touching the updated field

* always persist changes to remote data on set_add and set_update (#697)

* Fix suggest-add tests

* IXFMemberData: always persist remote data changes during set_add and set_update, also allow for saving without touching the updated field

* IXFMemberData: always persist remote data changes during set_add and set_update, also allow for saving without touching the updated field

* fix issue with deletion when ixfmemberdata for entry existed previously (#697)

* fix test_suggest_delete_local_ixf_no_flag (#697 tests)

* fix issue with deletion when ixfmemberdata for entry existed previously (#697)

* invalid ips get logged and notified to the ix via notify_error (#697)

* Fix more tests

* issue with previous_data when running without save (#697)
properly track speed errors (#697)

* reset errors on ixfmemberdata that go into pending_save (#697)

* add remote_data to admin view (#697)

* fix error reset inconsistency (#697)

* Refine invalid data tests

* remove debug output

* for notifications to ac include contact points for net and ix in the message (#697)

* settings to toggle ix-f tickets / emails (#697)

* allow turning off ix-f notifications for net and ix separately (#697)

* add jsonschema test

* Add idempotent tests to updater

* remove old ixf member tests

* Invalid data tests when ixp_updates are enabled

* fix speed error validation (#697)

* fix issue with rollback (#697)

* fix migration hierarchy

* fix ixfmemberdata _email

* django-peeringdb to 2.2 and relock

* add ixf rollback tests

* ixf email notifications off by default

* black formatted

* pyupgrade

Co-authored-by: egfrank <egfrank@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-07-15 07:07:01 +00:00
Matt Griswold
427d999a04 load i18n filter tags for org merge tool (#753) (#754)
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-06-24 19:22:21 +00:00
gordon-shumway-net
0ed773a202 Add % trans. (#731)
* Update view_organization_side.html

* Update view_network_side.html

Add % trans.

* Update view_network_bottom.html - Add % trans

* Update view_organization_tools.html - Add % trans

* Update view_exchange_bottom.html - Add % trans

* Update register.html - Add % trans

* Update aup.html - Add % trans

* Update view_facility_side.html - Add % trans

* Update view_facility_side.html - Add % trans

* Update org_merge_tool.html - Add % trans

* Update view_facility_side.html - Add " to Placeholder

* Update view_organization_side.html - Add % trans to Filter

* Update view_exchange_side.html - Add % trans to Filter

* Update view_facility_bottom.html - Add % trans to Filter

* Update view_network_side.html - Add % trans to Filter

* Update view_exchange_bottom.html - Add % trans to Filter

* Update advanced-search-net.html - Add % trans

* Update view_network_side.html - Add % trans to Filter

* Update aup.html Remove % trans

* Update register.html - Remove % trans

* Update register.html - Add quotes
2020-06-24 18:15:49 +00:00
Matt Griswold
af6974e3d3 June updates (#751)
* Add pointer from API docs to tutorial #650

* Sorting by clicking table headers should use local-compare #356

* Mark IXP peering LAN as bogon #352

* Add help text to "Add (Facility, Network, Exchange)" tab #669

* Add Looking Glass field to the IX object #672

* Add read-only Superuser #679

* Make spelling of traffic levels consistent #519 (#723)

* Offer 2FA (#290)

* Show "Last Updated" fields on fac, ix, org records (#526)

* Enable sort and reverse sort of IP column in IX display (#72)

* IRR validation not handling unexpected characters gracefully (#712)

* Support alternative direction of writing, e.g. Arabic (#618)

* Undeleting an ixlan with an emtpy IPv4 XOR IPv6 field throws a silly error (#644)

* Changing org while adding net results in 500 #654

* missing delete button for organisations (#121)

* When changing owner of an ix admin GUI borks because of "Ixlan for exchange already exists" #666

* Selection should only present undeleted objects (#664)

* change default encoding of API calls to 'utf-8' #663

* Posting https://www.peeringdb.com onto social media doesn't select a good preview image #537

* Revert "Add Looking Glass field to the IX object #672"

This reverts commit 4daf2520043c241fabe9a521757efa86a274e28a.

Conflicts:
	peeringdb_server/migrations/0037_ix_looking_glass.py
	peeringdb_server/views.py

* 500 Internal Error when creating IX where prefix already exists elsewhere #718

* Fix graceful restore of soft-deleted objects with translation active (#580)

* Don't return any POC data with status=deleted #569
Hard delete soft-deleted pocs after grace period #566

* django-peeringdb from github@2.0.0.2-beta

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-06-24 12:55:01 -05:00
Job Snijders
09b4759b02 ARIN has split into ARIN + ARIN-NONAUTH (#742)
ARIN-NONAUTH should be allowed as IRR source too
2020-06-11 04:53:38 +00:00
Chris Caputo
7ee0fa73f9 Add % trans. (#728) 2020-05-29 16:14:26 +00:00
Chris Caputo
c50ef33bed Add % trans. (#729) 2020-05-29 16:14:00 +00:00
Matt Griswold
9dea61b34e Make spelling of traffic levels consistent #519 (#723)
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-05-21 08:53:49 +00:00
Matt Griswold
095422f0f5 fix sourceless irr validation (#706)
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-04-23 13:49:53 +00:00
Matt Griswold
dbedb5e606 April update fixes 2 (#700)
* add tech contact and sales contact fields to add / suggest facility forms (#378)

* add swagger docs as backup api docs under apidocs/swagger/ (#626)

* tech and sales phone number fields arent required and should KeyError when missing from POST data (#378, #699)

* re-enable Try it out functionality for swagger docs (#626)

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-04-20 14:45:48 +00:00
Matt Griswold
58371e3868 Additional IRR validators (#690)
* increase rdap lookup timeout to 2.5

* Allow as set hierarchy according to RFC 2622 5.0 during IRR validation (#151)

* fix wording of validation error message (#151)

* allow single as in irr validation (#151)
allow as rs-set combination in irr validation (#151)

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-04-18 00:57:23 +00:00
Job Snijders
a4e6f9691c Add LACNIC, IRR coming later this year 2020-04-15 17:38:05 +02:00
Stefan Pratter
1ffaae4148 implement additional autocomplete fields (#667, #597) 2020-04-15 13:15:24 +00:00
Stefan Pratter
b343d73aab fix sponsor badge always showing up 2020-04-15 11:34:59 +00:00
Stefan Pratter
d1320ab9b4 fix wording (#251) 2020-04-14 21:56:55 +00:00
Stefan Pratter
3298b6626d Add attribute operational to netixlan #539
revert accidentally commited change to netixlan js finalize function
2020-04-14 21:19:24 +00:00
Stefan Pratter
e630aea692 Add contact information for Facilities (fac) the same way as for ix #378 2020-04-14 21:19:12 +00:00
Stefan Pratter
9176520f10 Route-server URL starting with ssh:// #462 2020-04-14 21:19:03 +00:00
Stefan Pratter
9f4bf32ab1 When creating an ix via the API also return ixlan_id and ixpfx_id #609 2020-04-14 21:18:49 +00:00
Stefan Pratter
599e0251ce Rewording fixes (#295, #189) 2020-04-14 21:18:41 +00:00
Stefan Pratter
6d38950901 Insert links into ID fields in DESKPRO AUTOASN tickets (#615) 2020-04-14 21:18:32 +00:00
Stefan Pratter
45c25a6223 Validation of IRR Records (#151) 2020-04-14 21:18:24 +00:00
Stefan Pratter
25905a1c40 Limit number of concurrent affiliation requests per user (#251) 2020-04-14 21:18:07 +00:00
Stefan Pratter
f0bccaf58d Org/Network name of a sponsor should not link to /sponsors, only the sponsor badge should #452 2020-04-14 21:17:57 +00:00
Stefan Pratter
61e275cdf9 Notes field translate button disappears #555 2020-04-14 21:17:45 +00:00
Stefan Pratter
26e61b3a2a fix bug caused by the org affiliationship request without an asn (#598) 2020-04-14 21:17:32 +00:00
Stefan Pratter
a753cee5a9 Merge branch 'gh_626' into april_updates
Conflicts:
	config/facsimile/peeringdb.yaml
	config/facsimile/tmpl/_ALL_/_DEPLOY_/peeringdb/peeringdb_com/settings.d/20-rest.conf
2020-04-14 21:15:03 +00:00
Stefan Pratter
fc6b45c82c new api docs (#626) 2020-04-14 21:11:24 +00:00
Matt Griswold
bff6f7f216 containerize, gh-548 (#682) 2020-04-14 15:45:36 +00:00
Matt Griswold
004914edae fix typo (#646) 2020-02-18 21:58:34 -06:00
Matt Griswold
5e6c59a154 Drop "Local" from "Local Exchanges" #591 (#647) 2020-02-11 05:02:43 -06:00
Matt Griswold
70fdd30f02 fix migration hierarchy after undoing the #21 revert (#21, #631) (#643) 2020-02-05 23:15:46 -06:00
Matt Griswold
06805fef36 Support 202001 (#641)
* remove warning for missing information for fields: aka, looking glass server url, route server url (#616)
remove warning for missing information for fields: ipv4 prefixes, ipv6 prefixes if either of them is set (#616)

* Use autocomplete fields in the admincom controlpanel to speed up loading times (#597)

* Better error reporting for POSTs and PUTs (#610)

* Add operation to API to look for covering prefixes given an IP (#25)
2020-02-05 21:26:21 -06:00
Matt Griswold
014b5746e3 Support 201912 (#642)
* Add text to https://peeringdb.com/suggest/fac (#554)

* Make LAN information, Website and technical email mandatory for adding an IXP (#291)

* Bypass ACK question when at superuser level (#507)

* better icons for column sorting indication (#596)
2020-02-05 21:25:57 -06:00
Matt Griswold
068d0bdc4e Revert "revert drop ixlan changes (#21) (#631)" (#640)
This reverts commit 676f850bfe.
2020-02-05 21:25:25 -06:00
Job Snijders
0dac84e7f1 Open resources in new windows or tabs (#622)
Fixes #619
2020-01-24 08:25:32 -06:00
Matt Griswold
676f850bfe revert drop ixlan changes (#21) (#631)
Revert #21
2020-01-21 15:56:47 -06:00
Matt Griswold
9a6efa1f9f Fix 628 cp ixlan search (#630)
* fixes bug in the ixlan migration script during reparenting of extra ixlans that would result in ixfacs to be copied with the wrong status. (#21)

* ixlan view in /cp should take ix name into account for search (#628)
2020-01-10 14:18:11 -06:00
Matt Griswold
ba6f9b6432 Qu1003 (#621)
* use new peeringdb client (1.0.0) for pdb_load_data sync (#599)

* drop django-mobi for lack of py3/dj2 support (#492)
remove django-forms-bootstrap for lack of py3/dj2 support (#492)

* black formatted

* django2.2 and py3 upgrade (#492)

* drop ixlans (#21) ui and api changes

* drop local_asn (#168)

* org search (#193)

* phone number validation (#50)

* implement help text tooltips (#228)

* Mark own ASN as transit-free (#394)

* py3 fix for `pdb_migrate_ixlans` command when writing migration report

* pdb_migrate_ixlans: properly handle py3 Runtime error if ixlan dict changes during iteration

* set rest DEFAULT_SCHEMA_CLASS to coreapi to fix swagger apidocs
fix migration 0027 missing from facsimile manifest

* fix swagger doc strings

* fix tests that were broken from api doc fixes

* fix UniqueFieldValidator for netixlan ipaddress validation that broke during django/drf upgrade

* fix org merge tool layout issues

* travis config

* update pipfile and lock

* black formatting

* update travis dist

* beta mode banner (#411)

* add beta banner template (#411)

* automatically scheduled sync may not always be on, add a flag that lets us reflect that state in the beta banner message
clean up beta banner implementation (#411)

* add tests for beta banner (#411)
2020-01-08 13:29:58 -06:00