Commit Graph

33515 Commits

Author SHA1 Message Date
Boone Gorges 8b786f3d1c Make `$taxonomy` parameter optional in `get_edit_term_link()`.
Props nicdford, sc0ttkclark.
Fixes #35922.
Built from https://develop.svn.wordpress.org/trunk@36646


git-svn-id: http://core.svn.wordpress.org/trunk@36613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 20:07:28 +00:00
Weston Ruter 87a9bf2b37 Docs: Use markdown instead of HTML for `code` formatting.
Fixes phpdoc usage in [36622], [36608], [35724], [35307].

See #35898.
See #35869.
See #34738.
See #33552.

Built from https://develop.svn.wordpress.org/trunk@36645


git-svn-id: http://core.svn.wordpress.org/trunk@36612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 19:18:27 +00:00
Sergey Biryukov 613cd1b020 Docs: Correct `$number` type in `number_format_i18n()`.
Props salcode.
Fixes #35893.
Built from https://develop.svn.wordpress.org/trunk@36644


git-svn-id: http://core.svn.wordpress.org/trunk@36611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 18:44:26 +00:00
Weston Ruter aa2db425d8 Customize: Skip exporting partials to client and handling rendering requests if user can't modify associated settings.
Introduces `WP_Customize_Partial::check_capabilities()` for parity with `WP_Customize_Control::check_capabilities()`.
 
See #27355.
Fixes #35914.

Built from https://develop.svn.wordpress.org/trunk@36643


git-svn-id: http://core.svn.wordpress.org/trunk@36610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 18:14:26 +00:00
Drew Jaynes e66a510e0c Docs: Update the type for `$callback` parameters to `callable` in DocBlocks for `add_settings_section()` and `add_settings_field()`.
Props aidanlane.
Fixes #35772.

Built from https://develop.svn.wordpress.org/trunk@36642


git-svn-id: http://core.svn.wordpress.org/trunk@36609 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 18:05:27 +00:00
Dominik Schilling 410ed6d615 Customizer: Add visual feedback to reorder buttons.
Props coreymcollins, melchoyce.
Fixes #35041.
Built from https://develop.svn.wordpress.org/trunk@36641


git-svn-id: http://core.svn.wordpress.org/trunk@36608 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 17:54:26 +00:00
Drew Jaynes 54ab5fa68c Users: Pass the array of user IDs being deleted to the `delete_user_form` action hook in two places.
Also updates documentation for the first parameter, `$current_user`, to clarify that it holds the `WP_User` object for the _current_ user, not the one being deleted.

Props usermrpapa.
Fixes #35063. 

Built from https://develop.svn.wordpress.org/trunk@36640


git-svn-id: http://core.svn.wordpress.org/trunk@36607 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 17:42:27 +00:00
Dominik Schilling 0485352508 Customizer: Contain "No image set/selected" in dashed border.
Props Ankit K Gupta, chris_dev.
Fixes #35826.
Built from https://develop.svn.wordpress.org/trunk@36639


git-svn-id: http://core.svn.wordpress.org/trunk@36606 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 17:27:26 +00:00
Pascal Birchler 81e9462ca3 Themes: Improve error messages for broken themes.
Props mayukojpn for initial patch.
Fixes #35286.
Built from https://develop.svn.wordpress.org/trunk@36638


git-svn-id: http://core.svn.wordpress.org/trunk@36605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 17:20:27 +00:00
Pascal Birchler 0c242d0666 Embeds: Make the click event handler work for dynamically added links.
Props JamesDiGioia.
Fixes #35630.
Built from https://develop.svn.wordpress.org/trunk@36637


git-svn-id: http://core.svn.wordpress.org/trunk@36604 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 17:16:26 +00:00
Drew Jaynes a0aa608970 Docs: Improve documentation for `WP_REST_Request` to highlight a caveat of ArrayAccess when it comes to passing similar arguments for multiple request methods.
Props danielbachhuber, DrewAPicture.
Fixes #35799.

Built from https://develop.svn.wordpress.org/trunk@36636


git-svn-id: http://core.svn.wordpress.org/trunk@36603 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:57:26 +00:00
Pascal Birchler 33048247c8 Embeds: Load the default site icon from the `wp-includes` directory.
Files inside the `wp-admin` directory may not be publicly available. This copies the blue WordPress logo to `wp-includes/images`.

