','UL'=>''];
@@ -20,7 +20,7 @@ protected function renderNode(\DOMNode $node)
protected function renderQuickTemplate($id, $xml)
{
$attributes=$this->matchAttributes($xml);
- $html='';switch($id){case'/LIST':$attributes=\array_pop($this->attributes);if(!isset($attributes['type']))$html.='
';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0))$html.='';else$html.='';break;case'BANDCAMP':$attributes+=['track_num'=>\null,'track_id'=>\null];$html.='';break;case'CODE':$html.='';break;case'DAILYMOTION':$attributes+=['id'=>\null];$html.='';break;case'EMOJI':$attributes+=['seq'=>\null];$textContent=$this->getQuickTextContent($xml);$html.='
';break;case'FACEBOOK':$attributes+=['type'=>\null,'id'=>\null];$html.='';break;case'KICKSTARTER':$attributes+=['id'=>\null];$html.='';else$html.=' style="display:inline-block;width:100%;max-width:220px">';$html.='';break;case'LIST':$attributes+=['type'=>\null];if(!isset($attributes['type']))$html.='';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0)){$html.='';}else$html.='';$this->attributes[]=$attributes;break;case'QUOTE':$html.='';if(isset($attributes['author']))$html.='
'.\str_replace('"','"',$attributes['author']).' '.\htmlspecialchars($this->params['L_WROTE'],0).'';break;case'SOUNDCLOUD':$attributes+=['secret_token'=>\null,'id'=>\null];$html.='
';break;case'SPOILER':$attributes+=['title'=>\null];$html.='
';break;case'TD':$html.='
';break;case'TH':$html.=' | ';break;case'TWITCH':$attributes+=['channel'=>\null,'clip_id'=>\null];$html.='';break;case'VIMEO':$attributes+=['id'=>\null];$html.='';break;case'YOUTUBE':$attributes+=['id'=>\null,'t'=>\null];$html.='';}
+ $html='';switch($id){case'/LIST':$attributes=\array_pop($this->attributes);if(!isset($attributes['type']))$html.='';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0))$html.='';else$html.='';break;case'BANDCAMP':$attributes+=['track_num'=>\null,'track_id'=>\null];$html.='';break;case'CODE':$html.='';break;case'DAILYMOTION':$attributes+=['id'=>\null];$html.='';break;case'EMOJI':$attributes+=['seq'=>\null];$textContent=$this->getQuickTextContent($xml);$html.=' ';break;case'FACEBOOK':$attributes+=['type'=>\null,'id'=>\null];$html.='';break;case'KICKSTARTER':$attributes+=['id'=>\null];$html.='';else$html.=' style="display:inline-block;width:100%;max-width:220px">';$html.='';break;case'LIST':$attributes+=['type'=>\null];if(!isset($attributes['type']))$html.='';elseif((\strpos($attributes['type'],'decimal')===0)||(\strpos($attributes['type'],'lower')===0)||(\strpos($attributes['type'],'upper')===0)){$html.='';}else$html.='';$this->attributes[]=$attributes;break;case'QUOTE':$html.='';if(isset($attributes['author']))$html.=' '.\str_replace('"','"',$attributes['author']).' '.\htmlspecialchars($this->params['L_WROTE'],0).'';break;case'SOUNDCLOUD':$attributes+=['secret_token'=>\null,'id'=>\null];$html.=' ';break;case'SPOILER':$attributes+=['title'=>\null];$html.=' ';break;case'TD':$html.=' ';break;case'TH':$html.=' | ';break;case'TWITCH':$attributes+=['channel'=>\null,'clip_id'=>\null];$html.='';break;case'VIMEO':$attributes+=['id'=>\null];$html.='';break;case'YOUTUBE':$attributes+=['id'=>\null,'t'=>\null];$html.='';}
return $html;
}
}
\ No newline at end of file
diff --git a/src/Bundles/MediaPack.php b/src/Bundles/MediaPack.php
index ed24dd9f22..fc376a06e1 100644
--- a/src/Bundles/MediaPack.php
+++ b/src/Bundles/MediaPack.php
@@ -12,7 +12,7 @@ abstract class MediaPack extends \s9e\TextFormatter\Bundle
protected static $renderer;
public static function getParser()
{
- return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:1:{s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:3:"://";s:6:"regexp";s:26:"/\\bhttps?:\\/\\/[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:50000;}}s:14:"registeredVars";a:3:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:12:"/^https?$/Di";}s:16:"MediaEmbed.hosts";a:155:{s:14:"abcnews.go.com";s:7:"abcnews";s:9:"amazon.ca";s:6:"amazon";s:12:"amazon.co.uk";s:6:"amazon";s:12:"amazon.co.jp";s:6:"amazon";s:10:"amazon.com";s:6:"amazon";s:9:"amazon.de";s:6:"amazon";s:9:"amazon.es";s:6:"amazon";s:9:"amazon.fr";s:6:"amazon";s:9:"amazon.in";s:6:"amazon";s:9:"amazon.it";s:6:"amazon";s:11:"audioboo.fm";s:9:"audioboom";s:13:"audioboom.com";s:9:"audioboom";s:13:"audiomack.com";s:9:"audiomack";s:12:"bandcamp.com";s:8:"bandcamp";s:7:"bbc.com";s:7:"bbcnews";s:7:"blab.im";s:4:"blab";s:18:"bleacherreport.com";s:14:"bleacherreport";s:9:"break.com";s:5:"break";s:8:"bcove.me";s:10:"brightcove";s:19:"link.brightcove.com";s:10:"brightcove";s:11:"cbsnews.com";s:7:"cbsnews";s:14:"video.cnbc.com";s:4:"cnbc";s:7:"cnn.com";s:3:"cnn";s:13:"money.cnn.com";s:8:"cnnmoney";s:16:"collegehumor.com";s:12:"collegehumor";s:6:"cc.com";s:13:"comedycentral";s:17:"comedycentral.com";s:13:"comedycentral";s:8:"coub.com";s:4:"coub";s:6:"dai.ly";s:11:"dailymotion";s:15:"dailymotion.com";s:11:"dailymotion";s:16:"democracynow.org";s:12:"democracynow";s:10:"dumpert.nl";s:7:"dumpert";s:11:"8tracks.com";s:11:"eighttracks";s:8:"espn.com";s:4:"espn";s:11:"espn.go.com";s:4:"espn";s:12:"facebook.com";s:8:"facebook";s:7:"flic.kr";s:6:"flickr";s:10:"flickr.com";s:6:"flickr";s:7:"fora.tv";s:6:"foratv";s:17:"video.foxnews.com";s:7:"foxnews";s:13:"foxsports.com";s:9:"foxsports";s:14:"funnyordie.com";s:10:"funnyordie";s:12:"gamespot.com";s:8:"gamespot";s:16:"gametrailers.com";s:12:"gametrailers";s:14:"gettyimages.be";s:5:"getty";s:14:"gettyimages.cn";s:5:"getty";s:17:"gettyimages.co.jp";s:5:"getty";s:17:"gettyimages.co.uk";s:5:"getty";s:15:"gettyimages.com";s:5:"getty";s:18:"gettyimages.com.au";s:5:"getty";s:14:"gettyimages.de";s:5:"getty";s:14:"gettyimages.dk";s:5:"getty";s:14:"gettyimages.es";s:5:"getty";s:14:"gettyimages.fr";s:5:"getty";s:14:"gettyimages.ie";s:5:"getty";s:14:"gettyimages.it";s:5:"getty";s:14:"gettyimages.nl";s:5:"getty";s:14:"gettyimages.pt";s:5:"getty";s:14:"gettyimages.se";s:5:"getty";s:6:"gty.im";s:5:"getty";s:10:"gfycat.com";s:6:"gfycat";s:8:"gifs.com";s:4:"gifs";s:10:"github.com";s:4:"gist";s:13:"globalnews.ca";s:10:"globalnews";s:12:"gofundme.com";s:8:"gofundme";s:16:"drive.google.com";s:11:"googledrive";s:15:"plus.google.com";s:10:"googleplus";s:15:"docs.google.com";s:12:"googlesheets";s:14:"healthguru.com";s:10:"healthguru";s:8:"hudl.com";s:4:"hudl";s:8:"hulu.com";s:4:"hulu";s:15:"humortv.vara.nl";s:9:"humortvnl";s:7:"ign.com";s:3:"ign";s:8:"imdb.com";s:4:"imdb";s:9:"imgur.com";s:5:"imgur";s:13:"indiegogo.com";s:9:"indiegogo";s:13:"instagram.com";s:9:"instagram";s:11:"archive.org";s:15:"internetarchive";s:12:"izlesene.com";s:8:"izlesene";s:14:"jwplatform.com";s:10:"jwplatform";s:12:"video.khl.ru";s:3:"khl";s:15:"kickstarter.com";s:11:"kickstarter";s:15:"kissvideo.click";s:9:"kissvideo";s:10:"libsyn.com";s:6:"libsyn";s:10:"livecap.tv";s:7:"livecap";s:12:"liveleak.com";s:8:"liveleak";s:11:"livestre.am";s:10:"livestream";s:14:"livestream.com";s:10:"livestream";s:10:"my.mail.ru";s:6:"mailru";s:10:"medium.com";s:6:"medium";s:12:"metacafe.com";s:8:"metacafe";s:12:"mixcloud.com";s:8:"mixcloud";s:7:"mlb.com";s:3:"mlb";s:9:"mrctv.org";s:5:"mrctv";s:9:"msnbc.com";s:5:"msnbc";s:30:"channel.nationalgeographic.com";s:13:"natgeochannel";s:28:"video.nationalgeographic.com";s:11:"natgeovideo";s:11:"nbcnews.com";s:7:"nbcnews";s:13:"nbcsports.com";s:9:"nbcsports";s:7:"nhl.com";s:3:"nhl";s:7:"npr.org";s:3:"npr";s:4:"n.pr";s:3:"npr";s:11:"nytimes.com";s:7:"nytimes";s:10:"oddshot.tv";s:7:"oddshot";s:10:"orfium.com";s:6:"orfium";s:12:"pastebin.com";s:8:"pastebin";s:13:"pinterest.com";s:9:"pinterest";s:8:"plays.tv";s:7:"playstv";s:11:"podbean.com";s:7:"podbean";s:9:"prezi.com";s:5:"prezi";s:10:"reddit.com";s:6:"reddit";s:9:"rutube.ru";s:6:"rutube";s:10:"scribd.com";s:6:"scribd";s:14:"slideshare.net";s:10:"slideshare";s:14:"soundcloud.com";s:10:"soundcloud";s:12:"sportsnet.ca";s:9:"sportsnet";s:16:"open.spotify.com";s:7:"spotify";s:16:"play.spotify.com";s:7:"spotify";s:22:"store.steampowered.com";s:10:"steamstore";s:12:"stitcher.com";s:8:"stitcher";s:12:"strawpoll.me";s:9:"strawpoll";s:14:"streamable.com";s:10:"streamable";s:12:"teamcoco.com";s:8:"teamcoco";s:7:"ted.com";s:3:"ted";s:15:"theatlantic.com";s:11:"theatlantic";s:15:"theguardian.com";s:11:"theguardian";s:12:"theonion.com";s:8:"theonion";s:11:"tinypic.com";s:7:"tinypic";s:7:"tmz.com";s:3:"tmz";s:17:"traileraddict.com";s:13:"traileraddict";s:10:"tumblr.com";s:6:"tumblr";s:9:"twitch.tv";s:6:"twitch";s:11:"twitter.com";s:7:"twitter";s:10:"ustream.tv";s:7:"ustream";s:9:"vbox7.com";s:5:"vbox7";s:8:"veoh.com";s:4:"veoh";s:8:"vevo.com";s:4:"vevo";s:11:"viagame.com";s:7:"viagame";s:18:"videodetective.com";s:14:"videodetective";s:12:"videomega.tv";s:9:"videomega";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:6:"vk.com";s:2:"vk";s:12:"vkontakte.ru";s:2:"vk";s:11:"vocaroo.com";s:7:"vocaroo";s:7:"vox.com";s:3:"vox";s:18:"washingtonpost.com";s:14:"washingtonpost";s:19:"worldstarhiphop.com";s:4:"wshh";s:7:"wsj.com";s:3:"wsj";s:13:"xboxclips.com";s:9:"xboxclips";s:11:"xboxdvr.com";s:7:"xboxdvr";s:16:"screen.yahoo.com";s:11:"yahooscreen";s:9:"youku.com";s:5:"youku";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";}s:16:"MediaEmbed.sites";a:121:{s:7:"abcnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:68:"!abcnews\\.go\\.com/(?:video/embed\\?id=|[^/]+/video/[^/]+-)(?\'id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:2:"id";}}}i:1;a:0:{}}s:6:"amazon";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:37:"#/(?:dp|gp/product)/(?\'id\'[A-Z0-9]+)#";i:1;R:172;}i:1;a:2:{i:0;s:50:"#amazon\\.(?:co\\.)?(?\'tld\'ca|de|es|fr|in|it|jp|uk)#";i:1;a:2:{i:0;s:0:"";i:1;s:3:"tld";}}}i:1;R:175;}s:9:"audioboom";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:49:"!audioboo(?:\\.f|m\\.co)m/(?:boo|post)s/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:9:"audiomack";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:57:"!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:4:"mode";i:2;s:2:"id";}}}i:1;R:175;}s:8:"bandcamp";a:2:{i:0;R:175;i:1;a:2:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!/album=(?\'album_id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"album_id";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;a:1:{i:0;s:0:"";}}}}i:1;a:2:{s:7:"extract";a:3:{i:0;a:2:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;R:203;}i:1;a:2:{i:0;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:9:"track_num";}}i:2;a:2:{i:0;s:25:"!/track=(?\'track_id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"track_id";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;R:209;}}}}}s:7:"bbcnews";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:44:"!bbc\\.com\\\\/news\\\\/(?\'id\'[-\\\\\\w/]+)\\\\/embed!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:18:"!bbc\\.com/news/\\w!";i:1;R:209;}}}}}s:4:"blab";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:68:"#blab\\.im/(?!about$|live$|replay$|scheduled$|search\\?)(?\'id\'[-\\w]+)#";i:1;R:172;}}i:1;R:175;}s:14:"bleacherreport";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!id="video-(?\'id\'[-\\w]+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:13:"!/articles/.!";i:1;R:209;}}}}}s:5:"break";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:33:"!break\\.com/video/.*-(?\'id\'\\d+)$!";i:1;R:172;}}i:1;R:175;}s:10:"brightcove";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:108:"!meta name="twitter:player" content=".*?bcpid(?\'bcpid\'\\d+).*?bckey=(?\'bckey\'[-,~\\w]+).*?bctid=(?\'bctid\'\\d+)!";i:1;a:4:{i:0;s:0:"";i:1;s:5:"bcpid";i:2;s:5:"bckey";i:3;s:5:"bctid";}}}s:5:"match";a:2:{i:0;a:2:{i:0;s:13:"!bcove\\.me/.!";i:1;R:209;}i:1;a:2:{i:0;s:40:"!link\\.brightcove\\.com/services/player/!";i:1;R:209;}}}}}s:7:"cbsnews";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:46:"#cbsnews\\.com/videos?/(?!watch/)(?\'id\'[-\\w]+)#";i:1;R:172;}i:1;a:2:{i:0;s:42:"#cbsnews\\.com/video/watch/\\?id=(?\'id\'\\d+)#";i:1;R:172;}}i:1;R:175;}s:4:"cnbc";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:38:"!cnbc\\.com/gallery/\\?video=(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:3:"cnn";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:31:"!cnn.com/videos/(?\'id\'.*\\.cnn)!";i:1;R:172;}i:1;a:2:{i:0;s:47:"!cnn\\.com/video/data/2\\.0/video/(?\'id\'.*\\.cnn)!";i:1;R:172;}}i:1;R:175;}s:8:"cnnmoney";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:43:"!money\\.cnn\\.com/video/(?\'id\'.*\\.cnnmoney)!";i:1;R:172;}}i:1;R:175;}s:12:"collegehumor";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:46:"!collegehumor\\.com/(?:video|embed)/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:13:"comedycentral";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:49:"!(?\'id\'mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:56:"!c(?:c|omedycentral)\\.com/(?:full-episode|video-clip)s/!";i:1;R:209;}}}}}s:4:"coub";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:27:"!coub\\.com/view/(?\'id\'\\w+)!";i:1;R:172;}}i:1;R:175;}s:11:"dailymotion";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:27:"!dai\\.ly/(?\'id\'[a-z0-9]+)!i";i:1;R:172;}i:1;a:2:{i:0;s:92:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[a-z0-9]+)!i";i:1;R:172;}i:2;a:2:{i:0;s:17:"!start=(?\'t\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:1:"t";}}}i:1;R:175;}s:12:"democracynow";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:66:"!democracynow.org/(?:embed/)?(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:72:"!democracynow\\.org/(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)\' rel=\'canonical!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:33:"!m\\.democracynow\\.org/stories/\\d!";i:1;R:209;}}}}}s:7:"dumpert";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!dumpert\\.nl/mediabase/(?\'id\'\\d+[/_]\\w+)!";i:1;R:172;}}i:1;R:175;}s:11:"eighttracks";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!8tracks\\.com/[-\\w]+/(?\'id\'\\d+)(?=#|$)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:30:"!eighttracks://mix/(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:24:"!8tracks\\.com/[-\\w]+/\\D!";i:1;R:209;}}}}}s:4:"espn";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:43:"#video/(?:clip(?:\\?id=|/_/id/))?(?\'id\'\\d+)#";i:1;R:172;}}i:1;R:175;}s:8:"facebook";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?])@";i:1;R:172;}i:1;a:2:{i:0;s:51:"@facebook\\.com/(?\'user\'\\w+)/(?\'type\'post|video)s?/@";i:1;a:3:{i:0;s:0:"";i:1;s:4:"user";i:2;s:4:"type";}}i:2;a:2:{i:0;s:46:"@facebook\\.com/video/(?\'type\'post|video)\\.php@";i:1;a:2:{i:0;s:0:"";i:1;s:4:"type";}}}i:1;R:175;}s:6:"flickr";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:37:"@flickr\\.com/photos/[^/]+/(?\'id\'\\d+)@";i:1;R:172;}i:1;a:2:{i:0;s:33:"@flic\\.kr/(?!p/)[^/]+/(?\'id\'\\d+)@";i:1;R:172;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:1:{i:0;R:367;}s:5:"match";a:1:{i:0;a:2:{i:0;s:26:"@flic\\.kr/p/(?\'short\'\\w+)@";i:1;a:2:{i:0;s:0:"";i:1;s:5:"short";}}}s:3:"url";s:52:"https://www.flickr.com/photo.gne?rb=1&short={@short}";}}}s:6:"foratv";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:22:"!embed\\?id=(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:24:"!fora\\.tv/\\d+/\\d+/\\d+/.!";i:1;R:209;}}}}}s:7:"foxnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:34:"!video\\.foxnews\\.com/v/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:9:"foxsports";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"@BKQ29B/(?\'id\'\\w+)@";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:11:"@/video/\\d@";i:1;R:209;}}}}}s:10:"funnyordie";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!funnyordie\\.com/videos/(?\'id\'[0-9a-f]+)!";i:1;R:172;}}i:1;R:175;}s:8:"gamespot";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:64:"!gamespot\\.com.*?/(?:events|videos)/.*?-(?\'id\'\\d+)/(?:[#?].*)?$!";i:1;R:172;}}i:1;R:175;}s:12:"gametrailers";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:18:"!embed/(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:51:"!gametrailers\\.com/(?:full-episode|review|video)s/!";i:1;R:209;}}}}}s:5:"getty";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:20:"!gty\\.im/(?\'id\'\\d+)!";i:1;R:172;}i:1;a:2:{i:0;s:47:"!gettyimages\\.[.\\w]+/detail(?=/).*?/(?\'id\'\\d+)!";i:1;R:172;}i:2;a:2:{i:0;s:30:"!#[-\\w]*picture-id(?\'id\'\\d+)$!";i:1;R:172;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:4:{i:0;a:2:{i:0;s:30:"!"height":[ "]*(?\'height\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:6:"height";}}i:1;a:2:{i:0;s:28:"!"width":[ "]*(?\'width\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:5:"width";}}i:2;a:2:{i:0;s:29:"!\\bid[=:][\'"]?(?\'et\'[-=\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:2:"et";}}i:3;a:2:{i:0;s:31:"!\\bsig[=:][\'"]?(?\'sig\'[-=\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"sig";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:2:"//";i:1;R:209;}}s:3:"url";s:42:"http://embed.gettyimages.com/preview/{@id}";}}}s:6:"gfycat";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!gfycat\\.com/(?:gifs/detail/)?(?\'id\'\\w+)!";i:1;R:172;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:59:"!meta name="twitter:player:height" content="(?\'height\'\\d+)!";i:1;R:433;}i:1;a:2:{i:0;s:57:"!meta name="twitter:player:width" content="(?\'width\'\\d+)!";i:1;R:438;}}s:5:"match";R:451;s:3:"url";s:30:"http://gfycat.com/iframe/{@id}";}}}s:4:"gifs";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:31:"!gifs\\.com/(?:gif/)?(?\'id\'\\w+)!";i:1;R:172;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:55:"!meta property="og:image:width" content="(?\'width\'\\d+)!";i:1;R:438;}i:1;a:2:{i:0;s:57:"!meta property="og:image:height" content="(?\'height\'\\d+)!";i:1;R:433;}}s:5:"match";R:451;s:3:"url";s:26:"https://gifs.com/gif/{@id}";}}}s:4:"gist";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:58:"!gist\\.github\\.com/(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)!";i:1;R:172;}}i:1;R:175;}s:10:"globalnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:33:"!globalnews\\.ca/video/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:8:"gofundme";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:35:"@gofundme\\.com/(?\'id\'\\w+)(?![^#?])@";i:1;R:172;}}i:1;R:175;}s:11:"googledrive";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:52:"!drive\\.google\\.com/.*?(?:file/d/|id=)(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;R:175;}s:10:"googleplus";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:83:"!//plus\\.google\\.com/(?:u/\\d+/)?(?:\\+(?\'name\'[^/]+)|(?\'oid\'\\d+))/posts/(?\'pid\'\\w+)!";i:1;a:4:{i:0;s:0:"";i:1;s:4:"name";i:2;s:3:"oid";i:3;s:3:"pid";}}}i:1;R:175;}s:12:"googlesheets";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:95:"@docs\\.google\\.com/spreadsheet(?:/ccc\\?key=|s/d/)(?!e/)(?\'id\'[-\\w]+)[^#]*(?:#gid=(?\'gid\'\\d+))?@";i:1;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:3:"gid";}}}i:1;R:175;}s:10:"healthguru";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"!healthguru\\.com/embed/(?\'id\'\\w+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:38:"!healthguru\\.com/(?:content/)?video/.!";i:1;R:209;}}}}}s:4:"hudl";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:69:"!hudl\\.com/athlete/(?\'athlete\'\\d+)/highlights/(?\'highlight\'[\\da-f]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:7:"athlete";i:2;s:9:"highlight";}}i:1;a:2:{i:0;s:60:"!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!";i:1;R:525;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;R:529;}s:5:"match";a:1:{i:0;a:2:{i:0;s:14:"!hudl\\.com/v/!";i:1;R:209;}}}}}s:4:"hulu";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"!eid=(?\'id\'[-\\w]+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:18:"!hulu\\.com/watch/!";i:1;R:209;}}}}}s:9:"humortvnl";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:45:"!humortv\\.vara\\.nl/\\w+\\.(?\'id\'[-.\\w]+)\\.html!";i:1;R:172;}}i:1;R:175;}s:3:"ign";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:40:"!(?\'id\'https?://.*?ign\\.com/videos/.+)!i";i:1;R:172;}}i:1;R:175;}s:4:"imdb";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:31:"!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:5:"imgur";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:83:"@imgur\\.com/(?!r/|user/)(?:t/[^/]+/)?(?\'id\'(?:a/|gallery/)?\\w+)(?!\\w|\\.(?:pn|jp)g)@";i:1;R:172;}}i:1;R:175;}s:9:"indiegogo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;R:175;}s:9:"instagram";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!instagram\\.com/p/(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;R:175;}s:15:"internetarchive";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:3:{i:0;a:2:{i:0;s:81:"!meta property="twitter:player" content="https://archive.org/embed/(?\'id\'[^/"]+)!";i:1;R:172;}i:1;a:2:{i:0;s:55:"!meta property="og:video:width" content="(?\'width\'\\d+)!";i:1;R:438;}i:2;a:2:{i:0;s:57:"!meta property="og:video:height" content="(?\'height\'\\d+)!";i:1;R:433;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!archive\\.org/details/!";i:1;R:209;}}}}}s:8:"izlesene";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!izlesene\\.com/video/[-\\w]+/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:10:"jwplatform";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:35:"!jwplatform\\.com/\\w+/(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;R:175;}s:3:"khl";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:27:"!/feed/start/(?\'id\'[/\\w]+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:36:"!video\\.khl\\.ru/(?:event|quote)s/\\d!";i:1;R:209;}}}}}s:11:"kickstarter";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:93:"!kickstarter\\.com/projects/(?\'id\'[^/]+/[^/?]+)(?:/widget/(?:(?\'card\'card)|(?\'video\'video)))?!";i:1;a:4:{i:0;s:0:"";i:1;s:2:"id";i:2;s:4:"card";i:3;s:5:"video";}}}i:1;R:175;}s:9:"kissvideo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!kissvideo\\.click/[^_]*_(?\'id\'[0-9a-f]+)!";i:1;R:172;}}i:1;R:175;}s:6:"libsyn";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:29:"!embed/episode/id/(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:16:"@(?!\\.mp3)....$@";i:1;R:209;}}}}}s:7:"livecap";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:44:"!livecap.tv/[st]/(?\'channel\'\\w+)/(?\'id\'\\w+)!";i:1;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:2:"id";}}}i:1;R:175;}s:8:"liveleak";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:1;R:172;}}i:1;R:175;}s:10:"livestream";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:69:"!livestream\\.com/accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:10:"account_id";i:2;s:8:"event_id";}}i:1;a:2:{i:0;s:26:"!/videos/(?\'video_id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"video_id";}}i:2;a:2:{i:0;s:76:"!original\\.livestream\\.com/(?\'channel\'\\w+)/video\\?clipId=(?\'clip_id\'[-\\w]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}i:1;a:2:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:53:"!accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:1;R:638;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:44:"@livestream\\.com/(?!accounts/\\d+/events/\\d)@";i:1;R:209;}}}i:1;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:70:"!//original\\.livestream\\.com/(?\'channel\'\\w+)/video/(?\'clip_id\'[-\\w]+)!";i:1;R:649;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:13:"!livestre.am!";i:1;R:209;}}}}}s:6:"mailru";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!"itemId": ?"?(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:35:"!my\\.mail\\.ru/\\w+/\\w+/video/\\w+/\\d!";i:1;R:209;}}}}}s:6:"medium";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:47:"!medium\\.com/[^/]*/(?:[-\\w]+-)?(?\'id\'[\\da-f]+)!";i:1;R:172;}}i:1;R:175;}s:8:"metacafe";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!metacafe\\.com/watch/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:8:"mixcloud";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:55:"@mixcloud\\.com/(?!categories|tag)(?\'id\'[-\\w]+/[^/&]+)/@";i:1;R:172;}}i:1;R:175;}s:3:"mlb";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:29:"#mlb\\.com/[\\w/]*/v(?\'id\'\\d+)#";i:1;R:172;}i:1;a:2:{i:0;s:41:"#mlb\\.com/r/video\\?content_id=(?\'id\'\\d+)#";i:1;R:172;}}i:1;R:175;}s:5:"mrctv";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:29:"!mrctv\\.org/embed/(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:21:"!mrctv\\.org/videos/.!";i:1;R:209;}}}}}s:5:"msnbc";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:43:"@property="nv:videoId" content="(?\'id\'\\w+)@";i:1;R:172;}i:1;a:2:{i:0;s:24:"@guid"?[=:]"?(?\'id\'\\w+)@";i:1;R:172;}}s:5:"match";a:2:{i:0;a:2:{i:0;s:26:"@msnbc\\.com/[-\\w]+/watch/@";i:1;R:209;}i:1;a:2:{i:0;s:18:"@on\\.msnbc\\.com/.@";i:1;R:209;}}}}}s:13:"natgeochannel";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:63:"@channel\\.nationalgeographic\\.com/(?\'id\'[-/\\w]+/videos/[-\\w]+)@";i:1;R:172;}}i:1;R:175;}s:11:"natgeovideo";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:22:"@guid="(?\'id\'[-\\w]+)"@";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:48:"@video\\.nationalgeographic\\.com/(?:tv|video)/\\w@";i:1;R:209;}}}}}s:7:"nbcnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:63:"!nbcnews\\.com/(?:widget/video-embed/|video/[-\\w]+?-)(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:9:"nbcsports";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!select/media/(?\'id\'\\w+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:24:"!nbcsports\\.com/video/.!";i:1;R:209;}}}}}s:3:"nhl";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:80:"#nhl\\.com/(?:\\w+/)?video(?:/(?![ct]-)[-\\w]+)?(?:/t-(?\'t\'\\d+))?(?:/c-(?\'c\'\\d+))?#";i:1;a:3:{i:0;s:0:"";i:1;s:1:"t";i:2;s:1:"c";}}}i:1;R:175;}s:3:"npr";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"!player/embed/(?\'i\'\\d+)/(?\'m\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:1:"i";i:2;s:1:"m";}}}s:5:"match";a:2:{i:0;a:2:{i:0;s:21:"!npr\\.org/[/\\w]+/\\d+!";i:1;R:209;}i:1;a:2:{i:0;s:10:"!n\\.pr/\\w!";i:1;R:209;}}}}}s:7:"nytimes";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:50:"!nytimes\\.com/video/[a-z]+/(?:[a-z]+/)?(?\'id\'\\d+)!";i:1;R:172;}i:1;a:2:{i:0;s:50:"!nytimes\\.com/video/\\d+/\\d+/\\d+/[a-z]+/(?\'id\'\\d+)!";i:1;R:172;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:26:"!/video/movies/(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:65:"!nytimes\\.com/movie(?:s/movie)?/(?\'playlist\'\\d+)/[-\\w]+/trailers!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"playlist";}}}s:3:"url";s:73:"http://www.nytimes.com/svc/video/api/playlist/{@playlist}?externalId=true";}}}s:7:"oddshot";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"!oddshot.tv/s/(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;R:175;}s:6:"orfium";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:24:"@album/(?\'album_id\'\\d+)@";i:1;R:203;}i:1;a:2:{i:0;s:30:"@playlist/(?\'playlist_id\'\\d+)@";i:1;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:2:{i:0;s:25:"@live-set/(?\'set_id\'\\d+)@";i:1;a:2:{i:0;s:0:"";i:1;s:6:"set_id";}}i:3;a:2:{i:0;s:24:"@track/(?\'track_id\'\\d+)@";i:1;R:222;}}i:1;R:175;}s:8:"pastebin";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:55:"@pastebin\\.com/(?!u/)(?:\\w+(?:\\.php\\?i=|/))?(?\'id\'\\w+)@";i:1;R:172;}}i:1;R:175;}s:9:"pinterest";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:30:"@pinterest.com/pin/(?\'id\'\\d+)@";i:1;R:172;}i:1;a:2:{i:0;s:84:"@pinterest.com/(?!_/|discover/|explore/|news_hub/|pin/|search/)(?\'id\'[-\\w]+/[-\\w]+)@";i:1;R:172;}}i:1;R:175;}s:7:"playstv";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"!plays\\.tv/video/(?\'id\'\\w+)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";R:815;s:5:"match";a:1:{i:0;a:2:{i:0;s:14:"!plays\\.tv/s/!";i:1;R:209;}}}}}s:7:"podbean";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:55:"!podbean\\.com/media/(?:player/|share/pb-)(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:41:"!podbean\\.com/media/player/(?\'id\'[-\\w]+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:39:"@podbean\\.com/(?:media/shar)?e/(?!pb-)@";i:1;R:209;}}}}}s:5:"prezi";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:221:"#//prezi\\.com/(?!(?:a(?:bout|mbassadors)|c(?:o(?:llaborate|mmunity|ntact)|reate)|exp(?:erts|lore)|ip(?:ad|hone)|jobs|l(?:ear|ogi)n|m(?:ac|obility)|pr(?:es(?:s|ent)|icing)|recommend|support|user|windows|your)/)(?\'id\'\\w+)/#";i:1;R:172;}}i:1;R:175;}s:6:"reddit";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:38:"!(?\'id\'\\w+/comments/\\w+(?:/\\w+/\\w+)?)!";i:1;R:172;}}i:1;R:175;}s:6:"rutube";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:30:"!rutube\\.ru/tracks/(?\'id\'\\d+)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"!rutube\\.ru/play/embed/(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:31:"!rutube\\.ru/video/[0-9a-f]{32}!";i:1;R:209;}}}}}s:6:"scribd";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:50:"!scribd\\.com/(?:mobile/)?doc(?:ument)?/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:10:"slideshare";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:45:"!slideshare\\.net/[^/]+/[-\\w]+-(?\'id\'\\d{6,})$!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:29:"!"presentationId":(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:44:"@slideshare\\.net/[^/]+/\\w(?![-\\w]+-\\d{6,}$)@";i:1;R:209;}}}}}s:10:"soundcloud";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:84:"@https?://(?:api\\.)?soundcloud\\.com/(?!pages/)(?\'id\'[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@i";i:1;R:172;}i:1;a:2:{i:0;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:1;R:794;}i:2;a:2:{i:0;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:1;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:2:{i:0;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:1;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}}i:1;a:2:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:1;R:222;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:56:"@soundcloud\\.com/(?!playlists/\\d|tracks/\\d)[-\\w]+/[-\\w]@";i:1;R:209;}}}i:1;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:1;R:794;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;R:209;}}}}}s:9:"sportsnet";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:25:"/vid(?:eoId)?=(?\'id\'\\d+)/";i:1;R:172;}i:1;a:2:{i:0;s:46:"/param name="@videoPlayer" value="(?\'id\'\\d+)"/";i:1;R:172;}}s:5:"match";R:451;}}}s:7:"spotify";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:79:"!(?:open|play)\\.spotify\\.com/(?\'id\'(?:album|artist|track|user)(?:[:/][-\\w]+)+)!";i:1;R:172;}}i:1;R:175;}s:10:"steamstore";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!store.steampowered.com/app/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:8:"stitcher";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:23:"!data-eid="(?\'eid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"eid";}}i:1;a:2:{i:0;s:23:"!data-fid="(?\'fid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"fid";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:11:"!/podcast/!";i:1;R:209;}}}}}s:9:"strawpoll";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:26:"!strawpoll\\.me/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:10:"streamable";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"!streamable\\.com/(?\'id\'\\w+)!";i:1;R:172;}}i:1;R:175;}s:8:"teamcoco";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!teamcoco\\.com/video/(?\'id\'\\d+)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:17:"!"id":(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!teamcoco\\.com/video/.!";i:1;R:209;}}}}}s:3:"ted";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:76:"#ted\\.com/(?\'id\'(?:talk|playlist)s/[-\\w]+(?:\\.html)?)(?![-\\w]|/transcript)#i";i:1;R:172;}}i:1;R:175;}s:11:"theatlantic";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!theatlantic\\.com/video/index/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:11:"theguardian";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:43:"!theguardian\\.com/(?\'id\'\\w+/video/[-/\\w]+)!";i:1;R:172;}}i:1;R:175;}s:8:"theonion";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:42:"!theonion\\.com/video/[-\\w]+[-,](?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:7:"tinypic";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:52:"!tinypic\\.com/player\\.php\\?v=(?\'id\'\\w+)&s=(?\'s\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:1:"s";}}i:1;a:2:{i:0;s:37:"!tinypic\\.com/r/(?\'id\'\\w+)/(?\'s\'\\d+)!";i:1;R:976;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:33:"!file=(?\'id\'\\w+)&s=(?\'s\'\\d+)!";i:1;R:976;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:31:"!tinypic\\.com/(?:m|usermedia)/!";i:1;R:209;}}}}}s:3:"tmz";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"@tmz\\.com/videos/(?\'id\'\\w+)@";i:1;R:172;}}i:1;R:175;}s:13:"traileraddict";a:2:{i:0;R:175;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"@v\\.traileraddict\\.com/(?\'id\'\\d+)@";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:37:"@traileraddict\\.com/(?!tags/)[^/]+/.@";i:1;R:209;}}}}}s:6:"tumblr";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:46:"!(?\'name\'[-\\w]+)\\.tumblr\\.com/post/(?\'id\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:4:"name";i:2;s:2:"id";}}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:27:"!did=\\\\u0022(?\'did\'[-\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"did";}}i:1;a:2:{i:0;s:31:"!embed\\\\/post\\\\/(?\'key\'[-\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"key";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:25:"!\\w\\.tumblr\\.com/post/\\d!";i:1;R:209;}}s:3:"url";s:73:"http://www.tumblr.com/oembed/1.0?url=http://{@name}.tumblr.com/post/{@id}";}}}s:6:"twitch";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:47:"#twitch\\.tv/(?:videos|\\w+/v)/(?\'video_id\'\\d+)?#";i:1;R:644;}i:1;a:2:{i:0;s:44:"#www\\.twitch\\.tv/(?!videos/)(?\'channel\'\\w+)#";i:1;a:2:{i:0;s:0:"";i:1;s:7:"channel";}}i:2;a:2:{i:0;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:1;R:315;}i:3;a:2:{i:0;s:56:"#clips\\.twitch\\.tv/(?:(?\'channel\'\\w+)/)?(?\'clip_id\'\\w+)#";i:1;R:649;}}i:1;R:175;}s:7:"twitter";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:51:"@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@";i:1;R:172;}}i:1;R:175;}s:7:"ustream";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:34:"!ustream\\.tv/recorded/(?\'vid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"vid";}}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"!embed/(?\'cid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"cid";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:90:"#ustream\\.tv/(?!explore/|platform/|recorded/|search\\?|upcoming$|user/)(?:channel/)?[-\\w]+#";i:1;R:209;}}}}}s:5:"vbox7";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:33:"!vbox7\\.com/play:(?\'id\'[\\da-f]+)!";i:1;R:172;}}i:1;R:175;}s:4:"veoh";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:50:"!veoh\\.com/(?:m/watch\\.php\\?v=|watch/)v(?\'id\'\\w+)!";i:1;R:172;}}i:1;R:175;}s:4:"vevo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:45:"!vevo\\.com/watch/([-/\\w]+/)?(?\'id\'[A-Z0-9]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:0:"";i:2;s:2:"id";}}}i:1;R:175;}s:7:"viagame";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:40:"!viagame\\.com/channels/[^/]+/(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:14:"videodetective";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:59:"!videodetective\\.com/\\w+/[-\\w]+/(?:trailer/P0*)?(?\'id\'\\d+)!";i:1;R:172;}}i:1;R:175;}s:9:"videomega";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!videomega\\.tv/\\?ref=(?\'id\'\\w+)!";i:1;R:172;}}i:1;R:175;}s:5:"vimeo";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:1;R:172;}i:1;a:2:{i:0;s:19:"!#t=(?\'t\'[\\dhms]+)!";i:1;R:315;}}i:1;R:175;}s:4:"vine";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:1;R:172;}}i:1;R:175;}s:2:"vk";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:71:"!vk(?:\\.com|ontakte\\.ru)/(?:[\\w.]+\\?z=)?video(?\'oid\'-?\\d+)_(?\'vid\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";}}i:1;a:2:{i:0;s:98:"!vk(?:\\.com|ontakte\\.ru)/video_ext\\.php\\?oid=(?\'oid\'-?\\d+)&id=(?\'vid\'\\d+)&hash=(?\'hash\'[0-9a-f]+)!";i:1;a:4:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";i:3;s:4:"hash";}}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:31:"!embed_hash=(?\'hash\'[0-9a-f]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:4:"hash";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:21:"!vk.*?video-?\\d+_\\d+!";i:1;R:209;}}s:3:"url";s:32:"http://vk.com/video{@oid}_{@vid}";}}}s:7:"vocaroo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:27:"!vocaroo\\.com/i/(?\'id\'\\w+)!";i:1;R:172;}}i:1;R:175;}s:3:"vox";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:31:"!vox.com/.*#ooid=(?\'id\'[-\\w]+)!";i:1;R:172;}}i:1;R:175;}s:14:"washingtonpost";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:51:"#washingtonpost\\.com/video/c/\\w+/(?\'id\'[-0-9a-f]+)#";i:1;R:172;}i:1;a:2:{i:0;s:65:"#washingtonpost\\.com/video/[-/\\w]+/(?\'id\'[-0-9a-f]+)_video\\.html#";i:1;R:172;}}i:1;R:175;}s:4:"wshh";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:42:"!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:18:"!v: ?"?(?\'id\'\\d+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:49:"!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!";i:1;R:209;}}}}}s:3:"wsj";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:38:"@wsj\\.com/[^#]*#!(?\'id\'[-0-9A-F]{36})@";i:1;R:172;}i:1;a:2:{i:0;s:43:"@wsj\\.com/video/[^/]+/(?\'id\'[-0-9A-F]{36})@";i:1;R:172;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:27:"@guid=(?\'id\'[-0-9A-F]{36})@";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:17:"@on\\.wsj\\.com/\\w@";i:1;R:209;}}}}}s:9:"xboxclips";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:65:"@xboxclips\\.com/(?\'user\'[^/]+)/(?!screenshots/)(?\'id\'[-0-9a-f]+)@";i:1;a:3:{i:0;s:0:"";i:1;s:4:"user";i:2;s:2:"id";}}}i:1;R:175;}s:7:"xboxdvr";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:52:"!xboxdvr\\.com/gamer/(?\'user\'[^/]+)/video/(?\'id\'\\d+)!";i:1;R:1172;}}i:1;R:175;}s:11:"yahooscreen";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:52:"!screen\\.yahoo\\.com/(?:[-\\w]+/)?(?\'id\'[-\\w]+)\\.html!";i:1;R:172;}}i:1;R:175;}s:5:"youku";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:42:"!youku\\.com/v(?:_show|ideo)/id_(?\'id\'\\w+)!";i:1;R:172;}}i:1;R:175;}s:7:"youtube";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:69:"!youtube\\.com/(?:watch.*?v=|v/|attribution_link.*?v%3D)(?\'id\'[-\\w]+)!";i:1;R:172;}i:1;a:2:{i:0;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:1;R:172;}i:2;a:2:{i:0;s:25:"@[#&?]t=(?\'t\'\\d[\\dhms]*)@";i:1;R:315;}i:3;a:2:{i:0;s:23:"!&list=(?\'list\'[-\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:4:"list";}}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"!/vi/(?\'id\'[-\\w]+)!";i:1;R:172;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:14:"!/shared\\?ci=!";i:1;R:209;}}}}}}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:1:{i:0;i:771;}s:5:"flags";i:0;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:122:{s:7:"ABCNEWS";a:7:{s:10:"attributes";a:1:{s:2:"id";a:2:{s:8:"required";b:0;s:11:"filterChain";R:175;}}s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:59:"s9e\\TextFormatter\\Parser\\FilterProcessing::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";a:1:{i:0;i:256;}}s:6:"AMAZON";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1216;s:3:"tld";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:9:"AUDIOBOOM";R:1214;s:9:"AUDIOMACK";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1216;s:4:"mode";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:8:"BANDCAMP";a:7:{s:10:"attributes";a:3:{s:8:"album_id";R:1216;s:8:"track_id";R:1216;s:9:"track_num";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:7:"BBCNEWS";a:7:{s:10:"attributes";a:1:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:12:"stripslashes";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:4:"BLAB";R:1214;s:14:"BLEACHERREPORT";R:1214;s:5:"BREAK";R:1214;s:10:"BRIGHTCOVE";a:7:{s:10:"attributes";a:3:{s:5:"bckey";R:1216;s:5:"bcpid";R:1216;s:5:"bctid";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:7:"CBSNEWS";R:1214;s:4:"CNBC";R:1214;s:3:"CNN";R:1214;s:8:"CNNMONEY";R:1214;s:12:"COLLEGEHUMOR";R:1214;s:13:"COMEDYCENTRAL";R:1214;s:4:"COUB";R:1214;s:11:"DAILYMOTION";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1216;s:1:"t";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:12:"DEMOCRACYNOW";R:1214;s:7:"DUMPERT";R:1214;s:11:"EIGHTTRACKS";R:1214;s:4:"ESPN";R:1214;s:8:"FACEBOOK";a:7:{s:10:"attributes";a:3:{s:2:"id";R:1216;s:4:"type";R:1216;s:4:"user";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:6:"FLICKR";R:1214;s:6:"FORATV";R:1214;s:7:"FOXNEWS";R:1214;s:9:"FOXSPORTS";R:1214;s:10:"FUNNYORDIE";R:1214;s:8:"GAMESPOT";R:1214;s:12:"GAMETRAILERS";R:1214;s:5:"GETTY";a:7:{s:10:"attributes";a:5:{s:2:"et";R:1216;s:6:"height";a:3:{s:12:"defaultValue";i:360;s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Parser\\AttributeFilters\\NumericFilter::filterUint";s:6:"params";R:1254;}}s:8:"required";b:0;}s:2:"id";R:1216;s:3:"sig";R:1216;s:5:"width";a:3:{s:12:"defaultValue";i:640;s:11:"filterChain";R:1279;s:8:"required";b:0;}}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:6:"GFYCAT";a:7:{s:10:"attributes";a:3:{s:6:"height";R:1277;s:2:"id";R:1216;s:5:"width";R:1283;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:4:"GIFS";R:1289;s:4:"GIST";R:1214;s:10:"GLOBALNEWS";R:1214;s:8:"GOFUNDME";R:1214;s:11:"GOOGLEDRIVE";R:1214;s:10:"GOOGLEPLUS";a:7:{s:10:"attributes";a:3:{s:4:"name";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:9:"urldecode";s:6:"params";R:1254;}}s:8:"required";b:0;}s:3:"oid";R:1216;s:3:"pid";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:12:"GOOGLESHEETS";a:7:{s:10:"attributes";a:2:{s:3:"gid";R:1216;s:2:"id";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:10:"HEALTHGURU";R:1214;s:4:"HUDL";a:7:{s:10:"attributes";a:2:{s:7:"athlete";R:1216;s:9:"highlight";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:4:"HULU";R:1214;s:9:"HUMORTVNL";R:1214;s:3:"IGN";R:1214;s:4:"IMDB";R:1214;s:5:"IMGUR";R:1214;s:9:"INDIEGOGO";R:1214;s:9:"INSTAGRAM";R:1214;s:15:"INTERNETARCHIVE";R:1289;s:8:"IZLESENE";R:1214;s:10:"JWPLATFORM";R:1214;s:3:"KHL";R:1214;s:11:"KICKSTARTER";a:7:{s:10:"attributes";a:3:{s:4:"card";R:1216;s:2:"id";R:1216;s:5:"video";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:9:"KISSVIDEO";R:1214;s:6:"LIBSYN";R:1214;s:7:"LIVECAP";a:7:{s:10:"attributes";a:2:{s:7:"channel";R:1216;s:2:"id";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:8:"LIVELEAK";R:1214;s:10:"LIVESTREAM";a:7:{s:10:"attributes";a:5:{s:10:"account_id";R:1216;s:7:"channel";R:1216;s:7:"clip_id";R:1216;s:8:"event_id";R:1216;s:8:"video_id";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:6:"MAILRU";R:1214;s:5:"MEDIA";a:7:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:5:{s:3:"tag";N;s:6:"parser";N;s:16:"MediaEmbed.hosts";N;s:16:"MediaEmbed.sites";N;s:8:"cacheDir";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:5000;s:10:"attributes";R:175;s:9:"bitNumber";i:0;s:7:"allowed";a:1:{i:0;i:770;}}s:6:"MEDIUM";R:1214;s:8:"METACAFE";R:1214;s:8:"MIXCLOUD";R:1214;s:3:"MLB";R:1214;s:5:"MRCTV";R:1214;s:5:"MSNBC";R:1214;s:13:"NATGEOCHANNEL";R:1214;s:11:"NATGEOVIDEO";R:1214;s:7:"NBCNEWS";R:1214;s:9:"NBCSPORTS";R:1214;s:3:"NHL";a:7:{s:10:"attributes";a:2:{s:1:"c";R:1216;s:1:"t";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:3:"NPR";a:7:{s:10:"attributes";a:2:{s:1:"i";R:1216;s:1:"m";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:7:"NYTIMES";R:1214;s:7:"ODDSHOT";R:1214;s:6:"ORFIUM";a:7:{s:10:"attributes";a:4:{s:8:"album_id";R:1216;s:11:"playlist_id";R:1216;s:6:"set_id";R:1216;s:8:"track_id";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:8:"PASTEBIN";R:1214;s:9:"PINTEREST";R:1214;s:7:"PLAYSTV";R:1214;s:7:"PODBEAN";R:1214;s:5:"PREZI";R:1214;s:6:"REDDIT";R:1214;s:6:"RUTUBE";R:1214;s:6:"SCRIBD";R:1214;s:10:"SLIDESHARE";R:1214;s:10:"SOUNDCLOUD";a:7:{s:10:"attributes";a:4:{s:2:"id";R:1216;s:11:"playlist_id";R:1216;s:12:"secret_token";R:1216;s:8:"track_id";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:9:"SPORTSNET";R:1214;s:7:"SPOTIFY";R:1214;s:10:"STEAMSTORE";R:1214;s:8:"STITCHER";a:7:{s:10:"attributes";a:2:{s:3:"eid";R:1216;s:3:"fid";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:9:"STRAWPOLL";R:1214;s:10:"STREAMABLE";R:1214;s:8:"TEAMCOCO";R:1214;s:3:"TED";R:1214;s:11:"THEATLANTIC";R:1214;s:11:"THEGUARDIAN";R:1214;s:8:"THEONION";R:1214;s:7:"TINYPIC";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1216;s:1:"s";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:3:"TMZ";R:1214;s:13:"TRAILERADDICT";R:1214;s:6:"TUMBLR";a:7:{s:10:"attributes";a:4:{s:3:"did";R:1216;s:2:"id";R:1216;s:3:"key";R:1216;s:4:"name";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:6:"TWITCH";a:7:{s:10:"attributes";a:4:{s:7:"channel";R:1216;s:7:"clip_id";R:1216;s:1:"t";R:1216;s:8:"video_id";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:7:"TWITTER";R:1214;s:7:"USTREAM";a:7:{s:10:"attributes";a:2:{s:3:"cid";R:1216;s:3:"vid";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:5:"VBOX7";R:1214;s:4:"VEOH";R:1214;s:4:"VEVO";R:1214;s:7:"VIAGAME";R:1214;s:14:"VIDEODETECTIVE";R:1214;s:9:"VIDEOMEGA";R:1214;s:5:"VIMEO";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1216;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:65:"s9e\\TextFormatter\\Parser\\AttributeFilters\\TimestampFilter::filter";s:6:"params";R:1254;}}s:8:"required";b:0;}}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:4:"VINE";R:1214;s:2:"VK";a:7:{s:10:"attributes";a:3:{s:4:"hash";R:1216;s:3:"oid";R:1216;s:3:"vid";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:7:"VOCAROO";R:1214;s:3:"VOX";R:1214;s:14:"WASHINGTONPOST";R:1214;s:4:"WSHH";R:1214;s:3:"WSJ";R:1214;s:9:"XBOXCLIPS";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1216;s:4:"user";R:1216;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}s:7:"XBOXDVR";R:1406;s:11:"YAHOOSCREEN";R:1214;s:5:"YOUKU";R:1214;s:7:"YOUTUBE";a:7:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:62:"s9e\\TextFormatter\\Parser\\AttributeFilters\\RegexpFilter::filter";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:19:"/^[-0-9A-Za-z_]+$/D";}}}s:8:"required";b:0;}s:4:"list";R:1216;s:1:"t";R:1393;}s:11:"filterChain";R:1218;s:12:"nestingLimit";i:10;s:5:"rules";R:1227;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1231;}}}');
+ return \unserialize('O:24:"s9e\\TextFormatter\\Parser":4:{s:16:"' . "\0" . '*' . "\0" . 'pluginsConfig";a:1:{s:10:"MediaEmbed";a:4:{s:10:"quickMatch";s:3:"://";s:6:"regexp";s:26:"/\\bhttps?:\\/\\/[^["\'\\s]+/Si";s:7:"tagName";s:5:"MEDIA";s:11:"regexpLimit";i:50000;}}s:14:"registeredVars";a:3:{s:9:"urlConfig";a:1:{s:14:"allowedSchemes";s:12:"/^https?$/Di";}s:16:"MediaEmbed.hosts";a:156:{s:14:"abcnews.go.com";s:7:"abcnews";s:9:"amazon.ca";s:6:"amazon";s:12:"amazon.co.uk";s:6:"amazon";s:12:"amazon.co.jp";s:6:"amazon";s:10:"amazon.com";s:6:"amazon";s:9:"amazon.de";s:6:"amazon";s:9:"amazon.es";s:6:"amazon";s:9:"amazon.fr";s:6:"amazon";s:9:"amazon.in";s:6:"amazon";s:9:"amazon.it";s:6:"amazon";s:11:"audioboo.fm";s:9:"audioboom";s:13:"audioboom.com";s:9:"audioboom";s:13:"audiomack.com";s:9:"audiomack";s:12:"bandcamp.com";s:8:"bandcamp";s:7:"bbc.com";s:7:"bbcnews";s:7:"blab.im";s:4:"blab";s:18:"bleacherreport.com";s:14:"bleacherreport";s:9:"break.com";s:5:"break";s:8:"bcove.me";s:10:"brightcove";s:19:"link.brightcove.com";s:10:"brightcove";s:11:"cbsnews.com";s:7:"cbsnews";s:14:"video.cnbc.com";s:4:"cnbc";s:7:"cnn.com";s:3:"cnn";s:13:"money.cnn.com";s:8:"cnnmoney";s:16:"collegehumor.com";s:12:"collegehumor";s:6:"cc.com";s:13:"comedycentral";s:17:"comedycentral.com";s:13:"comedycentral";s:8:"coub.com";s:4:"coub";s:6:"dai.ly";s:11:"dailymotion";s:15:"dailymotion.com";s:11:"dailymotion";s:16:"democracynow.org";s:12:"democracynow";s:10:"dumpert.nl";s:7:"dumpert";s:11:"8tracks.com";s:11:"eighttracks";s:8:"espn.com";s:4:"espn";s:11:"espn.go.com";s:4:"espn";s:12:"facebook.com";s:8:"facebook";s:7:"flic.kr";s:6:"flickr";s:10:"flickr.com";s:6:"flickr";s:7:"fora.tv";s:6:"foratv";s:17:"video.foxnews.com";s:7:"foxnews";s:13:"foxsports.com";s:9:"foxsports";s:14:"funnyordie.com";s:10:"funnyordie";s:12:"gamespot.com";s:8:"gamespot";s:16:"gametrailers.com";s:12:"gametrailers";s:14:"gettyimages.be";s:5:"getty";s:14:"gettyimages.cn";s:5:"getty";s:17:"gettyimages.co.jp";s:5:"getty";s:17:"gettyimages.co.uk";s:5:"getty";s:15:"gettyimages.com";s:5:"getty";s:18:"gettyimages.com.au";s:5:"getty";s:14:"gettyimages.de";s:5:"getty";s:14:"gettyimages.dk";s:5:"getty";s:14:"gettyimages.es";s:5:"getty";s:14:"gettyimages.fr";s:5:"getty";s:14:"gettyimages.ie";s:5:"getty";s:14:"gettyimages.it";s:5:"getty";s:14:"gettyimages.nl";s:5:"getty";s:14:"gettyimages.pt";s:5:"getty";s:14:"gettyimages.se";s:5:"getty";s:6:"gty.im";s:5:"getty";s:10:"gfycat.com";s:6:"gfycat";s:8:"gifs.com";s:4:"gifs";s:10:"github.com";s:4:"gist";s:13:"globalnews.ca";s:10:"globalnews";s:12:"gofundme.com";s:8:"gofundme";s:16:"drive.google.com";s:11:"googledrive";s:15:"plus.google.com";s:10:"googleplus";s:15:"docs.google.com";s:12:"googlesheets";s:14:"healthguru.com";s:10:"healthguru";s:8:"hudl.com";s:4:"hudl";s:8:"hulu.com";s:4:"hulu";s:15:"humortv.vara.nl";s:9:"humortvnl";s:7:"ign.com";s:3:"ign";s:8:"imdb.com";s:4:"imdb";s:9:"imgur.com";s:5:"imgur";s:13:"indiegogo.com";s:9:"indiegogo";s:13:"instagram.com";s:9:"instagram";s:11:"archive.org";s:15:"internetarchive";s:12:"izlesene.com";s:8:"izlesene";s:14:"jwplatform.com";s:10:"jwplatform";s:12:"video.khl.ru";s:3:"khl";s:15:"kickstarter.com";s:11:"kickstarter";s:15:"kissvideo.click";s:9:"kissvideo";s:10:"libsyn.com";s:6:"libsyn";s:10:"livecap.tv";s:7:"livecap";s:12:"liveleak.com";s:8:"liveleak";s:11:"livestre.am";s:10:"livestream";s:14:"livestream.com";s:10:"livestream";s:10:"my.mail.ru";s:6:"mailru";s:10:"medium.com";s:6:"medium";s:12:"metacafe.com";s:8:"metacafe";s:12:"mixcloud.com";s:8:"mixcloud";s:7:"mlb.com";s:3:"mlb";s:9:"mrctv.org";s:5:"mrctv";s:9:"msnbc.com";s:5:"msnbc";s:30:"channel.nationalgeographic.com";s:13:"natgeochannel";s:28:"video.nationalgeographic.com";s:11:"natgeovideo";s:11:"nbcnews.com";s:7:"nbcnews";s:13:"nbcsports.com";s:9:"nbcsports";s:7:"nhl.com";s:3:"nhl";s:7:"npr.org";s:3:"npr";s:4:"n.pr";s:3:"npr";s:11:"nytimes.com";s:7:"nytimes";s:10:"oddshot.tv";s:7:"oddshot";s:10:"orfium.com";s:6:"orfium";s:12:"pastebin.com";s:8:"pastebin";s:13:"pinterest.com";s:9:"pinterest";s:8:"plays.tv";s:7:"playstv";s:11:"podbean.com";s:7:"podbean";s:9:"prezi.com";s:5:"prezi";s:10:"reddit.com";s:6:"reddit";s:9:"rutube.ru";s:6:"rutube";s:10:"scribd.com";s:6:"scribd";s:14:"slideshare.net";s:10:"slideshare";s:14:"soundcloud.com";s:10:"soundcloud";s:12:"sportsnet.ca";s:9:"sportsnet";s:16:"open.spotify.com";s:7:"spotify";s:16:"play.spotify.com";s:7:"spotify";s:22:"store.steampowered.com";s:10:"steamstore";s:12:"stitcher.com";s:8:"stitcher";s:12:"strawpoll.me";s:9:"strawpoll";s:14:"streamable.com";s:10:"streamable";s:12:"teamcoco.com";s:8:"teamcoco";s:7:"ted.com";s:3:"ted";s:4:"t.me";s:8:"telegram";s:15:"theatlantic.com";s:11:"theatlantic";s:15:"theguardian.com";s:11:"theguardian";s:12:"theonion.com";s:8:"theonion";s:11:"tinypic.com";s:7:"tinypic";s:7:"tmz.com";s:3:"tmz";s:17:"traileraddict.com";s:13:"traileraddict";s:10:"tumblr.com";s:6:"tumblr";s:9:"twitch.tv";s:6:"twitch";s:11:"twitter.com";s:7:"twitter";s:10:"ustream.tv";s:7:"ustream";s:9:"vbox7.com";s:5:"vbox7";s:8:"veoh.com";s:4:"veoh";s:8:"vevo.com";s:4:"vevo";s:11:"viagame.com";s:7:"viagame";s:18:"videodetective.com";s:14:"videodetective";s:12:"videomega.tv";s:9:"videomega";s:9:"vimeo.com";s:5:"vimeo";s:7:"vine.co";s:4:"vine";s:6:"vk.com";s:2:"vk";s:12:"vkontakte.ru";s:2:"vk";s:11:"vocaroo.com";s:7:"vocaroo";s:7:"vox.com";s:3:"vox";s:18:"washingtonpost.com";s:14:"washingtonpost";s:19:"worldstarhiphop.com";s:4:"wshh";s:7:"wsj.com";s:3:"wsj";s:13:"xboxclips.com";s:9:"xboxclips";s:11:"xboxdvr.com";s:7:"xboxdvr";s:16:"screen.yahoo.com";s:11:"yahooscreen";s:9:"youku.com";s:5:"youku";s:11:"youtube.com";s:7:"youtube";s:8:"youtu.be";s:7:"youtube";}s:16:"MediaEmbed.sites";a:122:{s:7:"abcnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:68:"!abcnews\\.go\\.com/(?:video/embed\\?id=|[^/]+/video/[^/]+-)(?\'id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:2:"id";}}}i:1;a:0:{}}s:6:"amazon";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:37:"#/(?:dp|gp/product)/(?\'id\'[A-Z0-9]+)#";i:1;R:173;}i:1;a:2:{i:0;s:50:"#amazon\\.(?:co\\.)?(?\'tld\'ca|de|es|fr|in|it|jp|uk)#";i:1;a:2:{i:0;s:0:"";i:1;s:3:"tld";}}}i:1;R:176;}s:9:"audioboom";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:49:"!audioboo(?:\\.f|m\\.co)m/(?:boo|post)s/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:9:"audiomack";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:57:"!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:4:"mode";i:2;s:2:"id";}}}i:1;R:176;}s:8:"bandcamp";a:2:{i:0;R:176;i:1;a:2:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!/album=(?\'album_id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"album_id";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!bandcamp\\.com/album/.!";i:1;a:1:{i:0;s:0:"";}}}}i:1;a:2:{s:7:"extract";a:3:{i:0;a:2:{i:0;s:29:"!"album_id":(?\'album_id\'\\d+)!";i:1;R:204;}i:1;a:2:{i:0;s:31:"!"track_num":(?\'track_num\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:9:"track_num";}}i:2;a:2:{i:0;s:25:"!/track=(?\'track_id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"track_id";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!bandcamp\\.com/track/.!";i:1;R:210;}}}}}s:7:"bbcnews";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:49:"!bbc\\.com\\\\/news\\\\/av\\\\/embed\\\\/(?\'id\'[-\\\\\\w/]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:18:"!bbc\\.com/news/\\w!";i:1;R:210;}}}}}s:4:"blab";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:68:"#blab\\.im/(?!about$|live$|replay$|scheduled$|search\\?)(?\'id\'[-\\w]+)#";i:1;R:173;}}i:1;R:176;}s:14:"bleacherreport";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!id="video-(?\'id\'[-\\w]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:13:"!/articles/.!";i:1;R:210;}}}}}s:5:"break";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:33:"!break\\.com/video/.*-(?\'id\'\\d+)$!";i:1;R:173;}}i:1;R:176;}s:10:"brightcove";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:108:"!meta name="twitter:player" content=".*?bcpid(?\'bcpid\'\\d+).*?bckey=(?\'bckey\'[-,~\\w]+).*?bctid=(?\'bctid\'\\d+)!";i:1;a:4:{i:0;s:0:"";i:1;s:5:"bcpid";i:2;s:5:"bckey";i:3;s:5:"bctid";}}}s:5:"match";a:2:{i:0;a:2:{i:0;s:13:"!bcove\\.me/.!";i:1;R:210;}i:1;a:2:{i:0;s:40:"!link\\.brightcove\\.com/services/player/!";i:1;R:210;}}}}}s:7:"cbsnews";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:46:"#cbsnews\\.com/videos?/(?!watch/)(?\'id\'[-\\w]+)#";i:1;R:173;}i:1;a:2:{i:0;s:42:"#cbsnews\\.com/video/watch/\\?id=(?\'id\'\\d+)#";i:1;R:173;}}i:1;R:176;}s:4:"cnbc";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:38:"!cnbc\\.com/gallery/\\?video=(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:3:"cnn";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:31:"!cnn.com/videos/(?\'id\'.*\\.cnn)!";i:1;R:173;}i:1;a:2:{i:0;s:47:"!cnn\\.com/video/data/2\\.0/video/(?\'id\'.*\\.cnn)!";i:1;R:173;}}i:1;R:176;}s:8:"cnnmoney";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:43:"!money\\.cnn\\.com/video/(?\'id\'.*\\.cnnmoney)!";i:1;R:173;}}i:1;R:176;}s:12:"collegehumor";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:46:"!collegehumor\\.com/(?:video|embed)/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:13:"comedycentral";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:49:"!(?\'id\'mgid:arc:(?:episode|video):[.\\w]+:[-\\w]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:56:"!c(?:c|omedycentral)\\.com/(?:full-episode|video-clip)s/!";i:1;R:210;}}}}}s:4:"coub";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:27:"!coub\\.com/view/(?\'id\'\\w+)!";i:1;R:173;}}i:1;R:176;}s:11:"dailymotion";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:27:"!dai\\.ly/(?\'id\'[a-z0-9]+)!i";i:1;R:173;}i:1;a:2:{i:0;s:92:"!dailymotion\\.com/(?:live/|swf/|user/[^#]+#video=|(?:related/\\d+/)?video/)(?\'id\'[a-z0-9]+)!i";i:1;R:173;}i:2;a:2:{i:0;s:17:"!start=(?\'t\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:1:"t";}}}i:1;R:176;}s:12:"democracynow";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:66:"!democracynow.org/(?:embed/)?(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:72:"!democracynow\\.org/(?\'id\'(?:\\w+/)?\\d+/\\d+/\\d+(?:/\\w+)?)\' rel=\'canonical!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:33:"!m\\.democracynow\\.org/stories/\\d!";i:1;R:210;}}}}}s:7:"dumpert";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!dumpert\\.nl/mediabase/(?\'id\'\\d+[/_]\\w+)!";i:1;R:173;}}i:1;R:176;}s:11:"eighttracks";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!8tracks\\.com/[-\\w]+/(?\'id\'\\d+)(?=#|$)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:30:"!eighttracks://mix/(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:24:"!8tracks\\.com/[-\\w]+/\\D!";i:1;R:210;}}}}}s:4:"espn";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:43:"#video/(?:clip(?:\\?id=|/_/id/))?(?\'id\'\\d+)#";i:1;R:173;}}i:1;R:176;}s:8:"facebook";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:135:"@/(?!(?:apps|developers|graph)\\.)[-\\w.]*facebook\\.com/(?:[/\\w]+/permalink|(?!pages/|groups/).*?)(?:/|fbid=|\\?v=)(?\'id\'\\d+)(?=$|[/?])@";i:1;R:173;}i:1;a:2:{i:0;s:51:"@facebook\\.com/(?\'user\'\\w+)/(?\'type\'post|video)s?/@";i:1;a:3:{i:0;s:0:"";i:1;s:4:"user";i:2;s:4:"type";}}i:2;a:2:{i:0;s:46:"@facebook\\.com/video/(?\'type\'post|video)\\.php@";i:1;a:2:{i:0;s:0:"";i:1;s:4:"type";}}}i:1;R:176;}s:6:"flickr";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:37:"@flickr\\.com/photos/[^/]+/(?\'id\'\\d+)@";i:1;R:173;}i:1;a:2:{i:0;s:33:"@flic\\.kr/(?!p/)[^/]+/(?\'id\'\\d+)@";i:1;R:173;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:1:{i:0;R:368;}s:5:"match";a:1:{i:0;a:2:{i:0;s:26:"@flic\\.kr/p/(?\'short\'\\w+)@";i:1;a:2:{i:0;s:0:"";i:1;s:5:"short";}}}s:3:"url";s:52:"https://www.flickr.com/photo.gne?rb=1&short={@short}";}}}s:6:"foratv";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:22:"!embed\\?id=(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:24:"!fora\\.tv/\\d+/\\d+/\\d+/.!";i:1;R:210;}}}}}s:7:"foxnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:34:"!video\\.foxnews\\.com/v/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:9:"foxsports";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"@BKQ29B/(?\'id\'\\w+)@";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:11:"@/video/\\d@";i:1;R:210;}}}}}s:10:"funnyordie";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!funnyordie\\.com/videos/(?\'id\'[0-9a-f]+)!";i:1;R:173;}}i:1;R:176;}s:8:"gamespot";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:64:"!gamespot\\.com.*?/(?:events|videos)/.*?-(?\'id\'\\d+)/(?:[#?].*)?$!";i:1;R:173;}}i:1;R:176;}s:12:"gametrailers";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:18:"!embed/(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:51:"!gametrailers\\.com/(?:full-episode|review|video)s/!";i:1;R:210;}}}}}s:5:"getty";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:20:"!gty\\.im/(?\'id\'\\d+)!";i:1;R:173;}i:1;a:2:{i:0;s:47:"!gettyimages\\.[.\\w]+/detail(?=/).*?/(?\'id\'\\d+)!";i:1;R:173;}i:2;a:2:{i:0;s:30:"!#[-\\w]*picture-id(?\'id\'\\d+)$!";i:1;R:173;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:4:{i:0;a:2:{i:0;s:30:"!"height":[ "]*(?\'height\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:6:"height";}}i:1;a:2:{i:0;s:28:"!"width":[ "]*(?\'width\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:5:"width";}}i:2;a:2:{i:0;s:29:"!\\bid[=:][\'"]?(?\'et\'[-=\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:2:"et";}}i:3;a:2:{i:0;s:31:"!\\bsig[=:][\'"]?(?\'sig\'[-=\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"sig";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:2:"//";i:1;R:210;}}s:3:"url";s:42:"http://embed.gettyimages.com/preview/{@id}";}}}s:6:"gfycat";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!gfycat\\.com/(?:gifs/detail/)?(?\'id\'\\w+)!";i:1;R:173;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:59:"!meta name="twitter:player:height" content="(?\'height\'\\d+)!";i:1;R:434;}i:1;a:2:{i:0;s:57:"!meta name="twitter:player:width" content="(?\'width\'\\d+)!";i:1;R:439;}}s:5:"match";R:452;s:3:"url";s:30:"http://gfycat.com/iframe/{@id}";}}}s:4:"gifs";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:31:"!gifs\\.com/(?:gif/)?(?\'id\'\\w+)!";i:1;R:173;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:55:"!meta property="og:image:width" content="(?\'width\'\\d+)!";i:1;R:439;}i:1;a:2:{i:0;s:57:"!meta property="og:image:height" content="(?\'height\'\\d+)!";i:1;R:434;}}s:5:"match";R:452;s:3:"url";s:26:"https://gifs.com/gif/{@id}";}}}s:4:"gist";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:58:"!gist\\.github\\.com/(?\'id\'(?:\\w+/)?[\\da-f]+(?:/[\\da-f]+)?)!";i:1;R:173;}}i:1;R:176;}s:10:"globalnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:33:"!globalnews\\.ca/video/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:8:"gofundme";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:35:"@gofundme\\.com/(?\'id\'\\w+)(?![^#?])@";i:1;R:173;}}i:1;R:176;}s:11:"googledrive";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:52:"!drive\\.google\\.com/.*?(?:file/d/|id=)(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;R:176;}s:10:"googleplus";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:83:"!//plus\\.google\\.com/(?:u/\\d+/)?(?:\\+(?\'name\'[^/]+)|(?\'oid\'\\d+))/posts/(?\'pid\'\\w+)!";i:1;a:4:{i:0;s:0:"";i:1;s:4:"name";i:2;s:3:"oid";i:3;s:3:"pid";}}}i:1;R:176;}s:12:"googlesheets";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:95:"@docs\\.google\\.com/spreadsheet(?:/ccc\\?key=|s/d/)(?!e/)(?\'id\'[-\\w]+)[^#]*(?:#gid=(?\'gid\'\\d+))?@";i:1;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:3:"gid";}}}i:1;R:176;}s:10:"healthguru";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"!healthguru\\.com/embed/(?\'id\'\\w+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:38:"!healthguru\\.com/(?:content/)?video/.!";i:1;R:210;}}}}}s:4:"hudl";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:69:"!hudl\\.com/athlete/(?\'athlete\'\\d+)/highlights/(?\'highlight\'[\\da-f]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:7:"athlete";i:2;s:9:"highlight";}}i:1;a:2:{i:0;s:60:"!hudl\\.com/video/\\d+/(?\'athlete\'\\d+)/(?\'highlight\'[\\da-f]+)!";i:1;R:526;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;R:530;}s:5:"match";a:1:{i:0;a:2:{i:0;s:14:"!hudl\\.com/v/!";i:1;R:210;}}}}}s:4:"hulu";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"!eid=(?\'id\'[-\\w]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:18:"!hulu\\.com/watch/!";i:1;R:210;}}}}}s:9:"humortvnl";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:45:"!humortv\\.vara\\.nl/\\w+\\.(?\'id\'[-.\\w]+)\\.html!";i:1;R:173;}}i:1;R:176;}s:3:"ign";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:40:"!(?\'id\'https?://.*?ign\\.com/videos/.+)!i";i:1;R:173;}}i:1;R:176;}s:4:"imdb";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:31:"!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:5:"imgur";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:51:"@imgur\\.com/(?![rt]/|user/)(?\'id\'(?:\\w+/)?\\w{5,7})@";i:1;R:173;}}i:1;R:176;}s:9:"indiegogo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;R:176;}s:9:"instagram";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!instagram\\.com/p/(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;R:176;}s:15:"internetarchive";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:3:{i:0;a:2:{i:0;s:81:"!meta property="twitter:player" content="https://archive.org/embed/(?\'id\'[^/"]+)!";i:1;R:173;}i:1;a:2:{i:0;s:55:"!meta property="og:video:width" content="(?\'width\'\\d+)!";i:1;R:439;}i:2;a:2:{i:0;s:57:"!meta property="og:video:height" content="(?\'height\'\\d+)!";i:1;R:434;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!archive\\.org/details/!";i:1;R:210;}}}}}s:8:"izlesene";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!izlesene\\.com/video/[-\\w]+/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:10:"jwplatform";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:35:"!jwplatform\\.com/\\w+/(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;R:176;}s:3:"khl";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:27:"!/feed/start/(?\'id\'[/\\w]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:36:"!video\\.khl\\.ru/(?:event|quote)s/\\d!";i:1;R:210;}}}}}s:11:"kickstarter";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:93:"!kickstarter\\.com/projects/(?\'id\'[^/]+/[^/?]+)(?:/widget/(?:(?\'card\'card)|(?\'video\'video)))?!";i:1;a:4:{i:0;s:0:"";i:1;s:2:"id";i:2;s:4:"card";i:3;s:5:"video";}}}i:1;R:176;}s:9:"kissvideo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!kissvideo\\.click/[^_]*_(?\'id\'[0-9a-f]+)!";i:1;R:173;}}i:1;R:176;}s:6:"libsyn";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:29:"!embed/episode/id/(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:16:"@(?!\\.mp3)....$@";i:1;R:210;}}}}}s:7:"livecap";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:44:"!livecap.tv/[st]/(?\'channel\'\\w+)/(?\'id\'\\w+)!";i:1;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:2:"id";}}}i:1;R:176;}s:8:"liveleak";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!liveleak\\.com/view\\?i=(?\'id\'[a-f_0-9]+)!";i:1;R:173;}}i:1;R:176;}s:10:"livestream";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:69:"!livestream\\.com/accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:10:"account_id";i:2;s:8:"event_id";}}i:1;a:2:{i:0;s:26:"!/videos/(?\'video_id\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"video_id";}}i:2;a:2:{i:0;s:76:"!original\\.livestream\\.com/(?\'channel\'\\w+)/video\\?clipId=(?\'clip_id\'[-\\w]+)!";i:1;a:3:{i:0;s:0:"";i:1;s:7:"channel";i:2;s:7:"clip_id";}}}i:1;a:2:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:53:"!accounts/(?\'account_id\'\\d+)/events/(?\'event_id\'\\d+)!";i:1;R:639;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:44:"@livestream\\.com/(?!accounts/\\d+/events/\\d)@";i:1;R:210;}}}i:1;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:70:"!//original\\.livestream\\.com/(?\'channel\'\\w+)/video/(?\'clip_id\'[-\\w]+)!";i:1;R:650;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:13:"!livestre.am!";i:1;R:210;}}}}}s:6:"mailru";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!"itemId": ?"?(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:35:"!my\\.mail\\.ru/\\w+/\\w+/video/\\w+/\\d!";i:1;R:210;}}}}}s:6:"medium";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:47:"!medium\\.com/[^/]*/(?:[-\\w]+-)?(?\'id\'[\\da-f]+)!";i:1;R:173;}}i:1;R:176;}s:8:"metacafe";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!metacafe\\.com/watch/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:8:"mixcloud";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:55:"@mixcloud\\.com/(?!categories|tag)(?\'id\'[-\\w]+/[^/&]+)/@";i:1;R:173;}}i:1;R:176;}s:3:"mlb";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:29:"#mlb\\.com/[\\w/]*/v(?\'id\'\\d+)#";i:1;R:173;}i:1;a:2:{i:0;s:41:"#mlb\\.com/r/video\\?content_id=(?\'id\'\\d+)#";i:1;R:173;}}i:1;R:176;}s:5:"mrctv";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:29:"!mrctv\\.org/embed/(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:21:"!mrctv\\.org/videos/.!";i:1;R:210;}}}}}s:5:"msnbc";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:43:"@property="nv:videoId" content="(?\'id\'\\w+)@";i:1;R:173;}i:1;a:2:{i:0;s:24:"@guid"?[=:]"?(?\'id\'\\w+)@";i:1;R:173;}}s:5:"match";a:2:{i:0;a:2:{i:0;s:26:"@msnbc\\.com/[-\\w]+/watch/@";i:1;R:210;}i:1;a:2:{i:0;s:18:"@on\\.msnbc\\.com/.@";i:1;R:210;}}}}}s:13:"natgeochannel";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:63:"@channel\\.nationalgeographic\\.com/(?\'id\'[-/\\w]+/videos/[-\\w]+)@";i:1;R:173;}}i:1;R:176;}s:11:"natgeovideo";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:22:"@guid="(?\'id\'[-\\w]+)"@";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:48:"@video\\.nationalgeographic\\.com/(?:tv|video)/\\w@";i:1;R:210;}}}}}s:7:"nbcnews";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:63:"!nbcnews\\.com/(?:widget/video-embed/|video/[-\\w]+?-)(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:9:"nbcsports";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:25:"!select/media/(?\'id\'\\w+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:24:"!nbcsports\\.com/video/.!";i:1;R:210;}}}}}s:3:"nhl";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:80:"#nhl\\.com/(?:\\w+/)?video(?:/(?![ct]-)[-\\w]+)?(?:/t-(?\'t\'\\d+))?(?:/c-(?\'c\'\\d+))?#";i:1;a:3:{i:0;s:0:"";i:1;s:1:"t";i:2;s:1:"c";}}}i:1;R:176;}s:3:"npr";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"!player/embed/(?\'i\'\\d+)/(?\'m\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:1:"i";i:2;s:1:"m";}}}s:5:"match";a:2:{i:0;a:2:{i:0;s:21:"!npr\\.org/[/\\w]+/\\d+!";i:1;R:210;}i:1;a:2:{i:0;s:10:"!n\\.pr/\\w!";i:1;R:210;}}}}}s:7:"nytimes";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:50:"!nytimes\\.com/video/[a-z]+/(?:[a-z]+/)?(?\'id\'\\d+)!";i:1;R:173;}i:1;a:2:{i:0;s:50:"!nytimes\\.com/video/\\d+/\\d+/\\d+/[a-z]+/(?\'id\'\\d+)!";i:1;R:173;}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:26:"!/video/movies/(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:65:"!nytimes\\.com/movie(?:s/movie)?/(?\'playlist\'\\d+)/[-\\w]+/trailers!";i:1;a:2:{i:0;s:0:"";i:1;s:8:"playlist";}}}s:3:"url";s:73:"http://www.nytimes.com/svc/video/api/playlist/{@playlist}?externalId=true";}}}s:7:"oddshot";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"!oddshot.tv/s/(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;R:176;}s:6:"orfium";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:24:"@album/(?\'album_id\'\\d+)@";i:1;R:204;}i:1;a:2:{i:0;s:30:"@playlist/(?\'playlist_id\'\\d+)@";i:1;a:2:{i:0;s:0:"";i:1;s:11:"playlist_id";}}i:2;a:2:{i:0;s:25:"@live-set/(?\'set_id\'\\d+)@";i:1;a:2:{i:0;s:0:"";i:1;s:6:"set_id";}}i:3;a:2:{i:0;s:24:"@track/(?\'track_id\'\\d+)@";i:1;R:223;}}i:1;R:176;}s:8:"pastebin";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:55:"@pastebin\\.com/(?!u/)(?:\\w+(?:\\.php\\?i=|/))?(?\'id\'\\w+)@";i:1;R:173;}}i:1;R:176;}s:9:"pinterest";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:30:"@pinterest.com/pin/(?\'id\'\\d+)@";i:1;R:173;}i:1;a:2:{i:0;s:84:"@pinterest.com/(?!_/|discover/|explore/|news_hub/|pin/|search/)(?\'id\'[-\\w]+/[-\\w]+)@";i:1;R:173;}}i:1;R:176;}s:7:"playstv";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"!plays\\.tv/video/(?\'id\'\\w+)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";R:816;s:5:"match";a:1:{i:0;a:2:{i:0;s:14:"!plays\\.tv/s/!";i:1;R:210;}}}}}s:7:"podbean";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:55:"!podbean\\.com/media/(?:player/|share/pb-)(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:41:"!podbean\\.com/media/player/(?\'id\'[-\\w]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:39:"@podbean\\.com/(?:media/shar)?e/(?!pb-)@";i:1;R:210;}}}}}s:5:"prezi";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:221:"#//prezi\\.com/(?!(?:a(?:bout|mbassadors)|c(?:o(?:llaborate|mmunity|ntact)|reate)|exp(?:erts|lore)|ip(?:ad|hone)|jobs|l(?:ear|ogi)n|m(?:ac|obility)|pr(?:es(?:s|ent)|icing)|recommend|support|user|windows|your)/)(?\'id\'\\w+)/#";i:1;R:173;}}i:1;R:176;}s:6:"reddit";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:38:"!(?\'id\'\\w+/comments/\\w+(?:/\\w+/\\w+)?)!";i:1;R:173;}}i:1;R:176;}s:6:"rutube";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:30:"!rutube\\.ru/tracks/(?\'id\'\\d+)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"!rutube\\.ru/play/embed/(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:31:"!rutube\\.ru/video/[0-9a-f]{32}!";i:1;R:210;}}}}}s:6:"scribd";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:50:"!scribd\\.com/(?:mobile/)?doc(?:ument)?/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:10:"slideshare";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:45:"!slideshare\\.net/[^/]+/[-\\w]+-(?\'id\'\\d{6,})$!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:29:"!"presentationId":(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:44:"@slideshare\\.net/[^/]+/\\w(?![-\\w]+-\\d{6,}$)@";i:1;R:210;}}}}}s:10:"soundcloud";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:84:"@https?://(?:api\\.)?soundcloud\\.com/(?!pages/)(?\'id\'[-/\\w]+/[-/\\w]+|^[^/]+/[^/]+$)@i";i:1;R:173;}i:1;a:2:{i:0;s:52:"@api\\.soundcloud\\.com/playlists/(?\'playlist_id\'\\d+)@";i:1;R:795;}i:2;a:2:{i:0;s:89:"@api\\.soundcloud\\.com/tracks/(?\'track_id\'\\d+)(?:\\?secret_token=(?\'secret_token\'[-\\w]+))?@";i:1;a:3:{i:0;s:0:"";i:1;s:8:"track_id";i:2;s:12:"secret_token";}}i:3;a:2:{i:0;s:81:"@soundcloud\\.com/(?!playlists|tracks)[-\\w]+/[-\\w]+/(?=s-)(?\'secret_token\'[-\\w]+)@";i:1;a:2:{i:0;s:0:"";i:1;s:12:"secret_token";}}}i:1;a:2:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:36:"@soundcloud:tracks:(?\'track_id\'\\d+)@";i:1;R:223;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:56:"@soundcloud\\.com/(?!playlists/\\d|tracks/\\d)[-\\w]+/[-\\w]@";i:1;R:210;}}}i:1;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:44:"@soundcloud://playlists:(?\'playlist_id\'\\d+)@";i:1;R:795;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:27:"@soundcloud\\.com/\\w+/sets/@";i:1;R:210;}}}}}s:9:"sportsnet";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:25:"/vid(?:eoId)?=(?\'id\'\\d+)/";i:1;R:173;}i:1;a:2:{i:0;s:46:"/param name="@videoPlayer" value="(?\'id\'\\d+)"/";i:1;R:173;}}s:5:"match";R:452;}}}s:7:"spotify";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:79:"!(?:open|play)\\.spotify\\.com/(?\'id\'(?:album|artist|track|user)(?:[:/][-\\w]+)+)!";i:1;R:173;}}i:1;R:176;}s:10:"steamstore";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:39:"!store.steampowered.com/app/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:8:"stitcher";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:23:"!data-eid="(?\'eid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"eid";}}i:1;a:2:{i:0;s:23:"!data-fid="(?\'fid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"fid";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:11:"!/podcast/!";i:1;R:210;}}}}}s:9:"strawpoll";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:26:"!strawpoll\\.me/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:10:"streamable";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"!streamable\\.com/(?\'id\'\\w+)!";i:1;R:173;}}i:1;R:176;}s:8:"teamcoco";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!teamcoco\\.com/video/(?\'id\'\\d+)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:17:"!"id":(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:23:"!teamcoco\\.com/video/.!";i:1;R:210;}}}}}s:3:"ted";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:76:"#ted\\.com/(?\'id\'(?:talk|playlist)s/[-\\w]+(?:\\.html)?)(?![-\\w]|/transcript)#i";i:1;R:173;}}i:1;R:176;}s:8:"telegram";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:49:"@//t.me/(?!addstickers/|joinchat/)(?\'id\'\\w+/\\d+)@";i:1;R:173;}}i:1;R:176;}s:11:"theatlantic";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!theatlantic\\.com/video/index/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:11:"theguardian";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:43:"!theguardian\\.com/(?\'id\'\\w+/video/[-/\\w]+)!";i:1;R:173;}}i:1;R:176;}s:8:"theonion";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:42:"!theonion\\.com/video/[-\\w]+[-,](?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:7:"tinypic";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:52:"!tinypic\\.com/player\\.php\\?v=(?\'id\'\\w+)&s=(?\'s\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:2:"id";i:2;s:1:"s";}}i:1;a:2:{i:0;s:37:"!tinypic\\.com/r/(?\'id\'\\w+)/(?\'s\'\\d+)!";i:1;R:981;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:33:"!file=(?\'id\'\\w+)&s=(?\'s\'\\d+)!";i:1;R:981;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:31:"!tinypic\\.com/(?:m|usermedia)/!";i:1;R:210;}}}}}s:3:"tmz";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:28:"@tmz\\.com/videos/(?\'id\'\\w+)@";i:1;R:173;}}i:1;R:176;}s:13:"traileraddict";a:2:{i:0;R:176;i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:34:"@v\\.traileraddict\\.com/(?\'id\'\\d+)@";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:37:"@traileraddict\\.com/(?!tags/)[^/]+/.@";i:1;R:210;}}}}}s:6:"tumblr";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:46:"!(?\'name\'[-\\w]+)\\.tumblr\\.com/post/(?\'id\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:4:"name";i:2;s:2:"id";}}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:2:{i:0;a:2:{i:0;s:27:"!did=\\\\u0022(?\'did\'[-\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"did";}}i:1;a:2:{i:0;s:31:"!embed\\\\/post\\\\/(?\'key\'[-\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"key";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:25:"!\\w\\.tumblr\\.com/post/\\d!";i:1;R:210;}}s:3:"url";s:73:"http://www.tumblr.com/oembed/1.0?url=http://{@name}.tumblr.com/post/{@id}";}}}s:6:"twitch";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:47:"#twitch\\.tv/(?:videos|\\w+/v)/(?\'video_id\'\\d+)?#";i:1;R:645;}i:1;a:2:{i:0;s:44:"#www\\.twitch\\.tv/(?!videos/)(?\'channel\'\\w+)#";i:1;a:2:{i:0;s:0:"";i:1;s:7:"channel";}}i:2;a:2:{i:0;s:32:"#t=(?\'t\'(?:(?:\\d+h)?\\d+m)?\\d+s)#";i:1;R:316;}i:3;a:2:{i:0;s:56:"#clips\\.twitch\\.tv/(?:(?\'channel\'\\w+)/)?(?\'clip_id\'\\w+)#";i:1;R:650;}}i:1;R:176;}s:7:"twitter";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:51:"@twitter\\.com/(?:#!/)?\\w+/status(?:es)?/(?\'id\'\\d+)@";i:1;R:173;}}i:1;R:176;}s:7:"ustream";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:34:"!ustream\\.tv/recorded/(?\'vid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"vid";}}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"!embed/(?\'cid\'\\d+)!";i:1;a:2:{i:0;s:0:"";i:1;s:3:"cid";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:90:"#ustream\\.tv/(?!explore/|platform/|recorded/|search\\?|upcoming$|user/)(?:channel/)?[-\\w]+#";i:1;R:210;}}}}}s:5:"vbox7";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:33:"!vbox7\\.com/play:(?\'id\'[\\da-f]+)!";i:1;R:173;}}i:1;R:176;}s:4:"veoh";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:50:"!veoh\\.com/(?:m/watch\\.php\\?v=|watch/)v(?\'id\'\\w+)!";i:1;R:173;}}i:1;R:176;}s:4:"vevo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:41:"!vevo\\.com/watch/(.*?/)?(?\'id\'[A-Z]+\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:0:"";i:2;s:2:"id";}}}i:1;R:176;}s:7:"viagame";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:40:"!viagame\\.com/channels/[^/]+/(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:14:"videodetective";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:59:"!videodetective\\.com/\\w+/[-\\w]+/(?:trailer/P0*)?(?\'id\'\\d+)!";i:1;R:173;}}i:1;R:176;}s:9:"videomega";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:32:"!videomega\\.tv/\\?ref=(?\'id\'\\w+)!";i:1;R:173;}}i:1;R:176;}s:5:"vimeo";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:50:"!vimeo\\.com/(?:channels/[^/]+/|video/)?(?\'id\'\\d+)!";i:1;R:173;}i:1;a:2:{i:0;s:19:"!#t=(?\'t\'[\\dhms]+)!";i:1;R:316;}}i:1;R:176;}s:4:"vine";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:25:"!vine\\.co/v/(?\'id\'[^/]+)!";i:1;R:173;}}i:1;R:176;}s:2:"vk";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:71:"!vk(?:\\.com|ontakte\\.ru)/(?:[\\w.]+\\?z=)?video(?\'oid\'-?\\d+)_(?\'vid\'\\d+)!";i:1;a:3:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";}}i:1;a:2:{i:0;s:98:"!vk(?:\\.com|ontakte\\.ru)/video_ext\\.php\\?oid=(?\'oid\'-?\\d+)&id=(?\'vid\'\\d+)&hash=(?\'hash\'[0-9a-f]+)!";i:1;a:4:{i:0;s:0:"";i:1;s:3:"oid";i:2;s:3:"vid";i:3;s:4:"hash";}}}i:1;a:1:{i:0;a:3:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:31:"!embed_hash=(?\'hash\'[0-9a-f]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:4:"hash";}}}s:5:"match";a:1:{i:0;a:2:{i:0;s:21:"!vk.*?video-?\\d+_\\d+!";i:1;R:210;}}s:3:"url";s:32:"http://vk.com/video{@oid}_{@vid}";}}}s:7:"vocaroo";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:27:"!vocaroo\\.com/i/(?\'id\'\\w+)!";i:1;R:173;}}i:1;R:176;}s:3:"vox";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:31:"!vox.com/.*#ooid=(?\'id\'[-\\w]+)!";i:1;R:173;}}i:1;R:176;}s:14:"washingtonpost";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:51:"#washingtonpost\\.com/video/c/\\w+/(?\'id\'[-0-9a-f]+)#";i:1;R:173;}i:1;a:2:{i:0;s:65:"#washingtonpost\\.com/video/[-/\\w]+/(?\'id\'[-0-9a-f]+)_video\\.html#";i:1;R:173;}}i:1;R:176;}s:4:"wshh";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:42:"!worldstarhiphop\\.com/featured/(?\'id\'\\d+)!";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:18:"!v: ?"?(?\'id\'\\d+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:49:"!worldstarhiphop\\.com/(?:\\w+/)?video\\.php\\?v=\\w+!";i:1;R:210;}}}}}s:3:"wsj";a:2:{i:0;a:2:{i:0;a:2:{i:0;s:38:"@wsj\\.com/[^#]*#!(?\'id\'[-0-9A-F]{36})@";i:1;R:173;}i:1;a:2:{i:0;s:43:"@wsj\\.com/video/[^/]+/(?\'id\'[-0-9A-F]{36})@";i:1;R:173;}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:27:"@guid=(?\'id\'[-0-9A-F]{36})@";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:17:"@on\\.wsj\\.com/\\w@";i:1;R:210;}}}}}s:9:"xboxclips";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:65:"@xboxclips\\.com/(?\'user\'[^/]+)/(?!screenshots/)(?\'id\'[-0-9a-f]+)@";i:1;a:3:{i:0;s:0:"";i:1;s:4:"user";i:2;s:2:"id";}}}i:1;R:176;}s:7:"xboxdvr";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:52:"!xboxdvr\\.com/gamer/(?\'user\'[^/]+)/video/(?\'id\'\\d+)!";i:1;R:1177;}}i:1;R:176;}s:11:"yahooscreen";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:52:"!screen\\.yahoo\\.com/(?:[-\\w]+/)?(?\'id\'[-\\w]+)\\.html!";i:1;R:173;}}i:1;R:176;}s:5:"youku";a:2:{i:0;a:1:{i:0;a:2:{i:0;s:42:"!youku\\.com/v(?:_show|ideo)/id_(?\'id\'\\w+)!";i:1;R:173;}}i:1;R:176;}s:7:"youtube";a:2:{i:0;a:4:{i:0;a:2:{i:0;s:69:"!youtube\\.com/(?:watch.*?v=|v/|attribution_link.*?v%3D)(?\'id\'[-\\w]+)!";i:1;R:173;}i:1;a:2:{i:0;s:25:"!youtu\\.be/(?\'id\'[-\\w]+)!";i:1;R:173;}i:2;a:2:{i:0;s:25:"@[#&?]t=(?\'t\'\\d[\\dhms]*)@";i:1;R:316;}i:3;a:2:{i:0;s:23:"!&list=(?\'list\'[-\\w]+)!";i:1;a:2:{i:0;s:0:"";i:1;s:4:"list";}}}i:1;a:1:{i:0;a:2:{s:7:"extract";a:1:{i:0;a:2:{i:0;s:19:"!/vi/(?\'id\'[-\\w]+)!";i:1;R:173;}}s:5:"match";a:1:{i:0;a:2:{i:0;s:14:"!/shared\\?ci=!";i:1;R:210;}}}}}}}s:14:"' . "\0" . '*' . "\0" . 'rootContext";a:2:{s:7:"allowed";a:1:{i:0;i:771;}s:5:"flags";i:0;}s:13:"' . "\0" . '*' . "\0" . 'tagsConfig";a:123:{s:7:"ABCNEWS";a:7:{s:10:"attributes";a:1:{s:2:"id";a:2:{s:8:"required";b:0;s:11:"filterChain";R:176;}}s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:59:"s9e\\TextFormatter\\Parser\\FilterProcessing::filterAttributes";s:6:"params";a:4:{s:3:"tag";N;s:9:"tagConfig";N;s:14:"registeredVars";N;s:6:"logger";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:3089;}s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";a:1:{i:0;i:256;}}s:6:"AMAZON";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1221;s:3:"tld";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:9:"AUDIOBOOM";R:1219;s:9:"AUDIOMACK";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1221;s:4:"mode";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:8:"BANDCAMP";a:7:{s:10:"attributes";a:3:{s:8:"album_id";R:1221;s:8:"track_id";R:1221;s:9:"track_num";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:7:"BBCNEWS";a:7:{s:10:"attributes";a:1:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:12:"stripslashes";s:6:"params";a:1:{s:9:"attrValue";N;}}}s:8:"required";b:0;}}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:4:"BLAB";R:1219;s:14:"BLEACHERREPORT";R:1219;s:5:"BREAK";R:1219;s:10:"BRIGHTCOVE";a:7:{s:10:"attributes";a:3:{s:5:"bckey";R:1221;s:5:"bcpid";R:1221;s:5:"bctid";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:7:"CBSNEWS";R:1219;s:4:"CNBC";R:1219;s:3:"CNN";R:1219;s:8:"CNNMONEY";R:1219;s:12:"COLLEGEHUMOR";R:1219;s:13:"COMEDYCENTRAL";R:1219;s:4:"COUB";R:1219;s:11:"DAILYMOTION";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1221;s:1:"t";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:12:"DEMOCRACYNOW";R:1219;s:7:"DUMPERT";R:1219;s:11:"EIGHTTRACKS";R:1219;s:4:"ESPN";R:1219;s:8:"FACEBOOK";a:7:{s:10:"attributes";a:3:{s:2:"id";R:1221;s:4:"type";R:1221;s:4:"user";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:6:"FLICKR";R:1219;s:6:"FORATV";R:1219;s:7:"FOXNEWS";R:1219;s:9:"FOXSPORTS";R:1219;s:10:"FUNNYORDIE";R:1219;s:8:"GAMESPOT";R:1219;s:12:"GAMETRAILERS";R:1219;s:5:"GETTY";a:7:{s:10:"attributes";a:5:{s:2:"et";R:1221;s:6:"height";a:3:{s:12:"defaultValue";i:360;s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:67:"s9e\\TextFormatter\\Parser\\AttributeFilters\\NumericFilter::filterUint";s:6:"params";R:1259;}}s:8:"required";b:0;}s:2:"id";R:1221;s:3:"sig";R:1221;s:5:"width";a:3:{s:12:"defaultValue";i:640;s:11:"filterChain";R:1284;s:8:"required";b:0;}}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:6:"GFYCAT";a:7:{s:10:"attributes";a:3:{s:6:"height";R:1282;s:2:"id";R:1221;s:5:"width";R:1288;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:4:"GIFS";R:1294;s:4:"GIST";R:1219;s:10:"GLOBALNEWS";R:1219;s:8:"GOFUNDME";R:1219;s:11:"GOOGLEDRIVE";R:1219;s:10:"GOOGLEPLUS";a:7:{s:10:"attributes";a:3:{s:4:"name";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:9:"urldecode";s:6:"params";R:1259;}}s:8:"required";b:0;}s:3:"oid";R:1221;s:3:"pid";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:12:"GOOGLESHEETS";a:7:{s:10:"attributes";a:2:{s:3:"gid";R:1221;s:2:"id";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:10:"HEALTHGURU";R:1219;s:4:"HUDL";a:7:{s:10:"attributes";a:2:{s:7:"athlete";R:1221;s:9:"highlight";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:4:"HULU";R:1219;s:9:"HUMORTVNL";R:1219;s:3:"IGN";R:1219;s:4:"IMDB";R:1219;s:5:"IMGUR";R:1219;s:9:"INDIEGOGO";R:1219;s:9:"INSTAGRAM";R:1219;s:15:"INTERNETARCHIVE";R:1294;s:8:"IZLESENE";R:1219;s:10:"JWPLATFORM";R:1219;s:3:"KHL";R:1219;s:11:"KICKSTARTER";a:7:{s:10:"attributes";a:3:{s:4:"card";R:1221;s:2:"id";R:1221;s:5:"video";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:9:"KISSVIDEO";R:1219;s:6:"LIBSYN";R:1219;s:7:"LIVECAP";a:7:{s:10:"attributes";a:2:{s:7:"channel";R:1221;s:2:"id";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:8:"LIVELEAK";R:1219;s:10:"LIVESTREAM";a:7:{s:10:"attributes";a:5:{s:10:"account_id";R:1221;s:7:"channel";R:1221;s:7:"clip_id";R:1221;s:8:"event_id";R:1221;s:8:"video_id";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:6:"MAILRU";R:1219;s:5:"MEDIA";a:7:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:54:"s9e\\TextFormatter\\Plugins\\MediaEmbed\\Parser::filterTag";s:6:"params";a:5:{s:3:"tag";N;s:6:"parser";N;s:16:"MediaEmbed.hosts";N;s:16:"MediaEmbed.sites";N;s:8:"cacheDir";N;}}}s:12:"nestingLimit";i:10;s:5:"rules";a:1:{s:5:"flags";i:513;}s:8:"tagLimit";i:5000;s:10:"attributes";R:176;s:9:"bitNumber";i:0;s:7:"allowed";a:1:{i:0;i:770;}}s:6:"MEDIUM";R:1219;s:8:"METACAFE";R:1219;s:8:"MIXCLOUD";R:1219;s:3:"MLB";R:1219;s:5:"MRCTV";R:1219;s:5:"MSNBC";R:1219;s:13:"NATGEOCHANNEL";R:1219;s:11:"NATGEOVIDEO";R:1219;s:7:"NBCNEWS";R:1219;s:9:"NBCSPORTS";R:1219;s:3:"NHL";a:7:{s:10:"attributes";a:2:{s:1:"c";R:1221;s:1:"t";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:3:"NPR";a:7:{s:10:"attributes";a:2:{s:1:"i";R:1221;s:1:"m";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:7:"NYTIMES";R:1219;s:7:"ODDSHOT";R:1219;s:6:"ORFIUM";a:7:{s:10:"attributes";a:4:{s:8:"album_id";R:1221;s:11:"playlist_id";R:1221;s:6:"set_id";R:1221;s:8:"track_id";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:8:"PASTEBIN";R:1219;s:9:"PINTEREST";R:1219;s:7:"PLAYSTV";R:1219;s:7:"PODBEAN";R:1219;s:5:"PREZI";R:1219;s:6:"REDDIT";R:1219;s:6:"RUTUBE";R:1219;s:6:"SCRIBD";R:1219;s:10:"SLIDESHARE";R:1219;s:10:"SOUNDCLOUD";a:7:{s:10:"attributes";a:4:{s:2:"id";R:1221;s:11:"playlist_id";R:1221;s:12:"secret_token";R:1221;s:8:"track_id";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:9:"SPORTSNET";R:1219;s:7:"SPOTIFY";R:1219;s:10:"STEAMSTORE";R:1219;s:8:"STITCHER";a:7:{s:10:"attributes";a:2:{s:3:"eid";R:1221;s:3:"fid";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:9:"STRAWPOLL";R:1219;s:10:"STREAMABLE";R:1219;s:8:"TEAMCOCO";R:1219;s:3:"TED";R:1219;s:8:"TELEGRAM";R:1219;s:11:"THEATLANTIC";R:1219;s:11:"THEGUARDIAN";R:1219;s:8:"THEONION";R:1219;s:7:"TINYPIC";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1221;s:1:"s";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:3:"TMZ";R:1219;s:13:"TRAILERADDICT";R:1219;s:6:"TUMBLR";a:7:{s:10:"attributes";a:4:{s:3:"did";R:1221;s:2:"id";R:1221;s:3:"key";R:1221;s:4:"name";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:6:"TWITCH";a:7:{s:10:"attributes";a:4:{s:7:"channel";R:1221;s:7:"clip_id";R:1221;s:1:"t";R:1221;s:8:"video_id";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:7:"TWITTER";R:1219;s:7:"USTREAM";a:7:{s:10:"attributes";a:2:{s:3:"cid";R:1221;s:3:"vid";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:5:"VBOX7";R:1219;s:4:"VEOH";R:1219;s:4:"VEVO";R:1219;s:7:"VIAGAME";R:1219;s:14:"VIDEODETECTIVE";R:1219;s:9:"VIDEOMEGA";R:1219;s:5:"VIMEO";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1221;s:1:"t";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:65:"s9e\\TextFormatter\\Parser\\AttributeFilters\\TimestampFilter::filter";s:6:"params";R:1259;}}s:8:"required";b:0;}}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:4:"VINE";R:1219;s:2:"VK";a:7:{s:10:"attributes";a:3:{s:4:"hash";R:1221;s:3:"oid";R:1221;s:3:"vid";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:7:"VOCAROO";R:1219;s:3:"VOX";R:1219;s:14:"WASHINGTONPOST";R:1219;s:4:"WSHH";R:1219;s:3:"WSJ";R:1219;s:9:"XBOXCLIPS";a:7:{s:10:"attributes";a:2:{s:2:"id";R:1221;s:4:"user";R:1221;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}s:7:"XBOXDVR";R:1411;s:11:"YAHOOSCREEN";R:1219;s:5:"YOUKU";R:1219;s:7:"YOUTUBE";a:7:{s:10:"attributes";a:3:{s:2:"id";a:2:{s:11:"filterChain";a:1:{i:0;a:2:{s:8:"callback";s:62:"s9e\\TextFormatter\\Parser\\AttributeFilters\\RegexpFilter::filter";s:6:"params";a:2:{s:9:"attrValue";N;i:0;s:19:"/^[-0-9A-Za-z_]+$/D";}}}s:8:"required";b:0;}s:4:"list";R:1221;s:1:"t";R:1398;}s:11:"filterChain";R:1223;s:12:"nestingLimit";i:10;s:5:"rules";R:1232;s:8:"tagLimit";i:5000;s:9:"bitNumber";i:1;s:7:"allowed";R:1236;}}}');
}
public static function getRenderer()
{
diff --git a/src/Bundles/MediaPack/Renderer.php b/src/Bundles/MediaPack/Renderer.php
index 0af01ee1a9..5a5f2d3129 100644
--- a/src/Bundles/MediaPack/Renderer.php
+++ b/src/Bundles/MediaPack/Renderer.php
@@ -11,16 +11,16 @@ class Renderer extends \s9e\TextFormatter\Renderers\PHP
protected $params=['AMAZON_ASSOCIATE_TAG'=>'','AMAZON_ASSOCIATE_TAG_CA'=>'','AMAZON_ASSOCIATE_TAG_DE'=>'','AMAZON_ASSOCIATE_TAG_ES'=>'','AMAZON_ASSOCIATE_TAG_FR'=>'','AMAZON_ASSOCIATE_TAG_IN'=>'','AMAZON_ASSOCIATE_TAG_IT'=>'','AMAZON_ASSOCIATE_TAG_JP'=>'','AMAZON_ASSOCIATE_TAG_UK'=>''];
protected function renderNode(\DOMNode $node)
{
- switch($node->nodeName){case'ABCNEWS':$this->out.='';break;case'AMAZON':$this->out.='';break;case'AUDIOBOOM':$this->out.='';break;case'AUDIOMACK':$this->out.='';break;case'BANDCAMP':$this->out.='';break;case'BBCNEWS':$this->out.='';break;case'BLAB':$this->out.='';break;case'BLEACHERREPORT':$this->out.='';break;case'BREAK':$this->out.='';break;case'BRIGHTCOVE':$this->out.='';break;case'CBSNEWS':$this->out.='getAttribute('id'),'-')!==\false))$this->out.=' style="display:block;overflow:hidden;position:relative;padding-bottom:56.25%">';elseif($node->hasAttribute('pid'))$this->out.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)">';else$this->out.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)">';$this->out.='';break;case'CNBC':$this->out.='';break;case'CNN':$this->out.='';break;case'CNNMONEY':$this->out.='';break;case'COLLEGEHUMOR':$this->out.='';break;case'COMEDYCENTRAL':$this->out.='';break;case'COUB':$this->out.='';break;case'DAILYMOTION':$this->out.='';break;case'DEMOCRACYNOW':$this->out.='';break;case'DUMPERT':$this->out.='';break;case'EIGHTTRACKS':$this->out.='';break;case'ESPN':$this->out.='';break;case'FACEBOOK':$this->out.='';break;case'FLICKR':$this->out.='';break;case'FORATV':$this->out.='';break;case'FOXNEWS':$this->out.='';break;case'FOXSPORTS':$this->out.='';break;case'FUNNYORDIE':$this->out.='';break;case'GAMESPOT':$this->out.='';break;case'GAMETRAILERS':$this->out.='';break;case'GETTY':$this->out.='';break;case'GFYCAT':$this->out.='';break;case'GIFS':$this->out.='';break;case'GIST':$this->out.='';break;case'GLOBALNEWS':$this->out.='';break;case'GOFUNDME':$this->out.='';break;case'GOOGLEDRIVE':$this->out.='';break;case'GOOGLEPLUS':$this->out.='';break;case'GOOGLESHEETS':$this->out.='';break;case'HEALTHGURU':$this->out.='';break;case'HUDL':$this->out.='';break;case'HULU':$this->out.='';break;case'HUMORTVNL':$this->out.='';break;case'IGN':$this->out.='';break;case'IMDB':$this->out.='';break;case'IMGUR':$this->out.='';break;case'INDIEGOGO':$this->out.='';break;case'INSTAGRAM':$this->out.='';break;case'INTERNETARCHIVE':$this->out.='';break;case'IZLESENE':$this->out.='';break;case'JWPLATFORM':$this->out.='';break;case'KHL':$this->out.='';break;case'KICKSTARTER':$this->out.='hasAttribute('video'))$this->out.=' style="display:inline-block;width:100%;max-width:480px">';else$this->out.=' style="display:inline-block;width:100%;max-width:220px">';$this->out.='';break;case'KISSVIDEO':$this->out.='';break;case'LIBSYN':$this->out.='';break;case'LIVECAP':$this->out.='';break;case'LIVELEAK':$this->out.='';break;case'LIVESTREAM':$this->out.='';break;case'MAILRU':$this->out.='';break;case'MEDIUM':$this->out.='';break;case'METACAFE':$this->out.='';break;case'MIXCLOUD':$this->out.='';break;case'MLB':$this->out.='';break;case'MRCTV':$this->out.='';break;case'MSNBC':$this->out.='';break;case'NATGEOCHANNEL':$this->out.='';break;case'NATGEOVIDEO':$this->out.='';break;case'NBCNEWS':$this->out.='';break;case'NBCSPORTS':$this->out.='';break;case'NHL':$this->out.='';break;case'NPR':$this->out.='';break;case'NYTIMES':$this->out.='';break;case'ODDSHOT':$this->out.='';break;case'ORFIUM':$this->out.='';break;case'PASTEBIN':$this->out.='';break;case'PINTEREST':$this->out.='';break;case'PLAYSTV':$this->out.='';break;case'PODBEAN':$this->out.='';break;case'PREZI':$this->out.='';break;case'REDDIT':$this->out.='';break;case'RUTUBE':$this->out.='';break;case'SCRIBD':$this->out.='';break;case'SLIDESHARE':$this->out.='';break;case'SOUNDCLOUD':$this->out.='';break;case'SPORTSNET':$this->out.='';break;case'SPOTIFY':$this->out.='';break;case'STEAMSTORE':$this->out.='';break;case'STITCHER':$this->out.='';break;case'STRAWPOLL':$this->out.='';break;case'STREAMABLE':$this->out.='';break;case'TEAMCOCO':$this->out.='';break;case'TED':$this->out.='';break;case'THEATLANTIC':$this->out.='';break;case'THEGUARDIAN':$this->out.='';break;case'THEONION':$this->out.='';break;case'TINYPIC':$this->out.='';break;case'TMZ':$this->out.='';break;case'TRAILERADDICT':$this->out.='';break;case'TUMBLR':$this->out.='';break;case'TWITCH':$this->out.='';break;case'TWITTER':$this->out.='';break;case'USTREAM':$this->out.='';break;case'VBOX7':$this->out.='';break;case'VEOH':$this->out.='';break;case'VEVO':$this->out.='';break;case'VIAGAME':$this->out.='';break;case'VIDEODETECTIVE':$this->out.='';break;case'VIDEOMEGA':$this->out.='';break;case'VIMEO':$this->out.='';break;case'VINE':$this->out.='';break;case'VK':$this->out.='';break;case'VOCAROO':$this->out.='';break;case'VOX':$this->out.='';break;case'WASHINGTONPOST':$this->out.='';break;case'WSHH':$this->out.='';break;case'WSJ':$this->out.='';break;case'XBOXCLIPS':$this->out.='';break;case'XBOXDVR':$this->out.='';break;case'YAHOOSCREEN':$this->out.='';break;case'YOUKU':$this->out.='';break;case'YOUTUBE':$this->out.='';break;case'br':$this->out.=' ';break;case'e':case'i':case's':break;case'p':$this->out.='';$this->at($node);$this->out.=' ';break;default:$this->at($node);}
+ switch($node->nodeName){case'ABCNEWS':$this->out.='';break;case'AMAZON':$this->out.='';break;case'AUDIOBOOM':$this->out.='';break;case'AUDIOMACK':$this->out.='';break;case'BANDCAMP':$this->out.='';break;case'BBCNEWS':$this->out.='';break;case'BLAB':$this->out.='';break;case'BLEACHERREPORT':$this->out.='';break;case'BREAK':$this->out.='';break;case'BRIGHTCOVE':$this->out.='';break;case'CBSNEWS':$this->out.='getAttribute('id'),'-')!==\false))$this->out.=' style="display:block;overflow:hidden;position:relative;padding-bottom:56.25%">';elseif($node->hasAttribute('pid'))$this->out.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)">';else$this->out.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)">';$this->out.='';break;case'CNBC':$this->out.='';break;case'CNN':$this->out.='';break;case'CNNMONEY':$this->out.='';break;case'COLLEGEHUMOR':$this->out.='';break;case'COMEDYCENTRAL':$this->out.='';break;case'COUB':$this->out.='';break;case'DAILYMOTION':$this->out.='';break;case'DEMOCRACYNOW':$this->out.='';break;case'DUMPERT':$this->out.='';break;case'EIGHTTRACKS':$this->out.='';break;case'ESPN':$this->out.='';break;case'FACEBOOK':$this->out.='';break;case'FLICKR':$this->out.='';break;case'FORATV':$this->out.='';break;case'FOXNEWS':$this->out.='';break;case'FOXSPORTS':$this->out.='';break;case'FUNNYORDIE':$this->out.='';break;case'GAMESPOT':$this->out.='';break;case'GAMETRAILERS':$this->out.='';break;case'GETTY':$this->out.='';break;case'GFYCAT':$this->out.='';break;case'GIFS':$this->out.='';break;case'GIST':$this->out.='';break;case'GLOBALNEWS':$this->out.='';break;case'GOFUNDME':$this->out.='';break;case'GOOGLEDRIVE':$this->out.='';break;case'GOOGLEPLUS':$this->out.='';break;case'GOOGLESHEETS':$this->out.='';break;case'HEALTHGURU':$this->out.='';break;case'HUDL':$this->out.='';break;case'HULU':$this->out.='';break;case'HUMORTVNL':$this->out.='';break;case'IGN':$this->out.='';break;case'IMDB':$this->out.='';break;case'IMGUR':$this->out.='';break;case'INDIEGOGO':$this->out.='';break;case'INSTAGRAM':$this->out.='';break;case'INTERNETARCHIVE':$this->out.='';break;case'IZLESENE':$this->out.='';break;case'JWPLATFORM':$this->out.='';break;case'KHL':$this->out.='';break;case'KICKSTARTER':$this->out.='hasAttribute('video'))$this->out.=' style="display:inline-block;width:100%;max-width:480px">';else$this->out.=' style="display:inline-block;width:100%;max-width:220px">';$this->out.='';break;case'KISSVIDEO':$this->out.='';break;case'LIBSYN':$this->out.='';break;case'LIVECAP':$this->out.='';break;case'LIVELEAK':$this->out.='';break;case'LIVESTREAM':$this->out.='';break;case'MAILRU':$this->out.='';break;case'MEDIUM':$this->out.='';break;case'METACAFE':$this->out.='';break;case'MIXCLOUD':$this->out.='';break;case'MLB':$this->out.='';break;case'MRCTV':$this->out.='';break;case'MSNBC':$this->out.='';break;case'NATGEOCHANNEL':$this->out.='';break;case'NATGEOVIDEO':$this->out.='';break;case'NBCNEWS':$this->out.='';break;case'NBCSPORTS':$this->out.='';break;case'NHL':$this->out.='';break;case'NPR':$this->out.='';break;case'NYTIMES':$this->out.='';break;case'ODDSHOT':$this->out.='';break;case'ORFIUM':$this->out.='';break;case'PASTEBIN':$this->out.='';break;case'PINTEREST':$this->out.='';break;case'PLAYSTV':$this->out.='';break;case'PODBEAN':$this->out.='';break;case'PREZI':$this->out.='';break;case'REDDIT':$this->out.='';break;case'RUTUBE':$this->out.='';break;case'SCRIBD':$this->out.='';break;case'SLIDESHARE':$this->out.='';break;case'SOUNDCLOUD':$this->out.='';break;case'SPORTSNET':$this->out.='';break;case'SPOTIFY':$this->out.='';break;case'STEAMSTORE':$this->out.='';break;case'STITCHER':$this->out.='';break;case'STRAWPOLL':$this->out.='';break;case'STREAMABLE':$this->out.='';break;case'TEAMCOCO':$this->out.='';break;case'TED':$this->out.='';break;case'TELEGRAM':$this->out.='';break;case'THEATLANTIC':$this->out.='';break;case'THEGUARDIAN':$this->out.='';break;case'THEONION':$this->out.='';break;case'TINYPIC':$this->out.='';break;case'TMZ':$this->out.='';break;case'TRAILERADDICT':$this->out.='';break;case'TUMBLR':$this->out.='';break;case'TWITCH':$this->out.='';break;case'TWITTER':$this->out.='';break;case'USTREAM':$this->out.='';break;case'VBOX7':$this->out.='';break;case'VEOH':$this->out.='';break;case'VEVO':$this->out.='';break;case'VIAGAME':$this->out.='';break;case'VIDEODETECTIVE':$this->out.='';break;case'VIDEOMEGA':$this->out.='';break;case'VIMEO':$this->out.='';break;case'VINE':$this->out.='';break;case'VK':$this->out.='';break;case'VOCAROO':$this->out.='';break;case'VOX':$this->out.='';break;case'WASHINGTONPOST':$this->out.='';break;case'WSHH':$this->out.='';break;case'WSJ':$this->out.='';break;case'XBOXCLIPS':$this->out.='';break;case'XBOXDVR':$this->out.='';break;case'YAHOOSCREEN':$this->out.='';break;case'YOUKU':$this->out.='';break;case'YOUTUBE':$this->out.='';break;case'br':$this->out.=' ';break;case'e':case'i':case's':break;case'p':$this->out.='';$this->at($node);$this->out.=' ';break;default:$this->at($node);}
}
public $enableQuickRenderer=\true;
protected $static=[];
- protected $dynamic=['ABCNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'AUDIOBOOM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BLAB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BLEACHERREPORT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BREAK'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BRIGHTCOVE'=>['(^[^ ]+(?> (?!bc(?>key|pid|tid)=)[^=]+="[^"]*")*(?> bckey="([^"]*)")?(?> (?!bc[pt]id=)[^=]+="[^"]*")*(?> bcpid="([^"]*)")?(?> (?!bctid=)[^=]+="[^"]*")*(?> bctid="([^"]*)")?.*)s',''],'CNBC'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'CNN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'CNNMONEY'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'COLLEGEHUMOR'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'COMEDYCENTRAL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'COUB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'EIGHTTRACKS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'ESPN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FLICKR'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FORATV'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FOXNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FOXSPORTS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FUNNYORDIE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GAMESPOT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GIST'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GLOBALNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GOFUNDME'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GOOGLEDRIVE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GOOGLESHEETS'=>['(^[^ ]+(?> (?!g?id=)[^=]+="[^"]*")*(?> gid="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'HEALTHGURU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'HUDL'=>['(^[^ ]+(?> (?!(?>athlete|highlight)=)[^=]+="[^"]*")*(?> athlete="([^"]*)")?(?> (?!highlight=)[^=]+="[^"]*")*(?> highlight="([^"]*)")?.*)s',''],'HULU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'HUMORTVNL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IGN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IMDB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IMGUR'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'INDIEGOGO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'INSTAGRAM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IZLESENE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'JWPLATFORM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'KHL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'KISSVIDEO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'LIBSYN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'LIVECAP'=>['(^[^ ]+(?> (?!(?>channel|id)=)[^=]+="[^"]*")*(?> channel="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'LIVELEAK'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MAILRU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'METACAFE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MIXCLOUD'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MLB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MRCTV'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MSNBC'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NATGEOCHANNEL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NATGEOVIDEO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NBCNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NBCSPORTS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NPR'=>['(^[^ ]+(?> (?![im]=)[^=]+="[^"]*")*(?> i="([^"]*)")?(?> (?!m=)[^=]+="[^"]*")*(?> m="([^"]*)")?.*)s',''],'NYTIMES'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'ODDSHOT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PASTEBIN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PLAYSTV'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PODBEAN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PREZI'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'RUTUBE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'SCRIBD'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'SLIDESHARE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'SPORTSNET'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'STEAMSTORE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'STITCHER'=>['(^[^ ]+(?> (?![ef]id=)[^=]+="[^"]*")*(?> eid="([^"]*)")?(?> (?!fid=)[^=]+="[^"]*")*(?> fid="([^"]*)")?.*)s',''],'STRAWPOLL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'STREAMABLE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TEAMCOCO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'THEATLANTIC'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'THEGUARDIAN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'THEONION'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TINYPIC'=>['(^[^ ]+(?> (?!(?>s|id)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!s=)[^=]+="[^"]*")*(?> s="([^"]*)")?.*)s',''],'TMZ'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TRAILERADDICT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TUMBLR'=>['(^[^ ]+(?> (?!(?>id|key)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!key=)[^=]+="[^"]*")*(?> key="([^"]*)")?.*)s',''],'TWITTER'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VBOX7'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VEOH'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VEVO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VIAGAME'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VIDEODETECTIVE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VIDEOMEGA'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VINE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VK'=>['(^[^ ]+(?> (?!(?>hash|oid|vid)=)[^=]+="[^"]*")*(?> hash="([^"]*)")?(?> (?![ov]id=)[^=]+="[^"]*")*(?> oid="([^"]*)")?(?> (?!vid=)[^=]+="[^"]*")*(?> vid="([^"]*)")?.*)s',''],'VOCAROO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VOX'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'WASHINGTONPOST'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'WSHH'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'WSJ'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'XBOXCLIPS'=>['(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s',''],'XBOXDVR'=>['(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s',''],'YAHOOSCREEN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'YOUKU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','']];
- protected $quickRegexp='(<(?:(?!/)((?:A(?>BCNEWS|MAZON|UDIO(?>BOOM|MACK))|B(?>ANDCAMP|BCNEWS|L(?>AB|EACHERREPORT)|R(?>EAK|IGHTCOVE))|C(?:BSNEWS|N(?:BC|N(?>MONEY)?)|O(?>LLEGEHUMOR|MEDYCENTRAL|UB))|D(?>AILYMOTION|EMOCRACYNOW|UMPERT)|E(?>IGHTTRACKS|SPN)|F(?>ACEBOOK|LICKR|O(?>RATV|X(?>NEW|SPORT)S)|UNNYORDIE)|G(?>AME(?>SPOT|TRAILERS)|ETTY|FYCAT|I(?>FS|ST)|LOBALNEWS|O(?>FUNDME|OGLE(?>DRIVE|PLUS|SHEETS)))|H(?>EALTHGURU|U(?>DL|LU|MORTVNL))|I(?>GN|M(?>DB|GUR)|N(?>DIEGOGO|STAGRAM|TERNETARCHIVE)|ZLESENE)|JWPLATFORM|K(?>HL|I(?>CKSTARTER|SSVIDEO))|LI(?>BSYN|VE(?>CAP|LEAK|STREAM))|M(?>AILRU|E(?>DIUM|TACAFE)|IXCLOUD|LB|RCTV|SNBC)|N(?>ATGEO(?>CHANNEL|VIDEO)|BC(?>NEW|SPORT)S|HL|PR|YTIMES)|O(?>DDSHOT|RFIUM)|P(?>ASTEBIN|INTEREST|LAYSTV|ODBEAN|REZI)|R(?>EDDIT|UTUBE)|S(?>CRIBD|LIDESHARE|OUNDCLOUD|PO(?>RTSNET|TIFY)|T(?>EAMSTORE|ITCHER|R(?>AWPOLL|EAMABLE)))|T(?>E(?>D|AMCOCO)|HE(?>ATLANTIC|GUARDIAN|ONION)|INYPIC|MZ|RAILERADDICT|UMBLR|WIT(?>CH|TER))|USTREAM|V(?>K|BOX7|E(?>OH|VO)|I(?>AGAME|DEO(?>DETECTIVE|MEGA)|MEO|NE)|O(?>X|CAROO))|W(?>ASHINGTONPOST|S(?>J|HH))|XBOX(?>CLIPS|DVR)|Y(?>AHOOSCREEN|OU(?>KU|TUBE))))(?: [^>]*)?>.*?\\1|(/?(?!br/|p>)[^ />]+)[^>]*?(/)?)>)s';
+ protected $dynamic=['ABCNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'AUDIOBOOM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BLAB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BLEACHERREPORT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BREAK'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'BRIGHTCOVE'=>['(^[^ ]+(?> (?!bc(?>key|pid|tid)=)[^=]+="[^"]*")*(?> bckey="([^"]*)")?(?> (?!bc[pt]id=)[^=]+="[^"]*")*(?> bcpid="([^"]*)")?(?> (?!bctid=)[^=]+="[^"]*")*(?> bctid="([^"]*)")?.*)s',''],'CNBC'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'CNN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'CNNMONEY'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'COLLEGEHUMOR'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'COMEDYCENTRAL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'COUB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'EIGHTTRACKS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'ESPN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FLICKR'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FORATV'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FOXNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FOXSPORTS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'FUNNYORDIE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GAMESPOT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GIST'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GLOBALNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GOFUNDME'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GOOGLEDRIVE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'GOOGLESHEETS'=>['(^[^ ]+(?> (?!g?id=)[^=]+="[^"]*")*(?> gid="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'HEALTHGURU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'HUDL'=>['(^[^ ]+(?> (?!(?>athlete|highlight)=)[^=]+="[^"]*")*(?> athlete="([^"]*)")?(?> (?!highlight=)[^=]+="[^"]*")*(?> highlight="([^"]*)")?.*)s',''],'HULU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'HUMORTVNL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IGN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IMDB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IMGUR'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'INDIEGOGO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'INSTAGRAM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'IZLESENE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'JWPLATFORM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'KHL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'KISSVIDEO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'LIBSYN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'LIVECAP'=>['(^[^ ]+(?> (?!(?>channel|id)=)[^=]+="[^"]*")*(?> channel="([^"]*)")?(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'LIVELEAK'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MAILRU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'METACAFE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MIXCLOUD'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MLB'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MRCTV'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'MSNBC'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NATGEOCHANNEL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NATGEOVIDEO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NBCNEWS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NBCSPORTS'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'NPR'=>['(^[^ ]+(?> (?![im]=)[^=]+="[^"]*")*(?> i="([^"]*)")?(?> (?!m=)[^=]+="[^"]*")*(?> m="([^"]*)")?.*)s',''],'NYTIMES'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'ODDSHOT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PASTEBIN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PLAYSTV'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PODBEAN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'PREZI'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'RUTUBE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'SCRIBD'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'SLIDESHARE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'SPORTSNET'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'STEAMSTORE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'STITCHER'=>['(^[^ ]+(?> (?![ef]id=)[^=]+="[^"]*")*(?> eid="([^"]*)")?(?> (?!fid=)[^=]+="[^"]*")*(?> fid="([^"]*)")?.*)s',''],'STRAWPOLL'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'STREAMABLE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TEAMCOCO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TELEGRAM'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'THEATLANTIC'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'THEGUARDIAN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'THEONION'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TINYPIC'=>['(^[^ ]+(?> (?!(?>s|id)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!s=)[^=]+="[^"]*")*(?> s="([^"]*)")?.*)s',''],'TMZ'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TRAILERADDICT'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'TUMBLR'=>['(^[^ ]+(?> (?!(?>id|key)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!key=)[^=]+="[^"]*")*(?> key="([^"]*)")?.*)s',''],'TWITTER'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VBOX7'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VEOH'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VEVO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VIAGAME'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VIDEODETECTIVE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VIDEOMEGA'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VINE'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VK'=>['(^[^ ]+(?> (?!(?>hash|oid|vid)=)[^=]+="[^"]*")*(?> hash="([^"]*)")?(?> (?![ov]id=)[^=]+="[^"]*")*(?> oid="([^"]*)")?(?> (?!vid=)[^=]+="[^"]*")*(?> vid="([^"]*)")?.*)s',''],'VOCAROO'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'VOX'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'WASHINGTONPOST'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'WSHH'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'WSJ'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'XBOXCLIPS'=>['(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s',''],'XBOXDVR'=>['(^[^ ]+(?> (?!(?>id|user)=)[^=]+="[^"]*")*(?> id="([^"]*)")?(?> (?!user=)[^=]+="[^"]*")*(?> user="([^"]*)")?.*)s',''],'YAHOOSCREEN'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s',''],'YOUKU'=>['(^[^ ]+(?> (?!id=)[^=]+="[^"]*")*(?> id="([^"]*)")?.*)s','']];
+ protected $quickRegexp='(<(?:(?!/)((?:A(?>BCNEWS|MAZON|UDIO(?>BOOM|MACK))|B(?>ANDCAMP|BCNEWS|L(?>AB|EACHERREPORT)|R(?>EAK|IGHTCOVE))|C(?:BSNEWS|N(?:BC|N(?>MONEY)?)|O(?>LLEGEHUMOR|MEDYCENTRAL|UB))|D(?>AILYMOTION|EMOCRACYNOW|UMPERT)|E(?>IGHTTRACKS|SPN)|F(?>ACEBOOK|LICKR|O(?>RATV|X(?>NEW|SPORT)S)|UNNYORDIE)|G(?>AME(?>SPOT|TRAILERS)|ETTY|FYCAT|I(?>FS|ST)|LOBALNEWS|O(?>FUNDME|OGLE(?>DRIVE|PLUS|SHEETS)))|H(?>EALTHGURU|U(?>DL|LU|MORTVNL))|I(?>GN|M(?>DB|GUR)|N(?>DIEGOGO|STAGRAM|TERNETARCHIVE)|ZLESENE)|JWPLATFORM|K(?>HL|I(?>CKSTARTER|SSVIDEO))|LI(?>BSYN|VE(?>CAP|LEAK|STREAM))|M(?>AILRU|E(?>DIUM|TACAFE)|IXCLOUD|LB|RCTV|SNBC)|N(?>ATGEO(?>CHANNEL|VIDEO)|BC(?>NEW|SPORT)S|HL|PR|YTIMES)|O(?>DDSHOT|RFIUM)|P(?>ASTEBIN|INTEREST|LAYSTV|ODBEAN|REZI)|R(?>EDDIT|UTUBE)|S(?>CRIBD|LIDESHARE|OUNDCLOUD|PO(?>RTSNET|TIFY)|T(?>EAMSTORE|ITCHER|R(?>AWPOLL|EAMABLE)))|T(?>E(?>D|AMCOCO|LEGRAM)|HE(?>ATLANTIC|GUARDIAN|ONION)|INYPIC|MZ|RAILERADDICT|UMBLR|WIT(?>CH|TER))|USTREAM|V(?>K|BOX7|E(?>OH|VO)|I(?>AGAME|DEO(?>DETECTIVE|MEGA)|MEO|NE)|O(?>X|CAROO))|W(?>ASHINGTONPOST|S(?>J|HH))|XBOX(?>CLIPS|DVR)|Y(?>AHOOSCREEN|OU(?>KU|TUBE))))(?: [^>]*)?>.*?\\1|(/?(?!br/|p>)[^ />]+)[^>]*?(/)?)>)s';
protected function renderQuickTemplate($id, $xml)
{
$attributes=$this->matchAttributes($xml);
- $html='';switch($id){case'AMAZON':$attributes+=['tld'=>\null,'id'=>\null];$html.='';break;case'AUDIOMACK':$attributes+=['mode'=>\null,'id'=>\null];$html.='';break;case'BANDCAMP':$attributes+=['track_num'=>\null,'track_id'=>\null];$html.='';break;case'BBCNEWS':$attributes+=['playlist'=>\null,'id'=>\null];$html.='';break;case'CBSNEWS':$attributes+=['id'=>\null];$html.='';elseif(isset($attributes['pid']))$html.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)">';else$html.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)">';$html.='';break;case'DAILYMOTION':$attributes+=['id'=>\null];$html.='';break;case'DEMOCRACYNOW':$attributes+=['id'=>\null];$html.='';break;case'DUMPERT':$attributes+=['id'=>\null];$html.='';break;case'FACEBOOK':$attributes+=['type'=>\null,'id'=>\null];$html.='';break;case'GAMETRAILERS':$attributes+=['id'=>\null];$html.='';break;case'GETTY':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null,'et'=>\null,'sig'=>\null];$html.='';break;case'GFYCAT':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null];$html.='';break;case'GIFS':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null];$html.='';break;case'GOOGLEPLUS':$attributes+=['name'=>\null,'pid'=>\null];$html.='';break;case'INTERNETARCHIVE':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null];$html.='';break;case'KICKSTARTER':$attributes+=['id'=>\null];$html.='';else$html.=' style="display:inline-block;width:100%;max-width:220px">';$html.='';break;case'LIVESTREAM':$attributes+=['channel'=>\null,'account_id'=>\null,'event_id'=>\null];$html.='';break;case'MEDIUM':$attributes+=['id'=>\null];$html.='';break;case'NHL':$html.='';break;case'ORFIUM':$attributes+=['track_id'=>\null];$html.='';break;case'PINTEREST':$attributes+=['id'=>\null];$html.='';break;case'REDDIT':$attributes+=['id'=>\null,'path'=>\null];$html.='';break;case'SOUNDCLOUD':$attributes+=['secret_token'=>\null,'id'=>\null];$html.='';break;case'SPOTIFY':$attributes+=['id'=>\null,'path'=>\null];$html.='';break;case'TED':$attributes+=['id'=>\null];$html.='';break;case'TWITCH':$attributes+=['channel'=>\null,'clip_id'=>\null];$html.='';break;case'USTREAM':$attributes+=['cid'=>\null];$html.='';break;case'VIMEO':$attributes+=['id'=>\null];$html.='';break;case'YOUTUBE':$attributes+=['id'=>\null,'t'=>\null];$html.='';}
+ $html='';switch($id){case'AMAZON':$attributes+=['tld'=>\null,'id'=>\null];$html.='';break;case'AUDIOMACK':$attributes+=['mode'=>\null,'id'=>\null];$html.='';break;case'BANDCAMP':$attributes+=['track_num'=>\null,'track_id'=>\null];$html.='';break;case'BBCNEWS':$attributes+=['id'=>\null,'playlist'=>\null];$html.='';break;case'CBSNEWS':$attributes+=['id'=>\null];$html.='';elseif(isset($attributes['pid']))$html.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.1875%;padding-bottom:calc(56.25% + 38px)">';else$html.=' style="display:block;overflow:hidden;position:relative;padding-bottom:62.5%;padding-bottom:calc(56.25% + 40px)">';$html.='';break;case'DAILYMOTION':$attributes+=['id'=>\null];$html.='';break;case'DEMOCRACYNOW':$attributes+=['id'=>\null];$html.='';break;case'DUMPERT':$attributes+=['id'=>\null];$html.='';break;case'FACEBOOK':$attributes+=['type'=>\null,'id'=>\null];$html.='';break;case'GAMETRAILERS':$attributes+=['id'=>\null];$html.='';break;case'GETTY':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null,'et'=>\null,'sig'=>\null];$html.='';break;case'GFYCAT':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null];$html.='';break;case'GIFS':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null];$html.='';break;case'GOOGLEPLUS':$attributes+=['name'=>\null,'pid'=>\null];$html.='';break;case'INTERNETARCHIVE':$attributes+=['width'=>\null,'height'=>\null,'id'=>\null];$html.='';break;case'KICKSTARTER':$attributes+=['id'=>\null];$html.='';else$html.=' style="display:inline-block;width:100%;max-width:220px">';$html.='';break;case'LIVESTREAM':$attributes+=['channel'=>\null,'account_id'=>\null,'event_id'=>\null];$html.='';break;case'MEDIUM':$attributes+=['id'=>\null];$html.='';break;case'NHL':$html.='';break;case'ORFIUM':$attributes+=['track_id'=>\null];$html.='';break;case'PINTEREST':$attributes+=['id'=>\null];$html.='';break;case'REDDIT':$attributes+=['id'=>\null,'path'=>\null];$html.='';break;case'SOUNDCLOUD':$attributes+=['secret_token'=>\null,'id'=>\null];$html.='';break;case'SPOTIFY':$attributes+=['id'=>\null,'path'=>\null];$html.='';break;case'TED':$attributes+=['id'=>\null];$html.='';break;case'TWITCH':$attributes+=['channel'=>\null,'clip_id'=>\null];$html.='';break;case'USTREAM':$attributes+=['cid'=>\null];$html.='';break;case'VIMEO':$attributes+=['id'=>\null];$html.='';break;case'YOUTUBE':$attributes+=['id'=>\null,'t'=>\null];$html.='';}
return $html;
}
}
\ No newline at end of file
diff --git a/src/Configurator.php b/src/Configurator.php
index 7bd64604ff..dbceda05a4 100644
--- a/src/Configurator.php
+++ b/src/Configurator.php
@@ -2120,469 +2120,53 @@ protected static function match($bitfield1, $bitfield2)
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
namespace s9e\TextFormatter\Configurator\Helpers;
-use DOMDocument;
-use DOMElement;
-use DOMNode;
-use DOMXPath;
-use RuntimeException;
+use s9e\TextFormatter\Configurator\Helpers\TemplateParser\Normalizer;
+use s9e\TextFormatter\Configurator\Helpers\TemplateParser\Optimizer;
+use s9e\TextFormatter\Configurator\Helpers\TemplateParser\Parser;
class TemplateParser
{
const XMLNS_XSL = 'http://www.w3.org/1999/XSL/Transform';
public static $voidRegexp = '/^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/Di';
public static function parse($template)
{
- $xsl = '' . $template . '';
- $dom = new DOMDocument;
- $dom->loadXML($xsl);
- $ir = new DOMDocument;
- $ir->loadXML('');
- self::parseChildren($ir->documentElement, $dom->documentElement);
- self::normalize($ir);
- return $ir;
+ $parser = new Parser(new Normalizer(new Optimizer));
+ return $parser->parse($template);
}
public static function parseEqualityExpr($expr)
{
- $eq = '(?(?@[-\\w]+|\\$\\w+|\\.)(?\\s*=\\s*)(?:(?(?"[^"]*"|\'[^\']*\')|0|[1-9][0-9]*)|(?concat\\(\\s*(?&string)\\s*(?:,\\s*(?&string)\\s*)+\\)))|(?:(?(?&literal))|(?(?&concat)))(?&operator)(?(?&key)))';
- $regexp = '(^(?J)\\s*' . $eq . '\\s*(?:or\\s*(?&equality)\\s*)*$)';
- if (!\preg_match($regexp, $expr))
- return \false;
- \preg_match_all("((?J)$eq)", $expr, $matches, \PREG_SET_ORDER);
- $map = [];
- foreach ($matches as $m)
- {
- $key = $m['key'];
- if (!empty($m['concat']))
- {
- \preg_match_all('(\'[^\']*\'|"[^"]*")', $m['concat'], $strings);
- $value = '';
- foreach ($strings[0] as $string)
- $value .= \substr($string, 1, -1);
- }
- else
- {
- $value = $m['literal'];
- if ($value[0] === "'" || $value[0] === '"')
- $value = \substr($value, 1, -1);
- }
- $map[$key][] = $value;
- }
- return $map;
- }
- protected static function parseChildren(DOMElement $ir, DOMElement $parent)
- {
- foreach ($parent->childNodes as $child)
- {
- switch ($child->nodeType)
- {
- case \XML_COMMENT_NODE:
- break;
- case \XML_TEXT_NODE:
- if (\trim($child->textContent) !== '')
- self::appendOutput($ir, 'literal', $child->textContent);
- break;
- case \XML_ELEMENT_NODE:
- self::parseNode($ir, $child);
- break;
- default:
- throw new RuntimeException("Cannot parse node '" . $child->nodeName . "''");
- }
- }
+ return XPathHelper::parseEqualityExpr($expr);
}
- protected static function parseNode(DOMElement $ir, DOMElement $node)
- {
- if ($node->namespaceURI === self::XMLNS_XSL)
- {
- $methodName = 'parseXsl' . \str_replace(' ', '', \ucwords(\str_replace('-', ' ', $node->localName)));
- if (!\method_exists(__CLASS__, $methodName))
- throw new RuntimeException("Element '" . $node->nodeName . "' is not supported");
- return self::$methodName($ir, $node);
- }
- $element = self::appendElement($ir, 'element');
- $element->setAttribute('name', $node->nodeName);
- $xpath = new DOMXPath($node->ownerDocument);
- foreach ($xpath->query('namespace::*', $node) as $ns)
- if ($node->hasAttribute($ns->nodeName))
- {
- $irAttribute = self::appendElement($element, 'attribute');
- $irAttribute->setAttribute('name', $ns->nodeName);
- self::appendOutput($irAttribute, 'literal', $ns->nodeValue);
- }
- foreach ($node->attributes as $attribute)
- {
- $irAttribute = self::appendElement($element, 'attribute');
- $irAttribute->setAttribute('name', $attribute->nodeName);
- self::appendOutput($irAttribute, 'avt', $attribute->value);
- }
- self::parseChildren($element, $node);
- }
- protected static function parseXslApplyTemplates(DOMElement $ir, DOMElement $node)
- {
- $applyTemplates = self::appendElement($ir, 'applyTemplates');
- if ($node->hasAttribute('select'))
- $applyTemplates->setAttribute(
- 'select',
- $node->getAttribute('select')
- );
- }
- protected static function parseXslAttribute(DOMElement $ir, DOMElement $node)
- {
- $attrName = $node->getAttribute('name');
- if ($attrName !== '')
- {
- $attribute = self::appendElement($ir, 'attribute');
- $attribute->setAttribute('name', $attrName);
- self::parseChildren($attribute, $node);
- }
- }
- protected static function parseXslChoose(DOMElement $ir, DOMElement $node)
- {
- $switch = self::appendElement($ir, 'switch');
- foreach ($node->getElementsByTagNameNS(self::XMLNS_XSL, 'when') as $when)
- {
- if ($when->parentNode !== $node)
- continue;
- $case = self::appendElement($switch, 'case');
- $case->setAttribute('test', $when->getAttribute('test'));
- self::parseChildren($case, $when);
- }
- foreach ($node->getElementsByTagNameNS(self::XMLNS_XSL, 'otherwise') as $otherwise)
- {
- if ($otherwise->parentNode !== $node)
- continue;
- $case = self::appendElement($switch, 'case');
- self::parseChildren($case, $otherwise);
- break;
- }
- }
- protected static function parseXslComment(DOMElement $ir, DOMElement $node)
- {
- $comment = self::appendElement($ir, 'comment');
- self::parseChildren($comment, $node);
- }
- protected static function parseXslCopyOf(DOMElement $ir, DOMElement $node)
- {
- $expr = $node->getAttribute('select');
- if (\preg_match('#^@([-\\w]+)$#', $expr, $m))
- {
- $switch = self::appendElement($ir, 'switch');
- $case = self::appendElement($switch, 'case');
- $case->setAttribute('test', $expr);
- $attribute = self::appendElement($case, 'attribute');
- $attribute->setAttribute('name', $m[1]);
- self::appendOutput($attribute, 'xpath', $expr);
- return;
- }
- if ($expr === '@*')
- {
- self::appendElement($ir, 'copyOfAttributes');
- return;
- }
- throw new RuntimeException("Unsupported expression '" . $expr . "'");
- }
- protected static function parseXslElement(DOMElement $ir, DOMElement $node)
- {
- $elName = $node->getAttribute('name');
- if ($elName !== '')
- {
- $element = self::appendElement($ir, 'element');
- $element->setAttribute('name', $elName);
- self::parseChildren($element, $node);
- }
- }
- protected static function parseXslIf(DOMElement $ir, DOMElement $node)
- {
- $switch = self::appendElement($ir, 'switch');
- $case = self::appendElement($switch, 'case');
- $case->setAttribute('test', $node->getAttribute('test'));
- self::parseChildren($case, $node);
- }
- protected static function parseXslText(DOMElement $ir, DOMElement $node)
- {
- self::appendOutput($ir, 'literal', $node->textContent);
- }
- protected static function parseXslValueOf(DOMElement $ir, DOMElement $node)
- {
- self::appendOutput($ir, 'xpath', $node->getAttribute('select'));
- }
- protected static function normalize(DOMDocument $ir)
- {
- self::addDefaultCase($ir);
- self::addElementIds($ir);
- self::addCloseTagElements($ir);
- self::markEmptyElements($ir);
- self::optimize($ir);
- self::markConditionalCloseTagElements($ir);
- self::setOutputContext($ir);
- self::markBranchTables($ir);
- }
- protected static function addDefaultCase(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- foreach ($xpath->query('//switch[not(case[not(@test)])]') as $switch)
- self::appendElement($switch, 'case');
- }
- protected static function addElementIds(DOMDocument $ir)
- {
- $id = 0;
- foreach ($ir->getElementsByTagName('element') as $element)
- $element->setAttribute('id', ++$id);
- }
- protected static function addCloseTagElements(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- $exprs = [
- '//applyTemplates[not(ancestor::attribute)]',
- '//comment',
- '//element',
- '//output[not(ancestor::attribute)]'
- ];
- foreach ($xpath->query(\implode('|', $exprs)) as $node)
- {
- $parentElementId = self::getParentElementId($node);
- if (isset($parentElementId))
- $node->parentNode
- ->insertBefore($ir->createElement('closeTag'), $node)
- ->setAttribute('id', $parentElementId);
- if ($node->nodeName === 'element')
- {
- $id = $node->getAttribute('id');
- self::appendElement($node, 'closeTag')->setAttribute('id', $id);
- }
- }
- }
- protected static function markConditionalCloseTagElements(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- foreach ($ir->getElementsByTagName('closeTag') as $closeTag)
- {
- $id = $closeTag->getAttribute('id');
- $query = 'ancestor::switch/following-sibling::*/descendant-or-self::closeTag[@id = "' . $id . '"]';
- foreach ($xpath->query($query, $closeTag) as $following)
- {
- $following->setAttribute('check', '');
- $closeTag->setAttribute('set', '');
- }
- }
- }
- protected static function markEmptyElements(DOMDocument $ir)
- {
- foreach ($ir->getElementsByTagName('element') as $element)
- {
- $elName = $element->getAttribute('name');
- if (\strpos($elName, '{') !== \false)
- $element->setAttribute('void', 'maybe');
- elseif (\preg_match(self::$voidRegexp, $elName))
- $element->setAttribute('void', 'yes');
- $isEmpty = self::isEmpty($element);
- if ($isEmpty === 'yes' || $isEmpty === 'maybe')
- $element->setAttribute('empty', $isEmpty);
- }
- }
- protected static function getOutputContext(DOMNode $output)
- {
- $xpath = new DOMXPath($output->ownerDocument);
- if ($xpath->evaluate('boolean(ancestor::attribute)', $output))
- return 'attribute';
- if ($xpath->evaluate('boolean(ancestor::element[@name="script"])', $output))
- return 'raw';
- return 'text';
- }
- protected static function getParentElementId(DOMNode $node)
- {
- $parentNode = $node->parentNode;
- while (isset($parentNode))
- {
- if ($parentNode->nodeName === 'element')
- return $parentNode->getAttribute('id');
- $parentNode = $parentNode->parentNode;
- }
- }
- protected static function setOutputContext(DOMDocument $ir)
- {
- foreach ($ir->getElementsByTagName('output') as $output)
- $output->setAttribute('escape', self::getOutputContext($output));
- }
- protected static function optimize(DOMDocument $ir)
- {
- $xml = $ir->saveXML();
- $remainingLoops = 10;
- do
- {
- $old = $xml;
- self::optimizeCloseTagElements($ir);
- $xml = $ir->saveXML();
- }
- while (--$remainingLoops > 0 && $xml !== $old);
- self::removeCloseTagSiblings($ir);
- self::removeContentFromVoidElements($ir);
- self::mergeConsecutiveLiteralOutputElements($ir);
- self::removeEmptyDefaultCases($ir);
- }
- protected static function removeCloseTagSiblings(DOMDocument $ir)
- {
- $query = '//switch[not(case[not(closeTag)])]/following-sibling::closeTag';
- self::removeNodes($ir, $query);
- }
- protected static function removeEmptyDefaultCases(DOMDocument $ir)
- {
- $query = '//case[not(@test | node())]';
- self::removeNodes($ir, $query);
- }
- protected static function mergeConsecutiveLiteralOutputElements(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- foreach ($xpath->query('//output[@type="literal"]') as $output)
- while ($output->nextSibling
- && $output->nextSibling->nodeName === 'output'
- && $output->nextSibling->getAttribute('type') === 'literal')
- {
- $output->nodeValue
- = \htmlspecialchars($output->nodeValue . $output->nextSibling->nodeValue);
- $output->parentNode->removeChild($output->nextSibling);
- }
- }
- protected static function optimizeCloseTagElements(DOMDocument $ir)
- {
- self::cloneCloseTagElementsIntoSwitch($ir);
- self::cloneCloseTagElementsOutOfSwitch($ir);
- self::removeRedundantCloseTagElementsInSwitch($ir);
- self::removeRedundantCloseTagElements($ir);
- }
- protected static function cloneCloseTagElementsIntoSwitch(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- $query = '//switch[name(following-sibling::*) = "closeTag"]';
- foreach ($xpath->query($query) as $switch)
- {
- $closeTag = $switch->nextSibling;
- foreach ($switch->childNodes as $case)
- if (!$case->lastChild || $case->lastChild->nodeName !== 'closeTag')
- $case->appendChild($closeTag->cloneNode());
- }
- }
- protected static function cloneCloseTagElementsOutOfSwitch(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- $query = '//switch[not(preceding-sibling::closeTag)]';
- foreach ($xpath->query($query) as $switch)
- {
- foreach ($switch->childNodes as $case)
- if (!$case->firstChild || $case->firstChild->nodeName !== 'closeTag')
- continue 2;
- $switch->parentNode->insertBefore($switch->lastChild->firstChild->cloneNode(), $switch);
- }
- }
- protected static function removeNodes(DOMDocument $ir, $query, DOMNode $contextNode = \null)
- {
- $xpath = new DOMXPath($ir);
- foreach ($xpath->query($query, $contextNode) as $node)
- if ($node->parentNode instanceof DOMElement)
- $node->parentNode->removeChild($node);
- }
- protected static function removeRedundantCloseTagElementsInSwitch(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- $query = '//switch[name(following-sibling::*) = "closeTag"]';
- foreach ($xpath->query($query) as $switch)
- foreach ($switch->childNodes as $case)
- while ($case->lastChild && $case->lastChild->nodeName === 'closeTag')
- $case->removeChild($case->lastChild);
- }
- protected static function removeRedundantCloseTagElements(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- foreach ($xpath->query('//closeTag') as $closeTag)
- {
- $id = $closeTag->getAttribute('id');
- $query = 'following-sibling::*/descendant-or-self::closeTag[@id="' . $id . '"]';
- self::removeNodes($ir, $query, $closeTag);
- }
- }
- protected static function removeContentFromVoidElements(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- foreach ($xpath->query('//element[@void="yes"]') as $element)
- {
- $id = $element->getAttribute('id');
- $query = './/closeTag[@id="' . $id . '"]/following-sibling::*';
- self::removeNodes($ir, $query, $element);
- }
- }
- protected static function markBranchTables(DOMDocument $ir)
- {
- $xpath = new DOMXPath($ir);
- foreach ($xpath->query('//switch[case[2][@test]]') as $switch)
- {
- $key = \null;
- $branchValues = [];
- foreach ($switch->childNodes as $i => $case)
- {
- if (!$case->hasAttribute('test'))
- continue;
- $map = self::parseEqualityExpr($case->getAttribute('test'));
- if ($map === \false)
- continue 2;
- if (\count($map) !== 1)
- continue 2;
- if (isset($key) && $key !== \key($map))
- continue 2;
- $key = \key($map);
- $branchValues[$i] = \end($map);
- }
- $switch->setAttribute('branch-key', $key);
- foreach ($branchValues as $i => $values)
- {
- \sort($values);
- $switch->childNodes->item($i)->setAttribute('branch-values', \serialize($values));
- }
- }
+}
+
+/*
+* @package s9e\TextFormatter
+* @copyright Copyright (c) 2010-2018 The s9e Authors
+* @license http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Helpers\TemplateParser;
+use DOMDocument;
+use DOMElement;
+use DOMNode;
+use DOMXPath;
+abstract class IRProcessor
+{
+ const XMLNS_XSL = 'http://www.w3.org/1999/XSL/Transform';
+ protected $xpath;
+ protected function appendElement(DOMElement $parentNode, $name, $value = '')
+ {
+ return $parentNode->appendChild($parentNode->ownerDocument->createElement($name, $value));
}
- protected static function appendElement(DOMElement $parentNode, $name, $value = '')
+ protected function createXPath(DOMDocument $dom)
{
- if ($value === '')
- $element = $parentNode->ownerDocument->createElement($name);
- else
- $element = $parentNode->ownerDocument->createElement($name, $value);
- $parentNode->appendChild($element);
- return $element;
+ $this->xpath = new DOMXPath($dom);
}
- protected static function appendOutput(DOMElement $ir, $type, $content)
+ protected function evaluate($expr, DOMNode $node = \null)
{
- if ($type === 'avt')
- {
- foreach (AVTHelper::parse($content) as $token)
- {
- $type = ($token[0] === 'expression') ? 'xpath' : 'literal';
- self::appendOutput($ir, $type, $token[1]);
- }
- return;
- }
- if ($type === 'xpath')
- $content = \trim($content);
- if ($type === 'literal' && $content === '')
- return;
- self::appendElement($ir, 'output', \htmlspecialchars($content))
- ->setAttribute('type', $type);
+ return (isset($node)) ? $this->xpath->evaluate($expr, $node) : $this->xpath->evaluate($expr);
}
- protected static function isEmpty(DOMElement $ir)
+ protected function query($query, DOMNode $node = \null)
{
- $xpath = new DOMXPath($ir->ownerDocument);
- if ($xpath->evaluate('count(comment | element | output[@type="literal"])', $ir))
- return 'no';
- $cases = [];
- foreach ($xpath->query('switch/case', $ir) as $case)
- $cases[self::isEmpty($case)] = 1;
- if (isset($cases['maybe']))
- return 'maybe';
- if (isset($cases['no']))
- {
- if (!isset($cases['yes']))
- return 'no';
- return 'maybe';
- }
- if ($xpath->evaluate('count(applyTemplates | output[@type="xpath"])', $ir))
- return 'maybe';
- return 'yes';
+ return (isset($node)) ? $this->xpath->query($query, $node) : $this->xpath->query($query);
}
}
@@ -2638,6 +2222,34 @@ function ($m) use (&$strings)
$expr = \strtr($expr, $strings);
return $expr;
}
+ public static function parseEqualityExpr($expr)
+ {
+ $eq = '(?(?@[-\\w]+|\\$\\w+|\\.)(?\\s*=\\s*)(?:(?(?"[^"]*"|\'[^\']*\')|0|[1-9][0-9]*)|(?concat\\(\\s*(?&string)\\s*(?:,\\s*(?&string)\\s*)+\\)))|(?:(?(?&literal))|(?(?&concat)))(?&operator)(?(?&key)))';
+ $regexp = '(^(?J)\\s*' . $eq . '\\s*(?:or\\s*(?&equality)\\s*)*$)';
+ if (!\preg_match($regexp, $expr))
+ return \false;
+ \preg_match_all("((?J)$eq)", $expr, $matches, \PREG_SET_ORDER);
+ $map = [];
+ foreach ($matches as $m)
+ {
+ $key = $m['key'];
+ if (!empty($m['concat']))
+ {
+ \preg_match_all('(\'[^\']*\'|"[^"]*")', $m['concat'], $strings);
+ $value = '';
+ foreach ($strings[0] as $string)
+ $value .= \substr($string, 1, -1);
+ }
+ else
+ {
+ $value = $m['literal'];
+ if ($value[0] === "'" || $value[0] === '"')
+ $value = \substr($value, 1, -1);
+ }
+ $map[$key][] = $value;
+ }
+ return $map;
+ }
}
/*
@@ -4628,31 +4240,311 @@ public function __set($propName, $propValue)
\settype($propValue, $oldType);
}
}
- $this->$propName = $propValue;
+ $this->$propName = $propValue;
+ }
+ public function __isset($propName)
+ {
+ $methodName = 'isset' . \ucfirst($propName);
+ if (\method_exists($this, $methodName))
+ return $this->$methodName();
+ return isset($this->$propName);
+ }
+ public function __unset($propName)
+ {
+ $methodName = 'unset' . \ucfirst($propName);
+ if (\method_exists($this, $methodName))
+ {
+ $this->$methodName();
+ return;
+ }
+ if (!isset($this->$propName))
+ return;
+ if ($this->$propName instanceof Collection)
+ {
+ $this->$propName->clear();
+ return;
+ }
+ throw new RuntimeException("Property '" . $propName . "' cannot be unset");
+ }
+}
+
+/*
+* @package s9e\TextFormatter
+* @copyright Copyright (c) 2010-2018 The s9e Authors
+* @license http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Traits;
+trait TemplateSafeness
+{
+ protected $markedSafe = [];
+ protected function isSafe($context)
+ {
+ return !empty($this->markedSafe[$context]);
+ }
+ public function isSafeAsURL()
+ {
+ return $this->isSafe('AsURL');
+ }
+ public function isSafeInCSS()
+ {
+ return $this->isSafe('InCSS');
+ }
+ public function isSafeInJS()
+ {
+ return $this->isSafe('InJS');
+ }
+ public function markAsSafeAsURL()
+ {
+ $this->markedSafe['AsURL'] = \true;
+ return $this;
+ }
+ public function markAsSafeInCSS()
+ {
+ $this->markedSafe['InCSS'] = \true;
+ return $this;
+ }
+ public function markAsSafeInJS()
+ {
+ $this->markedSafe['InJS'] = \true;
+ return $this;
+ }
+ public function resetSafeness()
+ {
+ $this->markedSafe = [];
+ return $this;
+ }
+}
+
+/*
+* @package s9e\TextFormatter
+* @copyright Copyright (c) 2010-2018 The s9e Authors
+* @license http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Validators;
+use InvalidArgumentException;
+abstract class AttributeName
+{
+ public static function isValid($name)
+ {
+ return (bool) \preg_match('#^(?!xmlns$)[a-z_][-a-z_0-9]*$#Di', $name);
+ }
+ public static function normalize($name)
+ {
+ if (!static::isValid($name))
+ throw new InvalidArgumentException("Invalid attribute name '" . $name . "'");
+ return \strtolower($name);
+ }
+}
+
+/*
+* @package s9e\TextFormatter
+* @copyright Copyright (c) 2010-2018 The s9e Authors
+* @license http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Validators;
+use InvalidArgumentException;
+abstract class TagName
+{
+ public static function isValid($name)
+ {
+ return (bool) \preg_match('#^(?:(?!xmlns|xsl|s9e)[a-z_][a-z_0-9]*:)?[a-z_][-a-z_0-9]*$#Di', $name);
+ }
+ public static function normalize($name)
+ {
+ if (!static::isValid($name))
+ throw new InvalidArgumentException("Invalid tag name '" . $name . "'");
+ if (\strpos($name, ':') === \false)
+ $name = \strtoupper($name);
+ return $name;
+ }
+}
+
+/*
+* @package s9e\TextFormatter
+* @copyright Copyright (c) 2010-2018 The s9e Authors
+* @license http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Collections;
+use Countable;
+use Iterator;
+use s9e\TextFormatter\Configurator\ConfigProvider;
+use s9e\TextFormatter\Configurator\Helpers\ConfigHelper;
+class Collection implements ConfigProvider, Countable, Iterator
+{
+ protected $items = [];
+ public function clear()
+ {
+ $this->items = [];
+ }
+ public function asConfig()
+ {
+ return ConfigHelper::toArray($this->items, \true);
+ }
+ public function count()
+ {
+ return \count($this->items);
+ }
+ public function current()
+ {
+ return \current($this->items);
+ }
+ public function key()
+ {
+ return \key($this->items);
+ }
+ public function next()
+ {
+ return \next($this->items);
+ }
+ public function rewind()
+ {
+ \reset($this->items);
+ }
+ public function valid()
+ {
+ return (\key($this->items) !== \null);
+ }
+}
+
+/*
+* @package s9e\TextFormatter
+* @copyright Copyright (c) 2010-2018 The s9e Authors
+* @license http://www.opensource.org/licenses/mit-license.php The MIT License
+*/
+namespace s9e\TextFormatter\Configurator\Helpers\TemplateParser;
+use DOMDocument;
+use DOMElement;
+use DOMNode;
+use s9e\TextFormatter\Configurator\Helpers\XPathHelper;
+class Normalizer extends IRProcessor
+{
+ protected $optimizer;
+ public $voidRegexp = '/^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/Di';
+ public function __construct(Optimizer $optimizer)
+ {
+ $this->optimizer = $optimizer;
+ }
+ public function normalize(DOMDocument $ir)
+ {
+ $this->createXPath($ir);
+ $this->addDefaultCase($ir);
+ $this->addElementIds($ir);
+ $this->addCloseTagElements($ir);
+ $this->markVoidElements($ir);
+ $this->optimizer->optimize($ir);
+ $this->markConditionalCloseTagElements($ir);
+ $this->setOutputContext($ir);
+ $this->markBranchTables($ir);
+ }
+ protected function addCloseTagElements(DOMDocument $ir)
+ {
+ $exprs = [
+ '//applyTemplates[not(ancestor::attribute)]',
+ '//comment',
+ '//element',
+ '//output[not(ancestor::attribute)]'
+ ];
+ foreach ($this->query(\implode('|', $exprs)) as $node)
+ {
+ $parentElementId = $this->getParentElementId($node);
+ if (isset($parentElementId))
+ $node->parentNode
+ ->insertBefore($ir->createElement('closeTag'), $node)
+ ->setAttribute('id', $parentElementId);
+ if ($node->nodeName === 'element')
+ {
+ $id = $node->getAttribute('id');
+ $this->appendElement($node, 'closeTag')->setAttribute('id', $id);
+ }
+ }
+ }
+ protected function addDefaultCase(DOMDocument $ir)
+ {
+ foreach ($this->query('//switch[not(case[not(@test)])]') as $switch)
+ $this->appendElement($switch, 'case');
+ }
+ protected function addElementIds(DOMDocument $ir)
+ {
+ $id = 0;
+ foreach ($ir->getElementsByTagName('element') as $element)
+ $element->setAttribute('id', ++$id);
+ }
+ protected function getOutputContext(DOMNode $output)
+ {
+ $contexts = [
+ 'boolean(ancestor::attribute)' => 'attribute',
+ '@disable-output-escaping="yes"' => 'raw',
+ 'count(ancestor::element[@name="script"])' => 'raw'
+ ];
+ foreach ($contexts as $expr => $context)
+ if ($this->evaluate($expr, $output))
+ return $context;
+ return 'text';
+ }
+ protected function getParentElementId(DOMNode $node)
+ {
+ $parentNode = $node->parentNode;
+ while (isset($parentNode))
+ {
+ if ($parentNode->nodeName === 'element')
+ return $parentNode->getAttribute('id');
+ $parentNode = $parentNode->parentNode;
+ }
}
- public function __isset($propName)
+ protected function markBranchTables(DOMDocument $ir)
{
- $methodName = 'isset' . \ucfirst($propName);
- if (\method_exists($this, $methodName))
- return $this->$methodName();
- return isset($this->$propName);
+ foreach ($this->query('//switch[case[2][@test]]') as $switch)
+ $this->markSwitchTable($switch);
}
- public function __unset($propName)
+ protected function markSwitchTable(DOMElement $switch)
{
- $methodName = 'unset' . \ucfirst($propName);
- if (\method_exists($this, $methodName))
+ $branches = [];
+ $values = [];
+ foreach ($this->query('./case[@test]', $switch) as $i => $case)
{
- $this->$methodName();
- return;
+ $map = XPathHelper::parseEqualityExpr($case->getAttribute('test'));
+ if ($map === \false)
+ return;
+ $values += $map;
+ $branches[$i] = \end($map);
}
- if (!isset($this->$propName))
+ if (\count($values) !== 1)
return;
- if ($this->$propName instanceof Collection)
+ $switch->setAttribute('branch-key', \key($values));
+ foreach ($branches as $i => $values)
{
- $this->$propName->clear();
- return;
+ \sort($values);
+ $switch->childNodes->item($i)->setAttribute('branch-values', \serialize($values));
+ }
+ }
+ protected function markConditionalCloseTagElements(DOMDocument $ir)
+ {
+ foreach ($ir->getElementsByTagName('closeTag') as $closeTag)
+ {
+ $id = $closeTag->getAttribute('id');
+ $query = 'ancestor::switch/following-sibling::*/descendant-or-self::closeTag[@id = "' . $id . '"]';
+ foreach ($this->query($query, $closeTag) as $following)
+ {
+ $following->setAttribute('check', '');
+ $closeTag->setAttribute('set', '');
+ }
}
- throw new RuntimeException("Property '" . $propName . "' cannot be unset");
+ }
+ protected function markVoidElements(DOMDocument $ir)
+ {
+ foreach ($ir->getElementsByTagName('element') as $element)
+ {
+ $elName = $element->getAttribute('name');
+ if (\strpos($elName, '{') !== \false)
+ $element->setAttribute('void', 'maybe');
+ elseif (\preg_match($this->voidRegexp, $elName))
+ $element->setAttribute('void', 'yes');
+ }
+ }
+ protected function setOutputContext(DOMDocument $ir)
+ {
+ foreach ($ir->getElementsByTagName('output') as $output)
+ $output->setAttribute('escape', $this->getOutputContext($output));
}
}
@@ -4661,89 +4553,115 @@ public function __unset($propName)
* @copyright Copyright (c) 2010-2018 The s9e Authors
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
-namespace s9e\TextFormatter\Configurator\Traits;
-trait TemplateSafeness
+namespace s9e\TextFormatter\Configurator\Helpers\TemplateParser;
+use DOMDocument;
+use DOMElement;
+use DOMNode;
+class Optimizer extends IRProcessor
{
- protected $markedSafe = [];
- protected function isSafe($context)
+ public function optimize(DOMDocument $ir)
{
- return !empty($this->markedSafe[$context]);
+ $this->createXPath($ir);
+ $xml = $ir->saveXML();
+ $remainingLoops = 10;
+ do
+ {
+ $old = $xml;
+ $this->optimizeCloseTagElements($ir);
+ $xml = $ir->saveXML();
+ }
+ while (--$remainingLoops > 0 && $xml !== $old);
+ $this->removeCloseTagSiblings($ir);
+ $this->removeContentFromVoidElements($ir);
+ $this->mergeConsecutiveLiteralOutputElements($ir);
+ $this->removeEmptyDefaultCases($ir);
}
- public function isSafeAsURL()
+ protected function cloneCloseTagElementsIntoSwitch(DOMDocument $ir)
{
- return $this->isSafe('AsURL');
+ $query = '//switch[name(following-sibling::*) = "closeTag"]';
+ foreach ($this->query($query) as $switch)
+ {
+ $closeTag = $switch->nextSibling;
+ foreach ($switch->childNodes as $case)
+ if (!$case->lastChild || $case->lastChild->nodeName !== 'closeTag')
+ $case->appendChild($closeTag->cloneNode());
+ }
}
- public function isSafeInCSS()
+ protected function cloneCloseTagElementsOutOfSwitch(DOMDocument $ir)
{
- return $this->isSafe('InCSS');
+ $query = '//switch[not(preceding-sibling::closeTag)]';
+ foreach ($this->query($query) as $switch)
+ {
+ foreach ($switch->childNodes as $case)
+ if (!$case->firstChild || $case->firstChild->nodeName !== 'closeTag')
+ continue 2;
+ $switch->parentNode->insertBefore($switch->lastChild->firstChild->cloneNode(), $switch);
+ }
}
- public function isSafeInJS()
+ protected function mergeConsecutiveLiteralOutputElements(DOMDocument $ir)
{
- return $this->isSafe('InJS');
+ foreach ($this->query('//output[@type="literal"]') as $output)
+ {
+ $disableOutputEscaping = $output->getAttribute('disable-output-escaping');
+ while ($this->nextSiblingIsLiteralOutput($output, $disableOutputEscaping))
+ {
+ $output->nodeValue = \htmlspecialchars($output->nodeValue . $output->nextSibling->nodeValue);
+ $output->parentNode->removeChild($output->nextSibling);
+ }
+ }
}
- public function markAsSafeAsURL()
+ protected function nextSiblingIsLiteralOutput(DOMElement $node, $disableOutputEscaping)
{
- $this->markedSafe['AsURL'] = \true;
- return $this;
+ return isset($node->nextSibling) && $node->nextSibling->nodeName === 'output' && $node->nextSibling->getAttribute('type') === 'literal' && $node->nextSibling->getAttribute('disable-output-escaping') === $disableOutputEscaping;
}
- public function markAsSafeInCSS()
+ protected function optimizeCloseTagElements(DOMDocument $ir)
{
- $this->markedSafe['InCSS'] = \true;
- return $this;
+ $this->cloneCloseTagElementsIntoSwitch($ir);
+ $this->cloneCloseTagElementsOutOfSwitch($ir);
+ $this->removeRedundantCloseTagElementsInSwitch($ir);
+ $this->removeRedundantCloseTagElements($ir);
}
- public function markAsSafeInJS()
+ protected function removeCloseTagSiblings(DOMDocument $ir)
{
- $this->markedSafe['InJS'] = \true;
- return $this;
+ $query = '//switch[not(case[not(closeTag)])]/following-sibling::closeTag';
+ $this->removeNodes($ir, $query);
}
- public function resetSafeness()
+ protected function removeContentFromVoidElements(DOMDocument $ir)
{
- $this->markedSafe = [];
- return $this;
+ foreach ($this->query('//element[@void="yes"]') as $element)
+ {
+ $id = $element->getAttribute('id');
+ $query = './/closeTag[@id="' . $id . '"]/following-sibling::*';
+ $this->removeNodes($ir, $query, $element);
+ }
}
-}
-
-/*
-* @package s9e\TextFormatter
-* @copyright Copyright (c) 2010-2018 The s9e Authors
-* @license http://www.opensource.org/licenses/mit-license.php The MIT License
-*/
-namespace s9e\TextFormatter\Configurator\Validators;
-use InvalidArgumentException;
-abstract class AttributeName
-{
- public static function isValid($name)
+ protected function removeEmptyDefaultCases(DOMDocument $ir)
{
- return (bool) \preg_match('#^(?!xmlns$)[a-z_][-a-z_0-9]*$#Di', $name);
+ $query = '//case[not(@test | node())]';
+ $this->removeNodes($ir, $query);
}
- public static function normalize($name)
+ protected function removeNodes(DOMDocument $ir, $query, DOMNode $contextNode = \null)
{
- if (!static::isValid($name))
- throw new InvalidArgumentException("Invalid attribute name '" . $name . "'");
- return \strtolower($name);
+ foreach ($this->query($query, $contextNode) as $node)
+ if ($node->parentNode instanceof DOMElement)
+ $node->parentNode->removeChild($node);
}
-}
-
-/*
-* @package s9e\TextFormatter
-* @copyright Copyright (c) 2010-2018 The s9e Authors
-* @license http://www.opensource.org/licenses/mit-license.php The MIT License
-*/
-namespace s9e\TextFormatter\Configurator\Validators;
-use InvalidArgumentException;
-abstract class TagName
-{
- public static function isValid($name)
+ protected function removeRedundantCloseTagElements(DOMDocument $ir)
{
- return (bool) \preg_match('#^(?:(?!xmlns|xsl|s9e)[a-z_][a-z_0-9]*:)?[a-z_][-a-z_0-9]*$#Di', $name);
+ foreach ($this->query('//closeTag') as $closeTag)
+ {
+ $id = $closeTag->getAttribute('id');
+ $query = 'following-sibling::*/descendant-or-self::closeTag[@id="' . $id . '"]';
+ $this->removeNodes($ir, $query, $closeTag);
+ }
}
- public static function normalize($name)
+ protected function removeRedundantCloseTagElementsInSwitch(DOMDocument $ir)
{
- if (!static::isValid($name))
- throw new InvalidArgumentException("Invalid tag name '" . $name . "'");
- if (\strpos($name, ':') === \false)
- $name = \strtoupper($name);
- return $name;
+ $query = '//switch[name(following-sibling::*) = "closeTag"]';
+ foreach ($this->query($query) as $switch)
+ foreach ($switch->childNodes as $case)
+ while ($case->lastChild && $case->lastChild->nodeName === 'closeTag')
+ $case->removeChild($case->lastChild);
}
}
@@ -4752,45 +4670,174 @@ public static function normalize($name)
* @copyright Copyright (c) 2010-2018 The s9e Authors
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
-namespace s9e\TextFormatter\Configurator\Collections;
-use Countable;
-use Iterator;
-use s9e\TextFormatter\Configurator\ConfigProvider;
-use s9e\TextFormatter\Configurator\Helpers\ConfigHelper;
-class Collection implements ConfigProvider, Countable, Iterator
+namespace s9e\TextFormatter\Configurator\Helpers\TemplateParser;
+use DOMDocument;
+use DOMElement;
+use DOMXPath;
+use RuntimeException;
+use s9e\TextFormatter\Configurator\Helpers\AVTHelper;
+use s9e\TextFormatter\Configurator\Helpers\TemplateHelper;
+class Parser extends IRProcessor
{
- protected $items = [];
- public function clear()
+ protected $normalizer;
+ public function __construct(Normalizer $normalizer)
{
- $this->items = [];
+ $this->normalizer = $normalizer;
}
- public function asConfig()
+ public function parse($template)
{
- return ConfigHelper::toArray($this->items, \true);
+ $dom = TemplateHelper::loadTemplate($template);
+ $ir = new DOMDocument;
+ $ir->loadXML('');
+ $this->createXPath($dom);
+ $this->parseChildren($ir->documentElement, $dom->documentElement);
+ $this->normalizer->normalize($ir);
+ return $ir;
}
- public function count()
+ protected function appendAVT(DOMElement $parentNode, $avt)
{
- return \count($this->items);
+ foreach (AVTHelper::parse($avt) as $token)
+ if ($token[0] === 'expression')
+ $this->appendXPathOutput($parentNode, $token[1]);
+ else
+ $this->appendLiteralOutput($parentNode, $token[1]);
}
- public function current()
+ protected function appendLiteralOutput(DOMElement $parentNode, $content)
{
- return \current($this->items);
+ if ($content === '')
+ return;
+ $this->appendElement($parentNode, 'output', \htmlspecialchars($content))
+ ->setAttribute('type', 'literal');
}
- public function key()
+ protected function appendXPathOutput(DOMElement $parentNode, $expr)
{
- return \key($this->items);
+ $this->appendElement($parentNode, 'output', \htmlspecialchars(\trim($expr)))
+ ->setAttribute('type', 'xpath');
}
- public function next()
+ protected function parseChildren(DOMElement $ir, DOMElement $parent)
{
- return \next($this->items);
+ foreach ($parent->childNodes as $child)
+ {
+ switch ($child->nodeType)
+ {
+ case \XML_COMMENT_NODE:
+ break;
+ case \XML_TEXT_NODE:
+ if (\trim($child->textContent) !== '')
+ $this->appendLiteralOutput($ir, $child->textContent);
+ break;
+ case \XML_ELEMENT_NODE:
+ $this->parseNode($ir, $child);
+ break;
+ default:
+ throw new RuntimeException("Cannot parse node '" . $child->nodeName . "''");
+ }
+ }
}
- public function rewind()
+ protected function parseNode(DOMElement $ir, DOMElement $node)
{
- \reset($this->items);
+ if ($node->namespaceURI === self::XMLNS_XSL)
+ {
+ $methodName = 'parseXsl' . \str_replace(' ', '', \ucwords(\str_replace('-', ' ', $node->localName)));
+ if (!\method_exists($this, $methodName))
+ throw new RuntimeException("Element '" . $node->nodeName . "' is not supported");
+ return $this->$methodName($ir, $node);
+ }
+ $element = $this->appendElement($ir, 'element');
+ $element->setAttribute('name', $node->nodeName);
+ $xpath = new DOMXPath($node->ownerDocument);
+ foreach ($xpath->query('namespace::*', $node) as $ns)
+ if ($node->hasAttribute($ns->nodeName))
+ {
+ $irAttribute = $this->appendElement($element, 'attribute');
+ $irAttribute->setAttribute('name', $ns->nodeName);
+ $this->appendLiteralOutput($irAttribute, $ns->nodeValue);
+ }
+ foreach ($node->attributes as $attribute)
+ {
+ $irAttribute = $this->appendElement($element, 'attribute');
+ $irAttribute->setAttribute('name', $attribute->nodeName);
+ $this->appendAVT($irAttribute, $attribute->value);
+ }
+ $this->parseChildren($element, $node);
}
- public function valid()
+ protected function parseXslApplyTemplates(DOMElement $ir, DOMElement $node)
{
- return (\key($this->items) !== \null);
+ $applyTemplates = $this->appendElement($ir, 'applyTemplates');
+ if ($node->hasAttribute('select'))
+ $applyTemplates->setAttribute('select', $node->getAttribute('select'));
+ }
+ protected function parseXslAttribute(DOMElement $ir, DOMElement $node)
+ {
+ $attribute = $this->appendElement($ir, 'attribute');
+ $attribute->setAttribute('name', $node->getAttribute('name'));
+ $this->parseChildren($attribute, $node);
+ }
+ protected function parseXslChoose(DOMElement $ir, DOMElement $node)
+ {
+ $switch = $this->appendElement($ir, 'switch');
+ foreach ($this->query('./xsl:when', $node) as $when)
+ {
+ $case = $this->appendElement($switch, 'case');
+ $case->setAttribute('test', $when->getAttribute('test'));
+ $this->parseChildren($case, $when);
+ }
+ foreach ($this->query('./xsl:otherwise', $node) as $otherwise)
+ {
+ $case = $this->appendElement($switch, 'case');
+ $this->parseChildren($case, $otherwise);
+ break;
+ }
+ }
+ protected function parseXslComment(DOMElement $ir, DOMElement $node)
+ {
+ $comment = $this->appendElement($ir, 'comment');
+ $this->parseChildren($comment, $node);
+ }
+ protected function parseXslCopyOf(DOMElement $ir, DOMElement $node)
+ {
+ $expr = $node->getAttribute('select');
+ if (\preg_match('#^@([-\\w]+)$#', $expr, $m))
+ {
+ $switch = $this->appendElement($ir, 'switch');
+ $case = $this->appendElement($switch, 'case');
+ $case->setAttribute('test', $expr);
+ $attribute = $this->appendElement($case, 'attribute');
+ $attribute->setAttribute('name', $m[1]);
+ $this->appendXPathOutput($attribute, $expr);
+ return;
+ }
+ if ($expr === '@*')
+ {
+ $this->appendElement($ir, 'copyOfAttributes');
+ return;
+ }
+ throw new RuntimeException("Unsupported expression '" . $expr . "'");
+ }
+ protected function parseXslElement(DOMElement $ir, DOMElement $node)
+ {
+ $element = $this->appendElement($ir, 'element');
+ $element->setAttribute('name', $node->getAttribute('name'));
+ $this->parseChildren($element, $node);
+ }
+ protected function parseXslIf(DOMElement $ir, DOMElement $node)
+ {
+ $switch = $this->appendElement($ir, 'switch');
+ $case = $this->appendElement($switch, 'case');
+ $case->setAttribute('test', $node->getAttribute('test'));
+ $this->parseChildren($case, $node);
+ }
+ protected function parseXslText(DOMElement $ir, DOMElement $node)
+ {
+ $this->appendLiteralOutput($ir, $node->textContent);
+ if ($node->getAttribute('disable-output-escaping') === 'yes')
+ $ir->lastChild->setAttribute('disable-output-escaping', 'yes');
+ }
+ protected function parseXslValueOf(DOMElement $ir, DOMElement $node)
+ {
+ $this->appendXPathOutput($ir, $node->getAttribute('select'));
+ if ($node->getAttribute('disable-output-escaping') === 'yes')
+ $ir->lastChild->setAttribute('disable-output-escaping', 'yes');
}
}
@@ -6486,10 +6533,12 @@ protected function normalizeAttribute(DOMAttr $attribute)
{
$match = [
'(\\b(?:do|else|(?:if|while)\\s*\\(.*?\\))\\s*\\{(?![{@]))',
+ '(\\bfunction\\s*\\w*\\s*\\([^\\)]*\\)\\s*\\{(?!\\{))',
'((?getAttribute('test'));
+ $map = XPathHelper::parseEqualityExpr($element->getAttribute('test'));
if ($map === \false || \count($map) !== 1 || \count($map[\key($map)]) !== 1)
return;
$expr = \key($map);
@@ -6635,7 +6684,7 @@ protected function replaceValueOf(DOMElement $valueOf, $value)
use DOMElement;
class InlineTextElements extends AbstractNormalization
{
- protected $queries = ['//xsl:text'];
+ protected $queries = ['//xsl:text[not(@disable-output-escaping="yes")]'];
protected function isFollowedByText(DOMElement $element)
{
return ($element->nextSibling && $element->nextSibling->nodeType === \XML_TEXT_NODE);
diff --git a/src/Configurator/TemplateNormalizations/MergeIdenticalConditionalBranches.php b/src/Configurator/TemplateNormalizations/MergeIdenticalConditionalBranches.php
index a873019061..12b2a558f4 100644
--- a/src/Configurator/TemplateNormalizations/MergeIdenticalConditionalBranches.php
+++ b/src/Configurator/TemplateNormalizations/MergeIdenticalConditionalBranches.php
@@ -8,7 +8,7 @@
namespace s9e\TextFormatter\Configurator\TemplateNormalizations;
use DOMElement;
use DOMNode;
-use s9e\TextFormatter\Configurator\Helpers\TemplateParser;
+use s9e\TextFormatter\Configurator\Helpers\XPathHelper;
class MergeIdenticalConditionalBranches extends AbstractNormalization
{
protected $queries = ['//xsl:choose'];
@@ -19,7 +19,7 @@ protected function collectCompatibleBranches(DOMNode $node)
$values = [];
while ($node && $this->isXsl($node, 'when'))
{
- $branch = TemplateParser::parseEqualityExpr($node->getAttribute('test'));
+ $branch = XPathHelper::parseEqualityExpr($node->getAttribute('test'));
if ($branch === \false || \count($branch) !== 1)
break;
if (isset($key) && \key($branch) !== $key)
diff --git a/src/Plugins/BBCodes/Configurator/repository.xml b/src/Plugins/BBCodes/Configurator/repository.xml
index c78e0c8086..a4b220daa9 100644
--- a/src/Plugins/BBCodes/Configurator/repository.xml
+++ b/src/Plugins/BBCodes/Configurator/repository.xml
@@ -382,11 +382,14 @@
firstChildStyle.display = nextSiblingStyle.display;
nextSiblingStyle.display = lastChildStyle.display = (firstChildStyle.display) ? '' : 'none';
+
+ // Don't submit if inside a form
+ return false;
-->
{TEXT2}
diff --git a/src/Plugins/MediaEmbed/Configurator/Collections/CachedDefinitionCollection.php b/src/Plugins/MediaEmbed/Configurator/Collections/CachedDefinitionCollection.php
index 8b39e049c0..e0982c3f01 100644
--- a/src/Plugins/MediaEmbed/Configurator/Collections/CachedDefinitionCollection.php
+++ b/src/Plugins/MediaEmbed/Configurator/Collections/CachedDefinitionCollection.php
@@ -14,7 +14,7 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
'audioboom'=>['attributes'=>[],'example'=>['http://audioboo.fm/boos/2439994-deadline-day-update','http://audioboom.com/posts/2493448-robert-patrick'],'extract'=>['!audioboo(?:\\.f|m\\.co)m/(?:boo|post)s/(?\'id\'\\d+)!'],'homepage'=>'https://audioboom.com/','host'=>['audioboo.fm','audioboom.com'],'iframe'=>['height'=>150,'max-width'=>700,'src'=>'//audioboom.com/posts/{@id}/embed/v3','width'=>'100%'],'name'=>'audioBoom','scrape'=>[],'tags'=>['podcasts']],
'audiomack'=>['attributes'=>[],'choose'=>['otherwise'=>['iframe'=>['height'=>252,'max-width'=>900,'src'=>'https://www.audiomack.com/embed/song/{@id}','width'=>'100%']],'when'=>['iframe'=>['height'=>400,'max-width'=>900,'src'=>'https://www.audiomack.com/embed/album/{@id}','width'=>'100%'],'test'=>'@mode=\'album\'']],'example'=>['http://www.audiomack.com/song/your-music-fix/jammin-kungs-remix-1','http://www.audiomack.com/album/chance-the-rapper/acid-rap'],'extract'=>['!audiomack\\.com/(?\'mode\'album|song)/(?\'id\'[-\\w]+/[-\\w]+)!'],'homepage'=>'http://www.audiomack.com/','host'=>['audiomack.com'],'name'=>'Audiomack','scrape'=>[],'tags'=>['music']],
'bandcamp'=>['attributes'=>[],'example'=>['http://proleter.bandcamp.com/album/curses-from-past-times-ep','http://proleter.bandcamp.com/track/downtown-irony','http://therunons.bandcamp.com/track/still-feel'],'extract'=>[],'homepage'=>'http://bandcamp.com/','host'=>['bandcamp.com'],'iframe'=>['height'=>400,'src'=>'//bandcamp.com/EmbeddedPlayer/size=large/minimal=true/album=/t=track=','width'=>400],'name'=>'Bandcamp','scrape'=>[['extract'=>['!/album=(?\'album_id\'\\d+)!'],'match'=>['!bandcamp\\.com/album/.!']],['extract'=>['!"album_id":(?\'album_id\'\\d+)!','!"track_num":(?\'track_num\'\\d+)!','!/track=(?\'track_id\'\\d+)!'],'match'=>['!bandcamp\\.com/track/.!']]],'tags'=>['music']],
- 'bbcnews'=>['attributes'=>['id'=>['filterChain'=>['stripslashes']]],'example'=>'http://www.bbc.com/news/science-environment-37854744','extract'=>[],'homepage'=>'http://www.bbc.com/news/video_and_audio/','host'=>['bbc.com'],'iframe'=>['src'=>'//www.bbc.com/news//embed'],'name'=>'BBC News','scrape'=>[['extract'=>['!bbc\\.com\\\\/news\\\\/(?\'id\'[-\\\\\\w/]+)\\\\/embed!'],'match'=>['!bbc\\.com/news/\\w!']]],'tags'=>['news']],
+ 'bbcnews'=>['attributes'=>['id'=>['filterChain'=>['stripslashes']]],'example'=>'http://www.bbc.com/news/video_and_audio/must_see/42847060/calls-to-clean-off-banksy-mural-in-hull','extract'=>[],'homepage'=>'http://www.bbc.com/news/video_and_audio/','host'=>['bbc.com'],'iframe'=>['src'=>'//www.bbc.com/news//embed/embed/news/av/embed/'],'name'=>'BBC News','scrape'=>[['extract'=>['!bbc\\.com\\\\/news\\\\/av\\\\/embed\\\\/(?\'id\'[-\\\\\\w/]+)!'],'match'=>['!bbc\\.com/news/\\w!']]],'tags'=>['news']],
'blab'=>['attributes'=>[],'example'=>'https://blab.im/05b6ce88279f40798069bb6227a04fce','extract'=>['#blab\\.im/(?!about$|live$|replay$|scheduled$|search\\?)(?\'id\'[-\\w]+)#'],'homepage'=>'https://blab.im/','host'=>['blab.im'],'iframe'=>['height'=>400,'src'=>'https://blab.im/{@id}','width'=>400],'name'=>'Blab','scrape'=>[],'tags'=>['social']],
'bleacherreport'=>['attributes'=>[],'example'=>'http://bleacherreport.com/articles/2418813-steph-curry-salsas-after-teammate-leandro-barbosa-converts-difficult-layup','extract'=>[],'homepage'=>'http://bleacherreport.com/','host'=>['bleacherreport.com'],'iframe'=>['src'=>'//bleacherreport.com/video_embed?id={@id}'],'name'=>'Bleacher Report videos','scrape'=>[['extract'=>['!id="video-(?\'id\'[-\\w]+)!'],'match'=>['!/articles/.!']]],'tags'=>['sports']],
'break'=>['attributes'=>[],'example'=>'http://www.break.com/video/video-game-playing-frog-wants-more-2278131','extract'=>['!break\\.com/video/.*-(?\'id\'\\d+)$!'],'homepage'=>'http://www.break.com/','host'=>['break.com'],'iframe'=>['height'=>280,'src'=>'//break.com/embed/{@id}','width'=>464],'name'=>'Break','scrape'=>[],'tags'=>['entertainment']],
@@ -54,7 +54,7 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
'humortvnl'=>['attributes'=>[],'example'=>'http://humortv.vara.nl/pa.346135.denzel-washington-bij-graham-norton.html','extract'=>['!humortv\\.vara\\.nl/\\w+\\.(?\'id\'[-.\\w]+)\\.html!'],'homepage'=>'http://humortv.vara.nl/pg.2.pg-home.html','host'=>['humortv.vara.nl'],'iframe'=>['src'=>'//humortv.vara.nl/embed.{@id}.html'],'name'=>'HumorTV','scrape'=>[],'tags'=>['.nl','entertainment']],
'ign'=>['attributes'=>[],'example'=>'http://www.ign.com/videos/2013/07/12/pokemon-x-version-pokemon-y-version-battle-trailer','extract'=>['!(?\'id\'https?://.*?ign\\.com/videos/.+)!i'],'homepage'=>'http://www.ign.com/videos/','host'=>['ign.com'],'iframe'=>['height'=>263,'src'=>'//widgets.ign.com/video/embed/content.html?url={@id}','width'=>468],'name'=>'IGN','scrape'=>[],'tags'=>['gaming']],
'imdb'=>['attributes'=>[],'example'=>['http://www.imdb.com/video/imdb/vi2482677785/','http://www.imdb.com/title/tt2294629/videoplayer/vi2482677785'],'extract'=>['!imdb\\.com/[/\\w]+/vi(?\'id\'\\d+)!'],'homepage'=>'http://www.imdb.com/','host'=>['imdb.com'],'iframe'=>['src'=>'//www.imdb.com/video/imdb/vi{@id}/imdb/embed?autoplay=false&width=640'],'name'=>'IMDb','scrape'=>[],'tags'=>['movies']],
- 'imgur'=>['attributes'=>[],'example'=>['http://imgur.com/AsQ0K3P','http://imgur.com/a/9UGCL','http://imgur.com/gallery/9UGCL','http://i.imgur.com/u7Yo0Vy.gifv','http://i.imgur.com/UO1UrIx.mp4','https://imgur.com/t/current_events/0I30l'],'extract'=>['@imgur\\.com/(?!r/|user/)(?:t/[^/]+/)?(?\'id\'(?:a/|gallery/)?\\w+)(?!\\w|\\.(?:pn|jp)g)@'],'homepage'=>'http://imgur.com/','host'=>['imgur.com'],'iframe'=>['data-s9e-livepreview-ignore-attrs'=>'style','height'=>450,'onload'=>'var b=Math.random();window.addEventListener(\'message\',function(a){{a.data.id==b&&(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')}});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/imgur.min.html#{@id}','width'=>568],'name'=>'Imgur','scrape'=>[],'tags'=>['images']],
+ 'imgur'=>['attributes'=>[],'example'=>['http://imgur.com/AsQ0K3P','http://imgur.com/a/9UGCL','http://imgur.com/gallery/9UGCL','http://i.imgur.com/u7Yo0Vy.gifv','http://i.imgur.com/UO1UrIx.mp4'],'extract'=>['@imgur\\.com/(?![rt]/|user/)(?\'id\'(?:\\w+/)?\\w{5,7})@'],'homepage'=>'http://imgur.com/','host'=>['imgur.com'],'iframe'=>['data-s9e-livepreview-ignore-attrs'=>'style','height'=>450,'onload'=>'var b=Math.random();window.addEventListener(\'message\',function(a){{a.data.id==b&&(style.height=a.data.height+\'px\',style.width=a.data.width+\'px\')}});contentWindow.postMessage(\'s9e:\'+b,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/imgur.min.html#{@id}','width'=>568],'name'=>'Imgur','scrape'=>[],'tags'=>['images']],
'indiegogo'=>['attributes'=>[],'example'=>'http://www.indiegogo.com/projects/gameheart-redesigned','extract'=>['!indiegogo\\.com/projects/(?\'id\'[-\\w]+)!'],'homepage'=>'http://www.indiegogo.com/','host'=>['indiegogo.com'],'iframe'=>['height'=>445,'src'=>'//www.indiegogo.com/project/{@id}/embedded','width'=>222],'name'=>'Indiegogo','scrape'=>[],'tags'=>['fundraising']],
'instagram'=>['attributes'=>[],'example'=>'http://instagram.com/p/gbGaIXBQbn/','extract'=>['!instagram\\.com/p/(?\'id\'[-\\w]+)!'],'homepage'=>'http://instagram.com/','host'=>['instagram.com'],'iframe'=>['data-s9e-livepreview-ignore-attrs'=>'style','height'=>640,'onload'=>'var a=Math.random();window.addEventListener(\'message\',function(b){{if(b.data.id==a)style.height=b.data.height+\'px\'}});contentWindow.postMessage(\'s9e:\'+a,\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/instagram.min.html#{@id}','width'=>640],'name'=>'Instagram','scrape'=>[],'source'=>'http://help.instagram.com/513918941996087','tags'=>['social']],
'internetarchive'=>['attributes'=>['height'=>['defaultValue'=>360,'filterChain'=>['#uint']],'width'=>['defaultValue'=>640,'filterChain'=>['#uint']]],'example'=>['https://archive.org/details/BillGate99','https://archive.org/details/DFTS2014-05-30'],'extract'=>[],'homepage'=>'https://archive.org/','host'=>['archive.org'],'iframe'=>['height'=>'{@height}','src'=>'https://archive.org/embed/{@id}','width'=>'{@width}'],'name'=>'Internet Archive','scrape'=>[['extract'=>['!meta property="twitter:player" content="https://archive.org/embed/(?\'id\'[^/"]+)!','!meta property="og:video:width" content="(?\'width\'\\d+)!','!meta property="og:video:height" content="(?\'height\'\\d+)!'],'match'=>['!archive\\.org/details/!']]]],
@@ -101,6 +101,7 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
'streamable'=>['attributes'=>[],'example'=>'http://streamable.com/e4d','extract'=>['!streamable\\.com/(?\'id\'\\w+)!'],'homepage'=>'http://streamable.com/','host'=>['streamable.com'],'iframe'=>['src'=>'//streamable.com/e/{@id}'],'name'=>'Streamable','scrape'=>[],'tags'=>['videos']],
'teamcoco'=>['attributes'=>[],'example'=>['http://teamcoco.com/video/serious-jibber-jabber-a-scott-berg-full-episode','http://teamcoco.com/video/73784/historian-a-scott-berg-serious-jibber-jabber-with-conan-obrien'],'extract'=>['!teamcoco\\.com/video/(?\'id\'\\d+)!'],'homepage'=>'http://teamcoco.com/','host'=>['teamcoco.com'],'iframe'=>['height'=>415,'src'=>'//teamcoco.com/embed/v/{@id}','width'=>640],'name'=>'Team Coco','scrape'=>[['extract'=>['!"id":(?\'id\'\\d+)!'],'match'=>['!teamcoco\\.com/video/.!']]],'tags'=>['entertainment']],
'ted'=>['attributes'=>[],'example'=>['http://www.ted.com/talks/eli_pariser_beware_online_filter_bubbles.html','http://embed.ted.com/playlists/26/our_digital_lives.html'],'extract'=>['#ted\\.com/(?\'id\'(?:talk|playlist)s/[-\\w]+(?:\\.html)?)(?![-\\w]|/transcript)#i'],'homepage'=>'http://www.ted.com/','host'=>['ted.com'],'iframe'=>['src'=>'//embed.ted.com/.html'],'name'=>'TED Talks','scrape'=>[],'source'=>'http://blog.ted.com/2011/04/01/now-you-can-embed-tedtalks-with-subtitles-enabled/','tags'=>['presentations']],
+ 'telegram'=>['attributes'=>[],'example'=>'https://t.me/durov/68','extract'=>['@//t.me/(?!addstickers/|joinchat/)(?\'id\'\\w+/\\d+)@'],'homepage'=>'https://telegram.org/','host'=>['t.me'],'iframe'=>['data-s9e-livepreview-ignore-attrs'=>'style','height'=>96,'onload'=>'window.addEventListener(\'message\',function(e){{if(e.source===contentWindow)style.height=e.data}});contentWindow.postMessage(\'\',\'https://s9e.github.io\')','src'=>'https://s9e.github.io/iframe/telegram.min.html#{@id}','width'=>500],'name'=>'Telegram','scrape'=>[],'tags'=>['social']],
'theatlantic'=>['attributes'=>[],'example'=>'http://www.theatlantic.com/video/index/358928/computer-vision-syndrome-and-you/','extract'=>['!theatlantic\\.com/video/index/(?\'id\'\\d+)!'],'homepage'=>'http://www.theatlantic.com/video/','host'=>['theatlantic.com'],'iframe'=>['src'=>'//www.theatlantic.com/video/iframe/{@id}/'],'name'=>'The Atlantic Video','scrape'=>[],'tags'=>['news']],
'theguardian'=>['attributes'=>[],'example'=>'http://www.theguardian.com/world/video/2016/apr/07/tokyos-hedgehog-cafe-encourages-you-to-embrace-prickly-pets-video','extract'=>['!theguardian\\.com/(?\'id\'\\w+/video/[-/\\w]+)!'],'homepage'=>'http://www.theguardian.com/video','host'=>['theguardian.com'],'iframe'=>['src'=>'//embed.theguardian.com/embed/video/{@id}'],'name'=>'The Guardian','scrape'=>[],'tags'=>['news']],
'theonion'=>['attributes'=>[],'example'=>['http://www.theonion.com/video/nation-successfully-completes-mothers-day-by-918-a,35998/','http://www.theonion.com/video/the-onion-reviews-avengers-age-of-ultron-38524'],'extract'=>['!theonion\\.com/video/[-\\w]+[-,](?\'id\'\\d+)!'],'homepage'=>'http://www.theonion.com/video/','host'=>['theonion.com'],'iframe'=>['src'=>'//www.theonion.com/video_embed/?id={@id}'],'name'=>'The Onion','scrape'=>[],'tags'=>['entertainment']],
@@ -113,7 +114,7 @@ class CachedDefinitionCollection extends SiteDefinitionCollection
'ustream'=>['attributes'=>[],'choose'=>['otherwise'=>['iframe'=>['src'=>'//www.ustream.tv/embed/{@cid}?html5ui']],'when'=>['iframe'=>['src'=>'//www.ustream.tv/embed/recorded/{@vid}?html5ui'],'test'=>'@vid']],'example'=>['http://www.ustream.tv/channel/ps4-ustream-gameplay','http://www.ustream.tv/baja1000tv','http://www.ustream.tv/recorded/40688256'],'extract'=>['!ustream\\.tv/recorded/(?\'vid\'\\d+)!'],'homepage'=>'http://www.ustream.tv/','host'=>['ustream.tv'],'name'=>'Ustream','scrape'=>[['extract'=>['!embed/(?\'cid\'\\d+)!'],'match'=>['#ustream\\.tv/(?!explore/|platform/|recorded/|search\\?|upcoming$|user/)(?:channel/)?[-\\w]+#']]],'tags'=>['gaming']],
'vbox7'=>['attributes'=>[],'example'=>'http://vbox7.com/play:3975300ec6','extract'=>['!vbox7\\.com/play:(?\'id\'[\\da-f]+)!'],'homepage'=>'http://vbox7.com/','host'=>['vbox7.com'],'iframe'=>['src'=>'//vbox7.com/emb/external.php?vid={@id}'],'name'=>'VBOX7','scrape'=>[],'tags'=>['.bg']],
'veoh'=>['attributes'=>[],'example'=>'http://www.veoh.com/watch/v6335577TeB8kyNR','extract'=>['!veoh\\.com/(?:m/watch\\.php\\?v=|watch/)v(?\'id\'\\w+)!'],'flash'=>['padding-height'=>40,'src'=>'//www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1509&permalinkId=v{@id}&player=videodetailsembedded&videoAutoPlay=0&id=anonymous'],'homepage'=>'http://www.veoh.com/','host'=>['veoh.com'],'name'=>'Veoh','scrape'=>[],'tags'=>['videos']],
- 'vevo'=>['attributes'=>[],'example'=>['http://www.vevo.com/watch/USUV71400682','http://www.vevo.com/watch/eminem/the-monster-explicit/USUV71302925'],'extract'=>['!vevo\\.com/watch/([-/\\w]+/)?(?\'id\'[A-Z0-9]+)!'],'homepage'=>'http://vevo.com/','host'=>['vevo.com'],'iframe'=>['height'=>324,'src'=>'//cache.vevo.com/m/html/embed.html?video={@id}','width'=>575],'name'=>'VEVO','scrape'=>[],'tags'=>['music']],
+ 'vevo'=>['attributes'=>[],'example'=>['http://www.vevo.com/watch/USUV71400682','http://www.vevo.com/watch/eminem/the-monster-explicit/USUV71302925'],'extract'=>['!vevo\\.com/watch/(.*?/)?(?\'id\'[A-Z]+\\d+)!'],'homepage'=>'https://vevo.com/','host'=>['vevo.com'],'iframe'=>['src'=>'https://embed.vevo.com/?isrc={@id}'],'name'=>'Vevo','scrape'=>[],'tags'=>['music']],
'viagame'=>['attributes'=>[],'example'=>'http://www.viagame.com/channels/hearthstone-championship/405177','extract'=>['!viagame\\.com/channels/[^/]+/(?\'id\'\\d+)!'],'homepage'=>'http://www.viagame.com/','host'=>['viagame.com'],'iframe'=>['height'=>392,'src'=>'//www.viagame.com/embed/{@id}','width'=>640],'name'=>'Viagame','scrape'=>[],'tags'=>['gaming']],
'videodetective'=>['attributes'=>[],'example'=>'http://www.videodetective.com/movies/zootopia/658596','extract'=>['!videodetective\\.com/\\w+/[-\\w]+/(?:trailer/P0*)?(?\'id\'\\d+)!'],'homepage'=>'http://www.videodetective.com/','host'=>['videodetective.com'],'iframe'=>['src'=>'//www.videodetective.com/embed/video/?options=false&autostart=false&playlist=none&publishedid={@id}'],'name'=>'Video Detective','scrape'=>[]],
'videomega'=>['attributes'=>[],'example'=>'http://videomega.tv/?ref=aPRKXgQdaD','extract'=>['!videomega\\.tv/\\?ref=(?\'id\'\\w+)!'],'homepage'=>'http://videomega.tv/','host'=>['videomega.tv'],'iframe'=>['src'=>'//videomega.tv/iframe.php?ref={@id}'],'name'=>'Videomega','scrape'=>[],'tags'=>['videos']],
|
|