)]}'
{"README.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"98280c2d623784b9138d0dfa0f77d4be90fc0ae5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"----------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Additionally, we allow the proposal of specifications that either do not have a"},{"line_number":74,"context_line":"developer assigned to them, or are not targeted for the current release. These"},{"line_number":75,"context_line":"are proposed for review in the same manner as above, but are added to::"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  specs/backlog/approved"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_ccd71023","line":74,"range":{"start_line":74,"start_character":26,"end_line":74,"end_character":27},"updated":"2019-04-09 14:03:38.000000000","message":"nit: drop","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b12dd3e897552056ffe942433ff2fea300153834","unresolved":false,"context_lines":[{"line_number":71,"context_line":"----------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Additionally, we allow the proposal of specifications that either do not have a"},{"line_number":74,"context_line":"developer assigned to them, or are not targeted for the current release. These"},{"line_number":75,"context_line":"are proposed for review in the same manner as above, but are added to::"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  specs/backlog/approved"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_677e37e4","line":74,"range":{"start_line":74,"start_character":26,"end_line":74,"end_character":27},"in_reply_to":"5fc1f717_ccd71023","updated":"2019-04-09 14:42:43.000000000","message":"You must be from the Chris Dent School of Comma Conservatism.\n\nDone.","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"98280c2d623784b9138d0dfa0f77d4be90fc0ae5","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  specs/backlog/approved"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Specifications in this directory indicate the original author has either become"},{"line_number":80,"context_line":"unavailable, or has indicated that they are not going to implement the"},{"line_number":81,"context_line":"specification. The specifications found here are available as projects for"},{"line_number":82,"context_line":"people looking to get involved with Nova. Alternatively, they may be for ideas"},{"line_number":83,"context_line":"generated during a given release cycle to begin design discussions, but not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_2ce6d417","line":80,"range":{"start_line":80,"start_character":11,"end_line":80,"end_character":12},"updated":"2019-04-09 14:03:38.000000000","message":"nit: drop","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b12dd3e897552056ffe942433ff2fea300153834","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  specs/backlog/approved"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Specifications in this directory indicate the original author has either become"},{"line_number":80,"context_line":"unavailable, or has indicated that they are not going to implement the"},{"line_number":81,"context_line":"specification. The specifications found here are available as projects for"},{"line_number":82,"context_line":"people looking to get involved with Nova. Alternatively, they may be for ideas"},{"line_number":83,"context_line":"generated during a given release cycle to begin design discussions, but not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_878323cb","line":80,"range":{"start_line":80,"start_character":11,"end_line":80,"end_character":12},"in_reply_to":"5fc1f717_2ce6d417","updated":"2019-04-09 14:42:43.000000000","message":"Done","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"}],"specs/abandoned/README.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"885cd22652b6a5169243187588d528ccfda72fdf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Abandoned Specifications"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_5ba68fc2","line":1,"updated":"2019-04-08 16:20:46.000000000","message":"Did you intend to have a listing of abandoned specs in the docs like we have for backlog specs here:\n\nhttp://git.openstack.org/cgit/openstack/nova-specs/tree/doc/source/index.rst#n49","commit_id":"e4934df640fce8ff604c5d78bc772a735ece4ec4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d19718f5c6295af9181c5b53c75535ec1986a3f4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Abandoned Specifications"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_96e84e16","line":1,"in_reply_to":"5fc1f717_5ba68fc2","updated":"2019-04-08 16:49:29.000000000","message":"I ran abandon-specs on the instance-tasks.rst backlog spec as an example and it works, and there is a redirect, but there is nothing in the docs to get to those old abandoned specs unless you know the old redirect for backlog/approved, but it\u0027s probably worthwhile to still show links to abandoned specs somewhere in the docs because I know I\u0027ve referenced the instance-tasks spec before.","commit_id":"e4934df640fce8ff604c5d78bc772a735ece4ec4"}],"tools/abandon_spec.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79e828f8bff883f49874dc1c2c7f883d7e00b8db","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def get_options():"},{"line_number":25,"context_line":"    parser \u003d argparse.ArgumentParser("},{"line_number":26,"context_line":"        description\u003d\u0027Move a spec to the `abandoned` folder and create a\u0027"},{"line_number":27,"context_line":"                    \u0027redirect for it.\u0027)"},{"line_number":28,"context_line":"    parser.add_argument(\u0027-v\u0027, \u0027--verbose\u0027, help\u003d\u0027Enable verbose output\u0027,"},{"line_number":29,"context_line":"                        action\u003d\u0027store_true\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_02008101","line":26,"range":{"start_line":26,"start_character":70,"end_line":26,"end_character":72},"updated":"2019-04-09 15:19:10.000000000","message":"need a space","commit_id":"04eacf0573ace41dff12397d27bb03fd4b7df03e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d09c8f77326ecab3b09afec3fc0f9149e348cae","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def get_options():"},{"line_number":25,"context_line":"    parser \u003d argparse.ArgumentParser("},{"line_number":26,"context_line":"        description\u003d\u0027Move a spec to the `abandoned` folder and create a\u0027"},{"line_number":27,"context_line":"                    \u0027redirect for it.\u0027)"},{"line_number":28,"context_line":"    parser.add_argument(\u0027-v\u0027, \u0027--verbose\u0027, help\u003d\u0027Enable verbose output\u0027,"},{"line_number":29,"context_line":"                        action\u003d\u0027store_true\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_fdb71820","line":26,"range":{"start_line":26,"start_character":70,"end_line":26,"end_character":72},"in_reply_to":"5fc1f717_02008101","updated":"2019-04-09 15:23:26.000000000","message":"Done","commit_id":"04eacf0573ace41dff12397d27bb03fd4b7df03e"}],"tools/lib.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"548027cb9feebf292377cbb8b1363bb2d642303c","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def get_lp_nova(consumer_name):"},{"line_number":31,"context_line":"    from launchpadlib import launchpad"},{"line_number":32,"context_line":"    # NOTE(mriedem): We have to use the development API since getSpecification"},{"line_number":33,"context_line":"    # is not in the v1.0 API."},{"line_number":34,"context_line":"    # NOTE(melwitt): We have to use the development API because the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_7b79f87f","line":31,"updated":"2019-04-09 11:44:51.000000000","message":"not sure, was this necessary? just curious...","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bfa3e8138625455be9b897e1c6f66418be0fd24e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def get_lp_nova(consumer_name):"},{"line_number":31,"context_line":"    from launchpadlib import launchpad"},{"line_number":32,"context_line":"    # NOTE(mriedem): We have to use the development API since getSpecification"},{"line_number":33,"context_line":"    # is not in the v1.0 API."},{"line_number":34,"context_line":"    # NOTE(melwitt): We have to use the development API because the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_c7c28be9","line":31,"in_reply_to":"5fc1f717_6c7ffc16","updated":"2019-04-09 14:43:56.000000000","message":"\u003e A comment to that effect wouldn\u0027t go amiss (later).\n\nDone","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"98280c2d623784b9138d0dfa0f77d4be90fc0ae5","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def get_lp_nova(consumer_name):"},{"line_number":31,"context_line":"    from launchpadlib import launchpad"},{"line_number":32,"context_line":"    # NOTE(mriedem): We have to use the development API since getSpecification"},{"line_number":33,"context_line":"    # is not in the v1.0 API."},{"line_number":34,"context_line":"    # NOTE(melwitt): We have to use the development API because the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_8c84a80c","line":31,"in_reply_to":"5fc1f717_7b79f87f","updated":"2019-04-09 14:03:38.000000000","message":"It was if you want to avoid requiring this dependency for the newly introduced scripts. See the value of \u0027deps\u0027 in the new \u0027tox.ini\u0027 targets","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4a4c19154e5d85f857bf3b4274c9340f352d835c","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def get_lp_nova(consumer_name):"},{"line_number":31,"context_line":"    from launchpadlib import launchpad"},{"line_number":32,"context_line":"    # NOTE(mriedem): We have to use the development API since getSpecification"},{"line_number":33,"context_line":"    # is not in the v1.0 API."},{"line_number":34,"context_line":"    # NOTE(melwitt): We have to use the development API because the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_6c7ffc16","line":31,"in_reply_to":"5fc1f717_7b79f87f","updated":"2019-04-09 14:04:34.000000000","message":"It was so the tox targets that don\u0027t query launchpad could have zero deps.\n\nA comment to that effect wouldn\u0027t go amiss (later).","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"}],"tox.ini":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"669fe0c2260535ba681ab290a9a74b465b435e34","unresolved":false,"context_lines":[{"line_number":58,"context_line":"deps\u003d"},{"line_number":59,"context_line":"envdir\u003d{toxworkdir}/venv"},{"line_number":60,"context_line":"commands \u003d"},{"line_number":61,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs} specs/abandoned"}],"source_content_type":"text/x-properties","patch_set":3,"id":"5fc1f717_1669bebc","line":61,"updated":"2019-04-08 16:47:11.000000000","message":"One confusing thing about this is if you run tox -e abandon-spec -- -h you get output from the move-spec command:\n\nosboxes@osboxes:~/git/nova-specs$ tox -e abandon-spec -- -h\nabandon-spec develop-inst-noop: /home/osboxes/git/nova-specs\nabandon-spec installed: -e git://git.openstack.org/openstack/nova-specs@e4934df640fce8ff604c5d78bc772a735ece4ec4#egg\u003dnova_specs\nabandon-spec run-test-pre: PYTHONHASHSEED\u003d\u00273001962179\u0027\nabandon-spec runtests: commands[0] | python /home/osboxes/git/nova-specs/tools/move_spec.py -h specs/abandoned\nusage: move_spec.py [-h] [-v] [-n] spec destdir\n\nMove a spec from one folder to another and create a redirect for it.\n\npositional arguments:\n  spec           Path to the spec to be moved. For example,\n                 specs/backlog/approved/my-great-idea.rst\n  destdir        Directory to which the spec should be moved. For example,\n                 specs/train/approved\n\noptional arguments:\n  -h, --help     show this help message and exit\n  -v, --verbose  Enable verbose output\n  -n, --dry-run  Do everything except move/write the files\n__________________________________________________________________________________ summary __________________________________________________________________________________\n  abandon-spec: commands succeeded\n  congratulations :)\n\n\nwhich is a bit confusing. Maybe add a wrapper for the abandon-spec entry point to produce a more targeted help? The problem with that is the description of the command and all of the options are in the move_spec.py module.\n\n\nBut I can screw it up like this:\n\nosboxes@osboxes:~/git/nova-specs$ tox -e abandon-spec -- -n -v specs/backlog/approved/instance-tasks.rst specs/train/approved/\nabandon-spec develop-inst-noop: /home/osboxes/git/nova-specs\nabandon-spec installed: -e git://git.openstack.org/openstack/nova-specs@e4934df640fce8ff604c5d78bc772a735ece4ec4#egg\u003dnova_specs\nabandon-spec run-test-pre: PYTHONHASHSEED\u003d\u00272639150145\u0027\nabandon-spec runtests: commands[0] | python /home/osboxes/git/nova-specs/tools/move_spec.py -n -v specs/backlog/approved/instance-tasks.rst specs/train/approved specs/abandoned\nusage: move_spec.py [-h] [-v] [-n] spec destdir\nmove_spec.py: error: unrecognized arguments: specs/abandoned","commit_id":"e4934df640fce8ff604c5d78bc772a735ece4ec4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"98280c2d623784b9138d0dfa0f77d4be90fc0ae5","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Usage:"},{"line_number":49,"context_line":"# tox -e move-spec -- [--dry-run] [--verbose] path/to/spec.rst path/to/destdir"},{"line_number":50,"context_line":"deps\u003d"},{"line_number":51,"context_line":"envdir\u003d{toxworkdir}/venv"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs}"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"5fc1f717_8cab4886","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":24},"updated":"2019-04-09 14:03:38.000000000","message":"You can\u0027t use this since we have a \u0027venv\u0027 target with different dependencies, so the virtualenv will get wiped everytime you switch between the two. Either rename this, remove the \u0027venv\u0027 target, or take the hit and use the same dependencies/envdir and \u0027move-implemented-specs\u0027 even though you don\u0027t need those deps","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b12dd3e897552056ffe942433ff2fea300153834","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Usage:"},{"line_number":49,"context_line":"# tox -e move-spec -- [--dry-run] [--verbose] path/to/spec.rst path/to/destdir"},{"line_number":50,"context_line":"deps\u003d"},{"line_number":51,"context_line":"envdir\u003d{toxworkdir}/venv"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs}"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"5fc1f717_87ea4371","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":24},"in_reply_to":"5fc1f717_6ce29cd6","updated":"2019-04-09 14:42:43.000000000","message":"Done, I think.","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a0497ffc310f27e3aabeb6dcb5eb0a1ac0b8291f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Usage:"},{"line_number":49,"context_line":"# tox -e move-spec -- [--dry-run] [--verbose] path/to/spec.rst path/to/destdir"},{"line_number":50,"context_line":"deps\u003d"},{"line_number":51,"context_line":"envdir\u003d{toxworkdir}/venv"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs}"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"5fc1f717_6ce29cd6","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":24},"in_reply_to":"5fc1f717_8cab4886","updated":"2019-04-09 14:06:51.000000000","message":"Ah, gotcha, thanks. I want to do the former, may ask you about the mechanics...","commit_id":"5f2f1818688b9b29c51e4d183ac715c79e37525e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79e828f8bff883f49874dc1c2c7f883d7e00b8db","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Usage:"},{"line_number":49,"context_line":"# tox -e move-spec -- [--dry-run] [--verbose] path/to/spec.rst path/to/destdir"},{"line_number":50,"context_line":"deps\u003d"},{"line_number":51,"context_line":"envdir\u003d{toxworkdir}/nodeps"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs}"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":6,"id":"5fc1f717_bd9f50b2","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":26},"updated":"2019-04-09 15:19:10.000000000","message":"Is this some special tox thing? I don\u0027t see anything about it in the docs.","commit_id":"04eacf0573ace41dff12397d27bb03fd4b7df03e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96967c7c7e283fc23669dc935018c36e4fda03fa","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Usage:"},{"line_number":49,"context_line":"# tox -e move-spec -- [--dry-run] [--verbose] path/to/spec.rst path/to/destdir"},{"line_number":50,"context_line":"deps\u003d"},{"line_number":51,"context_line":"envdir\u003d{toxworkdir}/nodeps"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs}"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":6,"id":"5fc1f717_7d41e809","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":26},"in_reply_to":"5fc1f717_5dc74c99","updated":"2019-04-09 15:24:32.000000000","message":"What Eric said","commit_id":"04eacf0573ace41dff12397d27bb03fd4b7df03e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d09c8f77326ecab3b09afec3fc0f9149e348cae","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Usage:"},{"line_number":49,"context_line":"# tox -e move-spec -- [--dry-run] [--verbose] path/to/spec.rst path/to/destdir"},{"line_number":50,"context_line":"deps\u003d"},{"line_number":51,"context_line":"envdir\u003d{toxworkdir}/nodeps"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  python {toxinidir}/tools/move_spec.py {posargs}"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":6,"id":"5fc1f717_5dc74c99","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":26},"in_reply_to":"5fc1f717_bd9f50b2","updated":"2019-04-09 15:23:26.000000000","message":"Not special, it\u0027s just an independent virtualenv directory that I named \"nodeps\" because it installs no dependencies. This is so I can run these two tools without installing sphinx stuff and launchpadlib.","commit_id":"04eacf0573ace41dff12397d27bb03fd4b7df03e"}]}
