From 283b08d45f28236e32f682d1b531520682c0b440 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Wed, 26 May 2021 15:11:35 +0530 Subject: [PATCH] DEV: Absorb onebox gem into core (#12979) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move onebox gem in core library * Update template file path * Remove warning for onebox gem caching * Remove onebox version file * Remove onebox gem * Add sanitize gem * Require onebox library in lazy-yt plugin * Remove onebox web specific code This code was used in standalone onebox Sinatra application * Merge Discourse specific AllowlistedGenericOnebox engine in core * Fix onebox engine filenames to match class name casing * Move onebox specs from gem into core * DEV: Rename `response` helper to `onebox_response` Fixes a naming collision. * Require rails_helper * Don't use `before/after(:all)` * Whitespace * Remove fakeweb * Remove poor unit tests * DEV: Re-add fakeweb, plugins are using it * Move onebox helpers * Stub Instagram API * FIX: Follow additional redirect status codes (#476) Don’t throw errors if we encounter 303, 307 or 308 HTTP status codes in responses * Remove an empty file * DEV: Update the license file Using the copy from https://choosealicense.com/licenses/gpl-2.0/# Hopefully this will enable GitHub to show the license UI? * DEV: Update embedded copyrights * DEV: Add Onebox copyright notice * DEV: Add MIT license, convert COPYRIGHT.txt to md * DEV: Remove an incorrect copyright claim Co-authored-by: Jarek Radosz Co-authored-by: jbrw --- COPYRIGHT.md | 59 + COPYRIGHT.txt | 31 - Gemfile | 4 +- Gemfile.lock | 11 +- LICENSE.txt | 14 +- lib/onebox.rb | 55 + lib/onebox/engine.rb | 203 + .../engine/allowlisted_generic_onebox.rb | 254 +- lib/onebox/engine/amazon_onebox.rb | 198 + lib/onebox/engine/asciinema_onebox.rb | 27 + lib/onebox/engine/audio_onebox.rb | 30 + lib/onebox/engine/audioboom_onebox.rb | 29 + lib/onebox/engine/band_camp_onebox.rb | 35 + lib/onebox/engine/cloud_app_onebox.rb | 53 + lib/onebox/engine/coub_onebox.rb | 22 + lib/onebox/engine/facebook_media_onebox.rb | 34 + lib/onebox/engine/five_hundred_px_onebox.rb | 18 + lib/onebox/engine/flickr_onebox.rb | 52 + lib/onebox/engine/flickr_shortened_onebox.rb | 16 + lib/onebox/engine/gfycat_onebox.rb | 113 + lib/onebox/engine/giphy_onebox.rb | 23 + lib/onebox/engine/github_blob_onebox.rb | 31 + lib/onebox/engine/github_commit_onebox.rb | 51 + lib/onebox/engine/github_folder_onebox.rb | 78 + lib/onebox/engine/github_gist_onebox.rb | 81 + lib/onebox/engine/github_issue_onebox.rb | 54 + .../engine/github_pull_request_onebox.rb | 46 + lib/onebox/engine/gitlab_blob_onebox.rb | 31 + lib/onebox/engine/google_calendar_onebox.rb | 32 + lib/onebox/engine/google_docs_onebox.rb | 46 + lib/onebox/engine/google_drive_onebox.rb | 30 + lib/onebox/engine/google_maps_onebox.rb | 184 + lib/onebox/engine/google_photos_onebox.rb | 73 + lib/onebox/engine/google_play_app_onebox.rb | 31 + lib/onebox/engine/html.rb | 26 + lib/onebox/engine/image_onebox.rb | 29 + lib/onebox/engine/imgur_onebox.rb | 67 + lib/onebox/engine/instagram_onebox.rb | 46 + lib/onebox/engine/json.rb | 13 + lib/onebox/engine/kaltura_onebox.rb | 36 + lib/onebox/engine/mixcloud_onebox.rb | 22 + lib/onebox/engine/opengraph_image.rb | 13 + lib/onebox/engine/pastebin_onebox.rb | 55 + lib/onebox/engine/pdf_onebox.rb | 29 + lib/onebox/engine/pubmed_onebox.rb | 60 + lib/onebox/engine/reddit_media_onebox.rb | 55 + lib/onebox/engine/replit_onebox.rb | 25 + lib/onebox/engine/simplecast_onebox.rb | 36 + lib/onebox/engine/sketch_fab_onebox.rb | 34 + lib/onebox/engine/slides_onebox.rb | 33 + lib/onebox/engine/sound_cloud_onebox.rb | 33 + lib/onebox/engine/stack_exchange_onebox.rb | 56 + lib/onebox/engine/standard_embed.rb | 145 + lib/onebox/engine/steam_store_onebox.rb | 41 + lib/onebox/engine/trello_onebox.rb | 34 + lib/onebox/engine/twitch_clips_onebox.rb | 20 + lib/onebox/engine/twitch_stream_onebox.rb | 15 + lib/onebox/engine/twitch_video_onebox.rb | 15 + lib/onebox/engine/twitter_status_onebox.rb | 172 + lib/onebox/engine/typeform_onebox.rb | 48 + lib/onebox/engine/video_onebox.rb | 36 + lib/onebox/engine/vimeo_onebox.rb | 55 + lib/onebox/engine/wikimedia_onebox.rb | 43 + lib/onebox/engine/wikipedia_onebox.rb | 97 + lib/onebox/engine/wistia_onebox.rb | 30 + lib/onebox/engine/xkcd_onebox.rb | 32 + lib/onebox/engine/youku_onebox.rb | 35 + lib/onebox/engine/youtube_onebox.rb | 173 + lib/onebox/file_type_finder.rb | 70 + lib/onebox/helpers.rb | 252 + lib/onebox/layout.rb | 55 + lib/onebox/layout_support.rb | 18 + lib/onebox/matcher.rb | 32 + lib/onebox/mixins/git_blob_onebox.rb | 228 + lib/onebox/mixins/github_body.rb | 30 + lib/onebox/mixins/twitch_onebox.rb | 34 + lib/onebox/oembed.rb | 17 + lib/onebox/open_graph.rb | 93 + lib/onebox/preview.rb | 96 + lib/onebox/sanitize_config.rb | 72 + lib/onebox/status_check.rb | 46 + lib/onebox/template_support.rb | 13 + lib/onebox/templates/_layout.mustache | 25 + .../templates/allowlistedgeneric.mustache | 16 + lib/onebox/templates/amazon.mustache | 15 + .../templates/github/github_body.mustache | 5 + lib/onebox/templates/githubblob.mustache | 54 + lib/onebox/templates/githubcommit.mustache | 33 + lib/onebox/templates/githubfolder.mustache | 11 + lib/onebox/templates/githubgist.mustache | 15 + lib/onebox/templates/githubissue.mustache | 38 + .../templates/githubpullrequest.mustache | 37 + lib/onebox/templates/gitlabblob.mustache | 21 + lib/onebox/templates/googledocs.mustache | 5 + lib/onebox/templates/googledrive.mustache | 9 + lib/onebox/templates/googleplayapp.mustache | 5 + lib/onebox/templates/instagram.mustache | 13 + lib/onebox/templates/pastebin.mustache | 7 + lib/onebox/templates/pdf.mustache | 7 + lib/onebox/templates/pubmed.mustache | 12 + lib/onebox/templates/stackexchange.mustache | 22 + lib/onebox/templates/twitterstatus.mustache | 38 + lib/onebox/templates/wikimedia.mustache | 3 + lib/onebox/templates/wikipedia.mustache | 5 + lib/onebox/templates/xkcd.mustache | 7 + lib/onebox/view.rb | 21 + plugins/lazy-yt/plugin.rb | 2 + .../engine/allowlisted_generic_onebox_spec.rb | 21 - spec/fixtures/onebox/amazon-ebook.response | 6170 ++++++++++++++ spec/fixtures/onebox/amazon-og.response | 3675 +++++++++ spec/fixtures/onebox/amazon.response | 3773 +++++++++ spec/fixtures/onebox/cloudapp-gif.response | 66 + spec/fixtures/onebox/cloudapp-jpg.response | 66 + spec/fixtures/onebox/cloudapp-mp4.response | 65 + spec/fixtures/onebox/cloudapp-others.response | 66 + spec/fixtures/onebox/cnn.response | 4 + spec/fixtures/onebox/dailymail.response | 5914 ++++++++++++++ spec/fixtures/onebox/discourse_topic.response | 373 + .../onebox/discourse_topic_reply.response | 369 + spec/fixtures/onebox/etsy.response | 5389 ++++++++++++ spec/fixtures/onebox/etsy_mobile.response | 5389 ++++++++++++ spec/fixtures/onebox/gfycat.response | 40 + spec/fixtures/onebox/githubblob.response | 46 + spec/fixtures/onebox/githubcommit.response | 87 + .../githubfolder-discourse-root.response | 2358 ++++++ spec/fixtures/onebox/githubfolder.response | 1549 ++++ spec/fixtures/onebox/githubgist.response | 310 + .../onebox/githubpullrequest.response | 216 + spec/fixtures/onebox/gitlabblob.response | 21 + spec/fixtures/onebox/googledocs.response | 182 + spec/fixtures/onebox/googledrive.response | 304 + spec/fixtures/onebox/googlephotos.response | 800 ++ spec/fixtures/onebox/googleplayapp.response | 2269 ++++++ spec/fixtures/onebox/image.response | Bin 0 -> 266630 bytes spec/fixtures/onebox/imgur.response | 836 ++ spec/fixtures/onebox/instagram.response | 12 + .../onebox/instagram_old_onebox.response | 17 + spec/fixtures/onebox/kaltura.response | 781 ++ spec/fixtures/onebox/meetup.response.html | 4419 ++++++++++ spec/fixtures/onebox/meetup_oembed.response | 1 + .../onebox/pubmed-electronic-xml.response | 175 + .../onebox/pubmed-electronic.response | 307 + spec/fixtures/onebox/pubmed-xml.response | 122 + spec/fixtures/onebox/pubmed.response | 300 + spec/fixtures/onebox/reddit_image.response | 416 + spec/fixtures/onebox/slides.response | 2852 +++++++ .../onebox/stackexchange-answer.response | 1 + .../onebox/stackexchange-question.response | 1 + spec/fixtures/onebox/twitterstatus.response | 2814 +++++++ .../onebox/twitterstatus_quoted.response | 7199 +++++++++++++++++ spec/fixtures/onebox/video.response | Bin 0 -> 617665 bytes spec/fixtures/onebox/wikimedia.response | 1 + spec/fixtures/onebox/wikipedia.response | 566 ++ .../onebox/wikipediaredirected.response | 899 ++ spec/fixtures/onebox/xkcd.response | 1 + spec/fixtures/onebox/youku-meta.response | 1 + spec/fixtures/onebox/youku.response | 1443 ++++ spec/fixtures/onebox/youtube-channel.response | 5446 +++++++++++++ spec/fixtures/onebox/youtube-embed.response | 7 + .../fixtures/onebox/youtube-playlist.response | 221 + spec/fixtures/onebox/youtube.response | 1625 ++++ .../engine/allowlisted_generic_onebox_spec.rb | 185 + spec/lib/onebox/engine/amazon_onebox_spec.rb | 196 + spec/lib/onebox/engine/audio_onebox_spec.rb | 37 + .../lib/onebox/engine/cloudapp_onebox_spec.rb | 28 + spec/lib/onebox/engine/gfycat_onebox_spec.rb | 39 + .../onebox/engine/github_blob_onebox_spec.rb | 24 + .../engine/github_commit_onebox_spec.rb | 115 + .../engine/github_folder_onebox_spec.rb | 44 + .../onebox/engine/github_gist_onebox_spec.rb | 72 + .../engine/github_pullrequest_onebox_spec.rb | 53 + .../onebox/engine/gitlab_blob_onebox_spec.rb | 25 + .../onebox/engine/google_docs_onebox_spec.rb | 28 + .../onebox/engine/google_drive_onebox_spec.rb | 24 + .../onebox/engine/google_maps_onebox_spec.rb | 74 + .../engine/google_photos_onebox_spec.rb | 22 + .../engine/google_play_app_onebox_spec.rb | 33 + spec/lib/onebox/engine/html_spec.rb | 30 + spec/lib/onebox/engine/image_onebox_spec.rb | 41 + spec/lib/onebox/engine/imgur_onebox_spec.rb | 18 + .../onebox/engine/instagram_onebox_spec.rb | 75 + spec/lib/onebox/engine/json_spec.rb | 27 + spec/lib/onebox/engine/kaltura_onebox_spec.rb | 58 + spec/lib/onebox/engine/pdf_onebox_spec.rb | 30 + spec/lib/onebox/engine/pubmed_onebox_spec.rb | 78 + spec/lib/onebox/engine/reddit_media_onebox.rb | 25 + spec/lib/onebox/engine/slides_onebox_spec.rb | 25 + .../engine/stack_exchange_onebox_spec.rb | 103 + spec/lib/onebox/engine/trello_onebox_spec.rb | 31 + .../onebox/engine/twitch_clips_onebox_spec.rb | 12 + .../engine/twitch_stream_onebox_spec.rb | 16 + .../onebox/engine/twitch_video_onebox_spec.rb | 12 + .../engine/twitter_status_onebox_spec.rb | 658 ++ .../lib/onebox/engine/typeform_onebox_spec.rb | 45 + spec/lib/onebox/engine/video_onebox_spec.rb | 37 + .../onebox/engine/wikimedia_onebox_spec.rb | 25 + .../onebox/engine/wikipedia_onebox_spec.rb | 25 + spec/lib/onebox/engine/xkcd_spec.rb | 29 + spec/lib/onebox/engine/youku_onebox_spec.rb | 18 + spec/lib/onebox/engine/youtube_onebox_spec.rb | 97 + spec/lib/onebox/engine_spec.rb | 85 + spec/lib/onebox/helpers_spec.rb | 176 + spec/lib/onebox/layout_spec.rb | 27 + spec/lib/onebox/matcher_spec.rb | 105 + spec/lib/onebox/oembed_spec.rb | 18 + spec/lib/onebox/open_graph_spec.rb | 20 + spec/lib/onebox/preview_spec.rb | 108 + spec/lib/onebox/status_check_spec.rb | 70 + spec/lib/onebox_spec.rb | 31 + spec/rails_helper.rb | 1 + spec/support/onebox_helpers.rb | 74 + 211 files changed, 78330 insertions(+), 74 deletions(-) create mode 100644 COPYRIGHT.md delete mode 100644 COPYRIGHT.txt create mode 100644 lib/onebox.rb create mode 100644 lib/onebox/engine.rb create mode 100644 lib/onebox/engine/amazon_onebox.rb create mode 100644 lib/onebox/engine/asciinema_onebox.rb create mode 100644 lib/onebox/engine/audio_onebox.rb create mode 100644 lib/onebox/engine/audioboom_onebox.rb create mode 100644 lib/onebox/engine/band_camp_onebox.rb create mode 100644 lib/onebox/engine/cloud_app_onebox.rb create mode 100644 lib/onebox/engine/coub_onebox.rb create mode 100644 lib/onebox/engine/facebook_media_onebox.rb create mode 100644 lib/onebox/engine/five_hundred_px_onebox.rb create mode 100644 lib/onebox/engine/flickr_onebox.rb create mode 100644 lib/onebox/engine/flickr_shortened_onebox.rb create mode 100644 lib/onebox/engine/gfycat_onebox.rb create mode 100644 lib/onebox/engine/giphy_onebox.rb create mode 100644 lib/onebox/engine/github_blob_onebox.rb create mode 100644 lib/onebox/engine/github_commit_onebox.rb create mode 100644 lib/onebox/engine/github_folder_onebox.rb create mode 100644 lib/onebox/engine/github_gist_onebox.rb create mode 100644 lib/onebox/engine/github_issue_onebox.rb create mode 100644 lib/onebox/engine/github_pull_request_onebox.rb create mode 100644 lib/onebox/engine/gitlab_blob_onebox.rb create mode 100644 lib/onebox/engine/google_calendar_onebox.rb create mode 100644 lib/onebox/engine/google_docs_onebox.rb create mode 100644 lib/onebox/engine/google_drive_onebox.rb create mode 100644 lib/onebox/engine/google_maps_onebox.rb create mode 100644 lib/onebox/engine/google_photos_onebox.rb create mode 100644 lib/onebox/engine/google_play_app_onebox.rb create mode 100644 lib/onebox/engine/html.rb create mode 100644 lib/onebox/engine/image_onebox.rb create mode 100644 lib/onebox/engine/imgur_onebox.rb create mode 100644 lib/onebox/engine/instagram_onebox.rb create mode 100644 lib/onebox/engine/json.rb create mode 100644 lib/onebox/engine/kaltura_onebox.rb create mode 100644 lib/onebox/engine/mixcloud_onebox.rb create mode 100644 lib/onebox/engine/opengraph_image.rb create mode 100644 lib/onebox/engine/pastebin_onebox.rb create mode 100644 lib/onebox/engine/pdf_onebox.rb create mode 100644 lib/onebox/engine/pubmed_onebox.rb create mode 100644 lib/onebox/engine/reddit_media_onebox.rb create mode 100644 lib/onebox/engine/replit_onebox.rb create mode 100644 lib/onebox/engine/simplecast_onebox.rb create mode 100644 lib/onebox/engine/sketch_fab_onebox.rb create mode 100644 lib/onebox/engine/slides_onebox.rb create mode 100644 lib/onebox/engine/sound_cloud_onebox.rb create mode 100644 lib/onebox/engine/stack_exchange_onebox.rb create mode 100644 lib/onebox/engine/standard_embed.rb create mode 100644 lib/onebox/engine/steam_store_onebox.rb create mode 100644 lib/onebox/engine/trello_onebox.rb create mode 100644 lib/onebox/engine/twitch_clips_onebox.rb create mode 100644 lib/onebox/engine/twitch_stream_onebox.rb create mode 100644 lib/onebox/engine/twitch_video_onebox.rb create mode 100644 lib/onebox/engine/twitter_status_onebox.rb create mode 100644 lib/onebox/engine/typeform_onebox.rb create mode 100644 lib/onebox/engine/video_onebox.rb create mode 100644 lib/onebox/engine/vimeo_onebox.rb create mode 100644 lib/onebox/engine/wikimedia_onebox.rb create mode 100644 lib/onebox/engine/wikipedia_onebox.rb create mode 100644 lib/onebox/engine/wistia_onebox.rb create mode 100644 lib/onebox/engine/xkcd_onebox.rb create mode 100644 lib/onebox/engine/youku_onebox.rb create mode 100644 lib/onebox/engine/youtube_onebox.rb create mode 100644 lib/onebox/file_type_finder.rb create mode 100644 lib/onebox/helpers.rb create mode 100644 lib/onebox/layout.rb create mode 100644 lib/onebox/layout_support.rb create mode 100644 lib/onebox/matcher.rb create mode 100644 lib/onebox/mixins/git_blob_onebox.rb create mode 100644 lib/onebox/mixins/github_body.rb create mode 100644 lib/onebox/mixins/twitch_onebox.rb create mode 100644 lib/onebox/oembed.rb create mode 100644 lib/onebox/open_graph.rb create mode 100644 lib/onebox/preview.rb create mode 100644 lib/onebox/sanitize_config.rb create mode 100644 lib/onebox/status_check.rb create mode 100644 lib/onebox/template_support.rb create mode 100644 lib/onebox/templates/_layout.mustache create mode 100644 lib/onebox/templates/allowlistedgeneric.mustache create mode 100644 lib/onebox/templates/amazon.mustache create mode 100644 lib/onebox/templates/github/github_body.mustache create mode 100644 lib/onebox/templates/githubblob.mustache create mode 100644 lib/onebox/templates/githubcommit.mustache create mode 100644 lib/onebox/templates/githubfolder.mustache create mode 100644 lib/onebox/templates/githubgist.mustache create mode 100644 lib/onebox/templates/githubissue.mustache create mode 100644 lib/onebox/templates/githubpullrequest.mustache create mode 100644 lib/onebox/templates/gitlabblob.mustache create mode 100644 lib/onebox/templates/googledocs.mustache create mode 100644 lib/onebox/templates/googledrive.mustache create mode 100644 lib/onebox/templates/googleplayapp.mustache create mode 100644 lib/onebox/templates/instagram.mustache create mode 100644 lib/onebox/templates/pastebin.mustache create mode 100644 lib/onebox/templates/pdf.mustache create mode 100644 lib/onebox/templates/pubmed.mustache create mode 100644 lib/onebox/templates/stackexchange.mustache create mode 100644 lib/onebox/templates/twitterstatus.mustache create mode 100644 lib/onebox/templates/wikimedia.mustache create mode 100644 lib/onebox/templates/wikipedia.mustache create mode 100644 lib/onebox/templates/xkcd.mustache create mode 100644 lib/onebox/view.rb delete mode 100644 spec/components/onebox/engine/allowlisted_generic_onebox_spec.rb create mode 100644 spec/fixtures/onebox/amazon-ebook.response create mode 100644 spec/fixtures/onebox/amazon-og.response create mode 100644 spec/fixtures/onebox/amazon.response create mode 100644 spec/fixtures/onebox/cloudapp-gif.response create mode 100644 spec/fixtures/onebox/cloudapp-jpg.response create mode 100644 spec/fixtures/onebox/cloudapp-mp4.response create mode 100644 spec/fixtures/onebox/cloudapp-others.response create mode 100644 spec/fixtures/onebox/cnn.response create mode 100644 spec/fixtures/onebox/dailymail.response create mode 100644 spec/fixtures/onebox/discourse_topic.response create mode 100644 spec/fixtures/onebox/discourse_topic_reply.response create mode 100644 spec/fixtures/onebox/etsy.response create mode 100644 spec/fixtures/onebox/etsy_mobile.response create mode 100644 spec/fixtures/onebox/gfycat.response create mode 100644 spec/fixtures/onebox/githubblob.response create mode 100644 spec/fixtures/onebox/githubcommit.response create mode 100644 spec/fixtures/onebox/githubfolder-discourse-root.response create mode 100644 spec/fixtures/onebox/githubfolder.response create mode 100644 spec/fixtures/onebox/githubgist.response create mode 100644 spec/fixtures/onebox/githubpullrequest.response create mode 100644 spec/fixtures/onebox/gitlabblob.response create mode 100644 spec/fixtures/onebox/googledocs.response create mode 100644 spec/fixtures/onebox/googledrive.response create mode 100644 spec/fixtures/onebox/googlephotos.response create mode 100644 spec/fixtures/onebox/googleplayapp.response create mode 100644 spec/fixtures/onebox/image.response create mode 100644 spec/fixtures/onebox/imgur.response create mode 100644 spec/fixtures/onebox/instagram.response create mode 100644 spec/fixtures/onebox/instagram_old_onebox.response create mode 100644 spec/fixtures/onebox/kaltura.response create mode 100644 spec/fixtures/onebox/meetup.response.html create mode 100644 spec/fixtures/onebox/meetup_oembed.response create mode 100644 spec/fixtures/onebox/pubmed-electronic-xml.response create mode 100644 spec/fixtures/onebox/pubmed-electronic.response create mode 100644 spec/fixtures/onebox/pubmed-xml.response create mode 100644 spec/fixtures/onebox/pubmed.response create mode 100644 spec/fixtures/onebox/reddit_image.response create mode 100644 spec/fixtures/onebox/slides.response create mode 100644 spec/fixtures/onebox/stackexchange-answer.response create mode 100644 spec/fixtures/onebox/stackexchange-question.response create mode 100644 spec/fixtures/onebox/twitterstatus.response create mode 100644 spec/fixtures/onebox/twitterstatus_quoted.response create mode 100644 spec/fixtures/onebox/video.response create mode 100644 spec/fixtures/onebox/wikimedia.response create mode 100644 spec/fixtures/onebox/wikipedia.response create mode 100644 spec/fixtures/onebox/wikipediaredirected.response create mode 100644 spec/fixtures/onebox/xkcd.response create mode 100644 spec/fixtures/onebox/youku-meta.response create mode 100644 spec/fixtures/onebox/youku.response create mode 100644 spec/fixtures/onebox/youtube-channel.response create mode 100644 spec/fixtures/onebox/youtube-embed.response create mode 100644 spec/fixtures/onebox/youtube-playlist.response create mode 100644 spec/fixtures/onebox/youtube.response create mode 100644 spec/lib/onebox/engine/allowlisted_generic_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/amazon_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/audio_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/cloudapp_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/gfycat_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/github_blob_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/github_commit_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/github_folder_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/github_gist_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/github_pullrequest_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/gitlab_blob_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/google_docs_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/google_drive_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/google_maps_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/google_photos_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/google_play_app_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/html_spec.rb create mode 100644 spec/lib/onebox/engine/image_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/imgur_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/instagram_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/json_spec.rb create mode 100644 spec/lib/onebox/engine/kaltura_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/pdf_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/pubmed_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/reddit_media_onebox.rb create mode 100644 spec/lib/onebox/engine/slides_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/stack_exchange_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/trello_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/twitch_clips_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/twitch_stream_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/twitch_video_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/twitter_status_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/typeform_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/video_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/wikimedia_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/wikipedia_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/xkcd_spec.rb create mode 100644 spec/lib/onebox/engine/youku_onebox_spec.rb create mode 100644 spec/lib/onebox/engine/youtube_onebox_spec.rb create mode 100644 spec/lib/onebox/engine_spec.rb create mode 100644 spec/lib/onebox/helpers_spec.rb create mode 100644 spec/lib/onebox/layout_spec.rb create mode 100644 spec/lib/onebox/matcher_spec.rb create mode 100644 spec/lib/onebox/oembed_spec.rb create mode 100644 spec/lib/onebox/open_graph_spec.rb create mode 100644 spec/lib/onebox/preview_spec.rb create mode 100644 spec/lib/onebox/status_check_spec.rb create mode 100644 spec/lib/onebox_spec.rb create mode 100644 spec/support/onebox_helpers.rb diff --git a/COPYRIGHT.md b/COPYRIGHT.md new file mode 100644 index 00000000000..80c989e96b5 --- /dev/null +++ b/COPYRIGHT.md @@ -0,0 +1,59 @@ +# Legal notice + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program as the file LICENSE.txt; if not, please see +http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + +## Trademark + +Discourse is a registered trademark of Civilized Discourse Construction Kit. + +## Other copyright notices + +Discourse includes works under other copyright notices and distributed +according to the terms of the GNU General Public License or a compatible +license (where indicated), including: + +- Ember.js - Copyright (c) 2020 Yehuda Katz, Tom Dale and Ember.js contributors + MIT License + +- jQuery - Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + MIT License + +- Rails - Copyright (c) 2005-2021 David Heinemeier Hansson + MIT License + +- Onebox - Copyright (c) 2013 jzeta + MIT License + +MIT License: + +``` +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt deleted file mode 100644 index cb867e5604b..00000000000 --- a/COPYRIGHT.txt +++ /dev/null @@ -1,31 +0,0 @@ -All Discourse code is Copyright 2013 by Civilized Discourse Construction Kit, Inc. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with this program as the file LICENSE.txt; if not, please see -http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. - -Discourse is a registered trademark of Civilized Discourse Construction Kit. - -Discourse includes works under other copyright notices and distributed -according to the terms of the GNU General Public License or a compatible -license (where indicated), including: - -Javascript - - Ember.js - Copyright (c) 2012-2013 Yehuda Katz, Tom Dale, Charles Jolley and Ember.js contributors - - jQuery - Copyright (c) 2010-2013 John Resig - -Ruby - - Rails - Copyright (c) 2005-2013 David Heinemeier Hansson, Rails Core Team contributors (MIT) diff --git a/Gemfile b/Gemfile index e54a9dc8819..703c5da332a 100644 --- a/Gemfile +++ b/Gemfile @@ -60,8 +60,6 @@ gem 'redis-namespace' # better maintained living fork gem 'active_model_serializers', '~> 0.8.3' -gem 'onebox' - gem 'http_accept_language', require: false # Ember related gems need to be pinned cause they control client side @@ -229,6 +227,8 @@ gem 'sshkey', require: false gem 'rchardet', require: false gem 'lz4-ruby', require: false, platform: :ruby +gem 'sanitize' + if ENV["IMPORT"] == "1" gem 'mysql2' gem 'redcarpet' diff --git a/Gemfile.lock b/Gemfile.lock index cba9b033d36..8935c621c8d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -277,13 +277,6 @@ GEM omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack - onebox (2.2.15) - addressable (~> 2.7.0) - htmlentities (~> 4.3) - multi_json (~> 1.11) - mustache - nokogiri (~> 1.7) - sanitize openssl (2.2.0) openssl-signature_algorithm (1.1.1) openssl (~> 2.0) @@ -558,7 +551,6 @@ DEPENDENCIES omniauth-google-oauth2 omniauth-oauth2 omniauth-twitter - onebox parallel_tests pg pry-byebug @@ -589,6 +581,7 @@ DEPENDENCIES ruby-prof ruby-readability rubyzip + sanitize sassc (= 2.0.1) sassc-rails seed-fu @@ -610,4 +603,4 @@ DEPENDENCIES yaml-lint BUNDLED WITH - 2.2.16 + 2.2.17 diff --git a/LICENSE.txt b/LICENSE.txt index 94fb84639c4..d159169d105 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,12 +1,12 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -56,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - GNU GENERAL PUBLIC LICENSE + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains @@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN @@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it diff --git a/lib/onebox.rb b/lib/onebox.rb new file mode 100644 index 00000000000..12244ad75ec --- /dev/null +++ b/lib/onebox.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "openssl" +require "open-uri" +require "multi_json" +require "nokogiri" +require "mustache" +require "ostruct" +require "cgi" +require "net/http" +require "digest" +require "sanitize" +require_relative "onebox/sanitize_config" + +module Onebox + DEFAULTS = { + connect_timeout: 5, + timeout: 10, + max_download_kb: (10 * 1024), # 10MB + load_paths: [File.join(Rails.root, "lib/onebox/templates")], + allowed_ports: [80, 443], + allowed_schemes: ["http", "https"], + sanitize_config: Sanitize::Config::ONEBOX, + redirect_limit: 5 + } + + @@options = DEFAULTS + + def self.preview(url, options = Onebox.options) + Preview.new(url, options) + end + + def self.check(url, options = Onebox.options) + StatusCheck.new(url, options) + end + + def self.options + OpenStruct.new(@@options) + end + + def self.has_matcher?(url) + !!Matcher.new(url).oneboxed + end + + def self.options=(options) + @@options = DEFAULTS.merge(options) + end +end + +require_relative "onebox/preview" +require_relative "onebox/status_check" +require_relative "onebox/matcher" +require_relative "onebox/engine" +require_relative "onebox/layout" +require_relative "onebox/view" diff --git a/lib/onebox/engine.rb b/lib/onebox/engine.rb new file mode 100644 index 00000000000..1b2448dc37d --- /dev/null +++ b/lib/onebox/engine.rb @@ -0,0 +1,203 @@ +# frozen_string_literal: true + +module Onebox + module Engine + def self.included(object) + object.extend(ClassMethods) + end + + def self.engines + constants.select do |constant| + constant.to_s =~ /Onebox$/ + end.map(&method(:const_get)) + end + + def self.all_iframe_origins + engines.flat_map { |e| e.iframe_origins }.uniq.compact + end + + def self.origins_to_regexes(origins) + return /.*/ if origins.include?("*") + origins.map do |origin| + escaped_origin = Regexp.escape(origin) + if origin.start_with?("*.", "https://*.", "http://*.") + escaped_origin = escaped_origin.sub("\\*", '\S*') + end + + Regexp.new("\\A#{escaped_origin}", 'i') + end + end + + attr_reader :url, :uri, :options, :timeout + attr :errors + + DEFAULT = {} + + def options=(opt) + return @options if opt.nil? # make sure options provided + opt = opt.to_h if opt.instance_of?(OpenStruct) + @options.merge!(opt) + @options + end + + def initialize(url, timeout = nil) + @errors = {} + @options = DEFAULT + class_name = self.class.name.split("::").last.to_s + + # Set the engine options extracted from global options. + self.options = Onebox.options[class_name] || {} + + @url = url + @uri = URI(url) + if always_https? + @uri.scheme = 'https' + @url = @uri.to_s + end + @timeout = timeout || Onebox.options.timeout + end + + # raises error if not defined in onebox engine. + # This is the output method for an engine. + def to_html + fail NoMethodError, "Engines need to implement this method" + end + + # Some oneboxes create iframes or other complicated controls. If you're using + # a live editor with HTML preview, rendering those complicated controls can + # be slow or cause flickering. + # + # This method allows engines to produce a placeholder such as static image + # frame of a video. + # + # By default it just calls `to_html` unless implemented. + def placeholder_html + to_html + end + + private + + # raises error if not defined in onebox engine + # in each onebox, uses either Nokogiri or StandardEmbed to get raw HTML from url + def raw + fail NoMethodError, "Engines need to implement this method" + end + + # raises error if not defined in onebox engine + # in each onebox, returns hash of desired onebox content + def data + fail NoMethodError, "Engines need this method defined" + end + + def link + ::Onebox::Helpers.uri_encode(@url) + end + + def always_https? + self.class.always_https? + end + + module ClassMethods + def ===(other) + if other.kind_of?(URI) + !!(other.to_s =~ class_variable_get(:@@matcher)) + else + super + end + end + + def priority + 100 + end + + def matches_regexp(r) + class_variable_set :@@matcher, r + end + + def requires_iframe_origins(*origins) + class_variable_set :@@iframe_origins, origins + end + + def iframe_origins + class_variable_defined?(:@@iframe_origins) ? class_variable_get(:@@iframe_origins) : [] + end + + # calculates a name for onebox using the class name of engine + def onebox_name + name.split("::").last.downcase.gsub(/onebox/, "") + end + + def always_https + @https = true + end + + def always_https? + defined?(@https) ? @https : false + end + end + end +end + +require_relative "helpers" +require_relative "layout_support" +require_relative "file_type_finder" +require_relative "engine/standard_embed" +require_relative "engine/html" +require_relative "engine/json" +require_relative "engine/amazon_onebox" +require_relative "engine/github_issue_onebox" +require_relative "engine/github_blob_onebox" +require_relative "engine/github_commit_onebox" +require_relative "engine/github_folder_onebox" +require_relative "engine/github_gist_onebox" +require_relative "engine/github_pull_request_onebox" +require_relative "engine/google_calendar_onebox" +require_relative "engine/google_docs_onebox" +require_relative "engine/google_maps_onebox" +require_relative "engine/google_play_app_onebox" +require_relative "engine/image_onebox" +require_relative "engine/video_onebox" +require_relative "engine/audio_onebox" +require_relative "engine/stack_exchange_onebox" +require_relative "engine/twitter_status_onebox" +require_relative "engine/wikimedia_onebox" +require_relative "engine/wikipedia_onebox" +require_relative "engine/youtube_onebox" +require_relative "engine/youku_onebox" +require_relative "engine/allowlisted_generic_onebox" +require_relative "engine/pubmed_onebox" +require_relative "engine/sound_cloud_onebox" +require_relative "engine/imgur_onebox" +require_relative "engine/pastebin_onebox" +require_relative "engine/slides_onebox" +require_relative "engine/xkcd_onebox" +require_relative "engine/giphy_onebox" +require_relative "engine/gfycat_onebox" +require_relative "engine/typeform_onebox" +require_relative "engine/vimeo_onebox" +require_relative "engine/steam_store_onebox" +require_relative "engine/sketch_fab_onebox" +require_relative "engine/audioboom_onebox" +require_relative "engine/replit_onebox" +require_relative "engine/asciinema_onebox" +require_relative "engine/mixcloud_onebox" +require_relative "engine/band_camp_onebox" +require_relative "engine/coub_onebox" +require_relative "engine/flickr_onebox" +require_relative "engine/flickr_shortened_onebox" +require_relative "engine/five_hundred_px_onebox" +require_relative "engine/pdf_onebox" +require_relative "engine/twitch_clips_onebox" +require_relative "engine/twitch_stream_onebox" +require_relative "engine/twitch_video_onebox" +require_relative "engine/trello_onebox" +require_relative "engine/cloud_app_onebox" +require_relative "engine/wistia_onebox" +require_relative "engine/simplecast_onebox" +require_relative "engine/instagram_onebox" +require_relative "engine/gitlab_blob_onebox" +require_relative "engine/google_photos_onebox" +require_relative "engine/kaltura_onebox" +require_relative "engine/reddit_media_onebox" +require_relative "engine/google_drive_onebox" +require_relative "engine/facebook_media_onebox" diff --git a/lib/onebox/engine/allowlisted_generic_onebox.rb b/lib/onebox/engine/allowlisted_generic_onebox.rb index d13d91748a9..f4d5d3b7d15 100644 --- a/lib/onebox/engine/allowlisted_generic_onebox.rb +++ b/lib/onebox/engine/allowlisted_generic_onebox.rb @@ -1,21 +1,267 @@ # frozen_string_literal: true +require 'htmlentities' require "ipaddr" module Onebox module Engine class AllowlistedGenericOnebox + include Engine + include StandardEmbed + include LayoutSupport + + def self.priority + 200 + end + + # Often using the `html` attribute is not what we want, like for some blogs that + # include the entire page HTML. However for some providers like Flickr it allows us + # to return gifv and galleries. + def self.default_html_providers + ['Flickr', 'Meetup'] + end + + def self.html_providers + @html_providers ||= default_html_providers.dup + end + + def self.html_providers=(new_provs) + @html_providers = new_provs + end + + # A re-written URL converts http:// -> https:// + def self.rewrites + @rewrites ||= https_hosts.dup + end + + def self.rewrites=(new_list) + @rewrites = new_list + end + + def self.https_hosts + %w(slideshare.net dailymotion.com livestream.com imgur.com flickr.com) + end + + def self.host_matches(uri, list) + !!list.find { |h| %r((^|\.)#{Regexp.escape(h)}$).match(uri.host) } + end + + def self.allowed_twitter_labels + ['brand', 'price', 'usd', 'cad', 'reading time', 'likes'] + end - # overwrite the allowlist def self.===(other) other.is_a?(URI) ? (IPAddr.new(other.hostname) rescue nil).nil? : true end - # ensure we're the last engine to be used - def self.priority - Float::INFINITY + def to_html + rewrite_https(generic_html) end + def placeholder_html + return article_html if is_article? + return image_html if is_image? + return Onebox::Helpers.video_placeholder_html if is_video? || is_card? + return Onebox::Helpers.generic_placeholder_html if is_embedded? + to_html + end + + def data + @data ||= begin + html_entities = HTMLEntities.new + d = { link: link }.merge(raw) + + if !Onebox::Helpers.blank?(d[:title]) + d[:title] = html_entities.decode(Onebox::Helpers.truncate(d[:title], 80)) + end + + d[:description] ||= d[:summary] + if !Onebox::Helpers.blank?(d[:description]) + d[:description] = html_entities.decode(Onebox::Helpers.truncate(d[:description], 250)) + end + + if !Onebox::Helpers.blank?(d[:site_name]) + d[:domain] = html_entities.decode(Onebox::Helpers.truncate(d[:site_name], 80)) + elsif !Onebox::Helpers.blank?(d[:domain]) + d[:domain] = "http://#{d[:domain]}" unless d[:domain] =~ /^https?:\/\// + d[:domain] = URI(d[:domain]).host.to_s.sub(/^www\./, '') rescue nil + end + + # prefer secure URLs + d[:image] = d[:image_secure_url] || d[:image_url] || d[:thumbnail_url] || d[:image] + d[:image] = Onebox::Helpers::get_absolute_image_url(d[:image], @url) + d[:image] = Onebox::Helpers::normalize_url_for_output(html_entities.decode(d[:image])) + d[:image] = nil if Onebox::Helpers.blank?(d[:image]) + + d[:video] = d[:video_secure_url] || d[:video_url] || d[:video] + d[:video] = nil if Onebox::Helpers.blank?(d[:video]) + + d[:published_time] = d[:article_published_time] unless Onebox::Helpers.blank?(d[:article_published_time]) + if !Onebox::Helpers.blank?(d[:published_time]) + d[:article_published_time] = Time.parse(d[:published_time]).strftime("%-d %b %y") + d[:article_published_time_title] = Time.parse(d[:published_time]).strftime("%I:%M%p - %d %B %Y") + end + + # Twitter labels + if !Onebox::Helpers.blank?(d[:label1]) && !Onebox::Helpers.blank?(d[:data1]) && !!AllowlistedGenericOnebox.allowed_twitter_labels.find { |l| d[:label1] =~ /#{l}/i } + d[:label_1] = Onebox::Helpers.truncate(d[:label1]) + d[:data_1] = Onebox::Helpers.truncate(d[:data1]) + end + if !Onebox::Helpers.blank?(d[:label2]) && !Onebox::Helpers.blank?(d[:data2]) && !!AllowlistedGenericOnebox.allowed_twitter_labels.find { |l| d[:label2] =~ /#{l}/i } + unless Onebox::Helpers.blank?(d[:label_1]) + d[:label_2] = Onebox::Helpers.truncate(d[:label2]) + d[:data_2] = Onebox::Helpers.truncate(d[:data2]) + else + d[:label_1] = Onebox::Helpers.truncate(d[:label2]) + d[:data_1] = Onebox::Helpers.truncate(d[:data2]) + end + end + + if Onebox::Helpers.blank?(d[:label_1]) && !Onebox::Helpers.blank?(d[:price_amount]) && !Onebox::Helpers.blank?(d[:price_currency]) + d[:label_1] = "Price" + d[:data_1] = Onebox::Helpers.truncate("#{d[:price_currency].strip} #{d[:price_amount].strip}") + end + + skip_missing_tags = [:video] + d.each do |k, v| + next if skip_missing_tags.include?(k) + if v == nil || v == '' + errors[k] ||= [] + errors[k] << 'is blank' + end + end + + d + end + end + + private + + def rewrite_https(html) + return unless html + if AllowlistedGenericOnebox.host_matches(uri, AllowlistedGenericOnebox.rewrites) + html = html.gsub("http://", "https://") + end + html + end + + def generic_html + return article_html if is_article? + return video_html if is_video? + return image_html if is_image? + return embedded_html if is_embedded? + return card_html if is_card? + return article_html if (has_text? || is_image_article?) + end + + def is_card? + data[:card] == 'player' && + data[:player] =~ URI::regexp && + options[:allowed_iframe_regexes]&.any? { |r| data[:player] =~ r } + end + + def is_article? + (data[:type] =~ /article/ || data[:asset_type] =~ /article/) && + has_text? + end + + def has_text? + has_title? && !Onebox::Helpers.blank?(data[:description]) + end + + def has_title? + !Onebox::Helpers.blank?(data[:title]) + end + + def is_image_article? + has_title? && has_image? + end + + def is_image? + data[:type] =~ /photo|image/ && + data[:type] !~ /photostream/ && + has_image? + end + + def has_image? + !Onebox::Helpers.blank?(data[:image]) + end + + def is_video? + data[:type] =~ /^video[\/\.]/ && + data[:video_type] == "video/mp4" && # Many sites include 'videos' with text/html types (i.e. iframes) + !Onebox::Helpers.blank?(data[:video]) + end + + def is_embedded? + return false unless data[:html] && data[:height] + return true if AllowlistedGenericOnebox.html_providers.include?(data[:provider_name]) + return false unless data[:html]["iframe"] + + fragment = Nokogiri::HTML5::fragment(data[:html]) + src = fragment.at_css('iframe')&.[]("src") + options[:allowed_iframe_regexes]&.any? { |r| src =~ r } + end + + def card_html + escaped_url = ::Onebox::Helpers.normalize_url_for_output(data[:player]) + + <<~RAW + + RAW + end + + def article_html + layout.to_html + end + + def image_html + return if Onebox::Helpers.blank?(data[:image]) + + escaped_src = ::Onebox::Helpers.normalize_url_for_output(data[:image]) + + alt = data[:description] || data[:title] + width = data[:image_width] || data[:thumbnail_width] || data[:width] + height = data[:image_height] || data[:thumbnail_height] || data[:height] + + "#{alt}" + end + + def video_html + escaped_video_src = ::Onebox::Helpers.normalize_url_for_output(data[:video]) + escaped_image_src = ::Onebox::Helpers.normalize_url_for_output(data[:image]) + + <<-HTML + + HTML + end + + def embedded_html + fragment = Nokogiri::HTML5::fragment(data[:html]) + fragment.css("img").each { |img| img["class"] = "thumbnail" } + if iframe = fragment.at_css("iframe") + iframe.remove_attribute("style") + iframe["width"] = data[:width] || "100%" + iframe["height"] = data[:height] + iframe["scrolling"] = "no" + iframe["frameborder"] = "0" + end + fragment.to_html + end end end end diff --git a/lib/onebox/engine/amazon_onebox.rb b/lib/onebox/engine/amazon_onebox.rb new file mode 100644 index 00000000000..4ea26aa9189 --- /dev/null +++ b/lib/onebox/engine/amazon_onebox.rb @@ -0,0 +1,198 @@ +# frozen_string_literal: true + +require 'json' +require "onebox/open_graph" + +module Onebox + module Engine + class AmazonOnebox + include Engine + include LayoutSupport + include HTML + + always_https + matches_regexp(/^https?:\/\/(?:www\.)?(?:smile\.)?(amazon|amzn)\.(?com|ca|de|it|es|fr|co\.jp|co\.uk|cn|in|com\.br|com\.mx|nl|pl|sa|sg|se|com\.tr|ae)\//) + + def url + @raw ||= nil + + # If possible, fetch the cached HTML body immediately so we can + # try to grab the canonical URL from that document, + # rather than guess at the best URL structure to use + if !@raw && has_cached_body + @raw = Onebox::Helpers.fetch_html_doc(@url, http_params, body_cacher) + end + + if @raw + canonical_link = @raw.at('//link[@rel="canonical"]/@href') + return canonical_link.to_s if canonical_link + end + + if match && match[:id] + id = Addressable::URI.encode_component(match[:id], Addressable::URI::CharacterClasses::PATH) + return "https://www.amazon.#{tld}/dp/#{id}" + end + + @url + end + + def tld + @tld ||= @@matcher.match(@url)["tld"] + end + + def http_params + if @options && @options[:user_agent] + { 'User-Agent' => @options[:user_agent] } + end + end + + private + + def has_cached_body + body_cacher&.respond_to?('cache_response_body?') && + body_cacher.cache_response_body?(uri.to_s) && + body_cacher.cached_response_body_exists?(uri.to_s) + end + + def match + @match ||= @url.match(/(?:d|g)p\/(?:product\/|video\/detail\/)?(?[A-Z0-9]+)(?:\/|\?|$)/mi) + end + + def image + if (main_image = raw.css("#main-image")) && main_image.any? + attributes = main_image.first.attributes + + if attributes["data-a-hires"] + return attributes["data-a-hires"].to_s + elsif attributes["data-a-dynamic-image"] + return ::JSON.parse(attributes["data-a-dynamic-image"].value).keys.first + end + end + + if (landing_image = raw.css("#landingImage")) && landing_image.any? + attributes = landing_image.first.attributes + + if attributes["data-old-hires"] + return attributes["data-old-hires"].to_s + else + return landing_image.first["src"].to_s + end + end + + if (ebook_image = raw.css("#ebooksImgBlkFront")) && ebook_image.any? + ::JSON.parse(ebook_image.first.attributes["data-a-dynamic-image"].value).keys.first + end + end + + def price + # get item price (Amazon markup is inconsistent, deal with it) + if raw.css("#priceblock_ourprice .restOfPrice")[0] && raw.css("#priceblock_ourprice .restOfPrice")[0].inner_text + "#{raw.css("#priceblock_ourprice .restOfPrice")[0].inner_text}#{raw.css("#priceblock_ourprice .buyingPrice")[0].inner_text}.#{raw.css("#priceblock_ourprice .restOfPrice")[1].inner_text}" + elsif raw.css("#priceblock_dealprice") && (dealprice = raw.css("#priceblock_dealprice span")[0]) + dealprice.inner_text + elsif !raw.css("#priceblock_ourprice").inner_text.empty? + raw.css("#priceblock_ourprice").inner_text + else + raw.css(".mediaMatrixListItem.a-active .a-color-price").inner_text + end + end + + def multiple_authors(authors_xpath) + raw + .xpath(authors_xpath) + .map { |a| a.inner_text.strip } + .join(", ") + end + + def data + og = ::Onebox::OpenGraph.new(raw) + + if raw.at_css('#dp.book_mobile') # printed books + title = raw.at("h1#title")&.inner_text + authors = raw.at_css('#byline_secondary_view_div') ? multiple_authors("//div[@id='byline_secondary_view_div']//span[@class='a-text-bold']") : raw.at("#byline")&.inner_text + rating = raw.at("#averageCustomerReviews_feature_div .a-icon")&.inner_text || raw.at("#cmrsArcLink .a-icon")&.inner_text + + table_xpath = "//div[@id='productDetails_secondary_view_div']//table[@id='productDetails_techSpec_section_1']" + isbn = raw.xpath("#{table_xpath}//tr[8]//td").inner_text.strip + + # if ISBN is misplaced or absent it's hard to find out which data is + # available and where to find it so just set it all to nil + if /^\d(\-?\d){12}$/.match(isbn) + publisher = raw.xpath("#{table_xpath}//tr[1]//td").inner_text.strip + published = raw.xpath("#{table_xpath}//tr[2]//td").inner_text.strip + book_length = raw.xpath("#{table_xpath}//tr[6]//td").inner_text.strip + else + isbn = publisher = published = book_length = nil + end + + result = { + link: url, + title: title, + by_info: authors, + image: og.image || image, + description: raw.at("#productDescription")&.inner_text, + rating: "#{rating}#{', ' if rating && (!isbn&.empty? || !price&.empty?)}", + price: price, + isbn_asin_text: "ISBN", + isbn_asin: isbn, + publisher: publisher, + published: "#{published}#{', ' if published && !price&.empty?}" + } + + elsif raw.at_css('#dp.ebooks_mobile') # ebooks + title = raw.at("#ebooksTitle")&.inner_text + authors = raw.at_css('#a-popover-mobile-udp-contributor-popover-id') ? multiple_authors("//div[@id='a-popover-mobile-udp-contributor-popover-id']//span[contains(@class,'a-text-bold')]") : (raw.at("#byline")&.inner_text&.strip || raw.at("#bylineInfo")&.inner_text&.strip) + rating = raw.at("#averageCustomerReviews_feature_div .a-icon")&.inner_text || raw.at("#cmrsArcLink .a-icon")&.inner_text || raw.at("#acrCustomerReviewLink .a-icon")&.inner_text + + table_xpath = "//div[@id='detailBullets_secondary_view_div']//ul" + asin = raw.xpath("#{table_xpath}//li[4]/span/span[2]").inner_text + + # if ASIN is misplaced or absent it's hard to find out which data is + # available and where to find it so just set it all to nil + if /^[0-9A-Z]{10}$/.match(asin) + publisher = raw.xpath("#{table_xpath}//li[2]/span/span[2]").inner_text + published = raw.xpath("#{table_xpath}//li[1]/span/span[2]").inner_text + else + asin = publisher = published = nil + end + + result = { + link: url, + title: title, + by_info: authors, + image: og.image || image, + description: raw.at("#productDescription")&.inner_text, + rating: "#{rating}#{', ' if rating && (!asin&.empty? || !price&.empty?)}", + price: price, + isbn_asin_text: "ASIN", + isbn_asin: asin, + publisher: publisher, + published: "#{published}#{', ' if published && !price&.empty?}" + } + + else + title = og.title || CGI.unescapeHTML(raw.css("title").inner_text) + result = { + link: url, + title: title, + image: og.image || image, + price: price + } + + result[:by_info] = raw.at("#by-line") + result[:by_info] = Onebox::Helpers.clean(result[:by_info].inner_html) if result[:by_info] + + summary = raw.at("#productDescription") + + description = og.description || summary&.inner_text + description ||= raw.css("meta[name=description]").first&.[]("content") + result[:description] = CGI.unescapeHTML(Onebox::Helpers.truncate(description, 250)) if description + end + + result[:price] = nil if result[:price].start_with?("$0") || result[:price] == 0 + + result + end + end + end +end diff --git a/lib/onebox/engine/asciinema_onebox.rb b/lib/onebox/engine/asciinema_onebox.rb new file mode 100644 index 00000000000..f6c27108f19 --- /dev/null +++ b/lib/onebox/engine/asciinema_onebox.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class AsciinemaOnebox + include Engine + include StandardEmbed + + always_https + matches_regexp(/^https?:\/\/asciinema\.org\/a\/[\p{Alnum}_\-]+$/) + + def to_html + "" + end + + def placeholder_html + "" + end + + private + + def match + @match ||= @url.match(/asciinema\.org\/a\/(?[\p{Alnum}_\-]+)$/) + end + end + end +end diff --git a/lib/onebox/engine/audio_onebox.rb b/lib/onebox/engine/audio_onebox.rb new file mode 100644 index 00000000000..1ac09ce11d0 --- /dev/null +++ b/lib/onebox/engine/audio_onebox.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class AudioOnebox + include Engine + + matches_regexp(/^(https?:)?\/\/.*\.(mp3|ogg|opus|wav|m4a)(\?.*)?$/i) + + def always_https? + AllowlistedGenericOnebox.host_matches(uri, AllowlistedGenericOnebox.https_hosts) + end + + def to_html + escaped_url = ::Onebox::Helpers.normalize_url_for_output(@url) + + <<-HTML + + HTML + end + + def placeholder_html + ::Onebox::Helpers.audio_placeholder_html + end + end + end +end diff --git a/lib/onebox/engine/audioboom_onebox.rb b/lib/onebox/engine/audioboom_onebox.rb new file mode 100644 index 00000000000..89986f46857 --- /dev/null +++ b/lib/onebox/engine/audioboom_onebox.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class AudioboomOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/audioboom\.com\/posts\/\d+/) + always_https + + def placeholder_html + oembed = get_oembed + + <<-HTML + + HTML + end + + def to_html + get_oembed.html + end + end + end +end diff --git a/lib/onebox/engine/band_camp_onebox.rb b/lib/onebox/engine/band_camp_onebox.rb new file mode 100644 index 00000000000..a31e5890322 --- /dev/null +++ b/lib/onebox/engine/band_camp_onebox.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class BandCampOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/.*\.bandcamp\.com\/(album|track)\//) + always_https + requires_iframe_origins "https://bandcamp.com" + + def placeholder_html + og = get_opengraph + "" + end + + def to_html + og = get_opengraph + escaped_src = og.video_secure_url || og.video + + <<-HTML + + HTML + end + end + end +end diff --git a/lib/onebox/engine/cloud_app_onebox.rb b/lib/onebox/engine/cloud_app_onebox.rb new file mode 100644 index 00000000000..f1b985edf7c --- /dev/null +++ b/lib/onebox/engine/cloud_app_onebox.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class CloudAppOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/cl\.ly/) + always_https + + def to_html + og = get_opengraph + + if !og.image.nil? + image_html(og) + elsif og.title.to_s[/\.(mp4|ogv|webm)$/] + video_html(og) + else + link_html(og) + end + end + + private + + def link_html(og) + <<-HTML + + #{og.title} + + HTML + end + + def video_html(og) + direct_src = ::Onebox::Helpers.normalize_url_for_output("#{og.get(:url)}/#{og.title}") + + <<-HTML + + HTML + end + + def image_html(og) + <<-HTML + + CloudApp + + HTML + end + end + end +end diff --git a/lib/onebox/engine/coub_onebox.rb b/lib/onebox/engine/coub_onebox.rb new file mode 100644 index 00000000000..7e57e454296 --- /dev/null +++ b/lib/onebox/engine/coub_onebox.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class CoubOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/coub\.com\/view\//) + always_https + + def placeholder_html + oembed = get_oembed + "" + end + + def to_html + get_oembed.html + end + end + end +end diff --git a/lib/onebox/engine/facebook_media_onebox.rb b/lib/onebox/engine/facebook_media_onebox.rb new file mode 100644 index 00000000000..903eccb131a --- /dev/null +++ b/lib/onebox/engine/facebook_media_onebox.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class FacebookMediaOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/.*\.facebook\.com\/(\w+)\/(videos|\?).*/) + always_https + requires_iframe_origins "https://www.facebook.com" + + def to_html + metadata = get_twitter + if metadata.present? && metadata[:card] == "player" && metadata[:player].present? + <<-HTML + + HTML + else + html = Onebox::Engine::AllowlistedGenericOnebox.new(@url, @timeout).to_html + return if Onebox::Helpers.blank?(html) + html + end + end + end + end +end diff --git a/lib/onebox/engine/five_hundred_px_onebox.rb b/lib/onebox/engine/five_hundred_px_onebox.rb new file mode 100644 index 00000000000..806b5f9e6af --- /dev/null +++ b/lib/onebox/engine/five_hundred_px_onebox.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class FiveHundredPxOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/500px\.com\/photo\/\d+\//) + always_https + + def to_html + og = get_opengraph + "" + end + end + end +end diff --git a/lib/onebox/engine/flickr_onebox.rb b/lib/onebox/engine/flickr_onebox.rb new file mode 100644 index 00000000000..3ed26684a76 --- /dev/null +++ b/lib/onebox/engine/flickr_onebox.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +require_relative './opengraph_image' + +module Onebox + module Engine + class FlickrOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/www\.flickr\.com\/photos\//) + always_https + + def to_html + og = get_opengraph + return album_html(og) if og.url =~ /\/sets\// + return image_html(og) if !og.image.nil? + nil + end + + private + + def album_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + album_title = "[Album] #{og.title}" + + <<-HTML + + HTML + end + + def image_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + + <<-HTML + + Imgur + + HTML + end + end + end +end diff --git a/lib/onebox/engine/flickr_shortened_onebox.rb b/lib/onebox/engine/flickr_shortened_onebox.rb new file mode 100644 index 00000000000..1c1243050bc --- /dev/null +++ b/lib/onebox/engine/flickr_shortened_onebox.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require_relative './opengraph_image' + +module Onebox + module Engine + class FlickrShortenedOnebox + include Engine + include StandardEmbed + include OpengraphImage + + matches_regexp(/^https?:\/\/flic\.kr\/p\//) + always_https + end + end +end diff --git a/lib/onebox/engine/gfycat_onebox.rb b/lib/onebox/engine/gfycat_onebox.rb new file mode 100644 index 00000000000..27fd4bf79e0 --- /dev/null +++ b/lib/onebox/engine/gfycat_onebox.rb @@ -0,0 +1,113 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GfycatOnebox + include Engine + include JSON + + matches_regexp(/^https?:\/\/gfycat\.com\//) + always_https + + # This engine should have priority over AllowlistedGenericOnebox. + def self.priority + 1 + end + + def to_html + <<-HTML + + HTML + end + + def placeholder_html + <<-HTML + +
+ #{data[:name]} +
+ HTML + end + + private + + def match + @match ||= @url.match(/^https?:\/\/gfycat\.com\/(gifs\/detail\/)?(?.+)/) + end + + def og_data + return @og_data if defined?(@og_data) + + response = Onebox::Helpers.fetch_response(url, redirect_limit: 10) rescue nil + page = Nokogiri::HTML(response) + script = page.at_css('script[type="application/ld+json"]') + + if json_string = script&.text + @og_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(json_string)) + else + @og_data = {} + end + end + + def data + return @data if defined?(@data) + + @data = { + name: match[:name], + title: og_data[:headline] || 'No Title', + author: og_data[:author], + url: @url, + } + + if keywords = og_data[:keywords]&.split(',') + @data[:keywords] = keywords + .map { |keyword| "##{keyword}" } + .join(' ') + end + + if og_data[:video] + content_url = ::Onebox::Helpers.normalize_url_for_output(og_data[:video][:contentUrl]) + video_url = Pathname.new(content_url) + @data[:webmUrl] = video_url.sub_ext(".webm").to_s + @data[:mp4Url] = video_url.sub_ext(".mp4").to_s + + thumbnail_url = ::Onebox::Helpers.normalize_url_for_output(og_data[:video][:thumbnailUrl]) + @data[:posterUrl] = thumbnail_url + + @data[:width] = og_data[:video][:width] + @data[:height] = og_data[:video][:height] + end + + @data + end + end + end +end diff --git a/lib/onebox/engine/giphy_onebox.rb b/lib/onebox/engine/giphy_onebox.rb new file mode 100644 index 00000000000..569f423451d --- /dev/null +++ b/lib/onebox/engine/giphy_onebox.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GiphyOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(giphy\.com\/gifs|gph\.is)\//) + always_https + + def to_html + oembed = get_oembed + + <<-HTML + + + + HTML + end + end + end +end diff --git a/lib/onebox/engine/github_blob_onebox.rb b/lib/onebox/engine/github_blob_onebox.rb new file mode 100644 index 00000000000..fd70a4b2af1 --- /dev/null +++ b/lib/onebox/engine/github_blob_onebox.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require_relative '../mixins/git_blob_onebox' + +module Onebox + module Engine + class GithubBlobOnebox + def self.git_regexp + /^https?:\/\/(www\.)?github\.com.*\/blob\// + end + + def self.onebox_name + "githubblob" + end + + include Onebox::Mixins::GitBlobOnebox + + def raw_regexp + /github\.com\/(?[^\/]+)\/(?[^\/]+)\/blob\/(?[^\/]+)\/(?[^#]+)(#(L(?[^-]*)(-L(?.*))?))?/mi + end + + def raw_template(m) + "https://raw.githubusercontent.com/#{m[:user]}/#{m[:repo]}/#{m[:sha1]}/#{m[:file]}" + end + + def title + Sanitize.fragment(Onebox::Helpers.uri_unencode(link).sub(/^https?\:\/\/github\.com\//, '')) + end + end + end +end diff --git a/lib/onebox/engine/github_commit_onebox.rb b/lib/onebox/engine/github_commit_onebox.rb new file mode 100644 index 00000000000..d584eb165ec --- /dev/null +++ b/lib/onebox/engine/github_commit_onebox.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require_relative '../mixins/github_body' + +module Onebox + module Engine + class GithubCommitOnebox + include Engine + include LayoutSupport + include JSON + include Onebox::Mixins::GithubBody + + matches_regexp(/^https?:\/\/(?:www\.)?(?:(?:\w)+\.)?(github)\.com(?:\/)?(?:.)*\/commit\//) + always_https + + def url + "https://api.github.com/repos/#{match[:owner]}/#{match[:repository]}/commits/#{match[:sha]}" + end + + private + + def match + return @match if defined?(@match) + + @match = @url.match(%{github\.com/(?[^/]+)/(?[^/]+)/commit/(?[^/]+)}) + @match ||= @url.match(%{github\.com/(?[^/]+)/(?[^/]+)/pull/(?[^/]+)/commit/(?[^/]+)}) + + @match + end + + def data + result = raw.clone + + lines = result['commit']['message'].split("\n") + result['title'] = lines.first + result['body'], result['excerpt'] = compute_body(lines[1..lines.length].join("\n")) + + committed_at = Time.parse(result['commit']['author']['date']) + result['committed_at'] = committed_at.strftime("%I:%M%p - %d %b %y %Z") + result['committed_at_date'] = committed_at.strftime("%F") + result['committed_at_time'] = committed_at.strftime("%T") + + result['link'] = link + ulink = URI(link) + result['domain'] = "#{ulink.host}/#{ulink.path.split('/')[1]}/#{ulink.path.split('/')[2]}" + + result + end + end + end +end diff --git a/lib/onebox/engine/github_folder_onebox.rb b/lib/onebox/engine/github_folder_onebox.rb new file mode 100644 index 00000000000..a0c565f81b6 --- /dev/null +++ b/lib/onebox/engine/github_folder_onebox.rb @@ -0,0 +1,78 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GithubFolderOnebox + include Engine + include StandardEmbed + include LayoutSupport + + matches_regexp(/^https?:\/\/(?:www\.)?(?:(?:\w)+\.)?(github)\.com[\:\d]*(\/[^\/]+){2}/) + always_https + + def self.priority + # This engine should have lower priority than the other Github engines + 150 + end + + private + + def data + og = get_opengraph + + max_length = 250 + + display_path = extract_path(og.url, max_length) + display_description = clean_description(og.description, og.title, max_length) + + title = og.title + + fragment = Addressable::URI.parse(url).fragment + if fragment + fragment = Addressable::URI.unencode(fragment) + + if html_doc.css('.Box.md') + # For links to markdown docs + node = html_doc.css('a.anchor').find { |n| n['href'] == "##{fragment}" } + subtitle = node&.parent&.text + elsif html_doc.css('.Box.rdoc') + # For links to rdoc docs + node = html_doc.css('h3').find { |n| n['id'] == "user-content-#{fragment.downcase}" } + subtitle = node&.css('text()')&.first&.text + end + + title = "#{title} - #{subtitle}" if subtitle + end + + { + link: url, + image: og.image, + title: Onebox::Helpers.truncate(title, 250), + path: display_path, + description: display_description, + favicon: get_favicon + } + end + + def extract_path(root, max_length) + path = url.split('#')[0].split('?')[0] + path = path["#{root}/tree/".length..-1] + + return unless path + + path.length > max_length ? path[-max_length..-1] : path + end + + def clean_description(description, title, max_length) + return unless description + + desc_end = " - #{title}" + if description[-desc_end.length..-1] == desc_end + description = description[0...-desc_end.length] + end + + Onebox::Helpers.truncate(description, max_length) + end + end + end +end diff --git a/lib/onebox/engine/github_gist_onebox.rb b/lib/onebox/engine/github_gist_onebox.rb new file mode 100644 index 00000000000..21561d85ffb --- /dev/null +++ b/lib/onebox/engine/github_gist_onebox.rb @@ -0,0 +1,81 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GithubGistOnebox + include Engine + include LayoutSupport + include JSON + + MAX_FILES = 3 + + matches_regexp(/^http(?:s)?:\/\/gist\.(?:(?:\w)+\.)?(github)\.com(?:\/)?/) + always_https + + def url + "https://api.github.com/gists/#{match[:sha]}" + end + + private + + def data + @data ||= { + title: 'gist.github.com', + link: link, + gist_files: gist_files.take(MAX_FILES), + truncated_files?: truncated_files? + } + end + + def truncated_files? + gist_files.size > MAX_FILES + end + + def gist_files + return [] unless gist_api + + @gist_files ||= gist_api["files"].values.map do |file_json| + GistFile.new(file_json) + end + end + + def gist_api + @raw ||= raw.clone + rescue OpenURI::HTTPError + # The Gist API rate limit of 60 requests per hour was reached. + nil + end + + def match + @match ||= @url.match(%r{gist\.github\.com/([^/]+/)?(?[0-9a-f]+)}) + end + + class GistFile + attr_reader :filename + attr_reader :language + + MAX_LINES = 10 + + def initialize(json) + @json = json + @filename = @json["filename"] + @language = @json["language"] + end + + def content + lines.take(MAX_LINES).join("\n") + end + + def truncated? + lines.size > MAX_LINES + end + + private + + def lines + @lines ||= @json["content"].split("\n") + end + end + end + end +end diff --git a/lib/onebox/engine/github_issue_onebox.rb b/lib/onebox/engine/github_issue_onebox.rb new file mode 100644 index 00000000000..0bb26b70ac2 --- /dev/null +++ b/lib/onebox/engine/github_issue_onebox.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require_relative '../mixins/github_body' + +module Onebox + module Engine + class GithubIssueOnebox + #Author Lidlanca 2014 + include Engine + include LayoutSupport + include JSON + include Onebox::Mixins::GithubBody + + matches_regexp(/^https?:\/\/(?:www\.)?(?:(?:\w)+\.)?github\.com\/(?.+)\/(?.+)\/issues\/([[:digit:]]+)/) + always_https + + def url + m = match + "https://api.github.com/repos/#{m["org"]}/#{m["repo"]}/issues/#{m["item_id"]}" + end + + private + + def match + @match ||= @url.match(/^http(?:s)?:\/\/(?:www\.)?(?:(?:\w)+\.)?github\.com\/(?.+)\/(?.+)\/(?issues)\/(?[\d]+)/) + end + + def data + created_at = Time.parse(raw['created_at']) + closed_at = Time.parse(raw['closed_at']) if raw['closed_at'] + body, excerpt = compute_body(raw['body']) + ulink = URI(link) + + { + link: @url, + title: raw["title"], + body: body, + excerpt: excerpt, + labels: raw["labels"], + user: raw['user'], + created_at: created_at.strftime("%I:%M%p - %d %b %y %Z"), + created_at_date: created_at.strftime("%F"), + created_at_time: created_at.strftime("%T"), + closed_at: closed_at&.strftime("%I:%M%p - %d %b %y %Z"), + closed_at_date: closed_at&.strftime("%F"), + closed_at_time: closed_at&.strftime("%T"), + closed_by: raw['closed_by'], + avatar: "https://avatars1.githubusercontent.com/u/#{raw['user']['id']}?v=2&s=96", + domain: "#{ulink.host}/#{ulink.path.split('/')[1]}/#{ulink.path.split('/')[2]}", + } + end + end + end +end diff --git a/lib/onebox/engine/github_pull_request_onebox.rb b/lib/onebox/engine/github_pull_request_onebox.rb new file mode 100644 index 00000000000..090fddea66a --- /dev/null +++ b/lib/onebox/engine/github_pull_request_onebox.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +require_relative '../mixins/github_body' + +module Onebox + module Engine + class GithubPullRequestOnebox + include Engine + include LayoutSupport + include JSON + include Onebox::Mixins::GithubBody + + GITHUB_COMMENT_REGEX = /(\r\n)/ + + matches_regexp(/^https?:\/\/(?:www\.)?(?:(?:\w)+\.)?(github)\.com(?:\/)?(?:.)*\/pull/) + always_https + + def url + "https://api.github.com/repos/#{match[:owner]}/#{match[:repository]}/pulls/#{match[:number]}" + end + + private + + def match + @match ||= @url.match(%r{github\.com/(?[^/]+)/(?[^/]+)/pull/(?[^/]+)}) + end + + def data + result = raw.clone + result['link'] = link + + created_at = Time.parse(result['created_at']) + result['created_at'] = created_at.strftime("%I:%M%p - %d %b %y %Z") + result['created_at_date'] = created_at.strftime("%F") + result['created_at_time'] = created_at.strftime("%T") + + ulink = URI(link) + result['domain'] = "#{ulink.host}/#{ulink.path.split('/')[1]}/#{ulink.path.split('/')[2]}" + + result['body'], result['excerpt'] = compute_body(result['body']) + + result + end + end + end +end diff --git a/lib/onebox/engine/gitlab_blob_onebox.rb b/lib/onebox/engine/gitlab_blob_onebox.rb new file mode 100644 index 00000000000..d8ba1973381 --- /dev/null +++ b/lib/onebox/engine/gitlab_blob_onebox.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require_relative '../mixins/git_blob_onebox' + +module Onebox + module Engine + class GitlabBlobOnebox + def self.git_regexp + /^https?:\/\/(www\.)?gitlab\.com.*\/blob\// + end + + def self.onebox_name + "gitlabblob" + end + + include Onebox::Mixins::GitBlobOnebox + + def raw_regexp + /gitlab\.com\/(?[^\/]+)\/(?[^\/]+)\/blob\/(?[^\/]+)\/(?[^#]+)(#(L(?[^-]*)(-L(?.*))?))?/mi + end + + def raw_template(m) + "https://gitlab.com/#{m[:user]}/#{m[:repo]}/raw/#{m[:sha1]}/#{m[:file]}" + end + + def title + Sanitize.fragment(Onebox::Helpers.uri_unencode(link).sub(/^https?\:\/\/gitlab\.com\//, '')) + end + end + end +end diff --git a/lib/onebox/engine/google_calendar_onebox.rb b/lib/onebox/engine/google_calendar_onebox.rb new file mode 100644 index 00000000000..b666df4d080 --- /dev/null +++ b/lib/onebox/engine/google_calendar_onebox.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GoogleCalendarOnebox + include Engine + + matches_regexp(/^(https?:)?\/\/((www|calendar)\.google\.[\w.]{2,}|goo\.gl)\/calendar\/.+$/) + always_https + requires_iframe_origins "https://calendar.google.com" + + def to_html + url = @url.split('&').first + src = ::Onebox::Helpers.normalize_url_for_output(url) + "" + end + + def placeholder_html + <<-HTML +
+
+
+ +

Google Calendar

+
+
+
+ HTML + end + end + end +end diff --git a/lib/onebox/engine/google_docs_onebox.rb b/lib/onebox/engine/google_docs_onebox.rb new file mode 100644 index 00000000000..cc7872aebe4 --- /dev/null +++ b/lib/onebox/engine/google_docs_onebox.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GoogleDocsOnebox + include Engine + include StandardEmbed + include LayoutSupport + + SUPPORTED_ENDPOINTS = %w(spreadsheets document forms presentation) + SHORT_TYPES = { + spreadsheets: :sheets, + document: :docs, + presentation: :slides, + forms: :forms, + } + + matches_regexp(/^(https?:)?\/\/(docs\.google\.com)\/(?(#{SUPPORTED_ENDPOINTS.join('|')}))\/d\/((?[\w-]*)).+$/) + always_https + + private + + def data + og_data = get_opengraph + short_type = SHORT_TYPES[match[:endpoint].to_sym] + + description = if Onebox::Helpers.blank?(og_data.description) + "This #{short_type.to_s.chop.capitalize} is private" + else + Onebox::Helpers.truncate(og_data.description, 250) + end + + { + link: link, + title: og_data.title || "Google #{short_type.to_s.capitalize}", + description: description, + type: short_type + } + end + + def match + @match ||= @url.match(@@matcher) + end + end + end +end diff --git a/lib/onebox/engine/google_drive_onebox.rb b/lib/onebox/engine/google_drive_onebox.rb new file mode 100644 index 00000000000..82628228ea9 --- /dev/null +++ b/lib/onebox/engine/google_drive_onebox.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GoogleDriveOnebox + include Engine + include StandardEmbed + include LayoutSupport + + matches_regexp(/^(https?:)?\/\/(drive\.google\.com)\/file\/d\/(?[\w-]*)\/.+$/) + always_https + + protected + + def data + og_data = get_opengraph + title = og_data.title || "Google Drive" + title = "#{og_data.title} (video)" if og_data.type =~ /^video[\/\.]/ + description = og_data.description || "Google Drive file." + + { + link: link, + title: title, + description: Onebox::Helpers.truncate(description, 250), + image: og_data.image + } + end + end + end +end diff --git a/lib/onebox/engine/google_maps_onebox.rb b/lib/onebox/engine/google_maps_onebox.rb new file mode 100644 index 00000000000..bbf8e21c1be --- /dev/null +++ b/lib/onebox/engine/google_maps_onebox.rb @@ -0,0 +1,184 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GoogleMapsOnebox + include Engine + + class << self + def ===(other) + if other.kind_of? URI + @@matchers && @@matchers.any? { |m| other.to_s =~ m[:regexp] } + else + super + end + end + + private + + def matches_regexp(key, regexp) + (@@matchers ||= []) << { key: key, regexp: regexp } + end + end + + always_https + requires_iframe_origins("https://maps.google.com", "https://google.com") + + # Matches shortened Google Maps URLs + matches_regexp :short, %r"^(https?:)?//goo\.gl/maps/" + + # Matches URLs for custom-created maps + matches_regexp :custom, %r"^(?:https?:)?//www\.google(?:\.(?:\w{2,}))+/maps/d/(?:edit|viewer|embed)\?mid=.+$" + + # Matches URLs with streetview data + matches_regexp :streetview, %r"^(?:https?:)?//www\.google(?:\.(?:\w{2,}))+/maps[^@]+@(?-?[\d.]+),(?-?[\d.]+),(?:\d+)a,(?[\d.]+)y,(?[\d.]+)h,(?[\d.]+)t.+?data=.*?!1s(?[^!]{22})" + + # Matches "normal" Google Maps URLs with arbitrary data + matches_regexp :standard, %r"^(?:https?:)?//www\.google(?:\.(?:\w{2,}))+/maps" + + # Matches URLs for the old Google Maps domain which we occasionally get redirected to + matches_regexp :canonical, %r"^(?:https?:)?//maps\.google(?:\.(?:\w{2,}))+/maps\?" + + def initialize(url, timeout = nil) + super + resolve_url! + rescue Net::HTTPServerException, Timeout::Error, Net::HTTPError, Errno::ECONNREFUSED, RuntimeError => err + raise ArgumentError, "malformed url or unresolveable: #{err.message}" + end + + def streetview? + !!@streetview + end + + def to_html + "
" + end + + def placeholder_html + ::Onebox::Helpers.map_placeholder_html + end + + private + + def data + { link: url, title: url } + end + + def resolve_url! + @streetview = false + type, match = match_url + + # Resolve shortened URL, if necessary + if type == :short + follow_redirect! + type, match = match_url + end + + # Try to get the old-maps URI, it is far easier to embed. + if type == :standard + retry_count = 10 + while (retry_count -= 1) > 0 + follow_redirect! + type, match = match_url + break if type != :standard + sleep 0.1 + end + end + + case type + when :standard + # Fallback for map URLs that don't resolve into an easily embeddable old-style URI + # Roadmaps use a "z" zoomlevel, satellite maps use "m" the horizontal width in meters + # TODO: tilted satellite maps using "a,y,t" + match = @url.match(/@(?[\d.-]+),(?[\d.-]+),(?\d+)(?[mz])/) + raise "unexpected standard url #{@url}" unless match + zoom = match[:mz] == "z" ? match[:zoom] : Math.log2(57280048.0 / match[:zoom].to_f).round + location = "#{match[:lon]},#{match[:lat]}" + url = "https://maps.google.com/maps?ll=#{location}&z=#{zoom}&output=embed&dg=ntvb" + url += "&q=#{$1}" if match = @url.match(/\/place\/([^\/\?]+)/) + url += "&cid=#{($1 + $2).to_i(16)}" if @url.match(/!3m1!1s0x(\h{16}):0x(\h{16})/) + @url = url + @placeholder = "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap¢er=#{location}&zoom=#{zoom}&size=690x400&sensor=false" + + when :custom + url = @url.dup + @url = rewrite_custom_url(url, "embed") + @placeholder = rewrite_custom_url(url, "thumbnail") + @placeholder_height = @placeholder_width = 120 + + when :streetview + @streetview = true + panoid = match[:pano] + lon = match[:lon].to_f.to_s + lat = match[:lat].to_f.to_s + heading = match[:heading].to_f.round(4).to_s + pitch = (match[:pitch].to_f / 10.0).round(4).to_s + fov = (match[:zoom].to_f / 100.0).round(4).to_s + zoom = match[:zoom].to_f.round + @url = "https://www.google.com/maps/embed?pb=!3m2!2sen!4v0!6m8!1m7!1s#{panoid}!2m2!1d#{lon}!2d#{lat}!3f#{heading}!4f#{pitch}!5f#{fov}" + @placeholder = "https://maps.googleapis.com/maps/api/streetview?size=690x400&location=#{lon},#{lat}&pano=#{panoid}&fov=#{zoom}&heading=#{heading}&pitch=#{pitch}&sensor=false" + + when :canonical + query = URI::decode_www_form(uri.query).to_h + if !query.has_key?("ll") + raise ArgumentError, "canonical url lacks location argument" unless query.has_key?("sll") + query["ll"] = query["sll"] + @url += "&ll=#{query["sll"]}" + end + location = query["ll"] + if !query.has_key?("z") + raise ArgumentError, "canonical url has incomplete query arguments" unless query.has_key?("spn") || query.has_key?("sspn") + if !query.has_key?("spn") + query["spn"] = query["sspn"] + @url += "&spn=#{query["sspn"]}" + end + angle = query["spn"].split(",").first.to_f + zoom = (Math.log(690.0 * 360.0 / angle / 256.0) / Math.log(2)).round + else + zoom = query["z"] + end + @url = @url.sub('output=classic', 'output=embed') + @placeholder = "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&size=690x400&sensor=false¢er=#{location}&zoom=#{zoom}" + + else + raise "unexpected url type #{type.inspect}" + end + end + + def match_url + @@matchers.each do |matcher| + if m = matcher[:regexp].match(@url) + return matcher[:key], m + end + end + raise ArgumentError, "\"#{@url}\" does not match any known pattern" + end + + def rewrite_custom_url(url, target) + uri = URI(url) + uri.path = uri.path.sub(/(?<=^\/maps\/d\/)\w+$/, target) + uri.to_s + end + + def follow_redirect! + begin + http = Net::HTTP.start( + uri.host, + uri.port, + use_ssl: uri.scheme == 'https', + open_timeout: timeout, + read_timeout: timeout + ) + + response = http.head(uri.path) + raise "unexpected response code #{response.code}" unless %w(200 301 302).include?(response.code) + + @url = response.code == "200" ? uri.to_s : response["Location"] + @uri = URI(@url) + ensure + http.finish rescue nil + end + end + end + end +end diff --git a/lib/onebox/engine/google_photos_onebox.rb b/lib/onebox/engine/google_photos_onebox.rb new file mode 100644 index 00000000000..3a07b7df699 --- /dev/null +++ b/lib/onebox/engine/google_photos_onebox.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GooglePhotosOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(photos)\.(app\.goo\.gl|google\.com)/) + always_https + + def to_html + og = get_opengraph + return video_html(og) if og.video_secure_url + return album_html(og) if og.type == "google_photos:photo_album" + return image_html(og) if og.image + nil + end + + private + + def video_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + + <<-HTML + + HTML + end + + def album_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + album_title = og.description.nil? ? og.title : "[#{og.description}] #{og.title}" + + <<-HTML + + HTML + end + + def image_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + + <<-HTML + + Google Photos + + HTML + end + end + end +end diff --git a/lib/onebox/engine/google_play_app_onebox.rb b/lib/onebox/engine/google_play_app_onebox.rb new file mode 100644 index 00000000000..1e2557d4422 --- /dev/null +++ b/lib/onebox/engine/google_play_app_onebox.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class GooglePlayAppOnebox + include Engine + include LayoutSupport + include HTML + + DEFAULTS = { + MAX_DESCRIPTION_CHARS: 500 + } + + matches_regexp(/^https?:\/\/play\.(?:(?:\w)+\.)?(google)\.com(?:\/)?\/store\/apps\//) + always_https + + private + + def data + price = raw.css("meta[itemprop=price]").first["content"] rescue "Free" + { + link: link, + title: raw.css("meta[property='og:title']").first["content"].gsub(" - Apps on Google Play", ""), + image: ::Onebox::Helpers.normalize_url_for_output(raw.css("meta[property='og:image']").first["content"]), + description: raw.css("meta[name=description]").first["content"][0..DEFAULTS[:MAX_DESCRIPTION_CHARS]].chop + "...", + price: price == "0" ? "Free" : price + } + end + end + end +end diff --git a/lib/onebox/engine/html.rb b/lib/onebox/engine/html.rb new file mode 100644 index 00000000000..b0dfba21f17 --- /dev/null +++ b/lib/onebox/engine/html.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Onebox + module Engine + module HTML + private + + # Overwrite for any custom headers + def http_params + {} + end + + def raw + @raw ||= Onebox::Helpers.fetch_html_doc(url, http_params, body_cacher) + end + + def body_cacher + self.options&.[](:body_cacher) + end + + def html? + raw.respond_to(:css) + end + end + end +end diff --git a/lib/onebox/engine/image_onebox.rb b/lib/onebox/engine/image_onebox.rb new file mode 100644 index 00000000000..91d64f69da3 --- /dev/null +++ b/lib/onebox/engine/image_onebox.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class ImageOnebox + include Engine + + matches_regexp(/^(https?:)?\/\/.+\.(png|jpg|jpeg|gif|bmp|tif|tiff)(\?.*)?$/i) + + def always_https? + AllowlistedGenericOnebox.host_matches(uri, AllowlistedGenericOnebox.https_hosts) + end + + def to_html + # Fix Dropbox image links + if @url[/^https:\/\/www.dropbox.com\/s\//] + @url.sub!("https://www.dropbox.com", "https://dl.dropboxusercontent.com") + end + + escaped_url = ::Onebox::Helpers.normalize_url_for_output(@url) + <<-HTML + + + + HTML + end + end + end +end diff --git a/lib/onebox/engine/imgur_onebox.rb b/lib/onebox/engine/imgur_onebox.rb new file mode 100644 index 00000000000..26a90379dd1 --- /dev/null +++ b/lib/onebox/engine/imgur_onebox.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class ImgurOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(www\.)?imgur\.com/) + always_https + + def to_html + og = get_opengraph + return video_html(og) if !og.video_secure_url.nil? + return album_html(og) if is_album? + return image_html(og) if !og.image.nil? + nil + end + + private + + def video_html(og) + <<-HTML + + HTML + end + + def album_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + album_title = "[Album] #{og.title}" + + <<-HTML + + HTML + end + + def is_album? + response = Onebox::Helpers.fetch_response("https://api.imgur.com/oembed.json?url=#{url}") rescue "{}" + oembed_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response)) + imgur_data_id = Nokogiri::HTML(oembed_data[:html]).xpath("//blockquote").attr("data-id") + imgur_data_id.to_s[/a\//] + end + + def image_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + + <<-HTML + + Imgur + + HTML + end + end + end +end diff --git a/lib/onebox/engine/instagram_onebox.rb b/lib/onebox/engine/instagram_onebox.rb new file mode 100644 index 00000000000..21a8ae6c6ff --- /dev/null +++ b/lib/onebox/engine/instagram_onebox.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class InstagramOnebox + include Engine + include StandardEmbed + include LayoutSupport + + matches_regexp(/^https?:\/\/(?:www\.)?(?:instagram\.com|instagr\.am)\/?(?:.*)\/(?:p|tv)\/[a-zA-Z\d_-]+/) + always_https + + def clean_url + url.scan(/^https?:\/\/(?:www\.)?(?:instagram\.com|instagr\.am)\/?(?:.*)\/(?:p|tv)\/[a-zA-Z\d_-]+/).flatten.first + end + + def data + oembed = get_oembed + raise "No oEmbed data found. Ensure 'facebook_app_access_token' is valid" if oembed.data.empty? + + { + link: clean_url.gsub("/#{oembed.author_name}/", "/"), + title: "@#{oembed.author_name}", + image: oembed.thumbnail_url, + description: Onebox::Helpers.truncate(oembed.title, 250), + } + + end + + protected + + def access_token + (options[:facebook_app_access_token] || Onebox.options.facebook_app_access_token).to_s + end + + def get_oembed_url + if access_token != '' + "https://graph.facebook.com/v9.0/instagram_oembed?url=#{clean_url}&access_token=#{access_token}" + else + # The following is officially deprecated by Instagram, but works in some limited circumstances. + "https://api.instagram.com/oembed/?url=#{clean_url}" + end + end + end + end +end diff --git a/lib/onebox/engine/json.rb b/lib/onebox/engine/json.rb new file mode 100644 index 00000000000..261dc0309cf --- /dev/null +++ b/lib/onebox/engine/json.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Onebox + module Engine + module JSON + private + + def raw + @raw ||= ::MultiJson.load(URI.open(url, read_timeout: timeout)) + end + end + end +end diff --git a/lib/onebox/engine/kaltura_onebox.rb b/lib/onebox/engine/kaltura_onebox.rb new file mode 100644 index 00000000000..d94091a4f0a --- /dev/null +++ b/lib/onebox/engine/kaltura_onebox.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class KalturaOnebox + include Engine + include StandardEmbed + + always_https + matches_regexp(/^https?:\/\/[a-z0-9]+\.kaltura\.com\/id\/[a-zA-Z0-9]+/) + requires_iframe_origins "https://*.kaltura.com" + + def preview_html + og = get_opengraph + + <<~HTML + + HTML + end + + def to_html + og = get_opengraph + + <<~HTML + + HTML + end + end + end +end diff --git a/lib/onebox/engine/mixcloud_onebox.rb b/lib/onebox/engine/mixcloud_onebox.rb new file mode 100644 index 00000000000..a225ccf4bb7 --- /dev/null +++ b/lib/onebox/engine/mixcloud_onebox.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class MixcloudOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/www\.mixcloud\.com\//) + always_https + + def placeholder_html + oembed = get_oembed + "" + end + + def to_html + get_oembed.html + end + end + end +end diff --git a/lib/onebox/engine/opengraph_image.rb b/lib/onebox/engine/opengraph_image.rb new file mode 100644 index 00000000000..a104db36ffb --- /dev/null +++ b/lib/onebox/engine/opengraph_image.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Onebox + module Engine + module OpengraphImage + + def to_html + og = get_opengraph + "" + end + end + end +end diff --git a/lib/onebox/engine/pastebin_onebox.rb b/lib/onebox/engine/pastebin_onebox.rb new file mode 100644 index 00000000000..d9b26467f3c --- /dev/null +++ b/lib/onebox/engine/pastebin_onebox.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class PastebinOnebox + include Engine + include LayoutSupport + + MAX_LINES = 10 + + matches_regexp(/^http?:\/\/pastebin\.com/) + + private + + def data + @data ||= { + title: 'pastebin.com', + link: link, + content: content, + truncated?: truncated? + } + end + + def content + lines.take(MAX_LINES).join("\n") + end + + def truncated? + lines.size > MAX_LINES + end + + def lines + return @lines if defined?(@lines) + response = Onebox::Helpers.fetch_response("http://pastebin.com/raw/#{paste_key}", redirect_limit: 1) rescue "" + @lines = response.split("\n") + end + + def paste_key + regex = case uri + when /\/raw\// + /\/raw\/([^\/]+)/ + when /\/download\// + /\/download\/([^\/]+)/ + when /\/embed\// + /\/embed\/([^\/]+)/ + else + /\/([^\/]+)/ + end + + match = uri.path.match(regex) + match[1] if match && match[1] + end + end + end +end diff --git a/lib/onebox/engine/pdf_onebox.rb b/lib/onebox/engine/pdf_onebox.rb new file mode 100644 index 00000000000..2a8d46f0d4a --- /dev/null +++ b/lib/onebox/engine/pdf_onebox.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class PdfOnebox + include Engine + include LayoutSupport + + matches_regexp(/^(https?:)?\/\/.*\.pdf(\?.*)?$/i) + always_https + + private + + def data + begin + size = Onebox::Helpers.fetch_content_length(@url) + rescue + raise "Unable to read pdf file: #{@url}" + end + + { + link: link, + title: File.basename(uri.path), + filesize: size ? Onebox::Helpers.pretty_filesize(size.to_i) : nil, + } + end + end + end +end diff --git a/lib/onebox/engine/pubmed_onebox.rb b/lib/onebox/engine/pubmed_onebox.rb new file mode 100644 index 00000000000..1cf8a0ac9bb --- /dev/null +++ b/lib/onebox/engine/pubmed_onebox.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class PubmedOnebox + include Engine + include LayoutSupport + + matches_regexp(/^https?:\/\/(?:(?:\w)+\.)?(www.ncbi.nlm.nih)\.gov(?:\/)?\/pubmed\/\d+/) + + private + + def xml + return @xml if defined?(@xml) + doc = Nokogiri::XML(URI.open(URI.join(@url, "?report=xml&format=text"))) + pre = doc.xpath("//pre") + @xml = Nokogiri::XML("" + pre.text + "") + end + + def authors + initials = xml.css("Initials").map { |x| x.content } + last_names = xml.css("LastName").map { |x| x.content } + author_list = (initials.zip(last_names)).map { |i, l| i + " " + l } + if author_list.length > 1 then + author_list[-2] = author_list[-2] + " and " + author_list[-1] + author_list.pop + end + author_list.join(", ") + end + + def date + xml.css("PubDate") + .children + .map { |x| x.content } + .select { |s| !s.match(/^\s+$/) } + .map { |s| s.split } + .flatten + .sort + .reverse + .join(" ") # Reverse sort so month before year. + end + + def data + { + title: xml.css("ArticleTitle").text, + authors: authors, + journal: xml.css("Title").text, + abstract: xml.css("AbstractText").text, + date: date, + link: @url, + pmid: match[:pmid] + } + end + + def match + @match ||= @url.match(%r{www\.ncbi\.nlm\.nih\.gov/pubmed/(?[0-9]+)}) + end + end + end +end diff --git a/lib/onebox/engine/reddit_media_onebox.rb b/lib/onebox/engine/reddit_media_onebox.rb new file mode 100644 index 00000000000..c9d6cdcbff4 --- /dev/null +++ b/lib/onebox/engine/reddit_media_onebox.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class RedditMediaOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(www\.)?reddit\.com/) + + def to_html + if raw[:type] == "image" + <<-HTML + + HTML + elsif raw[:type] =~ /^video[\/\.]/ + <<-HTML + + HTML + else + html = Onebox::Engine::AllowlistedGenericOnebox.new(@url, @timeout).to_html + return if Onebox::Helpers.blank?(html) + html + end + end + end + end +end diff --git a/lib/onebox/engine/replit_onebox.rb b/lib/onebox/engine/replit_onebox.rb new file mode 100644 index 00000000000..5a4fcc01524 --- /dev/null +++ b/lib/onebox/engine/replit_onebox.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class ReplitOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/repl\.it\/.+/) + always_https + + def placeholder_html + oembed = get_oembed + + <<-HTML + + HTML + end + + def to_html + get_oembed.html + end + end + end +end diff --git a/lib/onebox/engine/simplecast_onebox.rb b/lib/onebox/engine/simplecast_onebox.rb new file mode 100644 index 00000000000..068c5301c8d --- /dev/null +++ b/lib/onebox/engine/simplecast_onebox.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class SimplecastOnebox + include Engine + include StandardEmbed + + matches_regexp(/https?:\/\/(.+)?simplecast.com\/(episodes|s)\/.*/) + always_https + requires_iframe_origins("https://embed.simplecast.com") + + def to_html + get_oembed.html + end + + def placeholder_html + oembed = get_oembed + return if Onebox::Helpers.blank?(oembed.thumbnail_url) + "" + end + + private + + def get_oembed_url + if id = url.scan(/([a-zA-Z0-9]*)\Z/).flatten.first + oembed_url = "https://simplecast.com/s/#{id}" + else + oembed_url = url + end + + "https://simplecast.com/oembed?url=#{oembed_url}" + end + end + end +end diff --git a/lib/onebox/engine/sketch_fab_onebox.rb b/lib/onebox/engine/sketch_fab_onebox.rb new file mode 100644 index 00000000000..e45f6f0cf34 --- /dev/null +++ b/lib/onebox/engine/sketch_fab_onebox.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class SketchFabOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/sketchfab\.com\/(?:models\/|3d-models\/(?:[^\/\s]+-)?)([a-z0-9]{32})/) + always_https + requires_iframe_origins("https://sketchfab.com") + + def to_html + og = get_opengraph + src = og.video_url.gsub("autostart=1", "") + + <<-HTML + + HTML + end + + def placeholder_html + "" + end + end + end +end diff --git a/lib/onebox/engine/slides_onebox.rb b/lib/onebox/engine/slides_onebox.rb new file mode 100644 index 00000000000..3681b2faf90 --- /dev/null +++ b/lib/onebox/engine/slides_onebox.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class SlidesOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/slides\.com\/[\p{Alnum}_\-]+\/[\p{Alnum}_\-]+$/) + requires_iframe_origins "https://slides.com" + + def to_html + <<-HTML + + HTML + end + + def placeholder_html + escaped_src = ::Onebox::Helpers.normalize_url_for_output(raw[:image]) + "" + end + end + end +end diff --git a/lib/onebox/engine/sound_cloud_onebox.rb b/lib/onebox/engine/sound_cloud_onebox.rb new file mode 100644 index 00000000000..c257932c2cd --- /dev/null +++ b/lib/onebox/engine/sound_cloud_onebox.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class SoundCloudOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/soundcloud\.com/) + requires_iframe_origins "https://w.soundcloud.com" + always_https + + def to_html + oembed = get_oembed + oembed.html.gsub('visual=true', 'visual=false') + end + + def placeholder_html + oembed = get_oembed + return if Onebox::Helpers.blank?(oembed.thumbnail_url) + "" + end + + protected + + def get_oembed_url + oembed_url = "https://soundcloud.com/oembed.json?url=#{url}" + oembed_url += "&maxheight=166" unless url["/sets/"] + oembed_url + end + end + end +end diff --git a/lib/onebox/engine/stack_exchange_onebox.rb b/lib/onebox/engine/stack_exchange_onebox.rb new file mode 100644 index 00000000000..c918ed93aac --- /dev/null +++ b/lib/onebox/engine/stack_exchange_onebox.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class StackExchangeOnebox + include Engine + include LayoutSupport + include JSON + + def self.domains + %w(stackexchange.com stackoverflow.com superuser.com serverfault.com askubuntu.com stackapps.com mathoverflow.net) + .map { |domain| Regexp.escape(domain) } + end + + matches_regexp(/^https?:\/\/(?:(?:(?\w*)\.)?(?\w*)\.)?(?#{domains.join('|')})\/((?:questions|q)\/(?\d*)(\/.*\/(?\d*))?|(a\/(?\d*)))/) + + def always_https? + uri.host.split('.').length <= 3 + end + + private + + def match + @match ||= @url.match(@@matcher) + end + + def url + domain = uri.host + question_id = match[:question_id] + answer_id = match[:answer_id2] || match[:answer_id1] + + if answer_id + "https://api.stackexchange.com/2.2/answers/#{answer_id}?site=#{domain}&filter=!.FjueITQdx6-Rq3Ue9PWG.QZ2WNdW" + else + "https://api.stackexchange.com/2.2/questions/#{question_id}?site=#{domain}&filter=!5-duuxrJa-iw9oVvOA(JNimB5VIisYwZgwcfNI" + end + end + + def data + return @data if defined?(@data) + + result = raw['items'][0] + if result + result['creation_date'] = + Time.at(result['creation_date'].to_i).strftime("%I:%M%p - %d %b %y %Z") + + result['tags'] = result['tags'].take(4).join(', ') + result['is_answer'] = result.key?('answer_id') + result['is_question'] = result.key?('question_id') + end + + @data = result + end + end + end +end diff --git a/lib/onebox/engine/standard_embed.rb b/lib/onebox/engine/standard_embed.rb new file mode 100644 index 00000000000..f19f060cb2d --- /dev/null +++ b/lib/onebox/engine/standard_embed.rb @@ -0,0 +1,145 @@ +# frozen_string_literal: true + +require "cgi" +require "onebox/open_graph" +require 'onebox/oembed' + +module Onebox + module Engine + module StandardEmbed + def self.oembed_providers + @@oembed_providers ||= {} + end + + def self.add_oembed_provider(regexp, endpoint) + oembed_providers[regexp] = endpoint + end + + def self.opengraph_providers + @@opengraph_providers ||= [] + end + + def self.add_opengraph_provider(regexp) + opengraph_providers << regexp + end + + # Some oembed providers (like meetup.com) don't provide links to themselves + add_oembed_provider(/www\.meetup\.com\//, 'http://api.meetup.com/oembed') + add_oembed_provider(/www\.mixcloud\.com\//, 'https://www.mixcloud.com/oembed/') + # In order to support Private Videos + add_oembed_provider(/vimeo\.com\//, 'https://vimeo.com/api/oembed.json') + # NYT requires login so use oembed only + add_oembed_provider(/nytimes\.com\//, 'https://www.nytimes.com/svc/oembed/json/') + + def always_https? + AllowlistedGenericOnebox.host_matches(uri, AllowlistedGenericOnebox.https_hosts) || super + end + + def raw + return @raw if defined?(@raw) + + og = get_opengraph + twitter = get_twitter + oembed = get_oembed + + @raw = {} + + og.data.each do |k, v| + next if k == "title_attr" + v = og.send(k) + @raw[k] ||= v unless v.nil? + end + + twitter.each { |k, v| @raw[k] ||= v unless Onebox::Helpers::blank?(v) } + + oembed.data.each do |k, v| + v = oembed.send(k) + @raw[k] ||= v unless v.nil? + end + + favicon = get_favicon + @raw["favicon".to_sym] = favicon unless Onebox::Helpers::blank?(favicon) + + @raw + end + + protected + + def html_doc + return @html_doc if defined?(@html_doc) + + headers = nil + headers = { 'Cookie' => options[:cookie] } if options[:cookie] + + @html_doc = Onebox::Helpers.fetch_html_doc(url, headers) + end + + def get_oembed + @oembed ||= Onebox::Oembed.new(get_json_response) + end + + def get_opengraph + @opengraph ||= ::Onebox::OpenGraph.new(html_doc) + end + + def get_twitter + return {} unless html_doc + + twitter = {} + + html_doc.css('meta').each do |m| + if (m["property"] && m["property"][/^twitter:(.+)$/i]) || (m["name"] && m["name"][/^twitter:(.+)$/i]) + value = (m["content"] || m["value"]).to_s + twitter[$1.tr('-:' , '_').to_sym] ||= value unless (Onebox::Helpers::blank?(value) || value == "0 minutes") + end + end + + twitter + end + + def get_favicon + return nil unless html_doc + + favicon = html_doc.css('link[rel="shortcut icon"], link[rel="icon shortcut"], link[rel="shortcut"], link[rel="icon"]').first + favicon = favicon.nil? ? nil : (favicon['href'].nil? ? nil : favicon['href'].strip) + + Onebox::Helpers::get_absolute_image_url(favicon, url) + end + + def get_json_response + oembed_url = get_oembed_url + + return "{}" if Onebox::Helpers.blank?(oembed_url) + + Onebox::Helpers.fetch_response(oembed_url) rescue "{}" + rescue Errno::ECONNREFUSED, Net::HTTPError, Net::HTTPFatalError, MultiJson::LoadError + "{}" + end + + def get_oembed_url + oembed_url = nil + + StandardEmbed.oembed_providers.each do |regexp, endpoint| + if url =~ regexp + oembed_url = "#{endpoint}?url=#{url}" + break + end + end + + if html_doc + if Onebox::Helpers.blank?(oembed_url) + application_json = html_doc.at("//link[@type='application/json+oembed']/@href") + oembed_url = application_json.value if application_json + end + + if Onebox::Helpers.blank?(oembed_url) + text_json = html_doc.at("//link[@type='text/json+oembed']/@href") + oembed_url ||= text_json.value if text_json + end + end + + oembed_url + end + end + end +end diff --git a/lib/onebox/engine/steam_store_onebox.rb b/lib/onebox/engine/steam_store_onebox.rb new file mode 100644 index 00000000000..e39ab843424 --- /dev/null +++ b/lib/onebox/engine/steam_store_onebox.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class SteamStoreOnebox + include Engine + include StandardEmbed + + always_https + matches_regexp(/^https?:\/\/store\.steampowered\.com\/app\/\d+/) + requires_iframe_origins "https://store.steampowered.com" + + def placeholder_html + og = get_opengraph + <<-HTML +
+
+

#{og.title}

+ +

#{og.description}

+
+
+ HTML + end + + def to_html + iframe_url = @url[/https?:\/\/store\.steampowered\.com\/app\/\d+/].gsub("/app/", "/widget/") + escaped_src = ::Onebox::Helpers.normalize_url_for_output(iframe_url) + + <<-HTML + + HTML + end + end + end +end diff --git a/lib/onebox/engine/trello_onebox.rb b/lib/onebox/engine/trello_onebox.rb new file mode 100644 index 00000000000..c74b39f01ac --- /dev/null +++ b/lib/onebox/engine/trello_onebox.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class TrelloOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https:\/\/trello\.com\/[bc]\/\W*/) + requires_iframe_origins "https://trello.com" + always_https + + def to_html + src = "https://trello.com/#{match[:type]}/#{match[:key]}.html" + height = match[:type] == 'b' ? 400 : 200 + + <<-HTML + + HTML + end + + def placeholder_html + ::Onebox::Helpers.generic_placeholder_html + end + + private + + def match + return @match if defined?(@match) + @match = @url.match(%{trello\.com/(?[^/]+)/(?[^/]+)/?\W*}) + end + end + end +end diff --git a/lib/onebox/engine/twitch_clips_onebox.rb b/lib/onebox/engine/twitch_clips_onebox.rb new file mode 100644 index 00000000000..8c4fb525b63 --- /dev/null +++ b/lib/onebox/engine/twitch_clips_onebox.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require_relative '../mixins/twitch_onebox' + +class Onebox::Engine::TwitchClipsOnebox + def self.twitch_regexp + /^https?:\/\/clips\.twitch\.tv\/([a-zA-Z0-9_]+\/?[^#\?\/]+)/ + end + + include Onebox::Mixins::TwitchOnebox + requires_iframe_origins "https://clips.twitch.tv" + + def query_params + "clip=#{twitch_id}" + end + + def base_url + "clips.twitch.tv/embed?" + end +end diff --git a/lib/onebox/engine/twitch_stream_onebox.rb b/lib/onebox/engine/twitch_stream_onebox.rb new file mode 100644 index 00000000000..f0e1d5d346c --- /dev/null +++ b/lib/onebox/engine/twitch_stream_onebox.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require_relative '../mixins/twitch_onebox' + +class Onebox::Engine::TwitchStreamOnebox + def self.twitch_regexp + /^https?:\/\/(?:www\.|go\.)?twitch\.tv\/(?!directory)([a-zA-Z0-9_]{4,25})$/ + end + + include Onebox::Mixins::TwitchOnebox + + def query_params + "channel=#{twitch_id}" + end +end diff --git a/lib/onebox/engine/twitch_video_onebox.rb b/lib/onebox/engine/twitch_video_onebox.rb new file mode 100644 index 00000000000..47fd2eefeb4 --- /dev/null +++ b/lib/onebox/engine/twitch_video_onebox.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require_relative '../mixins/twitch_onebox' + +class Onebox::Engine::TwitchVideoOnebox + def self.twitch_regexp + /^https?:\/\/(?:www\.)?twitch\.tv\/videos\/([0-9]+)/ + end + + include Onebox::Mixins::TwitchOnebox + + def query_params + "video=v#{twitch_id}" + end +end diff --git a/lib/onebox/engine/twitter_status_onebox.rb b/lib/onebox/engine/twitter_status_onebox.rb new file mode 100644 index 00000000000..31fffadeb95 --- /dev/null +++ b/lib/onebox/engine/twitter_status_onebox.rb @@ -0,0 +1,172 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class TwitterStatusOnebox + include Engine + include LayoutSupport + include HTML + + matches_regexp(/^https?:\/\/(mobile\.|www\.)?twitter\.com\/.+?\/status(es)?\/\d+(\/(video|photo)\/\d?+)?+(\/?\?.*)?\/?$/) + always_https + + def http_params + { 'User-Agent' => 'DiscourseBot/1.0' } + end + + private + + def get_twitter_data + response = Onebox::Helpers.fetch_response(url, headers: http_params) rescue nil + html = Nokogiri::HTML(response) + twitter_data = {} + html.css('meta').each do |m| + if m.attribute('property') && m.attribute('property').to_s.match(/^og:/i) + m_content = m.attribute('content').to_s.strip + m_property = m.attribute('property').to_s.gsub('og:', '') + twitter_data[m_property.to_sym] = m_content + end + end + twitter_data + end + + def match + @match ||= @url.match(%r{twitter\.com/.+?/status(es)?/(?\d+)}) + end + + def twitter_data + @twitter_data ||= get_twitter_data + end + + def client + Onebox.options.twitter_client + end + + def twitter_api_credentials_present? + client && !client.twitter_credentials_missing? + end + + def raw + if twitter_api_credentials_present? + @raw ||= OpenStruct.new(client.status(match[:id]).to_hash) + else + super + end + end + + def access(*keys) + keys.reduce(raw) do |memo, key| + next unless memo + memo[key] || memo[key.to_s] + end + end + + def tweet + if twitter_api_credentials_present? + client.prettify_tweet(raw)&.strip + else + twitter_data[:description].gsub(/“(.+?)”/im) { $1 } if twitter_data[:description] + end + end + + def timestamp + if twitter_api_credentials_present? + date = DateTime.strptime(access(:created_at), "%a %b %d %H:%M:%S %z %Y") + user_offset = access(:user, :utc_offset).to_i + offset = (user_offset >= 0 ? "+" : "-") + Time.at(user_offset.abs).gmtime.strftime("%H%M") + date.new_offset(offset).strftime("%-l:%M %p - %-d %b %Y") + else + attr_at_css(".tweet-timestamp", 'title') + end + end + + def title + if twitter_api_credentials_present? + "#{access(:user, :name)} (#{access(:user, :screen_name)})" + else + "#{attr_at_css('.tweet.permalink-tweet', 'data-name')} (#{attr_at_css('.tweet.permalink-tweet', 'data-screen-name')})" + end + end + + def avatar + if twitter_api_credentials_present? + access(:user, :profile_image_url_https).sub('normal', '400x400') + elsif twitter_data[:image] + twitter_data[:image] + end + end + + def likes + if twitter_api_credentials_present? + prettify_number(access(:favorite_count).to_i) + else + attr_at_css(".request-favorited-popup", 'data-compact-localized-count') + end + end + + def retweets + if twitter_api_credentials_present? + prettify_number(access(:retweet_count).to_i) + else + attr_at_css(".request-retweeted-popup", 'data-compact-localized-count') + end + end + + def quoted_full_name + if twitter_api_credentials_present? + access(:quoted_status, :user, :name) + else + raw.css('.QuoteTweet-fullname')[0]&.text + end + end + + def quoted_screen_name + if twitter_api_credentials_present? + access(:quoted_status, :user, :screen_name) + else + attr_at_css(".QuoteTweet-innerContainer", "data-screen-name") + end + end + + def quoted_tweet + if twitter_api_credentials_present? + access(:quoted_status, :full_text) + else + raw.css('.QuoteTweet-text')[0]&.text + end + end + + def quoted_link + if twitter_api_credentials_present? + "https://twitter.com/#{quoted_screen_name}/status/#{access(:quoted_status, :id)}" + else + "https://twitter.com#{attr_at_css(".QuoteTweet-innerContainer", "href")}" + end + end + + def prettify_number(count) + count > 0 ? client.prettify_number(count) : nil + end + + def attr_at_css(css_property, attribute_name) + raw.at_css(css_property)&.attr(attribute_name) + end + + def data + @data ||= { + link: link, + tweet: tweet, + timestamp: timestamp, + title: title, + avatar: avatar, + likes: likes, + retweets: retweets, + quoted_tweet: quoted_tweet, + quoted_full_name: quoted_full_name, + quoted_screen_name: quoted_screen_name, + quoted_link: quoted_link + } + end + end + end +end diff --git a/lib/onebox/engine/typeform_onebox.rb b/lib/onebox/engine/typeform_onebox.rb new file mode 100644 index 00000000000..184aff5e02e --- /dev/null +++ b/lib/onebox/engine/typeform_onebox.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class TypeformOnebox + include Engine + + matches_regexp(/^https?:\/\/[a-z0-9\-_]+\.typeform\.com\/to\/[a-zA-Z0-9]+/) + requires_iframe_origins "https://*.typeform.com" + always_https + + def to_html + typeform_src = build_typeform_src + + <<~HTML + + HTML + end + + def placeholder_html + ::Onebox::Helpers.generic_placeholder_html + end + + private + + def build_typeform_src + escaped_src = ::Onebox::Helpers.normalize_url_for_output(@url) + query_params = CGI::parse(URI::parse(escaped_src).query || '') + + return escaped_src if query_params.has_key?('typeform-embed') + + if query_params.empty? + escaped_src += '?' unless escaped_src.end_with?('?') + else + escaped_src += '&' + end + + escaped_src += 'typeform-embed=embed-widget' + end + end + end +end diff --git a/lib/onebox/engine/video_onebox.rb b/lib/onebox/engine/video_onebox.rb new file mode 100644 index 00000000000..1fd60543ff9 --- /dev/null +++ b/lib/onebox/engine/video_onebox.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class VideoOnebox + include Engine + + matches_regexp(/^(https?:)?\/\/.*\.(mov|mp4|webm|ogv)(\?.*)?$/i) + + def always_https? + AllowlistedGenericOnebox.host_matches(uri, AllowlistedGenericOnebox.https_hosts) + end + + def to_html + # Fix Dropbox image links + if @url[/^https:\/\/www.dropbox.com\/s\//] + @url.sub!("https://www.dropbox.com", "https://dl.dropboxusercontent.com") + end + + escaped_url = ::Onebox::Helpers.normalize_url_for_output(@url) + <<-HTML +
+ +
+ HTML + end + + def placeholder_html + ::Onebox::Helpers.video_placeholder_html + end + end + end +end diff --git a/lib/onebox/engine/vimeo_onebox.rb b/lib/onebox/engine/vimeo_onebox.rb new file mode 100644 index 00000000000..d35dc54b964 --- /dev/null +++ b/lib/onebox/engine/vimeo_onebox.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class VimeoOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(www\.)?vimeo\.com\/\d+/) + requires_iframe_origins "https://player.vimeo.com" + always_https + + WIDTH ||= 640 + HEIGHT ||= 360 + + def placeholder_html + ::Onebox::Helpers.video_placeholder_html + end + + def to_html + video_id = oembed_data[:video_id] + if video_id.nil? + # for private videos + video_id = uri.path[/\/(\d+)/, 1] + end + video_src = "https://player.vimeo.com/video/#{video_id}" + video_src = video_src.gsub('autoplay=1', '').chomp("?") + + <<-HTML + + HTML + end + + private + + def oembed_data + response = Onebox::Helpers.fetch_response("https://vimeo.com/api/oembed.json?url=#{url}") + @oembed_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response)) + rescue + "{}" + end + + def og_data + @og_data = get_opengraph + end + end + end +end diff --git a/lib/onebox/engine/wikimedia_onebox.rb b/lib/onebox/engine/wikimedia_onebox.rb new file mode 100644 index 00000000000..c222f58bf91 --- /dev/null +++ b/lib/onebox/engine/wikimedia_onebox.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class WikimediaOnebox + include Engine + include LayoutSupport + include JSON + + matches_regexp(/^https?:\/\/commons\.wikimedia\.org\/wiki\/(File:.+)/) + always_https + + def self.priority + # Wikimedia links end in an image extension. + # E.g. https://commons.wikimedia.org/wiki/File:Stones_members_montage2.jpg + # This engine should have priority over the generic ImageOnebox. + + 1 + end + + def url + "https://en.wikipedia.org/w/api.php?action=query&titles=#{match[:name]}&prop=imageinfo&iilimit=50&iiprop=timestamp|user|url&iiurlwidth=500&format=json" + end + + private + + def match + @match ||= @url.match(/^https?:\/\/commons\.wikimedia\.org\/wiki\/(?File:.+)/) + end + + def data + first_page = raw['query']['pages'].first[1] + + { + link: first_page['imageinfo'].first['descriptionurl'], + title: first_page['title'], + image: first_page['imageinfo'].first['url'], + thumbnail: first_page['imageinfo'].first['thumburl'] + } + end + end + end +end diff --git a/lib/onebox/engine/wikipedia_onebox.rb b/lib/onebox/engine/wikipedia_onebox.rb new file mode 100644 index 00000000000..e86a9014334 --- /dev/null +++ b/lib/onebox/engine/wikipedia_onebox.rb @@ -0,0 +1,97 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class WikipediaOnebox + include Engine + include LayoutSupport + include HTML + + matches_regexp(/^https?:\/\/.*\.wikipedia\.(com|org)/) + always_https + + private + + def data + paras = [] + text = "" + + # Detect section Hash in the url and retrive the related paragraphs. if no hash provided the first few paragraphs will be used + # Author Lidlanca + # Date 9/8/2014 + if (m_url_hash = @url.match(/#([^\/?]+)/)) # extract url hash + m_url_hash_name = m_url_hash[1] + end + + unless m_url_hash.nil? + section_header_title = raw.xpath("//span[@id='#{m_url_hash_name}']") + + if section_header_title.empty? + paras = raw.search("p") # default get all the paras + else + section_title_text = section_header_title.inner_text + section_header = section_header_title[0].parent # parent element of the section span element should be an

node + cur_element = section_header + + # p|text|div covers the general case. We assume presence of at least 1 P node. if section has no P node we may end up with a P node from the next section. + # div tag is commonly used as an assets wraper in an article section. often as the first element holding an image. + # ul support will imporve the output generated for a section with a list as the main content (for example: an Author Bibliography, A musician Discography, etc) + first_p_found = nil + while (((next_sibling = cur_element.next_sibling).name =~ /p|text|div|ul/) || first_p_found.nil?) do # from section header get the next sibling until it is a breaker tag + cur_element = next_sibling + if (cur_element.name == "p" || cur_element.name == "ul") #we treat a list as we detect a p to avoid showing + first_p_found = true + paras.push(cur_element) + end + end + end + else # no hash found in url + paras = raw.search("p") # default get all the paras + end + + unless paras.empty? + cnt = 0 + while text.length < Onebox::LayoutSupport.max_text && cnt <= 3 + break if cnt >= paras.size + text += " " unless cnt == 0 + + if paras[cnt].name == "ul" # Handle UL tag. Generate a textual ordered list (1.item | 2.item | 3.item). Unfortunately no newline allowed in output + li_index = 1 + list_items = [] + paras[cnt].children.css("li").each { |li| list_items.push "#{li_index}." + li.inner_text ; li_index += 1 } + paragraph = (list_items.join " |\n ")[0..Onebox::LayoutSupport.max_text] + else + paragraph = paras[cnt].inner_text[0..Onebox::LayoutSupport.max_text] + end + + paragraph.gsub!(/\[\d+\]/mi, "") + text += paragraph + cnt += 1 + end + end + + text = "#{text[0..Onebox::LayoutSupport.max_text]}..." if text.length > Onebox::LayoutSupport.max_text + + result = { + link: link, + title: raw.css("html body h1").inner_text + (section_title_text ? " | " + section_title_text : ""), #if a section sub title exists add it to the main article title + description: text + } + + img = raw.css(".image img") + + if img && img.size > 0 + img.each do |i| + src = i["src"] + if src !~ /Question_book/ + result[:image] = src + break + end + end + end + + result + end + end + end +end diff --git a/lib/onebox/engine/wistia_onebox.rb b/lib/onebox/engine/wistia_onebox.rb new file mode 100644 index 00000000000..4abb2ff7fc4 --- /dev/null +++ b/lib/onebox/engine/wistia_onebox.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class WistiaOnebox + include Engine + include StandardEmbed + + matches_regexp(/https?:\/\/(.+)?(wistia.com|wi.st)\/(medias|embed)\/.*/) + requires_iframe_origins("https://fast.wistia.com", "https://fast.wistia.net") + always_https + + def to_html + get_oembed.html + end + + def placeholder_html + oembed = get_oembed + return if Onebox::Helpers.blank?(oembed.thumbnail_url) + "" + end + + private + + def get_oembed_url + "https://fast.wistia.com/oembed?embedType=iframe&url=#{url}" + end + end + end +end diff --git a/lib/onebox/engine/xkcd_onebox.rb b/lib/onebox/engine/xkcd_onebox.rb new file mode 100644 index 00000000000..b16c25b098a --- /dev/null +++ b/lib/onebox/engine/xkcd_onebox.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class XkcdOnebox + include Engine + include LayoutSupport + include JSON + + matches_regexp(/^https?:\/\/(www\.)?(m\.)?xkcd\.com\/\d+/) + + def url + "https://xkcd.com/#{match[:comic_id]}/info.0.json" + end + + private + + def match + @match ||= @url.match(%{xkcd\.com/(?\\d+)}) + end + + def data + { + link: @url, + title: raw['safe_title'], + image: raw['img'], + description: raw['alt'] + } + end + end + end +end diff --git a/lib/onebox/engine/youku_onebox.rb b/lib/onebox/engine/youku_onebox.rb new file mode 100644 index 00000000000..2b9234fd931 --- /dev/null +++ b/lib/onebox/engine/youku_onebox.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class YoukuOnebox + include Engine + include HTML + + matches_regexp(/^(https?:\/\/)?([\da-z\.-]+)(youku.com\/)(.)+\/?$/) + requires_iframe_origins "https://player.youku.com" + + # Try to get the video ID. Works for URLs of the form: + # * http://v.youku.com/v_show/id_XNjM3MzAxNzc2.html + # * http://v.youku.com/v_show/id_XMTQ5MjgyMjMyOA==.html?from=y1.3-tech-index3-232-10183.89969-89963.3-1 + def video_id + match = uri.path.match(/\/v_show\/id_([a-zA-Z0-9_=\-]+)(\.html)?.*/) + match && match[1] + rescue + nil + end + + def to_html + <<~HTML + + HTML + end + end + end +end diff --git a/lib/onebox/engine/youtube_onebox.rb b/lib/onebox/engine/youtube_onebox.rb new file mode 100644 index 00000000000..81f822ce0bd --- /dev/null +++ b/lib/onebox/engine/youtube_onebox.rb @@ -0,0 +1,173 @@ +# frozen_string_literal: true + +module Onebox + module Engine + class YoutubeOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(?:www\.)?(?:m\.)?(?:youtube\.com|youtu\.be)\/.+$/) + requires_iframe_origins "https://www.youtube.com" + always_https + + WIDTH ||= 480 + HEIGHT ||= 360 + + def parse_embed_response + return unless video_id + return @parse_embed_response if defined?(@parse_embed_response) + + embed_url = "https://www.youtube.com/embed/#{video_id}" + @embed_doc ||= Onebox::Helpers.fetch_html_doc(embed_url) + + begin + script_tag = @embed_doc.xpath('//script').find { |tag| tag.to_s.include?('ytcfg.set') }.to_s + match = script_tag.to_s.match(/ytcfg\.set\((?.*)\)/) + + yt_json = ::JSON.parse(match[:json]) + renderer = ::JSON.parse(yt_json['PLAYER_VARS']['embedded_player_response'])['embedPreview']['thumbnailPreviewRenderer'] + + title = renderer['title']['runs'].first['text'] + + image = "https://img.youtube.com/vi/#{video_id}/hqdefault.jpg" + rescue + return + end + + @parse_embed_response = { image: image, title: title } + end + + def placeholder_html + if video_id || list_id + result = parse_embed_response + result ||= get_opengraph.data + + "" + else + to_html + end + end + + def to_html + if video_id + <<-HTML + + HTML + elsif list_id + <<-HTML + + HTML + else + # for channel pages + html = Onebox::Engine::AllowlistedGenericOnebox.new(@url, @timeout).to_html + return if Onebox::Helpers.blank?(html) + html.gsub!(/['"]\/\//, "https://") + html + end + end + + def video_title + @video_title ||= begin + result = parse_embed_response || get_opengraph.data + result[:title] + end + end + + private + + def video_id + @video_id ||= begin + # http://youtu.be/afyK1HSFfgw + if uri.host["youtu.be"] + id = uri.path[/\/([\w\-]+)/, 1] + return id if id + end + + # https://www.youtube.com/embed/vsF0K3Ou1v0 + if uri.path["/embed/"] + id = uri.path[/\/embed\/([\w\-]+)/, 1] + return id if id + end + + # https://www.youtube.com/watch?v=Z0UISCEe52Y + params['v'] + end + end + + def list_id + @list_id ||= params['list'] + end + + def embed_params + p = { 'feature' => 'oembed', 'wmode' => 'opaque' } + + p['list'] = list_id if list_id + + # Parse timestrings, and assign the result as a start= parameter + start = if params['start'] + params['start'] + elsif params['t'] + params['t'] + elsif uri.fragment && uri.fragment.start_with?('t=') + # referencing uri is safe here because any throws were already caught by video_id returning nil + # remove the t= from the start + uri.fragment[2..-1] + end + + p['start'] = parse_timestring(start) if start + p['end'] = parse_timestring params['end'] if params['end'] + + # Official workaround for looping videos + # https://developers.google.com/youtube/player_parameters#loop + # use params.include? so that you can just add "&loop" + if params.include?('loop') + p['loop'] = 1 + p['playlist'] = video_id + end + + # https://developers.google.com/youtube/player_parameters#rel + p['rel'] = 0 if params.include?('rel') + + # https://developers.google.com/youtube/player_parameters#enablejsapi + p['enablejsapi'] = params['enablejsapi'] if params.include?('enablejsapi') + + URI.encode_www_form(p) + end + + def parse_timestring(string) + if string =~ /(\d+h)?(\d+m)?(\d+s?)?/ + ($1.to_i * 3600) + ($2.to_i * 60) + $3.to_i + end + end + + def params + return {} unless uri.query + # This mapping is necessary because CGI.parse returns a hash of keys to arrays. + # And *that* is necessary because querystrings support arrays, so they + # force you to deal with it to avoid security issues that would pop up + # if one day it suddenly gave you an array. + # + # However, we aren't interested. Just take the first one. + @params ||= begin + p = {} + CGI.parse(uri.query).each { |k, v| p[k] = v.first } + p + end + rescue + {} + end + end + end +end diff --git a/lib/onebox/file_type_finder.rb b/lib/onebox/file_type_finder.rb new file mode 100644 index 00000000000..8ba4dc8c3f4 --- /dev/null +++ b/lib/onebox/file_type_finder.rb @@ -0,0 +1,70 @@ +# frozen_string_literal: true + +module Onebox + module FileTypeFinder + # In general, most of file extension names would be recognized + # by Highlights.js. However, some need to be checked in other + # ways, either because they just aren't included, because they + # are extensionless, or because they contain dots (they are + # multi-part). + # IMPORTANT: to prevent false positive matching, start all + # entries on this list with a "." + # + # For easy reference, keep these sorted in alphabetical order. + @long_file_types = { + ".bib" => "tex", + ".html.hbs" => "handlebars", + ".html.handlebars" => "handlebars", + ".latex" => "tex", + ".ru" => "rb", + ".simplecov" => "rb", # Not official, but seems commonly found + ".sty" => "tex" + } + + # Some extensionless files for which we know the type + # These should all be stored LOWERCASE, just for consistency. + # The ones that I know of also include the ".lock" fake extension. + # + # For easy reference, keep these sorted in alphabetical order, + # FIRST by their types and THEN by their names. + @extensionless_files = { + "cmake.in" => "cmake", + + "gruntfile" => "js", + "gulpfile" => "js", + + "artisan" => "php", + + "berksfile" => "rb", + "capfile" => "rb", + "cheffile" => "rb", + "cheffile.lock" => "rb", + "gemfile" => "rb", + "guardfile" => "rb", + "rakefile" => "rb", + "thorfile" => "rb", + "vagrantfile" => "rb", + + "boxfile" => "yaml" # Not currently (2014-11) in Highlight.js + } + + def self.from_file_name(file_name) + lower_name = file_name.downcase + # First check against the known lists of "special" files and extensions. + return @extensionless_files[lower_name] if @extensionless_files.has_key?(lower_name) + + @long_file_types.each { |extension, type| + return type if lower_name.end_with?(extension) + } + + # Otherwise, just split on the last ".", + # but add one so we don't return the "." itself. + dot_spot = lower_name.rindex(".") + return lower_name[(dot_spot + 1)..-1] if dot_spot + + # If we couldn't figure it out from the name, + # let the highlighter figure it out from the content. + "" + end + end +end diff --git a/lib/onebox/helpers.rb b/lib/onebox/helpers.rb new file mode 100644 index 00000000000..a3df3f2a042 --- /dev/null +++ b/lib/onebox/helpers.rb @@ -0,0 +1,252 @@ +# frozen_string_literal: true + +require "addressable" + +module Onebox + module Helpers + + class DownloadTooLarge < StandardError; end + + IGNORE_CANONICAL_DOMAINS ||= ['www.instagram.com', 'youtube.com'] + + def self.symbolize_keys(hash) + return {} if hash.nil? + + hash.inject({}) do |result, (key, value)| + new_key = key.is_a?(String) ? key.to_sym : key + new_value = value.is_a?(Hash) ? symbolize_keys(value) : value + result[new_key] = new_value + result + end + end + + def self.clean(html) + html.gsub(/<[^>]+>/, ' ').gsub(/\n/, '') + end + + def self.fetch_html_doc(url, headers = nil, body_cacher = nil) + response = (fetch_response(url, headers: headers, body_cacher: body_cacher) rescue nil) + doc = Nokogiri::HTML(response) + uri = Addressable::URI.parse(url) + + ignore_canonical_tag = doc.at('meta[property="og:ignore_canonical"]') + should_ignore_canonical = IGNORE_CANONICAL_DOMAINS.map { |hostname| uri.hostname.match?(hostname) }.any? + + unless (ignore_canonical_tag && ignore_canonical_tag['content'].to_s == 'true') || should_ignore_canonical + # prefer canonical link + canonical_link = doc.at('//link[@rel="canonical"]/@href') + canonical_uri = Addressable::URI.parse(canonical_link) + if canonical_link && "#{canonical_uri.host}#{canonical_uri.path}" != "#{uri.host}#{uri.path}" + response = (fetch_response(canonical_uri.to_s, headers: headers, body_cacher: body_cacher) rescue nil) + doc = Nokogiri::HTML(response) if response + end + end + + doc + end + + def self.fetch_response(location, redirect_limit: 5, domain: nil, headers: nil, body_cacher: nil) + redirect_limit = Onebox.options.redirect_limit if redirect_limit > Onebox.options.redirect_limit + + raise Net::HTTPError.new('HTTP redirect too deep', location) if redirect_limit == 0 + + uri = Addressable::URI.parse(location) + uri = Addressable::URI.join(domain, uri) if !uri.host + + use_body_cacher = body_cacher && body_cacher.respond_to?('fetch_cached_response_body') + if use_body_cacher + response_body = body_cacher.fetch_cached_response_body(uri.to_s) + + if response_body.present? + return response_body + end + end + + result = StringIO.new + Net::HTTP.start(uri.host, uri.port, use_ssl: uri.normalized_scheme == 'https') do |http| + http.open_timeout = Onebox.options.connect_timeout + http.read_timeout = Onebox.options.timeout + http.verify_mode = OpenSSL::SSL::VERIFY_NONE # Work around path building bugs + + headers ||= {} + + if Onebox.options.user_agent && !headers['User-Agent'] + headers['User-Agent'] = Onebox.options.user_agent + end + + request = Net::HTTP::Get.new(uri.request_uri, headers) + start_time = Time.now + + size_bytes = Onebox.options.max_download_kb * 1024 + http.request(request) do |response| + + if cookie = response.get_fields('set-cookie') + # HACK: If this breaks again in the future, use HTTP::CookieJar from gem 'http-cookie' + # See test: it "does not send cookies to the wrong domain" + redir_header = { 'Cookie' => cookie.join('; ') } + end + + redir_header = nil unless redir_header.is_a? Hash + + code = response.code.to_i + unless code === 200 + response.error! unless [301, 302, 303, 307, 308].include?(code) + + return fetch_response( + response['location'], + redirect_limit: redirect_limit - 1, + domain: "#{uri.scheme}://#{uri.host}", + headers: redir_header + ) + end + + response.read_body do |chunk| + result.write(chunk) + raise DownloadTooLarge.new if result.size > size_bytes + raise Timeout::Error.new if (Time.now - start_time) > Onebox.options.timeout + end + + if use_body_cacher && body_cacher.cache_response_body?(uri) + body_cacher.cache_response_body(uri.to_s, result.string) + end + + return result.string + end + end + end + + def self.fetch_content_length(location) + uri = URI(location) + + Net::HTTP.start(uri.host, uri.port, use_ssl: uri.is_a?(URI::HTTPS)) do |http| + http.open_timeout = Onebox.options.connect_timeout + http.read_timeout = Onebox.options.timeout + if uri.is_a?(URI::HTTPS) + http.use_ssl = true + http.verify_mode = OpenSSL::SSL::VERIFY_NONE + end + + http.request_head([uri.path, uri.query].join("?")) do |response| + code = response.code.to_i + unless code === 200 || Onebox::Helpers.blank?(response.content_length) + return nil + end + return response.content_length + end + end + end + + def self.pretty_filesize(size) + conv = [ 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB' ] + scale = 1024 + + ndx = 1 + if (size < 2 * (scale**ndx)) then + return "#{(size)} #{conv[ndx - 1]}" + end + size = size.to_f + [2, 3, 4, 5, 6, 7].each do |i| + if (size < 2 * (scale**i)) then + return "#{'%.2f' % (size / (scale**(i - 1)))} #{conv[i - 1]}" + end + end + ndx = 7 + "#{'%.2f' % (size / (scale**(ndx - 1)))} #{conv[ndx - 1]}" + end + + def self.click_to_scroll_div(width = 690, height = 400) + "
" + end + + def self.blank?(value) + if value.nil? + true + elsif String === value + value.empty? || !(/[[:^space:]]/ === value) + else + value.respond_to?(:empty?) ? !!value.empty? : !value + end + end + + def self.truncate(string, length = 50) + return string if string.nil? + string.size > length ? string[0...(string.rindex(" ", length) || length)] + "..." : string + end + + def self.get(meta, attr) + (meta && !blank?(meta[attr])) ? sanitize(meta[attr]) : nil + end + + def self.sanitize(value, length = 50) + return nil if blank?(value) + Sanitize.fragment(value).strip + end + + def self.normalize_url_for_output(url) + return "" unless url + url = url.dup + # expect properly encoded url, remove any unsafe chars + url.gsub!(' ', '%20') + url.gsub!("'", "'") + url.gsub!('"', """) + url.gsub!(/[^\w\-`.~:\/?#\[\]@!$&'\(\)*+,;=%\p{M}’]/, "") + + parsed = Addressable::URI.parse(url) + return "" unless parsed.host + + url + end + + def self.get_absolute_image_url(src, url) + if src && !!(src =~ /^\/\//) + uri = URI(url) + src = "#{uri.scheme}:#{src}" + elsif src && src.match(/^https?:\/\//i).nil? + uri = URI(url) + src = if !src.start_with?("/") && uri.path.present? + "#{uri.scheme}://#{uri.host.sub(/\/$/, '')}#{uri.path.sub(/\/$/, '')}/#{src.sub(/^\//, '')}" + else + "#{uri.scheme}://#{uri.host.sub(/\/$/, '')}/#{src.sub(/^\//, '')}" + end + end + src + end + + # Percent-encodes a URI string per RFC3986 - https://tools.ietf.org/html/rfc3986 + def self.uri_encode(url) + return "" unless url + + uri = Addressable::URI.parse(url) + + encoded_uri = Addressable::URI.new( + scheme: Addressable::URI.encode_component(uri.scheme, Addressable::URI::CharacterClasses::SCHEME), + authority: Addressable::URI.encode_component(uri.authority, Addressable::URI::CharacterClasses::AUTHORITY), + path: Addressable::URI.encode_component(uri.path, Addressable::URI::CharacterClasses::PATH + "\\%"), + query: Addressable::URI.encode_component(uri.query, "a-zA-Z0-9\\-\\.\\_\\~\\$\\&\\*\\,\\=\\:\\@\\?\\%"), + fragment: Addressable::URI.encode_component(uri.fragment, "a-zA-Z0-9\\-\\.\\_\\~\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=\\:\\/\\?\\%") + ) + + encoded_uri.to_s + end + + def self.uri_unencode(url) + Addressable::URI.unencode(url) + end + + def self.video_placeholder_html + "
" + end + + def self.audio_placeholder_html + "
" + end + + def self.map_placeholder_html + "
" + end + + def self.generic_placeholder_html + "
" + end + end +end diff --git a/lib/onebox/layout.rb b/lib/onebox/layout.rb new file mode 100644 index 00000000000..a697ba24f07 --- /dev/null +++ b/lib/onebox/layout.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require_relative "template_support" + +module Onebox + class Layout < Mustache + include TemplateSupport + + VERSION = "1.0.0" + + attr_reader :record + attr_reader :view + + def initialize(name, record) + @record = Onebox::Helpers.symbolize_keys(record) + + # Fix any relative paths + if @record[:image] && @record[:image] =~ /^\/[^\/]/ + @record[:image] = "#{uri.scheme}://#{uri.host}/#{@record[:image]}" + end + + @md5 = Digest::MD5.new + @view = View.new(name, @record) + @template_name = "_layout" + @template_path = load_paths.last + end + + def to_html + render(details) + end + + private + + def uri + @uri ||= URI(::Onebox::Helpers.normalize_url_for_output(record[:link])) + end + + def details + { + link: record[:link], + title: record[:title], + favicon: record[:favicon], + domain: record[:domain] || uri.host.to_s.sub(/^www\./, ''), + article_published_time: record[:article_published_time], + article_published_time_title: record[:article_published_time_title], + metadata_1_label: record[:metadata_1_label], + metadata_1_value: record[:metadata_1_value], + metadata_2_label: record[:metadata_2_label], + metadata_2_value: record[:metadata_2_value], + subname: view.template_name, + view: view.to_html + } + end + end +end diff --git a/lib/onebox/layout_support.rb b/lib/onebox/layout_support.rb new file mode 100644 index 00000000000..dcec7cf287c --- /dev/null +++ b/lib/onebox/layout_support.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Onebox + module LayoutSupport + + def self.max_text + 500 + end + + def layout + @layout ||= Layout.new(self.class.onebox_name, data) + end + + def to_html + layout.to_html + end + end +end diff --git a/lib/onebox/matcher.rb b/lib/onebox/matcher.rb new file mode 100644 index 00000000000..2e337904e7e --- /dev/null +++ b/lib/onebox/matcher.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module Onebox + class Matcher + def initialize(url, options = {}) + begin + @uri = URI(url) + rescue URI::InvalidURIError + end + + @options = options + end + + def ordered_engines + @ordered_engines ||= Engine.engines.sort_by do |e| + e.respond_to?(:priority) ? e.priority : 100 + end + end + + def oneboxed + return if @uri.nil? + return if @uri.port && !Onebox.options.allowed_ports.include?(@uri.port) + return if @uri.scheme && !Onebox.options.allowed_schemes.include?(@uri.scheme) + ordered_engines.find { |engine| engine === @uri && has_allowed_iframe_origins?(engine) } + end + + def has_allowed_iframe_origins?(engine) + allowed_regexes = @options[:allowed_iframe_regexes] || [] + engine.iframe_origins.all? { |o| allowed_regexes.any? { |r| o =~ r } } + end + end +end diff --git a/lib/onebox/mixins/git_blob_onebox.rb b/lib/onebox/mixins/git_blob_onebox.rb new file mode 100644 index 00000000000..cac7b2a7644 --- /dev/null +++ b/lib/onebox/mixins/git_blob_onebox.rb @@ -0,0 +1,228 @@ +# frozen_string_literal: true + +module Onebox + module Mixins + module GitBlobOnebox + def self.included(klass) + klass.include(Onebox::Engine) + klass.include(Onebox::LayoutSupport) + klass.matches_regexp(klass.git_regexp) + klass.always_https + klass.include(InstanceMethods) + end + + EXPAND_AFTER = 0b001 + EXPAND_BEFORE = 0b010 + EXPAND_NONE = 0b0 + + DEFAULTS = { + EXPAND_ONE_LINER: EXPAND_AFTER | EXPAND_BEFORE, #set how to expand a one liner. user EXPAND_NONE to disable expand + LINES_BEFORE: 10, + LINES_AFTER: 10, + SHOW_LINE_NUMBER: true, + MAX_LINES: 20, + MAX_CHARS: 5000 + } + + module InstanceMethods + def initialize(url, timeout = nil) + super url, timeout + # merge engine options from global Onebox.options interface + # self.options = Onebox.options["GithubBlobOnebox"] # self.class.name.split("::").last.to_s + # self.options = Onebox.options[self.class.name.split("::").last.to_s] #We can use this a more generic approach. extract the engine class name automatically + + self.options = DEFAULTS + + @selected_lines_array = nil + @selected_one_liner = 0 + @model_file = nil + + # Define constant after merging options set in Onebox.options + # We can define constant automatically. + options.each_pair do |constant_name, value| + constant_name_u = constant_name.to_s.upcase + if constant_name_u == constant_name.to_s + #define a constant if not already defined + unless self.class.const_defined? constant_name_u.to_sym + Onebox::Mixins::GitBlobOnebox.const_set constant_name_u.to_sym , options[constant_name_u.to_sym] + end + end + end + end + + private + + def calc_range(m, contents_lines_size) + truncated = false + from = /\d+/.match(m[:from]) #get numeric should only match a positive interger + to = /\d+/.match(m[:to]) #get numeric should only match a positive interger + range_provided = !(from.nil? && to.nil?) #true if "from" or "to" provided in URL + from = from.nil? ? 1 : from[0].to_i #if from not provided default to 1st line + to = to.nil? ? -1 : to[0].to_i #if to not provided default to undefiend to be handled later in the logic + + if to === -1 && range_provided #case "from" exists but no valid "to". aka ONE_LINER + one_liner = true + to = from + else + one_liner = false + end + + unless range_provided #case no range provided default to 1..MAX_LINES + from = 1 + to = MAX_LINES + truncated = true if contents_lines_size > MAX_LINES + #we can technically return here + end + + from, to = [from, to].sort #enforce valid range. [from < to] + from = 1 if from > contents_lines_size #if "from" out of TOP bound set to 1st line + to = contents_lines_size if to > contents_lines_size #if "to" is out of TOP bound set to last line. + + if one_liner + @selected_one_liner = from + if EXPAND_ONE_LINER != EXPAND_NONE + if (EXPAND_ONE_LINER & EXPAND_BEFORE != 0) # check if EXPAND_BEFORE flag is on + from = [1, from - LINES_BEFORE].max # make sure expand before does not go out of bound + end + + if (EXPAND_ONE_LINER & EXPAND_AFTER != 0) # check if EXPAND_FLAG flag is on + to = [to + LINES_AFTER, contents_lines_size].min # make sure expand after does not go out of bound + end + + from = contents_lines_size if from > contents_lines_size #if "from" is out of the content top bound + # to = contents_lines_size if to > contents_lines_size #if "to" is out of the content top bound + else + #no expand show the one liner solely + end + end + + if to - from > MAX_LINES && !one_liner #if exceed the MAX_LINES limit correct unless range was produced by one_liner which it expand setting will allow exceeding the line limit + truncated = true + to = from + MAX_LINES - 1 + end + + { + from: from, #calculated from + from_minus_one: from - 1, #used for getting currect ol>li numbering with css used in template + to: to, #calculated to + one_liner: one_liner, #boolean if a one-liner + selected_one_liner: @selected_one_liner, #if a one liner is provided we create a reference for it. + range_provided: range_provided, #boolean if range provided + truncated: truncated + } + end + + #minimize/compact leading indentation while preserving overall indentation + def removeLeadingIndentation(str) + min_space = 100 + a_lines = str.lines + a_lines.each do |l| + l = l.chomp("\n") # remove new line + m = l.match(/^[ ]*/) # find leading spaces 0 or more + unless m.nil? || l.size == m[0].size || l.size == 0 # no match | only spaces in line | empty line + m_str_length = m[0].size + if m_str_length <= 1 # minimum space is 1 or nothing we can break we found our minimum + min_space = m_str_length + break #stop iteration + end + if m_str_length < min_space + min_space = m_str_length + end + else + next # SKIP no match or line is only spaces + end + end + a_lines.each do |l| + re = Regexp.new "^[ ]{#{min_space}}" #match the minimum spaces of the line + l.gsub!(re, "") + end + a_lines.join + end + + def line_number_helper(lines, start, selected) + lines = removeLeadingIndentation(lines.join).lines # A little ineffeicent we could modify removeLeadingIndentation to accept array and return array, but for now it is only working with a string + hash_builder = [] + output_builder = [] + lines.map.with_index { |line, i| + lnum = (i.to_i + start) + hash_builder.push(line_number: lnum, data: line.gsub("\n", ""), selected: (selected == lnum) ? true : false) + output_builder.push "#{lnum}: #{line}" + } + { output: output_builder.join(), array: hash_builder } + end + + def raw + return @raw if defined?(@raw) + + m = @url.match(self.raw_regexp) + + if m + from = /\d+/.match(m[:from]) #get numeric should only match a positive interger + to = /\d+/.match(m[:to]) #get numeric should only match a positive interger + + @file = m[:file] + @lang = Onebox::FileTypeFinder.from_file_name(m[:file]) + + if @lang == "stl" && link.match?(/^https?:\/\/(www\.)?github\.com.*\/blob\//) + @model_file = @lang.dup + @raw = "https://render.githubusercontent.com/view/solid?url=" + self.raw_template(m) + else + contents = URI.open(self.raw_template(m), read_timeout: timeout).read + + contents_lines = contents.lines #get contents lines + contents_lines_size = contents_lines.size #get number of lines + + cr = calc_range(m, contents_lines_size) #calculate the range of lines for output + selected_one_liner = cr[:selected_one_liner] #if url is a one-liner calc_range will return it + from = cr[:from] + to = cr[:to] + @truncated = cr[:truncated] + range_provided = cr[:range_provided] + @cr_results = cr + + if range_provided #if a range provided (single line or more) + if SHOW_LINE_NUMBER + lines_result = line_number_helper(contents_lines[(from - 1)..(to - 1)], from, selected_one_liner) #print code with prefix line numbers in case range provided + contents = lines_result[:output] + @selected_lines_array = lines_result[:array] + else + contents = contents_lines[(from - 1)..(to - 1)].join() + end + + else + contents = contents_lines[(from - 1)..(to - 1)].join() + end + + if contents.length > MAX_CHARS #truncate content chars to limits + contents = contents[0..MAX_CHARS] + @truncated = true + end + + @raw = contents + end + end + end + + def data + @data ||= { + title: title, + link: link, + # IMPORTANT NOTE: All of the other class variables are populated + # as *side effects* of the `raw` method! They must all appear + # AFTER the call to `raw`! Don't get bitten by this like I did! + content: raw, + lang: "lang-#{@lang}", + lines: @selected_lines_array , + has_lines: !@selected_lines_array.nil?, + selected_one_liner: @selected_one_liner, + cr_results: @cr_results, + truncated: @truncated, + model_file: @model_file, + width: 480, + height: 360 + } + end + end + end + end +end diff --git a/lib/onebox/mixins/github_body.rb b/lib/onebox/mixins/github_body.rb new file mode 100644 index 00000000000..22ee13ab3f5 --- /dev/null +++ b/lib/onebox/mixins/github_body.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module Onebox + module Mixins + module GithubBody + def self.included(klass) + klass.include(Onebox::Engine) + klass.include(InstanceMethods) + end + + module InstanceMethods + GITHUB_COMMENT_REGEX = /(\r\n)/ + MAX_BODY_LENGTH = 80 + def compute_body(body) + body = body.dup + excerpt = nil + + body = (body || '').gsub(GITHUB_COMMENT_REGEX, '') + body = body.length > 0 ? body : nil + if body && body.length > MAX_BODY_LENGTH + excerpt = body[MAX_BODY_LENGTH..body.length].rstrip + body = body[0..MAX_BODY_LENGTH - 1] + end + + [body, excerpt] + end + end + end + end +end diff --git a/lib/onebox/mixins/twitch_onebox.rb b/lib/onebox/mixins/twitch_onebox.rb new file mode 100644 index 00000000000..ec3bc4a6742 --- /dev/null +++ b/lib/onebox/mixins/twitch_onebox.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Onebox + module Mixins + module TwitchOnebox + def self.included(klass) + klass.include(Onebox::Engine) + klass.matches_regexp(klass.twitch_regexp) + klass.requires_iframe_origins "https://player.twitch.tv" + klass.include(InstanceMethods) + end + + module InstanceMethods + def twitch_id + @url.match(self.class.twitch_regexp)[1] + end + + def base_url + "player.twitch.tv/?" + end + + def placeholder_html + ::Onebox::Helpers.video_placeholder_html + end + + def to_html + <<~HTML + + HTML + end + end + end + end +end diff --git a/lib/onebox/oembed.rb b/lib/onebox/oembed.rb new file mode 100644 index 00000000000..3068a161e23 --- /dev/null +++ b/lib/onebox/oembed.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Onebox + class Oembed < OpenGraph + + def initialize(response) + @data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response)) + + # never use oembed from WordPress 4.4 (it's broken) + data.delete(:html) if data[:html] && data[:html]["wp-embedded-content"] + end + + def html + get(:html, nil, false) + end + end +end diff --git a/lib/onebox/open_graph.rb b/lib/onebox/open_graph.rb new file mode 100644 index 00000000000..f78e3d088da --- /dev/null +++ b/lib/onebox/open_graph.rb @@ -0,0 +1,93 @@ +# frozen_string_literal: true + +module Onebox + class OpenGraph + + attr_reader :data + + def initialize(doc) + @data = extract(doc) + end + + def title + get(:title, 80) + end + + def title_attr + !title.nil? ? "title='#{title}'" : "" + end + + def secure_image_url + secure_url = URI(get(:image)) + secure_url.scheme = 'https' + secure_url.to_s + end + + def method_missing(attr, *args, &block) + value = get(attr, *args) + + return nil if Onebox::Helpers::blank?(value) + + method_name = attr.to_s + if method_name.end_with?(*integer_suffixes) + value.to_i + elsif method_name.end_with?(*url_suffixes) + result = Onebox::Helpers.normalize_url_for_output(value) + result unless Onebox::Helpers::blank?(result) + else + value + end + end + + def get(attr, length = nil, sanitize = true) + return nil if Onebox::Helpers::blank?(data) + + value = data[attr] + + return nil if Onebox::Helpers::blank?(value) + + value = html_entities.decode(value) + value = Sanitize.fragment(value) if sanitize + value.strip! + value = Onebox::Helpers.truncate(value, length) unless length.nil? + + value + end + + private + + def integer_suffixes + ['width', 'height'] + end + + def url_suffixes + ['url', 'image', 'video'] + end + + def html_entities + @html_entities ||= HTMLEntities.new + end + + def extract(doc) + return {} if Onebox::Helpers::blank?(doc) + + data = {} + + doc.css('meta').each do |m| + if (m["property"] && m["property"][/^(?:og|article|product):(.+)$/i]) || (m["name"] && m["name"][/^(?:og|article|product):(.+)$/i]) + value = (m["content"] || m["value"]).to_s + data[$1.tr('-:', '_').to_sym] ||= value unless Onebox::Helpers::blank?(value) + end + end + + # Attempt to retrieve the title from the meta tag + title_element = doc.at_css('title') + if title_element && title_element.text + data[:title] ||= title_element.text unless Onebox::Helpers.blank?(title_element.text) + end + + data + end + + end +end diff --git a/lib/onebox/preview.rb b/lib/onebox/preview.rb new file mode 100644 index 00000000000..ada48e1b749 --- /dev/null +++ b/lib/onebox/preview.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true + +module Onebox + class Preview + # see https://bugs.ruby-lang.org/issues/14688 + client_exception = defined?(Net::HTTPClientException) ? Net::HTTPClientException : Net::HTTPServerException + WEB_EXCEPTIONS ||= [client_exception, OpenURI::HTTPError, Timeout::Error, Net::HTTPError, Errno::ECONNREFUSED] + + def initialize(url, options = Onebox.options) + @url = url + @options = options.dup + + allowed_origins = @options[:allowed_iframe_origins] || Onebox::Engine.all_iframe_origins + @options[:allowed_iframe_regexes] = Engine.origins_to_regexes(allowed_origins) + + @engine_class = Matcher.new(@url, @options).oneboxed + end + + def to_s + return "" unless engine + sanitize process_html engine_html + rescue *WEB_EXCEPTIONS + "" + end + + def placeholder_html + return "" unless engine + sanitize process_html engine.placeholder_html + rescue *WEB_EXCEPTIONS + "" + end + + def errors + return {} unless engine + engine.errors + end + + def data + return {} unless engine + engine.data + end + + def options + OpenStruct.new(@options) + end + + private + + def engine_html + engine.to_html + end + + def process_html(html) + return "" unless html + + if @options[:max_width] + doc = Nokogiri::HTML5::fragment(html) + if doc + doc.css('[width]').each do |e| + width = e['width'].to_i + + if width > @options[:max_width] + height = e['height'].to_i + if (height > 0) + ratio = (height.to_f / width.to_f) + e['height'] = (@options[:max_width] * ratio).floor + end + e['width'] = @options[:max_width] + end + end + return doc.to_html + end + end + + html + end + + def sanitize(html) + config = @options[:sanitize_config] || Sanitize::Config::ONEBOX + config = config.merge(allowed_iframe_regexes: @options[:allowed_iframe_regexes]) + + Sanitize.fragment(html, config) + end + + def engine + return nil unless @engine_class + return @engine if defined?(@engine) + + @engine = @engine_class.new(@url) + @engine.options = @options + @engine + end + + class InvalidURI < StandardError; end + end +end diff --git a/lib/onebox/sanitize_config.rb b/lib/onebox/sanitize_config.rb new file mode 100644 index 00000000000..59cb48e0408 --- /dev/null +++ b/lib/onebox/sanitize_config.rb @@ -0,0 +1,72 @@ +# frozen_string_literal: true + +class Sanitize + module Config + + HTTP_PROTOCOLS ||= ['http', 'https', :relative].freeze + + ONEBOX ||= freeze_config merge(RELAXED, + elements: RELAXED[:elements] + %w[audio details embed iframe source video svg path], + + attributes: { + 'a' => RELAXED[:attributes]['a'] + %w(target), + 'audio' => %w[controls controlslist], + 'embed' => %w[height src type width], + 'iframe' => %w[allowfullscreen frameborder height scrolling src width data-original-href data-unsanitized-src], + 'source' => %w[src type], + 'video' => %w[controls height loop width autoplay muted poster controlslist playsinline], + 'path' => %w[d], + 'svg' => ['aria-hidden', 'width', 'height', 'viewbox'], + 'div' => [:data], # any data-* attributes, + 'span' => [:data], # any data-* attributes + }, + + add_attributes: { + 'iframe' => { + 'seamless' => 'seamless', + 'sandbox' => 'allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox' \ + ' allow-presentation', + } + }, + + transformers: (RELAXED[:transformers] || []) + [ + lambda do |env| + next unless env[:node_name] == 'a' + a_tag = env[:node] + a_tag['href'] ||= '#' + if a_tag['href'] =~ %r{^(?:[a-z]+:)?//} + a_tag['rel'] = 'nofollow ugc noopener' + else + a_tag.remove_attribute('target') + end + end, + + lambda do |env| + next unless env[:node_name] == 'iframe' + + iframe = env[:node] + allowed_regexes = env[:config][:allowed_iframe_regexes] || [/.*/] + + allowed = allowed_regexes.any? { |r| iframe["src"] =~ r } + + if !allowed + # add a data attribute with the blocked src. This is not required + # but makes it much easier to troubleshoot onebox issues + iframe["data-unsanitized-src"] = iframe["src"] + iframe.remove_attribute("src") + end + end + ], + + protocols: { + 'embed' => { 'src' => HTTP_PROTOCOLS }, + 'iframe' => { 'src' => HTTP_PROTOCOLS }, + 'source' => { 'src' => HTTP_PROTOCOLS }, + }, + + css: { + properties: RELAXED[:css][:properties] + %w[--aspect-ratio] + } + ) + end +end diff --git a/lib/onebox/status_check.rb b/lib/onebox/status_check.rb new file mode 100644 index 00000000000..73b3bca24e6 --- /dev/null +++ b/lib/onebox/status_check.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Onebox + class StatusCheck + def initialize(url, options = Onebox.options) + @url = url + @options = options + @status = -1 + end + + def ok? + status > 199 && status < 300 + end + + def status + check if @status == -1 + @status + end + + def human_status + case status + when 0 + :connection_error + when 200..299 + :success + when 400..499 + :client_error + when 500..599 + :server_error + else + :unknown_error + end + end + + private + + def check + res = URI.open(@url, read_timeout: (@options.timeout || Onebox.options.timeout)) + @status = res.status.first.to_i + rescue OpenURI::HTTPError => e + @status = e.io.status.first.to_i + rescue Timeout::Error, Errno::ECONNREFUSED, Net::HTTPError + @status = 0 + end + end +end diff --git a/lib/onebox/template_support.rb b/lib/onebox/template_support.rb new file mode 100644 index 00000000000..4e09d41103e --- /dev/null +++ b/lib/onebox/template_support.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Onebox + module TemplateSupport + def load_paths + Onebox.options.load_paths.select(&method(:template?)) + end + + def template?(path) + File.exist?(File.join(path, "#{template_name}.#{template_extension}")) + end + end +end diff --git a/lib/onebox/templates/_layout.mustache b/lib/onebox/templates/_layout.mustache new file mode 100644 index 00000000000..9075319f891 --- /dev/null +++ b/lib/onebox/templates/_layout.mustache @@ -0,0 +1,25 @@ + diff --git a/lib/onebox/templates/allowlistedgeneric.mustache b/lib/onebox/templates/allowlistedgeneric.mustache new file mode 100644 index 00000000000..abc700be933 --- /dev/null +++ b/lib/onebox/templates/allowlistedgeneric.mustache @@ -0,0 +1,16 @@ +{{#image}}{{/image}} + +

{{title}}

+ +{{#description}} +

{{description}}

+{{/description}} + +{{#data_1}} +

+ {{label_1}}: {{data_1}} + {{#data_2}} + {{label_2}}: {{data_2}} + {{/data_2}} +

+{{/data_1}} diff --git a/lib/onebox/templates/amazon.mustache b/lib/onebox/templates/amazon.mustache new file mode 100644 index 00000000000..e5a3c61703d --- /dev/null +++ b/lib/onebox/templates/amazon.mustache @@ -0,0 +1,15 @@ +{{#image}}{{/image}} + +

{{title}}

+ +{{#by_info}}{{by_info}}{{/by_info}} + +

{{description}}

+ +

+ {{#rating}}{{rating}}{{/rating}} + {{#isbn_asin}}{{isbn_asin_text}}: {{isbn_asin}}, {{/isbn_asin}} + {{#publisher}}{{publisher}}, {{/publisher}} + {{#published}}{{published}}{{/published}} + {{#price}}{{price}}{{/price}} +

diff --git a/lib/onebox/templates/github/github_body.mustache b/lib/onebox/templates/github/github_body.mustache new file mode 100644 index 00000000000..dae9ba142e0 --- /dev/null +++ b/lib/onebox/templates/github/github_body.mustache @@ -0,0 +1,5 @@ +{{#body}} +
+

{{body}}{{#excerpt}}{{/excerpt}}{{#excerpt}}{{/excerpt}}

+
+{{/body}} diff --git a/lib/onebox/templates/githubblob.mustache b/lib/onebox/templates/githubblob.mustache new file mode 100644 index 00000000000..810c9ce6622 --- /dev/null +++ b/lib/onebox/templates/githubblob.mustache @@ -0,0 +1,54 @@ +

{{title}}

+ +{{^has_lines}} + {{#model_file}} + + {{/model_file}} + + {{^model_file}} +
{{content}}
+ {{/model_file}} +{{/has_lines}} + +{{#has_lines}} + {{! This is a template comment | Sample rules for this box + + }} + +
+    
+      
    + {{#lines}} + {{data}} + {{/lines}} +
+
+
+{{/has_lines}} + +{{#truncated}} + This file has been truncated. show original +{{/truncated}} diff --git a/lib/onebox/templates/githubcommit.mustache b/lib/onebox/templates/githubcommit.mustache new file mode 100644 index 00000000000..b9d15cb76f0 --- /dev/null +++ b/lib/onebox/templates/githubcommit.mustache @@ -0,0 +1,33 @@ +
+
+ +
+ +
+

+ {{title}} +

+ +
+
+ committed {{committed_at}} +
+ + + + +
+
+
+ +{{> github/github_body}} diff --git a/lib/onebox/templates/githubfolder.mustache b/lib/onebox/templates/githubfolder.mustache new file mode 100644 index 00000000000..cac5d382ca0 --- /dev/null +++ b/lib/onebox/templates/githubfolder.mustache @@ -0,0 +1,11 @@ +{{#image}}{{/image}} + +

{{title}}

+ +{{#path}} +

{{path}}

+{{/path}} + +{{#description}} +

{{description}}

+{{/description}} diff --git a/lib/onebox/templates/githubgist.mustache b/lib/onebox/templates/githubgist.mustache new file mode 100644 index 00000000000..eaad9530081 --- /dev/null +++ b/lib/onebox/templates/githubgist.mustache @@ -0,0 +1,15 @@ +

{{link}}

+ +{{#gist_files}} +
{{filename}}
+
{{content}}
+ {{#truncated?}} + This file has been truncated. show original + {{/truncated?}} +{{/gist_files}} + +

+ {{#truncated_files?}} + There are more than three files. show original + {{/truncated_files?}} +

diff --git a/lib/onebox/templates/githubissue.mustache b/lib/onebox/templates/githubissue.mustache new file mode 100644 index 00000000000..f8766736b34 --- /dev/null +++ b/lib/onebox/templates/githubissue.mustache @@ -0,0 +1,38 @@ +
+
+ +
+ +
+

+ {{title}} +

+ +
+
+ opened {{created_at}} +
+ + {{#closed_at}} +
+ closed {{closed_at}} +
+ {{/closed_at}} + + +
+ +
+ {{#labels}} + {{name}} + {{/labels}} +
+
+
+ +{{> github/github_body}} diff --git a/lib/onebox/templates/githubpullrequest.mustache b/lib/onebox/templates/githubpullrequest.mustache new file mode 100644 index 00000000000..81eabb41afe --- /dev/null +++ b/lib/onebox/templates/githubpullrequest.mustache @@ -0,0 +1,37 @@ +
+
+ +
+ +
+

+ {{title}} +

+ +
+ {{base.label}}{{head.label}} +
+ +
+
+ opened {{created_at}} +
+ + + + +
+
+
+ +{{> github/github_body}} diff --git a/lib/onebox/templates/gitlabblob.mustache b/lib/onebox/templates/gitlabblob.mustache new file mode 100644 index 00000000000..a24ffdfb4c6 --- /dev/null +++ b/lib/onebox/templates/gitlabblob.mustache @@ -0,0 +1,21 @@ +

{{title}}

+ +{{^has_lines}} +
{{content}}
+{{/has_lines}} + +{{#has_lines}} +
+    
+      
    + {{#lines}} + {{data}} + {{/lines}} +
+
+
+{{/has_lines}} + +{{#truncated}} + This file has been truncated. show original +{{/truncated}} diff --git a/lib/onebox/templates/googledocs.mustache b/lib/onebox/templates/googledocs.mustache new file mode 100644 index 00000000000..bc0f598a57a --- /dev/null +++ b/lib/onebox/templates/googledocs.mustache @@ -0,0 +1,5 @@ + + +

{{title}}

+ +

{{description}}

diff --git a/lib/onebox/templates/googledrive.mustache b/lib/onebox/templates/googledrive.mustache new file mode 100644 index 00000000000..09159143b74 --- /dev/null +++ b/lib/onebox/templates/googledrive.mustache @@ -0,0 +1,9 @@ +{{^image}} + +{{/image}} + +{{#image}}{{/image}} + +

{{title}}

+ +

{{description}}

diff --git a/lib/onebox/templates/googleplayapp.mustache b/lib/onebox/templates/googleplayapp.mustache new file mode 100644 index 00000000000..5958430bc25 --- /dev/null +++ b/lib/onebox/templates/googleplayapp.mustache @@ -0,0 +1,5 @@ +

{{title}}

+ + +

{{description}}

+{{price}} diff --git a/lib/onebox/templates/instagram.mustache b/lib/onebox/templates/instagram.mustache new file mode 100644 index 00000000000..3f933b7cbfa --- /dev/null +++ b/lib/onebox/templates/instagram.mustache @@ -0,0 +1,13 @@ +

{{title}}

+ +{{#image}} +
+ + + +
+{{/image}} + +{{#description}} +
{{description}}
+{{/description}} diff --git a/lib/onebox/templates/pastebin.mustache b/lib/onebox/templates/pastebin.mustache new file mode 100644 index 00000000000..236b8d7b0a3 --- /dev/null +++ b/lib/onebox/templates/pastebin.mustache @@ -0,0 +1,7 @@ +

{{link}}

+ +
{{content}}
+ +{{#truncated?}} + This paste has been truncated. show original +{{/truncated?}} diff --git a/lib/onebox/templates/pdf.mustache b/lib/onebox/templates/pdf.mustache new file mode 100644 index 00000000000..cc0b9490720 --- /dev/null +++ b/lib/onebox/templates/pdf.mustache @@ -0,0 +1,7 @@ + + +

{{title}}

+ +{{#filesize}} +

{{filesize}}

+{{/filesize}} diff --git a/lib/onebox/templates/pubmed.mustache b/lib/onebox/templates/pubmed.mustache new file mode 100644 index 00000000000..72a593e3b49 --- /dev/null +++ b/lib/onebox/templates/pubmed.mustache @@ -0,0 +1,12 @@ +

+ {{title}} +

+ +
+ {{authors}}, + {{journal}}, {{date}} +
+ +

+ {{abstract}} +

diff --git a/lib/onebox/templates/stackexchange.mustache b/lib/onebox/templates/stackexchange.mustache new file mode 100644 index 00000000000..59bf8812449 --- /dev/null +++ b/lib/onebox/templates/stackexchange.mustache @@ -0,0 +1,22 @@ +{{#owner.profile_image}} + + {{owner.display_name}} + +{{/owner.profile_image}} + +

+ {{{title}}} +

+ +
+ {{tags}} +
+ +
+ {{#is_question}}asked by{{/is_question}} + {{#is_answer}}answered by{{/is_answer}} + + {{owner.display_name}} + + on {{creation_date}} +
diff --git a/lib/onebox/templates/twitterstatus.mustache b/lib/onebox/templates/twitterstatus.mustache new file mode 100644 index 00000000000..67f1b60c4ea --- /dev/null +++ b/lib/onebox/templates/twitterstatus.mustache @@ -0,0 +1,38 @@ +{{#avatar}}{{/avatar}} + +

{{title}}

+ +
+ {{{tweet}}} + {{#quoted_tweet}} + + {{/quoted_tweet}} +
+ +
+ {{timestamp}} + + {{#likes}} + + {{/likes}} + + {{#retweets}} + + + {{retweets}} + + {{/retweets}} +
diff --git a/lib/onebox/templates/wikimedia.mustache b/lib/onebox/templates/wikimedia.mustache new file mode 100644 index 00000000000..4b1ab487c0e --- /dev/null +++ b/lib/onebox/templates/wikimedia.mustache @@ -0,0 +1,3 @@ +{{#image}}{{/image}} + +

{{title}}

diff --git a/lib/onebox/templates/wikipedia.mustache b/lib/onebox/templates/wikipedia.mustache new file mode 100644 index 00000000000..8e8905fd732 --- /dev/null +++ b/lib/onebox/templates/wikipedia.mustache @@ -0,0 +1,5 @@ +{{#image}}{{/image}} + +

{{title}}

+ +

{{description}}

diff --git a/lib/onebox/templates/xkcd.mustache b/lib/onebox/templates/xkcd.mustache new file mode 100644 index 00000000000..1649b60976a --- /dev/null +++ b/lib/onebox/templates/xkcd.mustache @@ -0,0 +1,7 @@ +

{{title}}

+ +{{#image}} +
+{{/image}} + +

{{description}}

diff --git a/lib/onebox/view.rb b/lib/onebox/view.rb new file mode 100644 index 00000000000..e50e7c17f12 --- /dev/null +++ b/lib/onebox/view.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require_relative "template_support" + +module Onebox + class View < Mustache + include TemplateSupport + + attr_reader :record + + def initialize(name, record) + @record = record + self.template_name = name + self.template_path = load_paths.last + end + + def to_html + render(record) + end + end +end diff --git a/plugins/lazy-yt/plugin.rb b/plugins/lazy-yt/plugin.rb index c2756080b29..04d14d413e7 100644 --- a/plugins/lazy-yt/plugin.rb +++ b/plugins/lazy-yt/plugin.rb @@ -8,6 +8,8 @@ hide_plugin if self.respond_to?(:hide_plugin) +require "onebox" + # javascript register_asset "javascripts/lazyYT.js" diff --git a/spec/components/onebox/engine/allowlisted_generic_onebox_spec.rb b/spec/components/onebox/engine/allowlisted_generic_onebox_spec.rb deleted file mode 100644 index 1e9ac4c2b8b..00000000000 --- a/spec/components/onebox/engine/allowlisted_generic_onebox_spec.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' -require 'oneboxer' - -describe Onebox::Engine::AllowlistedGenericOnebox do - - describe ".===" do - - it "matches any domain" do - expect(described_class === URI('http://foo.bar/resource')).to be(true) - end - - it "doesn't match an IP address" do - expect(described_class === URI('http://1.2.3.4/resource')).to be(false) - expect(described_class === URI('http://1.2.3.4:1234/resource')).to be(false) - end - - end - -end diff --git a/spec/fixtures/onebox/amazon-ebook.response b/spec/fixtures/onebox/amazon-ebook.response new file mode 100644 index 00000000000..68e327960e7 --- /dev/null +++ b/spec/fixtures/onebox/amazon-ebook.response @@ -0,0 +1,6170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) 1, Bruce Tate, eBook - Amazon.com + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) by [Tate, Bruce] +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ + +
+
+
+1st Edition +
+ + +
+ +
+
+
+
+
+ISBN-13: + 978-1934356593 +
+
+
+
+
+
+
+
+
+
+ +Print List Price: + +
+
+ +$34.95 + +
+
+
+
+ +Kindle Price: + +
+
+ +$25.00 + +
+
+
+
+ +You Save: + +
+
+ +$9.95 (28%) + +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + + +
+
+

+Select Format +

+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ +
+ +Kindle price includes VAT + +
+ + + + + + + +
+
+
+ +
+ +
+
+
+

Deliver to your Kindle or other device

+
+ + +
+ +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+
+
+
+
+ +
+ +
+ +
+ + +
+ + +
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ + + + + +
+ +
+ +
+
+Share this product with friends +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+

+Kindle Feature Spotlight +

+
+ + + + + +
+
+
+
+Page Flip + +
+
+ +
+ + +
+
+
+
+
+
+
+Notes & Highlights + +
+
+ +
+ + +
+
+
+
+
+
+
+Adjustable Type + +
+
+ +
+ + +
+
+
+
+
+
+
+Sharing + +
+
+ +
+ + +
+
+
+
+
+
+
+X-Ray for Textbooks + +
+
+ +
+ + +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+

About the Kindle Edition

+
+ +
+
+

Length: 330 pages

+Based on the print edition (ISBN 9781934356593). +
+
+
+

Screen Reader: Supported

+ +The text of this eBook can be read by many popular screen readers: VoiceView on Fire Tablets and Kindle E-readers, VoiceOver on iOS, TalkBack on Android, and NVDA on Windows. Descriptive text for images (known as “ALT text”) can be read using the Kindle for PC app if the publisher has included it. If this eBook contains other types of non-text content (for example, some charts and math equations), that content will not currently be read by screen readers. See the Kindle Accessibility page to learn more + +
+
+
+

Enhanced Typesetting: Enabled

+Enhanced typesetting improvements offer faster reading with less eye strain and beautiful page layouts, even at larger font sizes. +
+
+
+

Page Flip: Enabled

+ +Page Flip is a new way to explore your books without losing your place. + +
+
+ +
+
+

Text to Speech: Enabled

+Text-to-Speech is available for Kindle Touch, Kindle Keyboard, Kindle (2nd generation), and Kindle DX. +
+
+
+
+
+
+
+

About this item +

+
+
+
+

From the manufacturer

+
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Seven Languages in Seven Weeks + +Seven More Languages in Seven Weeks + +Seven Databases in Seven Weeks + +Seven Web Frameworks in Seven Weeks + +Seven Concurrency Models in Seven Weeks + +Seven Mobile Apps in Seven Weeks +
+Seven Languages in Seven Weeks + +Seven More Languages in Seven Weeks + +Seven Databases in Seven Weeks + +Seven Web Frameworks in Seven Weeks + +Seven Concurrency Models in Seven Weeks + +Seven Mobile Apps in Seven Weeks +
+ +Subtitle + + + +A Pragmatic Guide to Learning Programming Languages + + + +Languages That Are Shaping the Future + + + +A Guide to Modern Databases and the NoSQL Movement + + + +Adventures in Better Web Apps + + + +When Threads Unravel + + + +Native Apps, Multiple Platforms + +
+ +Content Coverage + + + +Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby + + + +Lua, Factor, Elixir, Elm, Julia, MiniKanren, and Idris + + + +Redis, Neo4J, CouchDB, MongoDB, HBase, Riak and Postgres + + + +Sinatra, CanJS, AngularJS, Ring, Webmachine, Yesod, and Immutant + + + +Threads & locks, functional programming, separating identity & state, actors, sequential processes, data parallelism, and the lambda architecture + + + +iOS, Android, Windows, RubyMotion, React Native, and Xamarin + +
+ +Pages + + + +328 pages + + + +320 pages + + + +354 pages + + + +304 pages + + + +300 pages + + + +360 pages + +
+
+
+
+
+
+
+
+
+
+
+ +
+

+Description +

+
+

+You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-o ... +

+
+
+
+ +
+

+Description +

+
+

Product Description

+
+

You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side-by-side. You'll learn something new from each, and best of all, you'll learn how to learn a language quickly.

Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you'll go beyond the syntax-and beyond the 20-minute tutorial you'll find someplace online. This book has an audacious goal: to present a meaningful exploration of seven languages within a single book. Rather than serve as a complete reference or installation guide, Seven Languages hits what's essential and unique about each language. Moreover, this approach will help teach you how to grok new languages.

For each language, you'll solve a nontrivial problem, using techniques that show off the language's most important features. As the book proceeds, you'll discover the strengths and weaknesses of the languages, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them.

Among this group of seven, you'll explore the most critical programming models of our time. Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling. Understand the underlying prototype system that's at the heart of JavaScript. See how pattern matching in Prolog shaped the development of Scala and Erlang. Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure.

Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications. Find out how to use Erlang's let-it-crash philosophy for building fault-tolerant systems. Understand the actor model that drives concurrency design in Io and Scala. Learn how Clojure uses versioning to solve some of the most difficult concurrency problems.

It's all here, all in one place. Use the concepts from one language to find creative solutions in another-or discover a language that may become one of your favorites.

+
+

Review

+
+

""I have been programming for 25 years in a variety of hardware and software languages. After reading Seven Languages in Seven Weeks, I am starting to understand how to evaluate languages for their objective strengths and weaknesses. More importantly, I feel as if I could pick one of them to actually get some work done.""--Chris Kappler, Senior scientist Raytheon, BBN Technologies

""I spent most of my time as a computer sciences student saying I didn't want to be a software developer and then became one anyway. Seven Languages in Seven Weeks expanded my way of thinking about problems and reminded me what I love about programming.""--Travis Kaspar, Software engineer, Northrop Grumman

""Do you want seven kick starts into learning your "language of the year"? Do you want your thinking challenged about programming in general? Look no further than this book. I personally was taken back in time to my undergraduate computer science days, coasting through my programming languages survey course. The difference is that Bruce won't let you coast through this course! This isn't a leisurely read--you'll have to work this book. I believe you'll find it both mindblowing and intensely practical at the same time.""--Matt Stine Group leader, Research Application Development, St. Jude Children's Research Hospital

+
+

About the Author

+
+

Bruce Tate runs RapidRed, an Austin, TX-based practice that consults on lightweight development in Ruby. Previously he worked at IBM in roles ranging from a database systems programmer to Java consultant. He left IBM to work for several startups in roles ranging from Client Solutions Director to CTO. He speaks internationally and is the author of more than ten books, including From Java to Ruby, Deploying Rails Applications, the best-selling Bitter series, Beyond Java, and the Jolt-winning Better, Faster, Lighter Java.

+
+
+
+
+
+
+
+
+
+ +
+

+Features & details +

+
+ +
+
    +
  • + +Publication date: + +November 10, 2010 +
  • +
  • + +Publisher: + +Pragmatic Bookshelf +
  • +
  • + +Language: + +English +
  • +
+
+
+
+
+ +
+

+About this item +

+
+

+Product Details +

+ +
+
    +
  • + +Publication date: + +November 10, 2010 +
  • +
  • + +Publisher: + +Pragmatic Bookshelf +
  • +
  • + +Language: + +English +
  • +
  • + +ASIN: + +B00AYQNR46 +
  • +
  • + +Amazon.com Sales Rank: + +375493 +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +

Customer Reviews

58 customer reviews
4.2 out of 5 stars4.2 out of 5 stars
+
+
+
+
+ +Rated by customers interested in + +
+ +
+
+ + +
+ +
+
+ +

Top reviews

+
See all 58 reviews
Write a review
+
+
+
+
+
+
+
+
+ +
+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
\ No newline at end of file diff --git a/spec/fixtures/onebox/amazon-og.response b/spec/fixtures/onebox/amazon-og.response new file mode 100644 index 00000000000..0b16d9c6a18 --- /dev/null +++ b/spec/fixtures/onebox/amazon-og.response @@ -0,0 +1,3675 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Amazon.com: Christine: Rebecca Hall, Michael C. Hall, Antonio Campos, Craig Shilowich: Amazon Digital Services LLC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Amazon Vehicles + + + + + +Beauty + + + + + +Best Books of the Month + + + + + +STEM + + + + + +nav_sap_plcc_ascpsc + + + + + + + + + + + +Electronics Dads and Grads Gift Guide + + + + + +Starting at $39.99 + + + + + +Wickedly Prime + + + + + +Handmade Wedding Shop + + + + + +Home Gift Guide +Father's Day Gifts +Home Gift Guide + + + + + +Shop Popular Services + + + + + +ALongStrangeTrip +ALongStrangeTrip +ALongStrangeTrip + + + + + + Introducing Echo Show + + + + + +All-New Fire 7, starting at $49.99 + + + + + +Kindle Oasis + + + + + +AutoRip in CDs & Vinyl + + + + + +Shop Now + + + + + +toystl17_gno + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + +

+ Christine + 2017 + +

+ + + + + + + + + + + + + + + R + CC + + +
+ + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + 3.5 out of 5 stars + + + + (84) + + + + + + + + + + + + + + + + + + + + + IMDb + 7/10 + +
+
+ + + + + + +
+
+
+ +
+ +
+ + + +
+
+
+ + +
+
+ + + + + + +
+ + +

When renting, you have 30 days to start watching this video, and 48 hours to finish once started.

+ + +
+ + + +
Rent Movie HD $4.99
+
+
+ + + + +
+ + + + +
+ + + +
Buy Movie HD $12.99
+
+
+ + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ +
+

+ Rent +

+ + +

When renting, you have 30 days to start watching this video, and 48 hours to finish once started.

+ + +
+ + + +
Rent Movie HD $4.99
+
+
+ + + + +
+ + + + +
+ + + +
Rent Movie SD $3.99
+
+
+ + + + +
+ +
+ + +
+

+ Buy +

+ + + + +
+ + + +
Buy Movie HD $12.99
+
+
+ + + + +
+ + + + +
+ + + +
Buy Movie SD $9.99
+
+
+ + + + +
+ +
+ + + + + + + + + +
+ +
+ + + + + More Purchase Options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+
+ + + + + + + + + + + + + + + +
+ +
+ +
+

CHRISTINE is the story of an aspiring newswoman caught in the midst of a personal and professional life crisis. Between unrequited love, frustration at work, a tumultuous home, and self-doubt; she begins to spiral down a dark path.

+
+
+
Starring:
+
Rebecca Hall, Michael C. Hall
+
Runtime:
+
1 hour, 59 minutes
+
+

Available to watch on supported devices.

+
+ + +
+ + + +
+ + + +
+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ By placing your order or playing a video, you agree to our Terms of Use. Sold by Amazon Digital Services LLC. Additional taxes may apply. +
+
+ + + + + +
+
+
+ +
+ + + + +
+ +
+
+
+ +
+ + + + + + + + + +
+
+ +

+ Product details +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Genres + + Drama + +
+ Director + + Antonio Campos + +
+ Starring + + Rebecca Hall, Michael C. Hall + +
+ Studio + + The Orchard + +
+ MPAA rating + + R (Restricted) + +
+ Captions and subtitles + + English + + + + Details + + + + +
+ Purchase rights + + Stream instantly + + + + Details + + + + +
+ Format + + Amazon Video (streaming online video) + +
+ +
+
+ + + + + + + + + + + + + + + + + +
+
+ +

+ Other formats +

+ + +
+
+ + + + + + + + + + + +
+ +
+
+
+
+ + +

Customer Reviews

Top Customer Reviews

on March 2, 2017
Format: Amazon Video|Verified Purchase
33 comments| + 13 people found this helpful. + + Was this review helpful to you?YesNoReport abuse
on January 26, 2017
Format: Amazon Video|Verified Purchase
0Comment| + 13 people found this helpful. + + Was this review helpful to you?YesNoReport abuse
on May 12, 2017
Format: Amazon Video|Verified Purchase
0Comment| + One person found this helpful. + + Was this review helpful to you?YesNoReport abuse
on January 26, 2017
Format: Amazon Video|Verified Purchase
0Comment| + 2 people found this helpful. + + Was this review helpful to you?YesNoReport abuse
on February 26, 2017
Format: Amazon Video|Verified Purchase
0Comment| + 3 people found this helpful. + + Was this review helpful to you?YesNoReport abuse
on March 6, 2017
Format: Amazon Video|Verified Purchase
0Comment| + 2 people found this helpful. + + Was this review helpful to you?YesNoReport abuse
on February 25, 2017
Format: Amazon Video|Verified Purchase
0Comment| + 2 people found this helpful. + + Was this review helpful to you?YesNoReport abuse
on February 23, 2017
Format: Amazon Video|Verified Purchase
0Comment| + One person found this helpful. + + Was this review helpful to you?YesNoReport abuse

Most Recent Customer Reviews

+
+
+ +
+
+
+ + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/spec/fixtures/onebox/amazon.response b/spec/fixtures/onebox/amazon.response new file mode 100644 index 00000000000..42d25aece7b --- /dev/null +++ b/spec/fixtures/onebox/amazon.response @@ -0,0 +1,3773 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers): Bruce Tate: 8601234653110: Amazon.com: Books + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+

Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) + +

+
+
+
+
+
+1st Edition +
+
+
+ISBN-13: + 978-1934356593, +ISBN-10: + 193435659X +
+
+ +
+ +
+
+
+
+ + + +
+
+
+
+ +
    +
  • +
  • +
+
+
+ +
+ + +
Double-tap to zoom
+ +
+
+
+ +
+
+ + + + +
+
+

+Select Format +

+ +
+ +
+
+
+
+ +$ + + +21 + + +11 + +
+
+
+ + + + + + +
+
+ +Save $13.84 (40%) + +
+
+
+
+
+ + +
+
+ + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Save an extra $1.29 at checkout. +
+
+
+
+
+
+
+
+
+
+
+
+ +In Stock. + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +This item ships to Germany. Want it Monday, Feb. 19? Order within 4 hrs 42 mins and choose AmazonGlobal Priority Shipping at checkout. + + +
+ + + +
+
+
+
+Ships from and sold by Amazon.com. +Gift-wrap available. +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+FREE Shipping on orders over $25 +
+
+
+ + +
+
+
+ +Sold by Mayon Collectibles and fulfilled by Amazon. + +
+
+ +Access codes and supplements are not guaranteed with used items. + +
+
+ +
+
+ + + +Ship to: + + +Germany + + +
+
+
+ +To see addresses, please + +
+
+ +
+
or
+
+ +Use this location: + +
+
+
+
+
+ +
+
+
+ +Please enter a valid US zip code. + +
+ + +
+
or
+
+ +
+
+
+
+
+ +
+ + +
+
+
+
+ + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + + +Ship to: + + +Germany + + +
+
+ + +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + +
+ + +
+
+
+
+ +
+
+
+ +
+ + + + + + + + + + + +
+ +
+
+Share this product with friends +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+
+
+
+
+
+

+Frequently bought together +

+
+
+
Choose items to buy together.
+
    +
  • Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
  • +
  • +Seven More Languages in Seven Weeks: Languages That Are Shaping the Future +
  • +
  • +Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement +
  • +
+
+
+ +
+ +
+
+

Frequently bought together

+
+
+
+
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
+
+ +
+
+
+$21.11 +
Paperback
+
FREE Shipping on orders over $25. Details
+
In Stock.
+
Ships from and sold by Amazon.com.
+
+
+
+
Seven More Languages in Seven Weeks: Languages That Are Shaping the Future
+
+ +
+
+
+$28.54 +
Paperback
+
FREE Shipping. Details
+
Only 16 left in stock (more on the way).
+
Ships from and sold by Amazon.com.
+
+
+
+
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
+
+ +
+
+
+$26.28 +
Paperback
+
FREE Shipping. Details
+
Only 12 left in stock (more on the way).
+
Ships from and sold by Amazon.com.
+
+
+
+
+
+
+
+
+ +
+
+
+

About this item +

+
+
+
+

From the manufacturer

+
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Seven Languages in Seven Weeks + +Seven More Languages in Seven Weeks + +Seven Databases in Seven Weeks + +Seven Web Frameworks in Seven Weeks + +Seven Concurrency Models in Seven Weeks + +Seven Mobile Apps in Seven Weeks +
+Seven Languages in Seven Weeks + +Seven More Languages in Seven Weeks + +Seven Databases in Seven Weeks + +Seven Web Frameworks in Seven Weeks + +Seven Concurrency Models in Seven Weeks + +Seven Mobile Apps in Seven Weeks +
+ +Subtitle + + + +A Pragmatic Guide to Learning Programming Languages + + + +Languages That Are Shaping the Future + + + +A Guide to Modern Databases and the NoSQL Movement + + + +Adventures in Better Web Apps + + + +When Threads Unravel + + + +Native Apps, Multiple Platforms + +
+ +Content Coverage + + + +Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby + + + +Lua, Factor, Elixir, Elm, Julia, MiniKanren, and Idris + + + +Redis, Neo4J, CouchDB, MongoDB, HBase, Riak and Postgres + + + +Sinatra, CanJS, AngularJS, Ring, Webmachine, Yesod, and Immutant + + + +Threads & locks, functional programming, separating identity & state, actors, sequential processes, data parallelism, and the lambda architecture + + + +iOS, Android, Windows, RubyMotion, React Native, and Xamarin + +
+ +Pages + + + +328 pages + + + +320 pages + + + +354 pages + + + +304 pages + + + +300 pages + + + +360 pages + +
+
+
+
+
+
+
+
+
+
+
+ +
+

+Description +

+
+

+You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-o ... +

+
+
+
+ +
+

+Description +

+
+

Product description

+
+

+

You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side-by-side. You'll learn something new from each, and best of all, you'll learn how to learn a language quickly.

Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you'll go beyond the syntax-and beyond the 20-minute tutorial you'll find someplace online. This book has an audacious goal: to present a meaningful exploration of seven languages within a single book. Rather than serve as a complete reference or installation guide, Seven Languages hits what's essential and unique about each language. Moreover, this approach will help teach you how to grok new languages.

For each language, you'll solve a nontrivial problem, using techniques that show off the language's most important features. As the book proceeds, you'll discover the strengths and weaknesses of the languages, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them.

Among this group of seven, you'll explore the most critical programming models of our time. Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling. Understand the underlying prototype system that's at the heart of JavaScript. See how pattern matching in Prolog shaped the development of Scala and Erlang. Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure.

Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications. Find out how to use Erlang's let-it-crash philosophy for building fault-tolerant systems. Understand the actor model that drives concurrency design in Io and Scala. Learn how Clojure uses versioning to solve some of the most difficult concurrency problems.

It's all here, all in one place. Use the concepts from one language to find creative solutions in another-or discover a language that may become one of your favorites.

+

+
+

Review

+
+

+

""I have been programming for 25 years in a variety of hardware and software languages. After reading Seven Languages in Seven Weeks, I am starting to understand how to evaluate languages for their objective strengths and weaknesses. More importantly, I feel as if I could pick one of them to actually get some work done.""--Chris Kappler, Senior scientist Raytheon, BBN Technologies

+

""I spent most of my time as a computer sciences student saying I didn't want to be a software developer and then became one anyway. Seven Languages in Seven Weeks expanded my way of thinking about problems and reminded me what I love about programming.""--Travis Kaspar, Software engineer, Northrop Grumman

+

""Do you want seven kick starts into learning your "language of the year"? Do you want your thinking challenged about programming in general? Look no further than this book. I personally was taken back in time to my undergraduate computer science days, coasting through my programming languages survey course. The difference is that Bruce won't let you coast through this course! This isn't a leisurely read--you'll have to work this book. I believe you'll find it both mindblowing and intensely practical at the same time.""--Matt Stine Group leader, Research Application Development, St. Jude Children's Research Hospital

+

+
+

About the Author

+
+

+

+

Bruce Tate runs RapidRed, an Austin, TX-based practice that consults on lightweight development in Ruby. Previously he worked at IBM in roles ranging from a database systems programmer to Java consultant. He left IBM to work for several startups in roles ranging from Client Solutions Director to CTO. He speaks internationally and is the author of more than ten books, including From Java to Ruby, Deploying Rails Applications, the best-selling Bitter series, Beyond Java, and the Jolt-winning Better, Faster, Lighter Java.

+
+

+
+
+
+
+
+
+
+
+
+ +
+

+Features & details +

+
+

+Product information + + +

+
+

+ + + + + + + + + + + + + + +
+
+
+
+ +
+

+About this item +

+
+

+Product information + + +

+
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+ +Pricing: + + +Savings are based on the strikethrough price. This is either the previous Amazon price or the + +List Price. + + +
+
+
+
+
+
+
+
+ + +

Customer Reviews

58 customer reviews
4.2 out of 5 stars4.2 out of 5 stars
+
+
+
+
+ +Rated by customers interested in + +
+ +
+
+ + +
+ +
+
+ +

Top reviews

+
See all 58 reviews
Write a review
+
+
+
+
+
+
+ +
+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
\ No newline at end of file diff --git a/spec/fixtures/onebox/cloudapp-gif.response b/spec/fixtures/onebox/cloudapp-gif.response new file mode 100644 index 00000000000..a24ad59906d --- /dev/null +++ b/spec/fixtures/onebox/cloudapp-gif.response @@ -0,0 +1,66 @@ + + + + + giphy.gif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/spec/fixtures/onebox/cloudapp-jpg.response b/spec/fixtures/onebox/cloudapp-jpg.response new file mode 100644 index 00000000000..3718a31abb0 --- /dev/null +++ b/spec/fixtures/onebox/cloudapp-jpg.response @@ -0,0 +1,66 @@ + + + + + Image 2016-11-27 at 10.47.21 PM.jpg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/spec/fixtures/onebox/cloudapp-mp4.response b/spec/fixtures/onebox/cloudapp-mp4.response new file mode 100644 index 00000000000..2a4d889691c --- /dev/null +++ b/spec/fixtures/onebox/cloudapp-mp4.response @@ -0,0 +1,65 @@ + + + + + click-link.mp4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/spec/fixtures/onebox/cloudapp-others.response b/spec/fixtures/onebox/cloudapp-others.response new file mode 100644 index 00000000000..f9f39145471 --- /dev/null +++ b/spec/fixtures/onebox/cloudapp-others.response @@ -0,0 +1,66 @@ + + + + + + sample.pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/spec/fixtures/onebox/cnn.response b/spec/fixtures/onebox/cnn.response new file mode 100644 index 00000000000..3c0e90f64f5 --- /dev/null +++ b/spec/fixtures/onebox/cnn.response @@ -0,0 +1,4 @@ +People are fostering and adopting pets during the pandemic + + + diff --git a/spec/fixtures/onebox/dailymail.response b/spec/fixtures/onebox/dailymail.response new file mode 100644 index 00000000000..e5aa0c8f3e1 --- /dev/null +++ b/spec/fixtures/onebox/dailymail.response @@ -0,0 +1,5914 @@ + + + + + Brutality or justice? The truth behind the tarred and feathered drug dealer | Mail Online + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + +
+
 
+ + + + + + + +
+
+
+ +
+ +
+
+
+
+
    + + +
  • + +
  • +
  • + + + +
  • +
  • + +
  • +
+
+ +
+
+ + + + +
+
+
+
+ +

Brutality or justice? The truth behind the tarred and feathered drug dealer

By ANDREW MALONE

Last updated at 00:47 01 September 2007


It was the most chilling image of the week ... a drug-dealer tarred and feathered in a medieval act of retribution. Sheer savagery? Or the desperate response of a community that decided to fight back?

The bar fell silent. Some drinkers put down their pints and walked out. Others suddenly became engrossed in newspapers, turning their stools around so that their faces couldn't be seen by anyone approaching through the only door.

"We don't know anything. Nothing at all," said one man in his 40s, looking up sharply from behind the pages of the Belfast Telegraph. "It's not a good idea to ask too many questions around here, ye know what I'm saying, my friend?"

Strangers are not welcome in the Taughmonagh Social Club, a working man's bar less than 100 yards from where a mess of tar and feathers still litter the pavement, following one of the most shocking acts of violence and public humiliation since the Troubles ended.

Scroll down for more ...

+ tarred feathered +

+

But an older man sitting alone had been studying me. He got up from his seat and called two of the other silent drinkers into a far corner of the bar. They stood in a huddle; nobody could hear what was being said. I waited.

After a short discussion between the three, I was ordered into an unlit backroom of the club, which is just two miles from the centre of Belfast now booming with upmarket restaurants, five-star hotels and non-stop construction as a result of the peace dividend after decades of civil war.

In the private room, under black and white photographs of famous moments in the history of Glasgow Rangers Football Club - which until recently was a Protestant-only team - the truth about the chilling events of last week was revealed for the first time.

The older man - measured, polite - had decided it was time the world was told why a man should be abducted, tied to a lamppost and have boiling tar poured over his head and body before being 'decorated' with feathers.

This show of "community justice" may have happened in Northern Ireland, but the professed reasons behind it may strike a chord with millions of law-abiding people in communities across the UK - where the police and courts are each day failing countless victims of violent crime.

Indeed, the man in the unlit backroom, who is happy to be called "William", but refuses to give his real name, insists this is simply the story of ordinary people driven to take the law into their own hands.

And whether you agree, or regard his words as a shameless attempt to defend the indefensible, his account gives a brutal insight into the grim reality of life in the harsher parts of "peaceful" Ulster.

"This man had been warned," he says. "This man was known to have been dealing drugs in our community. If you have kids rolling through the doors with their eyes all over their heads, you know that something is not right.

"It doesn't take Sherlock Holmes to work it out. Selling drugs to children is not on. The community wants drug dealers off the street, but they have no confidence in the police. If police catch these people dealing, they don't do anything.

"He was making money out of this. He was starting people off with drugs. What follows is that you have people breaking into houses, stealing cars, that sort of thing - just to pay for their drug habit.

"Then they start mugging people - old ladies and such like. The community goes to the dogs. We can't be standing for that. It's just not on."

And so it was that local man Jock Nelson was subjected to this most brutal form of public punishment.

Nelson had been living in the area for years. Indeed, until recently he could be found propping up the bar alongside "William" and his staunch Loyalist friends in the club.

But he had problems. He had recently lost his job as a doorman at Lavery's, a popular bar and nightclub near the centre of Belfast. Locals say he was sacked because of using and selling drugs - a charge denied by Lavery's.

Nelson also had marital problems with Julie, his wife and mother of their four children. He had moved out of the family home in the area, although his parents and sister had remained in Taughmonagh. But Nelson started coming back to the streets around the social club, dealing drugs, locals say, to teenage children.

He was repeatedly warned to keep away - but chose to ignore those words of wisdom. It was to prove a grave mistake.

Scroll down for more ...

+ +

+

+ +

+

Late last Saturday night, word swept the social club that Nelson was back - dealing drugs to children in a nearby park. Over drinks, a plan was hatched to put him out of business for good.

William says: "We are not stupid - we know that kids will smoke a bit of weed here and there. We don't want them to, but they do and it's probably not going to kill them in the long run. But this man [he refuses to use Nelson's name throughout the conversation] was selling hard drugs. We'd had enough."

The following night, Nelson was again spotted in the area. Children questioned by their parents had admitted he had been selling them drugs - not just "weed", but also crack cocaine and heroin.

Men with "woolly faces" - the local codeword for balaclavas - gathered nearby. After living through decades of violence between Catholic and Loyalist paramilitaries, the men of Taughmonagh questioned Nelson the only way they knew how: with extreme prejudice.

After savagely beating him and searching his pockets, William says they found five or six bags of crack cocaine. They dragged Nelson through the streets as women and children looked on.

The guilty man did not take his punishment well. Screaming for mercy, he was tied to a lamppost outside the local shops, opposite the park where he had been selling the drugs.

As locals watched in silence, another man in a balaclava appeared from near the social club. He was carrying a bucket of boiling tar and pillows. Nelson's shirt was pulled down over his shoulders, to ensure the tar burned his flesh.

Realising what was about to happen, Nelson "lost control of his bowels", through sheer terror, according to William. "But please don't write that. People might feel sorry for him."

The tar was poured over the offending drug dealer. Then the pillows were torn up and the feathers tipped over him - a punishment designed to ensure that he carried the "mark of justice" by the mob around with him for days.

A piece of cardboard with the words: "I'm a drug dealing scumbag" was strung round his neck. Then photographs were taken to serve as a warning to others that drug dealing will not be tolerated in Taughmonagh.

The pictures were sent to local newspapers - and subsequently beamed around the world. Belfast's politicians were horrified, saying it was a "barbaric act" that had "no place in a civilised society". Police appealed for witnesses; by last night, none had come forward.

Nothing, surely, can excuse such horrific savagery on our streets - and such casual contempt for the basic principles of justice. Yet, many people in areas across Britain will recognise the sense of impotence felt by the people of Taughmonagh, a rugged, working-class estate with the Union Jack hanging from virtually every house. There is a real sense of community in the area.

"Everybody here has grown up together," says Moira, a married woman with two children who works in a shop nearby. "We know everyone - the mums, the kids, the aunties, the dads. Here, we know everybody else's business. We look after each other."

The tarring and feathering certainly seems to have had the effect the community wanted: Jock Nelson fled the city soon after the attack.

"He's gone away to Scotland," Jean Nelson, the man's mother, said. "He's not here. He just wants to get away from everything for a while."

Asked what she felt about her son's involvement in drugs, she was furious. "That's slander. How dare you say that. Who told you where I live? Who told you my name? How would you like it if this was happening to you? We still have to live here. Get away! Just get away!"

A close friend of Jock Nelson's said he had gone away for a "few days" with his estranged wife and children until things calmed down. "There is no chance of him talking about this. It's too dangerous."

In many respects, Nelson was lucky: drug dealing and other anti-social behaviour often proves deadly in Belfast. Fedup with the lack of police action against criminals operating in their locality, there is a long tradition of summary justice being meted out on the streets.

First practised on informers and enemies from rival paramilitary groups, the technique of "knee-capping" - where the victim is shot in both legs, permanently disabling them - became synonymous with daily life during the Troubles.

But after the 1994 ceasefire between the warring Protestant and Catholic factions, many of the weapons were either decommissioned or hidden, forcing the paramilitaries to come up with fresh methods, or resurrect old ones, to deal with local troublemakers.

Once used against Catholic women caught having relationships with British soldiers during the Troubles, the first recorded incident of tarring and feathering came in 1191, when Richard I of England ordered soldiers to punish thieves in the Holy Land during the Crusades.

In America, this technique was used in the 18th century, when the criminal was covered in tar and feathers before being paraded through the town on the back of a horse-drawn cart. According to records from the time, the "aim was to hurt and humiliate a person enough to leave town and cause no more mischief".

The punishment rarely causes serious injury although it does cause minor burns. Tar boils at 60C rather than 100c for water and the tar has frequently cooled by the time it is poured over the victim. Jock Nelson was not taken to hospital after last week's incident.

While pictures of last week's tarring and feathering made international headlines, there is a relentless unreported wave of violence by vigilantes against known criminals in both north and south of the border each month.

With police either lacking the evidence to act, or too scared to enter streets which for decades were no-go areas, car thieves, paedophiles and drug dealers are regularly dealt with by the "men with woolly faces".

In one case, James O'Donoghue, a convicted rapist, was attacked by four men in balaclavas and stabbed repeatedly before being locked in the back of a van with four vicious pitbull terriers.

"I was kept there for an hour with those dogs," he said. "All I did was kept swinging and kicking, trying to defend myself. The men then dumped me at the side of the road. I got 216 stitches and went into cardiac arrest in hospital."

The son of Jonny "Mad Dog" Adair, the psychotic former leader of the Ulster Freedom Fighters' notorious "C" Company, was shot in both legs in 2002 after being named as a drug dealer, leaving him maimed for life.

Few in Belfast had any sympathy last week for criminals beaten or covered in tar and feathers as punishment. "They should just get shot," said Kevin Nolan, an office worker. "I'm not being nasty but they have made their choice and know the consequences."

Yet some experts suspect that these acts are not simply designed to prevent crime spiralling out of control. For decades, Loyalist gangs have had links to the criminal underworld, prompting speculation that they are simply trying to "take out" rivals in Northern Ireland's lucrative drugs trade.

Back at the Taughmonagh Social Club, William dismisses this notion. "This was nothing to do with paramilitaries," he says. "This was to do with a law-abiding community deciding to take action against a man who has been poisoning our children with drugs.

"This is a strong community. There's very little housebreaking or any other crime here. If we see anyone's children behaving badly, we let their parents know and they deal with it. That's how it works - we're all in this together."

Yet, on the streets of Belfast, which is successfully rebranding itself as a tourist destination, with guided tours up the Republican Falls and Loyalist Shankill Roads, there was little doubt about what would happen if anybody started dealing drugs on the streets.

A group of three drug users I met had no fear of the police, saying that they might know they were using drugs, but they would never get enough evidence because the drugs would just be thrown away before they were arrested.

"But there's no danger of us dealing drugs on the streets," said one man in his 20s, as a group of tourists walked past the Europa Hotel in the centre, marvelling at the fact it has been blown up more than any other hotel in the world.

Slurping furtively from a can of lager - drinking on the street is banned in many areas - the young man added: "The paramilitaries would come after us. Some people say it's because they want to deal all the drugs.

"I don't think it's because of that. I think it's just because they like violence - and I mean really like it. We wouldn't stand a chance if we sold drugs. We'd be dead within a week."

Certainly, the streets of Belfast are remarkably safe places to walk, with little petty crime, drug-dealing or gangs of drunken youths roaming the streets.

As a result of this curious by-product of the Northern Ireland peace process, it is no longer the law-abiding majority who are scared to go out after dark. These days, it seems, Belfast's criminals are the ones who live in mortal fear of being caught doing anything wrong.

The question is, at what price? Vigilante justice betrays all the values that were supposedly being defended in the long fight against terrorism. We tolerate it at our peril.

+ + + + + +
+
+ + + +
+
+ +
+ + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +

No comments have so far been submitted. Why not be the first to send us your thoughts, + or debate this issue live on our message boards. +

+ +
+ + + + + + + +

We are no longer accepting comments on this article.

+ + + +
+ + Who is this week's top commenter? + Find out now +
+ + +
+
+ + +
+ + + +
+ +
+
+ +
+
+
+ Bing +
+ + + + + + + + +
+ +
+ + + + +
+
+ +
+ +
+
+ +
+
+ + + +
+
+ +   +   +

DON'T MISS

+ + +
+ +
+ + + + + + + +
+
+ +
+
+ +
+
+ +   +   +

MORE DON'T MISS

+ + +
+ +
+ + +
+
+ +
+ +
+
+ +
+ + + + + +
+
+ +
+
+ +
+ + + + + +
+ +
+
+ + MailOnline iPad app + +
+
+ +
+ + + + +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + +
+
+
+
+

Next story

+

+ + 'America is coming to help': Obama to bomb Iraq to save thousands of non-Muslims trapped on mountains and forced to choose between starving to death and slaughter by ISIS fanatics + ISIS take hundreds of Yazidi women hostage in bid to call Obama's bluff as America begins bombing Iraq after Islamist fanatics reach the gates of former Kurdish safe haven where thousands have fled + +

+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+
+ + +
 
+ + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/discourse_topic.response b/spec/fixtures/onebox/discourse_topic.response new file mode 100644 index 00000000000..00a0e24fe99 --- /dev/null +++ b/spec/fixtures/onebox/discourse_topic.response @@ -0,0 +1,373 @@ + + + + + + Congratulations, most stars in 2013 GitHub Octoverse! - praise - Discourse Meta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/discourse_topic_reply.response b/spec/fixtures/onebox/discourse_topic_reply.response new file mode 100644 index 00000000000..d204320e713 --- /dev/null +++ b/spec/fixtures/onebox/discourse_topic_reply.response @@ -0,0 +1,369 @@ + + + + + + Congratulations, most stars in 2013 GitHub Octoverse! - praise - Discourse Meta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/etsy.response b/spec/fixtures/onebox/etsy.response new file mode 100644 index 00000000000..663dd727a90 --- /dev/null +++ b/spec/fixtures/onebox/etsy.response @@ -0,0 +1,5389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Personalized Word Pillow Case Letter Symbol Text Cushion | Etsy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + +
+ + + + +
+ +
+ + + + + + + + + + + + + +
+ + +
+
+
+ + +
+
+
+
+ + + + + + + + + + + +
+ + + +
+ + + + + + + +
+ + + + + + + +
+
+ + +

Personalized Word Pillow Case | Letter, Symbol, Text Cushion Cover | 18x18 inch / 45x45 cm Decorative Pillow | Modern Home Decor

+
+ + + + + + + +
+
+
+
+ + +
+

+ Personalized Word Pillow Case | Letter, Symbol, Text Cushion Cover | 18x18 inch / 45x45 cm Decorative Pillow | Modern Home Decor +

+
+ + + + + +
+ +

+ + US$ 36.97+ + + + US$ 41.08+ + +

+

+ You save US$ 4.11 (10%) +

+ +
+ Local taxes included (where applicable) +
+
+ + +
+
+ +
+ +
+
Please select an option
+
+ +
+ +
+
Please select a colour
+
+ +

+ Last step: Enter the Fabric you want from options of the chart. Thank you!
- - -
Dernière étape: Entrez le Tissu désiré parmi les choix de la charte. Merci! +

+ +
+ 256 +
+
This item requires personalisation
+
You’ve reached the limit! Use 256 characters or less.
+
+ +
+ +
+
Please select a quantity
+
+
+ + + +
+ + +
+
+ + + + + + + + + +
+
+
+ + + +
+
+
+
+ +
+
+ Don't miss out. There's only 4 available and 3 other people have this in their basket right now. + +
+
+
+
+ + + + +
+ +
+
+

Item details

+ + +
+ +

Handmade

+
+ +
+
+
Materials
+ +

+ Natural fiber fabrics, Vinyl, Threads, YKK invisible zipper +

+ +
+
+
Dimensions
+ +

Length: 18 Inches; Width: 18 Inches

+
+
+
+ +
+
+ +
+
+ + - 15% off when you buy 2 items / 20% off when you buy 3 items -

Allow your personality to shine through your decor; this contemporary and modern accent will help you do just that. Personalize this 18" x 18" (45 x 45 cm) pillow cover with your favorite letter, symbol or word in the fabric and vinyl color of your choice, have fun!

>>> Here is how to create your own pillow cover (It's easy!): You just have to select the appliqué plus the primary color (vinyl for the appliqué) and write the fabric you want in the personalization box before adding the item to your cart.
▲*This item is made to order just for you in 2 to 4 business days!*

SPECIFICATIONS:
▲ Designed and handmade by us!
▲ 18" x 18" (45 x 45 cm) pillow cover {for same size pillow form or one size up}.
▲ 100% cotton, 50% cotton / 50% linen or 55% ramie / 45% cotton canvases {Pre-shrunk fabrics: the cover will keep its original shape after the first wash (No shrinkage!)}.
▲ Durable vinyl leather like sewn all around.
▲ Invisible zipper at the bottom {for an easy removal and clean finish}.
▲ Serged interior seams {makes it resistant to wash}.
▲ Pillow form is not included.

CARE:
Wash upside down and closed in cold water at gentle cycle or by hand with a gentle detergent. Do not use bleach. Dry flat or hang to dry. Iron *upside down* at medium high (cotton) temperature with medium steam.

▲ 12" x 18" (30 x 45 cm) lumbar size: http://www.etsy.com/listing/69325334
▲ 16" x 16" (40 x 40 cm) size: http://www.etsy.com/listing/103762611
▲ 20" x 20" (50 x 50 cm) size: http://www.etsy.com/listing/99807109

Contact us for any questions ;-) Thanks for visiting!

More from us, here on Etsy (!):
Digital art prints: http://www.etsy.com/shop/RocailArt
Vintage finds: http://www.etsy.com/shop/rocailoldandloved

All Designs & images © 2010-2020 ROCAIL / ROCAIL Studio. All rights reserved. +
+ +
+
+ +
+
+
+
+
+
+
+
+
+

Delivery & returns

+ +
+
+ + +
+ +
+ Ready to dispatch in 1–3 business days +
+
+ +
+ From Canada +
+
+
+ +
+
+
+ + + +
+
+
+
+ Sorry, this item doesn’t deliver to India. Contact the shop to find out about available delivery options. +
+ +
+
+ + +
+
+
+
+ +
No returns or exchanges
+
+ But please contact me if you have any problems with your order. +
+
+
+ +
+ +
+ +
+
+
+

+ Meet RocailStudio +

+ +
+
+ Melanie and Valerie +
+
+

Melanie and Valerie

+

+ Montreal, Canada +

+
+
+ +
This seller usually responds within 24 hours.
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+

Reviews

+ + + + + 5 out of 5 stars + + + + + + + (1,238) + + + +
+
+
+ + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ + + +
+ +
+ + +
+
Montreal, Canada
+
6,634 Sales
+
On Etsy since 2010
+
+
+
+ + +
+ +
+
+ +
+ +
+ + + +
+
+
+ + + +
+ +
+ +
+
+ + +
+
+ +
+
+ +
+
+ + + + + + + + +
+
+ +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/etsy_mobile.response b/spec/fixtures/onebox/etsy_mobile.response new file mode 100644 index 00000000000..0b7953dae90 --- /dev/null +++ b/spec/fixtures/onebox/etsy_mobile.response @@ -0,0 +1,5389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Personalized Word Pillow Case Letter Symbol Text Cushion | Etsy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + +
+ + + + +
+ +
+ + + + + + + + + + + + + +
+ + +
+
+
+ + +
+
+
+
+ + + + + + + + + + + +
+ + + +
+ + + + + + + +
+ + + + + + + +
+
+ + +

Personalized Word Pillow Case | Letter, Symbol, Text Cushion Cover | 18x18 inch / 45x45 cm Decorative Pillow | Modern Home Decor

+
+ + + + + + + +
+
+
+
+ + +
+

+ Personalized Word Pillow Case | Letter, Symbol, Text Cushion Cover | 18x18 inch / 45x45 cm Decorative Pillow | Modern Home Decor +

+
+ + + + + +
+ +

+ + US$ 36.97+ + + + US$ 41.08+ + +

+

+ You save US$ 4.11 (10%) +

+ +
+ Local taxes included (where applicable) +
+
+ + +
+
+ +
+ +
+
Please select an option
+
+ +
+ +
+
Please select a colour
+
+ +

+ Last step: Enter the Fabric you want from options of the chart. Thank you!
- - -
Dernière étape: Entrez le Tissu désiré parmi les choix de la charte. Merci! +

+ +
+ 256 +
+
This item requires personalisation
+
You’ve reached the limit! Use 256 characters or less.
+
+ +
+ +
+
Please select a quantity
+
+
+ + + +
+ + +
+
+ + + + + + + + + +
+
+
+ + + +
+
+
+
+ +
+
+ Don't miss out. There's only 4 available and 3 other people have this in their basket right now. + +
+
+
+
+ + + + +
+ +
+
+

Item details

+ + +
+ +

Handmade

+
+ +
+
+
Materials
+ +

+ Natural fiber fabrics, Vinyl, Threads, YKK invisible zipper +

+ +
+
+
Dimensions
+ +

Length: 18 Inches; Width: 18 Inches

+
+
+
+ +
+
+ +
+
+ + - 15% off when you buy 2 items / 20% off when you buy 3 items -

Allow your personality to shine through your decor; this contemporary and modern accent will help you do just that. Personalize this 18" x 18" (45 x 45 cm) pillow cover with your favorite letter, symbol or word in the fabric and vinyl color of your choice, have fun!

>>> Here is how to create your own pillow cover (It's easy!): You just have to select the appliqué plus the primary color (vinyl for the appliqué) and write the fabric you want in the personalization box before adding the item to your cart.
▲*This item is made to order just for you in 2 to 4 business days!*

SPECIFICATIONS:
▲ Designed and handmade by us!
▲ 18" x 18" (45 x 45 cm) pillow cover {for same size pillow form or one size up}.
▲ 100% cotton, 50% cotton / 50% linen or 55% ramie / 45% cotton canvases {Pre-shrunk fabrics: the cover will keep its original shape after the first wash (No shrinkage!)}.
▲ Durable vinyl leather like sewn all around.
▲ Invisible zipper at the bottom {for an easy removal and clean finish}.
▲ Serged interior seams {makes it resistant to wash}.
▲ Pillow form is not included.

CARE:
Wash upside down and closed in cold water at gentle cycle or by hand with a gentle detergent. Do not use bleach. Dry flat or hang to dry. Iron *upside down* at medium high (cotton) temperature with medium steam.

▲ 12" x 18" (30 x 45 cm) lumbar size: http://www.etsy.com/listing/69325334
▲ 16" x 16" (40 x 40 cm) size: http://www.etsy.com/listing/103762611
▲ 20" x 20" (50 x 50 cm) size: http://www.etsy.com/listing/99807109

Contact us for any questions ;-) Thanks for visiting!

More from us, here on Etsy (!):
Digital art prints: http://www.etsy.com/shop/RocailArt
Vintage finds: http://www.etsy.com/shop/rocailoldandloved

All Designs & images © 2010-2020 ROCAIL / ROCAIL Studio. All rights reserved. +
+ +
+
+ +
+
+
+
+
+
+
+
+
+

Delivery & returns

+ +
+
+ + +
+ +
+ Ready to dispatch in 1–3 business days +
+
+ +
+ From Canada +
+
+
+ +
+
+
+ + + +
+
+
+
+ Sorry, this item doesn’t deliver to India. Contact the shop to find out about available delivery options. +
+ +
+
+ + +
+
+
+
+ +
No returns or exchanges
+
+ But please contact me if you have any problems with your order. +
+
+
+ +
+ +
+ +
+
+
+

+ Meet RocailStudio +

+ +
+
+ Melanie and Valerie +
+
+

Melanie and Valerie

+

+ Montreal, Canada +

+
+
+ +
This seller usually responds within 24 hours.
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ +
+

Reviews

+ + + + + 5 out of 5 stars + + + + + + + (1,238) + + + +
+
+
+ + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ + + +
+ +
+ + +
+
Montreal, Canada
+
6,634 Sales
+
On Etsy since 2010
+
+
+
+ + +
+ +
+
+ +
+ +
+ + + +
+
+
+ + + +
+ +
+ +
+
+ + +
+
+ +
+
+ +
+
+ + + + + + + + +
+
+ +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/gfycat.response b/spec/fixtures/onebox/gfycat.response new file mode 100644 index 00000000000..6e34867afbb --- /dev/null +++ b/spec/fixtures/onebox/gfycat.response @@ -0,0 +1,40 @@ + +Goal 11: Kerbal GIF by Gif Your Game (@gifyourgame) | Find, Make & Share Gfycat GIFs
diff --git a/spec/fixtures/onebox/githubblob.response b/spec/fixtures/onebox/githubblob.response new file mode 100644 index 00000000000..9cf89bef5aa --- /dev/null +++ b/spec/fixtures/onebox/githubblob.response @@ -0,0 +1,46 @@ +require_dependency 'oneboxer/handlebars_onebox' + +module Oneboxer + class GithubBlobOnebox < HandlebarsOnebox + + matcher /^https?:\/\/(?:www\.)?github\.com\/[^\/]+\/[^\/]+\/blob\/.*/ + favicon 'github.png' + + def translate_url + m = @url.match(/github\.com\/(?[^\/]+)\/(?[^\/]+)\/blob\/(?[^\/]+)\/(?[^#]+)(#(L(?[^-]*)(-L(?.*))?))?/mi) + if m + @from = (m[:from] || -1).to_i + @to = (m[:to] || -1).to_i + @file = m[:file] + return "https://raw.github.com/#{m[:user]}/#{m[:repo]}/#{m[:sha1]}/#{m[:file]}" + end + nil + end + + def parse(data) + + if @from > 0 + if @to < 0 + @from = @from - 10 + @to = @from + 20 + end + if @to > @from + data = data.split("\n")[@from..@to].join("\n") + end + end + + extension = @file.split(".")[-1] + @lang = extension + + truncated = false + if data.length > SiteSetting.onebox_max_chars + data = data[0..SiteSetting.onebox_max_chars-1] + truncated = true + end + + {content: data, truncated: truncated} + end + + end +end + diff --git a/spec/fixtures/onebox/githubcommit.response b/spec/fixtures/onebox/githubcommit.response new file mode 100644 index 00000000000..46944600abc --- /dev/null +++ b/spec/fixtures/onebox/githubcommit.response @@ -0,0 +1,87 @@ +{ + "sha": "803d023e2307309f8b776ab3b8b7e38ba91c0919", + "commit": { + "author": { + "name": "Sam", + "email": "sam.saffron@gmail.com", + "date": "2013-08-02T02:03:53Z" + }, + "committer": { + "name": "Sam", + "email": "sam.saffron@gmail.com", + "date": "2013-08-02T02:16:44Z" + }, + "message": "Fixed GitHub auth, GitHub can provide us with a valid email - so automatically log in for those cases", + "tree": { + "sha": "8e0f3e17bb5ee3edc5701229dc1ad82dc5a41de6", + "url": "https://api.github.com/repos/discourse/discourse/git/trees/8e0f3e17bb5ee3edc5701229dc1ad82dc5a41de6" + }, + "url": "https://api.github.com/repos/discourse/discourse/git/commits/803d023e2307309f8b776ab3b8b7e38ba91c0919", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/discourse/discourse/commits/803d023e2307309f8b776ab3b8b7e38ba91c0919", + "html_url": "https://github.com/discourse/discourse/commit/803d023e2307309f8b776ab3b8b7e38ba91c0919", + "comments_url": "https://api.github.com/repos/discourse/discourse/commits/803d023e2307309f8b776ab3b8b7e38ba91c0919/comments", + "author": { + "login": "SamSaffron", + "id": 5213, + "avatar_url": "https://2.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce?d=https%3A%2F%2Fidenticons.github.com%2F7d3010c11d08cf990b7614d2c2ca9098.png", + "gravatar_id": "3dcae8378d46c244172a115c28ca49ce", + "url": "https://api.github.com/users/SamSaffron", + "html_url": "https://github.com/SamSaffron", + "followers_url": "https://api.github.com/users/SamSaffron/followers", + "following_url": "https://api.github.com/users/SamSaffron/following{/other_user}", + "gists_url": "https://api.github.com/users/SamSaffron/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SamSaffron/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SamSaffron/subscriptions", + "organizations_url": "https://api.github.com/users/SamSaffron/orgs", + "repos_url": "https://api.github.com/users/SamSaffron/repos", + "events_url": "https://api.github.com/users/SamSaffron/events{/privacy}", + "received_events_url": "https://api.github.com/users/SamSaffron/received_events", + "type": "User" + }, + "committer": { + "login": "SamSaffron", + "id": 5213, + "avatar_url": "https://2.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce?d=https%3A%2F%2Fidenticons.github.com%2F7d3010c11d08cf990b7614d2c2ca9098.png", + "gravatar_id": "3dcae8378d46c244172a115c28ca49ce", + "url": "https://api.github.com/users/SamSaffron", + "html_url": "https://github.com/SamSaffron", + "followers_url": "https://api.github.com/users/SamSaffron/followers", + "following_url": "https://api.github.com/users/SamSaffron/following{/other_user}", + "gists_url": "https://api.github.com/users/SamSaffron/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SamSaffron/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SamSaffron/subscriptions", + "organizations_url": "https://api.github.com/users/SamSaffron/orgs", + "repos_url": "https://api.github.com/users/SamSaffron/repos", + "events_url": "https://api.github.com/users/SamSaffron/events{/privacy}", + "received_events_url": "https://api.github.com/users/SamSaffron/received_events", + "type": "User" + }, + "parents": [ + { + "sha": "cf333268d5b48946a659f173716aecc1096d7e66", + "url": "https://api.github.com/repos/discourse/discourse/commits/cf333268d5b48946a659f173716aecc1096d7e66", + "html_url": "https://github.com/discourse/discourse/commit/cf333268d5b48946a659f173716aecc1096d7e66" + } + ], + "stats": { + "total": 20, + "additions": 18, + "deletions": 2 + }, + "files": [ + { + "sha": "0edc93bbf3d28a5020ee8b2d44ed68d4e3706a1f", + "filename": "app/controllers/users/omniauth_callbacks_controller.rb", + "status": "modified", + "additions": 18, + "deletions": 2, + "changes": 20, + "blob_url": "https://github.com/discourse/discourse/blob/803d023e2307309f8b776ab3b8b7e38ba91c0919/app/controllers/users/omniauth_callbacks_controller.rb", + "raw_url": "https://github.com/discourse/discourse/raw/803d023e2307309f8b776ab3b8b7e38ba91c0919/app/controllers/users/omniauth_callbacks_controller.rb", + "contents_url": "https://api.github.com/repos/discourse/discourse/contents/app/controllers/users/omniauth_callbacks_controller.rb?ref=803d023e2307309f8b776ab3b8b7e38ba91c0919", + "patch": "@@ -210,6 +210,8 @@ def create_or_sign_on_user_using_openid(auth_token)\n \n if user_open_id.blank? && user = User.find_by_email(email)\n # we trust so do an email lookup\n+ # TODO some openid providers may not be trust worthy, allow for that\n+ # for now we are good (google, yahoo are trust worthy)\n user_open_id = UserOpenId.create(url: identity_url , user_id: user.id, email: email, active: true)\n end\n \n@@ -250,18 +252,32 @@ def create_or_sign_on_user_using_github(auth_token)\n \n data = auth_token[:info]\n screen_name = data[\"nickname\"]\n+ email = data[\"email\"]\n github_user_id = auth_token[\"uid\"]\n \n session[:authentication] = {\n github_user_id: github_user_id,\n- github_screen_name: screen_name\n+ github_screen_name: screen_name,\n+ email: email,\n+ email_valid: true\n }\n \n user_info = GithubUserInfo.where(github_user_id: github_user_id).first\n \n+ if !user_info && user = User.find_by_email(email)\n+ # we trust so do an email lookup\n+ user_info = GithubUserInfo.create(\n+ user_id: user.id,\n+ screen_name: screen_name,\n+ github_user_id: github_user_id\n+ )\n+ end\n+\n @data = {\n username: screen_name,\n- auth_provider: \"Github\"\n+ auth_provider: \"Github\",\n+ email: email,\n+ email_valid: true\n }\n \n process_user_info(user_info, screen_name)" + } + ] +} diff --git a/spec/fixtures/onebox/githubfolder-discourse-root.response b/spec/fixtures/onebox/githubfolder-discourse-root.response new file mode 100644 index 00000000000..23075c565b4 --- /dev/null +++ b/spec/fixtures/onebox/githubfolder-discourse-root.response @@ -0,0 +1,2358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to content + + + + + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + +
+ +
+ +
+

+ + + / + + discourse + + +

+ + +
+ + + +
+
+

+ A platform for community discussion. Free, open, simple. +

+
+ + + www.discourse.org + +
+ + +
+ + +
+
+ + + +
+ + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + + + +
+ +
+
+ + + master + + + + +
+ + + +
+
+
+ +
+ + + + +
+ + + Go to file + + + + + + + +
+ + + Code + +
+ +
+
+
+ + + +
+
+ + + + +
+
+

Latest commit

+
+ +
+
 
+
+

Git stats

+ +
+
+
+

Files

+ + + + + Permalink + +
+ + + Failed to load latest commit information. + +
+
+
+
Type
+
Name
+
Latest commit message
+
Commit time
+
+ +
+
+ + +
+ +
+ .github +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ app +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ bin +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ config +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ db +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ docs +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ images +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ lib +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ log +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ plugins +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ public +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ script +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ spec +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ test +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ vendor +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ .eslintrc +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ .rspec +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ Brewfile +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ Gemfile +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ README.md +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ Rakefile +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ adminjs +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ config.ru +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ d +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ jsapp +
+ +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ + + +
+
 
+
+ +
+
 
+
+ +
+
+
+ + +
+ +
+ yarn.lock +
+ +
+
 
+
+ +
+
 
+
+ +
+
+ +
+ +
+ + +
+ +
+
+

+ README.md +

+
+ + +
+

+

Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a:

+
    +
  • mailing list
  • +
  • discussion forum
  • +
  • long-form chat room
  • +
+

To learn more about the philosophy and goals of the project, visit discourse.org.

+

Screenshots

+

Boing Boing + + +

+

Mobile

+

Browse lots more notable Discourse instances.

+

Development

+

To get your environment setup, follow the community setup guide for your operating system.

+
    +
  1. If you're on macOS, try the macOS development guide.
  2. +
  3. If you're on Ubuntu, try the Ubuntu development guide.
  4. +
  5. If you're on Windows, try the Windows 10 development guide.
  6. +
+

If you're familiar with how Rails works and are comfortable setting up your own environment, you can also try out the Discourse Advanced Developer Guide, which is aimed primarily at Ubuntu and macOS environments.

+

Before you get started, ensure you have the following minimum versions: Ruby 2.6+, PostgreSQL 10+, Redis 4.0+. If you're having trouble, please see our TROUBLESHOOTING GUIDE first!

+

Setting up Discourse

+

If you want to set up a Discourse forum for production use, see our Discourse Install Guide.

+

If you're looking for business class hosting, see discourse.org/buy.

+

Requirements

+

Discourse is built for the next 10 years of the Internet, so our requirements are high.

+

Discourse supports the latest, stable releases of all major browsers and platforms:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BrowsersTabletsPhones
Apple SafariiPadOSiOS
Google ChromeAndroidAndroid
Microsoft Edge
Mozilla Firefox
+

Built With

+
    +
  • Ruby on Rails — Our back end API is a Rails app. It responds to requests RESTfully in JSON.
  • +
  • Ember.js — Our front end is an Ember.js app that communicates with the Rails API.
  • +
  • PostgreSQL — Our main data store is in Postgres.
  • +
  • Redis — We use Redis as a cache and for transient data.
  • +
  • BrowserStack — We use BrowserStack to test on real devices and browsers.
  • +
+

Plus lots of Ruby Gems, a complete list of which is at /master/Gemfile.

+

Contributing

+

Build Status

+

Discourse is 100% free and open source. We encourage and support an active, healthy community that +accepts contributions from the public – including you!

+

Before contributing to Discourse:

+
    +
  1. Please read the complete mission statements on discourse.org. Yes we actually believe this stuff; you should too.
  2. +
  3. Read and sign the Electronic Discourse Forums Contribution License Agreement.
  4. +
  5. Dig into CONTRIBUTING.MD, which covers submitting bugs, requesting new features, preparing your code for a pull request, etc.
  6. +
  7. Always strive to collaborate with mutual respect.
  8. +
  9. Not sure what to work on? We've got some ideas.
  10. +
+

We look forward to seeing your pull requests!

+

Security

+

We take security very seriously at Discourse; all our code is 100% open source and peer reviewed. Please read our security guide for an overview of security measures in Discourse, or if you wish to report a security issue.

+

The Discourse Team

+

The original Discourse code contributors can be found in AUTHORS.MD. For a complete list of the many individuals that contributed to the design and implementation of Discourse, please refer to the official Discourse blog and GitHub's list of contributors.

+

Copyright / License

+

Copyright 2014 - 2020 Civilized Discourse Construction Kit, Inc.

+

Licensed under the GNU General Public License Version 2.0 (or later); +you may not use this work except in compliance with the License. +You may obtain a copy of the License in the LICENSE file, or at:

+

https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

+

Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

+

Discourse logo and “Discourse Forum” ®, Civilized Discourse Construction Kit, Inc.

+

Dedication

+

Discourse is built with love, Internet style.

+
+
+
+ + +
+
+ + +
+
+
+

About

+ +

+ A platform for community discussion. Free, open, simple. +

+
+ + + www.discourse.org + +
+ +

Topics

+ + +

Resources

+ + +

License

+ + +
+
+ +
+
+

+ + Contributors 794 +

+ + + +
    +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
  • +
    +
  • +
+
+ + +
+
+ +
+ +
+ +
+
+ +
+
+ +
+ + + + + + +
+ + + You can’t perform that action at this time. +
+ + + + + + + + + + + + diff --git a/spec/fixtures/onebox/githubfolder.response b/spec/fixtures/onebox/githubfolder.response new file mode 100644 index 00000000000..6e2ae422213 --- /dev/null +++ b/spec/fixtures/onebox/githubfolder.response @@ -0,0 +1,1549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discourse/spec/fixtures at master · discourse/discourse · GitHub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to content + + + + + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + + + +
+
+
+ + + + + + + + + + + + + + +
+ +
+ +
+

+ + + / + + discourse + + +

+ + +
+ + + +
+ + +
+ + +
+
+ + + +
+ +
+
+ + + master + + + + +
+ + + +
+
+
+ +
+ + +
+
+ discourse/spec/fixtures/ +
+
+ + +
+ +
discourse/spec/fixtures/
+ + + +
+
+

Latest commit

+
+ +
+ +
+
+ + @jbrw +
+
+ +
+ +
+ + +
#11253)
+
+* FEATURE: display error if Oneboxing fails due to HTTP error
+
+- display warning if onebox URL is unresolvable
+- display warning if attributes are missing
+
+* FEATURE: Use new Instagram oEmbed endpoint if access token is configured
+
+Instagram requires an Access Token to access their oEmbed endpoint. The requirements (from https://developers.facebook.com/docs/instagram/oembed/) are as follows:
+
+- a Facebook Developer account, which you can create at developers.facebook.com
+- a registered Facebook app
+- the oEmbed Product added to the app
+- an Access Token
+- The Facebook app must be in Live Mode
+
+The generated Access Token, once added to SiteSetting.facebook_app_access_token, will be passed to onebox. Onebox can then use this token to access the oEmbed endpoint to generate a onebox for Instagram.
+
+* DEV: update user agent string
+
+* DEV: don’t do HEAD requests against news.yahoo.com
+
+* DEV: Bump onebox version from 2.1.5 to 2.1.6
+
+* DEV: Avoid re-reading templates
+
+* DEV: Tweaks to onebox mustache templates
+
+* DEV: simplified error message for missing onebox data
+
+* Apply suggestions from code review
+Co-authored-by: Gerhard Schlager <mail@gerhard-schlager.at>
+
+ 331236d +
+
+
+

Git stats

+ +
+
+
+

Files

+ + + + Permalink + +
+ + + Failed to load latest commit information. + +
+
+
+
Type
+
Name
+
Latest commit message
+
Commit time
+
+
+ +
+
+
+ +
+
+ + +
+ +
+ backups +
+ + + +
+ Aug 21, 2020 +
+ +
+
+
+ + +
+ +
+ csv +
+ + + +
+ Jul 29, 2020 +
+ +
+
+
+ + +
+ +
+ db +
+ + + +
+ Jun 16, 2020 +
+ +
+
+
+ + +
+ +
+ emails +
+ + + +
+ Jul 27, 2020 +
+ +
+
+
+ + +
+ +
+ encodings +
+ + + +
+ Aug 1, 2018 +
+ +
+
+
+ + +
+ +
+ feed +
+ + + +
+ Aug 1, 2018 +
+ +
+
+
+ + +
+ +
+ i18n +
+ + + +
+ Jun 5, 2019 +
+ +
+
+
+ + +
+ +
+ images +
+ + + +
+ Oct 26, 2020 +
+ +
+
+
+ + +
+ +
+ json +
+ + + +
+ Aug 24, 2020 +
+ +
+
+
+ + +
+ +
+ md +
+ + + +
+ Oct 8, 2019 +
+ +
+
+
+ + +
+ +
+ media +
+ + + +
+ Jun 17, 2020 +
+ +
+
+
+ + +
+ +
+ mmdb +
+ + + +
+ Oct 25, 2018 +
+ +
+
+
+ + +
+ +
+ multisite +
+ + + +
+ Aug 8, 2017 +
+ +
+
+
+ + +
+ +
+ onebox +
+ + + +
+ Nov 18, 2020 +
+ +
+
+
+ + +
+ +
+ pdf +
+ + + +
+ Jul 25, 2019 +
+ +
+
+
+ + +
+ +
+ plugins +
+ + + +
+ Nov 11, 2020 +
+ +
+
+
+ + +
+ +
+ scss +
+ + + +
+ Sep 21, 2018 +
+ +
+
+
+ + +
+ + + + + +
+ Aug 15, 2017 +
+ +
+
+
+ + +
+ + + + + +
+ Apr 15, 2020 +
+ +
+
+
+ + +
+ +
+ themes +
+ + + +
+ Oct 14, 2019 +
+ +
+
+
+ + +
+ +
+ woff2 +
+ + + +
+ May 10, 2017 +
+ +
+
+
+ + + + +
+ + + + + +
+
+ +
+
+ +
+ + + + + + +
+ + + You can’t perform that action at this time. +
+ + + + + + + + + + + + diff --git a/spec/fixtures/onebox/githubgist.response b/spec/fixtures/onebox/githubgist.response new file mode 100644 index 00000000000..5975d952560 --- /dev/null +++ b/spec/fixtures/onebox/githubgist.response @@ -0,0 +1,310 @@ +{ + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b", + "forks_url": "https://api.github.com/gists/208fdd59fc4b4c39283b/forks", + "commits_url": "https://api.github.com/gists/208fdd59fc4b4c39283b/commits", + "id": "208fdd59fc4b4c39283b", + "git_pull_url": "https://gist.github.com/208fdd59fc4b4c39283b.git", + "git_push_url": "https://gist.github.com/208fdd59fc4b4c39283b.git", + "html_url": "https://gist.github.com/208fdd59fc4b4c39283b", + "files": { + "0.rb": { + "filename": "0.rb", + "type": "application/x-ruby", + "language": "Ruby", + "raw_url": "https://gist.githubusercontent.com/karreiro/208fdd59fc4b4c39283b/raw/42864e791652564ec50f773589df168998fbfdf7/0.rb", + "size": 384, + "truncated": false, + "content": "3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n\n3.times { puts \"Gist API test.\" }\n" + }, + "1.js": { + "filename": "1.js", + "type": "application/javascript", + "language": "JavaScript", + "raw_url": "https://gist.githubusercontent.com/karreiro/208fdd59fc4b4c39283b/raw/767c3a1cec198cc2a9e6bf8a8043977cfcf3a469/1.js", + "size": 22, + "truncated": false, + "content": "console.log(\"Hey! ;)\")" + }, + "2.md": { + "filename": "2.md", + "type": "text/plain", + "language": "Markdown", + "raw_url": "https://gist.githubusercontent.com/karreiro/208fdd59fc4b4c39283b/raw/5da5715735f9d4d908003b4656426d53bfd69a96/2.md", + "size": 25, + "truncated": false, + "content": "#### Hey, this is a test!" + }, + "3.java": { + "filename": "3.java", + "type": "text/plain", + "language": "Java", + "raw_url": "https://gist.githubusercontent.com/karreiro/208fdd59fc4b4c39283b/raw/1a5f6d12fc557951f87b52f91c9cb8d6bdb2562d/3.java", + "size": 43, + "truncated": false, + "content": "System.out.println(\"Wow! This is a test!\");" + } + }, + "public": true, + "created_at": "2014-11-23T20:34:53Z", + "updated_at": "2014-11-26T01:06:05Z", + "description": "", + "comments": 0, + "user": null, + "comments_url": "https://api.github.com/gists/208fdd59fc4b4c39283b/comments", + "owner": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "forks": [ + + ], + "history": [ + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "e272e4f835e80f53fb61df2dca190fdc84b9077d", + "committed_at": "2014-11-26T01:06:05Z", + "change_status": { + "total": 4, + "additions": 2, + "deletions": 2 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/e272e4f835e80f53fb61df2dca190fdc84b9077d" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "3e26db8aae98340fce9d0eed3e0105c78dc440e9", + "committed_at": "2014-11-26T01:05:48Z", + "change_status": { + "total": 48, + "additions": 24, + "deletions": 24 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/3e26db8aae98340fce9d0eed3e0105c78dc440e9" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "4ad435c22f01aca33b6b9425505b257b8e79fe51", + "committed_at": "2014-11-26T01:05:16Z", + "change_status": { + "total": 22, + "additions": 21, + "deletions": 1 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/4ad435c22f01aca33b6b9425505b257b8e79fe51" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "766d913a9bbe70181944a7a74818db5a1531d7e2", + "committed_at": "2014-11-26T00:56:12Z", + "change_status": { + "total": 2, + "additions": 2, + "deletions": 0 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/766d913a9bbe70181944a7a74818db5a1531d7e2" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "0b66a247bcbcdaeaee33b43a3b8accd499f82c8d", + "committed_at": "2014-11-24T23:48:58Z", + "change_status": { + "total": 1, + "additions": 1, + "deletions": 0 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/0b66a247bcbcdaeaee33b43a3b8accd499f82c8d" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "310b5888a5ee830a38972f0fbace28055ab05759", + "committed_at": "2014-11-24T23:47:40Z", + "change_status": { + "total": 99, + "additions": 0, + "deletions": 99 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/310b5888a5ee830a38972f0fbace28055ab05759" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "dc19c6c9c36079f56363062eea81e448fe1f996e", + "committed_at": "2014-11-24T01:06:00Z", + "change_status": { + "total": 99, + "additions": 99, + "deletions": 0 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/dc19c6c9c36079f56363062eea81e448fe1f996e" + }, + { + "user": { + "login": "karreiro", + "id": 1079279, + "avatar_url": "https://avatars.githubusercontent.com/u/1079279?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/karreiro", + "html_url": "https://github.com/karreiro", + "followers_url": "https://api.github.com/users/karreiro/followers", + "following_url": "https://api.github.com/users/karreiro/following{/other_user}", + "gists_url": "https://api.github.com/users/karreiro/gists{/gist_id}", + "starred_url": "https://api.github.com/users/karreiro/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/karreiro/subscriptions", + "organizations_url": "https://api.github.com/users/karreiro/orgs", + "repos_url": "https://api.github.com/users/karreiro/repos", + "events_url": "https://api.github.com/users/karreiro/events{/privacy}", + "received_events_url": "https://api.github.com/users/karreiro/received_events", + "type": "User", + "site_admin": false + }, + "version": "9ec949557a17391117a30aebcd907a14d61eae88", + "committed_at": "2014-11-23T20:34:53Z", + "change_status": { + "total": 1, + "additions": 1, + "deletions": 0 + }, + "url": "https://api.github.com/gists/208fdd59fc4b4c39283b/9ec949557a17391117a30aebcd907a14d61eae88" + } + ] +} \ No newline at end of file diff --git a/spec/fixtures/onebox/githubpullrequest.response b/spec/fixtures/onebox/githubpullrequest.response new file mode 100644 index 00000000000..01ad3e48bdd --- /dev/null +++ b/spec/fixtures/onebox/githubpullrequest.response @@ -0,0 +1,216 @@ +{ + "url": "https://api.github.com/repos/discourse/discourse/pulls/1253", + "id": 7186071, + "html_url": "https://github.com/discourse/discourse/pull/1253", + "diff_url": "https://github.com/discourse/discourse/pull/1253.diff", + "patch_url": "https://github.com/discourse/discourse/pull/1253.patch", + "issue_url": "https://github.com/discourse/discourse/pull/1253", + "number": 1253, + "state": "closed", + "title": "Add audio onebox", + "user": { + "login": "jamesaanderson", + "id": 2722987, + "avatar_url": "https://0.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21?d=https%3A%2F%2Fidenticons.github.com%2Fb4a68f5d10a482ee680e30f88540942a.png", + "gravatar_id": "b3e9977094ce189bbb493cf7f9adea21", + "url": "https://api.github.com/users/jamesaanderson", + "html_url": "https://github.com/jamesaanderson", + "followers_url": "https://api.github.com/users/jamesaanderson/followers", + "following_url": "https://api.github.com/users/jamesaanderson/following{/other_user}", + "gists_url": "https://api.github.com/users/jamesaanderson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jamesaanderson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jamesaanderson/subscriptions", + "organizations_url": "https://api.github.com/users/jamesaanderson/orgs", + "repos_url": "https://api.github.com/users/jamesaanderson/repos", + "events_url": "https://api.github.com/users/jamesaanderson/events{/privacy}", + "received_events_url": "https://api.github.com/users/jamesaanderson/received_events", + "type": "User" + }, + "body": "http://meta.discourse.org/t/audio-html5-tag/8168", + "created_at": "2013-07-26T02:05:53Z", + "updated_at": "2013-07-26T15:31:57Z", + "closed_at": "2013-07-26T15:30:57Z", + "merged_at": "2013-07-26T15:30:57Z", + "merge_commit_sha": null, + "assignee": null, + "milestone": null, + "commits_url": "https://github.com/discourse/discourse/pull/1253/commits", + "review_comments_url": "https://github.com/discourse/discourse/pull/1253/comments", + "review_comment_url": "/repos/discourse/discourse/pulls/comments/{number}", + "comments_url": "https://api.github.com/repos/discourse/discourse/issues/1253/comments", + "head": { + "label": "jamesaanderson:add-audio-onebox", + "ref": "add-audio-onebox", + "sha": "d7d3be1130c665cc7fab9f05dbf32335229137a6", + "user": { + "login": "jamesaanderson", + "id": 2722987, + "avatar_url": "https://0.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21?d=https%3A%2F%2Fidenticons.github.com%2Fb4a68f5d10a482ee680e30f88540942a.png", + "gravatar_id": "b3e9977094ce189bbb493cf7f9adea21", + "url": "https://api.github.com/users/jamesaanderson", + "html_url": "https://github.com/jamesaanderson", + "followers_url": "https://api.github.com/users/jamesaanderson/followers", + "following_url": "https://api.github.com/users/jamesaanderson/following{/other_user}", + "gists_url": "https://api.github.com/users/jamesaanderson/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jamesaanderson/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jamesaanderson/subscriptions", + "organizations_url": "https://api.github.com/users/jamesaanderson/orgs", + "repos_url": "https://api.github.com/users/jamesaanderson/repos", + "events_url": "https://api.github.com/users/jamesaanderson/events{/privacy}", + "received_events_url": "https://api.github.com/users/jamesaanderson/received_events", + "type": "User" + }, + "repo": null + }, + "base": { + "label": "discourse:master", + "ref": "master", + "sha": "cc79d22f82ede170dd86a05274eb3c2c5eb02912", + "user": { + "login": "discourse", + "id": 3220138, + "avatar_url": "https://0.gravatar.com/avatar/b30fff48d257cdd17c4437afac19fd30?d=https%3A%2F%2Fidenticons.github.com%2Fa42d8d01d12f7137e49e7c1ee1b2b3f0.png", + "gravatar_id": "b30fff48d257cdd17c4437afac19fd30", + "url": "https://api.github.com/users/discourse", + "html_url": "https://github.com/discourse", + "followers_url": "https://api.github.com/users/discourse/followers", + "following_url": "https://api.github.com/users/discourse/following{/other_user}", + "gists_url": "https://api.github.com/users/discourse/gists{/gist_id}", + "starred_url": "https://api.github.com/users/discourse/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/discourse/subscriptions", + "organizations_url": "https://api.github.com/users/discourse/orgs", + "repos_url": "https://api.github.com/users/discourse/repos", + "events_url": "https://api.github.com/users/discourse/events{/privacy}", + "received_events_url": "https://api.github.com/users/discourse/received_events", + "type": "Organization" + }, + "repo": { + "id": 7569578, + "name": "discourse", + "full_name": "discourse/discourse", + "owner": { + "login": "discourse", + "id": 3220138, + "avatar_url": "https://0.gravatar.com/avatar/b30fff48d257cdd17c4437afac19fd30?d=https%3A%2F%2Fidenticons.github.com%2Fa42d8d01d12f7137e49e7c1ee1b2b3f0.png", + "gravatar_id": "b30fff48d257cdd17c4437afac19fd30", + "url": "https://api.github.com/users/discourse", + "html_url": "https://github.com/discourse", + "followers_url": "https://api.github.com/users/discourse/followers", + "following_url": "https://api.github.com/users/discourse/following{/other_user}", + "gists_url": "https://api.github.com/users/discourse/gists{/gist_id}", + "starred_url": "https://api.github.com/users/discourse/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/discourse/subscriptions", + "organizations_url": "https://api.github.com/users/discourse/orgs", + "repos_url": "https://api.github.com/users/discourse/repos", + "events_url": "https://api.github.com/users/discourse/events{/privacy}", + "received_events_url": "https://api.github.com/users/discourse/received_events", + "type": "Organization" + }, + "private": false, + "html_url": "https://github.com/discourse/discourse", + "description": "A platform for community discussion. Free, open, simple.", + "fork": false, + "url": "https://api.github.com/repos/discourse/discourse", + "forks_url": "https://api.github.com/repos/discourse/discourse/forks", + "keys_url": "https://api.github.com/repos/discourse/discourse/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/discourse/discourse/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/discourse/discourse/teams", + "hooks_url": "https://api.github.com/repos/discourse/discourse/hooks", + "issue_events_url": "https://api.github.com/repos/discourse/discourse/issues/events{/number}", + "events_url": "https://api.github.com/repos/discourse/discourse/events", + "assignees_url": "https://api.github.com/repos/discourse/discourse/assignees{/user}", + "branches_url": "https://api.github.com/repos/discourse/discourse/branches{/branch}", + "tags_url": "https://api.github.com/repos/discourse/discourse/tags", + "blobs_url": "https://api.github.com/repos/discourse/discourse/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/discourse/discourse/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/discourse/discourse/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/discourse/discourse/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/discourse/discourse/statuses/{sha}", + "languages_url": "https://api.github.com/repos/discourse/discourse/languages", + "stargazers_url": "https://api.github.com/repos/discourse/discourse/stargazers", + "contributors_url": "https://api.github.com/repos/discourse/discourse/contributors", + "subscribers_url": "https://api.github.com/repos/discourse/discourse/subscribers", + "subscription_url": "https://api.github.com/repos/discourse/discourse/subscription", + "commits_url": "https://api.github.com/repos/discourse/discourse/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/discourse/discourse/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/discourse/discourse/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/discourse/discourse/issues/comments/{number}", + "contents_url": "https://api.github.com/repos/discourse/discourse/contents/{+path}", + "compare_url": "https://api.github.com/repos/discourse/discourse/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/discourse/discourse/merges", + "archive_url": "https://api.github.com/repos/discourse/discourse/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/discourse/discourse/downloads", + "issues_url": "https://api.github.com/repos/discourse/discourse/issues{/number}", + "pulls_url": "https://api.github.com/repos/discourse/discourse/pulls{/number}", + "milestones_url": "https://api.github.com/repos/discourse/discourse/milestones{/number}", + "notifications_url": "https://api.github.com/repos/discourse/discourse/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/discourse/discourse/labels{/name}", + "created_at": "2013-01-12T00:25:55Z", + "updated_at": "2013-09-28T16:44:54Z", + "pushed_at": "2013-09-27T19:08:59Z", + "git_url": "git://github.com/discourse/discourse.git", + "ssh_url": "git@github.com:discourse/discourse.git", + "clone_url": "https://github.com/discourse/discourse.git", + "svn_url": "https://github.com/discourse/discourse", + "homepage": "http://www.discourse.org", + "size": 48020, + "watchers_count": 7857, + "language": "JavaScript", + "has_issues": true, + "has_downloads": true, + "has_wiki": true, + "forks_count": 1876, + "mirror_url": null, + "open_issues_count": 38, + "forks": 1876, + "open_issues": 38, + "watchers": 7857, + "master_branch": "master", + "default_branch": "master" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/discourse/discourse/pulls/1253" + }, + "html": { + "href": "https://github.com/discourse/discourse/pull/1253" + }, + "issue": { + "href": "https://api.github.com/repos/discourse/discourse/issues/1253" + }, + "comments": { + "href": "https://api.github.com/repos/discourse/discourse/issues/1253/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/discourse/discourse/pulls/1253/comments" + } + }, + "merged": true, + "mergeable": null, + "mergeable_state": "unknown", + "merged_by": { + "login": "eviltrout", + "id": 17538, + "avatar_url": "https://0.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9?d=https%3A%2F%2Fidenticons.github.com%2Fba01baa4856d494a66a0d5eca39f5418.png", + "gravatar_id": "c6e17f2ae2a215e87ff9e878a4e63cd9", + "url": "https://api.github.com/users/eviltrout", + "html_url": "https://github.com/eviltrout", + "followers_url": "https://api.github.com/users/eviltrout/followers", + "following_url": "https://api.github.com/users/eviltrout/following{/other_user}", + "gists_url": "https://api.github.com/users/eviltrout/gists{/gist_id}", + "starred_url": "https://api.github.com/users/eviltrout/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/eviltrout/subscriptions", + "organizations_url": "https://api.github.com/users/eviltrout/orgs", + "repos_url": "https://api.github.com/users/eviltrout/repos", + "events_url": "https://api.github.com/users/eviltrout/events{/privacy}", + "received_events_url": "https://api.github.com/users/eviltrout/received_events", + "type": "User" + }, + "comments": 2, + "review_comments": 0, + "commits": 1, + "additions": 19, + "deletions": 1, + "changed_files": 4 +} diff --git a/spec/fixtures/onebox/gitlabblob.response b/spec/fixtures/onebox/gitlabblob.response new file mode 100644 index 00000000000..9249619b61e --- /dev/null +++ b/spec/fixtures/onebox/gitlabblob.response @@ -0,0 +1,21 @@ +require_relative '../mixins/git_blob_onebox' + +module Onebox + module Engine + class GitlabBlobOnebox + def self.git_regexp + /^https?:\/\/(www\.)?gitlab\.com.*\/blob\// + end + include Onebox::Mixins::GitBlobOnebox + def raw_regexp + /gitlab\.com\/(?[^\/]+)\/(?[^\/]+)\/blob\/(?[^\/]+)\/(?[^#]+)(#(L(?[^-]*)(-L(?.*))?))?/mi + end + def raw_template(m) + "https://gitlab.com/#{m[:user]}/#{m[:repo]}/raw/#{m[:sha1]}/#{m[:file]}" + end + def title + Sanitize.fragment(URI.unescape(link).sub(/^https?\:\/\/gitlab\.com\//, '')) + end + end + end +end diff --git a/spec/fixtures/onebox/googledocs.response b/spec/fixtures/onebox/googledocs.response new file mode 100644 index 00000000000..be56d2cf1cd --- /dev/null +++ b/spec/fixtures/onebox/googledocs.response @@ -0,0 +1,182 @@ +Lorem Ipsum! - Dokumenty Google
Lorem Ipsum
 Udostępnij
Używana przez Ciebie wersja przeglądarki nie jest już obsługiwana. Uaktualnij przeglądarkę do obsługiwanej wersji.Zamknij

diff --git a/spec/fixtures/onebox/googledrive.response b/spec/fixtures/onebox/googledrive.response new file mode 100644 index 00000000000..caaff11360c --- /dev/null +++ b/spec/fixtures/onebox/googledrive.response @@ -0,0 +1,304 @@ +test.txt - Google Drive + +
Google Account
John Doe
xyz@gmail.com
Main menu
diff --git a/spec/fixtures/onebox/googlephotos.response b/spec/fixtures/onebox/googlephotos.response new file mode 100644 index 00000000000..dd4898a5219 --- /dev/null +++ b/spec/fixtures/onebox/googlephotos.response @@ -0,0 +1,800 @@ + +Mesmerizing Singapore - Google Photos

Press question mark to see available shortcut keys

Mesmerizing Singapore
Sep 23–29
 · 
Shared
Arpit Jalan (Owner)
Add photos
Automatically add photos of people & pets
Select photos
Tip: Drag photos & videos anywhere to upload
Google apps
Main menu
diff --git a/spec/fixtures/onebox/googleplayapp.response b/spec/fixtures/onebox/googleplayapp.response new file mode 100644 index 00000000000..8c21dbacc2c --- /dev/null +++ b/spec/fixtures/onebox/googleplayapp.response @@ -0,0 +1,2269 @@ +Hulu: Stream TV, Movies & more - Apps on Google Play

Hulu: Stream TV, Movies & more

Contains Ads

Enjoy all your TV in one place with a new Hulu experience – more personalized and intuitive than ever before.

The choice is yours - select a plan featuring Hulu’s entire streaming library or one that includes the entire library plus 50+ top Live and On Demand channels.

Access Hulu’s huge streaming library featuring current and past seasons from many popular shows exclusively streaming on Hulu including Seinfeld, Fargo, South Park and Fear the Walking Dead; bold Hulu Originals you can’t stream anywhere else including The Handmaid’s Tale, Harlots, The Mindy Project, and Casual; along with current shows, hit movies, kid’s series and more from many top channels including FOX, NBC, Disney Channel, ABC, Cartoon Network, FX and A&E. Limited and commercial-free options are available for Hulu plans without Live TV.

And now choose from an option to stream Hulu’s entire library, plus over 50 top Live and On Demand channels, including FOX, ABC, NBC, CBS, ESPN, FX, NBCSN, FS1, History Channel and TNT. Watch live sports from top pro and college leagues plus regional sports networks available in many areas. Plus, enjoy national news with local feeds available in select cities, popular kids shows and can’t-miss events.

Features

With any subscription, you’ll enjoy the following features that enhance how you watch TV:
• The more you watch, the better it gets. Enjoy a reimagined TV experience that adjusts to your tastes every time you use Hulu.
• Create up to 6 personalized profiles for the whole household. Enjoy your own collection of shows, movies, networks, and more.
• Track your favorites with My Stuff. Add shows, networks, and movies for quick access across your devices.
• Browse while you watch with Fliptray for recommendations of what to watch next.

Hulu with Live TV (Beta) provides access to additional features including:
• Record Live TV with your Cloud DVR to watch your favorites anytime.
• Watch concurrent streams on multiple devices.
• Track and record games from your favorite teams with My Teams.

Download the Hulu app now, and choose the Hulu with Live TV (Beta) plan which includes the entire Hulu streaming library plus over 50 Live and On Demand channels. Limited and No Commercials plans featuring Hulu’s streaming library without Live TV are also available – the choice is yours.

If you’re new to Hulu, your base Hulu subscription fee will be $7.99/month for the Limited Commercials plan or $11.99/month for the No Commercials plan, or starting at $39.99/month for a Hulu with Live TV (Beta) plan as a recurring transaction starting the end of your free trial (unless you cancel during the free trial). Payment will automatically renew unless you cancel your account at least 24 hours before the end of the current subscription month. You can manage your subscription, cancel anytime, or turn off auto-renewal by accessing your Hulu account via Settings. Hulu is available to US customers only.

Terms of Use: http://www.hulu.com/terms

Privacy Policy: http://www.hulu.com/privacy

This app features third party software, enabling third parties to calculate measurement statistics (e.g., Nielsen’s TV Ratings).

We may work with mobile advertising companies to help deliver online and in-app advertisements tailored to your interests based on your activities on our website and apps and on other, unaffiliated website and apps. To learn more, visit www.aboutads.info. To opt-out of online interest-based advertising, visit www.aboutads.info/choices. To opt-out of cross-app advertising, download the App Choices app at www.aboutads.info/appchoices. Hulu is committed to complying with the DAA’s Self-Regulatory Principles for Online Behavioral Advertising and the DAA’s Application of Self-Regulatory Principles for the Mobile Environment.

Hulu, LLC

Web Site: https://www.hulu.com/

Support: https://help.hulu.com/
Read more
4.0
325,156 total
5
4
3
2
1
Loading...

What's New

Various performance improvements and fixes
Read more

Additional Information

Updated
October 1, 2018
Size
Varies with device
Installs
10,000,000+
Current Version
Varies with device
Requires Android
5.0 and up
Content Rating
Rated for 12+
Parental Guidance Recommended
Interactive Elements
Shares Info
Permissions
Offered By
Hulu
©2018 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: IndiaLanguage: EnglishAll prices include GST.
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.
diff --git a/spec/fixtures/onebox/image.response b/spec/fixtures/onebox/image.response new file mode 100644 index 0000000000000000000000000000000000000000..03fdde670c3e4d2d91bcc29ec59d5746359caa9c GIT binary patch literal 266630 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⪻4T-lf_kd;mvaxMS^&8 zxl4TdDL+h4%7VZiK>q-5)lbg#Z_Wdr&P2fQHu6AcH8r`Fbup-+uF4>Y*i4fwhHH)k zF5aIk4g(AuA*N2~{Q}9iI?Po-`n0;RBKCK6x1%a^ytbMsqpGC~AQnL%z-{ZW5Xbby z>Pb18_y>-^HPNlLD9{l4U8hEX52*bSRP|K#aGB_-WQt2|Lh|lB{{Rps*pH`_i_d`3 zI-WVM8Sw1x-SXGXQ&mTw)+Cg)Ip$$SAdmo&2zRI+O5EE1r`HT>&#h6`b%yYyWQMi7wNf%8yn z!16QXv>xyphLf|N?!DnVMV4qo>F&<8W`7t-Ma0zk9c-zv+?$tJ$KM=`WoOf-_c5dh zGrHZ;2HY2>!R*>Ks?noVx8i8sVZZFQ{ALMcI<~$Rb zexYkdX!pH-fu6*@F-MYj0n_>RVzlrsf7%|f&54nMtg96Cv?xd?k^N1;`X4NN{)u&i z0hX9IJHG4U--!-k+IgxFLs-#s7j)`8SE*GQmQfs{oiEV=x#QjsJ1hML;yjzzkCx-TzDalq}k8` zBK+oU&x)^ly;P1xHdU0oqTpUAEDRvLqRTS zERa5Fn9=1Rf}a3p<&Oj5=g8spnB7B6ER-?0hg56pRTRPD&ye}*n%Op8P#LNz(y!ue zqE&S)K>ihCM?R+u{J{_Gi`$3UW~s9%)(#=rxNCkr+?6s@W|Wm=L7V23F?dClAw)v< z=n3kbZF>>MA5qlEn71fc=!&eYO(N*jL}}oPk3624%^qPvE@335-@n@Xum1qgMThDJ z5mBIkSp1{I?zT5*)Th|3PcZ)gFut1R8@)NLdb=@2tA;pZp{ID0V5Kt|B5~+J;18EL z={2;=NPB_jzvj4@%zKN6R0Bu&Oc8C@FsxfYl6j-0T`x^nPz8Wpjj();t?GEjBZP?| z_Fbm!d4@WJPk=kMw*LSEvpjsFzK~MpI(~ZUnB!Fefl@`fmIQD5@rxoQkLk6OjIKuAlE`$>BchtOf&`qs@GR;z0*>e0mJ+w z=VbZwN{r#@+Mq-eF*p@XZH&jb<-+f&XAj_?4}KrFu% zXwsS;Dw?tg=ccV@5~yU5NQcn*`E|Y_#9|4|T0884{U6xj-DYAA?}(ofWAhxA%8x+= z&$5<(5z^+Pa6;|q1+IO0!rsTY1DY33m3kCgEosnpw3+hJ4?&t`^%1<$s)P;UtdCR) z`I4-wW958ZY&B49Od`PJ=wz_$gBL$3kE&eJ;;eM1qppGlTRRpC`+i3J18#kAIB@7W z$AUee>NUF*-x^-r4WuYxqK0&hDrU@cSr*m=>`VUubASjxTobE0Wxb!83K#(DAXFvh zEjkm+fm2pxMk2A&W%)%W;uYGVH$8|pvW_o*wkr=@Ot_M-7qbO6GzKw&-{LopAPxN0 zPF;~^t5G7=Po`m`C9m$$2%beB+Fn$jrXNzc-qKHY_0ML@ zQAZM(-HyWBN$4B?7}(0LbFWT*Ui{J>v*=;z<)v5xH8KXH-K9WlGANz^Gbm=M+hIJj zD_i6jj+n43<~^9@Fq2xo5|aZu(&urp9zfsE!7`svX=&z_Df9fYN}w$vXjos%sT}=| zDeS0Sl(*;fL@`@A&IDFyaKFQ;;dNz`YF#-^sj_YIzl1Akw>qOTAKtGg{c)wZJVXgG z%G32IG23qn!tBP-ZZx*C4g8nqG2g;LS*iPIsg0IMm$fZK!rnpiY`}|ry)pU5y-)uD zbFaGSWVD#4j|B>;MGgpckH<>6gC*kDe}6i^`Q)TGzPw^~Fl8 zrdQo>?BLf0_Hb)Dc_^cjFZyECL`WtG*Evo_$MWm*$J4qOO#V^sZO&~x0{q$dtBq?m zv8MLOG}va+J5@Imb?L@=luerV-R#ynKXQ(TCG0y>)=3LaBz36Fbxu)EuVa2pS!Ap0 zV0?}}AjCPi%1w8}lA()hECM5xuK|j}v}|m&*a3ZZnI>d1i-`wc>UbjdJFL0(SSu+b zk_w3EX(^ZDH(-2058>601RJ01bQmrE8g%cLLK%7VN$1yf-`8 zHLbM%UW8%cq!}iBewJMS0MCerK_=V&%i+J;t5fg3(C+z%a!P-ula2A(#H|Gyk#Af1 zq%YeahBXViJAx$0>c{@4d*-~G?H-Zo21OecHc4;CH@cgjxyPNN zWRShpM#D!1#pLwh-|LMjK_`**^2AcQdDk` z)G|at_*Qx*+b7)eG3}_(X)q@IkIdia+`eZ0rd=i5tugacwxOo*MA?GJ1ud)=CRR)O zi*hkSg+SuMKm(ZhTjY(H#=W_p2g(nnyOC7digj|?eGIeHk#$9@2XOT_^1!MjG5WZP;VHf73rSE!rld93I@Q zCvk}I)5%dSHd9ehv(Z-96=>u)jF4qve|{fWy`xIGDDx_WhR- zW;#v#Hto8HK7v|vq&rG@a$M=6jyP65UrhvuEv%71v%P&Bbs2NY-xE(omu_Y+j%mcQ zm2+Lw{K#wj{{W%HXm_;twpVVx$b0Z@W1LS>Bwt!iB0&ED>AoBRuxsCz%a^G#%J(t~ z2x(SN%)(RzFt_%a{{W^sm8#Qi?d2a&y5h5CRb$AabekRiTsin9rlqNttenE9CZdc0 ztP;lGD=#0eB}Yh{qCN5nIBXq5P@1KnZ_s*bi-_pzde0sQUEyx+4Le+s=WF%G7E>Td zXxD)H1s*<4rvWJ8TZ|l!oEwr92(O|dr)G9DGozHj5 z-iw>6X^izNE@PJE?Mbi=;$|*b`E0h^eev>|RU&eE>**F>LdERf+g*yH+=pAbNz*_^ z#6PfX2klpvNubn|C1N)7fH4D15KP z8%OnqV3$Acj-Px`s?u~5$A5OI4%jpVvGmEEn@)19&MG0tgQwZNK-oaf)UYktN4BkJu{OJ7wg! zwT+F$%y{tfLq{DvDk>@;C7MHhyJOg^^a9t$rqLur0UuS$6&py3wQ?68P~TKI&FN*O zo=EGcyz_@V&-P}|$XEVhgiz*tHBw9*p zFyQ(AVB8!NsE1jm-hKKKuu$7BrU|Usi`ka%{ZP%H=Vr3>T6;CBQi9HBi9o-RQF5o{ zf&9EMfZsUX%v^aZskX77m=!5gE(c9LBTp4`CSzY5OloK*pp{qhN`tMsUkhs}&QL*j zhnGJk(yO)cCXuO8gdPPIOFnD(Va)Ri8K8uazq*LAL*xyvZS%GzS~?JW_kf*G9bfXj zb#}zq2){4ia-yis>7|XT61u(YNbur~khs4=asHU-F}460@F976yIzTDdtPUR-Q1@@ z2Xv~>a;cSLsz$7aip0v3Rd5#n0Nwup3^O}Ohun_;0MT<@gsD)9jkP^aXA|NeYspwr z>FQ{uHT0B}C&X3pJUUk1;{8i?#y+u)yF*749?zoe;r2NX>uEt2ixaOEu+rq!hC*Bl zXqW;PGFIdCzt@}%Y(doP!XSCX`mXL9V&Vh9c`cq62g6isc_mGCQH2%=DN$G!j$;ru z>dm-)I2gXWD4%|!$<5gnY7-y^jt3|sjBzTX`ZKwzr}rG1N~Mq=5hN_dc;vAiPty+k z<0edByVzJ+(NOYS%55$@UAxCa=$TQH%~eces*h|+yhbOu>(qq+6ZJO480O~#dYG++ zP|^aRfH!6Zv&$%l9#B<99$JvQQ$>?H6<#C}EJ{5&7-7UUy{U-s`7UM~X4LCCu|yX} zrW(*V-&4q=qssF7xMfMKM0>sq4}&daFnUyjW>pl9Bsb)lD27; z$6D~3oW63unT)6z8r+K$VlC%`rfNN-kG~ae#^A+MPqRK3<>H5{&EQEa6BW(3VR5Dgw~>DCN})4^%$SNf>CADlEEO5IDe@$B9)pZ;Wf4ui{`FjT zV+J6@NP&2R5#E}z8bw;cQ7tl{WM&a~3fJ-lxfc3j0@yJJdEA)FZldE^ptdH_0{jWz z^4COq=EfR*(^b&9kbdo_c^y}eCQ;Aw!YXAqnD@p$tE2hnQm2@aCrreXeQpK&_^SF0 z!#AyI^6IKVPe{sbP}4gj4?8XH2^}!UQ>NRuUSEAyEFLnwX1al34c>cDN1>ETWSM-C z)Y407+u>srkxHH*zZ*+8AaT^;EPMh3NFB${OwWSTLuOHXolLwsV#hH0jTXU|6kn<^@ZNqn=cO9P0N&2HqtlmBprLu71=F2 z)y&zAYRpFF8^bW&WazZ! z6seIFtR5H(t5|YFF(%jZ!8)y2HuXb8XJJ?x@g>dVe6JwJmx0YTY}%H-TEwZAvVcI= zN#vVq5IT*j4_qBAE5PiVcVFa}TWHX(@+y}zA+ebBZk{`nDKiY3f|#1wYinJk@gZe^ z%1FQEyNe6_v3QI2|;E`i7C+>bor1^iT78kQ{F$kG8&D%UF|5d)bB> z+6;&A=$y9LsMp0Y{Fw^d>5hYPxMruR{{T(<=BO!kcl&@O>W@38(0A~lC&afx7&OUeYSn!na&;J0t z$SrQ|2=UbOK+@_atw)p$k1nMS-W+=;X%8Mif=T0!md2`>2QubQugxO~w@xCScI9B3 z2qt@?{lfgv^|jvfQv~xw^H)ZtQJX9>l205GK;!4e4vjF`n@#N>Mb5_J*;b%&GV!Fb z$6IPhzj_sOx=gN5!9DLHin3R^pfvFci2)Y6D@-l^7_37x5cj$W^YSEoin@D9P;cew zkQ{dbe^*L1rOeDzB{0@>C8IF~f+%4l%ku|6t`4h9M`#P4C+-K$Z*6M(g+{j827}+J zBfVAE>UzyQ(8E18e$wo^&r@9k6aw6pHz&`FV(8%m!7Uk^rk`^jg>xUapMY>=I5=or z=H|KXBKwsDx|%x3#M!QOmcvOig+BLIt}FoNID&u=*Vh`dHi-bh?;w1aGZD2bVo&qx z9Hib%j|d+{(_d*Wy3;+MdprB?X1P?kXTM3=o@bVcV5clgS5HktV#=XGBC&<<=Zb++}AA|lchQr~AB)Cb5_(3N215X&W*XL`IR3$F1$m(ylD6<5R9=8ff zAK)?ZHujD8uhw9Jt@Zc4et|yBip=G=g14uAT5;c&l1%Uss<~S3^u(Z=Oejk8SZV8X2GPd&uS;H zOQ(ZIDnLPgrZup?9dCf8Rfn?krm>iKKsQ`Wekbz}&sEpuB+qb!K3_qS#;rNj5-SxF zcyc`K#M`ZiAbs(og+>@Or~d#nd22o?SUsIib9JNEees_KdmI_eRISEn5@ zmnAcg)8&k1fin~X(= zy%$D~#>NS#Ks64(3D>+29y^eKjLSt+4LV6og+U%GJVgr*qj1`W*wEY{sM6zR_}O#c zwd+!RQw_{F+sBmhKxPwayxr5>D=KQKWJ`vL>El#4=n94>kDsm?hr?4403dHN4DQlC zyOun5BNvG=sNDcq?~@-?GgIanNDDTm%;{$!v5Fd~8po&cfIj$yhmz1UM*R_Cn_h!Q z^9y*~f93~6%vl1BoXC<%{Ug*0q}#+=xLQA3*foQEh6%JoyEiBOQhhA3wbe_E*KnTb z@*488qnjg$n5!%G#(!Mq*XaiapJO-Vw4I% zkL1YLALEXA+3m~=!TI`vS5)-kqXtsQclt@Ufr&$|waKcahNNY($to{~7Fss(8Go~P zHXdBz)UfP`4n9OIl{!O60QP}x*?8;m5=VlfpHNX5<)}{2sRS{8S2B{spHKz4=Zr96 z9d~6X!|My2{kerT2^3l*e4Tt0lj`X634P+LPUq3mDs9*$Ar*YA5pQp=KP(#r3k&)E z5}&pih^d&q88F33DV zHs^oYMD#TE5}4!E!fK6y*hqja$Ct&|>3iau)|Y%*Ycb)tA5^-y7Px`dOSo?E-{!Bf zteZEPqH0;PNnGB-Mo>rlp>KuM#tK)PZ-57ki})^<&)Bu?lL=Z>F?&6ah*h4zfTqLsqICQI?rgIegunnfcA@+peKR=f|zyt417nWt|w_#JWtRs*yNMg9aDeh zUgrM*i|9G8#-EH1Vd(`{la%FTn9{|24wPt%{ZClt2Ais+g+m+p?JbXEo*Y{Jeeoye zye%vw4Akp_IiJ-9G__7ums3wuu>2_KyMBZPBN`h>0crI51y$+@0M`;Y!0=9jJlbd4 z^?5rn@(8S3o}=LwKjVz=sZ8j5^!kLlW#;Ci0PhQ7qobZ8RHCjS7WYBjhLy7)bzR|rFz#=19aAc%8gfozTf zXL76TuU^Zpblo0nsPyhtr+Y}Jnx`byIb<+Yx8Zt%mO~Y6F^!h+On^@f`qR`?pFCxu zQnQ$8)NnN#VZwi_i~$hg4iUJ2)f#fxszbJ89;u2T0S{40EJZ%S zdB&>7pp4CQa|NU2e>A~~!PIeks%gw0{lndtXkyCsmSq%mS#FNhd8%9;<1VOm7r*5Z zslQLAK1A#{RzSGpXMHEteHxbBZBk7T*8$Ahc}=`jLXTC%WT&mlD{^|0grS;(rahzP zthdIKgdw2C{XC2$P}_`ioXVAHu<3Jg=1_IHZA7vvRIYEBl^5H0P|fJ57VXon0+lC& zEgEzBO3jbj_$xlGaZ@hf?tC|@b%$GKwJnwD{Gz)kgL>WSX(eY1=G#CQA2E$52IkA^ z4>|GE=()5u`>|C;3_F^@btliy*ju#^W;H=)uhiO}TI-L>l=49mTdwAi*nNfZnYEui zp#yZ!q=+9i>!|c*k!i$YaVDYeG2J@flBCSCtu2+w5(<{oQ55qlh5DagPW{n19g}7BqxhFr z<)OhHe|YsbA6sEYz8s9ssM}uTU&N8}T=#6fzV;e4u=R2ix|LI}`Lg`(l3vz3Jj$s3 z=QZtjvRSD3iKdTG&{RkA4DrfTAHDFmZM+LkQ(2S#wvYYNx;TD|?dJAsVCuSU{{Zmy zUE?8w{FN1NZ{3E)Jb7ka+P7wvx`f_eagRNqj#oe~T&qia0m(M79FhhByLV@acUw%4 z^|X4(5_l4MBEYft`}xbKm^6^@Jap_Z$&F(uI=Y1C+q40a+o z`V~=_ceCtgFM=<{d&PHH)A35ZXV&y}7LtoeSwUAO;*AV9|cd9N(NONAH*24w{N6>igw(8Bb3bRc5HybRcqU3lK|KkU+We z#s2^m!WRN-H~vG^#Fd%<0EfLMa|2Eey{~qkzKWiH{Qc0V9cM=I z#(%tkUB1|(wD2vMs?j_M`2Zy~zlYr}0A<0|I>m;k$KK^zH?%XkYOO^){rvm0<dY=E8q=F+7F&> zIVMwkLp`1}ay*&Ge@^c5)3S*KG3ptnbGUyC7#nD}k>|^dF1Fgj0TimA5=iw2=9z~4 z8{6|ZngoqwH9rkrETos(kL=hGnrfc>UEd|kV;78Csom}TBGh*ufB0b^#_-^Ocn|wY z`+d9@UH<@uyL+q1X!b?G%}VF~d=N7GRXvyW6T?xR_u%Y$mYx%Eu~KGpm9XP)he3Aw zbAbLmgQnAzf`8NYYSmBhgKgGuHK>NPf1aKBd~g+_ds=;!@IZnd`yGZ!5izV%O_1jd zD7ij&t}3ThLVzMnwZu1w#JWHb8v3NBZGv@=s{L;hixAsS6@y7ypvCrq34Tjwj zsFoESIwc`3=jntVlumlkA#@e8;@qerq}l zq-)v6qbOU~&6K5hYmy+f93rOqxf5oV~fQ$6QGy=s={Axhq3+@rKyX&F0fp| zpL-=2W_jYmqTXTS1&`AhM@VTlT0S1(;kw=nyzj$muE|ifq0=TDV}}c>YVU5xvT~vP zG2UynB!tPlnENlyQcHowoZNx)9O3Ng6%qYjVP(XA7UQae+5k?o2h2BL4oEZY4K@!K=Lyi4rYJ!51P|Q@V2uWKrLz9OP=E% zQ7Wpl+wJVE*%Wa0yW1^5P(xd?`qfAO0J-mD{IP7?_;W6)uPL83SkJ?3WrYW_FEUJd zW%{i=e$ZdDM=N()S({hW8ISPSfMG@ex8hXrg}O8eMu z^YX)+()>13#xUu~?pdmS2IAZZbEwB7QhX)8GQJ%%c>U8c&FGoXNgUM>@ZCseUO(s4 zA3J9fzeu-TSJ_8ozqBpfPeArV*xriNosRda&h=(Xqw)-kH=3S{Dq49e=TQD^Frwld<~z=Oqw8c2{3hCT`xtyhHnWCTpQnY< zFZ)bA#oj`%-Q&HjQkaTwzC|00kKweu8~*?iy|AzCZ6R%>Q3_?P*(!4{{W}T z?sj2}XdnGDPyV#(f7(Ot)s~XEcXpofGL8l0)OlhT`4SL-K7$$0O>p3nDIYQP7WG^3 zzkwC$n_~dy)sj!0PpVAA_Lh4Ps}g&kcRuix_9JhLs&bi$9)z_&A6xo~yc7YuTMv;7^IHGPwLf=64Ds`dbcX zPpM`8>Pg~8pYfkNB~$zbYn__5GEXWXcU;syi>%%A{ks|~y}xx%+k3a^zVBV4=sN9D zNtdC`GhJm%T?HgG`HeMHh$-TviI~5;q7R4#>tk$jw%?`(z zw0~jU-}@EpDjwzanu@1J=?tq&$(k={lF}|`Ei3^Zr@=~AF$o`g_s;gC?Eaa% z4@IoHRrcQ(?r@fKqu zwy>4ACz667UVVR-E}u`UwbI&6{{YSRMTz_!z*cE%u@8;iieRcrf7)->IeQTga?Z6tu z^}7fD#Rg0JOkLwL8I!%ocoh*tQM?Xj6u_i``SDSA0nHG z{2SSIh&3wKG5&BTzp#U={iS~Mb#&sEe(hb@>Z#Y^UmmYe$zToojKE*hoF&~aszEt# z-hY2prT+kgTP@8L-%_aqNqC<;t3!+ShP%R2$t2l#b{^@JvpM8FE^{i5Z~0of*1~_a zwMLYf5Bg8u<#DNg0d#$?B$}pw&Ohk$;;bltX!pH!4NNtZUEVvR!{Mph8OyVw8B^3U zu421~9(cEOvb%?Ajqn70VRi7IgIf-Z!@tjQ;=uW~}6Wh9~yN6?-=S0OcR5(Te;d*p)~wZA)p}zn)p}(N}-<$Q|(S z6p(fs-0GTC18Ya7^CiF3EqDj-foDo_EfN~pJfQi72jL#Ww6XF(`H}K!g#OY;eyFEu z>GUsl7^5JDh4Ku-NQnOcajS^M{{U<;pbVr(cig74@ULVCNHu%9+j(UQqObOfJLT4s z<90>d+|Eg3C-gF}c{l#it~UE%+tUnW=7#?Oz%G4%!M%Y{L+L#8>krx#lpnNj--9S( z)IFGYJB|8Xv@FsKd0TZ~7Q^av(-`mY+k-$yg!~@ZbPi@Q)5N}hiTRi9Ab0Q08Qy&d z-5Q$g4WrPmt8guCzVt`W>x6%7F-;IM{{X}vnOp1r7;JjOw@mmvpyU0ce*U!d(9^D% z?x^rb%xNZrGAa^zvb9MZ`SF2&OfjX?BghXpN}>2wvKRm@af3H`G4Fz?ul=F!{n@3` zeKFl)I%ZomQTBZrDd*5n$J-P-SBeCP1Rg{8L0|BbVb*hvT13zJ-yQ;1xgWRpzil^& zwDf)5;JLVAq2ps8$xBLXKA6xtYmJ=K2gmAuiv=&iK919OW{K|WA0ASUm-d8xpt46K zYbSSzqhJ!lv)VQb$50uMKRhx0JlYNsn0W=YpM+ZkOwm8{f6>a0Z*P~h5}^u3nRW{r zlgh{0##`6dl{n1)n`2yiWFGJoAA}trzw!QH~>-S&wEjbYWDk5I;+{Kr6L zk=**7sma8t)2w!la2>z}2jLdM00BwBfAwnr0MxAqxA)pyQDcv^KF4eTTYu5UOiK?d zlMVj>o&faQ94_Zc?hB;P!)=VlJ#Q%fvEQRdrHa{I_I(Ij_cifGswyNlTJ<} z`frYLoZxs5vKpU-`vx+*3J?40f7YvH_WFBE&xj!HTeA85e>q zSpNWve#q(m8tgWL*5UR406j_b&u;~;x3_27RwQ|0?TAPJA|Cc)qFh&b;*Ple|}G{k&(Ir&M;0KAp@pHhG)RpJvsx zd1O>gTVFJdB$9Y=g^DoD>~=Q-Ewi82M36(E7ztR z@E{T|9?Iu@+uFzN6Ugf6b=?PhZq;eE)}_m+&VQMuO*_k)M@ID#QKYwq-?@&WWCPL7 z@5Pyg=>|EK9QIW+VW#1D9x{AZTwg-=MOswZQx3u#n|Bi@#Qhaj2exC{dzQ}CIe&cq z*r_HU?lDhHw)zhTjC5;sw`ja&eNsn<*>f$QQNpW+`dA;KBbTyPzlge^6C3$fm1_;w!gD~0tBX*%n+4EHtdTeRIznd=_V zbsbEZzIB_{xN3~bvOv4$l&Ax7+6Mr17~oZQ(AG3S06+j* z7hU^RH>=6b&-*D){@x`!l2e@F0v8h45_)~k8i6SQ+m-qA*AW9rP6piypS~&-f>&(& zHt)^f1F?MzlXh*{CwX4ldo<8AO+7^>Pm$;I(b7dM(r=l>aj+YmfF$)c9+>FiHpVW4 zO*$1^&`iK_7w{{Kj_AJ3#MCvhIC^y+VoR9U8)%aa-?z4`EY;kYN(*FSQv;LGEp3xrtvl3j*1P^k?yPiYW{V6pG2Km{^v|l1 z`~LUimN$l8_?_sU5-e2f?AFKSZywl(Y+~k3S5JCz*f=Bq0D{l>x9q5?`{Vbpr>M?z z3U2e=;VE-E=~8;>p2#IGv}Ztf$E5HY#hsxM^&0Nt&L21Q3-nfvzzAFyyF zw7P>1Q3J5s378fzB+q=6G=28F{{X;e{2TUCQ}^EQ zjZ09KaQCh6Ar(UMt~It~NbAot5%T-tE!vonWK?&V`>1vX0mCVx!ava8vfA~pd0z1O zoqWxjcJJFZVN%k&UQJP0IVY3w$Okv_81Q>C?7jQRKQex6>l<4WRlmz@0CfSa1IPfl z{C2zA^Q!yDYTc$v4elFI)*JnQd5(~-T4lB?gVnj<7XfY{eU+qruy(-=ak6%^+ImI} zfEt3Z4?q5SjCE@V5)P$y@Kvg?$uS%NpOTgPY3+_eu*urbYBL2N36oIP5IN`n07-=k zO$V&X0_itvV+UkZJojn#-78(2v|i9EnpUjWTI#7;_Z|7wP4Cm6kDsZ<3@sRd)``}^ zDz?ZMz7X$RvRGC7SSe`I}= z=xywHIoV#M{{XH30DqDapIGYZM}KqGnzo3y=Vko`@4xP>Kc{`6%JniGZLSQm58f5cszH;~GkBLH%baI^&%sD@sWwLz zwEY&A^p|Ufkla;J4Uh95@{kj<-q3aZEVb`Pt@XVdkN*IvT4nW>O9p9}nTyo2`?+_J@7lu5OA~TAwYmOS%Zj5+xs zh+|(})eOXZMo2n|CjH2o$>?RP_hpS)V1-lwLs)TjL(p{c!YEUCVSf{J+-^Uue^%n) z8X$Iz4qB^&K}AypB4m%ir}$T{(RKM>^~Xk=$+;_sio*b44FUssJsAastOu4J9zy5j zY3zVJf^$tL@v{#*->26UI0a#h0w5*v-saLczt65Fb7g&83xw64ZNlv(yzEG}BaDSa z3%bi1M%q|N#e$m=aco#}AR;9awM@wn4w}VPv5?t-q1<@j?HvI)J~8QT7t$!QnFs;$iQ#eE$u zD&E_ro>)~Q9D#OVFM)P3j1xXb?4Lsn`i|<^uRDCovB~=snKJR4=k@jR(I_OPB@~R8 z^8N7^AdB3nOH_vBZ0hQlCcu1|3L{gv%#(7Is-E>EX22rCFsl{Ibe zEaz>DUUjmYi`ZJh*-S(c$s~=C;}xv=)C=O9rOUI&Owdz%^E1 zRW@GL7a#-svhah!7g)cGk<%R(;vihCBMuy3h&JMk%sU|LlQBa_raMK{86IgJ{8rBC zBbu3-+^*_-N|qqllx^KCy-hO`PsG?A>9w|VSOIIncfWcdvp(s)tR)35Wu%6j?H?_i zvZT2+dWlxdK)p3jg)NP*byfoVNel=L7=|C&XBaBS`e)Cd5q|~O-2VVf>U}RzX>~T9 z&ou12nF3bP%LU4{jf*G-$Br+~9KzG^tasH=y@*19TY^a752^Ix__}Q>-NjmDSsr(& z>&8{5a*WSWW*Zt$cgyMCrc!`in`B{)hf;bE=ZNcEm>kq&ON=*F+HE)7!?j9;%`*a@pV*+m^UzE#VqY6{dv2){n*0FqEh4Y$My8LTch3~{lWYK1(Y9K@Iaear>i!Sr_% zS-ImYVr1IGQaFv>RcDKi|#m)&S4rirK9;WT2R)+H3&i|xMA>MiGwQG>)1VcXY)+E_5#)7``M zy6gP110xb{3lqpZ{l1v%wQ{nMnq(V}&=~Xpi(-Rpig>39WF?vGJgyR->JdOSqxn$X5|&wFG0`d zz|R$MkyVgiYTWr>{%?z&$|&5qYqvK&JuzY>NJ$$NMi%G?JuQOGcnYCOy5)xBx7PN! zwic@@KrU|2&!}#1^u?l4H^p)BZu18O*8!raPB#Dz$7$#-$i@EvQh+8C@P+;#E^mtj zZdC?UkuX9St4N~u0Nb1kAiZi?F|r!s5c? zj7Lu7XrFwhkKv9sj@P?$-3wiQ!q#g-nNVJnotkFhT2DcWz0o8!jT8ZIk*sOzVj(I$s5UC={ih%VtvHD?w zMS}dEZHT8NrG<4cBfudL@k0yd?0-mN)WLEl>WC!VlP;|*0 zQ);##5f)k&<9=*MpE!IZfeGRGQ@ZDFS7>VCM0 z2vU;7CBOhL1J{$zDgrW)SOdvn)20NQT}|r`4e+~>^F483m1_y)U5fm-bBmNDrSUE{ zjllYPVw~AlIi{3&#`{H{_W5(y>yH&omNZ{bzK2$m zYP^vW6lR@C3Kf>aqZ?c9aAL6+2wg%1J3;Qqw1ruAEUSAH$u|Ui{`k)7gj|K7Q49hM zd-I;;_Kq~%cc27-2PXdjd<$MlxKFD|t~r7U<7ZNUKLhh}KgSxH;hIXo_V#p>zQlJT zRF#b*F&0r^&B3_;0GnYsK_$u0m<(}`2#>mNhNT>HxZ2?G6ynQ@I&^__k|W-UU;&X> zB#IbX&2_&&OjSX6I-l zBkd%Gllj}r>42$?c5IE)xk^}e76&*_j{Yjq8c|6@m%$wAOdopuTwS>5>0^vf13Rid zC3IO(^+Je{0<5c~buy%q)et54SBn#Vy*^miPY@ggM3ss32t8RQ$SQ~$XO_<|0@pUU z0Dth~O*-TVfU&y|pS03^ra)Em<;)jzthwa) zM?e4^<4COzH*p1sqo$(9d0|l+BdqM(TSu9TL-vAspY<@?e`QY0d(7ts_%2fGo`3{2-#90s*jlnJUt;qPjEq}fxh!Ls) zZy^rgt-dYS9-Vo^Sm_dpVyL~zZPu^{p#E3~9txpyrh)A{U-n@|QJQvXuXU$qT8gfr zpsTIO^C@U$o}5OdVrgMza+}K%m)cI!K_FV&S1GbxM#zPKs(Z|LgwJn^uUbB-n}Wwr=ljzS~ky?z64yb#*g9{BmLLZ|OX+BC4h zlIJ(4SlG+B?`ntJZSF}s*aN{mEpf=W=eGd%$ZL$Qy-m4BsO_)-BH>uK^l9Myi zeUD}td6=ux$)fVrjUp~pl}f@L2Zj|vRs?mqYc@4vFx5ycW84f_&E`Cf_bGzM;qx%o zq{71EEfOO3yxPNGsye5=UZRjyv^|>k2bZCSDp3SlB7u?9;o-Ndu;GClY=3sWIk-D# z)Frc7<~jP?-O^6j!^50#?7Ub>fjSaN+-BSs!4G~u+42fWsWLO5DCp@(6mcd?7RqSe z>frz&E4IW1z~8iO4PXFmJS9R|nybkZdEaha60sXjfE6CvED}cJrx9@+SC%f%iKZ;An(T_yrX`(8|Mox<93xmvz^-pf6C zYAHYH%di^OiPlu9mq|qL;sJ9fEoOGz@jC)ZP$Y#{bs&b-LXixJZEPO%JQOdAs} z6UP7 zpT>qLDuoOM4BJ*1;1R|UDMCXN>1gbXGh5kh_Z~yONj%A32DaYD)FscVWbTt5S}wfm zzR+XT@KubDCv1-^a2vvTyjfjIJjmfx5)S|XJn-+!wWJ25)W_AR!YUajkoqnMbYsW? zMYy@?^TzDsMU*xaOv8C0jfnH|{{W671nRB=ZtD}$$H;T`!MBp9H7bE{4T6AiPbYGq zX34|i-C<*H3G%=L2$Hc6b7S-W09+l%a-(fiK_m;^i0W=}M%pXyS+s-k0DU}w#C4Ss zAtHw$kPoTnt}aETSy)(w01;zz^B?fUa|Wt_Shf}`a6sx!u~`+T9jAB~9=Gzv29-pC za+i241 zM%E(Sbv{@Y#KN*t7x*1O7vK^(zt;vB6${;C5`Gh4Ez=h~6#>OI;01e)q!Dw7WmpiU z2IX6Axg23vL_*7+EJ+sxA52E^RF>lQVCp#Y{{TD`?>eBqLy4M{WmiO9R2VwZ~|3^$yd7Gv1_$fbkHPGQ^zru&8*}Xd%T#F?tFKQ^kKiR#%$Q)#G z0NpSS&YmlbdrT;=kjAZb5ll}vkj~zKxn^9bw0MlR0Y(o4%n0qHvRhGWmo|-xgAiaY257@oZQSq@`6hH#Z%4{{W5z z9@3(0mfL|&3tr=oFO~?aOkm6`%mC|eOaojrR#OQBqXsx)pt(}5+Jic&R9(=slWUX5 zU-QS5qy<4MJxw8*U zTZD@%W6K?KZ^Q(HYY57*arEeZ-dLvsZM`tKHf;mumG8RjtG{iph|pmnp`oxeOlKY* zi zra{3ZUgPWQgbF}esLPC-$>5+nk%B7%q=IH{*^c9H zD;tyk7}JJrq^fu#XL7G0)D*HK@osEJHb{%Ck8f^T6P`&Vw~HJ>Mc9Go#kycX6Fb!M z0CM`E3}xLpTL4Y^TMQ0~Rh70T;wJY^ND)}GNG$dw9(P;Q4Q*4wE%bl}H||2z(!&vQ zPr^C;y?%oYr%}g6&aH=TzGw%ejE%?-Kz%-6t~3Wbfmy0xncfP>vheaR7T}*>(-!Ka z2`f7`cyqD=3c6}Gyhw%2X3S5O{XV$UPNk(`tAQcifJpRFy2v*M7hZsY#x0J7nv}>f zYkS^;U>k9`ZHM&;2s@RRyLl=mLI&g$5;^?m1lJh8^-g$*(L2KFZTmsv<3ICkO9RbQs*wN` z(G!iseBj%kkEz9x+>beuqhw}VGflJ5A5UCJ0Pa-kr$-eqRz_AcPOsDR^KY&I0BvOh z-943_B%T?BR7@e=y4$$jW6$VL3n-a{LB~ZK29b=9EXBAc-d4m7jTOmHEW{9MssY<$ z$mau+`UP3}BBon8Qd-{#1pffKFd$mo(t)+tHfVhs`JRr{`K++Ih_cqIiHh|Kvyw;s z=*aqlFpBlExu6|Zid3BG07~H4>71gG6rBTpQ*+1v01h-fnI=_%1~@3i1f!80r4OBt z9+tt$B1*XhD9b8-J3~IuHjjYV;`-A7ptiE4T(YEu+fP5I`y>AVK1TrRu`-HnDnpge zU{)EAs48p^t|-(x5p^Kg?kf&gR1faBE@5W7MKq);;p~O0znF(&C-}!#`4m0bN<4myCSnF)dx1Bs~=kzsk0kLQcZQ2BsZM!37QOk|+T`6!fJp=PD2L#W)$VxP>TzM%DL< zQ)^oDA-D6y0GlErE|?-vf7{Z7ZoVqt{BaEGq$l_&0+BT!x#W1OVf^tjl~E#8OHP8t zW~U=LvgAB|_Uur>a0C5|#vC z$lr`UleYy(Mr)IExkt|qjwod`3-Af`>&6Ndu2j)lJ5*9?jWw86X>9E%l6dO(%|j~3 zA_2S-#Vl0uZ(EOCV#H%Ob7R_`<&hxWxWc49W^ zY{2w9{{ZNEi;LqkcGd_(dge+005G4LKjGM?5=A#azK2dd$# z`F3e6#Q16brv1+Y=5W!q@PlbqWp?wLN zBX~h~7qdhzEN_e$j+gAZG1k{(b7?1C_T;)Wx+k>iL1hOJcmu{hYHYLFwe11T=xK92 zx4Cb5`s}`03@JQ%CcMU4*S77JAADw~)4h*S#XLhD+-CjaN85UBPKE78z0}PYW^IVH zi^b3tUe7-KlvT53m0i<&e1kHLL&;9sYNN$Px8^Br!F=!28gV@^*;FaErEEhQ9bwuR zogi!Dq6&Qt+OMc-w+`|}{uA@jZ@FKxhuS@zP>jbc?qS{zx{#!9uO2|;ZE^yeUiK!# z?~Y@?5q2&^RAL%hH;E(61*QE4+U;;_s5led!g%ny3p(~%`$Kg0X(msdcRlUjEX%ww;OJ@s@{*; zIqey*np$d3=pD34RIzyN380N+5&r;hX_Ixl?{1vqt5a{`nM_tBmXR_V^B{1BnfqO2 zXGby4c%~`#xLST{r#<#v_xRHl^qE$p?#tQ^OPEe}LmgXEMrJ;VdA=jhKz?{tPLu5R zJ1t7h2Z1njo&2t}x1sw{^m_K;-II(PZodohK#FGWS9h&rlvKcrGlNq_ zBJ3jItH(JEE&Y;hfv3{lmr?CwF$|Y!+5&vlzoDC5wEDw_eqK3G*%jIU0J9grXKPj3 z(u1>Z?0ux_di^^|OI@8)Q>{OZmqAdB@W|-X1}NblX#m`#4yr~ozovUFkb3rycT zOgPvb4!kwdL(uK0Dhe;4=D5THB4kL3iIJkehuJah5Ur-oDyciGc8@hB6Qos=ERmeA9%9f^f>{;HB-%SLjhkTH z#0G>C6dRLk0fWP|Rv=PyT{93`N$>=i36*LVImauk0r*awbhPtZj2*>0>eSOqTL*Mr z^7Bxkh&01P=2l-4+W|fgR=BY0Z@|Dk><|lt>!|mtQ!9v^t^ml;>lgChCqJxxI?3~!_A)t}d@3wd?6GX8%Jovbxl3$7)@-*+9!<2Ip=?1|9n$3?Vc z-p&62XcnTHnwuc*QQm_(mSx=#r_vQJWgp!jSoIifd|n=tOW#?50|s0yPUH=!_cY5N z-IV=D=!S>c(cj_!02Twemw9j~rD$rmX=#9pLBUgV$++^qGYzYQsOD3rS*6b~0Fx(_ z3;1alT16Z~7-~9`gGQu{_T4LEsrF&}L~`(^r@4Q4SVL0&Aj;VgCJK87@g@RG!~kXd z`)zUShE&I4n%vHK0w!VF0VMo70jba>WvKdvfrJo1-FYwoyh%0?O5|nsHhWNI)EPFB z{{X3nY?RsdVMcQbIA{DmF(o~>7cSL7SB`8*KP)HswiF4@BHNw3NdBG|?(Rx^9^&k* zcVk^Ga0%CqyX>RPJ&vBzoTi9Z=N;BHPD@5wG-s^Oa##g9Vn8yMtsWTTlJ)>{P7(c~ z!8z=t+LGt#XMfXfWW;!`ojsY2yZV<$hYLWPp6T>kO;@oe+IdS`Lzl_jo!)w(8$~kf zT{_h2ugVvwTJst!0thTXBL)0#1ORxdAefOpw$SPhhTE>7*;w~fG+Ra4n=%XoZAHz9 z;i}Z2_C|X{WvkQ_-}QM~SaOuYN#)>#ZxeiUu7yb6}A@aKKqBZ#vR$OLnT)7sct zgtR~UOXP$M_G_2Z zh<)xysqITmMc_nTBMm4ugvWQ07vkzoyp9X_h7=huy|)>;15INw0!RW(OxYeI0f}p} zI+2n@X{neTB!-h3*saztVW+flGmNt%uFzeJWm&yMl<-nf)%L59q}4M|yTXb%{B7>; z7jW7S!b1`Pz7YMfgU{7D@Z$mq5@e9r6E2b z+s_M;ep;f#(8SlGD>b$^lIY(YFTP@87ZHzRe|+iZo}HJlxNTiNTT1e4h!gP%BDr>_ z1{=I0-|a{X@hHEh9{&<8cXYh=J4Y)16A~mD-iG+n?WssUqYGX9unD$+ z#2la#25lg3OwL=rNg9o{RKK&NmAjAX6S3KZDtl^FKrAQ@>8NrtqTvyb=>Xn#-! z%T5zwVr$gu>A8kMKM=eO#DS@9gD?1gl2(lVf4rX+~n*1Af3cbhK6)^5+Tp*&VYj? zn*jiwc+Qv7>eEsF&c|+AVqA$S`@!~8n+NgJF{*tlozhZe45+VZC#VP>>dbxsZEGG) zv9A--CJJtIXwLsfFnFCDj>Cucko+h$Nk0g4Tj{;sownJqPUN zY8>P>a`)xzG902wqK=An(Ye*DVQ73$c~mYLVBSP(=EaXT3(hn@q)coYY%XJf?Gp{1 z;&R6z;UJq?WM@V(RUOsUEe7_~z%VVEZ>$)B&dGBR+03QNsOmFp%fI(z%cs_=YEd*@ zo#!t$^s;V}4;VCIq#+cyTkbX-<6SMj+WDV^W_Gs3=7=yPMpAVkNsc-RT-x0m#8M5X zSb$t?1R3Qywci4GOxXjLe$GJ8)P4)!PfynPNmm_MUd^hn9aI1_#S)Cbw92X(o=^Zq z1BSmCalJKd0?_ItlOoS+yI|eDjK;!CoMR{x1Q1s2FX8?ou`kb+q6l$on=K{-jDQ4_ z1BsYc^*^(Rr*izsvWlMk^qH++hZUyFyDF`Yl2&C5#yRTiqVZu=B$*>d91fShGf?T{ zO#xP|EUl0U%;*z&mocQaB<5%$#{1Eq!@ACQSJr@UxNeQ$kupHaNH^nUyHbA5XJ^@U zL_gA={5p-Y=gdmU}!=M$LB zc6%aVk$3|3HYlC=XNmwZ&dT$sbT%8rnSp6Bsu+IF-(*wjohg#R-vFpHAypH727K z-R`?%sm-Z2!AnO+rZSp|a~h4z?vRM89LUK4iP;wKc}D;Oa5Q>bi)Bf~Q>Mm|bJn}E zOu&0X3AlsV1m8#nXsOUDT~lgOd&rU_AQrHZE&vITNw6X%ZrLB~<9Auk^9;>l?{C}1 zH4-!rOATg_%IPX=H;@*eYtBMcKISNf_S<3!VP)g`V~C)~xy=E>@f9!r5F`mMgOnI1 z){_dE_;%15T;r73#$9*lf2PEqe3z15*S}{kWIoSbMcwl(?0dAH)Vo5+wT?-f<~3tf z<+N0@<@I!VkGVWi`=Kc4c9VPc0@(EX6KgvcOw@3=i$jMU=U)$m$de1gZT*mNRl1Pi z>jDTMf)0oGT|Dk3-MdBisP7Ni*JIk|vs2}{CUvPYJeF#lqIjdKf-1Vt0ooxdIv4nq zjl#h7;~gwsCG?priN2uj6T7)9WZ(uN#fNuy*KpMGUrkvj?B@3l2DZ0Q_lNIKmeLAn z>tcbj?6k@wD27Pg;(|o+5D7?Lt$4+jrT2(h>GH*>gDyIUEH!i=2`yDr zQisDd_5`XS-qyA5ZZ|unn3mINsv5_cAUbp#>}?zFO3XS1g)Vt(-BGO|c0jp1uOx5; zfH$w1zi8KXO+VbzzF%%#+cc$qpv|=Ym#d+Ml6=yl396kZ%V}!=0C^-TvAG7QfXVb2U9c@T6GeE*Zad`4@iY3OP7Vo!6)-7SWSa za4s$Y?=8zC}B}KyFRMM3|TmPZ4cyU|6od_CxFh%Qb$O?EY@m zJI7}Ik@kzK^Ss(@nB03(ryLZC6okSCR{knM{Gqm>a>3^Q?u}EjjFe(`UTi zcinfj4)YRrQLL#mNwn=PeA+pysdJppQneXCq;XdY$xWJ3NF;(n;nJo#Dc(C6=54k5 zMVAh7Jy~!9NEwT{fY!8!nDCh}2v0)b9 z7c&w;F<@76ui^Dz@9zN<0K=e}0D);RNW4UmeMo|f_H7obs+Nj={{TIZ(dKf}d&GnuZH)Dgn5mk6xopdKFPVPM2?LH;3p?fgQ*IA&u> z7np+p5G0M)BE~I!6(7TFaHuJV)4Tw4h$M-DtlL=MZC8OEu=aOb*$->IsCG@6=6QB= znQ4tnnd!=k%2?eYt&)zaN@kWdkOx#_31Aoo0E>&`+)$_sMM1v)cU}^`7cs?-7ZW}U z*{Kdj>>bknB2{QbWQ%MCerVkmUg{q571VvfPxMJm%ZSewi zVK%pZgy~aC(=`l^1#JSJ( zgGf+Q&zGZ8nOkK_Q_PM_6bnuQFxta-7soob+{e2H>eXtwfHXQ>;L>B_Fa??fh}Sr? zqcLub7e#PK6x=gtij@npkkIH7BmxNsG+s!Exf&~dMck9Po{G=%+xIi>zh9Y8PW2ge z9d~EhJX94FYKbhhDIlaiJ<=MMSr~=k&_)PS$!04VUZb5)7X33os6z>j#qAn_pnx|t zfhSM!Yyf9!gIjno*?8nYbXvk&AkEwi#@PMZJBrif8OD1Lv-`PxG>cjqO8)@*HOnbz zUP;}2C}EDNOo)&~j%>sizT%*;0&Lx*k7YMM9Z;4;xR(lGO|rK;+F_ABq8$6U>ehh7 zbZcikvA9;th=2sW-H`;iwYg=+-I)X7o$E_}>3z~DwGLNRn)g=jiJxas(o{0GQ<7C!bbp$>!-JIRIsGhJ(6cOc1&0a4126BGPcM1oF!nZ z(QFf|14^7Zwj(30VojV0xZde-nQKg1{{SoQb=_Y~WK&VrcM|TInC8^gw3KzQ9S2RB zNx5o4sHAFTvdk~B!z+XNl}&&{n`mt;TdO^|!dT!Tpj3Zpz}!b#B0&cze1TwOLg-<( zF3)ZmuEO4CNninhi3A*^!*r53IE%{LbKc8)6*^+OQEATUJ>2x2Jx*m^rR@i0dU!OC z44Y9+JJN~il*VE&E66s8$z9EHhV1mD&TKG=ULzl6zJV3xONRml#>`TN?*m z<%PK^%nRlu80`WH2J;Px0EvNgxrbod4ph$$k?bq53e4(@D>`P5vWrFJ^-UEcAVwyM zC>ALso5W6hPY^U=qj7dzRv&JM)_o^Fpa4r?liF~A1U3$0Ze`B~?Ias&e@8I%u#~Fx zOfDeKag>|Q;lz@{Eh8yu%0$6hWcn9JXW90q(~$NZp=QclR!K=%do0QznwP_-jM2bh zSS)rq3T#=QV{W;<`PH#Fhlkz3xR7P8C4xISNO08u08w!{W=Swk%3U4V_;Exvtb14o zXkRqA$vu)u-vj^&;JGU;(w&>=#$1-aMfZN1h|x`&ZOk;@pGxQw7`I6m!$?}70W?9- zfJ-4>EJOmkI&B=#LWFFR|FgHrX;HXr^9LxpIF=hw^gP?#L5Koaq zROpV!^=x%|gGMi9&}q!Zz8GDyp3kzXYWc!bDKyCg&?`b&S&K-&0SerWrG}gaDUUC3 z#5UPvmt`fVK~7s@O|6)5C*lgm?8fG6U4{kYLzFl+4zKMQ8g3@w08Ny&8W*xnEv3yK zugm)&()kP(5*lh8=d%ooD58pZS73sq$MCJAQfee`h>gp8J@eslm0$deH!1jB(I+qf z5AQNVpmv{>n*dyM6{zew8QkVDJUOJxT@V^hYZm5lAK?=M#w>!-9i#R;ukwthJtLa- z2dili!w&E0wo??%SpW|0BnFf`q2qBGj@wut661n)?GoAttEpG{q&43YfN3IHT*z1%MJ+>_bm;k`J%mjZ>%o@i6jzF1q4;P zvnkY>fm68Z)w@b-Ic!L%|ZZB(NrrgkUgr@XxJKhP*fkEg+e31P4fKVhI_eF}8#uWY7CZ$m=xJAJN{!T7s7? zo*0cC1WPogE$tK2#?*#Kh%gFBCunP^zr&1pTxJ^=MUBkXmdk<9c)21n66higvWY#H zI>&8&l|_|a&x%YsSR&*Na}2TwfKABl5H7Zq)b;vjLg-yf+Ae*gDs`m|9Ia6dnQRel zX(y6ZjhZL~(^@7(@vITl0Ki{{Qf?xxM%AHM7c{tKX#+lDT-L~AYE&VR1DXR|H#T8o zrGUbZfJVk9p(_U@EC?Gm8~ zpt0(0(+ps7H$XJiK@n@nJhnCe07H!cA>O}4&eUkL4M*IAxz#?U)w-;B1V~4S9yl_&WE%)76x`UHe0HG22Gpv+Kx=A2%F;uea=EP}0%vdz zE;ANt`v%O$R2vhq2B2vJT@AFDCLBhF2#_Q%M7u!kXSQuy7Ng0ss*J*YLscV!bByOQ zsu`qg8c3a0B?(AGZjq8Mm*kK!=5h6^Q^h^C2^Izjs$6>{fCR%!T0>;H!bmPQG4xG~ zgTgZo+)cW_=^!uxc+ddnNd%o8x;HH^v^`JSzE`9&>RR1lrZODLq%K(_ROhvIRdc~C zTSQGN$+25itoBn416KU+HKCkT`Fs8_;j!#06u5nt6SdxZTiZW(K z+>SmY$m9`mj5Kk$hgCQ}p~0gd0j1R1ZhJYiG!vL#<6~`S4IftlMAB{`y`{hsNdd%M zNzjb02Es#+CGZ#DW};f2_uQqme7X%~nZ^W41p?FLnOa(KA9$0@k^zaQa_wH@Ry zH&g*&xZoZyY&|H1m%mOl->D$CLwv+PX^x?>1N!*;c@j?TpL)%u8zrQ5po--wxsA}FSPz0Qmgq~ zg#aO| z))`)Mn-Y61eVcyOodh&k$yZXPVOUhDGczTE#%v@4OQW0}%IjC=RoWjkk4$U5DWBz9 z)*4g-Dz&5cdWtf~Vyx>QA-HX(>vh7ZQL4(+n8rAf{{YgE(m?Ky3MLk|dxjiLe zdTOeM(@*_Yof^iaWU{ylcpO`X>%kc6vW6X*+V;7%NN!O~y2JXj5+2aZ*J)_&SLzz?|&8Vm{dT3Q+xnz;;8+b$#TK59y>5Vwe zlZU5W#L;6ap2(KAG8o-2b9oRzaqPInkQBCy>bM7wscz0w9AO``ELyXIfNHJ!$xf%{>1#>p_I;?-@8(TYC*b`CCb*}IM05znT07-EJ znOnsDjLlhFSE{7cIxix~XUtRHvizEok_s%=IO8u3OsV18K{6Yxw_;-ff%t*Pk=k1~ z4N&#CcN#(P*8s+L<1r2{AUW5D49+bk<)j7c@cUw;+UiY;go$g*oE;7_MrqJ+fF#Ei z%37aD>WHfJ=AhM@YNiacE6b@`8D-C&l2Y!07(iN5(p1Q-pn_NPadUBxUL4o7;jvUR z7UgN|wSoi#W22;Aa>Rnsr1+CS3`6SS&QjuF09_fh0t^<2)Q3!ST7Iw9TIWk;8j=k$ zL92x%c~jEUMD#Ut*3DGxtkI-#y?{WS9lSLF7U!;)I}JjKt4@*ZLj$s&+lzyu;l{zb zU5y>P5eFms<5w+eu*Y_d-~cS*Yyj6=I&2BD)h4Zit0Yd<=(NPu^39heK3ciuQ<{Kx zD<{1`EUW`>kOXEWR007v$2r)6Mb&Atgh_L!;D+`{F38rKHeJ~+4{lH-u8lecu4GmN zJOBm9aB(DuXb7|tZ)j2K{Uxe$Iz1VyH4aCT_KU0^Q&m;bWmNLlWYqJ#%BE@a3b`i? z!VzXw1K}hAd*2$315U8UZ1>e@eqh(;eKv-;jNi<8fa$n7#$SYnl1j}_A5EZOtG1q2 zH0A>>NFbc94aTj6S*0uT`b2c6uJ@TGl0iI;6c6GC5JU@^ z9bQFaz+u3~tY#*gUdk0iI|K%~&lzS*TP_g5T>Q^zai{_KPF+`pz`v_?YI(<74I!fL z5u5skW7)9{%W2;Vrb>#)w7TR_fW&7+E=GdG#$Z_%IY4VPvz$Qyuyi)ICAf!-P^@y;2N(np*2`t& z=nN8Oz(h!ky*t@Umo?Ou3A)pv4^01%gRLThWP0O7fhlYp+um}OJAbdw#?67AUT~1S7S(L?< z*OaLI8K=y33{-*`fbig(ibuF7+;JX(`Fp>c^Lw+W}WVpGc=pY6G z2Q+pS{mHOIOC_vvk9{L z-PZ*`WshnIVG7dkW_NN_g&VJpV-zs-ngdH+Fac#Zkl2<2=8ywgMsi%|7y~E(u67>_ z*PM+q8*=G$FRA#0q{n6&2LfajxaK{tifMlsC`&iMrmRC!tHH9Sfb@0=!RY{jpx~(n>nxL2)@0h8LE}k1R%npcQPslpS|A{inN}D-blbdFUE(6P0Gsuy)}|>_#MY`h zw-+|q^AP9pG@LsWP~!df|9OgQ$MAi1H%fD#Lg$?5FeU*@p}g=UPbYlOLnFmT*EBeLTlNY63Z5V-=2 zA)?JGX=KduJkwQa$!Vv{oaS{AH2JuCg0xieH982EK{PJLC1nnv0B%M$;Cew;si%V- zuuFkxYjd~*0_^~1k#@AfZkvF{?T*%Gt4_}?X$Q3d(U`gk%zHo7V1jhjSW`on$pYzI zyD!P~zO#JFQCp~qRy4GW1?6!C$~Xjs5uTC)2dTo!W|k_ZA&tu+-J;;b0A0jgt^}Da zBQsna#~226R0h2u!t&t|VY4PiUgCE;dqNCuLg|{U=SAtf=2&W|wXUV2Ic`HSsud5L zQo{HCw>2uq98$XiuFBi|IQ}9&ENrhzy-^hlh!E?rhg?Qy5WqV?0osrnL!d|`L-5qg zdbTxz#EEHcS#R{*xX8SbmPpDCk=ed~tD?$j-!;_Qe=MQMpm&m$psSWTd1kOO$xg~* zGR+va*Vu|W2e&vKv#Yg@#9`Vh)FKO*8=@YQKK!j2?mrfmSQ z2StloM{8Iz3yhuGiYh+PGCaFZ=QKK-R^{4*GNz;wW;sqy)1(@Ho_QC;gNQCqyo?ge9VTnGZX$N7eRd*l`!?2hU&|6i@bvD#OArsw_AcTvlN0@6WsH-Q2l8#BsNk>kR&g!kcQzN`;T1#!*pkt|9 z2TKcvW*&)iKp}v2y;;z^D}ZB5&CX)d&^fuLc$g~gtm?IDFc(9gnXL{4S)wlJHxM9` z20JBk4`#Z4n_E%nY`aY6`4*6?%`4}xsh3*TX0#AIQ2=9xC25Pc^0K?LAVaxP7mJ+O z4YbNqOUv`b5mK-)*@lwm_Ct1ql&X_Z@R)IH>+4vi5~IpU=HW_F@mdb&T;BoLjWW= zj<8(GCoNJ0HKd-@5dp_BEmHR78w>fw#!iN1w~A*JUB#9A|nwc?4tPeM`j1L)#){{X~|3*$pC=xBX9+P z5(~8*rOa+Dk}1D4?Dz%78qfrTmd8SSMZvHn$c4zcZmFQj^rZy3)@Pu!BrYoAb*++_ zj#F10D347LC5fn%MlBdD3$a09t&b~&**JrWcjf5<=98J_f&>U6#E}7{fpI;XjKz9w zrCyii#X?J|kkZzN6CjdeNCL;X(b^l9(U)tT38$sVa}7NnO_%E|pDlu?{?B=%p1(Sc zd{sAFJd#QgqezieHb%t{H^vM$(VskHt{oY3}hR|QUTf~6?+6#=D&RH$i7RRoGj zLPX`a2~@7*8>wyFwMd+6HWred2?Pp;ITM{5;4u=OjFqO{RyFk=vrW_kk z8^f~}%Rp#p0jD(FO#DEBxpDTb$o2lEk0jFluXd)D+3RHxN2YSzvECYtfnzpW*&*J^ zDM&|#1e;?F;FV$lJqq~D6%0#pI7YFpxNR~)4QzoTnQ<@yvq;MkGFnzfQp94Y)n#&X zG&H)PX}gHHE{#cz99&3sgsa^n+5Tgq>+)RJG}OJKXVpa{%pF@Q$+Dc5jyPpu1x{wx zF+c=xJG3eagpH(iQcz=&UuG9jbMVxKI&K6OhBBUD=VfiAfCvsTa9i4VX~?=bEu_kB zXXYI)Y#Al)GnAJ>7cn9)VnbL@Xsw?&?NYZt)ESLWXS#Py88?Gov1PxQ3MXbY`4YHm34 zag1}=Nzk+a;0zZ)AO`COT=BT>`GNhT9NKKhT=zestD(qp$!YYKdm_b^jnr|Z*{W13 zEZ_QB*To`IJ`m!|@PJRM=%X41K;A93VB$ME7_`jHc2D%qr{|qJs9jc@oi_&L7Ri%v z4uUiq>RbUZy#DqK4!Bg#BLUvw*#>B=o192x$*(^_h} zzOAy#{HO8Bq^_MQ(kPlbNh5`78fj`FNh7w-eairYJ&M|4PBRJ`i{DKIkghgvqc=#Fnhb!SI4!8N=Q>_JxJpfh1t)kSF52}^<3d3 zNyyM`ke4)^qT(3f36mkxu~cc|}` z+dp_d#4}xIs=GJLX>v$E7S8f-!)BDmR65(2#oaKyA8G3KrD)GG4(Bthp$3| zX;*@85ug)c;4RI3V{YSUR>nTA99hPD=YD`)eF^^09GR@0!aGQaS80^V>bqsC%O-;| zX{K`vqe{;*<@A(s%SI~vYHZSyYUZkvp=FIW z%@arhJV={=tByD=k0nC__tfi!M>UVk=N!@jFi*lE(gsq%3rGNl>QAx7Z4d|Ln9^Jb z4F#d58X$Z|!VHI(0@6v4U@kHI8!GJ2JJDK_uTJH;POvpI>6S_L5>?YuQOxv}3l%sM z@lx0R^*YaJR%>2ooP_{ong8?Uz$zJ*ehcK9?GoN@exXWcg(IWg^9_bmdf% z_*7NYWV{*GEj*D!Srsb>5!549B$3?4_%?M`^-gUF>hAYIo#X<-Bo`1OKd4KIXaFn4 z;97BX>sF>qtkH5vFbuxZ8aUa^umH)4wCxLODPK+L6WTVbs;|?P`gbSHX%i)MuAPMO zy*)EBO9ed8%M6kViAf*3k~=fVMkPtYqm;i8e!7Oob$U)K0Td{jX z5Jl?F&22=_(+St2xe|NM&h}+A4^` zhLQ<@CQ%sLp>fm4zY>anluHN8nmn@lCDC4P`XAen%uK>qZ zAWLFP-5Flk8Ey%XNB|Il(fPc3#rqb?a~*e_)MgQ8)YSQ^XW9EL1JWV)cxmWz^r%#* zP}3ET8E*1>t>oVO04FjkRm0Z>wHxq;xPZ_m8e5!~NOT4pc46Pr7MBW*bt?3`RNe_Q zOcLt?;^#T0?JWm0Oaf)U)jypFe015~`@I}x=A4ewwME&_#Qy;H#ZbFn&!_8;r(hYE z4^6W$(XP4;Wqb>1zcwPH$bd;cysh+J?Rz3}n)!Rsdn&4O{Iusa6j=s&pDiW!6145A zC3oBk*ea_@azOY+&OBd83*!~lQ_lHp2_j*%_ks7rS0zYzqcF_UODm(fsELS_ z$?*k5$D7(aOJ!nk{Y^4x;u_aGU*(x;Y{Q#X#K(JJccN#N>(IO2WB+W z2A!oO*b>EKj2q(>TKKGH0-J;S+^#1$aC4?|mpWv)33FOZhP03X5LF6zY&Id%(85{< zM+~e6&JAqCT7DDRiEt9*qOYc{?9WDOSaaUbdq2}%q0+u#6-6eU%OH5^HI(o&y&Uz1 zYnP2YX#$d>D4Gx%iUM%Gv4En?RTfsF<~y-+*JXC349?U}fuM$)mwZ8L!Qve3C2Fp( zG~b=BhcKInaR5YE0A!NlPiDZa{{T&7d6ge(wOK;s8e>h%Qx;X7QN=?|Us0G;&b3eP z6TH*131xFMZBgN&NTWj~>;i>UX~i+PwmjzqjKozgBs>=CKzz)S1U3P%XisfwG;`2s z4q+47EXo0F5tIX!tsns;<|YKmC~0+`lJ{tGthY|*x^qEhxv-|r@`{KioJmly$raLh z3@Zw<#vQJi9#m<1;GZ#X=ortMc8rSAw z1`AEWBoffjPH7aK_dA=9+lGTs6h&*(+B<5`YLl7~dyCi-iB$yE>IiD@AjGOotQxUt z?HPMUwNimnN3}OvRW1aI_mNJ|Oip5r_ulwD=NRo;uu3t6J$M`B6*>%fJs{IOGXg=UI^8zLq1L z-!irMcS=N!Td;!qts6r{1SSS?rI7|8tzOcC=uC_GtV)AHt#WU2D@eEc%%s*=@PiVm z6h2-nE0s2HYiL=iqRfo*ua}bD%mB-!{mBphQf^X5iiU3qnJR5Qh%#5EK#AAFE7+N* zp$&tylcqJt60flN?yS(BmIMGVsDQ3)8&Pd?k$l%yt);PeqSo4g@>#TMd^$|cjNcd| zS>agubYUtqsZuo0@Wq#;sb2LvpMyH{oeh>YcDvHGt~i-yGVpstRR~b}n7`VZT+5`k zAiE}(nW?5L#?Qq{0q|3K6&^g~s?8knscYe+*zB1$e}F|XRRg6J%Z$9H7MbAlqnl*g z6j!31?;!o6765Qx6?$SnT>JbBZ@Z5&4J#i|L%uT}rboU80%n9NGw-FoGP-SJ+|QF0 zQTQ$c7_L7>lc0X7ua!S!eu!^*)Mmg?vE21kkbMPHxF}pzT^)P4T%J_FNU42&T~Qxp znc`{dBM`XeI#BjIhv5dm+<`ZUE$(FkWRj^B>;sjg!NRKUfAPxXz=)Fjp;c!35_JA*Zi>p0b(afsAe?&#~4UWYBhG2Nu+bwBC`-kcC1AzIKqkqE#`DmSVwb|0q0!(%Ke z$a{XazZhzgg|kdo7p4nr93aM0^&CHsZy*>RPUPjQArpb?c(X zcwfF)TS5cZhS^ngq&b6CfQM?@RdhB+h7K5D3@8ro%pr+IvoxB{t2G#quteq5J4=~6 z`OeC*C*_Kp?7MRNW~8wr4w zC{u+6Ynt_L*#GwpIDH6q7p;77k2Pf+fYt%0P!pHAq|mlqGZvEA!tj`idjgMBUMIbN z42KVEg_dbtl`y!k6;5!Z<~TiL5Q#qbNL^A-Q_j0h*{FXwhyWjrQz9+;D7<|!umlmT z`E1!I7Peqe^HG*~3?L3i=V_Ma$X5n2*q=}ftyf0O+FU$n41pMcOzr4opNuk_)*86< zFr58}ok+aOITSz8o z$g=+GkrFb@4a`w!%4JmDFmwv02oXj_&%k_QWF8x#7d1wf>#=PjBhx`2S@|G>h*0s1 z4z9LT4vT7OGAd(5DC6Lt1HF3C_g|3{w%=J{_v;r8#j^d=oYn#(>hCMs1A~+ri!Wc_ zNG^fUwM}^M8F@csK)8UM$Sur}%))hGH{>BGV=u0%);RZoE~X`J-_I*@QQvGPzTYMI8H7#bEE^LQa68jP-g+hjgTl4upSn%MI{dlk?l$imJM~UtV zv2QJgN1G0SZcHcRl~hL*n$KVK4Rcic&IO2qId>D3=djSZM#>)@O6zYkvqoQ4_Da(+ z=@{85wM(W72zhmc9)e7jseqhhYT3o^+KYPK5>HlFw0^55yGT1y&&De8Nje6oKHLFb z__{|+S1#%KsqyvAoIA!7;%`;-9t4vlRWuO;fvD;21Td>lN!W!=!w38AcNKHo>ZSlpAv{-r{Qy2QN6B^ zNcmfVn(p-EZMNb1t6pV)$4?;$Gwauj3!|k;%u9gBy*O?)`rIJK8V(EqaIWIL{UQxo%HN}Yglb4@C4}}3 zy2nacNBTNM_!}fZbiD?#mqM;S>*%a#Npi+&;Ypa(g zF#>1__tV8i(&L_Scrtw62yyJS48Nu0%b>bTGv{cGp3aFK80o;lfFH=`j*#VE%ZS{? zDQe+Ro3g74L-*pTfFYs|J-fBI9%HZ??!izqDOMn#^ZA>sV4u)mhm3?R8t5sziC{Cc z|Jx@~op1UA-_LE1fWl_Z$18o$-ee@Xy-a6*?ou8`WD!|zMkgWVgtOBk1 zBYzFp1Gj=Jk4ds($9}f9y(q29X)GbMExKc??IGR4lczr3EK7mjGrj)0JmcNIA)hu@ zSeg)`KEKl^!r+hI8;KW<)o6Sh3oHPz_db$k@O&`xW^a}?R-aU2jii447W7p2-Yf@f zI(NTkjmJOKY0SHLSV)E79ZKDe_#MJFr($J#kpjuuC!PHa`1r0o*rCuyCDV_SiFWO0 zpKgwML7iQRpr9aRe3kb&OL5M09N3j_nkn}=kHyU4s2fyEH)7P>Fip29v6{!QK+n$RgU@3(i-Ti{%&{75{YzPj@DG+A8S-8AUXgQ&{?6u}xnw*x@~W6Z@2aiRrp z3zMQMl=}N-X1;ndjBtv`AZ-G55b(H|vl}aMz*?cZ7}A-v#Pg6M!@FpuJE`+7d*J@t~<(UU*F z!ZUyqViC$PW+ODLne-t8Te_~f&v($5R$QkhptF=c^&vd>cQG#;A3z{Q$SbzU(95Xh z`7vKCtsjYBDGWCA-WeR(RB}X88S0Q*@qKe32md>ui zx%rke2ZphKdS9;fvcCii>1yr-+^PWyl`X!eb||>b=!ldrb8!)m154(MiWn&RVSEh? z<}AyK5wNd0nTgx)prTtVLYgBc&4V^v41Dz~$1jj+FGs>NDy9$?k`UyHEf6ggRKu&}|^_$n*70ooN1pW~_3-{ON zRIr4fc7bT!gqpoeIr*e?wwBaVp9B@t8UZ1Zz$V&N&Knx18HB#PE5d1yUf17T3gcE` zm`syWx1V^Fia>l^uVwK3#1d(U%hl?SCgIq;d{_CfM3FA%ygYz9n9h6xq{x!NUs@5b zO`0TynOCo5K=ETrg*#4$FEdjVCQG!JXEa)xZygP6k{I484U6ktPLJD{(P-RUZ?=Y>X64g4uu205!*t@HAIG5xx}wZK3 zBk|@{TNHNZ6$?tq8||uu%mnx;xkj9IcEFfoF;dd#P&zKUgAQpWn)kPkxp`=N{u6Z`fQ|z*CJa{;fHF9X&;K zW<)$YV<^-=!{U#F9ohf!B18kN8@=82UsAg4WXSk;wzN`8t>j}gxo3F{`0Ekz=Adb9 zRcIA>^JPfwlrg9|;V|HFK&g2psy_hy$%i}s4pi#bgTwP<8X()E=R)&QZJSGKfOgbC zBYvJ02+ma(ycz@58tKOyl!iF?ob$WgS$_1NOI7I7BYL(%N}QW@*KqBU6_f?0RZ-cI zKyRaDDPc(O|4bN4Hx*!>ZW$<&eNfz8{*vH0Ps=aJFV4Bz^krI+Nve(d+5fo9Y3=!R z?~Xeg?hIR4Egkd*Q!xG-!yWZBI);4gWm6M&1=AHC|D;29x_yzQKryK*I;yrbEBu@z z%gSCuIg44K>uu!Kw{LK3RSgbzi`(P5I}z74F!+Tn8b7+Ce40nxi1+}Mdb;f|kvTAZ z1(_q;I7rwrO96K~;4nt5xWjTcjB6=B7)#t2hp$26yex?JqY81^fT!!m{uaZwjUSRO zx&#gQ9gPeLT*@-eTeq z%3wL+c_C}HOWl3&a%Hd0R;}%_MvDybNiSZ8>8gyweXDCuZ{JRtOkgD%E>y%_F3v9Z z6;DkK0NSH@S2R`Jf9R;JuTHQ;Bk_^eP*$_ywsXXW8k7}p?5EFtkgcDP%fpT}D4^09 z75TnXpaw!REw@=KL$qZCR4|9qwO(d=79B&Wwaa$i5tF&H_4>hebRn)k_l_uP%v>?J zr?NRtc}TXvaJp=mSiPtgOG;QF0s=q%dD5Q97U{a~BNmfD|0<|J=VM!=g>=+a|B9nG z+DlaP#;W=A{QE9Ec~)~f8K}l_G6r}!o_!9xE~hQAA^P`{TbL)n!Ya>jRdZPF3tOP0 zFrNRzzB}ldR|P``7=)J`K6UK%6ZqwzRH3z+c`e+Y+;x%x7Ab)Uq>vMBAG@Zd>)Ts< zzbf`y&m*U~E{yhxEBW!Mx9I*Na+MYwDEYFGII zey5EyN)EGclqnDL^Aea{;?&4TgIg*}4Rmc(KfRv`ec!cmC95C=RCl-;)afPax0lIY z!8c=Btl$F6>&C`JliEp{jtSAp<1MAkaWDR8zd%iJSrPS5tm~=uN~W`xO3RK%Gf4q_5QQLxV|Elv z?o={-5P;{npQx!qAV!qIKhm58hcc)Gqr~EzQP{=~)8y9Etc$Sft%dcQx%NIwOSWCZ znS~unuPA35qcuRNdQU(qjZTrH5T$p6#e3+OMM3C%-?nl^ZGecJjiCH#bztb^rQa32 zT3O{yzc%(!&Qngifj`Z?3g+$23CLB=kjm0zqy2H`wMpiC2 zRBeA{hv-KT%y4c`i;C4fnyn(bhQ9t7O`lx6fuPb(`|pUqe9^S?2*|xdUs^(>bmgT8 zNxCEUZZ=()q)QGIb6whLci7v{mKFgz*E z3~(b~k5TcfJ1Uawmu@#QCUi9V*s$mQs^nBFf7f-@WMO!)3oteKhOn_y8I+(oRC^La z7b@;$=WkrLm%{PXG&A23%92UtyLm9axw4DfgJkkJlDcMVM^~}%y;jgWz?q6M9W=XWA0*b!9}aR?hj61~6-U z=on#D<6@XRYAIfL=~yV?PZPTS?0ROcg84VGzWBNeHll3?`91C41QvS`2; z?$&A|_(yl9$7oWG+o5(hKTTVE@{lsws4ZV+_`U;!%8E!ewNK@H2zBq5Js#8GfTzjU zeRlBTv(K0=n$hA%AS6xzQ-)AOD%tkKKUwYO_nd7jUd*@d-)M~i{RN%&73Tj=#d8Jd9NV`HwH@Vw zi(HCFYE2gbiTK?Q@>-*^h$T+Adsd;2X=ksUhAo$`PHi21zos#(luVE?`z|AkXrNaM zoSpx<cw9(XGhzoQo0Lt>%m0$H@&qZh@hEp7PQ*`* zcv3Ov+%oxFeIiFL)gnE6A+JtG62*~}qeLOv5`-F&eo9Cglmhg4D* z>C}iX?l#c|)>kD}$xepa2u5ibO6GgXV{}blyh^Z;t)=k_vXiq@7}lavIzWp2@GW5! zP*rP&V+BQ+&ezlDs7rXppLfU)3~%KC#ZWbR^t{8>LTQi9+M+74^5_p;Zn= zcD5rfxvt@qPgT~{{`Z+3y{f}g-#qMm;%xf_0+9+Z4bvr>Wy|#1Uekgz@nJJm{V+Qc zxNV8PYDNHn4f(PC(U?P>vkV_yqDU7kU-GULUInqi&Po}-8df*Of9Ex#Ty}o_102<6 zL2ExmCm*!9xKtm_NJ7#xD?WJ7vx)l?cfvS?8;)^!#i^1DfGBV%0MzG&H@e4^*ytWp z+k$q;)9g?$XCTg}&0+{EMgMhX)mP@VJD5*Ty{W#U6*>34xJhrncHXO4W7RlZ4Sg9_++dCUot%7qAp0ApRM}r&3V+=)j4jF znleKD3U}M6X{8@q1ObGh7=vB&LWFyzd9IxmH6$7uXp`M;p4JT9NYE;vDWm;(lqEB# zy<4F3>Zur&tz`Ka`ZN1%3G;X|KZ$=fA)+gQ_kV!E)d)+dY7I>D0gHmpQ{lBnR<7=* zn-Im_zS-t!T1Ev9!p<=pzfH7*oTt}#l)-j$W5D|E4jyof>VYb|tIhdzRA9}^YDzDe zm-mVKzXy5cz9C3AdG-CA!A}=|tQ6Z{6BrT^#}*e zmmt7-e8$2l?ac>Epc#RLNIHgxe4$q|`PX6;goOkd`%cvBr^IrdZ1%WRiH32DK@*!k z!8_DZ57wJb^lFmdEX8uq&Uoa>ix||t#T_SuE~hTmcI4%6U)I*530@>&eBLECo|Ah?p4iK52-0c#PQa+eo<@Ri={F*39N zW)-rRY=sS?N#&>vMQ&C`+f+|Wrgd20m~syMxboMNS@CfsSkO2@ysg6A@-92r51jQ- zK2Q1RuB9J49DLjYCMpP3J93)6BZ*&l)7Ti0hI4EWNaU9u>je46d_vljV!?U8kO9l@ z%4(P*|2ox>deJMS+=|G&+UN&U)CiX4>bk=e&7tDesL1HKl`OFqSi(`^+!`g^OD-lp z$gA*Alm{Lxl(7mcnNUcj0nmEWyz=d~omR0SVvhDqF2YQg&$Aa7F-nkv`Rzql!#F2j z@3b>fvFK8bFkH?20qrcAEr8VX+q{OJxa;62s-#mKS-)xN?zR~L_Ka6>1(IG z$aM?V_3?OW6pV)!jJgDRIw-yJdUR4*KYixE@YG1MqH4T!>KmgP?c9H?q&%o_MW&=< z-zKPxa|*_PjAAcsN{zt^Irip9j_OGi_!;sh?Nit=mFulpo2*s~px1BmHvee*hC@TwYMWc%o51yQ<)eGl zgEf03HPt@Y?I&6F7q`BeB)K-!@T#THkB6!QVj)k^ADN?%d_kv7Hty~+#jWf#p)ph% z+z$6N&odWqqU1J6O&gZ{Xez#mW)OkZ7ODYW=)VO69mPW3n$!PZzglTg`{!qP-%E5K zQr(K}dEp}Y&7zAPy?9H4uhZzz-ZTNy z-p$mveShP9vZt%Fv!F*Kj&)q}D>YgG^X}@Dg@1gwX-v1&V>7k2;vB?Qu0%3;n~zLh zcA|78axIEa-AQp0Gu}oes2B*MGdb-H;xzo_v8Sr6CJihRieME%nmZ#$#(hcKq3I}_ zfh{vZB`oQ1;Uh40m*F5oC%5By>#Igo<%z|68{^gHWb?U;jIRD0zj(H?Chm0m>H|wd zjpub2E;~BOip(^7H!Z4$Buv7JH>RV3(faSjVfu8pI6hFLB_hqE+tSMpkyICzdgs>C zXz%y^ZjTb(AYIA}2SUg~Uy#-pcv+idyiVE5<5^R?`Tw+l(T?R6xC!fw${U;viY3YZ zjR^LY*P3>>tUIy$y{afqW!rJnTy>_%%N1@AJY?28ujTy6Pr5MY?K&voGe3eRRnO5l z+?m})X?^9;^iS(S%j}?^+9z+mXIYdm0V~@bK5yG>DkY5Wwucb6k%d^oR{s4%WHE-z zKs7`*diup?c!Mv5d~=kY5wHX3X9qKwM~;TK0zQLF@OPC`>WMH^>BbTho(5C82Nb;q-U@) zr@|*bNa=6DR+l9o-G|oGQ1z!^i8keUI{Ozra;^fR9(Z{g!tfe>0c+xr!${IJI!uKc zXM4nhEC5qfDMo0Rsd4vPoqOY#!(;&-QmwQ!f0!NjMg}j~Dw0_;^@MTIc6C#F zU-(^dWQ=Mgj3#CzASqzv`&t|dn~o;mo#(uUSpfX3|C315GFRgvTPPDKbc|HT=`jgU zq&Srgb)KlbtCeQw=Jd1eNj;|*P_Fe!=xKdQ&&s6z zFu~)+CqMh)W$ewt12GjyP+~ko+>pwHpH+gw8!tj@I@snMKXaT4mQ9m8ar+cwJnKLz z4ZPRomDM&`C=F@%p!m7ozaRaJ$JsWPt5#5@I=r?9!B`YrtQ$s9>r#?qg0b%j{MKqg zd%d);;;yy_Mt{}>PkXMrTLjVs%v38$^5|fWvtn6!32I+L**B`(35gOXQB=I3VP7td z=NoN>i_7HE=<(|_JFOkTu5hdr`f=vr!M0<}fY!7xtd!#x3;Rga+9ig=C)w-JQL>B7 zI~gr_2@{MEs2B^)TW}asYLodsd$=dR{teSM)BZlp4f1T9)RO<~ePrtHWxQ#D_a?e| zXfLYNzoLjq7RM<$QezIKrPkVj?=HVe~qrIYq~@GgG?JLM8I-zt`rM3AKW5Mu1|`#+v`4mBO^ zwH9MRx;BWvxf-sITh+H17Rr@Y%4S`Fs>4(7W-oTf-z`s7OyVstObIcpb!P?<)Ne34Rk0HxnkS9VhcfP;0TO5JpT2!_Azl5P{LzdgV-*7z;JcV&_+=?^1 zIk*V@6tU|FJry@9K+ATHMZe7*zu?YQ2V-BnO!8jKz2eH0sW7<;Ofek8vOV_Z5iHYV z0vJa#De@a6=PM`NV#;Xijk#}7*P}btsy!`3I23Y#6f`<#F3;I6PnczpRil}F8hksq z2#!dPk5yAAoRhg4+}m>l*3}3P*{)*}vBLMK(t7BnHxaj>4^c?Gywm4M<&sIUW2wsX zio!$01!yuZjCsUAvq;{6$2;s0k1dee+)rkbvLskoVj4B=W4lv>|u;QEx$%_D9&;Y_2L!$5THCk#8%fr&w2BL>VzfoZi^ixV2evBg@aWdx zoold4XJh;94nTgPctz&xZy+akaTeaN`@1VcivflNb{R50l)gi_pSGVV_%cZdZ1+vo zAndb3xD6m#lF(P)HPhdceYE85&PStb;VyCcOcl^Neda|&Z-K_Bx4uU_Tb}9)pikdY z-EaG~jM*cAJE9T;!!5^va2K|wDY^0&>$WM2l#tFVPmopMd&@ZkrK3W@VwdRnR(%YA z+Dz+8dWX#SN(LKJo$~LL(U#h>%o>R}X_JL1ec@umXiOCTd`^x?2Y9UF^-Ro9cS&Y( zXhqlH?f`d{8t48siK>bnKgWe{ommQw@1p&ZHx9iTl#j+#QWKkl(LjyA7K%(K_D$Qc zQmLaKFeIO3WbJk`C>6b^?8%8Pai|H&k*+e{Cek%C*No2xh-4&hBT7@;FxY|lz^k+fr){?FsK%aP{=FY-oi~fM!M-^Cam&4bT5XF!Rz|l2*Kl_@a01ksz;NhUh$V^jccwt0W z=^|Tt+~?33w)KE&Tf4UEt?K}dC(#0;Oc>!bN;FJ09u;JZF<&g1JTE3bwGj6bO-s8L zR28pOTV%g%<*-=JV?3bDoiWNcsAMP?U6<%FqM{}&L(YpdQ*U<_nc>5l@`a~x(u9s- zLY;0*eX#tV=7;ds?A-YY0j4KSYp(_7G6El`IPrGVNgfL9gXc5A~sO~(PuD7#-6(5u25)g9z)p2FOkI_ zRp0)ZM_UZOpAW=~_QSc$-AecC_K~CswdK17Q?fOmroP#j3C<1WPxGOe?9c0+_$8?x zf=TsU52ZbxIF+^*|NZVlsDq*Mg1ri|!G6hfo3xPetD(7x8f!;}^MP<%+yonIa6Bi| za_QFxKqy8-oRfRGs)vKL!dLl(xZ9dmO*TnqNJ|!}pnR(2s=1POCT>%gNWGESF)V*0 zjp?<@^4J_oxz#xV>uk%=oH~wRt5V5D0UamU8I?_qZR%`lhB_DM$=iJ=(+sBS;3--I z941TKvEi2L95sjgVctPuE8-$up&(1Knj-sBc#_1ON-EYR-B6;f!FYOzYTp{SBWi{y z)@t6OXlGViz6m}YqJwl!?iP08qQ!MfE3|gTlw91l*s7uZZ4IJeir}8(dqHS?7F(yp zN{6@k{{Z+y%^suqW<8s0m`9Q>W<}Ek>y<<1ZnPg#iO7XAptrP6$XrHTtsPgm{lt6t zBil6&82j(m{C8DtY5r5dX!sD78w*A^$7|aTt^OU+UcxkWP1BhU>(d&Gsl1lMn~is% z?Al*ejGvhfBB}~B=50@R6<;Hjt&b@Z<>iiWw}_fFzI*j$+G97TlHdO9_IhPq1zH*i zGx4an&@+GdL>bu-?wg86XIzEy;{|DV@@?U}+trqwSD`_Zf}uYXj?CUEf<@;!U-5T9 zW^&?X2$lhp-9m zX=F`cFlfQ)Gx<&Qfaz--f3)z9<@PeNa(HpG7Vsd6cmU2cx>L_0d<=3oZ#L3?kz
l3Cv9tqnNJO-HiW@XF+kg>}=Bihs2C`<+Q=w2X^o!hHy6}h??6xY4ndi%2dFau3f}Y>M3%y z*5WE#@l#Qm=;uG9gj3yVG*$!Vf2Gx!{;>8bDsn*CeYfZ;!Iw+B(KE+He8i)8UWmy) zc_{YK(%|%!-||R){p}jP7y8ZBGPzGgW)+q5@COWnpOdjoj!y)M?p;ds^9*VLKH=2$ zM8tz!qxI(1-=cLU;YK<8<)#zHUF|_%%!HmyY4imkQ+{Sn-TZY!IjS#6(T?K2GjX=KA;{)_#zMTa z{Y6E?<>u-Pe}_U-Cwue%0B<#q<`zCr-Ic#T_s{5Wp_X(7_h)~7=tRKOxV-U*jsefU z%n^Q8S%~Qfe-cIXT~FGXs3@O36rO6?7%V3EFQAsF?Z2)vobv16WM2pOy2CF%ZS@IP zI&iefE_%J=1o$bF`>4)}TfZp%cjZfHNS`iFqKv80OMygx;03am zB1@+`>00Ot{SljV!aG|#`_6IohtoB_Z1t`lC4_?Ow9q1D1o_8XBGwEk8Jv$Ua)B6; zlm!>%NI9)H2)8*QoFp4r&X`c;m`-;2722(BmY#b|F4H%pjaigkKs9Il;-e6Nw%W=_ znFhs6rmc}{3bw%yOlgpEeTZ(psq?DrP=3#1*LsX-X=YPAP_R4!dfuBcNSp9PhST`y zL_yxGSum{SQy`t^Qb7Jps|rp$LsA^Kr2{El5Hf|vb0-(rOQ9F*|1Q7FPI%xg#5$24 z7pk>wmJ$fRhU^M2&V_GxZSccifs&Py;CI@F!~VPVI(5iB4f1sm;yLn~y+Yu8l)2zO zjs)Z1LxMmA+!^m#;C%7bp+W_be$~8S;n-JPhMis{#VNRZAq7wUnF3}2;6xD$;tji1 zaaETqxO|pkf@zFcb;0d)X;N(l@_WwY-V>AU#)G7`x$j+~yPtSv0(=82O|occD*p$# zI{i`{|A(WLyd$1`y=-mcYRzks*PjPL!HSZ?25me`rWg+9i@?R3rYB}Tl^&~C%oc4X zv@z6=#vp#y7JV>Z^keBVM9cVb($RVZq3sxnwY|91|NXFUdaVY zuYx8RI3U>Yk9VeZ8b(B(>z3~efgl9r6cO_`SGwkd>36xdb@pTT@mllg3hus_spSm+ zdi(YAoy>`VuF?{~$8|4#wfNR+A|Fr0abv1XxY8EcIHl4TsO5FSc=A;Gu;)k_>pIjG z;y1Hz`}F0--Upj?-E}wgxl7b%(|D6FM-!pX9;gSyij#aFl{Z!{5s{uuuJG(6LcYoM z8=>!6J`IIO^g<3VUe5v)zDa>oAXnZsvobF7JcWyUIxqPO|@XDB3d(g zb)5=9F^D*nFc-pSJ&yt&2{)X5zb`o$f~PcseTOHS}hegQ~F9{b)Xuw8jX(Das6 zE?iXHqup{IXPAk0@E4hjF*!Kah3DIYln6^U*1M159^|9Gv(g7d%BO-%m#sxxSo;$` zR;RF8L3#ElN5>gxrGMD7ZQ+UA|DoKWxmxvpB2|X=+!R$}=a+z+c%NF#$EpS1Io_)P zS^!!>K|x7mSRm^vV%}CeS*3n@j}qy+KsEQWqPGvl73=mFad zrP*Qk7F#T-iCgs|Z(jIt@I5GoPcKpFYdg}vGO^ONz;TZ|>4n-WCBPFi@o4Y<9vrQg zN~z6-Tg@MlSL13k1r@Vii`@^kmu52^kW`kiN0atGJe+!J4->`cW1U0t$|ZGh?T10C z2R$g;zkM2U1op|)+qIiQr;5dEQ=CwwhN)9Yrf2Q!7B5QM;67HnAi+Ieb*MjzIGn-Y zv$pY9v1^J<{H}n#=5gk0=2m-F_({gcbTS^IDTd#mO5-u7R2$4H73?_RZM-n zYEm=aE=&1djrJxz!aJm7qw) zwtq^J8Pixqx9+veIFVHYv5#f;(lrS1Z{~bB=zN zImDa6b;4ZfcfF_c?vFla7MdR=Ey)fS%e-xVE}HeLxxi<+elog}AAGaV3Utj3 ztyu4Ud?j9{{&mM?R)ux`LCAfEH^ea;rk1A8UI~Pmzb2b^Jcn_#l=U7&p(hFp-)GZl zEkS&T5a`gbF(&hY_>+2_A0w zJHCA4z7fLr`9%gCyna1sKiQB9JgS$&{O1unTk{K(yCbZZyhaBJy{d^)!eA($T?fWi zM!J5&OUVZ<2rwY}GgACIR+-JIXcJ)dui_#W0yWQh^epwiqokSJ3(}^Pbv7gg)tZg8Gh3j#j zneW^g825gjvI=HZpL~Z>1NPIJzp+{ux*K3nq`&SPFEhX7Not)?;rFgBmgaY_JF#Uj z;9Qw%XK#vM_t)!=6}uVZa}1|RYj7dfvTwl;#F?V?0=E$SGviWfe@p?5Z1Zbvg)7!x zE$#3X@axMXPIUk+0yd7j&DJt)Rb*>asREKKK*0+{l3{ZbZvTXf+xcZ{WqbiYg7uS1 z)T~^=DZCkViu9J(_bvig;*!){2X_-^7R@SO;P|q;=JO3wh$5rP$=^>q4ZB|El?(HF zIX}Fj$s3f=W8B)Rmmtj27)0mNkpKF%{G!e@xg*fV=aHSpYY6^su*z!Ey@w9L659G! zDJk>pj;b%YCct|)<8K)Z-TeE^Cj%j)+I9w+%G<4w>6csuMJ5LQgj{{ua=I9+S_l^~ z&ehaPNo-=BE;e_WCd3UxqZ`9~(0r9o-B3!uq{ut zBp)&=Xrc5I**8yCaDOElXr-*lEoz43WmPyD^$xFBz0SW*ZC%0a*15|@5fW^~>L%`- zu0^DHwFv9P9l3xy;-2!@mF?akFR}R*t%o~Dv4Rw^`JQln8XqR6)PB!{CG=D6R7`;K z*kw!Boib%;6#hlL2o4s(TKoRfli+?(<3=`%%t15TmQVQIl!z-v?0W8aRhCv)+vg06 z4e89O{Rm+7!#BK)t&nCh7cFI<^M{Y74&a)!OR*rOe0^GPlnB{x<&ml$|ItY@IoEjk zqxL9sXoX;;b^F5)FRu5>V^(=sz!IgP(#W;oaCJL4UF52dS*Yx=No6#R~fvC z7fR^+HTIz5{PW6F;gyUr8o)MMIODU{7RNLg@(jPH!(BNNSj)xz?Pfv|GR5qkcs0S(}2bc(FR|;y#BdE+*Ha^ChI+RMXGv_3n-rM zkv-pGIF5=6E}lOO097f&*D)%xsAN@u6z zkE8r_iDlbmEmw;&wUpF6hi#(vavWZ*AxX=@bBZ|4*d~9{tSu@ARaj!?7s0;pQ0nw0 z^I6XMT?O#P7D{wE`Y+;#gca0o0{Gx-3jB2)92T6v?cT!>2eecnT4TK7qvdIU+Ax0W znDd?we|X)UEQ3SA52|tLxBtS-Sca4u)1VSLA5SI2;#84|nc`{1x@S7H^3LC)H6Q=P z?|MKfo5EMPliv@#p@b>VfpaNq*GaHv%sB|1Q`@(Ejr)EnZ56azP(Nrea0onCSOMVv zv^Fs7TRu5rX8QF)!w4z?61wR?P_<*{U`fbYu~kkOfisyA4-#%qp+(4Ftw?=PvO;30U!f8LUL9c6 ziv4P^aP5NCJuNa{04R(Z?hu}M-vCfmbz=wPZtzgKM#1%B)rfaJB8itram$y`H_&e_ zOnbB{a_ml1u5N!tdvjMoQOSNVE4D7t->PzrzUfrln0*13dP#f?NmN{0xkR@gf;@83 zEHTb#(@8TftDG^|*4>AMF(EIXAkn~-MX@XpuZp2Q!sO3D04|WTSnFq@c?b%|~U zrH=&U6Y3p}RA>KT%og~q^}0c4xS;tJIar$erxL#&Db)`7#t}b6IlR+WiYJrl_=dLHm||e?XwV zE$;LYFfMMdR2iJytPJu7iZBr(ld%pT&u8dO^}NhI37Qo*Pw*T~Qp}aj_*fP>nv$(C zO;vUSy6lt&VciO6EjpR1n+7Euc@>^h<&8h-lH-5GLD)3-iGa+vpes)VKn0fJ-skHN zpg#Pc+iJeA6pgoPk-qsN4sQilSI4<$F7#%AKU?UhSyvd`7#YV{{ug+~!OK(DDl&gz zr7Mmm(AS%XZ{etF0n3D~I?j{ic4->3oieX8ho>fF{2gf$`)i@Z(61WB@8Ynpdyi`P z+(n_bZ0h_!{EeKZ9U_*ln_ zk3clJN8CdI(Jx0?oZ?pt2h)tqw2{jI4G`c02k6yCfamf144a(pApy5BeD4!qs!xQ7 zIFvFv5l{AjAW@X3BhFka;$1YK-SVY>50{mh?;J>q$VEeb`GAsJ24Dukk6+M? zbv#omSEBbhrNdYN6D~PGYb`E`B1iyS08h$#bw$*xvXj`>kloX|!bv9Z1c6{@c`L_n zW>%fjouK!%?31!BbC%X;IyYJB%{QgKY;+pM-;B zk7-_zb4FtUq>^BgA*9RzW;KmWT33|7J+s>q2#C^oUf*q3-~Rw*{hoF$qO@0L+6%M( z#JdOX(Ln@JY8r|yE2@TA)X*g>)k^i0$jeil))?gQqw%GcV|uGS$Ri&h+S_8A9v=G4 zc5*@OwWI(nTm!QL0FcH+W{1vVzW1^A1xi$1R-GD+02YqMX1T=1Ss=C~cAQ1p+W`Qp z?O92eXx#-r?%k%rlXtK%5};d(9vlUW(ae& z3*#I1g!3IIsyoW}Z|xgH=eho=)B2OLYJANzJj5uIF_dRnq*Bx>C>|VgIysgX3K#H64i#dx-_DiJcQ$FJ*MEs+)bu%yr_bs$$`8e} zT~$uQ@d>IKU1z47-ixgaJ_M1hK^a&fxBr4%PI#W#@k>lLh%%<;pu)?E84>)*$bcp8H7JGfD$tZ%rjY_E%d5V zt{GOfP)rQDhicM8od6Bn;y{pHbz`oy4qr=_>%99?_95DJamw#SL#b<}slIXU^_#ax z;43@}zH-Y;5eP&Jz+LQcZ2Wc;6b*W`-%1@W5a#6#AWbqSC~zbI95Z|-0WL0e3{5(X zWg5(JEr3V^;%U?n1A|ZX5i{D<04LEMf@)nc22G*6B<$-e&{G$lM>vxp2@Y;pvvRt`Ii!Y+*ITGMlQ8WVb`aqLNN8+> zBF1>gB=#K!a)?`&lPyq@JTR$g^Cs8ajNImZd4_>goN`@y84(%E?UN zr@N>zqaBXi1rFMdWoA`l99rLn*>f^Yk8e>EmH;PkbEC4kxGZHsk%WxK;JCHM3AM~b z!IztmWuoM-%$L2!V@I8Lub9&s%1M*ONJaCoiX+NJBg&* zZXYG^j9`kc?>{y4i|ky6nfrV0sA@EhcdSJxcO2Dy)`e-<#MOGTNPKBUK@phJF*_7% z?`^1{mdB09(k1oF!7b}WgG0Zex`$gV>Q3uL*S^>_Ks1A2kd`|At3#Y%2Hs3-x@K3= zK7Wx?S5aorwrv(msB>wu#G0CXR@?zGcD)2Qi=U041$yn|ll%9};m!v#PwZTv|&t1NuQXYyqInBmzyBCe&ma z7cK3pLUv!9(XMNzD>6*QW7E_T8cI4kDIkq0GYYpx_jqI^OtC=3NZ{}IqXeEQuYz+0 zJS&?`zz)a_1k3>A+RE0%fig*uBo`H>?!>g0)z0AQ?Pe!JOPVBRc5UQYyod`+%k$pv za>HMeL)#;39agzIQqs|7+Jc)ao|<}TiwM>gfsB;_C3I@1U91(?c?_U6xLWjHYhj)s zzz%O#+>@xy4s5zlXf!q?6A%`Pm0eJ^xPb>;u9s)r9S$M@0?h{6fvH>Xk6WkX%%szr zPc+FY(}hTg)u?URaeCgEXa{Y`-#kxgm}Rf&=0sJaX<84$c`QX&4T0+IV^|tC&(5Tyr-xFg(d* zG&V`r8fDI$#E4k&SR+c2X?)m%TYR8FB)HmS0$X5g1=kdu-&f?Rrfao+q0pLdEXy;N zf|go(>7z|S(^;N3W8n~5dPk{kd6z!X@nuhJRsX?Yb!Ri)?Exg|v=ZKdmf z95obqRYcU$PfnSEl{`sinlmJdA|+MGgaW0l#;j>nEN&UZRxJ^nk^yi5fxwKW;J{&- zA&~CS9k*1f)`wS~spOkLmVgA={s>D<*iY>qLBQk?*dK_m)>o%zlrIoF?Ia=Z#GLj2iGLs+^oI224 zz*+&};Wm{Q2IP3o;9v(9jIiS&z=IHM8vvUJM6Nm3G-iiVQ0of)N1b+skwH4XUz{S= zR#4>>lu}bcEecXbtfD#87!lcSgT@!IQWDLThsV-$ut%vaCNnwZp!OP0T&1!HU;@w@ zOMq|@45PH`;jsajuv{ZAXCqzkxxkkQF28KUoLy-XuRm$Lf}{EwnQF|hQRKPX(@|y_ zo}bRD4J9P6Q5`~5MU*>Kzle~sN?9RYfRMi%2iuNTH)v654XI6yEe7^rv_+m|W|Blf zbWE9rrk)Qw!MmF6M``wSiR_3ZMpEJoiI51D#!=?Io@i}#PptC#x`k%V;nTF!$D4#T za>-2`W||snNR;(*8k&R)9@mh)(C~2lPA9CQ&bfw=VE$PdTJT~4&H;7v5Dm#EuysdI z3?`v#`oQQeoW-*_tO*S{a)NjPab;6Onq<1mFUXF7$+hJKlo@2y^H9%6RH;XowH);I z6l1~o>5*7ORplF`*d169MltPeo+;s}wyO*W0N~e~GzmFc$f!o3xz}_VA;T)yvi7@w zFz_mpDgr?*5?mfG>Fl}R>9b@+>aFP?A<|l=n=6Ya)mhGWE>BfWNuF13%izfBsv%zu zB}vBM(bS=eDI->L@~PTyY;|_d(>SNRP!i|wcz9z#5Yd^Q70|{1e@i=?Mm2cZo}1cm{~B_)XdOJY~i0Imo`apoTANwNf-P! zo+7Ji1~jqp1+8mO#6W4vNrum40yvUH1$#YyoYvY}L0zdc+Wk?gs>X1YIW_XQ^6Dxo zNnxj+wNX*2Qc22#w(LOM0T;vQo}FUf?c2(0MgqXPFLxt;@1Z%U5gK9GJXxnKbVCT_K2urJzY> zO@vGDGgG6s=^WgVk2vvx4;9-?GN2AEEs)R}WC7X8=`PEkwo9Bl96ES$h_67=#nb_g zaLf!BIFZ^iTnvKH`0TU`NVr#7K2w-4X<0kv581X^rt-++$fM0Y%AjU4G_uq>(@?Xz zM$nNmLd!B(5w(6^iw}l)#R}A)m=_$uta%VxUsp+6x?v9Ezpm`^aX>Lu+UvOb5B?u{UpOnvj+!23h4(5ky4l~sV)GMBmy(# zAT*1E5@IreAf(M}dtULh&S#}Heo7i?BuzP2;8aw`mDJ(U%}pw)X%B`8_((;tYl~Rj z7xm0Es65gTGRb|*-;oq4$i#FcMMyiUOE-fXNi4l~I0U*nwRYpfmPf;$f z&b98O?59m>-7_4L(#F}ytU9+anw^Ac8>6p;Bu&gl(su~#7>37ImMark&Z6dn{cz_8 z7Z!s88c1kx1iC{&021dqK~^r9rBa(|wbEb{8FDu@Wo&W`+ zO^K~wX{S^~$S@9J1Q!A#9jOE198IBV+NzsQWEyfw^u#*PKhv^Mq;!x-T7oIBTEe0y zj!-;b41mHe0qeoXKM#hhQm$s^%qBZk10)mJxX$4c10(|I&h8}l0YXkt8gv1UaF&23 z@Fq;SO{@lr)OIhEoQi!ZlGRnzPnu;=>zULz2l5xnZQx@ud zeL>bUwC55jf=Dx)HdeXB5HmXRTmT|+uBAE{c2zXof0|vDv6!^ZjXk2!BXxsf$#c4# z_e<8+yjsImXL&Y56)bgm^<-}?B$eg{l31lMMd2-#p6qU=K>FjEM;_cp8MLs^H3&Vj zZU<*MBnA*79q~YknU&J~yQo$F0K8LcT~HDlBm8+<4d+OW48%k&Z?m02kk@OP+`~Q3 zHNIsgNt)&IS67LuDd3v4R3JzUOsvw64pOaURUy;@MXk`;m}a`G@c25xk(I=^GjBbR z=Vft!#V%`F)(HR@0mq-UF_n6XZmiIA0}UmvhU!ah15Al*<|GNTrG9OF>Og%-Ra&ta zL+APC(Yp4%bc{zlo>+2!mOj0)98CCpz4PL}QPWn})>1U(XQpQf|LOUt>KEm+WWRY1r1Rfm=7$ z+17WS=ed$cn@0(wr)ififn;&}-w7egfN1_TQv3zyA0@|O>(<&8SX^L|=84D%Yc+d? z@(<=XoR4T}%pj7!wb4pVZU?S#jJZKEE|DhR)0#+(#j|*9|qpvbA}D9uL35>!c3UpZ?sDJDizQA7U#2w+Er!eFXXr0%8E96)Yf)1x%zIgNJ~ z1D5Ce#xbVMU?2~n?F@AnypSIdOW$Hhb%R>Q07%WIg~WeU5Uw)}k1p34zHgalT9Zz$ zm#(i=q10`gn(&nJG4SN5k(9>LZ7hgackmu=G1sbUzN?>uV@rTDnZe*maHmuprI|=` z%X2u*oel=VD!PkuRm@DBpbWYO=4k+z46XuT0R)Q`snGU?q4W>n)D`-3HOw<{s?<`? zRYx3h%MS4rZ!~DDAq*5SeSur~V^ur@sR3QorSqRKrq%}r$Y~|4XJn4i4Q@w+66wsj zSeMcwpnZSk02lyqa5^~UCB$lB((6Q>>)=DZm11Tc<~!0>q>~t@?H^UlhD+}u^O~YJ zUflZp?~ktFq12c`nP~ZN8h38dd{?Aw6!wK?2>6H~Y1}Slbf;bm*H92ZV-o_tV23?M zI#jhGajFObXoKpwa#2_T;F3@IVk?`cMnH8S6VFUjv{8NZdoE;oeVKj6DyekVt*V6S zjZK!#O-+=>=~%6)b4$(QvzZ#~%%Gr8%Wih#=O+m}O1Z9Gl!$9vN@N_MoW;bKl5(7k z10W!~GWv$Z#1pcq(_;V)tC+dYF(JL#00QGNB$+`z1SiBRaxd#_bGlPU4(7SLG!Q{+PFi{3jTpl0w=TJL?o4kB zvC*7!=(+TYETNO+d8=JJfJV1CO=nGP?yKNu)#u8ieH}NIihy zaf7phmRv%%K4HwZDeH2?L^+zr%b6&!LM1(`a*E&|E{D91V+d=4lQA_bwoUdm!Cs z$5f$+dn^1-a2gB4cfqmUcq9X209;L&WVsG+_$Hpqv)x5SrXZ@Unv*xD&0VT%A$MSD zDk1@k#Eizp84too7dYuV66e+!x{+30Fdb--BemPg>ovioIkE^jfK79p%0~@C8Kibc zWWh4ic7wbJG|1$vQ%Y#<5tw9KUKEDExcN^Lf= zZP;y7Nx2_{#Fn@R0?A-$k_ipf%>m;m4-I*74Uqc z>R7Bbk0Y{0CSMDqJQ5w!D!i<2!H6dqu=SeC4r?(E8KPzGWD;EOfrYMhGGw%uf;hdh z0vZ5(8X{OgXblf0(RUdQsK%J=)8k=cd3&=y)iYg5l61`SgK^8 zhB@5A(?KIUO;fR2P>K>bklom|faPFl))m`?b4F9y1;CI)UPv-rNy@}0TlIUwhYo^laiKMAooq4A;_K?)olN6`U9oDBa zs>w=+noQA5Ta_gtSyYtV&Z-B)&vv%ZuZlfD!;H@}0E&gw$TCYZ2N2>uBHOvm4ZBG^ zt($_Sh9&KJ%D_X!457l{G>4Ix5=Kx=L!5UjzrnjN)-6dMq@t?S74-Ep(q#uUMHCrL zAHpF@IBe=BlY4IQ2LAww!2H~|Z*6+`N52b-01>&`O5a2^z?%9_*R$Y~_ zXxFC9MFW}6vCE-&b=pWE7KjExBT0cPj_2(^E7Mt?tkSvXWckLB&6ho^$>;{3WE4~l zPOB7<)4Wlp`5ZW55;0{gLEE(BcF*YBaTLFaQ>&HKLyOrgbJ|0L3jl6WZCcSL;y}0< zt8|dkZ9E{Ds!3yuPEre}Fu4Q>hdMHtF_=P)GMy0PDc3r>9YI;6@&fAbpHzF4S(NJu znna?G_DM@RshL&&6lD$zHa>4lq?5GBLQ5uFv_ax(tpG=2`tX(G)l3{AcgEU zF<*eQx#(Go*~Eu+to~IjyeDvnr4TPx%rGW4085Sx9J2qe#IdlGn%4 zP8S=Bq{{gBzLg4w8~x*eXaF-Sa*A#ab-J=FB$|$NGHdU$fOv1M?rLLyRX=aWZdL>$RYL=aZkOq~c zw6;`V4DG$K<+?+)u*YaK4Ns{IYlZA{76^1pn*9bJoJ)GKpkE?(puXjlw98_q(GF zC5qWWd*W>!uxZqFM;1B=Hzs8N0E;6|LPWYod3D;y5?r-lc6~zLtg*~C$s+vBmV>Lr!x!YB%8QxRE`Wk}lHX*4i*s+H{MWFo08Q+Fa)3AQv#%z|_}6 zBmg1619)0jWs`P+r!+NYv9DbIEP!WI*JL>@22n#KbUC55Ijg6Rb`l69k8EMx@8Ul7 zupE_n1=$;NpnbJ z%!bPvTP5ENg6y&^VQ*Pw7D3tWQ>S$1tIsI3_G>*oVXdIeSW&iPnX>}ZKZ0I)3Pz0W zCCGFot`$Z382lz`js#d2Ftx$0Ifk#E)k9!OmpP@Pa|Ve8hpNZZnr>+@*8?^JZqt}G zpcfbd0nA{6;|7A7OrKG9tCMEAS8h2C6U&rKG$SRYtag#Wb!u2AQldCpYT4}1U=RQU zF}!XcI~vRrT1f;4G`?ry?6?-?YnmfGIDy!J@LZp>aUzqeRK%A-f?DFiB7dtUL7KXb?PRIOb@?LFHglINgGt zZmd2F5mu9Mk1nnmm=Tr1utrxmbG6aX0{}B%K*-9iqTz|4*08&@&`Wa>G7Z5IJ*^3J zw)!pds+YA2-0N9pdH#aZ`aD$B(&d!Z)RK7cY*NbeQcS2U<>Q3`kdVS6=knvVS7TJB z9PC9r;Qs)JU3+D&$m`jF7iVF}5A>FfZ9HZkuUFO7G~P?3x-S<12?V#|CNhu?mz5r( z&Qnh733UdNgH+9_=_E1J<}?{4I@+lr+SS!k$lGeFUU^EQorx4m3aA8}W7(S?oeH72 z=DCh8%s-Uv-wU55;-N1#5X`Lrv7i!8yml_VcDP~T!U!F##5CI=Xv!Ga?Gt%)Nw5oz zwEjVvQR-ZbRpoT~H)%DoRmGcU8Rl}8P`pZjL+`<4@cryYDgv!4G;wbL5Z1-uIzL*Y z94j`XXh{S)!zhsezbpGNGmsh_)`BJ~Cv6R{Nu|9*skz~{Xa`M5ry}xWwDJp}$7Nk< z9M>;`x3w)JRiAccn(1uLt~vegY{GfkhN4v~xk@JUW|2pS4(5^2p>Q{`=2qFxr;a#U z4gtnM%v@Rnz7q26&$xo%%*Dh846x@dRdIBy;M-Qa97wSvDI|y_0RgQsF_-`W1`djp z=&sFmJ84XZSubf()MZ&+NzCf2Ynq!U&Y}0F5W`9$q=z8#AQxi*2jMlOww=| z=L)o+CAJI=gJ4+mG>%i+Ih@D9GAAnH(Z<%Q$2$Z~Co~IAY|erUn&zM8I9!I1*ED9Z zAd^0p(b}IxED}i>OXL9%8v-}uHs}8Uwo{`@q_j2qh5!q#GnCo^ zE)0Tav`y!cv@Vv=wHix0pvbdM&YC)yDJH3HGfea{ZQ5j-rDZaY4pIVGJb~Ina!)u$ zCl`gGS^U%xS5at!s&wL%_D?fI-aSbPyZ; zIxSx$)3q728RbT+$a_52d2Uv}ibP#vM09DS+L z+IYaq`$n5w)`Ce6c5KoYp62p_p@Bbv+a3Dp5(c9Rh6Y~tjx6?1bIoF#beaGSxp)^dYR;q822$%F~Fb` zd!D`z7hemAW-6@G4J7uO86ByX5)ODhnGU-|7ihfx)2D>QQh28i&6Wd8iL+prw1EOU zL|hU{g~y$r>#U!(N*>7a^V%&fepTVcK3Lf>hFRvKhO(tZ_YPK_78#NTM;le9xh%i| z=qh6>U>fGR?Wi2{l!x3mGlNVTjsc(?rdT!Y9Tgl9#6>{UNQSpKEHRnQ5+njYbw;_wkuGT?EJT3f?$d#B8NriqArq77 z9FCrev}S*;^Y}7+lP;PHywEgjmC#ihspW#QT4iNf-V~kRnM?SaSmTw2*%Z3NRMg1n zd^N8GGVXg_)we9=Yl$Z?A`65WE2oOuwOjyT%yO`HnsYt?X=!i-v=ReE2p~kpnu_Ny zSK9V_u4=OW&obyTm8PXk`o5$sc4oA-8>(yTq1w%t+_V88LXS{R;8?K7UDRmTs`^x_ zHl)PAFa)}LLBQvG000s|Zes+QE0seS{H4{YI-IzMv|XSUxuYSF9A-oka&m>mH92iA zeVS;#$Y}Finnlf4x=Bo#wM9(TZLrhS3YU{@G&Ig)4nr}J$P_KW$0Hj{B}$aBb(k=% z%}vax;@r+{qH{8svq2!4k^qrq*uvtow3=*p<{b`cWIHG$HtBrGAP_R%ZK~6>PE+0M zRAf3%x3bLMzgB8mDwoepwAzBQqKh=0{7)Y*o{wq;jaq++$aRn;f5R9J-`aHcjyjKD z*>fUTMPKgPOtdsKwao%ZE;1a^69OI1+3&*O>vdu721a(40v=)sB+R}n83QR35@dKy z`%jscq0TiQavJ>lpHR|7GA&w=MPCF;^k?x(M|x=_gZC0o5s)MJM{1~vYzR2)^dZi3 zDn0HcRm&l z^PHnm>0J9d(>jWZb*iJU%j)E&sHB+=$h5G z+CAUvO~sc-koU{)FP1GF2}?<{Sk^bYLZZr%mts{%76QOnV(uEsKQx-pKkh$uwn^dZCM<``35S0u? z!0BuT7Xyc)M^{Or;QS*|p}gE~JCd) zX)5m9J44TVO{>Uqvy)`<=HfXUE}=8YIj4(it)nu{E8Cu2^UgKAgHg|p(~OhE@jOp8 z$Tghs*svB{O$Kf$i2nev^vzO|Z{kpfxBk}{W^!%sup53d6 z4h6Lw4!WN`bytnv_q;5*blF`;ZC$%hl(QKgk-I?6nh6_lea0q{m5$&V-)OBGGh$Dd1mJr>84drtfIX_ccoW4gS_1~j+rz7Gyc@cUO0NM)w-1;krJtoO-X8qf3W z+fr&g=TT}L&oR$4+WP6M>#J)fGf!DOvKb_nSsRyjcV;Yll1?;JZh#L3h0b)zysxJ} zW4^Pf(mKMEUD0-NPp@@0N!T40Tc>8L@jcHb%_?;jafWJv84k$eIagv3&E$B#Jhs=u z^^~ghWvz2uTr-0XaA1arGF)^SNO2+p_q`RW;aRzhh;wqBztYm_CB%pg-bs)zE9u)M ztf$lNr5cT;NCIcFL^|Mt*lfv=*|UVi z1>*O3UjAL_yGYMs{4+MH(iub)P|#7(WhLP>G*H4sPzsBhi4hmWP$hOGh9>2XHS~LF zRHOq~17ht1Ks5Kh1WNP$B4q%RIJ7dBLt9x6okhUIo=9_Psr+YlN#(kM*{aW0LJx9 zaRJ?;*cqw-;qj1528XjN>KJX0gQbXbsPAO?dZ2DEWpt&df8bKQ#$s zp6N1LGf5^yL1}A=fbaG+2y)ZbQvkNJvxW^|%S?dL+m^dDYoM@sB*5|qJob`n9US>o z8JA-{h3ZWeL0Gd=Q{@HYsipAHK^xQ6c#Ohyi8iA#AOmrN&DZhY)wn7yuDH*5VhdUDCTx$-C6$T6eUL%rw;{ zc6s7YLs4Hx5>iv-HF5Z}&qQfFNvb5D!dPYS<53fDno}T0+B~M$=)D|1Gz^7}s4V8@ zAdJ9(OPpM42VAk2xh^54ceZy(om&K5A;FO>bO*0O|m2W^hc>dA_df=Pjn! zndr-<%W~=r%7&_*8r91tuBmo{O1WdonwiRhE6D;#gh#qEejB029kGR{PP6Lasbpm) zm>HPX&4Z<#S*Y$EnPG955ZHFh#TtN9#5e<0!c0iGC8IWMvl4GE6T)WsyF2W^J=J*z zozisLR=-r~+J@9HW!VB&Lkt!0L30&NOl3s(b`EMr{fzu=1YmkEwKjt@OTZ2pWwi+a zf+S~Q7k2kJ5CyvcNS!0VVXIOXB$o$VG`NrP77#^-jRZ_+O1sfI7Kck|nhg6_>3riu zqER(u6xn4|@l&*Qf;clZtcZ~%L#x1xNd%m?i6d|r+;-j*6|_LbVrjL)qy1NfTHV+<+2St{tz4r&;ZiK72DyNIBo|-d4-O7>hiR}snPOTg z<(0M6TH`~gC#=xBwJm{mWgrk-1fS`LG&;p{cB6`mHPTwaYpQFswPaK#9X4rd6(2FC ziXgI2Jyc#Fi7N?d*;SMgVCq2_yd76&FRa%am<7N{AOK5&U?W1tfjkU|DyY$%3^X=l zGzo`hBmmMK5e~eNM;W&PYkI94LrtCK8pB0)h1!Okp{h#Ux`jdsC6Z^vtv}m9F%F7Ij%X2%Z9BNI(3Z>Bw4}^V(Mh}oGrxU0OGL%n;h1H z7;iERPirY62?en04A1~X_Cb~9y1!Sxi#>u@Xni))ol;v zqn@c6Ctn#%mjqk^z%=Q-qZ3Mlz;<7WkBs&ZWWA8)xR!%8A;gBXWecN^#6#ai;xoW9 zLxAiV&_F$x2Ie9gVPaZWC1?Gd>OB{w@@$7zQ#QSMbtO(#sL@MEBdCGhVRUts1Q0Y6 zOtY=Z$r)R&;6?$guTq<hmz(>Y!=%nL($#)@+?@C><-9MfQ*PQ5nNaF80|HX}j- z1jAjJ$cBbjCS8$a=|fKpS$0bpu8Crrqk4&Dlf`;qg`Jo+ zo+1?iCd1KeS~zSmYbjF%zcjZYWZlF)u60J2To*WkKx_|)iOp~Ol8f_`rPH|O}YB$eyHnXIMC#K5sdKjr*k{W?aKmK_g8lW-CJ_h~i z4m>5=P0jOCuG-jO{@z+mAUFaUmU~WMzIMlI97DS~Mq=m_6G`;ybuBDlbBwmd*`m#R zr1q{`E$rTGA#*mEM%Nmmv2_lj&7U{ZneJfOs=NuA)kFL3)j{|&H8e{kFX5piZwH=K z4Qx$%qN!_(!E^Lzs$2mRcd_ncTiJ1@*ozlH8BWY?3KYv3O_62+nb~4QG(%j_OQ4M0 zqS~Gq)xEFjQAtYjLC3RsnSkI% z;<%$tYK-Hw3TZn_(Y=^ux}!hJXpB0RwQ35*UMiSK`Bg!anSI@%NXsgRVE!G+Rlhoo zI#f?u#vHF1r$1?>*8!!)z?QY4kIL6R`3s~6CJbdt?l@|$Eqe(KZd}3#V@m;;cH1!B z9biaZn#<#>k5^?cmi9xIWgVhHO!=KQS4{*l(#uMuZ>KZ1&AXX5D>=CeHz+vmV6hU{ z95WcfGYzH$vOy%vT5~zTgPx!oUf1E`=u!-)*FDf+0$k^~JP3gqfB+rMjaLz8l*y{9 zmV&akGRm{4X|qPnp{VyS2BH|rlGN3xNOG+<&|2*5q&Go)wCd8Mi8LfXtjr!*8=4p< z<*sxVm&gIdK*sZOI=PMM`oD~xsR1&-0c zHO+ovTOSOZ#lk@#mo}iQMfJ@`RW5LAVu%@pk{stvqgPCwH(hH(L+TdPQE05*qfx_= z(CS(&-ge6KxhX0s1OZYLIj8;TSp!C)oS5v1aeHH-PX&am7z2yKZySTpWNfqubhn$Fv28B6t#`42^|g)_rXQFR@>SBOmi(~rzq-Hnp$yECz&Ka z14kG#I3#+6w;$TTVlfd-#h{;j)v}p$faBlvy8FQPPiW0YtbLlD)9WPGRT?svKCjl< zc38A|VzkvW!=BeQnxTkM;D(Kqj%~RtLAE|)wrkR(wc6%2*}?dmGj_7z*`p~Tz{!FL zIYE{74u>+OU6WkPG6x9`gYj4b2qcGGWjo=+OZtIZlBEWkq18FIZ&lg=$>~KLc@~tV zjuwg;&?~h~-6IUc#8Wdi^0Eat10F94fpuJOQ=P`Ez%48c9~=n>Fw2{@nypHO&SWxj z_LsaEuBQ$|!&t`2A=%vG<^m2-1B;-6*k}!D6498M;9SEp)%nB}F=$CNew6I{PtQ*# zS&{p+^w2Klxp1?_v5JKv?wgrNH}ogkVzw3(RC93zP;*-_G!j7$lGe1j#im`Hw1VI! z?p|vJwjWb1EGs(7Z<640my^6W2NDBj!ziEptCRAoTH2rJ{$-{!oVz&BuQO(}=A>3u zBn(zN#L_LAIGgv;1Ur-h2d+4{8v9xJFzR(noD4fD1eV5DkZKcQIoXxZ)Vcu57WdP_ z)5Q+HkYu`AOF#hXS^zK$q&4NxCtV?aef{RmQ0?=)a#q)z-n8rOO0v}-{#cXoYOT`S z`@|FX$JemK`E8Rn7a}Iw`0ESedvv+D%DJrU#?~>)*723oy?9Blp(fTezyZ?!Io(K9hcT6Z5@7DA=^zG zp=yIPX4{kD;Ik5ho&|w3V{Dgg2i2ocI978eL1}AA4-O|bZp<{6=Y25HdqZ*bc%839 z25D5oycU=a51DZUMpFQXK^cH)pBY1TZ`zM!T9GE3LTYTkP-fLhRYjHNTB|LRIHPFP z__V>mSC$t6ok;jEyOMT{aWPmX)1u0Ps|ha10cJ*A0013ZUDdb(S}8P;bbDGzEy7fD z@h_wrAJxG0C7ZOJ0 z&xqjdfA*>gvRGrch{7_368gC-c5)}@hC&00mxA%ww;Zw1W; z2WY?!5zTRqZ>qaP&>3!yhg#~*PpoR5XPSJ*hPj}p60~eum)**<#9HOH19b8x#~p5u z?7U_t3^8=^1QrpV;h;M32sEDT#sLg*H7s1)8)n*@PM#K}Of_m?W<8$HZp?xV$gt2< z(1J#y`!Ug)ZwO4@FnYnE-1Q2qT+*n*q!6TaH z9UY`IeOFfbpK3XdeUNH7=+?TTw{^r65-f$ zgNqB=2&DH7DVB9_BPM3L1e};kjHNHC!s;~3>;k_FLbwYt^dSN3vWqob3(c zA*J9rn9BHQV;s=dmmJA^X0053Kg(5owYg44iD{7;yJ4huTkyR?9Qo!x0^9& z07xx%XXRkuPR;-U4Rl+HLD*K+7)Rq?;@0FEIK8enh!Wz{tAu9%01#Aqf3nRtojrC( zmC35>bbJ!f<`ptaRZ*7v)onl$sHBY^HI?O1v9e9M5;ag1mTV(#;qYz2wU~!>4a&d( zE^B4XfdCeKP3+}xfCFq~lec8ouS*c~ldf|d=7If3DVQXK*$#)7H?&-G$bh%qTcdM* zOP%Tt%(ae71!keIs-8;hx{=`+;e3BiCpYnI-Vm0XyM3X;pa4DYr9Yh7CBqm5qWLNGYeA8 zGfvI>4$HI-i`06zTxD5yoTZYkzf9=tnrP^T>U55poE@%wPZR>hnVv=f@VCcz0fgFl zUi>30WMwSQOI>D$7mV+Da0c!!FAxA}vNo>Pz&jPzV(SdRSdu^v5@difhQ#G)ixN(k z)^&Ec?I$hCvJFF{J2=mCdYt;QTD+p0IIIa+Uhv}Qf@M`R4ZIm9(#*c&3XDufW`27=$^k(%zjJGZWYILoXgG#4&m(i(Flq{?+v+TT0U zdYXcVHJ+ZYFQ=nXLs#KOpcy1pZ+V6zA=>NPH$�*=HP*SH zqRZDlp@wYYDW%JuocN1VQUnl`9vommRFfeB$8Owo=wWDQW+JsmHH`(%64Sh1TH0-n z%SKW_&fpv}kk!lDZ?8>{q{fF-V}nD(V3D{MlJe&QOgW}v;tJz@$0^iZqdr|h+8<~7 zmn&SFsu-%;WQtmGBFE#w6xELLm3d1qiEY6HkO&|s!9xzpRmEH-64$h~(ptk&rGS=z zb2Y7TxF7;XU|8TRH4H@xrzJ{(%@Wcj!LBeGZI#*BC*nCtAm*J;-=n)Qhe^<9nwv;w znqcR3F;0}x(wH*U%Hsp~-sKk8Xrf5iMdFLU?+6^7*vpEn{97s3rDzA>4QsFcM3U&r z*AQF-r!fK?a~)La94ItuNz7Y!W_*i7NF))MfFebJC$a-p$EdVx>b%0AC5J`nY^s8m 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 QiU5lhqOCDJBi)z(*>Ky~VE_OC literal 0 HcmV?d00001 diff --git a/spec/fixtures/onebox/imgur.response b/spec/fixtures/onebox/imgur.response new file mode 100644 index 00000000000..58cc2ec9a9e --- /dev/null +++ b/spec/fixtures/onebox/imgur.response @@ -0,0 +1,836 @@ + + + + + + + + + + Did you <b>miss me</b>? - Album on Imgur + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + +
+
+ + + + +
+
+ +
+ +
+
+
+ +

Did you <b>miss me</b>?

+ +
+ +
+ + + + by + + + + 16h + + + + +
+
+ +
+ + + + + + + + + + +
+ +
+ + +
+ +
+ + + +
+ + + + + + +
+ + + + + + +
+ +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
TAKE ME UP
+
+
+
+
+
+
+ +
+ + +
+ + + +
+ +
+ +
+
+
+
+

Embed Code

+ +
+ +
+
+
+
+ +
+
+
+

Use old embed code

+
+
+
+ Copy and paste the HTML below into your website: +
+ +
+
+
+
+ +
+ +
+
+ + +

Preview

+
+
    +
  • + # +
  • +
  • + # +
  • +
  • + # +
  • +
  • + +
  • +
+
+

Hide old embed code

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/instagram.response b/spec/fixtures/onebox/instagram.response new file mode 100644 index 00000000000..f16dc1b5a73 --- /dev/null +++ b/spec/fixtures/onebox/instagram.response @@ -0,0 +1,12 @@ +{ + "version":"1.0", + "author_name":"natgeo", + "provider_name":"Instagram", + "provider_url":"https:\/\/www.instagram.com\/", + "type":"rich", + "width":658, + "html":"\u003Cblockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https:\/\/www.instagram.com\/p\/CARbvuYDm3Q\/?utm_source=ig_embed&utm_campaign=loading\" data-instgrm-version=\"13\" style=\" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; min-width:326px; padding:0; width:99.375\u0025; width:-webkit-calc(100\u0025 - 2px); width:calc(100\u0025 - 2px);\">\u003Cdiv style=\"padding:16px;\"> \u003Ca href=\"https:\/\/www.instagram.com\/p\/CARbvuYDm3Q\/?utm_source=ig_embed&utm_campaign=loading\" style=\" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100\u0025;\" target=\"_blank\"> \u003Cdiv style=\" display: flex; flex-direction: row; align-items: center;\"> \u003Cdiv style=\"background-color: #F4F4F4; border-radius: 50\u0025; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;\">\u003C\/div> \u003Cdiv style=\"display: flex; flex-direction: column; flex-grow: 1; justify-content: center;\"> \u003Cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;\">\u003C\/div> \u003Cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;\">\u003C\/div>\u003C\/div>\u003C\/div>\u003Cdiv style=\"padding: 19\u0025 0;\">\u003C\/div> \u003Cdiv style=\"display:block; height:50px; margin:0 auto 12px; width:50px;\">\u003Csvg width=\"50px\" height=\"50px\" viewBox=\"0 0 60 60\" version=\"1.1\" xmlns=\"https:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"https:\/\/www.w3.org\/1999\/xlink\">\u003Cg stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\u003Cg transform=\"translate(-511.000000, -20.000000)\" fill=\"#000000\">\u003Cg>\u003Cpath d=\"M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631\">\u003C\/path>\u003C\/g>\u003C\/g>\u003C\/g>\u003C\/svg>\u003C\/div>\u003Cdiv style=\"padding-top: 8px;\"> \u003Cdiv style=\" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;\"> View this post on Instagram\u003C\/div>\u003C\/div>\u003Cdiv style=\"padding: 12.5\u0025 0;\">\u003C\/div> \u003Cdiv style=\"display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;\">\u003Cdiv> \u003Cdiv style=\"background-color: #F4F4F4; border-radius: 50\u0025; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);\">\u003C\/div> \u003Cdiv style=\"background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;\">\u003C\/div> \u003Cdiv style=\"background-color: #F4F4F4; border-radius: 50\u0025; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);\">\u003C\/div>\u003C\/div>\u003Cdiv style=\"margin-left: 8px;\"> \u003Cdiv style=\" background-color: #F4F4F4; border-radius: 50\u0025; flex-grow: 0; height: 20px; width: 20px;\">\u003C\/div> \u003Cdiv style=\" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)\">\u003C\/div>\u003C\/div>\u003Cdiv style=\"margin-left: auto;\"> \u003Cdiv style=\" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);\">\u003C\/div> \u003Cdiv style=\" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);\">\u003C\/div> \u003Cdiv style=\" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);\">\u003C\/div>\u003C\/div>\u003C\/div> \u003Cdiv style=\"display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;\"> \u003Cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;\">\u003C\/div> \u003Cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;\">\u003C\/div>\u003C\/div>\u003C\/a>\u003Cp style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;\">\u003Ca href=\"https:\/\/www.instagram.com\/p\/CARbvuYDm3Q\/?utm_source=ig_embed&utm_campaign=loading\" style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;\" target=\"_blank\">A post shared by National Geographic (\u0040natgeo)\u003C\/a>\u003C\/p>\u003C\/div>\u003C\/blockquote>\n\u003Cscript async src=\"\/\/platform.instagram.com\/en_US\/embeds.js\">\u003C\/script>", + "thumbnail_url":"https:\/\/scontent.cdninstagram.com\/v\/t51.2885-15\/sh0.08\/e35\/s640x640\/97565241_163250548553285_9172168193050746487_n.jpg?_nc_ht=scontent.cdninstagram.com&_nc_cat=105&_nc_ohc=dnXCQ6urT_gAX9KlZ1l&_nc_tp=24&oh=b5fd90cdc61c5a8bba19b41e2f72040c&oe=5FDD8836", + "thumbnail_width":640, + "thumbnail_height":427 +} diff --git a/spec/fixtures/onebox/instagram_old_onebox.response b/spec/fixtures/onebox/instagram_old_onebox.response new file mode 100644 index 00000000000..b0c0a9a5c4e --- /dev/null +++ b/spec/fixtures/onebox/instagram_old_onebox.response @@ -0,0 +1,17 @@ + +{ +"version": "1.0", +"title": "Photo by Pete McBride @pedromcbride | For the first time in three decades, inhabitants of northern India are able to see the Himalaya\u2014thanks to reduced air pollution over the last few weeks. Considering that India experiences some of the worst pollution in the world, this is a literal breath of fresh air. When I was there, the air was so thick you could taste the smoke and fumes.\n\nThe coronavirus pandemic that has led to India's temporary reduction in pollutants has also put the country on the world's largest lockdown, and it's too soon to tell what impact that has had on curbing the disease\u2014as well as what the long-term effects will be on attitudes toward fresh air once the population returns to business as usual. For more on India and the environment, follow @pedromcbride. #india #himalaya #covid19 #pollution", +"author_name": "natgeo", +"author_url": "https://www.instagram.com/natgeo", +"author_id": 787132, "media_id": "2310750110684704208_787132", +"provider_name": "Instagram", +"provider_url": "https://www.instagram.com", +"type": "rich", +"width": 658, +"height": null, +"html": "\u003cblockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https://www.instagram.com/p/CARbvuYDm3Q/?utm_source=ig_embed\u0026amp;utm_campaign=loading\" data-instgrm-version=\"13\" style=\" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\"\u003e\u003cdiv style=\"padding:16px;\"\u003e \u003ca href=\"https://www.instagram.com/p/CARbvuYDm3Q/?utm_source=ig_embed\u0026amp;utm_campaign=loading\" style=\" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;\" target=\"_blank\"\u003e \u003cdiv style=\" display: flex; flex-direction: row; align-items: center;\"\u003e \u003cdiv style=\"background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;\"\u003e\u003c/div\u003e \u003cdiv style=\"display: flex; flex-direction: column; flex-grow: 1; justify-content: center;\"\u003e \u003cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;\"\u003e\u003c/div\u003e \u003cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"padding: 19% 0;\"\u003e\u003c/div\u003e \u003cdiv style=\"display:block; height:50px; margin:0 auto 12px; width:50px;\"\u003e\u003csvg width=\"50px\" height=\"50px\" viewBox=\"0 0 60 60\" version=\"1.1\" xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\"\u003e\u003cg stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"\u003e\u003cg transform=\"translate(-511.000000, -20.000000)\" fill=\"#000000\"\u003e\u003cg\u003e\u003cpath d=\"M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/div\u003e\u003cdiv style=\"padding-top: 8px;\"\u003e \u003cdiv style=\" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;\"\u003e View this post on Instagram\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"padding: 12.5% 0;\"\u003e\u003c/div\u003e \u003cdiv style=\"display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;\"\u003e\u003cdiv\u003e \u003cdiv style=\"background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);\"\u003e\u003c/div\u003e \u003cdiv style=\"background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;\"\u003e\u003c/div\u003e \u003cdiv style=\"background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);\"\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"margin-left: 8px;\"\u003e \u003cdiv style=\" background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;\"\u003e\u003c/div\u003e \u003cdiv style=\" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)\"\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"margin-left: auto;\"\u003e \u003cdiv style=\" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);\"\u003e\u003c/div\u003e \u003cdiv style=\" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);\"\u003e\u003c/div\u003e \u003cdiv style=\" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e \u003cdiv style=\"display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;\"\u003e \u003cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;\"\u003e\u003c/div\u003e \u003cdiv style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/a\u003e\u003cp style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;\"\u003e\u003ca href=\"https://www.instagram.com/p/CARbvuYDm3Q/?utm_source=ig_embed\u0026amp;utm_campaign=loading\" style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;\" target=\"_blank\"\u003eA post shared by National Geographic (@natgeo)\u003c/a\u003e\u003c/p\u003e\u003c/div\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"//www.instagram.com/embed.js\"\u003e\u003c/script\u003e", +"thumbnail_url": "https://scontent-yyz1-1.cdninstagram.com/v/t51.2885-15/sh0.08/e35/s640x640/97565241_163250548553285_9172168193050746487_n.jpg?_nc_ht=scontent-yyz1-1.cdninstagram.com\u0026_nc_cat=105\u0026_nc_ohc=dnXCQ6urT_gAX99AO01\u0026_nc_tp=24\u0026oh=32b676a618164ab0248e2726767dae14\u0026oe=5FDD8836", +"thumbnail_width": 640, +"thumbnail_height": 427 +} diff --git a/spec/fixtures/onebox/kaltura.response b/spec/fixtures/onebox/kaltura.response new file mode 100644 index 00000000000..9195ad4cb21 --- /dev/null +++ b/spec/fixtures/onebox/kaltura.response @@ -0,0 +1,781 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Kaltura Overview - Kaltura Videos + + + + + + + + +
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
+
+ +
+ + + + +
+ + + + +
+ + + + +
+
+
+
+
+
+

+ Kaltura Overview

+

+ + From Alon Finkelstein A year ago   + +

+
+
+ + + + + + likes + + + + + + + + views + + + + + + + comments + + + + + + + + + +
+
+
+
+ + +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+ + +
+ +
+
+ + + + + +
+
+
+ + + + +
+
+ +
+
+
+ + + + + + +
+ + \ No newline at end of file diff --git a/spec/fixtures/onebox/meetup.response.html b/spec/fixtures/onebox/meetup.response.html new file mode 100644 index 00000000000..4e7099aed89 --- /dev/null +++ b/spec/fixtures/onebox/meetup.response.html @@ -0,0 +1,4419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +February EmberTO Meet-up - +Toronto Ember.js Meetup (Toronto, ON) + + +| Meetup + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupsimageimagesinstagramlinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1outlookpersonJoin Group on CardStartprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ + +
+ + +
+ + + +
+
+ + + + + + + + + + + + + +
+
+
+
+ + + + + + + +
+

+February EmberTO Meet-up +

+
+ + +
+ +
    +
  • + + + +Feb 5, 2015 · 6:30 PM + +
  • + +
  • +
    + + +

    This location is shown only to members

    + +
    +
  • + +
+ + +
+ +

Hey Folks, 

+

We're trying new (read: bigger) venues on for size in 2015, starting with the wonderful new ExChange space in the BrightLane building for our February meet-up. 

+

This month we have our own Jorge Villalobos waxing on building faux-dynamic, SEO-friendly sites with Ember + Middleman, Precision Nutrition's Justin Giancola will be giving a lightning talk on using redis as a proxy when developing ember applications, and Taras Mankovski will be sharing some tips and tricks regarding Ember Table. 

+

Also, special thanks to Brightlane (an awesome new co-working facility) for donating their gorgeous new space to us for the evening as well! Check them out at http://brightlane.ca  

+

See you soon! And as another aside, sign up for the mailing list at http://torontoemberjs.com/to start getting the 411 of our meet-ups directly, including more in-depth insights into our speaker content and more info. on Toronto Ember happenings in 2015. 

+ +
+ +
+
+
+ + +
+

+Join or login to comment. +

+
+ + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Peter C.

    Sorry, can't make it to this meetup. I'll see you all at the next one!

    February 2, 2015

  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Gianni C.

    hello i used ember once and i plan to do it again in the future

    8 · January 21, 2015

  • + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + +
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 55 went + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + +
    + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Meghann O. + +
    + + + + + + + + + +
    Event Host
    + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Eric B. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Jesse B. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Aidan N. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Phil S. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Mike + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Andy T. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Tasveer S. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Misha P. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Emerson L. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Zeus G. + + +1 + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Mina S. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Kerry + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Andydrew + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Brian G. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + K M Rakibul I. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Carsten N. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Richard C. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Taras M. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Robin W. + +
    + + + + +
    + Co-Organizer +
    + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Natalie P. + + +1 + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Brennan M. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Justin G. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Tessa T. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Dan O. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Ian I. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Jorge V. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Mattia G. + +
    + + + + +
    + Organizer +
    + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Christophe­r M. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Joshua G. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Nate S. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Brenna O. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Gianni C. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Jaron A. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Joshua K. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + alen + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Adib S. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Irene + + +1 + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + + + + + + + + + + +
    +
    + +
    +
    + + + + +
    + Kenneth B. + +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    +
    + + + + + + +
  • + + + + +
  • + + +
    +
    + +
    +
    + A former member + +
    + +2 + + + + guests + + +
    + +
    +
    + + + + + + +
  • + +
+ + + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + +
+ + + + + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + +

+ +Toronto, + +ON + + +

+
+Founded +Feb 12, 2014
+
+ + +
+ +
+ + + +
+ +
+ + + + +

+ + + +Organizers: + + + +

+
+
+ + + +
+ + +Mattia Gheda, +Robin Ward and 2 more… + + +
+ + + + Contact + +
+
+
+
We're about:
+ +
+ + + + + + + + + + + + + + + +
+ + + + Open Source + · + + + + JavaScript + · + + + + Web Development + · + + + + JavaScript Libraries + · + + + + JavaScript Frameworks + · + + + + Front-end Development + · + + + + nodeJS + · + + + + Backbone.js + · + + + + Ember JS + · + + + + AngularJS + · + + + + JavaScript Applications + · + + + + Ember Data + + +
+ + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

People in this
Meetup are also in:

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + + + + +
+ +

Sign up

+ + + +

Meetup members, Log in

+ +
+ +
+ +
+ + +
+ +
+
+or +
+
+ +
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy +

+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/meetup_oembed.response b/spec/fixtures/onebox/meetup_oembed.response new file mode 100644 index 00000000000..567890fea0f --- /dev/null +++ b/spec/fixtures/onebox/meetup_oembed.response @@ -0,0 +1 @@ +{"title":"February EmberTO Meet-up","height":397,"width":308,"html":" + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+
+
+
+
+
+

ECMAScript 2015 : Deep Dive

+
+
+
+
+ +
+
+
+
+ +
+
+
+

+ David Leonard +

+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+

+ What I do: +

+
+
+
+
+

 

+
    +
  • +

    + + Grad Student at CCNY + +

    +
  • +
  • +

    + + Game Developer + +

    +
  • +
  • +

    + + Yahoo! Developer Network + +

    +
  • +
+
+
+
+
+ +
+
+
+

Why ES6?

+
+
+
+
+ +
+
+
+
+
+

+ Deep Dive +

+
+
+
+
+ +
+
+
+
+
    +
  • +

    Tooling 

    +
  • +
  • +

    Variables and Scoping

    +
  • +
  • +

    Strings

    +
  • +
  • +

    Destructuring

    +
  • +
  • +

    Parameter Handling

    +
  • +
  • +

    Arrow Functions

    +
  • +
  • +

    Classes

    +
  • +
  • +

    Modules

    +
  • +
  • +

    Generators

    +
  • +
  • +

    Promises

    +
  • +
+
+
+
+
+ +
+
+
+

Running ES6

+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+

Variables and Scoping

+
+
+

+ var vs. let / const +

+
+
+
+
+ +
+
+
+
+
var snack = 'Meow Mix';
+
+function getFood(food) {
+    if (food) {
+        var snack = 'Friskies';
+        return snack;
+    }
+    return snack;
+}
+
+getFood(false);
+
+
+ +
+
+ +
+
+
+
+
+
// undefined
+
+
+
+
Credit: https://github.com/venegu
+
+
+

+ var vs. let / const +

+
+
+
+
+ +
+
+
+
+
var snack = 'Meow Mix';
+
+function getFood(food) {
+    var snack;
+    
+    if (food) {
+        snack = 'Friskies';
+        return snack;
+    }
+    return snack;
+}
+
+getFood(false); 
+
+
+ + + +
+
+ +
+
+
+
+
+
+
// undefined
+
+
+

+ var vs. let / const +

+
+
+
+
+ +
+
+
+
+
let snack = 'Meow Mix';
+
+function getFood(food) {
+
+    if (food) {
+        let snack = 'Friskies';
+        return snack;
+    }
+    return snack;
+}
+
+getFood(false); 
+
+
+ +
+
+ +
+
+
+
+
// A
+
+
+
+
// B
+
+
+
+
+
// 'Meow Mix'
+
+
+
+
Credit: https://github.com/venegu
+
+
+

+ var vs. let / const +

+
+
+
+
+ +
+
+
+
+
let snack = 'Meow Mix';
+
+function getFood(food) {
+
+    if (food) {
+        let snack = 'Friskies';
+        return snack;
+    }
+    return snack;
+}
+
+getFood(false); 
+
+
+ +
+
+ +
+
+
+
+
// A
+
+
+
+
// B
+
+
+
+
+
// 'Meow Mix'
+
+
+
+
Credit: https://github.com/venegu
+
+
+

IIFE   > Blocks

+
+
+
+
+ +
+
+
+
+
(function () {  
+    var food = 'Meow Mix';
+}());  
+console.log(food);
+
+
+ +
+
+
+ +
+
+
+
+
// Reference Error
+
+
+

IIFE  > Blocks

+
+
+
+
+ +
+
+
+
+
{  
+    let food = 'Meow Mix';
+} 
+console.log(food); 
+
+
+ +
+
+
+ +
+
+
+
+
// Reference Error
+
+
+

Scoping

+
+
+
+
+ +
+
+ + + + + + +
+
function Person(name) {
+    this.name = name;
+}
+
+Person.prototype.prefixName = function (arr) {
+    return arr.map(function (character) {
+        return this.name + character;
+    });
+};
+
+
+
+ +
+
+
+
+
+
// Cannot read property 'name' of undefined
+
+
+
+
// A
+
+
+
+
// B
+
+
+
+ +
+
+ + + + + + +
+
function Person(name) {
+    this.name = name;
+}
+
+Person.prototype.prefixName = function (arr) {
+    var that = this;
+    return arr.map(function (character) {
+        return that.name + character;
+    });
+};
+
+
+
+ +
+
+
+
+
// Store this
+
+
+
+
+

Scoping

+
+
+
+
+ +
+
+ + + + + + +
+
function Person(name) {
+    this.name = name;
+}
+
+Person.prototype.prefixName = function (arr) {
+    return arr.map(function (character) {
+        return this.name + character;
+    }, this);
+}
+
+
+
+ +
+
+
+
+
+

Scoping

+
+
+
+
+ +
+
+ + + + + + +
function Person(name) {
+    this.name = name;
+}
+
+Person.prototype.prefixName = function (arr) {
+    return arr.map(function (character) {
+        return this.name + character;
+    }.bind(this));
+}
+
+
+ +
+
+
+
+
+

Scoping

+
+
+
+

Arrow Functions

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
function Person(name) {
+    this.name = name;
+}
+
+Person.prototype.prefixName = function (arr) {
+    return arr.map((character) => this.name + character );
+}
+
+
+
+

Arrow Functions

+
+
+
+
+ +
+
+ + + + + + +
+
const arr = [1, 2, 3, 4, 5];
+const squares = arr.map(x => x * x);
+
+
+
const squares = arr.map(function (x) { return x * x });
+
+
+
+ +
+
+
+
+
// Function Expression
+
+
+
+
// Terse 
+
+
+

Strings

+
+
+
+

String.prototype.includes

+
+
+
+
+ +
+
+
+
+
var string = 'food';
+var substring = 'foo';
+console.log(string.indexOf(substring) > -1);
+
+
+ +
+
+
const string = 'food';
+const substring = 'foo';
+console.log(string.includes(substring)); 
+
+
+ + +
+
+ +
+
+
+
+
+
// true
+
+
+
// true
+
+
+

String.prototype.repeat

+
+
+
+
+ +
+
+
+
+
function repeat(string, count) {
+    var strings = [];
+    while(strings.length < count) {
+        strings.push(string);
+    }
+    return strings.join('');
+}
+
+
+
+
+
'meow'.repeat(3); 
+
+
+ +
+
+ +
+
+
+
+
// meowmeowmow
+
+
+

Template Literals: Escaping Characters

+
+
+
+
+ +
+
+
+
+
var text = "This string contains \"double quotes\" which are escaped."
+
+
+
+
+
 
+ +
let text = `This string contains "double quotes" which are escaped.`
+
+ +

 

+
+
+
+
+ +
+
+
+

Template Literals: Interpolation

+
+
+
+
+ +
+
+
+
+
const name = 'Tiger';
+const age = 13;
+console.log(`My cat is named ${name} and is ${age} years old.`);
+
+
+
+
var name = 'Tiger';
+var age = 13;
+console.log('My cat is named ' + name + ' and is ' + age + ' years old.');
+
+ + +
+
+ +
+
+
+
+
+
+
Credit: https://github.com/venegu
+
+
+

Template Literals: Multi-line Strings

+
+
+
+
+ +
+
+
+
var text = (
+  'cat\n' +
+  'dog\n' +
+  'nickelodeon'
+)
+
+
+
var text = [
+  'cat',
+  'dog',
+  'nickelodeon'
+].join('\n')
+
+
+
var text = (
+  `cat
+  dog
+  nickelodeon`
+)
+
+ + + +
+
+ +
+
+
+
+
+

Template Literals: Expressions

+
+
+
+
+ +
+
+
+
+
let today = new Date()
+let text = `The time and date is ${today.toLocaleString()}`
+
+
+
+
+ +
+
+ +
+
+
+
+

Template Literals: Multi-line Strings

+
+
+
+
+ +
+
+ + + + + + +
+
let book = {
+  title: 'Harry Potter and The Sorcercers Stone',
+  summary: 'Much magic. Such depth.',
+  author: 'J.K. Rowling'
+}
+
+let html = `<header>
+  <h1>${book.title}</h1>
+</header>
+<section>
+  <div>${book.summary}</div>
+  <div>${book.author}</div>
+</section>`
+
+
+
+ +
+
+
+
+
+
+

Destructuring

+
+
+
+

Destructuring

+
+
+
+
+ +
+
+ + + + + + +
+

+
var luke = { occupation: 'jedi', father: 'anakin' }
+var {occupation, father} = luke;
+console.log(occupation); // 'jedi'
+console.log(father); // 'anakin'
+
+
+
var [a, b] = [10, 20]
+console.log(a); // 10
+
+ +
console.log(b); // 20
+
+
+
+ +
+
+
+
+
+
+

Destructuring

+
+
+
+
+ +
+
+ + + + + + +
+
function getCoords () {
+  return {
+    x: 10,
+    y: 22
+  }
+}
+
+var {x, y} = getCoords()
+console.log(x); // 10
+console.log(y); // 22
+
+
+
+ +
+
+
+
+

Modules

+
+
+
+

Credit: https://www.flickr.com/photos/lucaohman/3473867313

+
+
+

Exporting in CommonJS

+
+
+
+
+ +
+
+ + + + + + +
+
module.exports = 1
+module.exports = { foo: 'bar' }
+module.exports = ['foo', 'bar']
+module.exports = function bar () {}
+
+
+
export default 1
+export default { foo: 'bar' }
+export default ['foo', 'bar']
+export default function bar () {}
+
+
+
+ +
+
+
+

Named Exports

+
+
+
+
+ +
+
+ + + + + + +
+
module.exports.name = 'David';
+module.exports.age = 25;
+
+
+
export var name = 'David';
+export var age  = 25;​​
+
+
+
+ +
+
+
+

Exporting in ES6

+
+
+
+
+ +
+
+ + + + + + +
+
// math/addition.js
+function sumTwo(a, b) {
+    return a + b;
+}
+
+function sumThree(a, b) {
+    return a + b + c;
+}
+
+
+
+
+
+
+ +
+
+
+
export { sumTwo, sumThree };
+
+
+

Exporting in ES6

+
+
+
+
+ +
+
+ + + + + + +
+
export function sumTwo(a, b) {
+    return a + b;
+}
+
+export function sumThree(a, b) {
+    return a + b + c;
+}
+
+
+
+ +
+
+
+
+
+

Exporting default bindings

+
+
+
+
+ +
+
+ + + + + + +
+
function sumTwo(a, b) {
+    return a + b;
+}
+
+function sumThree(a, b) {
+    return a + b + c;
+}
+
+
+
+
+
+ +
+
+
+
var api = {
+    sumTwo  : sumTwo,
+    sumThree: sumThree
+}
+
+
+
export default api
+
+
+

Importing Modules

+
+
+
+
+ +
+
+ + + + + + +
+
var _ = require('underscore');​
+
+
+
import _ from 'underscore';
+
+
+
import { sumTwo, sumThree } from 'math/addition'
+
+
+
import { 
+  sumTwo as addTwoNumbers, 
+  sumThree as sumThreeNumbers} from
+} from 'math/addition'
+
+
+
import * as util from 'math/addition'
+
+
+
+ +
+
+
+
+
+
+

Parameters

+
+
+
+

Default Parameters

+
+
+
+
+ +
+
+ + + + + + +
+
function addTwoNumbers(x, y) {
+    x = x || 0;
+    y = y || 0;
+    return x + y;
+}
+
+
+
function addTwoNumbers(x=0, y=0) {
+    return x + y;
+}
+
+
+
+
+ +
+
+
+
+
+
+
addTwoNumbers(2, 4); // 6
+addTwoNumbers(2); // 2
+addTwoNumbers(); // 0
+
+
+

Rest Parameters

+
+
+
+
+ +
+
+ + + + + + +
+
function logArguments() {
+    for (var i=0; i < arguments.length; i++) {
+        console.log(arguments[i]);
+    }
+}
+
+
+
function logArguments(...args) {
+    for (let arg of args) {
+        console.log(arg);
+    }
+}
+
+
+
+ +
+
+
+
+
+

Named Parameters

+
+
+
+
+ +
+
+ + + + + + +
+
function initializeCanvas(options) {
+    var height = options.height || 600;
+    var width  = options.width  || 400;
+    var lineStroke = options.lineStroke || 'black';
+}
+
+
+
function initializeCanvas(
+    { height=600, width=400, lineStroke='black'}) {
+        ...
+    }
+
+
+
+ +
+
+
+
+
+
+
function initializeCanvas(
+    { height=600, width=400, lineStroke='black'} = {}) {
+        ...
+    }
+
+
+
+

Spread Operator

+
+
+
+
+ +
+
+ + + + + + +
+
Math.max(...[-1, 100, 9001, -32]) // 9001
+
+ +
+
var arr = [1, ...[2,3], 4];
+console.log(arr); // [1, 2, 3, 4]
+
+
+
+ +
+
+
+
+
var arr1 = [0, 1, 2];
+var arr2 = [3, 4, 5];
+arr1.push(...arr2);
+
+
+

Classes

+
+
+
+

Base Classes

+
+
+
+
+ +
+
+ + + + + + + + +
+
function Person(name, age, gender) {
+    this.name   = name;
+    this.age    = age;
+    this.gender = gender;
+}
+
+Person.prototype.incrementAge = function () {
+    return this.age += 1;
+};
+
+
+
+ +
+
+
+
+
+

Extended Classes

+
+
+
+
+ +
+
+ + + + + + + + +
+
function Personal(name, age, gender, occupation, hobby) {
+    Person.call(this, name, age, gender);
+    this.occupation = occupation;
+    this.hobby = hobby;
+}
+
+Personal.prototype = Object.create(Person.prototype);
+Personal.prototype.constructor = Personal;
+Personal.prototype.incrementAge = function () {
+    return Person.prototype.incrementAge.call(this) += 1;
+}
+
+
+
+ +
+
+
+
+
+
+
+
+
+

Base Classes in ES6

+
+
+
+
+ +
+
+ + + + + + + + +
+
class Person {
+    constructor(name, age, gender) {
+        this.name   = name;
+        this.age    = age;
+        this.gender = gender;
+    }
+    
+    incrementAge() {
+      this.age += 1;
+    }
+}
+
+
+
+ +
+
+
+
+
+

Extended Classes in ES6

+
+
+
+
+ +
+
+ + + + + + + + +
+
class Personal extends Person {
+    constructor(name, age, gender, occupation, hobby) {
+      super(name, age, gender);
+      this.occupation = occupation;
+      this.hobby = hobby;
+    }
+    
+    incrementAge() {
+      super.incrementAge();
+      this.age += 20;
+      console.log(this.age);
+    }
+}
+
+
+
+ +
+
+
+
+
+
+
+
// Calls parent incrementAge()
+
+
+

Symbols

+
+
+
+

Unique Property Keys

+
+
+
+
+ +
+
+ + + + + + + + +
+
const key = Symbol();
+const keyTwo = Symbol();
+const object = {};
+
+
+
+
+ +
+
+
+
>> key === keyTwo 
+>> false
+
+
+
object.key = 'Such magic.';
+object.keyTwo = 'Much Uniqueness'
+
+
+

Symbols as Concepts

+
+
+
+
+ +
+
+ + + + + + + + +
+
const anakin = 'jedi';
+const yoda   = 'jedi master';
+const luke   = 'jedi';
+
+
+
+
+ +
+
+
+
const anakin = Symbol();
+const yoda   = Symbol();
+const luke   = Symbol();
+
+
+

Maps

+
+
+
+

(Hash) Maps in ES5

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
var map = new Object();
+map[key1] = 'value1';
+map[key2] = 'value2';
+
+

Seems functional, right...?

+
+
+

Get Own Properties

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
function getOwnProperty(object, propertyKey) {
+    return (object.hasOwnProperty(propertyKey) ? object[propertyKey]: undefined);
+}
+
+
+
+

We should be safe...right?

+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
> getOwnProperty({ hasOwnProperty: 'Hah, overwritten'}, 'Pwned');
+> TypeError: Propery 'hasOwnProperty' is not a function
+
+
+
+
+
+

Credit: http://memesvault.com/nooo-meme-darth-vader/

+
+

Second time is the charm.

+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
function getOwnProperty(object, propertyKey) {
+    return (Object.prototype.hasOwnProperty(object, propertyKey) ? object[propertyKey]: undefined);
+}
+
+
+
+

credit: http://deloiz.blogspot.com/2014/01/Pusheen.html

+
+
+

Maps in ES6

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
let map = new Map();
+> map.set('name', 'david');
+> map.get('name'); // david
+> map.has('name'); // true
+
+
+
+
+
+
+
+
// key
+
+
+
+
// value
+
+
+
+

Keys can be more than strings!

+
+
+

Arbitrary values as keys

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
let map = new Map([
+    ['name', 'david'],
+    [true, 'false'],
+    [1, 'one'],
+    [{}, 'object'],
+    [function () {}, 'function']
+]);
+
+
+
+
+
+
+
+
+
for (let key of map.keys()) {
+    console.log(typeof key);
+    // > string, boolean, number, object, function
+};
+
+
+

.entries( )

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
for (let entry of map.entries()) {
+  console.log(entry[0], entry[1]);
+}
+
+
+
for (let [key, value] of map.entries()) {
+  console.log(key, value);
+}
+
+
+
+
+

WeakMaps

+
+
+
+

Classes 101

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
class Person {
+    constructor(age) {
+        this.age = age;
+    }
+    
+    incrementAge() {
+      this.age += 1;
+    }
+}
+
+

Private data?

+
+
+

Naming Conventions

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
class Person {
+    constructor(age) {
+        this._age = age;
+    }
+    
+    _incrementAge() {
+      this._age += 1;
+    }
+}
+
+
+
+
+

WeakMaps to the rescue!

+
+
+

(Maybe they're not so weak)

+
+
+

WeakMaps for Privacy

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
let _age = new WeakMap();
+class Person { 
+  constructor(age) {
+    _age.set(this, age);
+  }
+
+  incrementAge() {
+    let age = _age.get(this);
+      if(age > 90) {
+        console.log('Midlife crisis');
+      }
+  }
+}
+
+
+
> const person = new Person(90);
+> person.incrementAge(); // 'Midlife crisis'
+> Reflect.ownKeys(person); // []
+
+ +

 

+
+
+
+
+
+
+
credit: http://wildermuth.com/images/pinky-promise_2.jpg
+
+
+

Promises

+
+
+

Callback Hell

+
+
+
+
+ +
+
+ + + + + + + + +
+
func1(function (value1) {
+  func2(value1, function(value2) {
+    func3(value2, function(value3) {
+      func4(value3, function(value4) {
+        func5(value4, function(value5) {
+          // Do something with value 5
+        });
+      });
+    });
+  });
+});
+
+
+
+ +
+
+
+
+
+
+

D

+ +

O

+ +

O

+ +

M

+
+
+

Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
func1(value1)
+  .then(func2(value1) { })
+  .then(func3(value2) { })
+  .then(func4(value3) { })
+  .then(func5(value4) { 
+    // Do something with value 5 
+  });
+
+
+
+ +
+
+
+
+

Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
+
+
+ +
+
+
+

Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
new Promise(resolve => resolve(data))
+    .then(result => console.log(data));
+
+
+
+
+new Promise((resolve, reject) => 
+    reject(new Error('Failed to fufill Promise')))
+    .catch(reason => console.log(reason));
+
+
+
+ +
+
+
+
+
+
+
+

Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
+

Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
var fetchJSON = function(url) {  
+  return new Promise((resolve, reject) => {
+    $.getJSON(url)
+      .done((json) => resolve(json))
+      .fail((xhr, status, err) => reject(status + err.message));
+  });
+}
+
+
+
+ +
+
+
+
+
+
+
+
+
+

Parallelizing using Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
var urls = [ 
+  'http://www.api.com/items/1234',
+  'http://www.api.com/items/4567'
+];
+
+var urlPromises = urls.map(fetchJSON);
+
+Promise.all(urlPromises)  
+  .then(function(results) {
+     results.forEach(function(data) {
+     });
+  })
+  .catch(function(err) {
+    console.log("Failed: ", err);
+  });
+
+
+
+
+
+
+

Generators

+
+
+

Syntax

+
+
+
+
+ +
+
+ + + + + + + + +
+
function* sillyGenerator() {
+    yield 1;
+    yield 2;
+    yield 3;
+    yield 4;
+}
+
+
+
var generator = sillyGenerator();
+var value = generator.next();
+> console.log(value); // { value: 1, done: false }
+> console.log(value); // { value: 2, done: false }
+> console.log(value); // { value: 3, done: false }
+> console.log(value); // { value: 4, done: false }
+
+
+
+
+
+

What about using return?

+
+
+

Return in a Generator

+
+
+
+
+ +
+
+ + + + + + + + +
+
function* sillyGenerator() {
+    yield 1;
+    yield 2;
+    yield 3;
+    yield 4;
+    return 5;
+}
+
+for(let val of sillyGenerator()) {
+    console.log(val); // 1, 2, 3, 4
+} 
+
+
+
+
+

Real Generator Function

+
+
+
+
+ +
+
+ + + + + + + + +
+
function* factorial(){
+  let [current, total] = [0, 1];
+
+  while (true){
+    yield total;
+    current++;
+    total = total * current;
+  }
+}
+
+for (let n of factorial()) {
+  console.log(n); 
+  if(n >= 100000) {
+    break;
+  }
+}
+
+
+
+
+
+

Writing Sync-Async 

+
+
+
+
+ +
+
+ + + + + + + + +
+
function request(url) {
+    getJSON(url, function(response) {
+        generator.next(response);
+    });
+}
+
+function* getData() {
+    var entry1 = yield request('http://some_api/item1');
+    var data1  = JSON.parse(entry1);
+    var entry2 = yield request('http://some_api/item2');
+    var data2  = JSON.parse(entry2);
+}
+
+
+
+
+
+

Not without problems though...

+
+
+

 

+ +
    +
  • +

    How do we handle errors?

    +
  • +
  • +

    getJSON not in control

    +
  • +
  • +

    Parallelize?

    +
  • +
+
+
+
+
+ +
+
+
+

Generators & Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
function request(url) {
+    return new Promise((resolve, reject) => {
+        getJSON(url, resolve);
+    });
+}
+
+
+
+

Generators & Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
function iterateGenerator(gen) {
+    var generator = gen();
+    var ret;
+    (function iterate(val) {
+        ret = generator.next();
+        if(!ret.done) {
+            ret.value.then(iterate);
+        } else {
+            setTimeout(function() {
+                iterate(ret.value);
+            });
+        }
+    })(); 
+}
+
+
+
+
+
+
+

Generators & Promises

+
+
+
+
+ +
+
+ + + + + + + + +
+
iterateGenerator(function* getData() {
+  var entry1 = yield request('http://some_api/item1');
+  var data1  = JSON.parse(entry1);
+  var entry2 = yield request('http://some_api/item2');
+  var data2  = JSON.parse(entry2);
+});
+
+

Alternate Solution?

+
+
+

Beyond ES6

+
+
+

Async / Await (ES7)

+
+
+
+
+ +
+
+ + + + + + + + +
+
var request = require('request');
+ 
+function getJSON(url) {
+
+  request(url, function(error, response, body) {
+    return body;
+  });
+}
+ 
+function main() {
+  var data = getJSON('http://some_api/item1');
+  console.log(data); // Undefined
+}
+ 
+main();
+
+
+
+
+
+
+
+

Async / Await (ES7)

+
+
+
+
+ +
+
+ + + + + + + + +
+
var request = require('request');
+ 
+function getJSON(url) {
+  return new Promise(function(resolve, reject) {
+    request(url, function(error, response, body) {
+      resolve(body);
+    });
+  });
+}
+ 
+async function main() {
+  var data = await getJSON();
+  console.log(data); // NOT undefined!
+}
+ 
+main();
+console.log('The data is: ');
+
+
+
+
+
+
+

Thank you everyone!

+
+ + + + +
+
+
+
+
+ +
+ +
+ +
+
+
+

ECMAScript 2015

+

By David Leonard

+
+
+ +
+
+
+

+

+
+
+ +
+ +
+
+ + + + +
+ + + +
+ +
+
+

ECMAScript 2015

+

An overview of ES6 features.

+
    +
  • + + +
  • +
  • + + +
  • +
  • + + 3,451 +
  • +
+
+ + + +
+
+
+ +
+
Loading comments...
+
+ +
+

More from David Leonard

+ +
+ +
+ +
+ + +
+ + + + + + + + + + diff --git a/spec/fixtures/onebox/stackexchange-answer.response b/spec/fixtures/onebox/stackexchange-answer.response new file mode 100644 index 00000000000..b3426fd2deb --- /dev/null +++ b/spec/fixtures/onebox/stackexchange-answer.response @@ -0,0 +1 @@ +{"items":[{"tags":["c","deobfuscation"],"owner":{"profile_image":"https://www.gravatar.com/avatar/4af3541c00d591e9a518b9c0b3b1190a?s=128&d=identicon&r=PG","display_name":"dasblinkenlight","link":"http://stackoverflow.com/users/335858/dasblinkenlight"},"last_activity_date":1461433376,"creation_date":1375356813,"answer_id":17992906,"link":"http://stackoverflow.com/questions/17992553/concept-behind-these-four-lines-of-tricky-c-code/17992906#17992906","title":"Concept behind these four lines of tricky C code"}],"has_more":false,"quota_max":300,"quota_remaining":291} \ No newline at end of file diff --git a/spec/fixtures/onebox/stackexchange-question.response b/spec/fixtures/onebox/stackexchange-question.response new file mode 100644 index 00000000000..52bcff8b246 --- /dev/null +++ b/spec/fixtures/onebox/stackexchange-question.response @@ -0,0 +1 @@ +{"items":[{"tags":["c","deobfuscation"],"owner":{"profile_image":"https://www.gravatar.com/avatar/a19d396231d67d604c92866b90fe723d?s=128&d=identicon&r=PG","display_name":"codeslayer1","link":"http://stackoverflow.com/users/2547190/codeslayer1"},"last_activity_date":1461433376,"creation_date":1375355768,"question_id":17992553,"link":"http://stackoverflow.com/questions/17992553/concept-behind-these-four-lines-of-tricky-c-code","title":"Concept behind these four lines of tricky C code"}],"has_more":false,"quota_max":300,"quota_remaining":292} \ No newline at end of file diff --git a/spec/fixtures/onebox/twitterstatus.response b/spec/fixtures/onebox/twitterstatus.response new file mode 100644 index 00000000000..8bb442d5d8e --- /dev/null +++ b/spec/fixtures/onebox/twitterstatus.response @@ -0,0 +1,2814 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vyki Englert on Twitter: "I'm a sucker for pledges. @Peers Pledge #sharingeconomy http://t.co/T4Sc47KAzh" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+
+ +
    +
  • +

    Add a location to your Tweets

    +

    + When you tweet with a location, Twitter stores that location. + You can switch location on/off before each Tweet and always have the option to delete your location history. + Learn more +

    +
    + + +
    +
  • +
+
+ +
+ +
+
+ +
+
+ + +
+
+
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + diff --git a/spec/fixtures/onebox/twitterstatus_quoted.response b/spec/fixtures/onebox/twitterstatus_quoted.response new file mode 100644 index 00000000000..e1c12efe70f --- /dev/null +++ b/spec/fixtures/onebox/twitterstatus_quoted.response @@ -0,0 +1,7199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Metallica en Twitter: "Thank you to everyone who came out for #MetInParis last night for helping us support @EMMAUSolidarite & @PompiersParis. #AWMH #MetalicaGivesBack… https://t.co/00ZbffUluP" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Saltar al contenido + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + +
    +
    + +
      +
    • +

      Twittear con la ubicación

      +

      + Puedes agregar la información de ubicación a tus Tweets, como tu ciudad o tu ubicación exacta, desde la web y a través de aplicaciones de terceros. Siempre tendrás la opción de eliminar el historial de ubicaciones de tus Tweets. + Más información +

      +
      + + +
      +
    • +
    +
    + +
    + +
    +
    + +
    +
    + + +
    +
    +
      +
      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/onebox/video.response b/spec/fixtures/onebox/video.response new file mode 100644 index 0000000000000000000000000000000000000000..abe11ec5c4e026cc6cf5dae9c0a55ddb8f274a06 GIT binary patch literal 617665 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

      Ejoq9!sG{HTbE^lNiz;t5N5HBqnSt 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 }8Q< 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
      HQ1FNN0^%jeMK`9`NU#4@3&}iN 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 AE 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Βy%$h_y z{6F%kFaVx!_xJ($-=54H`A^Vz)aVbco}S18_^KH6UxOt$ik!9DGQY3hV0y`n0A9Rf zA4uc>-Sq4WyL~a1Nec|AL0bowpPzc`2 zJCUFSyiub*I;?unD%q?QV2_Bw_p!oXNc=I&(S#L`|1RmzZLB+07!Y5d%gWT$5C6oh9gvSjXZ5^4molc@N-vRU4t!m|Xf#Ppf3~EYoWAAH zZb(=G_2%k zQ)Ql|PREq5-=*kiOCVNye|Z*mrS4&Z z*yUipu=5V`PEa9nSj%3wDJc==Y)!Fw=#89F?P5N#Clof$H__C_Tk>TUT6Cxv=rXlF zuw4D6X5+p#wB&I{)LyYg+kuyrA|)uRn^~-MRm&y%^iq53ajPJ24r&wpd}opD_OV2Q8Jx z8PkXX!oI^RPeN;)3d-`DnK5|yb49A)HodUnpouK?({HkWv$j!J0Hp?jewMCyA_Dme zbKdiWb%r{$i>_ono%3Bc{nw_LK>pr6GMq0a2&e8I^YF2rj$#z9*0BHzqhJ z9g1nRIVL*I&n6N{ecyX2^^N2AP6K_kVxqm5Wv?;1p!4s2j}AKM(L=?}%m4fZB4P_Z z%1R#Sn!7Af`*}p$pR1=Mx{lXQMB-OAzIX{|y^RIml~z`9{&F0n2yEmo8{|$nMK*0< z)#(=ETlU8UA09P-S@|I}{Wdq(eixfffO$Czl+@d0Jty%~svq~?bKS#1!`GJ}WI~&p zCW{KY?~3l?_UOy z)ymiiAJlDf7vhuM1y#hu3nB3 zRf7>f|bkJ zR)+5w5Fs0}p29JA40M6~2h8?o;Y}_+XMj68VmaI#%FsF{R$0-L3;Rt4mDZ#UyL5{e zS>YC1H^#p`^_6noJDh4$aR@DSlorMyvN^vBZ}H&I@3)zw$3rJPj=^K$!PWHMs6b@0YBW&3OP&5728mbb z(~RR)eIgaW+`&U^@*U(V!FQ)jwRdhmg^2*BNDQ*K?U@&O0|cmunGv2oKIWF%w< zlDT+yuIB+*E}2J20GuRg-=I8z1j(aGP17o+f=sEt--RXXz86Wyb;^le_zm*H!rD7b z(dN>CAG56HO@J{l0GK+0yy%)RS%W?>dkzIWCB%s^H{l{Rp(5Qk);t2&C_S^a3xGhr z8sl`(B|sL-Pei3(-uE4me!bg$S^KIt^M;LrRN;il_)i#w5Jp?ErX6ziJ=Sf(J=6Eu zOPo@`B^({VSPROi>TFZi@@OM4P+BvPO;CC^F}*TM|g-YAv#9-30ZPiKP9vy3?Exu=Edp#UY^w*gt&R*4ngQvx<(8O19&BdCsnIKFX~+Bc zS0t-olwbJ6hqYL{Y#iGwcck*>BfrQ9vZ7&zT9#@}|JJ$tiC~5eR z0a-PsOXVAPybHwQue7f-b4QL7?=yXtKvjkK|8Ak#xDL72W?d(HmKN5kIGfvS7DvV+q)$=i;xLi2Kjh zB;Gqc5dk}ZsZxJgrGmVQs^@g6uAo6mF@3Uulg`U&gR2w8%)nD~kK6oVn%(q@@vPSC z8z))aF2`>hm(uoQQhh}|5%d^NO^*hZq))GyRvF#Vlx$JI_~T&c+FOMMdor0 z50up{f3YnoOMFPURkz&pvI0Oc7LkPEO9w^I^x22iLSA-NeMw5k_#`g5ymNp6-!H>K z9>#j%mD1YQ`!5{!)Zf3;C>?K0EAcXhS}|b0RrP3TQCTEZd;Xw4`tu;(gQjO-+$zf(Eo}ckExF%wykxymYpE|sfg*mBJ!7&CuQutVZ#$gNkn8M zRdiytNg4Tz`5L1ws=5ydE37@B0(=%cpZ;BLi>7k4dAaQD*UPSN7- z?oQDbhf>_#9a_8;cMlYI338^rpLe~_IbRNIk(o>~As@p0v-iHP-(_3>9j#9oY3;Ud zBy-;H!v{CYx@Ytn@2g*53gnCDoaPFu$s63bmUt+9*0$CJ0-U%}GZWUp=X2{Fh^L>p z*I-6nxB00DoQDI?Ta76`8EnorPlKkkYR=vs*LE5+AT+D$iqdwa8TStmzUQkh4XW+* z|3JrLFkj84pN{z?S_nW+u6IY%XWWg`^7WVBr$j;6C|1;4Lo z(qo=!rc<;8@}9k%Hxg7OSn|D*WN6!t^x`1ihJ4CTUWS*SxO7F=Z?8|M!CtCQq8^ZS zo97)uoG8}kgWm4-$12qb^VIlVLB|pQT|DiaDy z_R`0H5e&Y*85?r)^XTT}z0O(uCe4Mq)2Y-<{cFYkwBMKO{Hl2KyE z;?@UZKZd;fw35XaOHj(<>Px~Q3o_=@lOsaUQcsHWT-s@tV2>iePWWNufP~3CS%i z)tNoNe<-7!i#vbWLXj@j*k?cw=_MUY-HjSpLJ493iHM71yDu;WB8ZE@$WiWU!!W`l zHQ~Ld>Hu$%P_iO2~~;9Na5_^FRh&OK|%d^A)tSnfrtT) z!ocp4@58R3R4#_C69W+@YSTtRcShXY4KndVJtA?WDy{^32Q z*-QyXmX6sfcvn(zREr#d>)V6Lgw>m_01=4ZTucvP#vUOjRG6*NbBzD_c0W}xsW#Vb z5^WSKGj5O8!H5&{gzD_2KJA*8P+!fK(2{1BKhUh*&8M*Zm+&=*F<$kJMWs-8w@A3D zX64}?oz0=~_~Pwezx!V0g4)lJQyEQ7w=;9=(*CwE`?8Y>GQDy+;wMDE*{3m=A2QDm z9@yDKIOvyqLNp1jQVyT9UQC`=bF&{XE|~Y|OkHqVR^~*dh6iDHo+ofC;~7cKfN1n= za~GB3~4O@Y)ZZG4DTF~Kwj%5m^Y92HFmd47mdjN!~gniRz5)1avvQl5>xJ7iuJ2+kPGA9vTiKT~wQKfBm>4Qst6K*y#IGnqCXN&$i?t_ZPsVYs@+& zrkm4c_%a`4A~6|Be-5wBLiGL|kL)=>7MCfnmTFLnOP&xU7Rn_r;5&H7@FVee|3J8W zzUp8O2V4-%=T9^Fx%W@LI5N*YSgb^4fmHplOLg)}x`@r%Aq+y-?$Yn#o_1#6e;T(kc@~p zO$w6@7hpPK4eswNh=axYRU;yADEl|T-sH+czF$3!Vy{K(x4gPk!!A6%){XxI4pj*N z%%Lms37ET1G88#L*=c=tPCh{7OFt?3v)Cb7741ByIC&Gm>hIhc{lgErX<=yUwJq16 z=x@ONU~1w*bYwzB5K{xN%7`OPASRG7g4lPmcEwIg{9 ztibg1FIia^&G9b<0|p+j-(t(x0B&4>ubilgz>g*2ie>BplPM2#|1iqrviCfknppYW zTZF18jOfDTD|(r}nrefJTnwksng+FrRat6f>xkJ$`_>?0{gc;D?%#P7Q#I{bk^u## zj@Gvrmg-Ta_bvu~H;t2sh~4=9MChbBU8HGMrF58g8RC7P$usx7W^7`Z*Hx|@&1Eqr~G=4IHL9e<~-xwkQW&;TRQe2e!x(f>`r6QF7B1TV(( z54W6r{;u!l7BQW$Rm-qkg9p{Ii!~!)_T^&S;hN_9&bpt@-?zE~ zMiWeflr9t#X7FietLa%Et>2f+U{U7lg*;_8^_Q9>RqMeIeiAJtH6M0&o8VsB(JDA| zv@{@%idtVc!e7lG1s~>aCf}%b)%~7*$}0{j=1ZUNQCn&0^?w3YHvK+bG(*(qYJ-L> zm3IjVz;1onszh(T7R<(-`uU{qvQb|eHkXjELa&uJ2$oy4E3Wq+-o(ws|5?w@-g;(1 z-#bdo;^H3^Y_@o3((+SBKk8#Z>2nwwYu4hA3_fHHynKW8-i~&IBC4GTeF_D5Qrf1E z_I|-W*{XHTWWu2<99TcUD$z}~o}e25Kx1(f$s<5+QY4^sOh@ktSq{tcg0^XL5y!kF zrTdR(i4R*t@{5@p7h^NR+18xy#A3Q1!vuQZFDz?DcEa&32KX3BACBDy_%XLShH$^?gh?$$3b@iRS$q0x9`5_96 zWuu|m6Sm}!T*9$B)sa|rLVsxX*cRJX|K;OVHb1G>x*w1ldXW{9eVNP6{^xYfrK{?) z=5{ZpTiBrL5?r+_pv`#N1YZVbf3MTz$XcC0QjwAdI^;{G@v6G{LL`%>l#UzyuPzvv+kJeet8z{TKB=S z+1~uQ4qk&POvv3E88gWkES2f;l_1zdKhyV7USk_w(C5`d_u=JE$v>fkJk8M^OadGZ zpSVkx0;VFZW|#LdL;P-;TQudDja%m$ZsxsYUs;lpk1jYz%0lTKphNzwDng?<=5ZAb zexE*+*{X{45Haf-@2hz~EX<{`YPQ8yTKh#KN5G)Yid4R>)KFN#Rj9}mT2TI^J2*HP z2ev}$z;WulF@{4Z=}m>PbES>56${qHT91^+MtOYD-EXbMUWogoJJ)sdYmzK>9MO?Ux5JW}G7FtgG=>73Yn9m>Wkp@AbI*l_zlOM7kLQj% zb)Se&*XI7N$T2jI-#)8YF=fe9>2y%8aenycm)I2gE8krIw<6bv0%6ha&tx?Jivyj# z@9sV1E->viJpbM258?&)iP_XzLR1Ro-8#J{gk<-qH&+OfB?M8aT2(suE9K0wnk*A@ z!o@0a}rqXE`RS4i+k%IM;3MnXFajxKh=fp z|LQgb0Nn=TW<8RBs*C?}Szlg+{&gIfLK*;9I2HmP#5ux>2BZK|1LYkBi@}J&^-AG4 zS=yDnk%FNfc-I9ZYgP^mBL?yWf1_oO(2Db+WE8za!v6};CWul6Clp@|UTc3$& z(+P~sEvMsF_)<<#Ndyb&`vW_wDjJ_;u}1_)jC&&%r#9zwN0+ZML^j}!E>a$5$hqiebD>26Bcd)O@01+@4g)2Ox-KZt2t^-a!q|D}VWLuZ?hf*d4b@UBL1+#L1d_EzHA)+LE}5I>byT1wGqIIFIi*eAHiVRr>Bx*wmEp4{Bs3<1yH0EWL7B)^{}U66sv|C$Y^JOAuuZNYRgHyO7!@uC{q+_*OwxJ9a_ZSj@ZsC z(n3j-&r^rHLJ*~6z5IA_BbZ?rmteE1vl-1F*0&)RQJ10M+S$-D%Nu1nACSG4#00yI z#H~G>U^aYHPhZQvzBGsaj`-7gG4fzSg3l7OpdfF);4l4aV~6ufdgB* z04uMcM_M5)l(svVA%%}f2HWtP)imisGaWJVufucN;B)(;@MLBBgTccYy`)5Vz`+(- zL+V(?f)8WJx5AFE%AQU#6iVdMA4-9IGpl+AkEQ2;j9Wgr-{LoNwh2vk3p`ek0X3Pd zVL6@;!42k{7UN=F1t0iMd?gpeMjlLI{V@ba1+KetdvZHJxml!(yGq^w&*rX`G-QCrsx5DM*FrfJCIGH8Sxs7xyy4O4< z-n@MY=oKso6k;>qnoL|5qD5wz`w(KYtl?kLY^D?vNIK#zBjngm zS-~6$#H$aBzVTIOD(p2Ueo@2z_Iy&;ow?g>_Cz|VwP|yGhY{uu^{MymBN9THxq}ii z#~bd7VdJa0M(J1~6|-|&V+!Kd7Dsyz&F-c5qcx zxf~Al(@F@r_1V5`5WN%OIoFCk>8ge9 zzV=-Pb-i4rluLDe5IX6XF!zAnpLZ;^cdC;&#+TN&hV)3QWhQs3P+E6f%cwUI-L*JO zCtGfZB}ppHgbz++27t_TyuTY~!QH-B$TJ38Ct%3aGRR3dZf0v9>qRQyO!H;Hpi)a9 zR23Edi=@oCu&Mz0xXKhXh|sZWBW?%Bqr?&>;!b~SrNHZS1MY<=*}9WR0Rv$PA4m26 znvbu6@VppIc7G??H)2fw{T179ZY0iZfmjj$qLI_U$1`%rmg_3vo)@%NPQ9B?kf0au zhCZ*r_U%OD;Q9$a>n*lXQ^Krb(yFmuLDtjf8xFEu$!-t+`pLz4UnJ)D8!}IGguNL` zR2!+w+dcxXWp;D$mlM#CnaMp>S%tG46^=pKUt-M$T$iGiJSgQwn4Ov*abomHXU6yy8cnD=*n_OT(u|zIgS57>D zdPwM)fWk-Bg}VDY+hyzH$-0p6C3p5D#HB08=d4j{O(3Rgbm9|)&hHN##9CbHcI~n| zdA7XoGM9N^XZ|4C*aPxq+z+hkbu6#4258VLb=FNUxi@oq+qwn5o=>>sE!oo?yp()1k0&gvEvYn z3^i%3Ol5;x+()e2fzzy(S3oRu5IXj%S0$=_{g^H=WmT(mwIwz9Wa{nK78MfX;vE`i zSzZ{`Fso96cxGAKOlTeR+?$ubcI#Xk*TRsJxyE>&>!<-TB|Dnb6jZ1%2mDU){0AR$ zMAl9{T7dZhPqg$oqsDD_dcsdd-Cuu=P);WxeR0AWBTr!e-&1Ie94uhku9sI&@NGir z6Z`%<{_;cJ<5BqvU;J+U`YQZ&2>SyeRXE9`^yc=9_shT*BjT3mA9OU}5G3N8br+tX zeGi<+dmLrFU=b9NV2}v5H2zT(h!UHTYRYW?bFU|nF))uVhz`UCT-qN>c(4WIyb((- z*EN1udZWx2>-{dFDk2lYm|;s{IIOzu)`5{kt2|IXU7!-Yc7C{W6h@-REqQtmqI;uq zl4WlGu~$=S+}H#OZZTIrb&1fM0_o(kWpBWF&Qt)6mPIk*Rs0E^AQ4l^z!^}fSgzf+ zl0;e1ZMZ3`H#zt$hxn}hEdC&Ki(Z}4$_7pqe1cm-2-{`52KbgyVVqdDr&f%tm(#>rKqqf;ab?vTZ>xl4o?qtupdVV>c;q=M?mf6Yxd(!5{`$?v z0f~vjycd}C!VHk6jnfNXdRuyAsVa*Ees#a+!8H6+-$sFL@?~+MyVv8NK=ChQ%6GEq z|B$P`s(9^PO`P)QjQGIt9A8+GcFtNx0%xT6{(sI0tPS-zVG+ zeF6lZ@x!?S=o%sgiD_}Sj_RMB$WyB2*ybS!@t1=TXJ9dMP=PK|K?@35K0h6xNeqsp zYia%5lNr*2Oy6U$M2n4Y4*ACcwyeU%c(5c#2;tI@`&kE^rlcc-~=5J|x$0zpTOl%WQGhMn*G z3E0NeCLO77dUg7uCME}Ia}^0<*zxY(#vIJXV`9Z$ETxIwQ)zuTbm&fJ?b|zLB2SfE zMU1rX%$$4wn^hKjA`~YSQ=q;KwxB!F+?ZpRQhK#3HLcgY>)Pp2Y@uA!+-4@mDk3AN z|EO-na)A1D;)y}5llz_fb_zcH>!amk8@?gk-5m8gqa9yDwOV^Kt z(Y+AS@FGdNKfS%(1Fmd?o6#jkZuF|xqsIkjVQ*!CiUPraN1i!PdMUxl_zyV z?@T5a1h)!~_)Zy*1W%_ZIMD~5P@@)@BMg&tJHxsBkArJW@S`~dCM{Vrq;P{jBooOH zL{q-N&jaslOy%)SDw(_L!$_0cipqU`@t8Utx_&SClO9AL7COT7(YX4x(BVYsDl~IP z>8a0E%I?Y`6StkiLll;Rlt22A;cyA;qZ9yv97Dk;eSI!53|{vm^jNoRKI9`wr1wbp zm$EuzqPCt9Lnm{J=aW@+8!`katLGc4>mFUFxiAzFTiVJ`sn6HY%XC$|v|M`borR|n zN28?L2Hi=>>1vr|v?qrBu{2`?V;rt1-QNF8V!Ci|@tR$sEHC9yh`ZAEe(S->}>a4Ayvv;gH{4z#m zQKOmrv>F2+nHA~#?Vj%R_sbC-blm^N!}`+T^m5H!Qt0&e!{n`2&7-B&jvuoqG`IML zqM4kFc^v(@FXYc@c#7!cq^Ro43A8)T8oc5;R#DcLp~BL9i_so&40FU0kK1>zuca4M_#(GF$B43rVp>h=~b{tuGB2sx$s-ZrMomgbB04 zrOcg~@SYNSG8nC>4+LxWMI2;7gbqXg>r*)VuRcW}(5FZw4$*wo`kxwN?7xjXuu<9; zn9x_Fh@EiRs(udn7KBIG1A_f5XKXC@MrJOEJ+vGu|K=^OX?k*hujfDsa>C0?*tS?G zwzz*-4ng)eY`L$Vs_H>LXGGZI2&YrEXz;Uv;_&#D36b4ksP@&Xr95u<+Gwd?ijZ1qoS-PVtx0idI3!?a^#?Bz=G7gMu+MPIU70JoqY164j)XNJM}E?i%nC zdp{zz1Iwe4mV z07awYh2VhrYFXcVh$Tw4h(TL();~~D#P4FTsA}QjwLrsPcn2`9VQ=62dz~M36#&2f zH>Kz3xEwqD0pZOt%3w_1gZ+3PAre?XE*CLaDBPu*bdW!~L-CJCv?<&ynY@|5_t!dy zHYq&O5$|HXdmsD-Y)q$`;j(~AwG-*9%RRbtPyUs(OB|T)KY01$j?ju{pO*!H-*yEq z=kN$-VZxTMd9Y$2kd07F^T!rSCJ;6Q-o(o4tYfH}ROB0w=6LkpB20M@%qol&1M7l5 z5K08Z5zz(%K}6!hc)c`0G*PdyNYD;`k2c+r-Zy6EMV=gg>V=2dl=y5xET;bYScVpK zM8YYv)@D8n0Kb-LQ!TL=*zv8(baZ4;R+@y_v?_Y^Q53&v+5V{7;__9Z-pFBQZ5BJ@ zZ-G|~!jGbGJKJbp88#Eo2u;g1d=@_h@1yS)ZSZ}+?Yf=&3Ve#iw7;qw`2d`KxKSN; zrJ=m0-kaKWr|rWS=B0Vkn4Rqxl2DMOcT|^@8nxmOy*pq6T$73I-~2)N{l&|bPE+=~ zURpTHi0lZ5j!Yrf*1`2j=bL4_W_K-sL9Lv%u-mOu_tiGwcMiL)(t;$0E#*!}O6GaLH7a`D+B58^=EJS?9&G%C%dhyj zmC=IDF;$+BON@h(uIR3=oLObpm^Y?xJkoxAl?#2a-z8l|zC*xk_ZWfZxUw`;fSE@! zVqqj?#+S_~cd3h!7;(=K*DICAY~>?&{{O)0VS#P7>lF_~jlgwSm3mi-u7=RYLP z3-{&T-tHn-?%^%`{Af47iLFmHy1<%T=WfH8pBFW=megHSH)&VhrxSUSt7x1X(Y0%= zDW$p?nK6PeR|~}wOcU=i-pO{`cXdZK4TD1-^gx)Q_qd(gq`1IVa3bansJO|YueFzn zQDw=x2&v7X>lCJ>%PG!5rfWxu%z9{-j1vwV-wK$#V+phJq<8E9p@m`6tmqcM*$8>o z$Xx@a_p9 zX|YDrXH8o0+px36T(wYSGlm*NJpb8l(TbO<#BEI){9jztL*$0?2@s8f&91H4mP*+`~Car(Ju#6F?;c zJ^k*kCw#kd%&hu%{xeZ^ce!%fx^%ZTLFlsb=XBlg+9O-n@0UxDp$7L7ijP8%^=8!) zwT(toC1WH1(aF60pJ~L;DOR({b+GT8YIHShtm8`Mm!<==YI`9tm#=Em_Ko_?D}@BU z^U}fEvpgCOW8i+9UT{Jq`sBD@6Lwwd*jVD`sJYUa!1Fe{K2|2BzkSJl$++j>Mo#4t z4*&7VBK!5vz2$NOLVb|}?^U@~M!YA3e=2@?60Uz@38fnqTDxuZWhh5@RQ;Qmw6?=G^9HqGXmH>$W>W#c zNu<|4^w5&S0*?R>`(mhJtj#y>o>l^BO1HJ*T~8y#$B}S4ZuTOSC9+#c)y5zA)XR4* zUsh(zkrWFX}Jzllgq(WFxR3fcvK|NtGu~gac5eIKGMR z_o4kdVkjtq#|gqy;~BarKP5O&1vfgEitS%@S|86B5jPi$hZjixE;^VKbd9fFFG9Wf zgE)(Ma{&7BgYu=N=LyRV>KL-Y(csx9-{f@`GH1pQ%`^+`LlT;}Y%30j59#@cF^cnp zBq-242!FUksX1s>*oi;cy@rd8sZN_fzCx*jpDYXGL*2);^S3p#ng}z*hfQ;mwr9VO zD-yhMJU!COg`w-hBH&8z8f7g<24EFq+BFmVEN7io`iCkoZDfZp&$SQZpNN^ma}hA)e^^wHSO9r% z^{(SI@qeTa-P->bMJ_s3v8d&I| zZ~r?u5CIm5SrVwi&;ro}z6#7M8=D)nYsweHk-`Ce*H=SE2BFA?fr6WX#@;_B)f8aq zRt8MojzCKf=q?$DsX%&uOsZG-?(i8=vTZ5TRh<}CFTXMMF zIJfN1GoJ)A(Q@x*GH2EesdM8R|HO?R#ZxUhC-#lnwH**R2p@%WtIDkKg+nCYD&(j3 zvj5#O8MumIpgDIJmpuxs4Sw#%jQ0|LEPO-A-?D)~rn@eBchrkC1IpE1IwE+74X{yB zHm=2?_9*ka7(A$l9;g3)itOdxVex!x7Sd{>DXQ{aSEDb_*SGEdIeh8qikKry#yIn9 zn#Ywj((PR7!HE=Puya~PNJ;6DhW(t(9K7}y2|Aw`VdhL(+6I|7!#u<87_#wO%|E_F z-9hdhlyLRP`3lZ@<2;yda~HRJy5uEXWh<+4I(^Czwo7Ys7D@(Cs?iGw7aoMV@s!k9J};N_yXG?(sd$eyHQm=U>@i(K<{XQh zd7Vw&puDJa2ABm=kZG29`L8Wm2!1VMljnO?K|b{_36+-jU-8EXrcTP$af$Wz_TW|B z(5^i!x!T@-f`12oo;c~F_GlRNpX7cX@X0mXeERxok%Z7=E9x~Q*=oO!o;1Q^&#M}@?0`WFH(kzXK39%9@R2?X_f|%zqWZiW#X7i-C2!*o znr{koh6u*2%^Nqo-qtze4B_f?{I<8h;kh@UP~7$-i}5cUzi-(GAS7`SCmBZs+_{ju zZ|!e(e}cWjwIemrDd0$5klfQ$t%cCe(awXFjL@{mk11}oo>}gXjSjrRaWO%|XB?6Y zmhuueYlO3bX)~qHH}+L7kUI`~lZg4t9D(dFcSo2RPX}_JYyKFrDJklf*We0f{93%2 zPSfA65cfQAC*zFDfXl3z*7pPxpoNHBtk6ehZG9(a@W zdb_;P;G}g{%UJYi@uleH<1#XWafi}iX;1cs1=rgMhNaLKi^-QGVJH2b_LUd+UsTrL z30^VZLZWc1-{$;?+K4}F>wE&1s3nU(PYGQQ0eV=F`8EHJc?v(=Qz+89Y8Uii;gf>j zZ0;3>X26wDJJu%O_=H+06+#wnFCWt}dnPqF=?q%1H* z@B3Lv7CJ&cL)`-8SJieA87>gFD^KG=nlkJFnfQ!e9WF{1hi+KWt+9Y-o=Pu%PM`a+ z3%t~hBk>VUf=`G2D&Hz@tls$2B1>&g-5fI-Z$(_o($AFnbBTzENVjYEj{Y@C;oYxYH%`Cn_i<#fy{o$5iTlrYSY16ak0Is&f z#L0eEJ@1dr1~15%hq`xo!H!~44(AD448Oh1niLr(oL~SM1~)3ckRm z-mL|TlKUtX0S2wMr4G;AkgbMfMWm09-B+||1Y2X6 z9)MUGusN+?0aCfYzoQer>;i{>g~;1Ee#5m8>5F2AHyWz>?^P9V0AdoOQKVFV6WL>~ z3-mwD8+`--SaO*IN}=mvVQ7NcM9i+rn$-7PiISZ3WAdS!ciq@g5w=42V94JjKR^MH z_$qG#Dp+OjroFTnNDD#{*BQiE*<=FY;fsL^og7@;K&W}35(Yl)A#-ipZ;6aF3~=R~ zspE^W_@KbTK@ZBRt!B5sjF2h$H_BwdfC&Cf9{x-nevabrPzaa^-5~)(AxB5~#55#h zLYQ{D3U^QwBT_S>=0&-hHTP}VuTDOameDxP+_X3Xo!Z=3x9s3nAb5A$`GCC?Tp6}f zjOj|fvA==CmbUp!5yi$Nfy`t6Ol>GoD- z^o3E;!(6^5_+1{E8Z*~Tfqj?ZFt#s#-TwQKFRs#nuPN}EU}@A&;}h~?DAW&*0`nrN z9Y3v@QC6bL2fLiU*W4CQ*kHM2qlBSX|J!3nVJ4#{6&Q!iP`zjGB6q-~9szT=Vw6A= zw;cQ5>&P}>;eB4S#n|P3QD#m_o_Jz@a0yUeXTHobDw$TKcBOU|)Z1tqo-?kt;Lci2 zv+FM(d4E(vuKZ%2!P@vG#)h>4D8}r=DBr)oOWZAAYy*t~5rEd5oZqYg;*r_YQ%Z~= zmYzz^AF;W*ao6?rH18diu>wq{Wnb5kKh3N7q_yTQUOv1`VANMQ%^WzqS0gC^uBuNF76qHobYOGzArQb@c%4!;GFoB=7jHee-8JO4(N#+8A z=av80J=?FboF`|ZLmB8HUsCgb=aCJ~@Vg&yxV}cJS0`ps#KmVdNV9O1{@zwOr#X!f z_%b6K257BmWR#0<9o_>QXxQz`zBj zp&_7yiUZZfKyvUP#|T*dJQ&_DPp7vmVs9|<#E(t5pzEhPfl{Ol!Al`XFgC3;)F>oa zoS{V2xC5kOq3{xx)a>+@J(ORvXvi`wl1V?0s3P(#uh{bb99ZXFtW9iN{BpVcURbq6 z@lb*lIXM7h^J_jxsB9H4t!r6727Fy$^ZSQT5HjjHE!#^Yv(7$RFz#2{U={mF^`;nF z48gss?Sq+(uke^41q`(zjMp2jsA81xpscm}F@a9YFZFY9$*@UsN+_ZEI{h8}xR5Uo zAWq#p)RZ-}WIbp83*X$J}M*~Zw4Qs>Z#n)gqp=BL(1U!vk z>ZuGflHKBuu|`kM{O(?)18XrIBtGmHCpMxcuY!7Nt%wrB(|qYWRFC3{;kTGOEFJsmekBWo#Db@ej7bHrD94#(C7dSrF|Q+wC;i6{ z%&{Hfj~t7S-{og??5$yhH<6BC{@olIOLu-vF`u!K))~*%VULm{ZiT~*sw??WK3E46 z&mT;KLrWzTzQK=zBaIRwHN35Y9OaJpaljY}lP+16o6W^|pDRB3mDKj|)Qj}r8#`JI z3p_dWEtDj&SozQjwjLBa z=VoPm!9QI3uaKaGcdw*>Ny!itF#K3qL9yq6*}qaQF?F$xHH#IOfRS~SLV+K^eS=B; zjtDmiw3s19jkbG;J0ZnYV31v}`GRCrOj3@?1!_6f*Ptfm`d&}F1Rm27GN&yXrkJR1J+m<%&;vs!m6p`q9if9Pi2 zc4YC1Ofmrl%8>?J5ur&4uuXR;`I8IO$#Ju(U)=F!&CT(=W`(E$JyVU0Fyy`Ct%-AvUrYHu_x;A%_?OD2K%TA*q2# zkRrZNd-9M(!kMHDRnv?Z4h40RClnVpf6QQ(}Xv326a_28(# z=Awrin+Cy~nHIhMmbW1xPo1^@t!s$HA$iQt7`hIK0yKvS#|@TBlT zaOBXUt+jgDy!8pryeG~9|I(J*Bb@za7j&xtbVKh~#=*Y~@@LIS$K$6s~Wh{2a zW-3!2J{3Ql@-+evb!BG(E6L^4v*%c4_Nm6#w<`T=9Db9DdAX{rm>{@spEZ(AWq+1Z zC4PNtl@1zHgvrl-9Rvb_q4;~NM(p(8tOA14XJF;> z(>MXGlX)y@0u=`hjnuB(n*ki0tv8XO43S|;0~~h#Uw`iG?(nhVD5K<#owjtQXMp`C zoU`6)NYKSeGmv*wjwDl{CUz=hd;LyPdRE}d3^q>ta; zXoxg1b~?T7_92vkbAJM1E-g zU>Gq}^0Y@kw8S~={iSO@pVOxMKC0GzjNDm_)r{1Plo0nK0Rt6Qh{GhXKs`XrFf znR+~?p;i7P;?GpnUkXB`!=}&5u_)J>oE_V-QP_$~nplv|%i%9S)(n^|xax(|v?j1S z%dIFt8}rx%Z8U5o$%)pUAL~< zN%1paNNIYANnW+}!=n&s7Bl1(%VXh9Y2c}e!64wN0dIQG&^8VEioUDdgl{udalCVZ z1!rH?SF7JXcvxGFbEx#y5K+`7KPHQ`q{K%g_#~?xh>ZQ`sH}<~WJCue(WyE{bA1E;>-;-X*XW|WfXp!p``;>^d0Uz80 zgY@5!$?1O$nSlR5kQR9<>_0Iq`hOE9+y6F`hk+0dB&XR0|L@2PD646iE;l-7TGf+n z>u+s5#@BvNaEUhPi|&6obJuGP$#hRaTeL^cxbesQ>n2daZ>Qema{*NyQP+&F=W%^+ zzPNMXLCWn4_lvzlB4`(R)xBOhH98`D1X%=|1^5pT;I!>$Vi-Yn`PKaI|+qc=9_#6#LR8NA&dGF0>Cy`;rd+ zsi_7(J0^d67h~gs>X}nqn+C7_W)*3}6C`tt^)Qg-SUohHB;~A$zZm4+E*-h@D)}`; zSe&P{y|zMr%pmeDA&Pxjaay652RD=zEYpT#0;N@5>^>KGzvU-zup&6BBbR$Q@aWQ! zBely9K`v`_6P^!U?}gq!inEFW6vkII{%NGW@Ys^TApe%)`)P!qO_zpuF|6}wOTboJ z3}VVlz{l-&IVI9FrS&#c;?QomToky_7+gAy z7r9;6^0l!1N+oqEwCZu%H2BuIj)CI z$)6sjquG?;RFUtf@48t;PamK_7XqjE`2FSfrSD7N4-*UjBO{)cx-rGsBXC@vp$8Gl z6H1fcFO#recD17~?Ie)Le4)?w1&(T)<_<}gYz-gQZb+stoC#J)Nz#HHAWE1=e%Zx- z9yxs4qgn@RV$ceWrmnl!wmv~3y+$MAA)o^GqBnCn_tIrvpv>B|%&&8uIviq)-`P9_ zm>Rcot%Q}fQUi4}^|dqAI8~ZN$KTa-<^8159FT4dMiPps;Zf5$eDU#Fhs%@h=>xrw zShpy7*q88x=0pL1+$Z0o%?2x3CqMRL zY_|~-F}u%n22O|{>1I1x(nTyJPl zrSa5lyp!g}v{~lp!Uh-^8cc)H&*GoM6)yz|P$@}TO(=S0AhP!X@JA?y# z{erb`?U{~Lwwka>^L#%AI>%v(=I zJ*QmBv(O1#fLZDZIg8ZVkgKk_Z#S~=Y7fIa%{)H!NAeg?{_~L^pq7sLlYfLZUi#j+ z&3OsILP&Q0to3+z*+CX8gfACompd-KD%GV9zdv?SU3>c%{}*yi_|I8=>$}d*mjWgp zAqUzNo`*S}*T2?z9)d+%3UV2~nZ7R~kR}i)rqCBM2}XF!*w(08VV- z^LgR(!@@4>Yq%5veu*fxqY1x!3S1Pk{o>?bD)Q%kz>@*s>G%yWu01Qk=j{XGgJAQ@ z(NZvaN*HJmK%j~pK66LVHxL6;;CBntrlpa{H?q>BJqjy4Rq#k!uyAEt1*m{~PaS?9 z(5?b4Zos$q4_P{o#ifG;#9JfqqqP^~9u+unx)5@jCPO&Ehp~72MBmK*G}kz-u67hq zV`ulfE{o2wwHa^ncZ~&DY>duKi z?)>!g3)oaCsBoE1PGkZHlUV}xNA;Y9bxDh(($dXrBdPixz}9XOEJZ_3qvp5LtFc<6UY-b0uyDm!m3X#^FMA zoUV9SKWa8XbFRV3y3gngncRe&9vRhubAjN4*J>J9CvPJq*(wsd+m{cOSzBMtmc2h( zrjHt!8)_bpSx030@>DSzae~q8#7cy!>(&GFnad)S@<^%z;;mvopQ9~ilrIcBV&?F^ z!Hz9pC+ddVs!O@Mv+vrE<0U~lJ7m;s)Yr7@4Ife7?BUv@$LK<*?^6vY>G)nANx0C8jwDcDxKV95R?dL`M46fG ztH!l{<`pJfpTR2Aj!Dw-?fa;JlV9}se2@^6BR?{P7`uFa+^8-{><$ravXT?!e4CgT zd(>`lBcr8pI+k-XWZzBCQA2&ckZN4*2voh7_`zGU56u?!=5TtUSV8Ge!7Ka#N8OS<7fMnfZd&?qC7Vxq5yBna5msGL`n&O3bQkFvf*jZphWi z3om8Xp~Tw@j4Ik|@trf{&SPY~*f53@i{!sKDsp^^W& z*E7Z2IR8=z1_i2*Q_c|2@PV(fv zK_RQw+{-zAqy-|4btUa*iXK&pjFQKE;eNQ>?k8F>iZ$z-2~_Ex z(8;MY%c--+{RtM*%RuPl^iX0zLI-`YX%03!^Csb0f{wd%fJ@k!F&h@3KTB;8`8INn zPx}9`^_D?xwfpxs?#10HE=AkoUZBw8PH~D9TBNu;6mPLYAyA;Wy9C$b?yf-s!5#A7 z-1qsNInT`VW`_y0lT2XtwZH3H>$CR!(?Xa=Ry@}7M+`H>oO9TOYQy8dyPNlUJ`fVz zazQ#RNZ6V=8(|cwu*Oxfs3uhbi5pz242ae#bq*VK2jm+V2I?!%(1J(8AN-S?CE;Hm z;#OS*pqY0<`Da&jqX%%wuB)s0);8a^I0*bfPzGL}RGez#om(Jg!2i&b`AR)`Zg2-gBSQD;S;%Srv8KxQlB)iKT=-7wp%n;+8;C`;{#HP*VVE^@TH6* z0mF|nLL~0TVHqs8EKCI8fP$|DGzyQJnb@@R0_&0t#=&zmQ`y#IdMPJjM}n3+DGMB? zCi?K$3%8k|oS2!IIq%re(h3jSYqMU*_3s@aw1mosivbVUsBs?QK~5qQSnCn}8qrwE zWvKIpn0DsvCrleruY7u_X5wtKzALxaOH}HAq^5`#7q5{@a5}%Zm6U%B_s>{q2UZ!% z4Lu+@PHCYvLCCR(g|Musd+c>|WoIvNO!Lpft{=XBK2=)prsPvv;tmLp8^>PWfX`Ba zt^kVZ>knrU4pZK$jQbF^qg{^!2)WDpO~om|rcA$*NJSTIQ@iOai-CLx+I_Tvb|04{ zNZQ%AO|BiQt_0ziXfBsLRmD9;GPso#-GaTp0H5fMz4LyonseKx>iH zcnDp)#ozdT$_jW!R|VE?G7&j&V3o_V+Gfd%KyU&JX?ZD_Gw3&>8XE$pHO5@|XGA81 zL{y}TO?O>XOr%i!{NKd(_P_D%es(Q)rd@G?9@|t%f{}XTTT7P&Cs}C9PE9XG+rf_a5gUn=2 zZlZP5bWZG%v1VHcX|c+9fB4I7ray`C@$}82stYH%&J-3>97}e(pMFu>W7R$PC^dY>5+IT%@ zgBuOjyClKMK=GGL%=O8B$ zBaC6tit1IIP+StO08qq^UoW=t!I9KXSt<=0lz@8z?fNoqA=Z9s`MxsY z_mvR1(j^b{O~#TRn^_S8^MSA zPcJo_;kS822@A!#OLRct!~Fot$lpnq=Lz0v)mo>H-dC%>>GmBX{(v{snHxD!1t}%K zXRGk|wUq&1KWt;uOtK|5U~Q4`FO&8rgH0(q^sS?^&a7Z0HEzLB+(fT#)N7VnXYr`N zHE8yiFFV;3vJ?B;3tl|Ngie{FMio%kFwXfKG_r@Ro`N^$2-~dJA@HiV4DD&5q>;_1 zo3(IsF%{HKjBaq>JzN1i>K(`ScqiP1<+K73mkuQ5di(eJ@+dwFp~a|&5MyeIt4mpY z{G}{TGlCPi+Azpqrh-ah$K9NTx?_30&iBwmQrJc4&(UN#K~6`2 zQ*QgocgT8sExR+SRe!y}#-W7YFP}brZ&i=W?;BW4p8F82!sn}ZYM3`^rqG$_ zh$Z+A;+p%@PG+3o&97HpjTkamnzfk43o)V4ryLwJiTQ%6J!mSou*e$NWR*km21|R( z*cfoecDt#?!rYrqY>L=Al#`Ug%SV%Ehaenb?n)7Xfx+Zo{T=R>dEpJtgp_BcU&3oA z*xfb^p}87rFOpp7zpPfS#Jj`w8mhhLmVC$UE-Tvb?#D6vO#SK3u293Xj~ZvC zg(RtbBsZ_tw})BE2FcChmjvO*T{y20s8NYY-jILS`mAQr^{ib@8tq{d?)eOvLE3U& zjF%j%jPoOX`5#_hsbkUB+^_*leuA8n@V_ZYaolV%R8t5EPS;cs1lcr&OuzmWC0zbT zln4Su2|L<_ZNiFwm5Bd1U!U6FJc*9S#TqWvs@Rai>D3C6k=0Py5F*t`Hak43?l@L{F?t%lHNiAmP9s^nO86k>^ho>*ndN z%puY?@e3@AsjpodUX*n&DL0(FH#i!770?0|z%VN8QbJRkos^kNzA7c?SE;YHqfYoy0m z#xpH#siFZ??JAP${lo114tzwQFY!@%{LF;`rZJ+GctB zuZmGOt;sqhSM_r>Dbj&{ZiCy0oa9T|+xZ&21r1ft$ukN7jZ(LZR!^W=+soO?9Dgmr zpGQrjE&RQRxT5to_>9J1MR>m$l9k(;LNe3oBS*?{LH(6=Ee}Vs4YVb;H8J4QKGDfK zOJe&`NB{lYRGyMme<=GeY@7qsvsJaL2b&(##h13Dhz?1j#^9D?lFc}O>UMsh1Ttq&jPMl*P8TN{1(=zHUzm+o$Km5aI^tA>yLyVjx+-Og(?Tb$yd))WV3I}NAP z_Mp;O&vD!J=AqRYM`{%>oYGe~-Q?ImDo2c*lm4y_B-Z65R;{f=&rW8AIu}hs zuKnfez^rOsR0VgLNhNEaSCaQu8FD=EDlIAbg|dvUJp)u=E`-FDL{w0Bb&_B!qt zsBgB-)AJJsd|SzNu#gMP<1!lYhn%K6k+~0#Dz9rV9J*ylJE|~X zuzr`61e~=$eym*xzvp6yQlElt`lCp{P2yi220cF7qqG;g#qAlLkXa0Tn@GsSlaMR5 z6H{tsWokEvy5n{vteS;BK$SMLN3{Ew2w zwLs0#5ef{F0kPA%nbyp>0TO#d7VZ>J>kM8BRP6F9HxK_D2FMZZy z2~Ro1@gKXC(+n0x+X#bu(2fl zV3d2C|KJe08Vm9?ui8sDxWO2wHeSZsu$@8D)bEv=i@e%WC3TKP%u>5|q_stLwS2~Q z24i}~h#lEIM|gK-n5uN%!T2;K&ZEOR61eas*3`n5NPKrvfvw|cpz~VymJEp=fhk^* zK-y-YrL1Emf*wj7ugK)T4;;Sh1-q~bq58_blNxVpQ@5{)*L{0Huqh2cLCSoqgx8T{ zg0(>wUOt2kCuBwsZA&|?J0%k91HRHcx ze@y8C1WEM*Dw_zt92B7WsajWRIieO2Aw_b1D^RoPjDGdzha9<3FFWO3z_JK>ug}_8Z_Ww7rKKhLYdoBW z3?Xvd4P-4cT4W+TH5=~FIPRgv5#5)Hre0q;1X~7)T41gzuy5w(19 zOncNv2A-XGTEZvyX@UI%*$2xz%W*oYWD6c{n4=9AjjmTt};Qc*cS#iLMi|(uZD;2VY&#+^Z^BISj+RNy0ukoK}=e2kTe|=pHPczr;%7#OF&$M zxm{W;?kT8Y2>jeLl+-RQv0t|+uf|4 zRl5CUFtTc(ZonzAApiBXJ+~8aAYPX5e0BQyp!%1(a4jrU1T8GNkKXc@`mv`eeNHsG z^H4fktf^<)7D;WVO2x5rXHxM^}?Eq>{c`mH7?^@p~$1UGUz)ta5o`5@jQh5vZ|1G?mDo;Bt0 z23ggEHID<%@0n6?FHetxgvivhCV8qamLFa9I5VG(A6Mj}L34GMYfG`ac`T7#p8e#F z&N(Mjiz1L--XvQSf6mfIP)WVIj5efQC~0$e37eL#o~pkkuc@;yahIIP@P_r|2-_IO z+8NJP4%+_S$(9=NmoE@Lzw?^rqAI-gGub>5Vach`-+8!5D5MZd+}L0h*J*j8lA8;X z75{FLk?Anp@*Z~rraCnOK30X;{54aBsX5#<%5oodXrt;7wix<=giFBY?!1G$1HNZu2Qt3o%rewhkxR>tmpij z_+>aLm(J(#lCe*akMxL$rwgDN;8Z3j(+XGw+MzmD=(Ldzk;GVB5p$^;YDe9!l{l{w z+2`%x3Z^VpnoMyN87sbbvI03(d@DTr+tHVs$v{04N1CV1)@jcLZ6?Cq`4yK<&`|Fh!m=b5IAfZA{74WEL~^UQ+I!DYKv7NDB{0fMm}i?ElcL zzc^I=11uz1|KK4hF^fK7m_Mm}@;qx7>td|z0F26qHDnv82RaUHa%y&? zIY8rkf0EkoyGZNuK=o{xQ zT=ba?4Eect3N?gu*r(m6pBC{*9!53$kJ|unuL+NXD3td9ysziJ7Q4;?emn{?otUSD zlt4|7w=~0X8<#2zsN%$A=>k}T9-h#W5o*>x%UYY-(R%I7q5-I=n$*Fs`PAHzezPwD zj7UcFy2}a@dX%67;-OB>FIn_z*~AFNx7|$$;AQX~ygyIzMART7h0>^fBbvoAB*M=!3MyKGBfF0 z`sr)rKsMsvlmGo2X}vyZ5SbZBejux3CnPks;>&kFi1%9E%qM1hu@?J5aL3{1<9G+% zr-SY6#_*Siy{WYX`z?T)m=0$KWWczH7~D{_2%Q&%RVj)0U6F<+%J))@vBg90Ys6mz zoM!i}hWFP=&9In4;2or93f6++4R*E#MSl)`fe~ceF@oBfWz(H7{5S=4YDJA}P&-q` zh*V=0p9t~5gwBcEz2kxB6^w@im0cW{ol#{8F;< zVjKKmf_O9c05ZGi{(?6W2pYuu+qpVE;8Xf3^GcfyvfEuhZ_hU`Fs{e{-Y!{usmZ_< z>-LU5rF_zHpEi-Iyu(itPj-ejCi;G`nQqZ&i*aCpPjw}VvMckPV;r00XWJR!aY3Gi zSfLS)l}s=JRWIci<(HEyk(_Vr*05J`6r6tGy#xKQ2xIF24FWjJny*-cG{jD^_3D39 zl7x;HTMsUpHfipT$_{_CX?|-klto`7Kb`cy)bUEGcdnjed~cT_PvqnlWI=A#IC=OA zTad`}yRboLHWGX2hW8-ryyQd1Xq6*F5LY!KUXk)S{k?ZEU*5|*X7RW+qb|Y4GsH7P zT1{ux6=hp?v`(>?QLQRNyzqH9Fi^Ob_+G`{yFmzUr@=|0xyo#Ho;->A8~!6T2FLpV zy%bsFSWJ#6pHzEsJR~;5kAf;g0mC0N0_jKxhH{Bf>8*-%=uXQ$C>JIu4#~3E5ik?5 z{(!V=ltEhfL&AYkM=%GImK=drydB@qd=QN_h?rc<;^?PU0|s;wjc6`!Xee|6_GpZRJ=L81C0bs8;v@Pp9v?VjzDxX zN;xeGvQ{F;`-(gEr+4pGzp46Oy3^dBzYruX_qdAn|8q5d-Zvy^(2%+WvoKLjFoO8( zUYHvA7$ldGmOHnejS@rJD$TE2P%*V1{nK)D+`le<3aU9nGPT^5q;77mq4)};X9Py!ELU3NlzR{ z>62hXe(OpH!O@i^v%2&pgZ~9Ua%t(Kj%B|7y=6lk^eunXhRk~Jg$)@P$f4ih6G&%| zIgj3TiUaywBV$~JocHH((`T@)INze2E+*jAm7RM!q-Q==k`o}$--%lh=QVOc9z$qAK*cMaye|Xs_$~8j7}qxlmK&gUF*F6{ zdY>Q2^gA{4*v&R$dO7a792jwL3sC5d?~l+;h}t1rj3Bj~Erx_mW2sC#{R#suubznM zT`g>XyP{SI%IO?&CP)eGxT2jRs$f_kWp#?!UfK8ro_OtLH(Ah4=)&ss!Sf_ox1 z&DXN_-obmx)Wh6*=1QS)`I-ik!J7!e*KeYq%YRy@)TC2s!B8(;$!&U7zpKHraJUuJtD3jqy=VecE*J8^ z40yUL_%EW8E7Vv>I(?()5ziO+{sCz8(;wx$4TEc4XwyS5`d$oExYh9r*C7MYG=GSW zK`)}A&e^Qm7jqR7!pNQ!SA4rB$Pz~HH+?`KB7ihZu*7A{S-!4)>E8YmIof)Dlacqj#AR2!E>~V5NZ_WR=#QddJnY=1of%^`9dE z2&VwHCEGPAd;}6&V)~#Z@%Fb+LTN)nX>rUYlqW90nt0dPs}5lL>|i+<_4XixDb?Ce z6)g%rAcivCc(74j%S$94;j}ExPwsX&k$;h0SHaTUIGDKg(GHbg{Kk&VZKMF$J23Xn zU>iOjaTTUsi=`hXiaEWh73SrZyT2ybR1@Llf)a7Vdzx;v?ptQb?dzaE$)=9wV6RFe zIMxrsO=g)GoaFe^B?HQ0)X1Vcn*S9_W?bq?^4+@v}UHwK@!Ahc_&8Zlhx zf&=EdT&&1xs9)dA0urC;VCR<^%mF)CzNg?$kA6}M$CPVge$kB1GE%BOM#tm9(bT7t z6uMXZtLOY*8HA=3$=Rl6^;6;*tJi#!fA7w@Nl-VlFjlj57`Jf9jW=}|0P((urZ`s` z;kSd@h4>un6iTSFa|MYwuL@tPX_2~7u}zh~_!u*pIfYh8Q@E zik*^~NoT`3R>|qR4l|mj2H2GLnyA1zA9&vsFks(TL{wiPJd&dsYnp_ zjG~5_Jv)+D&@-Ophh|Q=(fMpbS+HDV$!$FdC)NB6d+V*=k#CZBfmE_x1N34s<*Wz- zS>|PWg?@s~Hrx4v#^1ilU7^nhFagtw>Ll`xn#+(K3|~AA_`yB{h61wELR-3zBqaqjX1S zEq9Fu)*Fj^4G%@c3>Y3LrqQ%iMs794G=*=V&^euFbe0%$p=LCck?)q&G|*F=A^*+qh;!tsY6Aa`k!q!->u#4vAwQ;%R7*|6 zx1Lf{mzRQC$^>z4uFflRSIFccYjW4hk_7N8;u(-=Ey>eRp3aOWFj5I${j7|J}s)jmhrKF550| zH^Jtho7e(0q_00{M`?m?x+!m7-sB8%i7wAbG=hBy_6I)1m(_=H%AEO>{Zv1~6S5`bBc5AdmS$M)MzxM&H=S`T!s32$|J72=?AJQfCw)ylXTz9&lf0O)Rs=+{XAN~Ivg35mpun@3s8I=1)AEi6zl*FKD0`{$3_1AcQuC%%jgNLtLaer}gB(YE zK_u8b-?lErClKShsHWV&S1?0hR7|(5t=wdiT3hL+fiF1&b`1O{B^l6xv@s*IzdGf$w|GX z2aZIl)%(vYNdg~-0`iL}qSbkX*Fi7;Ioo%L|>v`(~aH&D8MS^OEbRYPhw z`3sM>J~#AgLD$+^m|>vmCt2<0`^ldisC*Hs-)d`1V^GYS&LByQbpxpf0%DWV`_Iuv zKJCX3XN{Qq^t|Lm>sSzGkNWx3fWo7t{|DH?C!1u7j*f)DFVGb>&}PE8)+ha~wW(h> z-G{s&%u15ad0sSyi<|Q$R%XxiNABmmq@=~=5$rc#Hx7#@j9lR+Ji%mSKi<0{d+je? z%%){D6=grt`qi|ZrJUI_+OJ#3ZZh*Z`8`kB>Rq|+St5(!=5%@q`~!WZG#p#qkRj`E z2HskK$Y0}X;(gnnRLg~D+{tWRzjn1BC1Pbt)o~#Bv-6^h5xY7zB$DCU-?P=pS=Mcv zuHz+##yRUYcSD&VMz!Pjv}ARubywp8oZLl4E%#!JpOx-+#O~!+OL|CFGu#{GzBESu zG(ab)gshU+Hk9^6No{%|UK@1=bXGcfrz-g0NB2W6j!leC`GjOg3l=+5Gw~4+RDCyS z)kZpm;p4(=tEtdG`8U(sqX_sasY9mL3f;B_{YWC*HyM2@Mxtfwn8kAlo{F3A@$TX1 zB;xmhcVjYfsi>70d=wk}((oh4MA z8}DIJPdi|$oRAFbPpL*_vv#$sQEd-bE16ekgsLmnz8AnrWwU;|E9bD((^kRM`NgTD z)mYDh=LvB5GJF*dpE$dQzPgTUD2G3?D^1=V9Rjoa6$rlS-<XwfuIN;xy~Y(SN|=rt4^)MI>d zhY_$Nom3DHh*>D5kn7m2$TsW9}{`q~ZuQ4`2#tfb!0 zkgt}NHZ#IB=&22I@SaCO3Z-w)fWx1FFjwkY6M<8atCdKl!Ie5!Er*9rSXjrEYySWI zvgMHSUp>R~fAowHK+k9_+A|=8EBqs4#QrO0z@cz>qU3LwLw!ry_Vyp0BTwTc6=?2ZnH3Qb!Ax`-cjp{?4MN(9qy~@ zVZ<6xsyW>X40`#eGql7J%Cg$Oj-d#BBPL@KJD3o4Z>OEWXDH}&p}YX5d}3iZB4Te+`!6;i zXyca*d6OlA{o9^<+Pjv8MQT5wfA#Q7ti;cC#B^4wktg(w<}s^pncGcy)rrsg#n72g ztLNdh>!{NdU)gM%5 zdbLD0q_m*l_(1IScQzJDgEvsS3OFG-pFEInpPZ1(Qu*f`(}nVgex-jdO!z)2ST=Cx zYbLswzW#jIocnG0vup9@w#9ch%ZkRNI36oxcfO{QT!e;yn3S=)8*~Dw_5%v-YxH?m zFG}#s4u@V+I>?&~an=7Fc;O{I-k~4VB6edtYEN&CHUZ?bgl$+uhBh2>+%U|J#c_(7iMmM#xJO?w2b0TlIa%MY>8P6 z9^*1=&Oa^>3(!!ZBC%Zorl1uqa`i*D4{YyJS~kfx@3J|bee3$bhtI+Cz~6e{La&!K$b&nMm;v?qs zYGnI!2H~KPjs5YTi6c=1?~Yo0y33R1p{ALbZF3*Y>$zLI5XFUW^gjgX09o|G!t+ET z*h#$S)Z*@Xz2K*{I|}0#FZe4PlQpskolF-T(z2H7DvS;~H_!V)XT+;%@?-@;lYyIW z^4c?&uyl$IN3XY_)sB=9H>8Uc)q}#*bdjw2spqHPq%Vy%)SGT1O!%-V)`J>(qGq8a zu})z~Ui++zHXZsOO`So5;h9y;fx|BITZ1YtDwVwZ$)3NhSp5jFdoizGCG7|vu96vM z73vM_?$ZW-|ZHTvchKFmrgdrdFJl@PYLP3AyIE%SZ!`5 zu0L*c_Nvn}o6E@(AcP7Z2VmvSbK2oerBt|$S+kIPWQG?);{Bo;@kTEZX`*`|AYnUQW(smrT3&*B_m{ zIWO7VgDJN4I^6@Ofv0dh4)zIZT!Gby^)&^PJ2jJ9j@}hQJ(tI;5>f;e;mN$Z;fEuusYAert&l z^M*%Rg#nlQm%LpcdApurA@GHf+p1A_m64Qqw$mSc@VMKo*xYC^o3j{!e89^)&snGR zd5NClKy55626P5R^hIn&?sJKNEM``XnqBBA?@aO5%3Iy(Wu;UVi0Pj$#Q&A7PyoqF z%9xMYdJU*u1sMazzO&+G*q$H0aHmu6Ngu`a8_r`!->s)=l{23SXCRrh5^nAe=vKd2 zg>IotR}+cCPr8+ZJWXo8k3&N7H>XzPA&S+mGDjFl1ner1UtGhn;*_b2O8i~|Bz$t~ zOY1QHKu)U$V2V|vPw!eCp03NI`C^&4KEN=QVde=*JxHU&m!QvU{WPa(upN`y8}Ofl+ON3#^VK?w z9|2TY!O0soPUl&~z?VSZnQ{oPCaOE4jGAHqDK^l0_SAruf)3EZP^M`dZ?S>URKQak z8fw6?vh+(ZGmM?$H%VkhiO-*9sZLC_7sfz-Ox84!66 zP7bdh`IKyH`oqX(ah}~yh7b{geO(g!**bs8%uy&}&^^#NUDW85rh)P?lPK>IQGfJg zf&A>pG}Ck2Vyq83i7lTra$pEy4LV+&v3*&Sgk z_8_PMERA}^yRo>$x-EQ8;}@BsCrtbUqiT?g(mCNbujO=Rt*GsH8oy__w6T@m{Dzlpe1jeXoniU%P20T<3_Jg}JHE8;`12ZB%%WD_{^B!7;3@-Uyba z?wG}&w3p+Pl=WV6r*YKx_?oMmlE-Rom$ff3B!EVpW#45S;+DQq4R{qdIn0MJwt9TD zD9~=YLX&Dp(K7qRP4N!iCH0QE zluj;2S?htho7Sg9q1w$gs95&_#K#&NWXC5v7s{7}hSBp#m_+G${j#pvLWHDDy5lQF z;(OYiRh+KqmijM;-rS|~jE!>pOsf^sbXn3pB$0QiA1~J9L+r$_MZY|ECgfFl%)!OC z<({%<4tqHCmc)FAC#)UA_{`NvVo%O>Pg0H&J8yc37331@5ZzKxl_ibalpkrqsozmr za(8`H0Ua9M5kK_UU1KKASKN~0Abz+@D)Y4XqIdZ**Nh41wj&HYU3{_MW`*1Sb^UjyaZgs%Jy*VbYuz}7Guf?E`n&=7`{SIsusk)kBlFjL@r^Zb)k_W zFS`uq5U``z@A}IQ&BW*~sslUwBNwU?s}dV4T*4Yd|A-t=yhBL>nQ;qYAoa&@%q0bl zz}&=ls$3(M4<^A8Z)o5AGFL>9@v~50eosp~0Q6z|u8gpk+Kh!TzLk}siHISp-_2I@ zW*2WAOa!)7TKDlo7|5r&BlPmbGX_N2WM%Nj=a(mHR4rd(R4FTabHJF~z3*zSK0g`Z z<^f0iYz0TGJ*cbhZypS+L<4dE+k+uP`;4Vzzd(i{MuwODl*oXXf##=LvJ>~;g~T~k zY6DU6L`tnMZ{<;noY`E|)K_xavo)BLz7V-S}y zrBFTns|yVf*I2csO4|-CS#5&4#7%yS5!ZyI$;+4eT9zUxQyOji45`+QVMa(8L zs^l5;Tc^s0uZ!2F$dvSgaW*uHIm(O(HsciNF_g$2mw{8Kl9+jzgO+95w4R^qK5$j% z3_ET1)f3$n8hu?po&Q{?&o~+`nmlM(wL~~bOMJ)(4B#}vjw>Ht0M9i?!V*tbAXaI; z1vDPI@kPz$Mk~vbXZh?SLcig0xdSHm+#1DG+Z({R3tI*EOkUx}Ol;p7`_~vYFJ9_! z!t*cTiIsg<(6+~Yo~x@~GTW^1%jZjtU6Dvm)F$oPS+{}xKcACYmEdQUJ&vnIYm=3Lh?{U(@8aMFYyl! zr3N%>I;o@QJT1qZ4m4)M9_8~0pr3}7C7@!_uTpPmyr(F;k;7i|e~^-lL;x1~YhWaZ zw@a^8v63@3{})z$1MElrAFNvQIG~xD+Nn>>`Pz$4&~9f{(9fFIAr(GSz1)0ueJBPg# zpnl+=0-r$_@&BSd#c6J+cYL(2b1+z^Hg2tb0}4+wIa0jD$US}Z=XdE?JK+Ep&Zk~> zapVS|Q=b9*QRAyWMyz{OBYA^-Re18;=dd!_PYc6yI>LYUfHKMx*8S`Ik6YC_F<_l# zoxi0JJ|Li?3b+QBJn5MTC^^+7&}~zcKM0A$Bnp=E(?Ovq&%b>`RjE|N$44N{0Jfo? zsGhn&J?T?F574KKuZSv|%Q+$OaiA2Ztc53iUT*QA^Y({6Db$CpOCb*{xQQsmu80$6 zoak(=8W9(6`TU>&+}w<7C^Jwu*pAT{EnCbb*+Nplqkcow&?{Y29W`c^}y+L&Jhbn7qk7me{ zU&YlOb$CT{d5PE|F^^O)+V@_bT)E*^Fgfx8iN9j}Qz%Od=Wo??EhT8#qwh&h+H0!p zi4e)STB>YyH<#N_^8d;kKK~$ddP()z|l7oMeM+ z4NcUz8ptu@`?#eMkc*-LeQ;RU$PPiV1ETza1B<0j!m8y>gT>uEJw~BPh23W2-A*`s zzT=l0Z2f&-mJ{0|gE-E1MMZc;(tFJY>r+ZPZx1FyWqZjByxDQdL2M+cc6I9B!XoEN z48A`_H}1ZNi=b@(08fr#Pn>_PWeI6T&WT(?$^_$@&b%$bMIvW24s9j*Ht?FW{@M9a zm!s!3k1Fil#QCrZuW~ko!g~JFXL<~P+I_&&F~Cj{$3r9nGW!DBwsk&df<}h!2u-C# zLF}@u6^vCAWY(#%Rk>;p-Hdk@*R}My z4q;Cv8U>b0QmR^9s#=;6*QA5d4!F=gi#a*gM#Smp6<>85=7&-3DSg1jpPMDa>uz5W z5%Xwo5?oW~b8;&b>W&}-e^1vMsXNzt*Ai>owKoWttc)Nt>j|Bg6f2Q3o+LiA5bnIx z%@yUkopB4_?3t%{@0RW?Y2NukUwP{6%R$ECW<^Q4zc)?zW%F|^||O}K0%NA4@g`g+!-IJyw%I11sI&mlw_7J?UwN1gAu-_-s( zperLktmG%Zm?OjleXwU^?vsjuF&@&)b;s!qXniFFnR`R@>RjmQV!QG7m?@q*P|t-y zw?s{(O5~nSWCW%^yCy#4?lsby4+vZN)J`4EC)Yl7uP#*_(j~yao==9iAFWupvZ_B_ z%t%(NZZb{a{@EUPxP!H+5iVqM2oSUa{%L&K+5HIAzF@z(2AqTS>-pBxd)NOhe1QX{ zFE^0Rf6AXXTZMOSAo&BJ<_I}e;A&govFl(hut6aHRQ_`4s|vl&c)HT2W@3+c0pnKe zH6#s^k;&n9%1j~=O`nmqnbnd$`t8l-r^T(w+6&2gpuZ9@03reWWDdcvC13ag-XbV* z3T1&Cm=Q>%ec;id&FdBKq^gF4Td()V;WDZ*&{9m?2o z>%Vg>vmfAO&L$GVTtp{ju0XGQ3i*;I3PZ0hWGrrnK;npXNHgc=zBqr~e=%{{a=hn@ z5bKNd7ewLMoQXGRlGI4zaRa%V#>LKMPIT0AeEZtAHqytO*&-Wdc`WQ|MfopqfpAhR zQrY}qx>kwmK#cshB*-?*P9)U!<51~4Y}j?O^S@+a zG8*Cj*c6=D(9$OH*7`Hq$QG0^n@@-X6IAY1=T2d3Mu1`QW2itEnc>q^aVqm_w zlWY2BGlh=H9uT#KxJ#C;-oTVCUO7W}(CjC{V@Bl9Eyg*!&ye>l5iLEhsY#Zk-R(KS z4+$g1e0i|#(-j*U0j7iO$c??FoC{ZU1L!h=P)x*eX7vJpCwR-*HvvJ-!ph{C76JtL z0Inl$q%tWCgqb1Zp@-9*Xu@V-!8axM&&gTWdCW#Y7F(hAhlb~5!?(V3+3tB2_e?h% zqURCIySHrvyl)PmLvMd}uMI|v5AcHNRiLXf?(V$yZfo+?1Uoz0-Q%f5^Ux6~_{Xw! zB^FmC=v@Sgpif5Hp;-7wDSMO`(pyUa;Wi?;8mfpSauXYj8vwDX5W+a%xdH>7*_%9T)C94Z|zSxIS!jy;cs`Q9D+0 z|728Qw$ZSD*lrt_w<+D@NkC+nL>QdEJk?8gOcwiIK<$TX71Tno@y`R=bw>2`Mk#16Oz!savQQIo=>JS>~~k_WRT`W=}UN62yG=a6Qg zAqaa!Rs!4iyl|K4Y1Cuoj!G3QM||;0NE-i=Plq|7<-@e`azt-@c!>0rEcyG|eEqQ( znP#37i29D!AE(Pju~+#c6feE3Z#0k{ruS#^!CVPrP)hYor-9a`Z^AJ3nJ?n;9 z*~h?^pG;`tIn2Mg;#xN*4eeAP$AZ88A+UGyfB)Qx1d6nPE)@aUl6kjk-2J)b3dSa( zMOH)psI%wITq1u34)`7UVkV)BUKwT{FL(Kk7+;%dw!Rq`77{{-6F8egq}uIZpY!$) z4U*H$|D)?IgWHI|T#ozq!Be>o2=9RQ**UNeZJgR7=t@a4d-cTvQj~ zuc%^#;1Q%ju;2n^tqEl2a=frqXAgR)!r(JpQW>gmM%TepTMl-t+(!~uhBYENMC_hrOU-7BNR&i0$CR8Bv+0(g%Zbj3pXJO_#s!b zEHaI?UUR3l4p0rh*Y;&&~IKFY*0_)^jTta~`9 z40;|bkGw{wfZqR^em@CY&~;q$I}h#PzQJz=;N6DrPjOjGRvf;1Z;`v3zNE`B6Tc1Z zfLwW1K3gjpAlwsgGxruvupp5E=j~BtmNSUjNj;X|Z(#?{)aPpG1@lVeT{ZEtE zzknX+9nWu|h0H%!9mql8n-j3V1B!{RA!qO3zxhrg%b)X0>}e|U0EKJYvzz}(UlF8a z-VW*B4tgHuTIBI?e{0BR7>>E-;ZGQvL!l|05d^*O+r$&GeH}=~RP%-p5C+c!$W*vH z1Uq0s!U=#7R3k zQ^mReLrz0x&d(L5m3?i4KHYf&yEoz_)kun;)O`w_S&|eGT*UqIu;Yr@QCg>Kp`|mr zJhbEi2FoJMX%`&S$g;R>4`N6MYxUdkv`y_e2A>Uy^(-6akqI*B`l9UoI7EB5yxYNg zFxwt8gYp6ul{S!@;K`q8ZRn_lbe-Yal?1Z1J@(P1%q1{NQFi{kzLd8_uF%^TD;Q+ZqgS~H8GShtr73YZ?-1ENjk zqPEegJx9=51xE9U84maqQ!&U=I*r5RuOQ=~3T;L{n{ly$S|(3KP-TGRW!65b4y#aF zm_*OX5_yHlx2xrzoP6N>c-2BP69Z&@lE93M?UC5s;^dE3=2;f9F~m08%-GMJygQA~ zm)eIp^HS{#;&^K;f2VZLddN`P8YT3ZWn4cyMIA|Lhj(wk|4yh|8O1S3=Qp&qgpy1T z=H9h*o=$jqvZY$x<*7ZFvH?QgQzLl0ee_e*x)(XS^+u7;kM~SBBkz$j@nySL28unF zPWS)netsc_V%EPJY&q7dT>Gt!- zgXW>rLBAkgW+jDWuModL(d+2cZ^)Ni&(}w>UM*seAo9=qr2K(O!KDxW+|mo4eVOlK zhxDzqJ7*T|QWkE8S{tjYV`5>x%OCY06;q+|q$wn7La-;;eb~SGn#s6o(D)%9g`Qxt zrc3#|QA~QoG}ie^Uc2)*zsTR^VhOA?^5-&g`v=8c7*cJpVfR{`D2e-N3*n?wlQ#= zBi~sYa;Tqsmt30LDf(43{kOVfjjP-jXs|K-V=c@wbh70>xa78a8boshXjvb*QJjFZ& z@#^3KhoE#8!TW4eJ9R&Z4GS%T4xW znp8p6@qa8iHi1i~f04^YM>&@6lPHCV9*`gm5WvadIYR7z$U&Thy~Lob<$pFbU&zOf zKc_jKhlx3!`CHtAF>KqY(>(lOBYlTt82Saj{d%u_mYrceK?bycmGmnRP5-{3ye?%N zkO!d4Uc#$3QUsJk0c3_aE|&kJTL6Ul;X!Hz0MJGW01$!Zzp|VXIBhjmb-&A+>uaj3 zO6rtA{N?|S&C$?{MXq-8$5OvC*Xpv?WQ2_>dpGe5g?GhMU8M#XCRQE^He|3pR--2r z*{|5nV(^!JYa+$iS z1pn{QM7S=vKg3zAAr?$C6qXltro4SPW}wDVCGX6xRBddX07>6Br{xnq{tD9&U4e4iziLl?%k%meExH}ld7SIEEouv%Za z_)_^JeRFX~<+$A+-@U0Fk=R7Yyi_c#?g>boScmiwJ}Lu-;ABtlKMtF-6k{D z^oGMKvvNt7z~G29x(E`L?sbjl=I08oGrnu70gDyJ_i&>G4#t+5`ax@t_$*)6=n)>) z!pW)v=sA6i=s9t*q4xIZroqhp68%KLx#HN_(nYlxq_glB$`q8iGNNs4P-CeP_d8x7 zBy(UeHP~ib@`v)WPVL?6)9Q*_qlw*yj6dBOlje)B&$&(eDjVOAbn_UB))0X(REV3K z*>OYHysvOPNLtU*2e_0hTr_KMHu4{&ky%lr&{e@~qc2?Wx&tiiUq%&w8`E8e-M>{v zY*fl%PZ;eSk|@Wlf89EFq5_bT$z476Bq4PLa@AvKux=Px$r7w_5F}$zy5KWU8gjjCUlz1QcWzGR#*E-Nh@q5MuKq*9dLX5;$E<`R=c+?gJ5RUDyQ04N=uME zSRz2qu+#C@654#15(sXSb9kP5)*`pQ-W31{NZ?lJ%=(3!n%C0^0gMNNZKmHl!b|77 zzpP?YtgQdy5tq20lKSLKrK%z#)bw@ANJ<*pgpq#3hM#}5Z0B0C zs|VRs#CXY_Ov4kI(<{tr*NcmxR2q3j?JtR>zr+SxHmdK0IY^QBv3`MCjUAQ=G#sqK z$k?cF_)zJzKq?HwO%M${NrlyYa@hKiRlpJ6p49@2sPjxxz(&PH#Z&|+Nl_x_q`OWs zGUIy^cZ<%?BV$Ql^LtV5| z*_5v5qRTsuY*_6wiHxP$313JU&6WNwH32}j37m3WFC}$FmX3%q0Z+pt?t;dQt7Q)Z zRqSnK#6pF(BEo{%J8q?b-v4#VRmDBt{xi_7lZ4 zfO$b-R!QpSL=j#nS3JFSv0pRe=ht#{uvRUcfz-!#ZFU^!F>Hc;_a$gM@_fi)tmtY-PWHB ziw)Cw@;9D*LCx({i>`o#J^cAd3QbG> z{pI(A+r8-NOnmwOec*Um+xad8l{5UBj1sUQl4z5VYbxHvL&Uudh9);{Lp?%-I-{D& zsVsez0GpVebo`@;Zm0Xei6MnLNb0}>S=q7k+PRp3z#TbI*EagZ~Dm zqmlXw*khV#@_Sq$AWE>hP=$ejV7V;V0SdrcjRhdsj)9PyDgb1m6Shd8;zOkwYJ(AH z$l=gBP}L$3y^6KLHZ>bta_Z#)lYz`GXBa2s%bQWLRmL%Qp^OC~>+U_yO9r~PTfJOC zts>7q6ixkeB%n^Mdk8$kL223ZOOcuYsY z!w5T|a0v(Crp_HbcP?x}|7%Qj4li^KGj>}hL(koGpBY$0- zjK?RnI)M9(K-*g3(%30;TV7+)di(liGHh|{qew4COqmAf{&cFNf#%m-{z z*1!HqvTwF;`4JO4qIySZM6XT}e2r>6Y!1Ud3=~N$5~Y&%%a{wCC|WrTNjCZu7r`@W zl%YjVbpRiZ{0DA4IR#spu&#ti4*#9__c1q&rT+mnc&$*NJA1|gVrry$Zh+w`sB@sQ zGl0snfI+{G^$5VYO*4*fD9Fla3z+5vxJZJ5%OTc+abuss z-710F>c-Nby`7<)PIKhaCv-xkeGQ?rwzl^2T&3c*4$K2nje`k+e{;R-5Bku?IP=+` zS_9?HEf=na3f5&BsMjL;JRIY30pdSD|JGgh76JbN%E)%E2x;Sh1%|>H0T8PIq@0m= z|5!g{Flu69zl2Ce-?9A)~iP2v9_)jvP~ zQOiCZ|7|`$s{$wiGC{Qy8}sJ*M18siA{z@Uy#aC)^8mi;8mA~&#@K%Z5sq(~SU?du zI1!G2+a56tel?(oJVcLp&pI?%kG!xZwe3d&;gJEoGbdSgtz2XZbRvOWL|YKyy1lg$ zZW~!&SdRDYoE=SaN+gf^fE;Xx4K(s>k>jYdoN$OUGMgj8*mp-~3>bep%v-nVd_JPD zlKq?HWlfRlKA4kN#i}1!-IVA$ z%HMV|>`WpMF3`nm&1JzG``pm|q!G`+RMQ<|Q)e@0)@J4jrYdk;&HfXeY{~>){f8F^ z6`c3n#Yc{7czKuaTKLURg@of)i#z(=6feI@g9wR^T6KabXEz$b?2ib371G9-f6fCh2;7rpWR!fl0!-Elo@<7RMH-3!#HgmcnOt7ty&pMMYeWLh*= z=azc1EhZFsN3~YRBw>2nze@a`{CQwzbDF=kv;|Z~4n|qg8ad;(9j_Yq{F(WolY$K6 zcy(5Fz*}FNUcu`yE*+-cr(c~t9 zj@NWtNDlGC$elEnwY~8)v%xy%YwknDK=RngJs)rKnEs1N@P~9XEx&-8itu#@K3Mv6 z2S+RN^#SZ7Gq?aqlI@nQ+ou=82j#fe$BcT4&&?5#fE(6Q7ctQHI?+Dx9#UM0inozF zsw-kr9|n^f1~HjD-=X0eV%cF37t-BexBbpJ1v`r#Zs;g$^(8p(W2jcX+0CITtsGKV?aASlOd5^k%Vd`W0tb)#^8#=)|r ziHd6cIb7ziHWJM83>kXEnsl|g5fv#88&`cIJ-MvYvP>uBg?PF&LwcK7=|MBLMzBOV zqun(w3_}kzkVZjP`<*-e7q7JP^Tw|NS!i_ykwfmURJ!fXo9;?0e3Mi5^+^Sp;!1`| zlLD*1-eD!(8`?J>-Bj8hqO>U7mo4RQ+gG9}ezY1i{Uo5%Xn>?D29s6!A;V>3gE`c4 zC6%8~t6*XKqq=J>+0QCDTN2SUJuRX3FrLTRyxCN?->n3P0@^sClPu6`^5AR*OFz8% zyW5$!2~1ci$pr_e1RoOQIGS4hgN( zf)OVrd1P|09P2De^NHKMTvQ%MT&aXKtCx>?dR_i9Fl!6P|Ct7(Gkj_PO+k-f8DE%L zbGl3B3DV=BWrkp$u_WM)1ZvOgeH1kaKDHJChM+Fr_gkudWiqD&(qxYB6Pv!I58H8P zSF2z2*qmTE!;q()nKPZ!)P_ z&HK+rf{rl!X611lPjKcpL0NxEs=L%qcOS=()+u5GJst}Qf2WHN4Ll*_D|R2As>LWf z2hmAL(jyAb;d{3agm$*9I{GVF_LQ_9fjnD-!H-C-@&1cs|4FX4Ok13U60x-3sRuDf zI1S}GCYQ!)gsezy&>W|mx2I9*CT^eHOST~E$YoYL&eqpH4AQiHm&a}WSxVv2bBcxd zp>e4gM0G1t*aR})#KEXaHC6BtZ`TXcJ~x|@29XN_b(;z<%0FlVA6lf$)t%*O*2MHc zk@7$TtN@V2al;tDEltS-UK0)9X_DAdJ_QnJPkAT1!7ds=^Gj|BvWMdo(e=Wc5W=}< zmnRY^HE>Cw>lFoV7Nt7ReuzfZ_I3v8_chP`;IlWo=&{?#mgC=Z_~y(Np!Uc_OSD4q zf71f}B`qv~|GPu_*3Y6Z*ZzNO|M!FBZtvvQGs_un_hI4vB$2^BMA2_JUjGLn`E6&a zImh!TZPF9eRgK2y7te8gCdcR1_iY!Yzo!d%-~)B@7s!n&$Ub(J^B=$evWy)n08}F7 zqJ^abP>CqQb760TV8{SPOpYF5N?|%WK$$4WNeT(|9}5Z;ss;$Q59Qrnco7w2U`BEA zx4@=Ikm?)Im^H0+uH<-`cdTETmbUjLi<_pWc_#S$P7q&!JUX_K?*1|jER^WZOXosW zAj0IdD2d%J|F)u-Vm8;C#LUZF&m5Q5^;*%YQ{&5{)(zW@3h3UqWZV0g zmg?CyEX3Z|7?$)mq^>Bn15CrQLgVTWJe!WQ#Fsx^+|&~BSN|E2AW=lFP! zmuKC`LMfmyF3eH=@2E)km^)8IpF4-UQU6iChDvXvIRqc_FZUe3vpr-5-krx4bOtwt z=ZY$P_V-mXkwc7fzX4?V(~sV{8{<7>mS@Iad~S)7D;q|WjV9e^Jj*Z8F3v5ZMA;G$ z8HskgYW6ZYV%P_YW`kC)_+3mRlSj2GBM-GWWC;wZy1q2I?W9Jnk)em(>+Hi-)g}IZ z7|#}==S{$a@Rq;azmUIE)ZV^LHskuXi|%hnWOv1OL2N8%Z@I_n8T|Qvc773WAs9b* zbZ~O|i?EG)voG~|sLPG;{8vT&?J0>sl$KUY?&sdg2V>&%=j#qeJDuTgbo!hNQm%9v z^)x}HXNY4MnnX)7ZxKkkAD?el@YgL{zNPH#kpN2K3xDjYQoCL_o9=2Gk$RpP7_MF7Jk6E=E z+eO@mJ~ElLmtUsT+^f^@wKKky09VMM3mn?lN0;R{LcC$!JFA&|)EAdX?6#!zmyUm} zehO(my^j?wy3+FhlryfClV2(qrgyxrBsm3ZLhcEeX4U=7?F_{3Y&b^5v4=!{e}RDt zKkhLBk|2a{=g(fyi%HeP`i6^fE}UNh9m%seTZFIAN6$FB^6X=GB8!|wn~(*+0o|?x z4jG2*(<`EfM8S}%P-tc3KmDci{^1$wCBsy+*Hn+CDrQh2$`Wd}-xnp0w5GO&{xdDU zkvjLX=q%n3?GXN}1`+h-*gX(!ajk8>Asu$BP*nD1J*6AUj)0DAGu!m$UMF`F zHTfLUQQUrYE5(PKcmZ=HPUBJTi{2ttFKoFxB7{BvyKcEVLntq9v@ma6U?$JwtS4^D zU?27fwWcuP8Ffk>ayM4+a&~S!>}K-^TY#q$%(Ey&h~!s~+lP&wXJGFb{ZFBT@fS^9 zGNK`zQFv=%$_>){^LJGnk&VdCPtz$5J$tQ(O<8B~Bx<)r06}LOwkaIvc{o?|b z#f^i)cJw(s~_{z%1apLq_dwKH? zWP7wbxK-~nOZ8keb#Cqma;py#!j2M2B#vnV=hG*#{IT}@QpPYHJB@b9R(I1cO3edH zYUw&gA(C2=7AqJx$+4t(3j=P)FXjTJD%@ZmrgyN<6-~3ac8hxCT>CM~mDQv7xrBea zAo_os)j6&cDJ9#}dkeVtBeM{kIVuQ*5wsr;JQ!LvH5xeU`4v&TrxMoVS-l@nIr@F0 z#9B+2X{($vAYmn3!I&{CpXqamJ(zRzw#YLQ@Gw2&s}_Q@EwY<)YnW`6ifq{B(KSmx z#Dakw%H`K*)>rPC6l|HniHWsiPZ3PxbD0&Q*+Ijs&Cv1;>=#GynUlZ@grB?i+6= zgH6AsK#nt{hPFbuMBaIs52|NAYdLz*j;LbpnjGE%>XZdIW4|}6Kp{mRNk6P_l0?yr z;{?XzAL%y(LLpn{{xeu~ALE4IzY6G5g8W(du^?{^rRbwSDbnwD2mNA+uwLZ*gJ^Ef zVx&!JMlc#uRfF3zbCrYwb#J6|OOEO#l^EU#Epd&G#E7v~DIPq#;{_v!9_+2K(a?-R zNyT-Z+7IJL-nq~Xtt;}U-5Q>&&)MUL{C9`%+P(}Z(F*n+rH%R?jUMf{10k_1StDbq zsuPDkM4^4LzcdG#gD(H3=4Bx{6kUrHC|jxUZM}I zqm*Bt_G8CBSoj^6Ew)g8@^zoQW7$nh*dFCO6Z{$cQOZ5wVX?xyknZ3zepahl`jDLo zPO?hx`M& zs3Sldr7T$1|FLk`LQ3iRRdh)i}oN!~lk)HeX1{IypMtdRfnlt8>?qJBCycG9KmkV&fks{n8idEjodLg3M#cUAxg4(!YUkKVfN> zZm{Ev^?_R3-Lk-;5Deq~>?lEE!1-hf`sQE<*WE;%vT!>b|?b0;kML%*_o`dVDSFCys=|rAQ(H+`{3m>^tgF}Xp~ z!U;($@lOuA$|@KcXM7F7HR*cHH7c;aq&TYYLC@wp65~O>9|{;>u$&v5#1N>5$q#-m zA~v`rsB7m!(j2v02-NpFhf3PakZ$kJ(iufU#@JF2lToRL#nEC78X7LTGoJRWL9BRM224g@<9eSv@3 zDPbai13LWxYi#EW)Ka3oesw`#=B`z^< zm(0RreJo=K3+Nqe@nyVWXHZjsEINglh}atzQXmQ!lCg+Y4(Nl(!vlM`Vnl$MNxBXf zBWjGA9y>0V zGf^JrIN>%`sI?K#p?0?E%@QDTZ|?yw?I6!1=qbpkzArEWEL8;u0=hI&1Ns2`pns5> zaVek%D`=D2i4c(nTItEbaQ^RG3KT^OG|@?~G*S|q%)Z0!x{V!SkFnaQ%ntjl>|BuS zpLB=#2Eu6yc741|%BMU~;Y}|E4JV4Q+2)v7_&t4>E8zC*AbA99$Af&uP}R!=m6F!N z0{=*A@+Wq*1vhyIv5L9N2#=z;n`7Ju@hDZKo1++JimA*YQ`V1@Y&V~S z2t)3VNrHev*0hn5Nv^mq$(*T%BCt0FTxScC{=(4{kS)5XfG(r-)N*@Nhs@k`SU6Ti z?eZcR%a76XG=5AxKzJ1k%Ui{b?ANezN>9Si#U|kM8@V~$Y#UStS*C!qR)0idw+*?h zZnlLhS2Sxp1>APh2$Zp03QRBL%VY}9tq=x*ERRl$X_#)vX=s)P#$?Xf&_vrlpQMdw zxWm^GLhQv(;-THX|Df3`_`kmts`(tX_F3O2+UNFn-y* zLPeRNjWtAE2ONuC*m62{02x=l;IAxz#RVU3tPEgQtXxI8jY0NK2H;s{+PvWb8vp~D zJff{rOWi5pOpns|c0Snduz8_?At!#n{t+^XFUt)LdO9{*;%qUQEE4Tx*_5Vp&TCLa zOo5ET##9rFJ!O&X#s@!3Lsb}&oH7|vLIc#71HwE0@?p1`u+OHi}T%}kN15bYZ_ zs_OGQF^^K~KYs>axJ5{l_c~P)%K0n55>qxu%^b}Pr;EXvvxWBWKZ~3;XN8%J)^JS- zYpp8*TJ^>@h#*$GCCji0t0_`Ik3_)u0D0BJocqfArfnSC`QX>^Ib|BL(}4FYi|3aCq_i&jv%H%&I;*j#}{V zy%Mp~iuoIxFi!J!`s)^(q-Qp#)-IZe>Gj+mhQwgPL$yDUO+-fQO*eMXJ;N5kat()= zd(!BZaW~MvK|r22dLW6=$h5myqJSxa!{RK{CV)ytB70<)U|%>E3F-oN`i7^qJn>Bo zWq^EF_O-%r-yjSXb=pu+Bc>TW90s=}?qAu=A%ch1$C{0hw*p|lDIh3rf_9BGM>xFPv|utDBM&;Kz$!)2;ol4PYny8W)6dS99VHux@I7X?nbjr0hN!k3pxe%*R9W@yn8zY$$Hau*{086WN4!?mn zdPGgu-9DGIn5reNX}PrN)V|$YmtZ^L82ioU4mV}EMlc9bG_Q=QO;9fsJCh=xOzQrp z;$Jf2(I9&Mo7slXOyxDxBc!+qsk9000rdREAFNOs9$o+v@D_ zOV_TY9u*F3n|GsDCa>U3E+tSO01n|H(>7oiTRRrk+uK`nQ42rVTdTz#HG&B+V7e4x zlno66QeCJ5Ozm0hbAKU|%OfaT!d48>gEQ#NF7$kF5&jWWp9%{p;rJz93X%XE6$v~* z7HZ8Q2U0i>9T1~T!%jO`Gwj7KMyaZbzP8?_q#F_y71~RCfK{}42jNwY8HB2&WJ>;$ zQT}^3PKo$chAB>eH*UloNuVh~Ckgs~fOSF+dVXF@s{E@xJE@wIFL5~&2`#^%w(}2r zr#?B!`he+x!-XE$YO5dj1M!`ke|t(_i5Eh!#5L8i;KgkDN9%g?DjDFziyW32U~zoU zz?rIy%!KLTd+R*a@%0yZtPK|EVLzT-Dv-ZD4hTa%-34r*OG^|{YTui1W;BZG4M&c<=-$K3ZaFH*$Uxc2O1SuN=Q_VW#vjA)h9an zrP;2dmV|I4o&EivqhDVi#&JKN3!$-y&Q>_wEzI`ZJ?$Bvv%{yL$9QH(@9SY$Hn@Tt zl56j5qZ3C9F>2&HX^muYqsxW{>1A<$Cqgq^e3*!(66a^ZsFlEwu{L*4mHSAAgHTjs$4<^C=>)=s+^S#w{MmXPO@bDC4&FN%sR+hGl zHO21;WC-n0-~5xv^h5z?VHGyHhRonijA~Q69On~$B+*6m_Iao3`et@0ZWF9bEwbHcvnacZmWL%znKOEvPtb?Hq`_jp-f+~@t)AFmAQE%@-$+W)@l z)L+P28&%XIZ=`un=)wNcKj|%>d`KJJp9tY>uB>hK#r5j)NK*KZ^S|%u#^Z4Gj-DYn zYbpFZJo;puE%Ys=k=;2CD)`wn@E5>@tiLdc%yM)@qq&3sjGP;lSLn`_5bAWq_TQT9r)FB@t4Kp$!x5Lg@ zzVX9=9sh+&IKKrA=z_InYiu&*=^nO!)a5kzF_-$3Wqf6P@tyGD!PmM{~eK zOrEIS-UCMbk-(T}tM%RfNdu?G5RG2D{lKIkkuEptHQ?Dj&*Fr)g}Z+)P7dPGoNY7( zV`EhB-gw{8SorpYk)sh)Ay?s;X`08z@3BmAzZyx`EK%G#Bge5JBibjBb@cBoCnm9t z$A+V`+oV5<@kVJeAr%6joqpF&tUE!cP6CAcVqa}bGuB#zw%gyuvA#5e^@;_J16rfn z-f(2Ysk!(^6F+h87}lp9s{wlYA9r@eKNy*QbjtepxVShM9>&~nW_wFR!euJTn`g7V zo0pUv@}n~oVpBxK@(&60EDccCSj>2(9UmZrEjC_S4-E}TN;;O^dUfKR`kuTA%t=UP zj+MK;PGoz0w7FKleh=l37t=L}>>*-XU>n?sc^rUh>TWWjT4=A)nhN|Kuk^dT(0oEp z^^0G6mS(Yf!PH)8ujsdl%#h5mj2biR!Q1VgUZfFGdy+BlGmm$o`XojSC`?~6_`L$4 zD7iD$%U!sMg|wGwj!lmpMi!QBI=9e@4NjT+yC!wLq{#YO}X5F&{6F&$9Wu{G@p8fX_jr37^? zNQ+O;?a!VQq_8#Xx7fbp#2dLNdrDW@V#zcs4F4W3`KjgJg@&vB)mCM#AeIsh{N;!Y zGM|}D*E23qj4$8tes;;`H+V+gZ;28Q&Px4B#x4VG7siWw^!5g6l@)zFzyInWBAOua z12ib%0DuV4Tq>gJ_&+8OkQ5^KUpYkh(>!D%hLS!bv~Pk^QUi`Rn3)0+ngBr-UN zJJVkkQ3ogLP1Mp-S{0K6w@*kK3_Z7#Y*Az45yVBj7u`?zsJpv4ex-#Oa}x+|YB+^C zXdMfEGuW7QxNeRuyw}Xi*9w_7@9nhi4k=9<5CjRajnV;5D~3yoiU|k}vP8`XK(0b< zmxO!;2Y?5{Lg)m-ucMlW8`5#Yk_K-FL|nm198%QPE%QNM1+nm!P`^HE_*+*31>abCS4Wa&~1vz()fz?z` zTZ%2!i4ky#6icT*8e2F6!+NnL{+Gp5Rr~kU!uKz%F+Lje<6kor)QJTa1ik%=|8n;s z)QtC4Ny&~ae_=-z_+FZ47^z!$pb>6#&(iFh{eq=HE<3KjdF8t$I@JHrw=mV2 zqRp}NO7W~jsCv8Rdk6j+@5(j1PH#j(2uYnLZcOaBoaiz-*w{k}r(p5CfE__i=?{4f z4kT}f?+#{W(LXqr99qgH)L@OG$r11%BnL$j$v3a!HzqWdO1Q0H43|`CTa|l3FLGW> z=N)^wR1{@A`z!xYixua1tMse%J_EnO3~g`dS6Gw(tQb9etX85g-K7w1o1q+K1J zcHLI9%Uvu%$(3PS&Q&$MQ+%1;u`fCEZ$c=2S8tT7dh;jdXMPN#ZH`+>I!`WY-jl^%uG-u&FT(SQNp)M zyLHP)E_w0ngaieJ_OGdBjCLwB)1_LFBLz|0aqjWX#KkVmum1F*H;$5j02<#>g>~ zR*?1C`wxxZ+Z1COaQ(Od4pErL9a3VP2Gekv{EJddVLR;Y@VA|hGaoqg7-kZtkuGG= z2S%FaMXZDYM9>o9z?JI?HXHn5Q-nggd~0W-OP-m=5wWxE5$n1HLoopdhxa6L&?xYekN&Doy3W55)8$)an(kctgqtr{4+HAqNN|U5G)*^2pO1tUWUjKl`Ku|B4LO{K()12)PMNezg@jfv& zp3ZS-JTmta<8kWjTygKO4tn@LfwWhgo(5D+bsmE&_ec0CU(&mz)y5RO`!_uIE!`G04 zqNdvz!S8U0!syyrywWLyj9qdv`&PIrIhIy%7?eKhbj0|naxJIQlwHkIsrk})2zV1J=&zlrxZ<7~WgmBY%c|O4?$izn1MkF|IxO_gJ z*1S$PZvGw?ZJuKdmRZG2Umli?;EF>-3kdq|Yy>ybti*!N8q%(LzBf1Lox)Ss86_1B zCUIs@`ndV{7QX27F}~M32qs+$oVXob!Pwn3S+r%5%nCx{LeN5f+RvSAxl0uV_O+WO zJ!t#orq3m9KNtN@7c~2Rw9zmJF-daHd`axJN+p2eU6CAlO}gh+JqaHLcHV9g-9823I{VyC z-1_7+kDMay*HpWO4_>@ac7hms_5-ADb3;M|V-;Rmo3_>yrE|N)=U4ep?f*L$ck|ZQ zaf<(X3G|X2INz6f7L>^8BI@Wyjs8#2L*NrJC=}igCUgJq|KA(Ie2F8xzFrA}Qs8O+ zVS7l)4L4qs!4^S}hm+L1Xz9BIWMc>AYdE_qqPbaKnuW) zgU4_{=Yxz>0m1N~SQRK9K`=b2>r^nvD-c&l1v1-tfgGoB?F<U$dA`|~z zc1^T9fJ^OR>`WeF>qu**X0FjMZ{U?jna8I-^wiWitkX%U>-{wT?Rm(kQvv3qR?j&` zdAC@hJ910BclhF3o1lO%21`VY@ zqpMc6q_le^nTS!<*{Hyt`Yw}0r|?%>t3if)U3+I!imX@JQ6D)c7I91-2SKdicbUZK zQ^Xgao>A*~d2VqMOUw=|FfW1LnmN;3(aTQV7!4}H)EwwL9gg0TB(_{%5tG}()&YsW zLHJfO%p{E--?IGI1J1>aeVuL1#q)1!FD6STKb5VetP30kk)DI_MpJ7RLCJ4rGc{yG zM_5KbURYYNUXoujF;=@3%*+ILh-R6*Hoigph5_J8zRWOyo!P;T z$pZXAx-*{8ez!M>)!!O=Z4%-}wi$$$-`#o~^tP^@i+~$kt~0%B8NziS#Gh=Kk4EMu zdT>2DAw=fYExo>2g<0g9X0Nj21$z;d$fVwg8GDO4i?Ql!RBM`ot4|=6ND7_>ro?{n zt^y`*up;R%Wq&rFTZHV)fID+7KI&OJ0u8s&0=<7c5#kbJx9dN=>Q(u!T(Ud%WSo8!uO?AM zl|570TBHNTNigSJe~k17G5VWM>s`}}%*c;C&>!-Mykeq$G|>28V_-x^f7V$Vl>YA5 zy9#g3lEFKI;^8pe4=L~tc5tJ>`D9i}VmTY^&)I3vfa^@&bsS}6?{;Lxrp56}gTnsZ z&l(}CmqRMQQChcsQzn920q)_^e!#yCwSVzv(X0J-{p^-6d-BNh^6YAS)1pIDopCC0 zFW#!Ob<5`>=Qdr_cl?#-(A=8|w*7p!=j?I(_;H}{td!^|=@w)O5YTM*9&+$}%=MQ2 zwppP(a#?}Xy08|@a4FF7P=QTN(pk**q)^WyX?vnkx`L}UN!NRrmX?&pos}3u7hd@A z{cNW$g=uH^@iutl^Xxt7-pmI1DcO&YrX{=Mvagb*Y6+V07REbyL%qJva>O{$U?x>m>Ut5eZbC>fJGbfR)SN;Qp11{&YFf&4AuNd z`zZ41M}W}pMBRp3s{BMdojsJS(eDH&X+51*>N}mQktY?_W05i0B#1XgC_ce;RqRpP z10z_CbI@unY(%8j*{+k3^g-()nWaH`J#j$~|R#*RLc_92_W`ntIQY{GM7nzsg|Im)H~Y{BJ%P~dFIgq8&^ zMWojnQ~NFL5U}1($Mk@eAfT+K~dcF?;Ud@37Rx7eb~=bhf+)*nx5>)Ba53E zW;yhxIyw*Z1}ue6&RdLDPXS+oXC<&f)X`BW2Wc8$J+B(tzo$L2MzAjpw8*VpQkCUi z4-h{D34sW3O+haJtOQQg^t)CN0lAz4?!;`50}2P91wZsX2&78l{~4c>tp?-Hb8Vc~ zsRjc_Dl*iBxznK@Ys`fH7wOKwN`=yYDHY+sZ3rBB6nLjpeEe6V2)Vlm+}`#<6M%_? z)mJmre_`4qm%-@j$}p_`|YXc`fHC^Q}p>+>3mfq}Pr|0vbdQ9KiBgo zZp7qgRJ8U6t&`UqwtJNO#1gm^B!0aM=t?^AJZkGJ@JdRcUVWKdNjP`#LwmeEUd4Z7 zUyQJ8P@9H)Wc2Ne-sH_Zt6yOTB(f%;+GpAUIWuaYMOX8z_ZWIQKCV1Y1Xt!&XVP{V zUA|EyFFN`3z|8{uD2PlZeO5j7y2H zVCmeF_iv}y%;)i{xHaKH8gD~o&A^|2M|>116lOB>;bD0ADy(nX3C?^l{scXuJN+Ce zwT=}$1=mYXPkgunZVNYh$!`BN;CKBHy>)I{Z%I~d7?n?LmE8El6_)Bm(-t}NT8O&_ z?T4$IQw!SJma}c2c?8GY`Kg9?FWJl8?Yz?K*hP2JaL975Gg5rpOYN*d7KOGm-S`mq z%_sYN!L0;Ci}XuXu-a0(vqZX5%4I7THtJ8vu=D!?^1h8R=e{%Z@FT^(ZMxkZj_b_L zWRq>F@>A%v#w}%Qu+V!RcNM+#vsG{y8D&B%k{u7zHy1*N6=N^OL_CnjtM15l*n8?u zQ;TzUIORJl5uapaeJjPc>3523_LH5j_ffoMm?Sc8z13)Wny&BD;&w)d^>cR3afAtbx+%2`G15vj0_D)ZJ9#0uRSb&-e= z!BQBG#i<}6kR@f75;@=x`9!GMkxhd^EJY;~c^QGyLt#2y(@oroRuVoE2A z;7%taHTNDNMm#Ba$bn+m+BGfHeDnYD~U! zMR|^t9$aJ@T3Nszxx?XTP)mg0J8@TBa#xJtXgdJx1iXE+}kS@6^u0ptf>CAdFzwUBXcKY=@~tt3a)E zE=MtFV1XF(MY4{-FI+l0qhaW4H7uzhP+Jhjmqt)67vmkml=qHP8ra|;sLEbTY#8Y0 z54p@~{&~=-O;3NJSomXEIXOGu z8^@ao@=-fi-NX``$LaF%)xb9-9D>VCQ9GS@(TwA=Z|JZn%hgR|)ws}=OkG3!(PgJF z1gq5Hne9z+jO#Mf+g0OLaVvOFmam1c&PGJLpXK{=U$Z*(?t<)qsEWo2ub=(QlqLs1 zQh1N0c=NEu`}1TTb?j%%^>usYJe6*G-F~zNAJiYz_k}FkgyNExRAH|ri-$>R09Mh| zxVcY#EnfX16ECf4gd<7E6)$egmv}^v1}^IBl{et|j)K*x#SwOL!Uy9ktGQNA5UMzi zC%k!;{Z-4(CHnc=X=?_QvE$P9Mj?2@(>ashg{OH{(6^5)Ii(0Sr@n`@bGT$wtcpBv z6i*jm=GkmVbydy2xW*2ip?RG-Ro-;^fVS3#*J5ehVSTfL+S^vlbIWxssVoL)+00Zt za%9e~BJzB!@#ch-T%vR}lPEqOe2eY0L*{#)D-u-Hs6Xeqvio}ZSiZS|5gMV!8Xf}S ztHff$+f>DzDW}x%5KJXP*_Cs1>Xbd-Js$n@RO$nBnMpq6spKv{zUDPm+L_|Jz_~R| zjW??gaKO%~T5mCFrB7LvTW5z(xT<(O;V-SNF-aWIncW&t9o-c18_T>;#zWX|-2Ud#`t&80(23T^nG62k4e$%x5^0{`T%ae! zi;w1Wtv_lxa5EvOC zRx9v8zc?c?M}z!8Ie3y*HrRjSg;ISRm(7bNlNW%Y-fVaqr?MBP%8pbs+7CMWQUzTR zB|%%jy&-R%*PLof%`7eSmK z-GriRF9KbzgQ|udOj*}HBe$*$=1d$LZc68!IXPDj#rls>&Uv@HPl+Q|p}I{!LM$;J zS|<2`-=|#7?o>SewIsO`8yeosv}EA&v$2P@eyKV&BdH%sT8cb+Hg^SSf3jE&rN)F@ z!WvJ8Ph=YD6x^L2OqCVXcBdD2JF>oG`nJ3%0V!t7mGuOyC$L8xI%bT1yswshjJ?eOD$?&3o6(|U9Z^Y@(UP*08ebjN%aM|H{V zeMeh0exgoGo+p&?TvB_&AvxP5RKa_B(<+=HVFg6TnbO%Fhg;njsCnL6raJG6NAX_i zkKy3;KN7A=tEK8T#;!Y#fh8OA)~@fXs6dLE4(|f-xZdC|UEfxbs;-`&w6t`2-E7FF zAKZFbsr(T>KzV83o;J2v_?h%y)@*;bK5eX8*KI=)Qw%W5Tr+CCLZZ zWrmL1oq4S(9 zL_t$mGINp-{f+L{8unOCdV60U5#|fuGc6+o?muThR{SWglN)i5+MAVRzo6w4p47l$ zqc1iCT54ebL>8ZTZ@EKSsQre;k^x9+y#W`m%*ic=weSIO1C7@v?x81`=XRXsX=XuA|{L;UEEgK0iG;aX&uHEzIcgP>WEv1iN`cN`9{3yJ% zFSm*DK#(j_1twkVAw?6q^zYEu|L4cFC~?sPKTWqlSitZ5``G@}4_jT^YW=bOvF*Z^ zuy8@d#4b|SbhsdlPr*b^R2lUQXZ+-z1Su!1o#5*2hHYe@e*x z?z*Y_N#+p4y=H!5J@NY2VWbddPHClh=_yTpYyRY_8LO`j;l=pqHq`K^4owf09e>fj zqwGW~MtNJ%m(&n?WqVS#^1Uy=)R;l_OB|)9$WOGhjwV0K{lnUZRA$uI2=~P?Yy}65 zjM_BjGmvQ_d#)~j_k0o-dPWA5uG|8XjowvmzcC2@T~{H>nUTtt%}o9<3x0t!WZpck z30aV(m+X5`%U5@RDn+3y4zl9-b@fUs^tHx=2);4SN!d`kV+D_FZZRm&?T|gum~{l( z80kl<79q39)^rGL>l;E~gtK4DIE+M+GmqqQpVlJrO_cW!>rB2~@KywGBVy9cPnQvl zmixVF9I}cF2OD5#WI({G07BNp(Ef>FcYKLdvusyhs?vhwl*aY6M@6Fg&$L_2rM5o( zd{i>?7YS6-%$Bg}ERU>y;h){JBW!XXF=YDr0F3CIi#P9=^A7B~o3bkVgb1&>E3qee z9*^C5_UgIOyyPp28}uG)g5qo}CfTL+?t-lI>Aosfq$&$%N%};l{G#QiMgtq#QzK9I z=IHj6dBVpe?;vz%rl;lT>=th{^(G-_jb!1lZmXf{R%8Cq`|2;lg{S~NkNeB6Nx?;# zM}%89v|i{mR^%8GFN&b8D|+%ta7~Uckz%gzS2FPjO(wRO-1Z2 z47DNm_KD_rq4^xkWPNzTd|S^=lqHZw7TF& z`pEQrcz$3wgR>K4-o=MIHb_o)f8zb1YrZ6A(5vs3G4wJI&qMKos(C~0yc?-$Vy2j- zJXXg(VVWcHIco26)km>J>>8i~k4HND5AmWB{P0PkaFoXtzQi09zP#;AcD~pwv51g5 z3t<*>I&cQSh(u#vHEG}&7oNX^`=KL0JY|k0cCY0nx4^f|v1+H^OQo+oyW@KYn6AYc znA9@&xW=EQ-npFLK^vb8ZUZp_`5cDIZj_>2iW0n#Hc{I{_2e?el1Ml6Ud`_uc=IQ& zyVC+=VBZ@Lhvpc=_f_bwnfP-(AgkJB&q5F;G`@}}=V00%9=ZNQ7ztw1pL7$%IB6VE zho_3s!?-AQrqRr)Ri4QvPno@eqz)=B}%>7$uSGl`d5+~e;1MoLYlZj!9r_KN)6*;dLAC-*Gi z7Nr3fYHtChZ(*{Ni7|vw|J_o8U}KZjB4#oil*X!Z*Gd)sq!~QB7vFmk2R1r z3CpEXp2Xd5Qrv5yCl;J>m%L>L;i^MU+keFulRta&Y5pbYjd2KnM^aN!={LMI>TpoP z;XL?zT%66An6E+L3~=r`?pE&@<+lH%6_NGT6k6z9j(I(+{5g^9)A?8 ztd6rZ-nXKhH{P9q@K2M2!#^rQ6mX7&DJf*Nl!c1H-p)%{XB15Mn%U1E6bGASQ?Q-KMp_c} zjHS(-uYnD}r(=cmiBOa>35TS%s3J`$V~_W0TR!fOw^r^*@-|QPdp6nC}7h?>;IuteF`VDpqH=`WO5|TB7rS*Vv#s@ud^gYynmsV@SP!JQW_eQNHOKrgS z=B6vcd1PE^c?XS7aJnuv?9EHVWfc{Wft4_na&)XEx9ZBU+RO)I1Mla1EZqZM8f(l- z=LvtkbxWV$uN6Zu7QMNkplmUIto|Fx>M0f(4eOc7)mSB*aa2>)#(EjVYwXpiVWG7F zMPQS6pY~y|6umK(@>^MP4|G4+Xbpy*MV6ljxD(~#aMY0WuWaalhJD6WteS$RvcqT+ za^tF6Yqf0o-!V{&MC3Kr=we8MyGI{tqsVgmCNE-No zQwz^Uv(J3floTb>@C@`z%|BH|POI*&ne9rQ7qoSYya-qQe5JG^_xyKx0L`OoaF{yc zZ%5vUXMN|I``Oi&W1&XfuhYK%_lHr)%6V^3y?V4{1A1v>2fEo&+xS+hNC1*47LS7D zK;Z!W2YlHr2t_fBHBAU#i#gn+qh(Ki9L=`PwJPOxyFHe@1$+`Zd}QC~9!e}D(h(gl zP9x-C2n_|E02BIsq>f9&ZDq3Bv!a=Du_&(8L5GBdGPkhE##i&a`2jjhP|Es#MwCUN z--g6(nU{$vt$>BQ*|3n%W7;DbQ$6*tSKbXGAkH96WFnG^B1`)O?_vNz0DR+68OI$(div;( znFB}oWEkNqb%~9`K%wF$>AzNy^j=!kHwz#j=w5%-pnnt!kKa@1UC<<>>$-XfL|e*# zgD$1VC3Db?hx1~0$eH6J-xblkKfz(>xKRJWIjUwcDV3N@drrNX=9Kh&ZI&o=+P@!g zKJRaak~#zz!fJFH4}G0>=R@G}XEL&~{HZqx$J8Al@FMmvm*Ecw zvrtav*-LdF1I4VBGZS{JVidvy9RpiO12f+QsvJX~D2LDD{;@;vX!O%w`q$k&k!l`s zS~t55x(B)^C4&x_U~iQN$qcMugE0Lu1sqo4<;X{S4`mjX`vCVG(FZIGfz4Vtv={(5 z;;!liy@NkF>0$UcOv^mZ6;1hzi&eIE@R#u@JHDi^ILUoeqGm(DK=o;U5ix(rL81^` zs?u`1`+d?YY{!|LW->fe-YON2QA@t{KvC|qkKV?~ELsWyR zVB;~zSdRY3@$T5`!;$D3$*BiC4hJ!Bx%334{bk#!i!GX6vXs3vai4M;o9fpzHI#Vf;xZhZSSnFmeXq1XEqE-Zt9i$ido{2wGKmH} z{=se~e4n%QPdGK*>t@&TU=Ls{aJ&s2hS+;HpB~!(tJ56(aXy9@U0mLMh?+7rNK$6{ ziT@^GK5mTjrzf*tR3FB5glY3;goT4Mp`XETJeK$0nIP_5t2bt$GDod_8VRcb&RGvr zUZL)Hlq&CAr}@^&lBI6hTVRESpYKe8-7lHp60PaQMqq%x@XdP5UEOCH5(e|#85#6a zQb)&tCl5BdViUZWXYC>@w66m~@VyxbZVUN#&gOZUz0bQX_a5gZbdMmMEhuRyyD!QN zs}!T3sKkY0=yz_Ln&KEPM^>;9Uw<`u@@ud&7yfbw#3|1#!(k7 zyYmD5m_FjSr}On?2B43{`B}!o)-N<8?hBtu?pO%t+;^p4=Q6b%tGrhU0Ub##%n_@Ll%|2qcL z6DH;rEGn{F{ub|UA3Ua@1%sJ!%U$!uD&OXZ-AIA`>9w~{rr9tK=RRSQ1~7#VdU&vX z2O`bEA0|Frcui<5|MA>CI^x4tysrg^_o~+D1d}D- zKy}nH%IJtDprmcd?D-ZkgYN*5k@F4#3gEUQ?ghRK{VnxxS{K;rNsuXp^_$1POl|Xh zr&N0`*VS6QG=t} zACkq5WTfO|)xa6n#G)%dTF@mOpIPXU)VU_C8BHHf@qHTV3pved?f;zu7d&U{TUL#TbO!2-LkGOPDGz4zA65?4pk)N%HfviGHRev~unwWd?FMKaUm zrq%ROnAO=Ld9KAM&CLsoUn14$aWz5*DzJ8|={-z?VrwmEnd=5xo3Cr;n+^w(Ff1|& zzhKIQp=ewMq$9;NF&1eS4HM@lJvtb>R)i$xR~KEJ(;c|=4C87q<~^y}uZgb58jb{v z9@J>RI`}<~uCJpmBaC;8r zBiF)POYtD(WAn1fmEeqFv(Z3BfNpD@;3sL!JTWa5Jm(u|rkb5h7qcWCdZ8OKq!tJg1O4r^LFC9D%e9 z8!mq!_F?X%U^@77fv#FpV?MEf-J$#%+Q@{~g%Z|CfsuFSfjvId17?N%4LQHdKEC9q zpWPJTU$?1xR_<};a4h-NQY55ZaFqNMLN!G6x%a`tcHQ?jg87T3$o=!2*ch$p;Lw`J zHIKeNbUAeKP%3@koP-2YO?9AIvZ0x=EGcsW>-WyB`4UgmqrpR?Bd8M+XS&3w`KemQ z=v7t8VCd}2ZeTk36hBLt19jfa-V;mmi!_>W_J|6>h;<^x#`9x;^|v7F4@IYW!JG$sb$Ek zZz;cqY^aMNndYZdJ-f9HR6I1*&)W8-^{w0L(-fQbD3_jz zj8~M-UG&(Cq-MIgbw_(hCxY8-h75*J^V4w&S_6X{sJ?h};h0hd&|qYYPoF5Z{>?!b zN00^nC>g)?VlR!vvv{>9uy5hf3UgqYa&inRBVJ^U2^FSr#-plr(srP|WX_xzfr02a-X)uQMXG2pQ83utOqw~{SH zu#F~S$+{uWn#J)R$jpUV-I$Le!c!xr7&drz94kHNbnL~o8HyKI5-SF@Mg4;ld;5O; zKh+%{85RJyEP)j{BhNn(iq{`1U?K*fmL2;#N?@oIb=X?Sg{Pw2%AN}zZEc`QIVo8x zsVNZ2_q^xLfE;fIGCKfl2Q`@7Hv*DDKMCF7aDPmDkYdWVocubb45|L9zdb$(pA0Xk z@6N~Y&Er!D6@`u2pYhAs14y#j6MfJrrb9e2(R4+A4i7r znP*RGt51|<4$Zf?LwG(+z%Owvts$ut+RszpW&2!irP}Qe$WZrwgur@M%6K!ztmid9 zDml7vr2N`PmW|E9cM$d+4DUt_UoJ8_l2#J&qppA$q%sFz6)H(Aq zG{?~%GkBs$$ox5zRq@Vpte;;M9lhk`>}9B2c%&9pX7NYM2|KLRt!>ZJz{~rq_;az( zRN76?m5*~deQa9{7;2$c%J?~3>&zV{{88x zJ)Cdqfn&ta&$dJ>!JLs`BDjw?-Qkw-y3T&@0F5Yhg57U2+bwBWq_gWYW51HLhqgD8 z|l-(P2xt(i>`}5g-Vju_{5}dJN^+FKyu0d+oGHa_^*0S4Fk3W|M#DN%{Kp!^S^4v z%l}d;Bc&3hr<6P>Up8cbAsgBFdViTUZW}BJX2ZIq1H=^~3C0nE17S#+2qxJEuH+V3~3ejM<=MJa&C6jN>*&n9WB+B3%@_ht59B!Dv-M6~PzeU6-iSE|?=w_fZ_i{>my5}+?KrvtG zED!@K=Hj7^u#Oj}t!F1R{grxVf#9fK#>4(HM*zAr<&Ts~duTni0VuL2r|uud~$-}Q;x!-t_)QDi>MN0sDm z$q@_za#~K(Dr=9*#8U&Jh<-@-%n8ZI?-pPMx!#Tx<5}t)krvv{08OAok6_OqNx$gm zD@0|Y7=6j5fdtjLdqMv0%-|E-jwN05>kO6X%L*7%G;0{1oYzZNOKsv_xwxsHA4?o1 zc{iou(<;^-UA9Wp(-f~Ax;}Z=zc$a7w{Zb)VHUdv`fu)zgS#R*JyLog1hHf{v_4W( z4^I|rn`ogdhbH}7^p@55*YK`y{m#Jd$Yy$0z3;)own_LzLoZ-JB{Tz+#gi%LJH{LL zFhHb+Ow-tXAUVyZ6E8W8C;pfZ%v#l5@Fad)On@j&A5yfE~AeqhG!*h6bWnj&J%2%cHg!@?XC^tfAh@Xmw9WyKq8+c`I7DkA4`axm-M# z*2dH6u^LSiw>PG%KdYdnOcQTSTOQe^ah&`*4XPYIe`^*7+O0mq3REmO_~4w6nKw$bYj32_Ec_qh_;ql`{13 z#NF$Y1wN?(Xm~@a>q~(!WsAMBO9|y+Hn^K$xqLQTg)gEyj+T*hiA-eN_)&+mktuv` zH}@6a!;r-;?A*Ix_MXRC!s_xgC%CZDmtbGsO*IwE$84FB9G$+7BnIg4I=oo zZzlAohwMsU`ZyaYQTMGSuuXtX<+^Y{xoi84>*}`bLSg73e^@D7N*5y@881aN9H?F6=|=Zm@voo)1bRK4Wim>_ta+>lWAVI(-SnJ zxj(gB_v%CmrZpfPw)rJiuyOu>V`9kEQyV@4lxrsR#`?`MZM zzG-GT5T|)cg9VK8ub5k)M`bwAmd_$Q*Vw!XqSVt&jhh_K7Hk#+7HpRcoTO=G>?kz) z)xJ1YkN(!Rxn{ZyocMF{*H8a{#;D^0SeJ=7#tKj>;ggsXU-rXfy1M}Fix`M^s|dYb zKLY52Nr|q8x=7D49j2B0IsQ8l!7y zU<3S5E!EiZ-wMgMF|59e@VGUG(}zg@&=pv`gkKF{ocaHFTT6`qjcR;|AqU!M?ZdO@ z6bH#PZun!%VR}g?t853wI7!oy-#4`+4}8vn(=K0rz)Nu#olzvAn~q+>ex=fRJv7uy2Hy1KgEHZQaA48q@G*dFdo z4i>)enRqQFL>+L$y)H=>*q+ENNS%yvrQ~w(Z7~1$viNH|OZGM1nZxY(2rxr71~Tcr zveisWWR%p!>eAWx=i4DNRcB;rpT0G7Hj-2tnBoR+ib}aGl z{6DZ6oH=`|1fMpa>9Ntylk#7(CQIfpW;(RY)R0$hiIkb}cC|v)86=7ReI3uWweGG)vQbi#~fWYy6V%^5MD*yt0LaDX)J zHQ56r#1@)pc*{1xg2)x6T7x*{iN}Q;o>H`QDoV6I1E_fcKTHVD!Zv@BmbNWpp!q)c zD)uNFGs-?ZM|H0_+g`S051n5g&7DB!8NQ1by<~1x)A!)-q`d6SEUVgG+CL3REEKK` z5HnA@Rov3Uf8lSPx^0}E)ojLEyKic&PFb<*h4Q_z^nUR=?$7VTfnK#dN9lM>-Im*Z z&udWHxX;mb3+fU!%ZXL|6)|RZM(!Tt<<8HryJz?D_YCyh=rZeF?~7@r+2(#4ih8H8 z%V#nTCytjIX(NA2O+PNEG5fsOdOKL)wQ^#Lo_RZLYyXPO6(LWUsz;X6KgMU+YZzuq zDavx|PdR^mL5tB6u6&LiQH7rycuLb$+Di3?GbeAR)ZQ z0)blsv0O87zT^;c6B@)ZMCgL#o@IOe7A$>^=ZUAlAdViD6rXs%x%~i^aaP5J=M-J} zbdmFn*q-rN-rnZ|3vd9WwZfVcaT0sI{Gv>nK%l4kaes0ekzG+`K-p<*)5dg6Y2!~| zw|B`6d-VC>FRkO!c&?Z&PD=OP{7*ohJ=&O$T0CN z-pq5fpJT-1%r7`H?NR$@Fi204%wX(~o-rLD=l1ZpFEHkrvWRiXYKXFu0ev1M{&``W zQlAE7h<#5K>%F|vJ;0{^?g^WzC8iZ*V5F`vpJP(69GdOtTZIlA;V4s(6wG+H{x~7N z-y-XCnz>w7ad;5keG+2E?6^GcLbbGF%$Nchy-3&&v(yD53aTB5pOJY1tcWkpwj|L0u z63h$ETna_DssxkX(tDj#s!`(FvU`Qf%p5EsY6tB!@1vqRU%xn9yleB zkWzq|pTJ1jg@cY{L!?8#u2@$&cS#_)>q^-2_``ywY&yZbX>VeRc*b;6b#qlxFoD*> zdUzjIkO?W?^Lffv^LZ|$p0loryekdg)K3mbqOn;g|A!Y6(h(U^bb>a$PfX&_$t(~Y zWzXj($jYk1IaYS|+X0tCq5 z79keTb&K_~5KA ztKo@wG_jy{e1w8p%jF=4<_Iwpb9%1#c^8WEX+z$PUT`k6j{?{}SPIC#=Y<;2IUC+` zL>#+#M@PL5ulStHmEfTfAzHOu9P1Egp<4z92HHAV2v)yUHLC0q#iHKtcp0e&O)T1` z&+vVG?q%?^-)@G+JqK1Mc5T*Q8pD5edb3NCvW6P|^?>1HEYFJ~yUFcCs`dMNUf}n_ zl8B|HBAeXyl){^8y+1+FDemr;T`H-PvLEl~x{g%^! z7hg|V=e@NsCTiw7Us&+kW_yhManENI|Nh=N?{h(kO6zk~swengR6*E;KLpLSns{0T zRvyX^EvWw(DxAV=lAME^*BV{Qe|Gal!Nkxlk|y=KZLffhA zQUxFMspR`T2ngio>mP|u3kZlt;7XpZSk^uW4~6gkt$-~!kh@|9R^yAUYg57m!&py$ z=FKC??_$s+*!Q@x(sI24fg>JS{3j?_p41sRTB=`SzWPiSg*ZpS4_iK6?uq(>q5;G3 zFH(a$hhg9*DzGenXo*mS&fTsU8M) z52(x*l;IV@t3kgq+DGYm^wf&e@cul6G{5cH{ z>OAsDdbtlzXU~gbO?cMBx^4)2hQ3Ac&{i~?`SK+6_oi-Fl2yb}7b2?}q9>E9N(I8B z5jHT}WoBIIrf>Q#Wvdn4`#!2m+1u+ArJO}o0Q!$=ZTQPiN>p|{?)YXlxTa%t$hRLdRXLwWN&uxVp&2{Se`=9>QU(u>?E z)uJ`%#zXyk(xV^L7nzjzx;DZ+Eq=dzUhGMc;A zp1d|)6QxFE8G9JhG7t`!`IYaRC$&fpPUO$s^hrh(%|y}tnC<)#`T*Hk$^DebvUizg zsqXcPeU3UA6r-y)GMW$Tr3w}CnKr!y;)bIleA}pl#^k(~5^+lF8Tizl(=()gqq8+R zfDoV9DC72dL`RRWHl>g%$B%ZIx%X|7@F#M~YtHJnx#O?`QEi@Y`XK>)M!C zq-2^0(U{pepx^uyvEY%(mP||%@xNM{F|%ZdV-@qNAS#SEe?z12u#45}$71K3$Ni*e zt$avnn(Nh#MMgo}N-3gb95#uz2x|Ej*R$&-jp&dWD3yuqIsB1rr{FwU5sJ;OS=bv| zP2J5vLa8*N+IDIkq>*fKz8VwqhK1tuz)^^~#HT)fv;L}Ryy~Pwp=vMc&A)#v+_ux6 zguVB({wv(L%zZGCT)CZOksv7B1()fnj?|GU*fubDAMQ5|@1mql7owA0cYLdUlUF~s zc!=|0-X=`iH6i^9H$|B0cHY`x`1W?ftk>8E-_<%W>2gt;Q=kk?BT9PoJSE6AF#^w; zqV#lY`GTx>>NT-g&4V$}m4?=X>FCXd%HaE(rkWRDl(RCGy$WdBvh270>WV*~Uk<;(KBaL%y|+k-+I0Wq4su=O*?9j*|d%S$~sE(bN#<2H}~i(Y&|xi?|Q! zB|3Gq48Q;R-)NMDe4Cf1bLh`h?T0Ueg3VR#u>c)rTj249TZA`kUILXKPC$xI-92o< zf_40cHGe?ol~khS&}j#5Na+9>K<&PQO}1OCT?qeU9WKM3hM2s=SxO8Ny*e-l zIdAH0&(6}l4~>{|BcC1AW@1B3@J&9tS>_5ZTey*!GVsUt`;b3b5mx6DIq&;8WvILK zE493NRsv@nXS3-9BrD*nK(Q0jNNQTn)LY@Yul^KMu$4Z`sZv5(Ybr)pIR zy^=%71+LcxENaLcUa3=D@#nHSsUOHriNVrz*C133=xMQcw&QsDd zhg&bFVG-R_##m8SJEr9T5;>V@p-qWJ+z5>-gZ4`I!6g~Ff1u9!wgot}s%uY(Gp8F& zd|y>o@6GZquS8lNv+j7=Rcs<`s?nuUrmpYgaB8^mBnv&qC1s^sF!D5Rr`yl^@^HdJ zt;Zo=)+ML(a zZ^pD3>ZB_YV+Qw&5LqvPtrXL+Gj&B3d(_fb(+pno*a-`ngRA{_&o{01x*q#0WO$|F z3+rFwib4H3-*O7HX`3{)%rHiLY8|E_c2Q&r%J`ZQi2o>xmkqzHK*oADG^PoY9!lmP zugU#2V~@wyiPSDcma&2fGuz%H-`2?~H;vi*)kvAMG=}}t&Xbs=$`5}OEIP;j_Mhqg zoxxbEl)JcFv*+BNf5@b@`?)VbGJ^ldn)N;%fX%C2sgk9xo>@U|lMo+w8K);bQK_zc zp^%L@1kjXp5Te|;R7cXLX!7{a8+t%DL?`OYV_XNnR0 zchgCE|0!O%Vgqkr$*t~Yc2Afrl5#fxGmiw+rDms={b3-GM1UwTMQKTn4SI-=PbK0{ z&g3sAXZZm8^Q*gbAvI@-65X3xuy>UHUG5^7y(x~uCC-`F>5GIVXUb@yT{HUwC!h@n zQrP1~-mUY1`?Icb!bQMK9(P8@_Rxf+x`WxLb8HiWCu;a6j!}Bm8AYYdY{NGOLpBY( z7Qv5l#uP!PVa5Y2v7ylT3N+{LL0IXtZuvTms%MkUj;Re5pV|*%aa86T&91<418+a} ziVZ-ylAe}P?^*KEB9p(o&l9@W#t6T9@{4(CJ)`zrd_|odKWA9mvsM;H34_Gl8kcH5 zw;Ep*B0~G5bnJx zD`#)ge-CTM9R5l5cld0x{mD1u(8lI=_UVSv(bwO<@0MU($(bg81NV${dT;9Cq7hDH zAB@^ZQxPN(>9Nl=2=(=SC@o}a&SvX2dY4A*ELI%R%D40ieaO|h93Wm71Wgwb!qvJx z@!E2{s5V=aG(TT)ycT2bMPweHFl^m>!Z;2kvsYc`Zdj#5dZ_4MS&s~n5%Nxm3XmZ`zqF|iXDC4yb=TmO@crW6zPuC=4__n^NFAadYW8c?_mvEQaiPF# z-ls@Q4g?BP_jkT|1PQ5|w=p4$tY3hkc-l^{g=Gf4cr;8EkH-7C@cg8rwvbZepEcYf z2h(K-W_j&3=>#04etB~kG!zdAsj6Mqbyx6oJhuo`6`w;{Au++kHmx4TsIy;SZXB6?U5QDUY8UJ|ab3A{4E|>Sl}0Re zg8;)U2EqQ@N=ojuiyA{qU4wV-;Fkip#yhjAlv`a1FRKZ|OeN%s!!OkM^Pj1Q&8sjJ zi1x;_M)eMTd$ZkGR7CHgBB7w*63;dw-S76!mGJ^uifjBjQ)~Ve>(-OvO1#!f9*5af zvWc@A*o#E>cge|iODAxBt`#;1tse#+6(>9qku9A*$vnH2cmwafMLNo6ryJ;%1#n;Y ziFBEt2e?gV}8NJw;+= zqTug!5uuCOWcBnhIPm~LpxJ}4kQ;(xI-eJsf}fXipM2!xnhs3;kd5&n&${eqCa3yP zrHSOu1tS4`K@8Fxs?t#Xw{t;1nt|c%*X=OFslm6Cg8ETBx+#qOv?I7)UbK|WLsmiN z_qTAi?RY=dDB>aA&bs0++0dUgbQ?daF*|)DORn7FgtMG&kXV#7r1XevSo<>bNE#R! zA^F>HSmXVVPe3o8&^>hAWjp)4M6JmyfW7aeBllTTC1!(|Q#j=Tp9shG+(~w~Gh05! z5K^xGWb1x3^$w0G^D}L~jdMx+{vuL=xK<}=#_RbNbSI~w?@K|lvxu}>Vl}s@=dA_V zKRMEzoO!V5Xq>+Ng`vw9o#Sl~a{sJN&t4zyyS0f|Y|>5%tj)A5{2E|wBI^LPAlDOE zo9W>chhSRxsiXAtUcj1ctcKBieh|OG%GS4kl5@{)grhnhUL2>7u_sWQ-5&p-CMY{E@O^fA*T+A*GL!5S~)`?O4YWh{!o6lYa+509{g9fTP6= z31V!;kXr{m)WouR0Qv}`lH*(esp4bfvp+5(To8KemWlcT>&F~aUJH}=4WL|lnNAiq z5z5ss2Jh95(rYw)*6J+L*r3-CQG#Ri2ac`~9dKCZ6sws!!)F@d_-&CknY3CEWbzZE z(m%B=3WNGTtRM7PTl2UQ;Ol&V+`CFwug&HD7z%61r?txHCqM=b`8rS?JgSYYtQ%;e zK-2w(_bw@Uw50X1;U1PtEC!(adIx$rqN3Y0DWg|FxSUPuUeYk{;f4&p+V zdjWG>vU|?VRuH%)M=v6m1LWY=0aLAoAiE^{u#I28FQ^ZtkPl|iwp{8NcHDBFjo|oK zE_m}_azQj87i_nUX;I#u10n$jaCG0^<^mUhZEA4Qi_Krz(6s$)!LfqtCBm=!^~||M zXDHFh0f{>XRHhYg{(p4#-9b&g-MaK5U8+<86%eE&B@nuRAfWt|UZf*PhfqS3E(j=H zx`3$kCM8s9N(<6^C_<=7AP`z0H+asO@0)wh+?jjw$Gi8uvu96cy=||xp66NfRQXrS z7o3(|x#;r=pB_&rxX&KmrL zR8K2%?{(8#S&b#A1^)a4Q?Kr3J*{~G z&dUcmSbgO#SL+@q%N=!U$}3+(yvSZegaNWg$6M0pkuaZ*su??}*%e1{nZvq!HEuq{ zx^q!jsCi;10f9WhI$=Zf5fjvy7?ZHYwgJ*e|9#e<%YYl@pSNcX-@DcPfWT#Z_INNV zjI7Bl;&#!Cn1|Ka#`OF_<|KwT3!8^rua@q`cG^F+!#uOeb>q^CeSJTHA$=_01ZSG! zpx5}6G_m%oW>@+*%lGf!NTwKPaOWjl*5lv3h$`P`S`oEpoODiYR0f~VVCay&YNtH6 zHdAOuy^5ruUTectVkp#wd%rqL)gg2V$q#?_bzgw3hwamD- zl-+-iA7yYrCTcGEdKI;}>AuCzSUmik>(wl&nmh~!bcNa+lV>&9-F&{U=iE;u6S0^f z@Cq7klAY7is3RpyTnZ|dG#<__pJ-$opd@8D`tw?9;3UZ?`c=c^>YuBG9bk1Fevdf% zfOiNUmsN=s5>K$AqLx8fx$qUuHl&37zikrHR4Ca{g0dlGaOkZ-xWGS%#{-H-AdM2ntsj)z;6Um9*tchj*J%o=|HyJ6 z;{TJ6aOko?$9(u7R0KQ@qa7aZ(>zNy=7WbXjS;v}R}f4SX-9N(b;*$s5fV}C0d-7=Phs7uvamJnvli zQ?1?Pz;o{ zejFUX7sNEsE?KPaZvnDt*+^nQ-)v=!A$%i~^*h5&Q@Grq!({EEN$`?;d&IhMai^6r z*M6pTqbITc6Cfu)ia#4X{ZE%_OI*81yrA>afd343SjQ2s4#a5rv+LaSmCvvMH})5xLMZrvXukp@Rp{7JhWOP?@E* z5sPxmDBtxOsqJ#o1P~$EO>(#p^F8yis@l4lEPi%6lP-2T_8i38&Q6SVb}A3}XgX6S zhy=(Xne><#udjM0!XHdOZ$l?P@oEF<#lz-XZ&diLRwpI?o!zr(`H3y*V41}0o`N*knzjma9GbD0Pr9)8*#PSy22c{ zOf01v;8zY)vJj-iQsE>)+6vt%H90>=^$8d36}NeUJU4%||fk(Bw53z8)SPR*yeHxqP6vG`{!;3djCAQvbb`axGAY{tKg*j5pjn zG^YEt67MqfaN_cCirY~P@5MoQJb-G%3&2YRv5)Dy z?WvKh1PDXY=16OM!(wT=#TqBtZ$N*j*;-w}cgdH394O%S!qnj0XIPJ1hS?5*X$&0H zQpicI5-lj{Q9Wt6d{gglTpOg~AYLMuOD|fWZ)Hv^AitSLIZXjuHf!A_W@`yDYOQ@7 z*X08e%2NpKL6zRga6L6RnVn3Fbe*~NYh8e6U#c?|dtV=i+IXqAAwO#NOie;Gm^4fM+D(^tTTWmN>w0KeMj~$eqaMXtt ztSecmVmdG@A^*Jn@i6MX&ZKj?*_@9f+0;mr9T@!k{7(VtiPwEQ1h0p!SJDLFZ&9Zm~ZzYI$ke;`K*FBmGZV7%F@kA&2&nX1X_I5UuFUfo7z zLHKcpwKU;Xd9(c#6Jb!PHSV!hwBb4%Zh?k`BQ_?upHmGD65kl(GJo!t$rZ>pixlviQ-Og4H~oB{bikMD0lF3Q|3Sj_G7 zN{N`6=xc-I)^R-ANLo(j9q)sYGtmi;g8|^>P}5mw0Hp7%L3m;(NRQD`UYDFtopJ?n(rbH|HvNkYvm6uJwo6U&v(vlFf?-Wg1+_zmcWF7!HwWP6~Ucw64k=+uG@SB z6lByOnxWFgzyRk{@2QRZH$wQchCRk@B(cW|*}iXq5*Dp>8CFzTZegk4jtJA|tm0dz zW(BCfiQagiuz1Uy?R40#sbQInY^xtbJdYAg!15;KsOGnl-qG$bj*A=34tsmDe)4hMYO31xRJ%1L-Uw*; zBl$Pt&dk#t^hq7}U8|A1D;*sa&(a6o9j47!L@A-Q z&+5?qjQ-~%NX$MCEd(+0g#qKCfQ}`r-rxn%-;kYdIvK9?Vc5ITcrBQ^$cI^xCD{-L zF9&z|{{88CpQZP#_EtSjN(r;;7n~-Y4pkx*Zq|stq+dcJek97LwI9O^U^`i&FveE3 zNU|===YM2wFx`wg0OFj+~ew#J=4|AN@rMJAAA*PXjcOMl&QEVh`b86Hr>HMd&}VYu!x|DPLAN13)12H1^R)B z@O%&9iLsCVC*gSs2LRr-{|LiovBSFV5ZqZHpy!q&QYBE8B#|JH1d$MNfH(lL5yR?Q zZ1M@Aobtvbewkx(As?`?w60a6F+RDfxZQ;EOpOh4`pxZmuaWz=bom)R%C~;hNr$T` z=fN0LVL;nlXfE;xu1Tm#u+89Y{+dq&mzS{-Bh$unc|3h;UXHx?W5=C8eV;;KR6i|M zJ-Bak)Z9tSGeV5X-3(m$iFw%A5#AYTy#CQEOEiEwcPZO(_1Nq#fDORYd^%Bx3Hy>+PnkweXTQsY-X!(IJVUaIgtL%Vp1`!II zg~R`NQr8G?qEAF4A&o{u^N01|;u4~F%wpBE09AM-wX#N+QrKkEBN zq5J7sPHz!Io5{k$9>!=%HP>iC%a68OA6b`=1o>l5K<;t+Vi zS~0FU0w6&++}*r#*ig@-ANaQP^(QgM3Le#MI@@(ih5BYUtNs})5No5cI!tELo4@1U zuAqkWl>gL$wcf({%zGA*GFQUreMiTFT@#CVSDEaqTo1DkLl<$DF_wnX8pOdvcObEK zOS0!jdLk^8)N1dP2?^r(fAGAO#sWH4C*B_1ulR2Mz(ADb=;>3HQWE)}h+y2H=SJFP z+T{cX>!xMPu<`&Dr^^|eSI;^LNFStv$wd~oNBvLVM;u8^kTa7y zEdFD84qdVHN{%FiLNgX|%10I;_UXryPXOs6i!3f~?^EMSrgSNIen+)Qfn={XygutRH#st6_$xg4=*aLANb7&aUoro;FiR5tMNyB5 z7nscPp_PAdIBxs}h(qIWpK#xCYf#2lz`{_ zG@7ENyBGK$bTf0Pg%4CK>KcFe8AQ9NnD4rJt>J>6;Y9yl{fj!x>uI7B_;`wkByKQE zBx0%YqE2MtU3y&lOmDPOuL0sc-*uTsbPEKOv z&!4GwBL6Mbn8y*b>^SZo(j|TsW_LT@{=TV7%o5X-4>K%nH}570Xbc~4vl;M_5QNe) zFS0dOzMYPqvRIQ_iRrvIrTjRenpZD1CEbCjG7UX$1`)Z#Kxo-y-; z=PjlIcmtL9a)8&oqHqs*GYKO7s7Zk;541&$5HQusxji$ZCigBLs^7bdDAoV)BxD>rS1F26KWTJMMf)9&=OpO^tWa^m9jaF9YKRNr4$} zNAc{X=3xmgI-|geGgo%{nNgW1!|q_xQB&2O8@* z2$;M`krZnb5+ul)>DIK!ENEGb1DF(L@b^`e*6xbbZC8?qU$_nj?9$q znXiXO(as~U{IDM3Tb=Cf@eBs)|529I_o(_q1S`7_XkTQ4A4(E_ z9c3#BX8kDIC2PF{_FQ@p?~G!w531m|Rey3firG($Sj=(rNxiB`mqaAZN?{81ZTy0w zEZO{K=tp>m&mcB*8t5Jcj_(pUJ(TCMK$7g zk>~qjBRe+SSkC?RE;PgRhNnp=nE5lGt}2+7jY@Eh$G%b|!j3gWlIsw3Zz$hcO&Sr=|?*`OSP9Ol7%t^YZ(i%wv^P)GY) z*YsM12p!=lQcs_%9|#Kp)4DTciqV8M=9Ehn>r9P%qSaXV$HMh+VIlcFO6ixlZGESJ z$7TmNK><%@>|M;>T{MOCVQ7JA6{YJJ$lVh@9>8ZLph@(E&H>`7W$-f_Ci`UK#lzgVgR*5dzrA|e!Lkq4loGjVZgAx z_TVfKV}C&K-j@6!KJR%wH-PNHeW!#7>mS^w`bZFpzk?C-pK}AfgbceOumZ-C80VdG z42N<>6{v{%;58T8KKuLm?>NbpZJ~$$0-df=PQQi!O#Iq9D#yE(d3Y&m|9ImjO`5OuEvQ&#d16t@lgmRjLv~;Hf}^`$ z@YUvlb2NykKB1*=nC;8r;K`g&0x{I`6dNj54~AELy$AkQQIP%>Cl4)+{y`tdIy9kS zvmxMO_03c_VLNGz(`qwI-10?c?&)oK@5FO;Li0w2cu&9Q&opE_*GVOiP(=sB&#vp` z@lbr4)=2TJ{9gHv{4y_1)!Non*YniOUV{)7Q=@*eB(97N%c8=6_&3*mDd1}(JtB)g zI7=4k~{zSIBo@t7*)NG>pC}RE0SMq7F9nY;(LJQDRf%=!Ie4Q zVG40LrE)5$@BJe3j<-O9X}4J#=eRWYQem5^4X$wVvq|=>om2W{ni8bl9mn2X_?o3q zkv@{s-MgNvT4gU;^wB!x$_toQ zP|{GcKjiSB^!Q9*x2`@8lzma5O^2g+k&4ia^)EXr;b|`$ut_)HigKTTXg*!ia-dXd z^$!k7ZBx-7MQ|OxXkALiDL=(sU7VE=T*Z{1*49cCTy$pM0UVm~1-aLC^xg}Ao$ zq^per2BN~)@M&2ZQfw^ar_*)N7lKKx_Pw=lIS_e#Vu~y>22oJw+y-@ZPc@K zq_OH*Z%6fuSX8%reM_)G<`wJ9)z&?d7XD}SPQYDlU31yH_Sql&Q>%+_+V57d-5$FR z#he#V18@A-(m4rkhjk@gx9z9O?Z~#1U|8=AYP1?BrntD(?&EzA6dJ07Cri9&LkCXO z|H`-a$l1hh<0C8_zkhP(-zP`KGT{Z2LxleC9x$o6Ob2Ee-9^O+_e^CPA)mVAajf=Z^J6ayHV(~~(e{~2oWR2{~qQQeGxd}3u6v~okrZ-3I3|Hax= zFeS~rRc|Y-K@b-)s3f4==9nwGd4r7lu1|#xZst?ZDI-fTt3$DRKiM5r3?}Qz-s>7Q zZvpq^i}{XVac-Uvr7~_1Msb_($3lZdQSKsQu}+q2tl!rod=PT!*!}2@EkE(^Kj_Qo zVjfjiR~+hQbL>rcSdksx522e0@70+;+2B<2Ef?fv4^4Ty8GR+ z{k@^d%`LO0oRO`)Q!qZ6gk8mZQq$odkB+CgY4Io!G%yA4aP6u*2@2Y!BezAa1r`wM z(Rh4c4j?9Yj9?0<-Ns`+30O${xmRcV8D9PKQKFNYr9E$CCMJ46Bwef(o-eaY_9aNL zD4aVz#%UNL{hPT?c2j^>Xn@+PMR3;eXwUDPKHm}r!?t;K$K|==Wj@3rk*TZgM>b02 z1T%wSUm&%IqzOJC&p^|^8?iq#YHp$i1Y$V9J9YfSDNKGM7QNgmS?d$+hGencU1#x` zo4S+LXZVN*rf5)r{n1FFwekj_J|B~-AZ|V*=LPP|MAq1j`cVzrcqS?r_RfZ3mJWms zD>QZAd;qALy<2>5T7Z+kD0^>1vlUI3f`}yHx%!F2JbM;6OdrRaYd~_ig6)F|HT3D} ztPitfnWTpQjy?8)^$I`k-ip~*^j&$$4=I~tVGLiSw4f#lYTXBIhqI0*QE3)Kx#TAF z8eSv}kAm=@znjK>$bGQYLnqnnoAnYFP=``m%Zsf_CFI%BbCW?&Oqk=K{J+6p8_-|pT;VA{jlUm=4@+Uxl+xOeQNhsj6+7iQ~tp0LXI z@2OO1)JopktCIXyDU8(LMWN}B=sm|Sx7KN9YC?kO=4p0+F4r_DA%l}R+!LmfP zibp{<{*4jk#$X9WI=}XeC*~)ooW!nFp3==~DtfC@Pk9a)l^S2gw~22bvj>*{q`VEM#AkVP!z-^1K7?Nj6JDA9tINLX$9DC8=lY zvL~1t`}wqd$W8hsBvEiE9_3S2Ufh}YEjCb(p5L$i?zyIyA^nAHhGhI39;h(aFeuJC z;)rj9M~Fj+s1{4t;R8y0jQo%SBxYV`-E(;LoRv9FveseTlJV=p_m#Fv)jq3C^;yfF zg68t06JtYcfi7{3e1POwbNh`C3Bkly1_2jI$}$^gnX!uX1z+-&J7fQJb!Y2*{!Y|D z`>v;2+I*G=#SMgO84qM_xY6=Dg|3*FCDdh=S~n=zoxrDJWZiD&GoDEHUFaF>d22~d zdmc5c`9ytsv6p7B*tL$-AUxyIH64h2QJQNuqHt6|ArN0ry7((3#*t30NUM^tUPd_X67nPsZAA;YYbC?C4GJo|5b67%S0VYZUA5AF9~SavGH>^ro>T^MgR zFddQ}w*T~*pk+*3m2Ym2-o0NXuSa@?g10!*5Pg$F^PHVZyQM(-L^jJ7aK}?#hg?HTlh3G{@=p5&(IH#g6;LcPINa2m+v7U&V8l zE%YAcqxVj3DoEYl(+-bcwfE4YpqxE%>=FRYJz9!WV>hY=3{FQ2Y9Bs#f&Vtp8<8*F zFGjd8>Gtj&wim=80Nj^L5Pf!do^4;fFT}ZvJ&kf)y6%a~mUcF7!eKu8{m#Ipy&i*5 zNfku`Z#QFg|K9tPc#r2Dh0%@Cz*C_BMm2F#;e_@Xu?Z35B(nqaRe~|qr<%})7s{}+ zt0a$eTxTaH4sE2}+e#;}KB!aY&J&zTIUN4AK5N^#z30~GY=Ly2d!{We|FS_`rpeJX zX@n&Bm9<@MlW`_Nn6hOvJpngctQZqpU;0LeRM2~flX;RFG6 zti~E3+QA+m!{eT3b*1m^|ET>Md}ZS9{=i`ohf+OYj;0J?6`k4$RgC|Wpzts$MfPO58>Sl(1qTp@NVEr zQrUX-kQwKdBhu?-{7kQ(lB(76!b$As&-s=6%^RS!MwXUCBIon|2T%pHw zsOvXWWV=TlS~mOR8C}8&Tf^O+{rO-+E%%ABnj?Agsp(o-OF#z6=udKv=-*cmHgLQ} zw^XYQMqOueElspj1n{8ftm>nP0eBhlTCvYyKj`4w4a33G%M5X@i9rHyj4b~s0ZNH1 zi=ETa3Z2vZ6n@Wpq5vzPEL&!xg5PD1z{aci@#00ne%uQ%pj=fZ(pkli8}{$nU`@3O zmO4-Y?r+dZV|}JW&f4t;9pInxeE;I)Mrg_?{CkG3^_QUe&adUvzjK@TkfKB4Ov*zM z1a%8!;Y37H^aPT%k(!>js^GedZad3ja~29>49}#g%z19>dllve!|YuPTaPYvM(!Bj z`yiHz776m*z}$9qq>UACZ8V*?m-{Ra)!}H-l(q_rv`B9zOJYu&jpYuc(%6JA+k5A7 zHVo%2Eztz?%idst2ySPlrh9$cZ?>E>i=<6}!bG?!`4!Zg6_8 z?$hZRsok19*8`PhTw2DQv}9r~5s|E}8klFu&a=@wllyP3E|eg7mp5-z-JJG-@0qHS z0TmWg<5EJaZNDxRl#QmYqxbcfW^7p8xo0MYQ5j7g6QP?r{{DEqF`!HRz-+a`9JOCy$=Jg#4fm)(B zw_|PgXCb~jw18?89=qXn#l7=U4#9&-T0gQCIz!Dh(feyIy{H97(R(i6ojH(GJJzo( z6?5?pJ8K_Z3=i{ZY)=?P_TLet#IL@5#_Qt(y#^MGMnU_CQSwdApji+w-@PIi9ej2M zhRMRAvT3wdJ3+jCti$I%BOAn-t@&|Yn%8M1b%9w5zRgS>W4w z-Lt~+sJ%_gjR&3DqYj;=ZCVd`f%?#GcfJFvSwydZf_#&v<;geZJN<^$Y#jww9qh;3 z#-2PNeBDPINScqJVB8U!>;n@HXrw1OBBuV;MV)k)n^wyh zXiGtsAH_!XnvcTIWkY?%U`#%IT91KU+=txmGfN1`mB;%2+W=f2pHgudtfB#>Lg3kJ z3nekDyJ(Xn5na%tYL1MCq(qf)eNlTRyfZ|&Hj`oTkEaNVQ)G6i^HSXn_hK5{I-_zs z92H?Ju0d|++LJ>^zT@X9r(K9egdnR6|5_C&abO(>Hb%wccd-D2t`C0~2?6;E4k*xz zB`kPL4QTqUo;fs!hkCccBCeV4A@ZBP2Gv5_?Hx`N`A!<=hxs`Rn_yZtx^Mz+s;Q&H z7?>Thnb4DkQZ0+H?eyV}T;6WsyDUNNO6@nPnfq+qLG4mEk4l-UUDq5oL@IM0zF4Xr ze>SMn1GVf#=uBVUzug&qrvs9=6`_KEM8aXlFhz131Xm@?LynA@^b6)X zHzz2Z$K<@{GG^Djx|hOiVyt^qTG=&ZkagagKdv@JDbLBGS>>G5T9$}0LJfnuU~DGm zHMCJp451ahBq(b>)vqfz&YI10O06ckb+RN^piHmq&*vW%3|%v_b?Tlz(-}|>J^APn z7Fkgmzd8l1SwGoV9=Gx@Zu zi+pz@mgh~CU2;#aOg!YuqSAPWUGl;o_38&EWi_tens>6Ploz!tw)M15LMC}MO)Q5k z0WhCIb8{1oqfo2uq4V!+*t@Q#xCq~B!U&fL?OqZ#Y;7~Eg(|lNFFepUd}~z68LY4Q z%bd|QO1k*31?Mg&q*6!lNSEN*Z;y}VpL}>5a!6#~sKEvV#Z35> zQr=E}PK)EKPVjsd@!F~<1sqFXhiVbm^A)vKl1ifg*;e$TtMImDJO~}vY$yJ+9FQ4U zI^Jz(XNOF2lrXU_zCm-pXZ8RbJJ_Q6j;AyB;T~GQ*0%w>B-k`h8Q)j@_(M`d*aheM zp!z=Lu}dwD%%>Tgue2hl)kPv{WWR8R zTgRzx^Vi8Y<12w~p4w#g1lQ*LdB*eqFlRy_Jm&zOGjfRC@_3&66qqLaZ4_T6%eXh> zV4EZ0n8cU82yvrZlsF`_`p&`Q@7(!T$GP!L8q3lA+F$ay8-hbq$!g`C5bA(Fc-M{<)PFs$U>2Z{O*ok##|k(!W(zP+$_|I5C5zjdfWUT%?oxY{P*AS~ z^(pXJ#a$kLN?1xNWO6F|vin)cw;5Hf7dHg>rO$I9R*q}D^k&^P)NIl;!Ck3M+pL|$ zVKa3!$wx|-R}Rr$J2u-|;m-Jvl#@X$Q9<-j-x`+MN{n@d9edZB19cpJ;HKYb zDtNS|-vjtodPWV6t>%Zs-DDB0@ml>8BHPt4-O{G2nj5>_@t`>DQE}S+gGww-3*nD}Um5 zHS&`cmNOoH)Te+p>xcyW-yyb+DnIyO4t==n0ZcjqbP~7IB121E-0BXTysT$RRR+KP zGQhU+zhtfvvhxY4qEU`_{7C)xMfkCciR?S&ZnF*_I(&j>7Qo(L3%Y@WbpRX$f_|g9VxcTcmkr1@~%X#9(`#cDSM`(`!S-kLX?|;)S{8z{S0gNIk A1poj5 literal 0 HcmV?d00001 diff --git a/spec/fixtures/onebox/wikimedia.response b/spec/fixtures/onebox/wikimedia.response new file mode 100644 index 00000000000..3481ce93a45 --- /dev/null +++ b/spec/fixtures/onebox/wikimedia.response @@ -0,0 +1 @@ +{"batchcomplete":"","query":{"normalized":[{"from":"File:Stones_members_montage2.jpg","to":"File:Stones members montage2.jpg"}],"pages":{"-1":{"ns":6,"title":"File:Stones members montage2.jpg","missing":"","known":"","imagerepository":"shared","imageinfo":[{"timestamp":"2010-12-07T23:13:30Z","user":"84user","thumburl":"https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Stones_members_montage2.jpg/500px-Stones_members_montage2.jpg","thumbwidth":500,"thumbheight":459,"url":"https://upload.wikimedia.org/wikipedia/commons/a/af/Stones_members_montage2.jpg","descriptionurl":"https://commons.wikimedia.org/wiki/File:Stones_members_montage2.jpg","descriptionshorturl":"https://commons.wikimedia.org/w/index.php?curid=12245228"}]}}}} \ No newline at end of file diff --git a/spec/fixtures/onebox/wikipedia.response b/spec/fixtures/onebox/wikipedia.response new file mode 100644 index 00000000000..3eb69cadd58 --- /dev/null +++ b/spec/fixtures/onebox/wikipedia.response @@ -0,0 +1,566 @@ + + + + +Billy Jack - Wikipedia, the free encyclopedia + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      +

      Navigation menu

      +
      + +
      + + +
      +
      + + + +
      +
      + +
      + + + + + + + diff --git a/spec/fixtures/onebox/wikipediaredirected.response b/spec/fixtures/onebox/wikipediaredirected.response new file mode 100644 index 00000000000..3c2f11c7c6e --- /dev/null +++ b/spec/fixtures/onebox/wikipediaredirected.response @@ -0,0 +1,899 @@ + + + +Ruby - Wikipedia, the free encyclopedia + + + + + + + + + + + + + + + + + + +
      +
      +
      + + +
      +

      Ruby

      +
      +
      From Wikipedia, the free encyclopedia
      +
      +
      + Jump to: navigation, search +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Ruby
      Ruby - Winza, Tanzania.jpg
      +
      Natural ruby crystals from Winza, Tanzania
      +
      General
      CategoryMineral variety
      Formula
      +(repeating unit)
      aluminium oxide with chromium, Al2O3:Cr
      Identification
      ColorRed, may be brownish, purplish, or pinkish
      Crystal habitVaries with locality. Terminated tabular hexagonal prisms.
      Crystal systemTrigonal (Hexagonal Scalenohedral), symbol (−3 2/m), space group R3c
      CleavageNo true cleavage
      FractureUneven or conchoidal
      Mohs scale hardness9.0
      LusterVitreous
      Streakwhite
      Diaphaneitytransparent
      Specific gravity4.0
      Refractive indexnω=1.768–1.772
      +nε=1.760–1.763
      Birefringence0.008
      PleochroismOrangey red, purplish red
      Ultraviolet fluorescencered under longwave
      Melting point2044 °C
      Solubilitynone
      Major varieties
      SapphireAny color except shades of red
      Corundumvarious colors
      EmeryGranular
      +

      A ruby is a pink to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). The red color is caused mainly by the presence of the element chromium. Its name comes from ruber, Latin for red. Other varieties of gem-quality corundum are called sapphires. The ruby is considered one of the four precious stones, together with the sapphire, the emerald, and the diamond.[1]

      +

      Prices of rubies are primarily determined by color. The brightest and most valuable "red" called pigeon blood-red, commands a large premium over other rubies of similar quality. After color follows clarity: similar to diamonds, a clear stone will command a premium, but a ruby without any needle-like rutile inclusions may indicate that the stone has been treated. Cut and carat (weight) are also an important factor in determining the price.

      + +

      Physical properties[edit]

      +
      +
      +
      +
      +Crystal structure of ruby
      +
      +
      +

      Rubies have a hardness of 9.0 on the Mohs scale of mineral hardness. Among the natural gems only moissanite and diamond are harder, with diamond having a Mohs hardness of 10.0 and moissonite falling somewhere in between corundum (ruby) and diamond in hardness. Ruby is α-alumina (the most stable form of Al2O3) in which a small fraction of the aluminium3+ ions are replaced by chromium3+ ions. Each Cr3+ is surrounded octahedrally by six O2- ions. This crystallographic arrangement strongly affects each Cr3+, resulting in light absorption in the yellow-green region of the spectrum and thus in the red color of the gem. When yellow-green light is absorbed by Cr3+, it is re-emitted as red luminescence.[2] This red emission adds to the red color perceived by the subtraction of green and violet light from white light, and adds luster to the gem's appearance. When the optical arrangement is such that the emission is stimulated by 694-nanometer photons reflecting back and forth between two mirrors, the emission grows strongly in intensity. This effect was used by Theodore Maiman in 1960 to make the first successful laser, based on ruby.

      +

      All natural rubies have imperfections in them, including color impurities and inclusions of rutile needles known as "silk". Gemologists use these needle inclusions found in natural rubies to distinguish them from synthetics, simulants, or substitutes. Usually the rough stone is heated before cutting. Almost all rubies today are treated in some form, with heat treatment being the most common practice. However, rubies that are completely untreated but still of excellent quality command a large premium.

      +

      Some rubies show a three-point or six-point asterism or "star". These rubies are cut into cabochons to display the effect properly. Asterisms are best visible with a single-light source, and move across the stone as the light moves or the stone is rotated. Such effects occur when light is reflected off the "silk" (the structurally oriented rutile needle inclusions) in a certain way. This is one example where inclusions increase the value of a gemstone. Furthermore, rubies can show color changes—though this occurs very rarely—as well as chatoyancy or the "cat's eye" effect.

      +

      Color[edit]

      +

      Generally, gemstone-quality corundum in all shades of red, including pink, are called rubies.[3][4] However, in the United States, a minimum color saturation must be met to be called a ruby, otherwise the stone will be called a pink sapphire.[3] This distinction between rubies and pink sapphires is relatively new, having arisen sometime in the 20th century. If a distinction is made, the line separating a ruby from a pink sapphire is not clear and highly debated.[5] As a result of the difficulty and subjectiveness of such distinctions, trade organizations such as the International Colored Gemstone Association (ICA) have adopted the broader definition for ruby which encompasses its lighter shades, including pink.[6][7]

      +

      Natural occurrence[edit]

      +

      The Mogok Valley in Upper Myanmar (Burma) was for centuries the world's main source for rubies. That region has produced some of the finest rubies ever mined, but in recent years very few good rubies have been found there. The very best color in Myanmar rubies is sometimes described as "pigeon's blood." In central Myanmar, the area of Mong Hsu began producing rubies during the 1990s and rapidly became the world's main ruby mining area. The most recently found ruby deposit in Myanmar is in Namya (Namyazeik) located in the northern state of Kachin.

      +

      Rubies have historically been mined in Thailand, the Pailin and Samlout District of Cambodia, Burma, India, Afghanistan and in Pakistan. In Sri Lanka, lighter shades of rubies (often "pink sapphires") are more commonly found. After the Second World War ruby deposits were found in Tanzania, Madagascar, Vietnam, Nepal, Tajikistan, and Pakistan.

      +

      A few rubies have been found in the U.S. states of Montana, North Carolina, South Carolina and Wyoming. While searching for aluminous schists in Wyoming, geologist Dan Hausel noted an association of vermiculite with ruby and sapphire and located six previously undocumented deposits.[8]

      +

      More recently, large ruby deposits have been found under the receding ice shelf of Greenland.

      +

      Republic of Macedonia is the only country in mainland Europe to have naturally occurring rubies. They can mainly be found around the city of Prilep. Macedonian ruby has a unique raspberry color.

      +

      In 2002 rubies were found in the Waseges River area of Kenya. There are reports of a large deposit of rubies found in 2009 in Mozambique, in Nanhumbir in the Cabo Delgado district of Montepuez.[9]

      +

      Spinel, another red gemstone, is sometimes found along with rubies in the same gem gravel or marble. Red spinel may be mistaken for ruby by those lacking experience with gems. However, the finest red spinels can have a value approaching that of the average ruby.[10] The color of rubies varies from vermilion to red. The most desired color is "pigeon's blood", which is pure red with a hint of blue. If the color is too pink, the stone is a pink sapphire. The same is true if it is too violet – it is a violet sapphire. The best rubies and star rubies are bright red. Most rubies come from Burma and Thailand.

      +

      Factors affecting value[edit]

      +

      Diamonds are graded using criteria that have become known as the four Cs, namely color, cut, clarity and carat weight. Similarly natural rubies can be evaluated using the four Cs together with their size and geographic origin.

      +

      Color: In the evaluation of colored gemstones, color is the single most important factor. Color divides into three components; hue, saturation and tone. Hue refers to "color" as we normally use the term. Transparent gemstones occur in the following primary hues: red, orange, yellow, green, blue, violet. These are known as pure spectral hues.[11] In nature there are rarely pure hues so when speaking of the hue of a gemstone we speak of primary and secondary and sometimes tertiary hues. In ruby the primary hue must be red. All other hues of the gem species corundum are called sapphire. Ruby may exhibit a range of secondary hues. Orange, purple, violet and pink are possible.

      + +

      The finest ruby is best described as being a vivid medium-dark toned red. Secondary hues add an additional complication. Pink, orange, and purple are the normal secondary hues in ruby. Of the three, purple is preferred because, firstly, the purple reinforces the red making it appear richer.[11] Secondly, purple occupies a position on the color wheel halfway between red and blue. In Burma where the term pigeon blood originated, rubies are set in pure gold. Pure gold is itself a highly saturated yellow. Set a purplish-red ruby in yellow and the yellow neutralizes its complement blue leaving the stone appearing to be pure red in the setting.[citation needed]

      +

      Treatments and enhancements[edit]

      +

      Improving the quality of gemstones by treating them is common practice. Some treatments are used in almost all cases and are therefore considered acceptable. During the late 1990s, a large supply of low-cost materials caused a sudden surge in supply of heat-treated rubies, leading to a downward pressure on ruby prices.

      +

      Improvements used include color alteration, improving transparency by dissolving rutile inclusions, healing of fractures (cracks) or even completely filling them.

      +

      The most common treatment is the application of heat. Most, if not all, rubies at the lower end of the market are heat treated on the rough stones to improve color, remove purple tinge, blue patches and silk. These heat treatments typically occur around temperatures of 1800 °C (3300 °F).[12] Some rubies undergo a process of low tube heat, when the stone is heated over charcoal of a temperature of about 1300 °C (2400 °F) for 20 to 30 minutes. The silk is only partially broken as the color is improved.

      +

      Another treatment, which has become more frequent in recent years, is lead glass filling. Filling the fractures inside the ruby with lead glass (or a similar material) dramatically improves the transparency of the stone, making previously unsuitable rubies fit for applications in jewelry.[13] The process is done in four steps:

      +
        +
      1. The rough stones are pre-polished to eradicate all surface impurities that may affect the process
      2. +
      3. The rough is cleaned with hydrogen fluoride
      4. +
      5. The first heating process during which no fillers are added. The heating process eradicates impurities inside the fractures. Although this can be done at temperatures up to 1400 °C (2500 °F) it most likely occurs at a temperature of around 900 °C (1600 °F) since the rutile silk is still intact.
      6. +
      7. The second heating process in an electrical oven with different chemical additives. Different solutions and mixes have shown to be successful, however mostly lead-containing glass-powder is used at present. The ruby is dipped into oils, then covered with powder, embedded on a tile and placed in the oven where it is heated at around 900 °C (1600 °F) for one hour in an oxidizing atmosphere. The orange colored powder transforms upon heating into a transparent to yellow-colored paste, which fills all fractures. After cooling the color of the paste is fully transparent and dramatically improves the overall transparency of the ruby.[14]
      8. +
      +

      If a color needs to be added, the glass powder can be "enhanced" with copper or other metal oxides as well as elements such as sodium, calcium, potassium etc.

      +

      The second heating process can be repeated three to four times, even applying different mixtures.[15] When jewelry containing rubies is heated (for repairs) it should not be coated with boracic acid or any other substance, as this can etch the surface; it does not have to be "protected" like a diamond.

      +

      The treatment can easily be determined using a 10x loupe and determination focuses on finding bubbles either in the cavities or in the fractures that were filled with glass.[16]

      +

      Synthetic and imitation rubies[edit]

      +
      +
      +
      +
      +
      +
      +
      +
      Artificial ruby under a normal light (top) and under a green laser light (bottom). Red light is emitted
      +
      +
      +
      +

      In 1837 Gaudin made the first synthetic rubies by fusing potash alum at a high temperature with a little chromium as a pigment. In 1847 Ebelmen made white sapphire by fusing alumina in boric acid. In 1877 Frenic and Freil made crystal corundum from which small stones could be cut. Frimy and Auguste Verneuil manufactured artificial ruby by fusing BaF2 and Al2O3 with a little chromium at red heat. In 1903 Verneuil announced he could produce synthetic rubies on a commercial scale using this flame fusion process.[17] By 1910, Verneuil's laboratory had expanded into a 30 furnace production facility, with annual gemstone production having reached 1,000 kilograms (2,000 lb) in 1907.

      +

      Other processes in which synthetic rubies can be produced are through Czochralski's pulling process, flux process, and the hydrothermal process. Most synthetic rubies originate from flame fusion, due to the low costs involved. Synthetic rubies may have no imperfections visible to the naked eye but magnification may reveal curves, striae and gas bubbles. The fewer the number and the less obvious the imperfections, the more valuable the ruby is; unless there are no imperfections (i.e., a "perfect" ruby), in which case it will be suspected of being artificial. Dopants are added to some manufactured rubies so they can be identified as synthetic, but most need gemological testing to determine their origin.

      +

      Synthetic rubies have technological uses as well as gemological ones. Rods of synthetic ruby are used to make ruby lasers and masers. The first working laser was made by Theodore H. Maiman in 1960[18] at Hughes Research Laboratories in Malibu, California, beating several research teams including those of Charles H. Townes at Columbia University, Arthur Schawlow at Bell Labs,[19] and Gould at a company called TRG (Technical Research Group). Maiman used a solid-state light-pumped synthetic ruby to produce red laser light at a wavelength of 694 nanometers (nm). Ruby lasers are still in use. Rubies are also used in applications where high hardness is required such as at wear exposed locations in modern mechanical clockworks, or as scanning probe tips in a coordinate measuring machine.

      +

      Imitation rubies are also marketed. Red spinels, red garnets, and colored glass have been falsely claimed to be rubies. Imitations go back to Roman times and already in the 17th century techniques were developed to color foil red—by burning scarlet wool in the bottom part of the furnace—which was then placed under the imitation stone.[20] Trade terms such as balas ruby for red spinel and rubellite for red tourmaline can mislead unsuspecting buyers. Such terms are therefore discouraged from use by many gemological associations such as the Laboratory Manual Harmonisation Committee (LMHC).

      +

      Records and famous rubies[edit]

      + +
        +
      • The Smithsonian's National Museum of Natural History in Washington, D.C. has received one of the world's largest and finest ruby gemstones. The 23.1 carats (4.6 g) Burmese ruby, set in a platinum ring with diamonds, was donated by businessman and philanthropist Peter Buck in memory of his late wife Carmen Lúcia. This gemstone displays a richly saturated red color combined with an exceptional transparency. The finely proportioned cut provides vivid red reflections. The stone was mined from the Mogok region of Burma (now Myanmar) in the 1930s.[21]
      • +
      • In 2007 the London jeweler Garrard & Co featured on their website a heart-shaped 40.63-carat ruby.[22]
      • +
      • On December 13/14, 2011 Elizabeth Taylor's complete jewellery collection was auctioned by Christie's. Several ruby-set pieces were included in the sale, notably a ring set with an 8.24 ct gem that broke the 'price-per-carat' record for rubies ($512,925 per carat, i.e. over $4.2 million in total),[23] and a necklace[24] that sold for over $3.7 million.
      • +
      • The Liberty Bell Ruby is the largest mined ruby in the world. It was stolen in a heist in 2011.[25]
      • +
      +

      Historical and cultural references[edit]

      +
        +
      • An early recorded transport and trading of rubies arises in the literature on the North Silk Road of China, wherein about 200 BC rubies were carried along this ancient trackway moving westward from China.[26]
      • +
      • Rubies have always been held in high esteem in Asian countries. They were used to ornament armor, scabbards, and harnesses of noblemen in India and China. Rubies were laid beneath the foundation of buildings to secure good fortune to the structure.[27]
      • +
      +

      See also[edit]

      + +

      References[edit]

      +
      +
        +
      1. ^ Precious Stones, Max Bauer, p. 2
      2. +
      3. ^ "Ruby: causes of color". Retrieved 15 may 2009. 
      4. +
      5. ^ a b Matlins, Antoinette Leonard (2010). Colored Gemstones. Gemstone Press. p. 203. ISBN 0-943763-72-X. 
      6. +
      7. ^ Reed, Peter (1991). Gemmology. Butterworth-Heinemann. p. 337. ISBN 0-7506-6449-5. 
      8. +
      9. ^ Wise, Richard G. "Gemstone Connoisseurship; The Finer Points, Part II". 
      10. +
      11. ^ Hughes, Richard W. "Walking the line in ruby & sapphire". ruby-sapphire.com. 
      12. +
      13. ^ Federman, David. "Pink Sapphire". Modern Jeweler. 
      14. +
      15. ^ Hausel, W. Dan (2009). Gems, Minerals and Rocks of Wyoming. Book Surge. p. 176. ISBN 1-4392-1856-0. 
      16. +
      17. ^ Mozambique: Police Seize Boat With 96 Illegal Immigrants. AllAfrica. 4 November 2010
      18. +
      19. ^ Wenk, Hans-Rudolf; Bulakh, A. G. (2004). Minerals: their constitution and origin. Cambridge, U.K.: Cambridge University Press. pp. 539–541. ISBN 0-521-52958-1. 
      20. +
      21. ^ a b Wise, Richard W. (2006). Secrets Of The Gem Trade, The Connoisseur's Guide To Precious Gemstones. Brunswick House Press. pp. 18–22. ISBN 0-9728223-8-0. 
      22. +
      23. ^ The Heat Treatment of Ruby and Sapphire. Bangkok, Thailand: Gemlab Inc. 1992. ISBN 0940965100. 
      24. +
      25. ^ Vincent Pardieu Lead Glass Filled/Repaired Rubies. Asian Institute of Gemological Sciences Gem Testing Laboratory. February 2005
      26. +
      27. ^ Richard W. Hughes (1997), Ruby & Sapphire, Boulder, CO, RWH Publishing, ISBN 978-0-9645097-6-4
      28. +
      29. ^ Milisenda, C C (2005). "Rubine mit bleihaltigen Glasern gefullt". Zeitschrift der Deutschen Gemmologischen Gesellschaft (in German) (Deutschen Gemmologischen Gesellschaft) 54 (1): 35–41. 
      30. +
      31. ^ "Lead Glass-Filled Rubies". GIA Global Dispatch (Gemological Institute of America). 2012. 
      32. +
      33. ^ "Bahadur: a Handbook of Precious Stones". 1943. Retrieved 2007-08-19. 
      34. +
      35. ^ Maiman, T.H. (1960). "Stimulated optical radiation in ruby". Nature 187 (4736): 493–494. Bibcode:1960Natur.187..493M. doi:10.1038/187493a0. 
      36. +
      37. ^ Hecht, Jeff (2005). Beam: The Race to Make the Laser. Oxford University Press. ISBN 0-19-514210-1. 
      38. +
      39. ^ "Thomas Nicols: A Lapidary or History of Gemstones". 1652. Retrieved 2007-08-19. 
      40. +
      41. ^ "The Carmen Lúcia Ruby". Exhibitions. Retrieved 2008-02-28. 
      42. +
      43. ^ "Garrards – Treasures (large and important jewelry pieces)". Retrieved 2010-11-08. 
      44. +
      45. ^ The Legendary Jewels, Evening Sale & Jewelry (Sessions II and III) | Press Release | Christie's. Christies.com (2011-12-14). Retrieved on 2012-07-11.
      46. +
      47. ^ Elizabeth Taylor's ruby and diamond necklace. News.yahoo.com (2011-09-07). Retrieved on 2012-07-11.
      48. +
      49. ^ http://philadelphia.cbslocal.com/2012/01/09/irreplaceable-2-million-ruby-stolen-in-wilmington-jewelry-heist/
      50. +
      51. ^ C. Michael Hogan, Silk Road, North China, The Megalithic Portal. 19 November 2007
      52. +
      53. ^ Smith, Henry G. (1896). "Chapter 2, Sapphires, Rubies". Gems and Precious Stones. Charles Potter Government Printer, Australia. 
      54. +
      +
      +

      External links[edit]

      + + + + + + + +


      + + + + + + + + + + +
      +
      +
      +
      +
      +

      Navigation menu

      +
      + +
      + + +
      +
      + + + +
      +
      +
      + + + + + + +
      +
      + + + + + + + diff --git a/spec/fixtures/onebox/xkcd.response b/spec/fixtures/onebox/xkcd.response new file mode 100644 index 00000000000..00c7bd6df5d --- /dev/null +++ b/spec/fixtures/onebox/xkcd.response @@ -0,0 +1 @@ +{"month": "10", "num": 327, "link": "", "year": "2007", "news": "", "safe_title": "Exploits of a Mom", "transcript": "[[A woman is talking on the phone, holding a cup]]\nPhone: Hi, this is your son's school. We're having some computer trouble.\nMom: Oh dear\u00c3\u00a2\u00c2\u0080\u00c2\u0094did he break something?\nPhone: In a way\u00c3\u00a2\u00c2\u0080\u00c2\u0094\nPhone: Did you really name your son \"Robert'); DROP TABLE Students;--\" ?\nMom: Oh, yes. Little Bobby Tables, we call him.\nPhone: Well, we've lost this year's student records. I hope you're happy.\nMom: And I hope you've learned to sanitize your database inputs.\n{{title-text: Her daughter is named Help I'm trapped in a driver's license factory.}}", "alt": "Her daughter is named Help I'm trapped in a driver's license factory.", "img": "http:\/\/imgs.xkcd.com\/comics\/exploits_of_a_mom.png", "title": "Exploits of a Mom", "day": "10"} \ No newline at end of file diff --git a/spec/fixtures/onebox/youku-meta.response b/spec/fixtures/onebox/youku-meta.response new file mode 100644 index 00000000000..4948d1ab44a --- /dev/null +++ b/spec/fixtures/onebox/youku-meta.response @@ -0,0 +1 @@ +{"data":[{"ct":"f","cs":"2139","logo":"http:\/\/g2.ykimg.com\/1100641F46528C827D38F313B54FF057305EFD-1D91-46C5-821D-DC010415AC44","seed":6981,"tags":["\u674e\u5b97\u76db","\u5317\u4eac\u6f14\u5531\u4f1a","\u9ad8\u6e05"],"categories":"95","videoid":"159325444","vidEncoded":"XNjM3MzAxNzc2","username":"\u7f2a\u65af\u5de6\u53f3\u624b","userid":"330649584","title":"20131116\u674e\u5b97\u76db\u65e2\u7136\u9752\u6625\u7559\u4e0d\u4f4f\u5317\u4eac\u6f14\u5531\u4f1a_\u5c71\u4e18\u9ad8\u6e05","up":0,"down":0,"ts":"eCPhhDOr8KU0kcSeAbfYFkk","tsup":"eCPlljCr8KU0kcSeAqXcFkk","preview":{"thumbs":["05210001528C82AA6A074A508F0ED369"],"sectiontime":"6000","host":"http:\/\/g2.ykimg.com\/"},"key1":"b344b3f4","key2":"f502ea489c71b119","tt":"0","videoSource":"1","seconds":"426.46","streamfileids":{"flv":"38*15*38*38*38*40*38*40*38*38*53*40*30*57*7*0*2*43*53*0*25*57*43*15*48*53*2*63*63*38*38*43*38*40*25*57*32*49*60*32*32*2*58*60*30*48*58*32*60*63*63*0*58*60*38*32*15*63*40*58*63*57*43*2*40*57*","mp4":"38*15*38*38*38*30*38*40*38*38*53*40*30*57*7*25*48*43*53*0*25*57*43*15*48*53*2*63*63*38*38*43*38*40*25*57*32*49*60*32*32*2*58*60*30*48*58*32*60*63*63*0*58*60*38*32*15*63*40*58*63*57*43*2*40*57*","hd2":"38*15*38*38*38*43*38*15*38*38*53*40*30*57*30*40*7*49*53*0*25*57*43*15*48*53*2*63*63*38*38*43*38*40*25*57*32*49*60*32*32*2*58*60*30*48*58*32*60*63*63*0*58*60*38*32*15*63*40*58*63*57*43*2*40*57*"},"segs":{"flv":[{"no":"0","size":"6184613","seconds":205,"k":"37c1eef9d45943ef261e1651","k2":"143edcb51afd4d171"},{"no":"1","size":"9216438","seconds":222,"k":"220a2502b066ad2d24120d63","k2":"1139d718a87e8cc40"}],"mp4":[{"no":"0","size":"13698266","seconds":228,"k":"76da9c943b762c3724120d63","k2":"16661d1c25fdaee0c"},{"no":"1","size":"15953117","seconds":199,"k":"28efdc07f014982624120d63","k2":"13b9062ccfa57562d"}],"hd2":[{"no":"0","size":"27687337","seconds":205,"k":"29f6914d58f7f3a7282a1f3e","k2":"1bd4a6f687452e7fe"},{"no":"1","size":"16198622","seconds":119,"k":"524dd8fbfb7de533261e1651","k2":"163153a4deeaa0408"},{"no":"2","size":"21240220","seconds":102,"k":"e3cafd8cbe886d8e261e1651","k2":"1c4344748c6bdac6c"}]},"streamsizes":{"flv":"15401051","mp4":"29651383","hd2":"65126179"},"stream_ids":{"flv":"34575279","mp4":"34575265","hd2":"34575346"},"streamlogos":{"flv":1,"mp4":1,"hd2":1},"streamtypes":["flv","mp4","hd2"],"streamtypes_o":["hd2","flvhd","mp4"]}],"user":{"id":0},"controller":{"search_count":true,"mp4_restrict":1,"stream_mode":1,"video_capture":true,"hd3_enabled":false,"area_code":617,"dma_code":506,"continuous":0,"playmode":"normal","circle":false,"tsflag":false,"other_disable":false,"xplayer_disable":false,"app_disable":false,"share_disabled":false,"download_disabled":false,"pc_disabled":false,"pad_disabled":false,"mobile_disabled":false,"tv_disabled":false,"comment_disabled":false}} \ No newline at end of file diff --git a/spec/fixtures/onebox/youku.response b/spec/fixtures/onebox/youku.response new file mode 100644 index 00000000000..e669e3fd9cb --- /dev/null +++ b/spec/fixtures/onebox/youku.response @@ -0,0 +1,1443 @@ + + + + +20131116李宗盛既然青春留不住北京演唱会_山丘高清—在线播放—优酷网,视频高清在线观看 + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + + + +
      +
      +
      + +
      +
      + +
      +
      +
      +
      + + +
      +
      +
      + APP下载 +
      +
      +
      +
      + 会员 +
      +
      + +
      +
      + +
      +
      + +
      +
      + + + + +
      + +
      +
      +
      +
      +
      + 音乐频道 + > + 音乐列表 + > + + 演唱会 +
      +
      +

      视频: 20131116李宗盛既然青春留不住北京演唱会_山丘高清

      +
      + +
      +
      + + + +
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      + +
      +
      +
      +
      +
      + +
      + +
      +
      +
      + +
      +
      +
      +
      + +
      +
      +
      +
      +
      + 00:00/00:00 +
      +
      +
      标屏
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      + +
      +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      +
      +
      +
      + Galaxy A 年轻正发声 +
      01:00
      +
      +
      + +
      + +
      5,105,100
      +
      +
      +
      +
      + 群星演绎为爱热牛奶 +
      04:55
      +
      +
      + +
      + +
      8,862,094
      +
      +
      + +
      +
      + +
      + +
      + +
      +
      +
      + + +
      +
      +
      +
      + +
      +
      +
      +
      +
      + +
      +
      + + +
      +
      + + +
      + +
      + +
      + + + +
      + +
      + +
      +
      +
      +
        +
      • +
      • +
      • +
      • +
      + 分享给好友 +
      +
      +
      +
      + + +
      + +
      + + + + + + +
      +
      + +
      +
      +
      +
      + +
      + +
      +
      订  阅
      +
      +
      +
      +
      +
      既然青春留不住,“爱的代价”“哭”“领悟”; +越过“山丘”“笑红尘”,“希望”“你走你的路”。 + +李宗盛“既然青春留不住” 北京演唱会(歌单) +part1人生的梦醒时分 +1.《爱情有什么道理》(张艾嘉) +2.《忙与盲》(张艾嘉) +3.《阿宗的三件事》(李宗盛) +4.《生命中的精灵》(李宗盛) +5....详情
      + +
      1年前 上传
      + +
      +
      + + +
      + +
      +
      + +
      + +
      +
      + +
      +
      + + + + +
      + +
      0/300
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      + + 稀饭 + + + 无语 + 难过 + + 搞笑 + + '+ +
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      发表评论
      + +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      + 发表评论 +
      +
      + +
      +
      + + +
      +
      + +
      + +
      +
      + +
      +
      + + +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spec/fixtures/onebox/youtube-channel.response b/spec/fixtures/onebox/youtube-channel.response new file mode 100644 index 00000000000..3db11c8b6ec --- /dev/null +++ b/spec/fixtures/onebox/youtube-channel.response @@ -0,0 +1,5446 @@ + + + + + + + + + + + + + + Google Chrome + - YouTube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + +
      +
      +
      +
      + +
      + +
      +
      +
      +
      Upload
      +
      + + Google Chrome + +
      + +
      + +
      +
      +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      +
      +
      + +
      +
      + +
      +
      + +
      + +
      + +
      +
      + +
      + +
      + +
      + + + + + +
      + +
      +
      +
      + + + + +
      +
      +
      +
      + + +
      +
      +
      +
      + + + + Google Chrome + + +
      + +
      +
      +
      + 846,509 + +
      + +
      +
      + +
      +
      +
      +

      + Subscription preferences + + +

      +
      +
      +
      +
      Loading...
      +
      + +
      +
      +
      +
      +

      + Loading icon + + +Loading... + +

      + +
      +
      +
      +
      + +
      +
      +
      +
      +
      +
      Working...
      +
      +
      + +
      +
      +
      +
      +
      + + +
      + +
      + +
      +

      + Google Chrome +

      +
      + +
      + +
      + + +
      + + + +
      + +
      +
      +
      +
      +
      + + + + + + + + + +
      +
      + +
      + + + + +
      + +
      +
      +
      + + + + + +
      +
      +
      +
      +
      + + +
      +
      + +
      +
      +
      +
      +
      Loading...
      +
      + +
      +
      +
      +
      + +
      +
      +
      +
      +
      +
      Working...
      +
      +
      + +
      +
      +
      +
      +
      + + +
      + to add this to Watch Later + +
      +
      +
      +

      +Add to +

      +
      +
      +
      +
      +
      + + + + + + + + diff --git a/spec/fixtures/onebox/youtube-embed.response b/spec/fixtures/onebox/youtube-embed.response new file mode 100644 index 00000000000..7395472b47e --- /dev/null +++ b/spec/fixtures/onebox/youtube-embed.response @@ -0,0 +1,7 @@ +YouTube
      \ No newline at end of file diff --git a/spec/fixtures/onebox/youtube-playlist.response b/spec/fixtures/onebox/youtube-playlist.response new file mode 100644 index 00000000000..1b67e5f95ed --- /dev/null +++ b/spec/fixtures/onebox/youtube-playlist.response @@ -0,0 +1,221 @@ + + + + + + + + The web is what you make of it - YouTube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spec/fixtures/onebox/youtube.response b/spec/fixtures/onebox/youtube.response new file mode 100644 index 00000000000..4915ea2ca0d --- /dev/null +++ b/spec/fixtures/onebox/youtube.response @@ -0,0 +1,1625 @@ + + + + + + + + +96neko - orange - YouTube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      IN +
      Upload
      + +
      + + + + + + +
      + +
      + +
      + +
      +
      + +
      + +
      + +
      +

      + This video is unavailable. +

      +
      +
      +
      + + +
      + +
      + + + + + + + + + +
      + +
      + +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      +
      +

      + + + + + + + + 96neko - orange + + +

      +
      + + +
      +
      +
      +

      Sign in to YouTube

      +
      + Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to like korotto5810's video. + +
      +
        +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      + +
      +
      +

      Sign in to YouTube

      +
      + Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to dislike korotto5810's video. + +
      +
        +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      + +
      +
      +
      +
      + + + + + + + + + + +
      +

      Sign in to YouTube

      +
      + Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to add korotto5810's video to your playlist. + +
      +
        +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      • +
        +
      • +
      + +
      + +
      + + + + + + + + + + +
      +
      + +
      +
      +
      +
      +
      +

      + Uploaded on Apr 29, 2011 + +

      + +
      +

      From NicoNicoDouga
      http://nine.nicovideo.jp/watch/sm1423...

      MP3 download link
      http://nicosound.anyap.info/sound/sm1...
      「MP3 を 抽出」←click

      eng & romaji
      http://www.animelyrics.com/doujin/voc...

      +
      +
      + +
        +
      • +

        +Category +

        +
        +

        Music

        + +
        +
      • + + +
      • +

        License

        +
        +

        +Standard YouTube License +

        + +
        +
      • +
      +
      + +
      +
        + +
      +
      + +
      +
      + +
      +
      + +
      +
      +
      +
      + +
      +
      +
      +

      + Loading icon + + +Loading... + +

      + +
      +
      +
      + +
      + +
      +
      +

      + Loading icon + + +Loading... + +

      + +
      +
      + +
      +
      +

      + Loading icon + + +Loading... + +

      + +
      +
      + +
      +
      +

      + Loading icon + + +Loading... + +

      + +
      +
      + +
      + +
      + +
      +
      + Ratings have been disabled for this video. +
      + +
      + +
      +
      + Rating is available when the video has been rented. +
      + +
      + +
      +
      + This feature is not available right now. Please try again later. +
      +
      + + +
      + +
      + + + +
      + +
      +
      +
      +

      + Loading icon + + +Loading... + +

      + +
      +
      + + +
      + + +
      +
      +
      + +
      + + + +
      + +
      + +
      +
      + +
      +
      +
      + +
      +
      + +
      + +
      + + +
      +
      + +
      +
      +
      +
      +
      Loading...
      +
      + +
      +
      +
      +
      + +
      +
      +
      +
      +
      +
      +
      Working...
      +
      +
      + +
      +
      +
      +
      +
      + + + +
      + to add this to Watch Later + +
      + + + + + + + +
      + + diff --git a/spec/lib/onebox/engine/allowlisted_generic_onebox_spec.rb b/spec/lib/onebox/engine/allowlisted_generic_onebox_spec.rb new file mode 100644 index 00000000000..b66c91c14fc --- /dev/null +++ b/spec/lib/onebox/engine/allowlisted_generic_onebox_spec.rb @@ -0,0 +1,185 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe Onebox::Engine::AllowlistedGenericOnebox do + describe ".===" do + it "matches any domain" do + expect(described_class === URI('http://foo.bar/resource')).to be(true) + end + + it "doesn't match an IP address" do + expect(described_class === URI('http://1.2.3.4/resource')).to be(false) + expect(described_class === URI('http://1.2.3.4:1234/resource')).to be(false) + end + end + + describe 'html_providers' do + class HTMLOnebox < Onebox::Engine::AllowlistedGenericOnebox + def data + { + html: 'cool html', + height: 123, + provider_name: 'CoolSite', + } + end + end + + it "doesn't return the HTML when not in the `html_providers`" do + Onebox::Engine::AllowlistedGenericOnebox.html_providers = [] + expect(HTMLOnebox.new("http://coolsite.com").to_html).to be_nil + end + + it "returns the HMTL when in the `html_providers`" do + Onebox::Engine::AllowlistedGenericOnebox.html_providers = ['CoolSite'] + expect(HTMLOnebox.new("http://coolsite.com").to_html).to eq "cool html" + end + end + + describe 'rewrites' do + class DummyOnebox < Onebox::Engine::AllowlistedGenericOnebox + def generic_html + "" + end + end + + it "doesn't rewrite URLs that arent in the list" do + Onebox::Engine::AllowlistedGenericOnebox.rewrites = [] + expect(DummyOnebox.new("http://youtube.com").to_html).to eq "" + end + + it "rewrites URLs when allowlisted" do + Onebox::Engine::AllowlistedGenericOnebox.rewrites = %w(youtube.com) + expect(DummyOnebox.new("http://youtube.com").to_html).to eq "" + end + end + + describe 'oembed_providers' do + let(:url) { "http://www.meetup.com/Toronto-Ember-JS-Meetup/events/219939537" } + + before do + stub_request(:get, url).to_return(status: 200, body: onebox_response('meetup')) + stub_request(:get, "http://api.meetup.com/oembed?url=#{url}").to_return(status: 200, body: onebox_response('meetup_oembed')) + end + + it 'uses the endpoint for the url' do + onebox = described_class.new("http://www.meetup.com/Toronto-Ember-JS-Meetup/events/219939537") + expect(onebox.raw).not_to be_nil + expect(onebox.raw[:title]).to eq "February EmberTO Meet-up" + end + end + + describe "cookie support" do + let(:url) { "http://www.dailymail.co.uk/news/article-479146/Brutality-justice-The-truth-tarred-feathered-drug-dealer.html" } + + it "sends the cookie with the request" do + stub_request(:get, url) + .with(headers: { cookie: 'evil=trout' }) + .to_return(status: 200, body: onebox_response('dailymail')) + + onebox = described_class.new(url) + onebox.options = { cookie: "evil=trout" } + + expect(onebox.to_html).not_to be_empty + end + + it "fetches site_name and article_published_time tags" do + stub_request(:get, url).to_return(status: 200, body: onebox_response('dailymail')) + onebox = described_class.new(url) + + expect(onebox.to_html).to include("Mail Online – 8 Aug 14") + end + end + + describe 'canonical link' do + context 'uses canonical link if available' do + let(:mobile_url) { "https://m.etsy.com/in-en/listing/87673424/personalized-word-pillow-case-letter" } + let(:canonical_url) { "https://www.etsy.com/in-en/listing/87673424/personalized-word-pillow-case-letter" } + before do + stub_request(:get, mobile_url).to_return(status: 200, body: onebox_response('etsy_mobile')) + stub_request(:get, canonical_url).to_return(status: 200, body: onebox_response('etsy')) + end + + it 'fetches opengraph data and price from canonical link' do + onebox = described_class.new(mobile_url) + expect(onebox.to_html).not_to be_nil + expect(onebox.to_html).to include("images/favicon.ico") + expect(onebox.to_html).to include("Etsy") + expect(onebox.to_html).to include("Personalized Word Pillow Case") + expect(onebox.to_html).to include("Allow your personality to shine through your decor; this contemporary and modern accent will help you do just that.") + expect(onebox.to_html).to include("https://i.etsystatic.com/6088772/r/il/719b4b/1631899982/il_570xN.1631899982_2iay.jpg") + expect(onebox.to_html).to include("CAD 52.00") + end + end + + context 'does not use canonical link for Discourse topics' do + let(:discourse_topic_url) { "https://meta.discourse.org/t/congratulations-most-stars-in-2013-github-octoverse/12483" } + let(:discourse_topic_reply_url) { "https://meta.discourse.org/t/congratulations-most-stars-in-2013-github-octoverse/12483/2" } + before do + stub_request(:get, discourse_topic_url).to_return(status: 200, body: onebox_response('discourse_topic')) + stub_request(:get, discourse_topic_reply_url).to_return(status: 200, body: onebox_response('discourse_topic_reply')) + end + + it 'fetches opengraph data from original link' do + onebox = described_class.new(discourse_topic_reply_url) + expect(onebox.to_html).not_to be_nil + expect(onebox.to_html).to include("Congratulations, most stars in 2013 GitHub Octoverse!") + expect(onebox.to_html).to include("Thanks for that link and thank you – and everyone else who is contributing to the project!") + expect(onebox.to_html).to include("https://d11a6trkgmumsb.cloudfront.net/optimized/2X/d/d063b3b0807377d98695ee08042a9ba0a8c593bd_2_690x362.png") + end + end + end + + describe 'to_html' do + let(:original_link) { "http://www.dailymail.co.uk/pages/live/articles/news/news.html?in_article_id=479146&in_page_id=1770" } + let(:redirect_link) { 'http://www.dailymail.co.uk/news/article-479146/Brutality-justice-The-truth-tarred-feathered-drug-dealer.html' } + + before do + stub_request(:get, original_link).to_return( + status: 301, + headers: { + location: redirect_link, + } + ) + stub_request(:get, redirect_link).to_return(status: 200, body: onebox_response('dailymail')) + end + + around do |example| + previous_options = Onebox.options.to_h + example.run + Onebox.options = previous_options + end + + it "follows redirects and includes the summary" do + Onebox.options = { redirect_limit: 2 } + onebox = described_class.new(original_link) + expect(onebox.to_html).to include("It was the most chilling image of the week") + end + + it "recives an error with too many redirects" do + Onebox.options = { redirect_limit: 1 } + onebox = described_class.new(original_link) + expect(onebox.to_html).to be_nil + end + end + + describe 'missing description' do + context 'works without description if image is present' do + before do + stub_request(:get, "https://edition.cnn.com/2020/05/15/health/gallery/coronavirus-people-adopting-pets-photos/index.html") + .to_return(status: 200, body: onebox_response('cnn')) + + stub_request(:get, "https://www.cnn.com/2020/05/15/health/gallery/coronavirus-people-adopting-pets-photos/index.html") + .to_return(status: 200, body: onebox_response('cnn')) + end + + it 'shows basic onebox' do + onebox = described_class.new("https://edition.cnn.com/2020/05/15/health/gallery/coronavirus-people-adopting-pets-photos/index.html") + expect(onebox.to_html).not_to be_nil + expect(onebox.to_html).to include("https://edition.cnn.com/2020/05/15/health/gallery/coronavirus-people-adopting-pets-photos/index.html") + expect(onebox.to_html).to include("https://cdn.cnn.com/cnnnext/dam/assets/200427093451-10-coronavirus-people-adopting-pets-super-tease.jpg") + expect(onebox.to_html).to include("People are fostering and adopting pets during the pandemic") + end + end + end +end diff --git a/spec/lib/onebox/engine/amazon_onebox_spec.rb b/spec/lib/onebox/engine/amazon_onebox_spec.rb new file mode 100644 index 00000000000..44479d18920 --- /dev/null +++ b/spec/lib/onebox/engine/amazon_onebox_spec.rb @@ -0,0 +1,196 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe Onebox::Engine::AmazonOnebox do + context "regular amazon page" do + before do + @link = "https://www.amazon.com/Knit-Noro-Accessories-Colorful-Little/dp/193609620X" + @uri = "https://www.amazon.com/dp/193609620X" + + stub_request(:get, "https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X") + .to_return(status: 200, body: onebox_response("amazon")) + end + + include_context "engines" + it_behaves_like "an engine" + + describe "works with international domains" do + def check_link(tdl, link) + onebox_cls = Onebox::Matcher.new(link).oneboxed + expect(onebox_cls).to_not be(nil) + expect(onebox_cls.new(link).url).to include("https://www.amazon.#{tdl}") + end + + it "matches canadian domains" do + check_link("ca", "https://www.amazon.ca/Too-Much-Happiness-Alice-Munro-ebook/dp/B0031TZ98K/") + end + + it "matches german domains" do + check_link("de", "https://www.amazon.de/Buddenbrooks-Verfall-einer-Familie-Roman/dp/3596294312/") + end + + it "matches uk domains" do + check_link("co.uk", "https://www.amazon.co.uk/Pygmalion-George-Bernard-Shaw/dp/1420925237/") + end + + it "matches japanese domains" do + check_link("co.jp", "https://www.amazon.co.jp/%E9%9B%AA%E5%9B%BD-%E6%96%B0%E6%BD%AE%E6%96%87%E5%BA%AB-%E3%81%8B-1-1-%E5%B7%9D%E7%AB%AF-%E5%BA%B7%E6%88%90/dp/4101001014/") + end + + it "matches chinese domains" do + check_link("cn", "https://www.amazon.cn/%E5%AD%99%E5%AD%90%E5%85%B5%E6%B3%95-%E5%AD%99%E8%86%91%E5%85%B5%E6%B3%95-%E5%AD%99%E6%AD%A6/dp/B0011C40FC/") + end + + it "matches french domains" do + check_link("fr", "https://www.amazon.fr/Les-Mots-autres-%C3%A9crits-autobiographiques/dp/2070114147/") + end + + it "matches italian domains" do + check_link("it", "https://www.amazon.it/Tutte-poesie-Salvatore-Quasimodo/dp/8804520477/") + end + + it "matches spanish domains" do + check_link("es", "https://www.amazon.es/familia-Pascual-Duarte-Camilo-Jos%C3%A9-ebook/dp/B00EJRTKTW/") + end + + it "matches brasilian domains" do + check_link("com.br", "https://www.amazon.com.br/A-p%C3%A1tria-chuteiras-Nelson-Rodrigues-ebook/dp/B00J2B414Y/") + end + + it "matches indian domains" do + check_link("in", "https://www.amazon.in/Fireflies-Rabindranath-Tagore/dp/9381523169/") + end + + it "matches mexican domains" do + check_link("com.mx", "https://www.amazon.com.mx/Legend-Zelda-Links-Awakening-Nintendo/dp/B07SG15148/") + end + end + + describe "#url" do + let(:long_url) { "https://www.amazon.ca/gp/product/B087Z3N428?pf_rd_r=SXABADD0ZZ3NF9Q5F8TW&pf_rd_p=05378fd5-c43e-4948-99b1-a65b129fdd73&pd_rd_r=0237fb28-7f47-49f4-986a-be0c78e52863&pd_rd_w=FfIoI&pd_rd_wg=Hw4qq&ref_=pd_gw_unk" } + + it "maintains the same http/https scheme as the requested URL" do + expect(described_class.new("https://www.amazon.fr/gp/product/B01BYD0TZM").url) + .to eq("https://www.amazon.fr/dp/B01BYD0TZM") + + expect(described_class.new("http://www.amazon.fr/gp/product/B01BYD0TZM").url) + .to eq("https://www.amazon.fr/dp/B01BYD0TZM") + end + + it "removes parameters from the URL" do + expect(described_class.new(long_url).url) + .not_to include("?pf_rd_r") + end + end + + describe "#to_html" do + it "includes image" do + expect(html).to include("https://images-na.ssl-images-amazon.com/images/I/51opYcR6kVL._SY400_.jpg") + end + + it "includes description" do + expect(html).to include("You should learn a programming language every year, as recommended by The Pragmatic Programmer.") + end + + it "includes price" do + expect(html).to include("$21.11") + end + + it "includes title" do + expect(html).to include("Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)") + end + end + end + + context "amazon with opengraph" do + let(:link) { "https://www.amazon.com/dp/B01MFXN4Y2" } + let(:html) { described_class.new(link).to_html } + + before do + stub_request(:get, "https://www.amazon.com/dp/B01MFXN4Y2") + .to_return(status: 200, body: onebox_response("amazon-og")) + + stub_request(:get, "https://www.amazon.com/Christine-Rebecca-Hall/dp/B01MFXN4Y2") + .to_return(status: 200, body: onebox_response("amazon-og")) + end + + describe "#to_html" do + it "includes image" do + expect(html).to include("https://images-na.ssl-images-amazon.com/images/I/51nOF2iBa6L._SX940_.jpg") + end + + it "includes description" do + expect(html).to include("CHRISTINE is the story of an aspiring newswoman caught in the midst of a personal and professional life crisis. Between unrequited love, frustration at work, a tumultuous home, and self-doubt; she begins to spiral down a dark path.") + end + + it "includes title" do + expect(html).to include("Watch Christine online - Amazon Video") + end + end + end + + context "amazon book page" do + let(:link) { "https://www.amazon.com/dp/B00AYQNR46" } + let(:html) { described_class.new(link).to_html } + + before do + stub_request(:get, "https://www.amazon.com/dp/B00AYQNR46") + .to_return(status: 200, body: onebox_response("amazon")) + + stub_request(:get, "https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X") + .to_return(status: 200, body: onebox_response("amazon")) + end + + describe "#to_html" do + it "includes title and author" do + expect(html).to include("Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)") + expect(html).to include("Bruce Tate") + end + + it "includes ISBN" do + expect(html).to include("978-1934356593") + end + + it "includes publisher" do + expect(html).to include("Pragmatic Bookshelf") + end + end + end + + context "amazon ebook page" do + let(:link) { "https://www.amazon.com/dp/193435659X" } + let(:html) { described_class.new(link).to_html } + + before do + stub_request(:get, "https://www.amazon.com/dp/193435659X") + .to_return(status: 200, body: onebox_response("amazon-ebook")) + + stub_request(:get, "https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers-ebook/dp/B00AYQNR46") + .to_return(status: 200, body: onebox_response("amazon-ebook")) + end + + describe "#to_html" do + it "includes title and author" do + expect(html).to include("Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)") + expect(html).to include("Bruce Tate") + end + + it "includes image" do + expect(html).to include("https://images-na.ssl-images-amazon.com/images/I/51LZT%2BtSrTL._SX133_.jpg") + end + + it "includes ASIN" do + expect(html).to include("B00AYQNR46") + end + + it "includes rating" do + expect(html).to include("4.2 out of 5 stars") + end + + it "includes publisher" do + expect(html).to include("Pragmatic Bookshelf") + end + end + end +end diff --git a/spec/lib/onebox/engine/audio_onebox_spec.rb b/spec/lib/onebox/engine/audio_onebox_spec.rb new file mode 100644 index 00000000000..dbb12ad6de5 --- /dev/null +++ b/spec/lib/onebox/engine/audio_onebox_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe Onebox::Engine::AudioOnebox do + it "supports ogg" do + expect(Onebox.preview('http://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg').to_s).to match(/
      + + +
      +

      Billy Jack

      +
      +
      From Wikipedia, the free encyclopedia
      +
      +
      + Jump to: navigation, search +
      +
      +
      This article is about the 1971 film. For the wrestler of a similar name, see Billy Jack Haynes.
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Billy Jack
      Billy Jack poster.jpg
      +
      Theatrical release poster.
      +
      Directed byTom Laughlin
      +as T.C. Frank
      Produced byTom Laughlin
      +as Mary Rose Solti
      Written byTom Laughlin
      +(as Frank Christina)
      +Delores Taylor
      +(as Theresa Christina)
      StarringTom Laughlin
      +Delores Taylor
      Music byMundell Lowe, Dennis Lambert, Brian Potter
      CinematographyFred Koenekamp
      +John M. Stephens
      Editing byLarry Heath
      +Marion Rothman
      StudioNational Student Film Corporation
      Distributed byWarner Bros.
      Release datesMay 1, 1971
      Running time114 min.
      CountryUnited States
      LanguageEnglish
      Budget$800,000
      Box office$32,500,000[1]
      +

      Billy Jack is a 1971 action/drama independent film; the second of four films centering on a character of the same name which began with the movie The Born Losers (1967), played by Tom Laughlin, who directed and co-wrote the script. Filming began in Prescott, Arizona, in the fall of 1969, but the movie was not completed until 1971. American International Pictures pulled out, halting filming. 20th Century-Fox came forward and filming eventually resumed but when that studio refused to distribute the film, Warner Bros. stepped forward.

      +

      Still, the film lacked distribution, so Laughlin booked it in to theaters himself in 1971.[1] The film died at the box office in its initial run, but eventually took in more than $40 million in its 1973 re-release, with distribution supervised by Laughlin.

      +

      + +

      +

      Plot[edit]

      +

      Billy Jack is a "half-breed" American Navajo Indian[citation needed], a Green Beret Vietnam War veteran, and a hapkido master. The character made his début in The Born Losers (1967), a "biker film" about a motorcycle gang terrorizing a California town. Billy Jack rises to the occasion to defeat the gang when defending a college student with evidence against them for gang rape.

      +

      In the second film, Billy Jack, the hero defends the hippie-themed Freedom School and students from townspeople who do not understand or like the counterculture students. The school is organized by Jean Roberts (Delores Taylor).

      +

      In one scene, a group of Indian children from the school go to town for ice cream and are refused service and then abused and humiliated by Bernard Posner and his gang. This prompts a violent outburst by Billy. Later, Billy's girlfriend Jean is raped and an Indian student is murdered by Bernard (David Roya), the son of the county's corrupt political boss (Bert Freed). Billy confronts Bernard and sustains a gunshot wound before killing him with a hand strike to the throat, after Bernard was having sex with a 13-year-old girl. After a climactic shootout with the police, and pleading from Jean, Billy Jack surrenders to the authorities and is arrested. As he is driven away, a large crowd of supporters raise their fists as a show of defiance and support. The plot continues in the sequel, The Trial of Billy Jack.

      +

      Box-office and critical reception[edit]

      +

      The film was re-released in 1973 and earned an estimated $8,275,000 in North American rentals.[2]

      +

      Billy Jack holds a "Fresh" rating of 62% at Rotten Tomatoes.[3] As of February 2014 it has a score of 6.1 on IMDB.

      +

      In his Movie and Video Guide, film critic Leonard Maltin writes: "Seen today, its politics are highly questionable, and its 'message' of peace looks ridiculous, considering the amount of violence in the film."

      +

      Roger Ebert also saw the message of the film as self-contradictory, writing: "I'm also somewhat disturbed by the central theme of the movie. 'Billy Jack' seems to be saying the same thing as 'Born Losers,' that a gun is better than a constitution in the enforcement of justice."[4]

      +

      Delores Taylor received a Golden Globe nomination as Most Promising Newcoming Actress. Tom Laughlin won the grand prize for the film at the 1971 Taormina International Film Festival in Italy.

      +

      Soundtrack[edit]

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Billy Jack
      Soundtrack album by Mundell Lowe
      Released1972
      Recorded1971
      GenreFilm score
      LabelWarner Bros.
      +WS 1926
      ProducerMundell Lowe
      Mundell Lowe chronology
      + + + + + + +
      Satan in High Heels
      +(1961)
      Billy Jack
      +(1971)
      California Guitar
      +(1974)
      +
      +

      The film score was composed, arranged and conducted by Mundell Lowe and the soundtrack album was originally released on the Warner Bros. label.[5]

      +

      Reception[edit]

      +

      The Allmusic review states "a strange and striking combination of styles that somehow is effective... a listenable disc whose flaws only add to the warmth".[6] The film's theme song, "One Tin Soldier (The Legend of Billy Jack)" by the band Coven, became a Top 40 hit in 1971, and featured the chorus:

      +
      +

      Go ahead and hate your neighbor; go ahead and cheat a friend.
      +Do it in the name of heaven; you can justify it in the end.
      +There won't be any trumpets blowin' come the judgment day
      +On the bloody morning after, one tin soldier rides away

      +
      + + + + + + + + + + + + + + + +
      Professional ratings
      Review scores
      SourceRating
      Allmusic3.5/5 stars[6]
      +

      Track listing[edit]

      +

      All compositions by Mundell Lowe, except as indicated.

      +
        +
      1. "One Tin Soldier" (Dennis Lambert, Brian Potter) – 3:18
      2. +
      3. "Hello Billy Jack" – 0:45
      4. +
      5. "Old and the New" – 1:00
      6. +
      7. "Johnnie" (Teresa Kelly) – 2:35
      8. +
      9. "Look, Look to the Mountain" (Kelly) – 1:40
      10. +
      11. "When Will Billy Love Me" (Lynn Baker) – 3:24
      12. +
      13. "Freedom Over Me" (Gwen Smith) – 0:35
      14. +
      15. "All Forked Tongue Talk Alike" – 2:54
      16. +
      17. "Challenge" – 2:20
      18. +
      19. "Rainbow Made of Children" (Baker) – 3:50
      20. +
      21. "Most Beautiful Day" – 0:30
      22. +
      23. "An Indian Dance" – 1:15
      24. +
      25. "Ceremonial Dance" – 1:59
      26. +
      27. "Flick of the Wrist" – 2:15
      28. +
      29. "It's All She Left Me" – 1:56
      30. +
      31. "You Shouldn't Do That" – 3:21
      32. +
      33. "Ring Song" (Katy Moffatt) – 4:25
      34. +
      35. "Thy Loving Hand" – 1:35
      36. +
      37. "Say Goodbye 'Cause You're Leavin'" – 2:36
      38. +
      39. "The Theme from Billy Jack" – 2:21
      40. +
      41. "One Tin Soldier (End Title)" (Lambert, Potter) – 1:06
      42. +
      +

      Personnel[edit]

      +
        +
      • Mundell Lowe: arranger, conductor
      • +
      • Coven featuring Jinx Dawson (tracks 1 & 21), Teresa Kelly (tracks 4 & 5), Lynn Baker (tracks 6 & 10), Gwen Smith (track 7), Katy Moffatt (track 17): vocals
      • +
      • Other unidentified musicians
      • +
      +

      Influence[edit]

      +

      Marketed as an action film, the story focuses on the plight of Native Americans during the civil rights movement. It attained a cult following among younger audiences due to its youth-oriented, anti-authority message and the then-novel martial arts fight scenes which predate the Bruce Lee/kung fu movie trend that followed.[7] The centerpiece of the film features Billy Jack, enraged over the mistreatment of his Indian friends, fighting racist thugs using hapkido techniques.

      +

      Billy Jack's wardrobe (black T-shirt, blue denim jacket, blue jeans, and a black hat with a beadwork band) would become nearly as iconic as the character.

      +

      The second major movie to make use of the word "fuck" (MASH being the first). A black student says the words "fucked up" during the scene where the Freedom school students are talking about the "Second Coming".

      +

      Billy Jack in popular culture[edit]

      +
        +
      • In 1975 (release date 12/30/1974), Firesign Theater, an American comedy group, made reference to Billy Jack on their album, "In The Next World, You're on Your Own," in the form of "Billy Jack Dog Food", and "I'm not Billy Jacking you," among other thematic references.
      • +
      • In 1975, musician Curtis Mayfield recorded and released a song titled, "Billy Jack" on his album There's No Place Like America Today.
      • +
      • In 1976 musician Paul Simon played "Billy Paul" (a parody of Billy Jack, unrelated[8] to musician Billy Paul) in a sketch on the second season of the NBC comedy show Saturday Night Live, after the film Billy Jack aired earlier that evening on NBC.
      • +
      • In 1982, a professional wrestler, Billy Jack Haynes, debuted as "Billy Jack" wearing a hat like Billy Jack. He changed his wrestling name from "Billy Jack" to "Billy Jack Haynes" after Tom Laughlin threatened to sue.
      • +
      • In the series Mystery Science Theater 3000, at least two episodes reference Billy Jack: on the episode Werewolf, after a fight breaks out between a racist dig supervisor and his Indian help, Tom Servo says, "This is where Billy Jack should come riding up."; on the episode Track of the Moon Beast, after the Native American professor finishes telling a story, Crow says, "Uh huh...do you know Billy Jack?"
      • +
      • In an episode of The Simpsons ("Bart of War"), Bart joins a Boy Scouts of America-like group called the "Pre-Teen Braves", and they engage in a rivalry with "the Cavalry Kids". A montage of the two groups fighting each other is set to Coven's version of One Tin Soldier.
      • +
      • The song "Kooler than Jesus" by My Life with the Thrill Kill Kult features samples from the film.
      • +
      • Billy Jack is referenced in an episode of Gilmore Girls ("Red Light on the Wedding Night") while Lorelai and Rory are watching the movie in their living room. At the line "Billy Jack, I'm gonna kill you if it's the last thing I do!", Lorelai responds, "Ugh, he so jinxed himself with that one." Rory replies, "Yeah, he should've said 'Billy Jack, I'm gonna kill you or buy myself a lovely chenille sweater.'"
      • +
      • Upon meeting serial killer Cary Stayner—then considered a possible material witness to a 1999 murder in Yosemite National Park—FBI Agent Jeff Rinek asked if Stayner had ever seen the movie Billy Jack, noting Stayner's resemblance to the film's hero. Initially, Stayner denied seeing the movie.[9] However, 90 minutes later, after building rapport during the drive to the FBI headquarters in Sacramento from the nudist resort where he was picked up, Stayner surprised Rinek by reciting several of Billy Jack's lines.[10]
      • +
      • In the motion picture Major Payne, Damon Wayans as the title character references the iconic fight scene quote "Now, what I'm goin' do is take this right foot and I'm 'a put it 'cross the left side your face."
      • +
      • In season three of the television series Sabrina The Teenage Witch, principal Mr. Kraft reveals that Billy Jack is his favorite film.
      • +
      • Billy Jack was referenced by Jim Carrey in Yes Man.
      • +
      • Metal band Goblin Cock have a song entitled "Ode to Billy Jack" on their 2009 album Come With Me if You Want to Live, which is a tribute to him.
      • +
      • In the movie Drillbit Taylor, actor Owen Wilson references Billy Jack by saying to a cast mate "I am gonna Billy Jack your ass."
      • +
      • In the episode of the animated show Pinky and the Brain, titled "Brainy Jack," Brain assumes the role of the titular Brainy Jack to trick a commune of hippies into helping him take over the world. Brain's wardrobe is a direct reference to Billy Jack, especially the hat with a beaded hat-band. Likewise, the song Pinky sings in the episode is a parody of "One Tin Soldier."
      • +
      • British electro band Relaxed Muscle (fronted by Jarvis Cocker, from Pulp) released a song called "Billy Jack" on their only album A Heavy Nite With... in 2003. It was released as a single with a music video that featured Cocker (as alter ego, Darren Spooner) in Western garb reminiscent of Billy Jack's trademark outfit.
      • +
      • In the Warehouse 13 Season 2 episode "13.1", the brain damaged Hugo Miller shouts "Billy Jack!" excitedly after Myka Bering kicks a gas station attendant who had pulled a gun.
      • +
      • In the book "The Berlin Blues", a play by Drew Hayden Taylor, the character named Trailer references Billy Jack when he says on page 92, "No Cirque du Billy Jack?" when the plan for Ojibway World which was supposed to be opening on the reserve falls through.
      • +
      • Bill Maher referenced Billy Jack in a July 2012 blog post about fundamentalist Mormons.
      • +
      +

      References[edit]

      +
      +
        +
      1. ^ a b Waxman, Sharon (June 20, 2005). "Billy Jack Is Ready to Fight the Good Fight Again". The New York Times. Retrieved 2011-01-02. 
      2. +
      3. ^ "Big Rental Films of 1973", Variety, 9 January 1974 p 19
      4. +
      5. ^ Billy Jack - Rotten Tomatoes
      6. +
      7. ^ Billy Jack - Roger Ebert
      8. +
      9. ^ Mundell Lowe discography accessed August 23, 2012
      10. +
      11. ^ a b Viglione, J. Allmusic Review accessed August 23, 2012
      12. +
      13. ^ Stewart, Jocelyn Y. (January 14, 2007). "Bong Soo Han, 73; grand master of hapkido won film fans for martial arts". Los Angeles Times. Retrieved 2010-11-25. 
      14. +
      15. ^ "The Story of Billy Paul". November 20, 1976. Retrieved 2012-07-15. 
      16. +
      17. ^ Finz, Stacy (December 15, 2002). "The Case of a Lifetime, Part One (2002, December 15)". SFGate.com. Retrieved 2008-12-10. 
      18. +
      19. ^ "The Case of a Lifetime, Part Two (2002, December 15)". SFGate.com. December 14, 2002. Retrieved 2008-12-10. 
      20. +
      +
      +

      External links[edit]

      + + + + + + + + + + + +
      +
      +
      +

      +
      + + + + + + + + + + + New post + + + +
      + +
      +
      +