Props thewanderingbrit.
Fixes #35322.
Built from https://develop.svn.wordpress.org/trunk@36635


git-svn-id: http://core.svn.wordpress.org/trunk@36602 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:55:27 +00:00
Boone Gorges c5b77145a8 Docs: Improve description of `get_term()` return value.
Props sebastian.pisula.
Fixes #35919.
Built from https://develop.svn.wordpress.org/trunk@36634


git-svn-id: http://core.svn.wordpress.org/trunk@36601 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:48:25 +00:00
Pascal Birchler b47a3831ee Script Loader: Introduce `wp_add_inline_script()`.
This new function can be used to add inline JavaScript before and after enqueued scripts, just like `wp_add_inline_style()` works for CSS.

Props atimmer, abiralneupane, ocean90, swissspidy.
Fixes #14853.
Built from https://develop.svn.wordpress.org/trunk@36633


git-svn-id: http://core.svn.wordpress.org/trunk@36600 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:44:26 +00:00
Boone Gorges ba5cc4e776 Query: Allow a seed value to be passed when using 'rand' `$orderby`.
`WP_Query` allows random ordering; `'orderby' => 'rand'` translates to
`ORDER BY RAND()`. This syntax results in random ordering that is not
consistent from request to request. MySQL supports the passing of a seed value
to random sorts, such as `ORDER BY RAND(3)`, which will return the same
random value each time it's called. `WP_Query` now supports this syntax, by
passing `RAND(3)` (or whatever integer seed value you'd like) as the value
of `'orderby'`.

Props hlashbrooke.
Fixes #35692.
Built from https://develop.svn.wordpress.org/trunk@36632


git-svn-id: http://core.svn.wordpress.org/trunk@36599 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:40:26 +00:00
Dominik Schilling 710be9d2ba L10n: Add test for `wp_dropdown_languages()`.
Props realloc.
Fixes #35294.
Built from https://develop.svn.wordpress.org/trunk@36631


git-svn-id: http://core.svn.wordpress.org/trunk@36598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:28:26 +00:00
Dominik Schilling f6b632983f Updates: Pass locales of all available languages to the themes/plugins update API.
This ensures that language packs for all languages in a Multisite install are updated.

Fixes #34937.
Built from https://develop.svn.wordpress.org/trunk@36630


git-svn-id: http://core.svn.wordpress.org/trunk@36597 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:17:26 +00:00
Dominik Schilling 724ccb492f In `WP::handle_404()` introduce a filter `pre_handle_404` to short-circuit default header status handling.
This comes handy if you use WordPress without posts, means `$wp_query` contains no results.

Props prettyboymp, hakre, prettyboymp, Denis-de-Bernardy, ethitter, ocean90.
Fixes #10722.
Built from https://develop.svn.wordpress.org/trunk@36629


git-svn-id: http://core.svn.wordpress.org/trunk@36596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 16:08:25 +00:00
Andrew Ozz d7b56a13d9 In `wp_upload_dir()` do not cache error from `wp_mkdir_p()` when a directory cannot be created. Keep trying to create the dirs. This happens mostly in file upload context.
See #34359.
Built from https://develop.svn.wordpress.org/trunk@36628


git-svn-id: http://core.svn.wordpress.org/trunk@36595 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 15:58:28 +00:00
Ella Iseulde Van Dorpe 3d68488ff6 TinyMCE: inline text patterns
First run.

See #33300.

Built from https://develop.svn.wordpress.org/trunk@36627


git-svn-id: http://core.svn.wordpress.org/trunk@36594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 08:33:27 +00:00
Boone Gorges b23b89c8a9 Docs: Correct `param` types on some filters in `wp_filter_comment()`.
Introduced in [26491].

Props meitar, netweb.
Fixes #35908.
Built from https://develop.svn.wordpress.org/trunk@36626


git-svn-id: http://core.svn.wordpress.org/trunk@36593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 03:06:26 +00:00
Boone Gorges 072c791df0 Query: `is_*( $int )` should not falsely match strings starting with "$int".
Another chapter in the Storied Annals of Weird `in_array()` Behavior:
`in_array( 4, array( "4-cool-dudes" ) );` resolves to `true`, such that
`is_page( 4 )` was returning true for posts with the name `'4-cool-dudes'`.

We work around this behavior by ensuring that values passed to the `is_`
methods are cast to strings before the `in_array()` checks. ID checks still
work as expected; see #24674.

Props mikejolley, swissspidy, boonebgorges.
Fixes #35902.
Built from https://develop.svn.wordpress.org/trunk@36625


git-svn-id: http://core.svn.wordpress.org/trunk@36592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 02:21:25 +00:00
Weston Ruter 53e0315242 Customize: Let `WP_Customize_Selective_Refresh` class be `final` to match manager and other component classes.
This class is not intended to be extended.
 
See #27355.

Built from https://develop.svn.wordpress.org/trunk@36624


git-svn-id: http://core.svn.wordpress.org/trunk@36591 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 01:28:25 +00:00
Weston Ruter 49c7012a7e Customize: Ensure `dynamic_sidebar()` finishes with removing the sidebar ID from the `current_dynamic_sidebar_id_stack`.
This ensures that widgets appearing after a nested sidebar will continue to be selective refreshable.
 
See #27355.

Built from https://develop.svn.wordpress.org/trunk@36623


git-svn-id: http://core.svn.wordpress.org/trunk@36590 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 01:22:26 +00:00
Weston Ruter aa9ef96a52 Customize: Prevent dropping backslashes from input on general settings and settings for nav menus and some widgets.
Ensures that intentional backslashes (e.g. "\o/") can be used in:

* Site title
* Site description
* Nav menu name
* Custom Menu widget title
* Tag Cloud widget title
* Text widget body if can't `unfiltered_html`

The latter three are also fixed on the widgets admin page.

Fixes #35898.

Built from https://develop.svn.wordpress.org/trunk@36622


git-svn-id: http://core.svn.wordpress.org/trunk@36589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 01:02:26 +00:00
Dominik Schilling e512f158df Add translators comments to wp-admin/users.php.
Props ramiy.
Fixes #35885.
Built from https://develop.svn.wordpress.org/trunk@36621


git-svn-id: http://core.svn.wordpress.org/trunk@36588 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-23 00:05:28 +00:00
Dominik Schilling 13f76b11d1 Template: Update label for the username field in `wp_login_form()` after [36617].
See #9568.
Built from https://develop.svn.wordpress.org/trunk@36620


git-svn-id: http://core.svn.wordpress.org/trunk@36587 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 23:38:27 +00:00
Andrea Fercia fcb3e5ec2f Accessibility: Improve the color contrast ratio for the input placeholders.
Also, cleans up a bit the CSS removing rules for elements that don't use
placeholders any more.

Fixes #35777.
Built from https://develop.svn.wordpress.org/trunk@36619


git-svn-id: http://core.svn.wordpress.org/trunk@36586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 23:29:26 +00:00
Andrea Fercia f96653c2b5 Accessibility: Remove title attributes from the Plugin details modal.
Also, improves accessibility of the star rating reviews links.

Fixes #35111.
Built from https://develop.svn.wordpress.org/trunk@36618


git-svn-id: http://core.svn.wordpress.org/trunk@36585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 23:18:29 +00:00
Dominik Schilling 7ebe2c1e7a Authentication: Allow users to log in using their email address.
Introduces `wp_authenticate_email_password()` which is hooked into `authenticate` after `wp_authenticate_username_password()`.

Props Denis-de-Bernardy, ericlewis, vhomenko, MikeHansenMe, swissspidy, ocean90.
Fixes #9568.
Built from https://develop.svn.wordpress.org/trunk@36617


git-svn-id: http://core.svn.wordpress.org/trunk@36584 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 23:15:27 +00:00
Mike Schroder 83d147c29d Media: Update unit tests after change to default image quality.
Updates unit tests to reflect new default quality setting of '82' after [36615].

See #33642.
Built from https://develop.svn.wordpress.org/trunk@36616


git-svn-id: http://core.svn.wordpress.org/trunk@36583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 23:14:26 +00:00
Mike Schroder 55cc876141 Media: Reduce default image compression quality to '82'.
Changes default image compression quality from '90' to '82'.

This reduces generated image file sizes by ~25% while
keeping DSSIM < 0.0023, with both Imagick and GD.

Props @joemcgill, @dnewton.
See #33642.
Built from https://develop.svn.wordpress.org/trunk@36615


git-svn-id: http://core.svn.wordpress.org/trunk@36582 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 22:19:26 +00:00
Boone Gorges 3f7441d674 Allow `get_terms()` to fetch terms regardless of taxonomy.
`get_terms()` has historically required that a taxonomy be specified when
querying terms. This requirement is related to the fact that terms could
formerly be shared between taxonomies, making `$taxonomies` critical for
disambiguation. Since terms can no longer be shared as of 4.4, it'
s desirable to be able to query for terms regardless of what taxonomy they're in.

Because it's now optional to pass taxonomies, it's no longer necessary to have
`$taxonomies` as the first (and required) parameter for `get_terms()`. The new
function signature is `get_terms( $args )`, where 'taxonomy' can (optionally) be
passed as part of the `$args` array. This syntax is more consistent with
functions like `get_users()` and `get_posts()`.

We've maintained backward compatibility by always giving precedence to the old
argument format. If a second parameter is detected, or if it's detected that
the first parameter is a list of taxonomy names rather than an `$args` array,
`get_terms()` will parse the function arguments in the legacy fashion.

Props flixos90, swissspidy, DrewAPicture, boonebgorges.
Fixes #35495.
Built from https://develop.svn.wordpress.org/trunk@36614


git-svn-id: http://core.svn.wordpress.org/trunk@36581 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 22:17:26 +00:00
Eric Lewis 360a30d55e Menus: Ensure backslashes are saved in menu item fields.
This was a regression introduced in [36510] which caused menu item fields to not save field content with backslashes in them.

Props westonruter.
See #14134.

Built from https://develop.svn.wordpress.org/trunk@36613


git-svn-id: http://core.svn.wordpress.org/trunk@36580 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 19:55:28 +00:00
Andrea Fercia eba32e3b6f Accessibility: Remove the revisions limit warning from the Publish box.
After [36053] don't show a warning about something users can't change
because there's no control exposed in the UI for that. The Revisions
screen is probably a better place to show a more complete information.

Fixes #35029.
Built from https://develop.svn.wordpress.org/trunk@36612


git-svn-id: http://core.svn.wordpress.org/trunk@36579 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 16:23:26 +00:00
Weston Ruter ae2657dd32 Customize: Prevent PHP notice and JS error caused by widgets and nav menus components if user only has `customize` capability.
Short-circuits components from initializing their hooks needlessly if current user lacks required capability.

Fixes #35895.

Built from https://develop.svn.wordpress.org/trunk@36611


git-svn-id: http://core.svn.wordpress.org/trunk@36578 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 05:31:27 +00:00
Weston Ruter 5228a99e97 Customize: Update unit test for `WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item()` to account for slashing if user can't `unfiltered_html`.
Fixes unit tests which broke under multisite config after [36608].

Fixes #35869.

Built from https://develop.svn.wordpress.org/trunk@36610


git-svn-id: http://core.svn.wordpress.org/trunk@36577 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 05:10:27 +00:00
Boone Gorges 68f3ee8f64 Docs: `WP_Meta_Query` accepts 'EXISTS' or 'NOT EXISTS' for `$compare`.
Props apaliku, jdgrimes.
Fixes #35891.
Built from https://develop.svn.wordpress.org/trunk@36609


git-svn-id: http://core.svn.wordpress.org/trunk@36576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 03:56:27 +00:00
Weston Ruter b206327acb Customize: Fix previewing and updating of nav menu items containing slashed/slashable characters.
Prevents slashes from being added when a user without `unfiltered_html` previews a nav menu item containing an apostrophe or some other slashable character, and prevents the loss of an intentional slash (e.g. "\o/") when saving a nav menu item, regardless of capability.

Fixes #35869.

Built from https://develop.svn.wordpress.org/trunk@36608


git-svn-id: http://core.svn.wordpress.org/trunk@36575 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-22 00:14:25 +00:00
Eric Lewis 04da8bb63a Posts: Non-trashed posts should take slug priority over trashed posts.
When determining a unique post slug, trashed posts are taken into account. Previously, new posts would add suffixes to their slugs (e.g. `about-2`) when a post in the trash had the desired slug (e.g. `about`). 

To avoid this behavior, when a post is trashed its slug (i.e. `post_name`) is now suffixed with `-%trashed%`. The post's pre-trash slug is stored as post meta, and if the post is restored from trash, its desired slug is reapplied. 

For existing trashed posts which don't have the `-%trashed%` suffix, the suffix is added when a post with its desired slug is created.

Props ocean90, boonebgorges, ryan, SergeyBiryukov, coffee2code, helen, williamsba1.
See #11863.

Built from https://develop.svn.wordpress.org/trunk@36607


git-svn-id: http://core.svn.wordpress.org/trunk@36574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-21 21:45:28 +00:00
Weston Ruter b3d6f127eb Customize: Fix "Loading..." message from persisting in panel title when user does not have `manage_options` cap to edit `blogname`.
Reverts part of [36388].

Fixes #35579.

Built from https://develop.svn.wordpress.org/trunk@36606


git-svn-id: http://core.svn.wordpress.org/trunk@36573 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-21 06:15:28 +00:00
Dominik Schilling 141b4dbd91 JSHint for [36602].
See #33301.
Built from https://develop.svn.wordpress.org/trunk@36605


git-svn-id: http://core.svn.wordpress.org/trunk@36572 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 22:14:27 +00:00
Dominik Schilling 826e2d8ea1 Script Loader: Fix missing script output when the groups of dependencies are different.
Aka: Don't lose the grandchild.

Props gitlost, ocean90.
Fixes #35873.
Built from https://develop.svn.wordpress.org/trunk@36604


git-svn-id: http://core.svn.wordpress.org/trunk@36571 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 22:11:25 +00:00
Dominik Schilling a40a04ef42 i18n-tools: Respect the coding standards when adding textdomains with add-textdomain.php.
Props GaryJ, groovecoder.
Fixes #21616.
Built from https://develop.svn.wordpress.org/trunk@36603


git-svn-id: http://core.svn.wordpress.org/trunk@36570 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 21:44:25 +00:00
Andrew Ozz 30feff9c99 TinyMCE, inline link dialog:
- Fix passing values to the (old) modal on open when non-linked text is selected and Advanced is clicked before pasting an URL.
- When the user has selected text partially including a link and opens the editing dialog, auto-select the link only. Helps when a linked word is selected by double-clicking.
- Remove all placeholders on saving.
- Do not add undo level on inserting link placeholder.
- Remove the placeholder when canceling from the modal.

See #33301.
Built from https://develop.svn.wordpress.org/trunk@36602


git-svn-id: http://core.svn.wordpress.org/trunk@36569 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 21:36:25 +00:00
Drew Jaynes f636747fa4 Docs: Fix two incorrect notations of the `$show_admin_bar` global to specify a boolean type, not `WP_Admin_Bar`.
See [36491]. Fixes #35686.

Built from https://develop.svn.wordpress.org/trunk@36601


git-svn-id: http://core.svn.wordpress.org/trunk@36568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 21:27:26 +00:00
Dominik Schilling 0307aadf0f i18n-tools: Add the ability to parse a whole directory with add-textdomain.php.
Props iamntz.
Fixes #35499.
Built from https://develop.svn.wordpress.org/trunk@36600


git-svn-id: http://core.svn.wordpress.org/trunk@36567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 21:03:25 +00:00
Dominik Schilling c57946c3f2 i18n-tools: Remove PHP4 constructor from add-textdomain.php.
`_deprecated_constructor()` isn't available in non-WordPress context.

See #31982.
Built from https://develop.svn.wordpress.org/trunk@36599


git-svn-id: http://core.svn.wordpress.org/trunk@36566 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 20:34:25 +00:00
Boone Gorges fce93c4771 In `get_terms()`, assemble `WHERE` conditions in an array instead of concatenating.
This method is more reliable when adding new `WHERE` conditions.

See #35495.
Built from https://develop.svn.wordpress.org/trunk@36598


git-svn-id: http://core.svn.wordpress.org/trunk@36565 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 20:04:26 +00:00
Andrew Ozz acb6cb1d74 TinyMCE: fix the regex that removes spaces from empty paragraphs. Was causing problems when wpautop is disabled and there are many U+00A0 chars between the opening `<p>` and an inline tag. These chars are inserted by the browsers to maintain consecutive spaces typed by the users in contentEditable.
Fixes #35890.
Built from https://develop.svn.wordpress.org/trunk@36597


git-svn-id: http://core.svn.wordpress.org/trunk@36564 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-20 19:56:27 +00:00