--- /dev/null
+//■ABC File MinorVersion:16 , MajorVersion:46
+
+//INT cnt=143
+//UINT cnt=1
+//DOUBLE cnt=32
+//STRING cnt=6667
+//NAMESPACES cnt=1166
+//NAMESPACE_SETS cnt=279
+//MULTINAMES cnt=7959
+//Methods cnt=5427
+//METADATA cnt=0
+//INTERFACE cnt=465
+//CLASS cnt=465
+//SCRIPT cnt=396
+
+//■script000■
+
+package jp.nicovideo.ext{
+
+ import jp.nicovideo.ext.config.IThumbConfig
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
+
+ //■class(instance)_index:0
+ public interface IThumbPlayer
+ {
+ //static constructor
+ public static function IThumbPlayer$cinit()
+ { //MethodID:0, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void; //MethodID:1, dispID:0
+
+ function get initialized():Boolean; //MethodID:2, dispID:0
+
+ function playThumbPlayer():void; //MethodID:3, dispID:0
+
+ function pauseThumbPlayer():void; //MethodID:4, dispID:0
+
+ function set onChangedVideoStatus(hug1:Function):void; //MethodID:5, dispID:0
+
+ function get videoPlayerStatus():String; //MethodID:6, dispID:0
+
+ //constructor
+ public function IThumbPlayer(); //MethodID:7, dispID:0
+ }
+}
+
+//■script001■
+
+package jp.nicovideo.nicoplayer{
+
+ import flash.display.DisplayObject
+ import flash.display.MovieClip
+ import flash.display.Sprite
+ import flash.display.StageAlign
+ import flash.display.StageScaleMode
+ import flash.errors.IOError
+ import flash.errors.IllegalOperationError
+ import flash.events.Event
+ import flash.events.TimerEvent
+ import flash.net.URLRequest
+ import flash.net.URLVariables
+ import flash.net.navigateToURL
+ import flash.system.Security
+ import flash.ui.ContextMenu
+ import flash.utils.Timer
+ import jp.nicovideo.ext.config.IThumbConfig
+ import jp.nicovideo.hiroba.HirobaConnectorClient
+ import jp.nicovideo.hiroba.IHirobaConnector
+ import jp.nicovideo.hiroba.events.HirobaErrorEvent
+ import jp.nicovideo.hiroba.events.HirobaEvent
+ import jp.nicovideo.hiroba.events.HirobaEventReferer
+ import jp.nicovideo.hiroba.models.HirobaMessageServerInfo
+ import jp.nicovideo.marquee.INicoMarqueePlayer
+ import jp.nicovideo.marquee.MarqueeClient
+ import jp.nicovideo.nicoplayer.app.ApplibarLoader
+ import jp.nicovideo.nicoplayer.config.DebugMode
+ import jp.nicovideo.nicoplayer.config.DefaultInitializer
+ import jp.nicovideo.nicoplayer.config.NicoConfig
+ import jp.nicovideo.nicoplayer.config.getDebugMode
+ import jp.nicovideo.nicoplayer.external.ExternalClient
+ import jp.nicovideo.nicoplayer.hiroba.HirobaPlayer
+ import jp.nicovideo.nicoplayer.hiroba.events.HirobaErrorStatus
+ import jp.nicovideo.nicoplayer.models.IPlayerConfig
+ import jp.nicovideo.nicoplayer.models.MyList
+ import jp.nicovideo.nicoplayer.models.PlayDelay
+ import jp.nicovideo.nicoplayer.models.PlayerConfig
+ import jp.nicovideo.nicoplayer.models.PlayerInfo
+ import jp.nicovideo.nicoplayer.models.PlayerVersion
+ import jp.nicovideo.nicoplayer.models.RelatedVideoList
+ import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
+ import jp.nicovideo.nicoplayer.models.StartVposConfig
+ import jp.nicovideo.nicoplayer.models.SystemMessage
+ import jp.nicovideo.nicoplayer.models.VideoDetail
+ import jp.nicovideo.nicoplayer.models.VideoLoadGuardian
+ import jp.nicovideo.nicoplayer.models.api.BGMVideoInfo
+ import jp.nicovideo.nicoplayer.models.api.GetBGM
+ import jp.nicovideo.nicoplayer.models.api.GetChecklist
+ import jp.nicovideo.nicoplayer.models.api.GetFLV
+ import jp.nicovideo.nicoplayer.models.api.GetRelation
+ import jp.nicovideo.nicoplayer.models.api.GetSponsorInfo
+ import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
+ import jp.nicovideo.nicoplayer.models.api.IKeygen
+ import jp.nicovideo.nicoplayer.models.api.InitializeInfo
+ import jp.nicovideo.nicoplayer.models.api.Jumper
+ import jp.nicovideo.nicoplayer.models.api.Keygen
+ import jp.nicovideo.nicoplayer.models.api.RegisterBGM
+ import jp.nicovideo.nicoplayer.models.comment.CommentConstants
+ import jp.nicovideo.nicoplayer.models.comment.CommentList
+ import jp.nicovideo.nicoplayer.models.comment.CommentListPublicStatus
+ import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
+ import jp.nicovideo.nicoplayer.models.comment.CommentRouter
+ import jp.nicovideo.nicoplayer.models.comment.CommentStorageEvents
+ import jp.nicovideo.nicoplayer.models.comment.ICommentList
+ import jp.nicovideo.nicoplayer.models.comment.LocalCommentList
+ import jp.nicovideo.nicoplayer.models.comment.OwnerCommentList
+ import jp.nicovideo.nicoplayer.models.comment.TimeMachine
+ import jp.nicovideo.nicoplayer.models.filter.ChannelReplacer
+ import jp.nicovideo.nicoplayer.models.filter.DeleteFilter
+ import jp.nicovideo.nicoplayer.models.filter.LockedComment
+ import jp.nicovideo.nicoplayer.models.filter.NGComment
+ import jp.nicovideo.nicoplayer.models.filter.NGInfo
+ import jp.nicovideo.nicoplayer.models.filter.NGResponseConstants
+ import jp.nicovideo.nicoplayer.models.filter.NGType
+ import jp.nicovideo.nicoplayer.models.filter.Replacer
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVarsInitializer
+ import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
+ import jp.nicovideo.nicoplayer.models.log.LogManager
+ import jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender
+ import jp.nicovideo.nicoplayer.models.playlist.Playlist
+ import jp.nicovideo.nicoplayer.models.playlist.PlaylistController
+ import jp.nicovideo.nicoplayer.models.playlist.PlaylistErrorManager
+ import jp.nicovideo.nicoplayer.models.video.ChildVideoName
+ import jp.nicovideo.nicoplayer.models.video.FLVVideo
+ import jp.nicovideo.nicoplayer.models.video.IVideo
+ import jp.nicovideo.nicoplayer.models.video.SWFVideo
+ import jp.nicovideo.nicoplayer.models.video.VideoController
+ import jp.nicovideo.nicoplayer.models.video.VideoLoadWatcher
+ import jp.nicovideo.nicoplayer.models.video.VideoType
+ import jp.nicovideo.nicoplayer.models.video.VideoWrapper
+ import jp.nicovideo.nicoplayer.models.video.VposWatcher
+ import jp.nicovideo.nicoplayer.models.video.userSponsor.IUserSponsorVideo
+ import jp.nicovideo.nicoplayer.models.video.userSponsor.UserSponsorVideoClient
+ import jp.nicovideo.nicoplayer.plugin.NicoPluginClient
+ import jp.nicovideo.nicoplayer.remocon.RemoconClient
+ import jp.nicovideo.nicoplayer.remocon.RemoconFullScreenKeeper
+ import jp.nicovideo.nicoplayer.remocon.RemoconNotifier
+ import jp.nicovideo.nicoplayer.remocon.RemoconPlayerStateObserver
+ import jp.nicovideo.nicoplayer.remocon.RemoconReceiver
+ import jp.nicovideo.nicoplayer.remocon.RemoconState
+ import jp.nicovideo.nicoplayer.remocon.method.defineRemoconMethods
+ import jp.nicovideo.nicoplayer.storages.CommentStorage
+ import jp.nicovideo.nicoplayer.storages.CommentStorageError
+ import jp.nicovideo.nicoplayer.storages.ICommentStorage
+ import jp.nicovideo.nicoplayer.storages.MessageServerClient
+ import jp.nicovideo.nicoplayer.tpls.INicoViewController
+ import jp.nicovideo.nicoplayer.tpls.NicoViewControllerClient
+ import jp.nicovideo.nicoplayer.tpls.shutter.AudioShutterConstants
+ import jp.nicovideo.nicoplayer.tpls.shutter.CommentShutterConstants
+ import jp.nicovideo.nicoplayer.tpls.shutter.ControllerShutter
+ import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
+ import jp.nicovideo.nicoplayer.videoender.VideoenderTesterConfig
+ import jp.nicovideo.nicoplayer.views.JumpMessageLayer
+ import jp.nicovideo.nicoplayer.views.VideoLayerConstants
+ import jp.nicovideo.nicoplayer.views.VideoLayerManager
+ import jp.nicovideo.nicoplayer.views.comment.CommentLayer
+ import jp.nicovideo.nicoplayer.views.comment.CommentLayerID
+ import jp.nicovideo.nicoplayer.views.comment.CommentLayerView
+ import jp.nicovideo.nicoplayer.views.comment.CommentViewTransformer
+ import jp.nicovideo.nicoplayer.views.framerate.FrameRateBooster
+ import jp.nicovideo.nicoscript.INicoSPlayer
+ import jp.nicovideo.nicoscript.NicoSClient
+ import jp.nicovideo.nicoscript.NicoSConstants
+ import jp.nicovideo.nicoscript.macro.parsers.IMacroParserResult
+ import jp.nicovideo.util.CrossSharedObject
+ import jp.nicovideo.util.HTTPUtils
+ import jp.nicovideo.util.ObjectUtils
+ import jp.nicovideo.util.StringUtils
+ import jp.nicovideo.util.api.APICacheProxy
+ import jp.nicovideo.util.events.EventBarrier
+ import jp.nicovideo.util.events.EventChunk
+ import jp.nicovideo.util.events.EventPipe
+ import jp.nicovideo.util.events.EventResult
+ import jp.nicovideo.util.events.EventSequence
+ import jp.nicovideo.util.events.event_sender
+ import jp.nicovideo.util.external.JSConnector
+ import jp.nicovideo.util.loka.Loka
+ import jp.nicovideo.util.loka.__MSG__
+
+ //■class(instance)_index:1
+ public class NicoPlayer extends Sprite implements IThumbPlayer
+ {
+ //static constructor
+ public static function NicoPlayer$cinit()
+ { //MethodID:9, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 54
+ DEBUG_MODE = getDebugMode();
+ DEBUG_MODE_EXT = ((DEBUG_MODE == DebugMode.NON) ? DebugMode.NON : DebugMode.EXTDEV);
+ }
+
+ //static variables/etc.
+ private static const DEBUG_MODE:uint; //slotID:1
+ private static const DEBUG_MODE_EXT:uint; //slotID:2
+
+ //constructor
+ public function NicoPlayer()
+ { //MethodID:10, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 137
+ this.commentListContainer = {};
+ this.systemMessage = SystemMessage.instance;
+ this.nicoViewControllerClient = new NicoViewControllerClient();
+ this.pluginClient = new NicoPluginClient();
+ this._playlistSequences = [];
+
+ super();
+ Security.allowDomain("*");
+
+ this.isThumbWatchMode = (loaderInfo.parameters[this._IS_THUMBWATCH_PARAM] == "1");
+ this.configure = new NicoConfig();
+ Loka.instance.debug = true;
+
+ if(this.isThumbWatchMode) return;
+
+ if(loaderInfo.parameters[this._PLAYLIST_ID]){
+ this.initializePlaylistPlayer();
+
+ return;
+ }
+
+ this.initializeWatchPlayer();
+ }
+
+ //variables/etc.
+ private const _IS_THUMBWATCH_PARAM:String = "thumbWatch"; //slotID:0
+ private const _PLAYLIST_ID:String = "playlistId"; //slotID:0
+ private var getFLV:GetFLV; //slotID:0
+ private var flashVars:NicoFlashVars; //slotID:0
+ private var playlistFlashVars:PlaylistFlashVars; //slotID:0
+ private var playerConfig:IPlayerConfig; //slotID:0
+ private var video:VideoWrapper; //slotID:0
+ private var commentListContainer:Object; //slotID:0
+ private var mainCommentListName:String = "commentlist:main"; //slotID:0
+ private var commentList:CommentList; //slotID:0
+ private var ownerCommentList:OwnerCommentList; //slotID:0
+ private var privateCommentList:CommentList; //slotID:0
+ private var nicoSCommentList:CommentList; //slotID:0
+ private var localCommentList:LocalCommentList; //slotID:0
+ private var systemMessage:SystemMessage; //slotID:0
+ private var relatedList:RelatedVideoList; //slotID:0
+ private var ngComment:NGComment; //slotID:0
+ private var lockedComment:LockedComment; //slotID:0
+ private var replacer:Replacer; //slotID:0
+ private var playerVersion:PlayerVersion; //slotID:0
+ private var playerInfo:PlayerInfo; //slotID:0
+ private var timeMachine:TimeMachine; //slotID:0
+ private var deleteFilter:DeleteFilter; //slotID:0
+ private var channelReplacer:ChannelReplacer; //slotID:0
+ private var videoLoadGuardian:VideoLoadGuardian; //slotID:0
+ private var getChecklist:GetChecklist; //slotID:0
+ private var myList:MyList; //slotID:0
+ private var playlist:Playlist; //slotID:0
+ private var initializeInfo:InitializeInfo; //slotID:0
+ private var _startVposConfig:StartVposConfig; //slotID:0
+ private var commentLayerView:CommentLayerView; //slotID:0
+ private var commentLayer:CommentLayer; //slotID:0
+ private var commentViewTransformer:CommentViewTransformer; //slotID:0
+ private var commentRouter:CommentRouter; //slotID:0
+ private var videoLayerManager:VideoLayerManager; //slotID:0
+ private var videoController:VideoController; //slotID:0
+ private var jumpMsgLayer:JumpMessageLayer; //slotID:0
+ private var nicoViewController:INicoViewController; //slotID:0
+ private var nicoViewControllerClient:NicoViewControllerClient; //slotID:0
+ private var vposWatcher:VposWatcher; //slotID:0
+ private var commentShutter:ControllerShutter; //slotID:0
+ private var audioShutter:ControllerShutter; //slotID:0
+ private var playlistController:PlaylistController; //slotID:0
+ private var frameRateBooster:FrameRateBooster; //slotID:0
+ private var userSponsorVideo:IUserSponsorVideo; //slotID:0
+ private var hirobaPlayer:HirobaPlayer; //slotID:0
+ private var hirobaConnectorClient:HirobaConnectorClient; //slotID:0
+ private var _thumbConfig:IThumbConfig; //slotID:0
+ private var configure:NicoConfig; //slotID:0
+ private var keygen:IKeygen; //slotID:0
+ private var commentStorage:ICommentStorage; //slotID:0
+ private var jumper:Jumper; //slotID:0
+ private var nicosPlayer:INicoSPlayer; //slotID:0
+ private var nicosClient:NicoSClient; //slotID:0
+ private var nicosPipe:Function; //slotID:0
+ private var BGMVideoInfos:Array; //slotID:0
+ private var marqueeClient:MarqueeClient; //slotID:0
+ private var externalClient:ExternalClient; //slotID:0
+ private var isThumbWatchMode:Boolean = false; //slotID:0
+ private var _onChangedVideoStatus:Function; //slotID:0
+ private var _initialized:Boolean = false; //slotID:0
+ private var _wholeVideoLoadSucceeded:Boolean = false; //slotID:0
+ private var pluginClient:NicoPluginClient; //slotID:0
+ private var _playlistSequences:Array; //slotID:0
+ private var _isPlaylist:Boolean = false; //slotID:0
+ private var _videoLoadSucceeded:Boolean; //slotID:0
+ private var _isPlaylistPrepared:Boolean = false; //slotID:0
+ private var _shutterKeyLastClosed:int = -1; //slotID:0
+ private var _isShowedDialog:Boolean = false; //slotID:0
+ private var _logManager:LogManager; //slotID:0
+ private var _playerPageMyselfURL:String; //slotID:0
+ private var _videoenderTesterConfig:IVideoenderTesterConfig; //slotID:0
+
+ private function initializePlaylistPlayer():void
+ { //MethodID:12, LocalCount= 2 , MaxScope= 2, MaxStack= 19, CodeLength= 422
+ internal var menu:ContextMenu; //slotID:1
+ internal var vars:Object; //slotID:2
+ internal var seq:EventSequence; //slotID:3
+
+ this._isPlaylist = true;
+
+ DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
+
+ this.keygen = new Keygen(this.configure);
+ stage.align = StageAlign.TOP_LEFT;
+ stage.scaleMode = StageScaleMode.NO_SCALE;
+ menu = new ContextMenu();
+
+ menu.hideBuiltInItems();
+
+ menu.builtInItems.quality = true;
+ contextMenu = menu;
+ vars = loaderInfo.parameters;
+ this.flashVars = new NicoFlashVars();
+
+ NicoFlashVarsInitializer.setFlashVars(this.flashVars, vars);
+
+ this.playlistFlashVars = new PlaylistFlashVars(vars);
+ this._playerPageMyselfURL = function():String{ //MethodID:11, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 49
+ var hug1:* = {};
+
+ if(playlistFlashVars.playlistSort) hug1["sort"] = playlistFlashVars.playlistSort;
+
+ return StringUtils.joinQuery((configure.PLAYLIST_PAGE_BASE_URL + playlistFlashVars.playlistID), hug1);
+ }();
+ this.nicoViewControllerClient.nicoConfig = this.configure;
+
+ this.nicoViewControllerClient.flashVars = this.flashVars;
+ this.nicoViewControllerClient.playlistFlashVars = this.playlistFlashVars;
+ this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
+
+ this.pluginClient.setProperty("nicoConfig", this.configure);
+ this.pluginClient.setProperty("flashVars", this.flashVars);
+
+ this.nicoViewControllerClient.pluginClient = this.pluginClient;
+ this._playlistSequences = [this._loadWatchAPI, this.loadVideoInfoAPI, this.initializeMyList, this.loadBGMVideoInfo, this.initializeCommentStorage, this.initializeGetChecklist, this.initializeHiroba, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this.initializeCommentRouter, this.initializeModelAndView4Watch, this.initializeLogger, this.loadConfirm, this.initializePlugin, this.initializeCommentLists, this._delayVideo, this._loadVideo];
+ seq = new EventSequence(this);
+
+ seq.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.createLogger, this.initializePlayerConfig, this.loadTemplateSWF, this.initializePlaylist, this.loadViewControllerSWF, this.loadNicoScriptSWF, this.checkInitializePlaylist, this.initializeNG, this.startPlaylist);
+ seq.next();
+ }
+
+ private function startPlaylist():void
+ { //MethodID:13, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 54
+ if(this.playlistController) this.playlistController.play(null, null, (this.playerConfig.autoPlay && !this.initializeInfo.isPremium));
+ EventSequence.current.next();
+ }
+
+ private function _loadWatchAPI():void
+ { //MethodID:15, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 96
+ internal var apiParams:Object; //slotID:1
+
+ this.nicoViewControllerClient.flashVars = null;
+ apiParams = {};
+
+ if(this._isPlaylist){
+ apiParams["mode"] = "playlist";
+ apiParams["playlist_token"] = this.playlist.token;
+ }
+
+ HTTPUtils.loadJSON(EventSequence.bind(function(hug1:Object):void{ //MethodID:14, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 245
+ var hug2:* = undefined;
+
+ if(!hug1 || (hug1.status == "ng")){
+ if(_isPlaylist){
+ if(hug1.status_message == PlaylistErrorManager.TOKEN_TIMEOUT){
+ if(playlistController.errorCount < 1){
+ playlistController.errorCount++;
+ playlistController.isInvalidToken = true;
+ playlistController.isVideoUpdating = false;
+
+ playlistController.play(playlistController.threadID);
+
+ return;
+ }
+ }
+
+ playlistController.onError(hug1.status_message.toString());
+
+ if(PlaylistErrorManager.TABWINDOW_ALERT_ERRORS.indexOf(hug1.status_message.toString()) != (-1)) playlistController.goNext(null, (playerConfig.autoPlay && !initializeInfo.isPremium));
+ }
+
+ return;
+ }
+
+ flashVars = new NicoFlashVars();
+
+ NicoFlashVarsInitializer.setFlashVars(flashVars, hug1);
+
+ if(_isPlaylist){
+ hug2 = playlist.getVideoInfo(playlistController.threadID);
+ hug2.flashVars = flashVars;
+ }
+
+ nicoViewControllerClient.flashVars = flashVars;
+
+ EventSequence.current.next();
+ }), (this.configure.WATCH_API_URL + this.playlistController.threadID), apiParams);
+ }
+
+ private function initializePlaylist():void
+ { //MethodID:18, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 96
+ internal var apiParams:Object; //slotID:1
+
+ apiParams = {};
+ apiParams["ts"] = new Date().time;
+ apiParams["playlist_token"] = this.playlistFlashVars.playlistToken;
+ this.playlist = new Playlist((this.configure.GET_PLAYLIST_URL + this.playlistFlashVars.playlistID), apiParams, this.playlistFlashVars.playlistSort, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:17, LocalCount= 3 , MaxScope= 1, MaxStack= 11, CodeLength= 172
+ internal var success:Boolean; //slotID:1
+ internal var reset:Function; //slotID:2
+
+ reset = null;
+ success = hug1;
+ reset = function():void{ //MethodID:16, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 43
+ nicoViewControllerClient.getFLVData = null;
+ nicoViewControllerClient.videoController = null;
+ nicoViewControllerClient.commentRouter = null;
+ nicoViewControllerClient.relatedList = null;
+ nicoViewControllerClient.myList = null;
+ nicoViewControllerClient.defaultMylistAppender = null;
+ };
+
+ _isPlaylistPrepared = success;
+
+ if(!success){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ if(playlistController){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ initializeInfo = InitializeInfo.getInstance();
+ nicoViewControllerClient.initializeInfo = initializeInfo;
+
+ pluginClient.setProperty("initializeInfo", initializeInfo);
+
+ playlistController = new PlaylistController(_playlistSequences, initializePlaylist, playlist, playlistFlashVars, configure, playerInfo.playlistLimit, reset, playerConfig.isPlaylistRandomPlay, _playerPageMyselfURL);
+ nicoViewControllerClient.playlistController = playlistController;
+
+ EventSequence.current.next();
+ }));
+ }
+
+ private function checkInitializePlaylist():void
+ { //MethodID:19, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 105
+ var hug1:String = null;
+
+ if(!this.initializeInfo || !this.initializeInfo.userID){
+ this.systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
+
+ hug1 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログインしていない可能性があります。") + "</p>");
+
+ this.systemMessage.alert(hug1);
+
+ return;
+ }
+
+ EventSequence.current.next();
+ }
+
+ public function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void
+ { //MethodID:20, LocalCount= 4 , MaxScope= 1, MaxStack= 23, CodeLength= 234
+ if(DEBUG_MODE_EXT != DebugMode.NON){
+ DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE_EXT);
+ DefaultInitializer.setThumbDebugMode(this.configure);
+ }else{
+ DefaultInitializer.setConfig(this.configure, hug1.playerURL, DebugMode.NON);
+ }
+
+ this.keygen = new Keygen(this.configure);
+ this._thumbConfig = hug1;
+ this.flashVars = hug2;
+ this.nicoViewControllerClient.thumbConfig = hug1;
+ this.nicoViewControllerClient.nicoConfig = this.configure;
+ this.nicoViewControllerClient.flashVars = hug2;
+ var hug3:EventSequence = new EventSequence(this);
+
+ hug3.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.initializePlayerConfig, this._loadThumbViewSWF, this._loadThumbControllerSWF, this.loadNicoScriptSWF, this._loadThumbVideoInfo, this.loadBGMVideoInfo, this.initializeNG, this.initializeCommentStorage, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this._initializeModelAndViewThumbWatch, this.initializeSponsorVideo, this._delayVideo, this._loadVideo, this.initializeCommentLists, this.beginToPlayVideo);
+ hug3.next();
+ }
+
+ public function get initialized():Boolean
+ { //MethodID:21, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._initialized;
+ }
+
+ public function playThumbPlayer():void
+ { //MethodID:22, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
+ if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.play();
+ }
+
+ public function pauseThumbPlayer():void
+ { //MethodID:23, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
+ if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.stop();
+ }
+
+ public function set onChangedVideoStatus(hug1:Function):void
+ { //MethodID:25, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 57
+ internal var onChanged:Function; //slotID:1
+
+ onChanged = hug1;
+
+ if(!this.isThumbWatchMode) throw new IllegalOperationError("NicoPlayer.set onChangedVideoStatus: player is not in thumbwatch.");
+
+ if(onChanged == null) throw new ArgumentError("NicoPlayer.set onChangedVideoStatus: invalid parameters onChanged is null.");
+
+ this._onChangedVideoStatus = function(hug1:String):void{ //MethodID:24, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
+ if(!_initialized) _initialized = true;
+ onChanged(hug1);
+ };
+ }
+
+ public function get videoPlayerStatus():String
+ { //MethodID:26, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 49
+ if(this.isThumbWatchMode && this.video && this.video.isInitialized) return this.video.videoPlayerStatus;
+
+ return "";
+ }
+
+ private function initializeWatchPlayer():void
+ { //MethodID:27, LocalCount= 4 , MaxScope= 1, MaxStack= 31, CodeLength= 362
+ DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
+
+ this.keygen = new Keygen(this.configure);
+ stage.align = StageAlign.TOP_LEFT;
+ stage.scaleMode = StageScaleMode.NO_SCALE;
+ var hug1:ContextMenu = new ContextMenu();
+
+ hug1.hideBuiltInItems();
+
+ hug1.builtInItems.quality = true;
+ contextMenu = hug1;
+ var hug2:Object = loaderInfo.parameters;
+ this.flashVars = new NicoFlashVars();
+
+ NicoFlashVarsInitializer.setFlashVars(this.flashVars, hug2);
+
+ this._playerPageMyselfURL = (this.configure.BASE_URL + "watch/" + this.flashVars.watchID);
+ this.nicoViewControllerClient.nicoConfig = this.configure;
+ this.nicoViewControllerClient.flashVars = this.flashVars;
+ this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
+
+ this.pluginClient.setProperty("nicoConfig", this.configure);
+ this.pluginClient.setProperty("flashVars", this.flashVars);
+
+ this.nicoViewControllerClient.pluginClient = this.pluginClient;
+ var hug3:EventSequence = new EventSequence(this);
+
+ hug3.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.createLogger, this.initializePlayerConfig, this.loadTemplateSWF, this.loadViewControllerSWF, this.loadNicoScriptSWF, this.loadVideoInfoAPI, this.initializeMyList, this.loadBGMVideoInfo, this.initializeNG, this.initializeCommentStorage, this.initializeGetChecklist, this.initializeHiroba, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this.initializeCommentRouter, this.initializeModelAndView4Watch, this.initializeSponsorVideo, this.initializeLogger, this.loadConfirm, this.initializePlugin, this.initializeCommentLists, this._delayVideo, this._loadVideo, this.beginToPlayVideo);
+ hug3.next();
+ }
+
+ private function initializeCrossSharedObjectSWF():void
+ { //MethodID:30, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 64
+ internal var _url:String; //slotID:1
+
+ _url = null;
+ _url = StringUtils.joinQuery(this.configure.CROSSSHAREDOBJECT_SWF_URL, {t:this.playerVersion.crossSharedObject});
+
+ CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:29, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 134
+ internal var sccessed:Boolean; //slotID:1
+
+ sccessed = hug1;
+
+ if(!sccessed) throw new Error("NicoPlayer.loadCrossSharedObjectSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_SWF_URL + "\"");
+
+ if(CrossSharedObject.isPersistable || !configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL){
+ EventSequence.current.next();
+ }else{
+ CrossSharedObject.terminate();
+
+ _url = StringUtils.joinQuery(configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL, {t:playerVersion.crossSharedObject});
+
+ CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:28, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 38
+ if(!hug1) throw new Error("NicoPlayer.loadCrossSharedObjectNoNimgSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL + "\"");
+ EventSequence.current.next();
+ }));
+ }
+ }));
+ }
+
+ private function createLogger():void
+ { //MethodID:31, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 42
+ this._logManager = new LogManager(!CrossSharedObject.isPersistable);
+ this.nicoViewControllerClient.logManager = this._logManager;
+
+ EventSequence.current.next();
+ }
+
+ private function initializePlayerConfig():void
+ { //MethodID:32, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 116
+ this.playerConfig = new PlayerConfig(this.isThumbWatchMode);
+ this.nicoViewControllerClient.playerConfig = this.playerConfig;
+
+ this.pluginClient.setProperty("playerConfig", this.playerConfig);
+
+ this.playerConfig.deepenedCommentForce = this.flashVars.isDeepenedCommentForce;
+ this.playerConfig.aspectRatio = ((this.flashVars.isWide || this._isPlaylist) ? ScreenAspectRatio.WIDE : ScreenAspectRatio.NORMAL);
+
+ EventSequence.current.next();
+ }
+
+ private function initializeJumper():void
+ { //MethodID:33, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 74
+ this.jumper = new Jumper(this.configure, this.flashVars.watchID);
+ this.nicoViewControllerClient.jumper = this.jumper;
+ this._startVposConfig = new StartVposConfig(this.jumper, this.flashVars);
+ this.nicoViewControllerClient.startVposConfig = this._startVposConfig;
+
+ EventSequence.current.next();
+ }
+
+ private function initializePlayerVersion():void
+ { //MethodID:35, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
+ internal var request:URLRequest; //slotID:1
+ internal var params:URLVariables; //slotID:2
+ internal var api:APICacheProxy; //slotID:3
+
+ request = new URLRequest(this.configure.PLAYERVERSION_XML_URL);
+ params = new URLVariables();
+ params.v = this.flashVars.playerVersionUpdated;
+ request.data = params;
+ api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerVersionUpdated, false);
+ this.playerVersion = new PlayerVersion(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:34, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
+ if(!hug1) throw new Error("NicoPlayer.playerVersion. initialize error");
+
+ nicoViewControllerClient.playerVersion = playerVersion;
+
+ EventSequence.current.next();
+ }), api);
+ }
+
+ private function initializeJSConnector():void
+ { //MethodID:37, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 71
+ internal var request:URLRequest; //slotID:1
+
+ request = new URLRequest(this.configure.JSCONNECTOR_SWF_URL);
+ request.data = new URLVariables("v=" + this.playerVersion.jsconnector);
+
+ JSConnector.init(request, EventSequence.current.bind(function(hug1:Boolean):void{ //MethodID:36, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 27
+ if(!hug1) throw new IOError("NicoPlayer.initializeJSConnector: initialize error.");
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializePlayerInfo():void
+ { //MethodID:39, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
+ internal var request:URLRequest; //slotID:1
+ internal var params:URLVariables; //slotID:2
+ internal var api:APICacheProxy; //slotID:3
+
+ request = new URLRequest(this.configure.PLAYERINFO_XML_URL);
+ params = new URLVariables();
+ params.v = this.flashVars.playerInfoUpdated;
+ request.data = params;
+ api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerInfoUpdated, false);
+ this.playerInfo = new PlayerInfo(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:38, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
+ if(!hug1) throw new Error("NicoPlayer.playerInfo. initialize error");
+
+ nicoViewControllerClient.playerInfo = playerInfo;
+
+ EventSequence.current.next();
+ }), api);
+ }
+
+ private function loadTemplateSWF():void
+ { //MethodID:41, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:40, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 45
+ if(!hug1) throw new Error("NicoPlayer.loadTemplateSWF: failure to load \"" + configure.VIEW_SWF_URL + "\"");
+
+ nicoViewControllerClient.viewRoot = hug1;
+
+ EventSequence.current.next();
+ }), this.configure.VIEW_SWF_URL, {t:this.playerVersion.nicoplayerTemplate});
+ }
+
+ private function loadViewControllerSWF():void
+ { //MethodID:43, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:42, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 89
+ if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.VIEWCONTROLLER_SWF_URL + "\"");
+ addChild(nicoViewControllerClient.viewRoot);
+
+ nicoViewController = INicoViewController(hug1);
+
+ nicoViewController.startInit(nicoViewControllerClient);
+
+ if(playlistController) playlistController.nicoViewController = nicoViewController;
+ EventSequence.current.next();
+ }), this.configure.VIEWCONTROLLER_SWF_URL, {t:this.playerVersion.nicoplayerViewController});
+ }
+
+ private function loadNicoScriptSWF():void
+ { //MethodID:45, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 76
+ if(!this.flashVars.hasOwnerThread && !this.playlistFlashVars){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:44, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 50
+ if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.NICOSPLAYER_URL + "\"");
+
+ nicosPlayer = INicoSPlayer(hug1);
+
+ EventSequence.current.next();
+ }), this.configure.NICOSPLAYER_URL, {t:this.playerVersion.nicoscriptPlayer});
+ }
+
+ private function getGetFLVAPIParams():Object
+ { //MethodID:46, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 165
+ var hug1:Object = {};
+ hug1["v"] = ((this._isPlaylist && this.playlistController) ? this.playlistController.threadID : this.flashVars.watchID);
+
+ if(this.flashVars.videoType == VideoType.SWF) hug1["as3"] = "1";
+
+ if(this.flashVars.forceLowMode) hug1["lo"] = "1";
+
+ if(this.flashVars.economyMode) hug1["eco"] = this.flashVars.economyMode;
+
+ if(this.flashVars.watchFlashVars.noHiroba || this._isPlaylist) hug1["nh"] = "1";
+
+ return hug1;
+ }
+
+ private function loadVideoInfoAPI():void
+ { //MethodID:48, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 65
+ this.nicoViewControllerClient.getFLVData = null;
+
+ this.systemMessage.informln(__MSG__("動画情報を取得開始"));
+
+ this.getFLV = new GetFLV(this.configure.GETFLV_URL, this.getGetFLVAPIParams(), EventSequence.bind(function(hug1:Boolean):void{ //MethodID:47, LocalCount= 7 , MaxScope= 0, MaxStack= 4, CodeLength= 508
+ var hug2:* = undefined;
+ var hug6:* = undefined;
+ var hug3:* = _playerPageMyselfURL;
+
+ if(!hug1 || getFLV.closed){
+ systemMessage.informln(__MSG__("動画情報の取得に失敗"));
+
+ hug2 = (("<p><b>" + __MSG__("動画情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログイン状態が解除されているか、動画が非公開状態にある可能性があります。") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードして再度ログイン</a>", hug3) + "</p>");
+
+ systemMessage.alert(hug2);
+
+ return;
+ }
+
+ if(!initializeInfo){
+ initializeInfo = InitializeInfo.getInstance();
+ nicoViewControllerClient.initializeInfo = initializeInfo;
+
+ pluginClient.setProperty("initializeInfo", initializeInfo);
+ }
+
+ if(!initializeInfo.userID){
+ systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
+
+ hug2 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("以下のページにアクセスしログインしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
+
+ systemMessage.alert(hug2);
+
+ return;
+ }
+
+ if(flashVars.isChannel){
+ systemMessage.informln(__MSG__("チャンネル動画"));
+ }else if(flashVars.isCommunityThread){
+ systemMessage.informln(__MSG__("コミュニティ動画"));
+ }
+
+ nicoViewControllerClient.getFLVData = getFLV;
+
+ if(!pluginClient.hasInitialized("getFLV")) pluginClient.setProperty("getFLV", getFLV);
+ SystemMessage.instance.informln(__MSG__("スレッド(動画)") + ":" + flashVars.watchID);
+
+ var hug4:* = new RegExp("(https?|rtmp(e|t|te)?)://([^.]+).+", "ig");
+ var hug5:* = hug4.exec(getFLV.videoURL);
+
+ if(hug5 != null){
+ hug6 = ((__MSG__("動画ホスト") + ":") + ((hug5.length >= 1) ? hug5[3] : ""));
+
+ if(new RegExp("low$").test(getFLV.videoURL)) hug6 += __MSG__(" (エコノミー)");
+ SystemMessage.instance.informln(hug6);
+ }
+
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializeMyList():void
+ { //MethodID:49, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 46
+ this.myList = new MyList(this.configure, this.getFLV.threadID);
+ this.nicoViewControllerClient.myList = this.myList;
+
+ EventSequence.current.next();
+ }
+
+ private function loadBGMVideoInfo():void
+ { //MethodID:51, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 119
+ this.BGMVideoInfos = [];
+
+ if((!this.flashVars.importedBGMVideos || (this.flashVars.importedBGMVideos.length == 0)) || ((this.getFLV.deleted != 0) && (this.getFLV.deleted != 8))){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ GetBGM.exec(EventSequence.bind(function(hug1:Boolean, hug2:Array):void{ //MethodID:50, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 118
+ var hug3:* = undefined;
+ var hug4:* = undefined;
+
+ if(!hug1){
+ systemMessage.informln(__MSG__("引用動画の情報の取得に失敗"));
+
+ hug3 = _playerPageMyselfURL;
+ hug4 = ("<p><b>" + __MSG__("引用動画の情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("お手数ですが以下のリンクをおしてページをロードしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
+
+ systemMessage.alert(hug4);
+
+ return;
+ }
+
+ BGMVideoInfos = hug2;
+
+ EventSequence.current.next();
+ }), this.configure.GETBGM_API_URL, this.getFLV.threadID);
+ }
+
+ private function initializeNG():void
+ { //MethodID:55, LocalCount= 2 , MaxScope= 2, MaxStack= 11, CodeLength= 145
+ internal var noLoad:Boolean; //slotID:1
+
+ noLoad = !CrossSharedObject.isPersistable;
+ this.nicoViewControllerClient.ngFilter = null;
+ this.ngComment = new NGComment(this.initializeInfo.userID, this.initializeInfo.ngRevision, this.configure.GETCONFIGURENGCLIENT_URL, this.initializeInfo.isPremium, this.playerConfig, this.initializeInfo.isNGMaintenance, noLoad, this.flashVars.isMymemory, (this.isThumbWatchMode ? null : this.flashVars.watchFlashVars.csrfToken));
+
+ this.ngComment.onInitialized.add(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:53, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 187
+ internal var success:Boolean; //slotID:1
+ internal var ngCommentLength:*; //slotID:2
+ internal var ngUserLength:*; //slotID:3
+
+ ngCommentLength = undefined;
+ ngUserLength = undefined;
+ success = hug1;
+
+ if(!success) systemMessage.alert("<p><b>" + __MSG__("NG設定の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("時間を空けてアクセスしていただくか、下のリンクからお知らせください。") + "<br />" + "<a href=\"https://secure.nicovideo.jp/secure/support_form\" target=\"_blank\">" + "お問い合わせ" + "</a>" + "</p>");
+
+ nicoViewControllerClient.ngFilter = ngComment;
+
+ if(!pluginClient.hasInitialized("ngFilter")) pluginClient.setProperty("ngFilter", ngComment);
+
+ if(!isThumbWatchMode){
+ ngCommentLength = 0;
+ ngUserLength = 0;
+
+ ngComment.list.forEach(function(hug1:NGInfo, hug2:int, hug3:Array):void{ //MethodID:52, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 79
+ if(hug1.type == NGType.MESSAGE){
+ ngCommentLength++;
+ }else if(hug1.type == NGType.USER_ID){
+ ngUserLength++;
+ }
+ });
+ _logManager.observer.onNGCommentInitialized(ngCommentLength, ngUserLength);
+ }
+
+ EventSequence.current.next();
+ }));
+ this.ngComment.onUpdated.add(function(hug1:Array, hug2:String):void{ //MethodID:54, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 56
+ var hug3:ICommentList = null;
+
+ if(hug2 == NGResponseConstants.UNSERVE) return;
+
+ for each(hug3 in commentListContainer){
+ hug3.serveCommentList();
+ }
+ });
+ }
+
+ private function initializeCommentStorage():void
+ { //MethodID:59, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 106
+ internal var client:MessageServerClient; //slotID:1
+
+ client = null;
+ this.nicoViewControllerClient.commentStorageEvents = null;
+ client = new MessageServerClient(this.getFLV.messageServerURL);
+
+ client.connectionLost.add(function(hug1:String):void{ //MethodID:56, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
+ systemMessage.informln(__MSG__("コメント受信中にエラーが発生: ") + hug1);
+ });
+ client.connected.add(function():void{ //MethodID:57, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
+ systemMessage.informln(__MSG__("コメントサーバーへの接続準備完了"));
+ });
+
+ if(this._logManager) this._logManager.observer.onThreadLoadStarted();
+ client.connect(EventSequence.bind(function(hug1:Boolean, hug2:String):void{ //MethodID:58, LocalCount= 3 , MaxScope= 0, MaxStack= 8, CodeLength= 131
+ commentStorage = new CommentStorage(client, keygen, initializeInfo.userID, initializeInfo.isPremium, flashVars, getFLV);
+
+ if((playerInfo.leafFilter.indexOf(getFLV.messageServerURL) != (-1)) || (flashVars.leafSwitch == NicoFlashVars.LEAF_DISABLE)) commentStorage.forceLeafOff = true;
+
+ nicoViewControllerClient.commentStorageEvents = new CommentStorageEvents(commentStorage);
+
+ if(_logManager) _logManager.observer.onThreadLoadCompleted(hug1);
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializeGetChecklist():void
+ { //MethodID:61, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 102
+ internal var apiCacheProxy:APICacheProxy; //slotID:1
+ internal var callback:Function; //slotID:2
+ internal var noLoad:Boolean; //slotID:3
+
+ apiCacheProxy = new APICacheProxy(new URLRequest(this.configure.GET_CHECKLIST_URL), 0, 0, this.initializeInfo.userID);
+ callback = EventSequence.bind(function(hug1:Boolean):void{ //MethodID:60, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 11
+ EventSequence.current.next();
+ });
+
+ noLoad = !CrossSharedObject.isPersistable;
+ this.getChecklist = new GetChecklist(callback, apiCacheProxy, this.flashVars.watchFlashVars.useChecklistCache, noLoad);
+ }
+
+ private function initializeHiroba():void
+ { //MethodID:69, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 380
+ this._logManager.observer.onHirobaInitializeStarted();
+
+ if((this.getFLV.hirobaHost == null) || (this.getFLV.hirobaPort == 0) || (this.getFLV.hirobaThreadID == null) || this.flashVars.watchFlashVars.noHiroba || this.flashVars.isNoComment || this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.watchFlashVars.isEditMode){
+ if(!(((this.getFLV.hirobaHost != null) && (this.getFLV.hirobaPort != 0) && !(!(this.getFLV.hirobaThreadID == null))) && (this.flashVars.watchFlashVars.noHiroba || this.flashVars.isNoComment || this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.watchFlashVars.isEditMode))) this._logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_INFO_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
+ EventSequence.current.next();
+
+ return;
+ }
+
+ if(this.nicoViewControllerClient.hirobaPlayer){
+ this._logManager.observer.onHirobaInitializeAborted();
+ EventSequence.current.next();
+
+ return;
+ }
+
+ this.hirobaPlayer = new HirobaPlayer(this.playerConfig, this.initializeInfo.isPremium);
+ this.nicoViewControllerClient.hirobaPlayer = this.hirobaPlayer;
+
+ HTTPUtils.loadSWF(function(hug1:Sprite):void{ //MethodID:68, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 276
+ internal var swf:Sprite; //slotID:1
+ internal var connector:IHirobaConnector; //slotID:2
+ internal var succeeded:Boolean; //slotID:3
+ internal var client:HirobaConnectorClient; //slotID:4
+ internal var onConnectionFailed:Function; //slotID:5
+ internal var onDisconnected:Function; //slotID:6
+ internal var onConnected:Function; //slotID:7
+
+ connector = null;
+ client = null;
+ onConnectionFailed = null;
+ onDisconnected = null;
+ onConnected = null;
+ swf = hug1;
+ onConnectionFailed = function(hug1:HirobaErrorEvent):void{ //MethodID:63, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 37
+ systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
+ _logManager.observer.onHirobaConnected(false, hug1.text, hug1.referer);
+ };
+
+ onDisconnected = function(hug1:HirobaErrorEvent):void{ //MethodID:64, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 36
+ systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
+ _logManager.observer.onHirobaDisconnected(hug1.text, hug1.referer);
+ };
+
+ onConnected = function(hug1:Boolean, hug2:String, hug3:String):void{ //MethodID:66, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 243
+ internal var succeeded:Boolean; //slotID:1
+ internal var status:String; //slotID:2
+ internal var referer:String; //slotID:3
+
+ succeeded = hug1;
+ status = hug2;
+ referer = hug3;
+
+ if((referer == HirobaEventReferer.HIROBA_AGENT) && succeeded){
+ _logManager.observer.onHirobaConnected(true, status, referer);
+
+ return;
+ }
+
+ if(!succeeded){
+ systemMessage.informln(__MSG__("広場の接続に失敗"));
+ _logManager.observer.onHirobaConnected(false, status, referer);
+
+ return;
+ }
+
+ systemMessage.informln(__MSG__("広場の接続に成功"));
+ _logManager.observer.onHirobaConnected(true, status, referer);
+ hirobaPlayer.onClickedLink.add(function():void{ //MethodID:65, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
+ if(videoController) videoController.stop();
+ });
+
+ hirobaPlayer.connector = connector;
+
+ if(commentRouter) commentRouter.addHiroba(hirobaPlayer);
+
+ if(marqueeClient && marqueeClient.marqueePlayer) client.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
+
+ hirobaConnectorClient = client;
+
+ nicoViewController.onHirobaInitialized();
+ };
+
+ connector = IHirobaConnector(swf);
+ succeeded = (connector != null);
+
+ if(!succeeded){
+ systemMessage.informln(__MSG__("広場の接続に失敗"));
+ _logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_CONNECTOR_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
+
+ return;
+ }
+
+ client = new HirobaConnectorClient(new HirobaMessageServerInfo(getFLV, configure.GETFLV_URL, getGetFLVAPIParams()), initializeInfo.userID, keygen, function():Number{ //MethodID:62, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 25
+ return (playerConfig.isMute ? 0 : playerConfig.volume);
+ });
+
+ client.checkList = getChecklist;
+
+ connector.initialize(client);
+ connector.addEventListener(HirobaErrorEvent.CONNECTION_FAIL, onConnectionFailed);
+ connector.addEventListener(HirobaErrorEvent.DISCONNECTED, onDisconnected);
+ connector.addEventListener(HirobaEvent.CLICKED_LINK, function(hug1:Event):void{ //MethodID:67, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 15
+ if(videoController) videoController.stop();
+ });
+ connector.connect(onConnected);
+ }, this.configure.HIROBACONNECTOR_SWF_URL, {v:this.playerVersion.hirobaconnector});
+ EventSequence.current.next();
+ }
+
+ private function prepareVideo():void
+ { //MethodID:71, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 570
+ internal var videoWidth:int; //slotID:1
+ internal var videoHeight:int; //slotID:2
+
+ this.nicoViewControllerClient.video = null;
+ this.nicoViewControllerClient.videoController = null;
+
+ if(!this.videoLayerManager){
+ this.videoLayerManager = new VideoLayerManager(this.nicoViewController.videoBase, this.playerConfig.aspectRatio);
+
+ if(this.playerConfig.deepenedComment){
+ ObjectUtils.callLater(function():void{ //MethodID:70, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
+ videoLayerManager.deepenComment();
+ });
+ }
+
+ this.nicoViewControllerClient.videoLayerManager = this.videoLayerManager;
+ }else{
+ this.videoLayerManager.refreshLayers();
+ }
+
+ if(!this.pluginClient.hasInitialized("videoLayerManager")) this.pluginClient.setProperty("videoLayerManager", this.videoLayerManager);
+
+ videoWidth = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
+ videoHeight = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT);
+
+ if(this.video && this.video.isInitialized){
+ this.video.close();
+
+ this.video = null;
+ }
+
+ this.video = new VideoWrapper(this.videoLayerManager.videoLayer, this.getFLV, this.configure, this.flashVars, videoWidth, videoHeight);
+ this.nicoViewControllerClient.video = this.video;
+ this.videoController = new VideoController(this.video, this.playerConfig, this.initializeInfo.isPremium, this._isPlaylist);
+ this.nicoViewControllerClient.videoController = this.videoController;
+
+ if(this._logManager){
+ this.video.onVideoLoadComplete.add(this._logManager.observer.onVideoLoadCompleted);
+ this.video.onVideoBufferingStarted.add(this._logManager.observer.onVideoBufferingStarted);
+ }
+
+ if(this.playlistController) this.playlistController.videoController = this.videoController;
+
+ if(!this.pluginClient.hasInitialized("videoController")) this.pluginClient.setProperty("videoController", this.videoController);
+
+ if(this._onChangedVideoStatus != null) this.video.onChangedVideoStatus.add(this._onChangedVideoStatus);
+
+ if(this.vposWatcher) this.vposWatcher.kill();
+
+ this.vposWatcher = new VposWatcher(this.video);
+
+ if(this.videoLoadGuardian != null) this.videoLoadGuardian.destroy();
+
+ this.videoLoadGuardian = new VideoLoadGuardian(this.video, this.initializeInfo.isPremium);
+
+ if(this.nicoViewControllerClient.videoLoadWatcher == null) this.nicoViewControllerClient.videoLoadWatcher = new VideoLoadWatcher();
+ EventSequence.current.next();
+ }
+
+ private function prepareCommentLists():void
+ { //MethodID:73, LocalCount= 2 , MaxScope= 2, MaxStack= 12, CodeLength= 597
+ internal var normalThreadID:String; //slotID:1
+ internal var leafMode:Boolean; //slotID:2
+ internal var clear:Function; //slotID:3
+ internal var filtered:CommentPoolContainer; //slotID:4
+
+ filtered = null;
+ clear = function():void{ //MethodID:72, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 150
+ nicoViewControllerClient.commentListContainer = null;
+ nicoViewControllerClient.nicoSClient = null;
+
+ if(nicosClient) nicosClient.clear();
+
+ if(nicosPlayer) nicosPlayer.clear();
+
+ nicosClient = null;
+ privateCommentList = null;
+ commentList = null;
+ nicoSCommentList = null;
+ ownerCommentList = null;
+ localCommentList = null;
+
+ delete commentListContainer[CommentConstants.CL_PRIVATE];
+ delete commentListContainer[CommentConstants.CL_MAIN];
+ delete commentListContainer[CommentConstants.CL_NICOS];
+ delete commentListContainer[CommentConstants.CL_OWNER];
+ delete commentListContainer[CommentConstants.CL_LOCAL];
+ };
+
+ clear();
+
+ normalThreadID = this.getFLV.threadID;
+ leafMode = (((this.playerInfo.leafFilter.indexOf(this.getFLV.messageServerURL) != (-1)) || (this.flashVars.leafSwitch != NicoFlashVars.LEAF_DISABLE)) && this.playerConfig.isEnabledLeafMode);
+
+ if(this.flashVars.isCommunityThread){
+ this.privateCommentList = new CommentList(this.getFLV.threadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_PRIVATE, this.flashVars.isMymemory, leafMode);
+ this.commentListContainer[CommentConstants.CL_PRIVATE] = this.privateCommentList;
+ this.mainCommentListName = CommentConstants.CL_PRIVATE;
+ normalThreadID = this.getFLV.optionalThreadID;
+ }
+
+ if(this.getFLV.nicoSThreadID){
+ this.nicoSCommentList = new CommentList(this.getFLV.nicoSThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_NICOS);
+ this.commentListContainer[CommentConstants.CL_NICOS] = this.nicoSCommentList;
+ }
+
+ this.commentList = new CommentList(normalThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_MAIN, this.flashVars.isMymemory, leafMode);
+ this.commentListContainer[CommentConstants.CL_MAIN] = this.commentList;
+
+ if(this.flashVars.hasOwnerThread){
+ this.nicosClient = new NicoSClient(this.nicosPlayer, this.videoController, this.videoLayerManager, this.jumper, this.flashVars, null, null, this.nicoSCommentList, this.playerConfig, this._isPlaylist);
+ this.ownerCommentList = new OwnerCommentList(normalThreadID, this.commentStorage, this.nicosClient, new RegisterBGM(this.configure));
+ this.commentListContainer[CommentConstants.CL_OWNER] = this.ownerCommentList;
+ }
+
+ this.localCommentList = new LocalCommentList();
+ this.commentListContainer[CommentConstants.CL_LOCAL] = this.localCommentList;
+ this.nicoViewControllerClient.commentListContainer = this.commentListContainer;
+ this.nicoViewControllerClient.nicoSClient = this.nicosClient;
+
+ if(!this.pluginClient.hasInitialized("commentListContainer")) this.pluginClient.setProperty("commentListContainer", this.commentListContainer);
+
+ if(!this.nicoViewControllerClient.filteredCommentPoolContainers) this.nicoViewControllerClient.filteredCommentPoolContainers = [];
+
+ if(!this.pluginClient.hasInitialized("filteredCommentPoolContainer")){
+ filtered = new CommentPoolContainer();
+
+ this.pluginClient.setProperty("filteredCommentPoolContainer", filtered);
+ this.nicoViewControllerClient.filteredCommentPoolContainers.push(filtered);
+ }
+
+ EventSequence.current.next();
+ }
+
+ private function initializeModelAndView():void
+ { //MethodID:74, LocalCount= 3 , MaxScope= 1, MaxStack= 9, CodeLength= 768
+ var hug2:GetRelation = null;
+ this.nicoViewControllerClient.commentLayer = null;
+ this.nicoViewControllerClient.commentLayerView = null;
+ this.nicoViewControllerClient.commentViewTransformer = null;
+ this.nicoViewControllerClient.jumpMessageLayer = null;
+ this.nicoViewControllerClient.replacer = null;
+ this.nicoViewControllerClient.channelReplacer = null;
+ this.nicoViewControllerClient.deleteFilter = null;
+ this.nicoViewControllerClient.externalClient = null;
+
+ this.initializeCommentLayerView();
+
+ this.nicoViewControllerClient.commentLayer = this.commentLayer;
+ this.nicoViewControllerClient.commentLayerView = this.commentLayerView;
+ this.nicoViewControllerClient.commentViewTransformer = this.commentViewTransformer;
+
+ if(this.nicosClient){
+ this.nicosClient.commentLayerView_ = this.commentLayerView;
+ this.nicosClient.commentLayer_ = this.commentLayer;
+ }
+
+ this.jumpMsgLayer = new JumpMessageLayer(this.videoLayerManager.jumpMsgLayer);
+ this.nicoViewControllerClient.jumpMessageLayer = this.jumpMsgLayer;
+ this.replacer = new Replacer(this.getFLV.ownerFilter, this.configure.GET_CONFIGURE_NGWORD, this.flashVars.watchID, this.initializeInfo.isNGMaintenance, (this.isThumbWatchMode ? null : this.flashVars.watchFlashVars.csrfToken));
+ this.nicoViewControllerClient.replacer = this.replacer;
+
+ if(this.getFLV.channelFilter){
+ this.channelReplacer = new ChannelReplacer(this.getFLV.channelFilter);
+ this.nicoViewControllerClient.channelReplacer = this.channelReplacer;
+ }
+
+ var hug1:Object = {};
+
+ if(this.commentList) hug1[CommentConstants.CL_MAIN] = this.commentList;
+
+ if(this.nicoSCommentList) hug1[CommentConstants.CL_NICOS] = this.nicoSCommentList;
+
+ if(this.privateCommentList) hug1[CommentConstants.CL_PRIVATE] = this.privateCommentList;
+
+ this.deleteFilter = new DeleteFilter(hug1, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isEditMode));
+ this.nicoViewControllerClient.deleteFilter = this.deleteFilter;
+
+ if(!this.audioShutter){
+ this.audioShutter = new ControllerShutter(AudioShutterConstants.END_OF_ENUM, "AUDIO");
+ this.nicoViewControllerClient.audioShutter = this.audioShutter;
+
+ this.pluginClient.setProperty("audioShutter", this.audioShutter);
+ }
+
+ if(!this.externalClient) this.externalClient = new ExternalClient();
+ this.externalClient.initialize(this.flashVars.watchID, this.video, this.videoController, this.playerConfig, this.initializeInfo.isPremium, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isOwnerThreadEditMode), (this.getFLV.nicoSThreadID != null));
+
+ this.externalClient.localCommentList = this.localCommentList;
+ this.externalClient.ownerCommentList = this.ownerCommentList;
+ this.nicoViewControllerClient.externalClient = this.externalClient;
+
+ this.video.onChangedVideoStatus.add(this.externalClient.onChangeVideoStatus);
+
+ if(!this.commentShutter){
+ this.commentShutter = new ControllerShutter(CommentShutterConstants.END_OF_ENUM, "COMMENT");
+ this.nicoViewControllerClient.commentShutter = this.commentShutter;
+
+ if(this.playlistController != null) this.playlistController.commentShutter = this.commentShutter;
+ }
+
+ if(this.nicosClient){
+ this.nicosClient.audioShutter = this.audioShutter;
+ this.nicosClient.commentShutter = this.commentShutter;
+ }
+
+ if(!this.flashVars.forceRelationInvisible){
+ hug2 = new GetRelation(HTTPUtils.loadXML, this.configure.GETRELATION_URL, this.flashVars.watchID, this.flashVars.category);
+ this.relatedList = new RelatedVideoList(hug2, this.flashVars.noRelatedVideo);
+ this.nicoViewControllerClient.relatedList = this.relatedList;
+ }
+
+ EventSequence.current.next();
+ }
+
+ private function initializeCommentRouter():void
+ { //MethodID:78, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 271
+ this.nicoViewControllerClient.lockedComment = null;
+ this.nicoViewControllerClient.commentRouter = null;
+
+ if(this.isThumbWatchMode && !this.flashVars.thumbFlashVars.thumbComment){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ this.lockedComment = new LockedComment(this.getFLV.threadID, this.mainCommentListName, this.flashVars.watchFlashVars.isPostLocked, this.flashVars.watchFlashVars.isEditMode);
+ this.nicoViewControllerClient.lockedComment = this.lockedComment;
+ this.deleteFilter.lockedComment = this.lockedComment;
+ this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, this.lockedComment, this.nicosClient, this.initializeInfo.isPremium, this.channelReplacer);
+
+ this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{ //MethodID:75, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 580
+ var hug2:String = hug1;
+
+ switch(hug2){
+ case CommentRouter.ERROR_POST_184:
+ systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません"));
+ break;
+ case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
+ systemMessage.alert(__MSG__("入力された@コメントは、以下のどちらかの理由で使用できません。<br />") + __MSG__("・存在しない<br />") + __MSG__("・投稿者以外は使えない<br />") + __MSG__("現在、動画閲覧者が使用できるのは、") + "<a href=\"http://info.nicovideo.jp/help/player/script/90.html#s01\" target=\"_blank\">" + __MSG__("@ボタン(閲覧者用)") + "</a>、<a href=\"http://info.nicovideo.jp/help/player/script/90.html#s02\" target=\"_blank\">" + __MSG__("@ピザ") + "</a>" + __MSG__("の2つです。"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_ONCE:
+ systemMessage.informComment(__MSG__("@ボタンは、1視聴につき1つまでしかご利用になれません"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
+ systemMessage.alert(__MSG__("@ボタンは現在[[a_tag_open]]プレミアム会員[[a_tag_close]]のみ使用可能です。", "<a href=\"http://www.nicovideo.jp/?p=premium_top&sec=at_button\" target=\"_blank\">", "</a>"));
+ break;
+ case CommentRouter.ERROR_POST_HIROBA:
+ systemMessage.informComment(__MSG__("広場では@ボタンは使えません。"));
+ break;
+ case CommentRouter.ERROR_POST_INITIALIZE:
+ systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
+ systemMessage.informComment(__MSG__("@ボタンの設定項目が足りません。"));
+ break;
+ case CommentRouter.ERROR_POST_SAME_COMMENT:
+ systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
+ break;
+ case CommentRouter.ERROR_POST_CHANNEL_FILTER:
+ systemMessage.informComment(__MSG__("入力されたコメントはこの動画では投稿できません。"));
+ break;
+ case CommentRouter.ERROR_POST_AT_COMMENT_DISABLED:
+ systemMessage.informComment(__MSG__("この動画では@コメントは使えません。"));
+ break;
+ case CommentRouter.ERROR_POST_COMMAND_DISABLED:
+ systemMessage.informComment(__MSG__("この動画ではコマンドは使えません。"));
+ break;
+ default:
+ break;
+ }
+ });
+
+ if(this.flashVars.watchFlashVars.noAtPizza || this.isThumbWatchMode){
+ this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:76, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
+ if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
+ });
+ }else{
+ this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:77, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 40
+ if(hug1.macroName == "ピザ"){
+ navigateToURL(new URLRequest(configure.PIZZA_URL), "_blank");
+ videoController.stop();
+ }
+ });
+ }
+
+ if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
+
+ this.nicoViewControllerClient.commentRouter = this.commentRouter;
+ EventSequence.current.next();
+ }
+
+ private function initializeModelAndView4Watch():void
+ { //MethodID:82, LocalCount= 3 , MaxScope= 2, MaxStack= 10, CodeLength= 1164
+ internal var linkURL:String; //slotID:1
+ internal var pageURL:String; //slotID:2
+ internal var messageHTML:String; //slotID:3
+ internal var onMarqueePlayerLoaded:Function; //slotID:4
+ internal var isUseVideoEnder:Boolean; //slotID:5
+
+ linkURL = null;
+ pageURL = null;
+ messageHTML = null;
+ isUseVideoEnder = false;
+ this.nicoViewControllerClient.timeMachine = null;
+ this.nicoViewControllerClient.marqueeClient = null;
+ this.nicoViewControllerClient.frameRateBooster = null;
+ this.timeMachine = new TimeMachine(new Date(parseInt(this.getFLV.threadID, 10) * 1000));
+ this.nicoViewControllerClient.timeMachine = this.timeMachine;
+
+ if(!this.frameRateBooster) this.frameRateBooster = new FrameRateBooster(stage);
+
+ this.nicoViewControllerClient.frameRateBooster = this.frameRateBooster;
+
+ if(this._isPlaylist && (this._shutterKeyLastClosed >= 0)){
+ this.commentShutter.open(this._shutterKeyLastClosed);
+
+ this._shutterKeyLastClosed = -1;
+ }
+
+ if(this.flashVars.isMymemory){
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_MYMEMORY, __MSG__("マイメモリーはコメントできません"));
+ }else if(!this.getFLV.commentExpire && !this.flashVars.watchFlashVars.isOwnerThreadEditMode){
+ if(this.flashVars.watchFlashVars.commentListPublicStatus == CommentListPublicStatus.MEMBER_ONLY){
+ linkURL = (this.configure.CHANNEL_URL + (this.flashVars.isChannel ? "channel" : "community") + "/" + this.flashVars.communityGlobalID);
+
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_CHANNEL_COMMUNITY, (("<a href=\"" + linkURL + "\"><u>") + (this.flashVars.isChannel ? __MSG__("コメントするにはチャンネルに入会してください") : __MSG__("コメントするにはコミュニティに入会してください")) + "</u></a>"));
+ }else{
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_OTHER, "");
+ }
+ }else if(this.flashVars.watchFlashVars.isCommentShuttered){
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_LOCKED, __MSG__("あなたはコメントを禁止されています"));
+ }
+
+ if(!CrossSharedObject.isPersistable){
+ if(!this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode) this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_NOSHAREDOBJECT, ("<p>" + __MSG__("ローカル記憶領域が使用できないため、コメント機能を制限をしています") + "</p>"));
+
+ if(!this._isShowedDialog){
+ this._isShowedDialog = true;
+
+ this.systemMessage.informln(__MSG__("SharedObjectの初期に失敗しました。"));
+
+ pageURL = this._playerPageMyselfURL;
+ messageHTML = ("<p><b>" + __MSG__("ローカル記憶領域の書き込みが出来ません。") + "</b></p>" + "<p>" + __MSG__("NG設定、音量設定の保存、ニコニコニュース、RSS、") + "<br>" + __MSG__("生放送開始のお知らせ、ユーザーが設定した@CMなど、") + "<br>" + __MSG__("プレーヤーの機能がご利用出来ない状態です。") + "<br>" + __MSG__("プレーヤーの各機能を有効にするため、Flashの設定を変更してください。") + "<br>" + "<a href=\"" + this.configure.NOSO_URL + "\" target=\"_blank\">ローカル記憶領域の設定を変更する方法について</a>" + "</p>");
+
+ this.systemMessage.alert(messageHTML);
+ }
+ }
+
+ if(this.flashVars.watchFlashVars.isEditMode){
+ this.deleteFilter.onFinishedEdit = function(hug1:Boolean):void{ //MethodID:79, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 144
+ var hug3:String = null;
+ var hug4:String = null;
+ var hug2:String = _playerPageMyselfURL;
+
+ if(!hug1){
+ if(flashVars.isMymemory){
+ hug3 = StringUtils.joinQuery(hug2, {edit:"mymemory"});
+ hug4 = ("<b>マイメモリーの編集に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
+ }else{
+ hug3 = StringUtils.joinQuery(hug2, {edit:"comment"});
+ hug4 = ("<b>編集の保存に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
+ }
+
+ systemMessage.alert(hug4);
+
+ return;
+ }
+
+ navigateToURL(new URLRequest(hug2), "_self");
+ };
+ }
+
+ if(!this.flashVars.watchFlashVars.isNoMarquee && !this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode && CrossSharedObject.isPersistable){
+ onMarqueePlayerLoaded = function():void{ //MethodID:80, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 94
+ if(nicosClient) nicosClient.marqueePlayer = INicoMarqueePlayer(marqueeClient.marqueePlayer);
+
+ if(hirobaConnectorClient) hirobaConnectorClient.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
+
+ if(playlistController) playlistController.marqueeClient = marqueeClient;
+ pluginClient.setProperty("marqueeClient", marqueeClient);
+ commentRouter.addMarqueePlayer(marqueeClient.marqueePlayer);
+ };
+
+ if(!this.marqueeClient) this.marqueeClient = new MarqueeClient(this.configure.MARQUEE_PLAYER_URL, this.playerVersion, this.playerInfo, this.nicoViewController.marqueeBase, this.videoLayerManager, this.playerConfig, this.initializeInfo, onMarqueePlayerLoaded);
+
+ if(this.nicosClient) this.nicosClient.marqueePlayer = INicoMarqueePlayer(this.marqueeClient.marqueePlayer);
+
+ this.marqueeClient.videoController = this.videoController;
+ this.marqueeClient.flashVars = this.flashVars;
+ this.nicoViewControllerClient.marqueeClient = this.marqueeClient;
+ }
+
+ if(!this.flashVars.watchFlashVars.isNoAppli && !this.pluginClient.hasInitialized("videoDetail")) this.pluginClient.setProperty("videoDetail", new VideoDetail(this.flashVars.category, this.flashVars.videoDetail));
+ function():void{ //MethodID:81, LocalCount= 5 , MaxScope= 0, MaxStack= 23, CodeLength= 193
+ if(_isPlaylist) return;
+
+ var hug1:* = new RemoconNotifier(configure.REMOCON_ALERT_SWF_URL + "?" + playerVersion.remoconAlert);
+ var hug2:* = new RemoconFullScreenKeeper(playerConfig, externalClient);
+ var hug3:* = new RemoconPlayerStateObserver(externalClient.udpateRemoconState, hug1, hug2);
+
+ commentRouter.onCommentPostErorr.add(hug3.onCommentRouterPostError);
+
+ var hug4:* = new RemoconClient(hug3, hug1, RemoconState.instance);
+
+ RemoconReceiver.initialize({videoController:videoController, playerConfig:playerConfig, commentRouter:commentRouter, isPremium:initializeInfo.isPremium, stateObserver:hug3, notifier:hug1, userID:initializeInfo.userID, userNasme:initializeInfo.nickname, commentShutter:commentShutter, audioShutter:audioShutter, fullScreenKeeper:hug2}, defineRemoconMethods);
+ hug2.start();
+
+ nicoViewControllerClient.remoconClient = hug4;
+ }();
+
+ this.nicoViewControllerClient.defaultMylistAppender = new DefaultMylistAppender(HTTPUtils.loadJSON, this.configure.MYLIST_ADD_API_URL, this.getFLV.threadID, this.flashVars.watchFlashVars.noDeflistAdd, this.flashVars.watchFlashVars.csrfToken);
+
+ if(this.nicoViewControllerClient.videoenderTesterConfig == null){
+ if(this._isPlaylist){
+ isUseVideoEnder = (this.playlistFlashVars && this.playlistFlashVars.useVideoEnder);
+ }else{
+ isUseVideoEnder = (this.flashVars.watchFlashVars && this.flashVars.watchFlashVars.useVideoEnder);
+ }
+
+ this._videoenderTesterConfig = new VideoenderTesterConfig(isUseVideoEnder);
+ this.nicoViewControllerClient.videoenderTesterConfig = this._videoenderTesterConfig;
+ }
+
+ EventSequence.current.next();
+ }
+
+ private function initializeSponsorVideo():void
+ { //MethodID:85, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 169
+ internal var url:String; //slotID:1
+ internal var info:GetSponsorInfo; //slotID:2
+
+ info = null;
+ this.nicoViewControllerClient.getSponsorInfo = null;
+
+ if(!this.isThumbWatchMode && (this.flashVars.isMymemory || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode)){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ url = StringUtils.joinQuery(this.configure.GETSPONSOR_API_URL, {limit:"4", videoid:this.flashVars.originalVideoID});
+ info = new GetSponsorInfo(url, function(hug1:Boolean):void{ //MethodID:84, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 213
+ internal var succeeded:Boolean; //slotID:1
+ internal var layer:*; //slotID:2
+ internal var userSponsorSWFURL:*; //slotID:3
+ internal var otherSponsorLink:*; //slotID:4
+ internal var youAlsoLink:*; //slotID:5
+
+ layer = undefined;
+ otherSponsorLink = undefined;
+ youAlsoLink = undefined;
+ succeeded = hug1;
+
+ if(!succeeded || (info.sponsorInfoList.length == 0)) return;
+
+ layer = videoLayerManager.createOptionalLayer(VideoLayerManager.OPTIONAL_LAYER_SPONSORVIDEOLAYER);
+ userSponsorSWFURL = StringUtils.joinQuery(configure.USERSPONSOR_MOVIE_URL, {t:playerVersion.userSponsorMovie});
+ otherSponsorLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player");
+ youAlsoLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player_also");
+
+ if(video.hasLoaded){
+ HTTPUtils.loadSWF(function(hug1:*):void{ //MethodID:83, LocalCount= 2 , MaxScope= 0, MaxStack= 8, CodeLength= 76
+ if(hug1){
+ userSponsorVideo = IUserSponsorVideo(hug1);
+
+ userSponsorVideo.initialize(new UserSponsorVideoClient(info, layer, otherSponsorLink, youAlsoLink, ICapturableVideoContainer(videoController.videoWrapper), vposWatcher));
+ video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
+ }
+ }, userSponsorSWFURL, {});
+ }else{
+ video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
+ }
+ });
+
+ this.nicoViewControllerClient.getSponsorInfo = info;
+
+ EventSequence.current.next();
+ }
+
+ private function loadConfirm():void
+ { //MethodID:87, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 24
+ this.videoLoadGuardian.loadStart(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:86, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 144
+ var hug2:* = undefined;
+
+ if(hug1){
+ EventSequence.current.next();
+ }else if(!isThumbWatchMode){
+ if(_isPlaylist && playlistController){
+ playlistController.onError(PlaylistErrorManager.VIDEO_LOAD_STOP);
+ }else{
+ hug2 = _playerPageMyselfURL;
+
+ SystemMessage.instance.alert(("<p><b>" + __MSG__("動画の読み込みができません。") + "</b></p>" + "<p>" + __MSG__("別のタブかウィンドウで、動画をいくつか読み込み中です。<br />") + __MSG__("読み込みが完了してから再度アクセスしてください。<br />") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードする</a>", hug2) + "</p>");
+ }
+ }
+ }));
+ }
+
+ private function initializePlugin():void
+ { //MethodID:91, LocalCount= 2 , MaxScope= 2, MaxStack= 9, CodeLength= 208
+ internal var loader:ApplibarLoader; //slotID:1
+
+ loader = null;
+
+ if(this.flashVars.watchFlashVars.isNoAppli || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode || !CrossSharedObject.isPersistable){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ loader = new ApplibarLoader(this.configure.APPLIBAR_URL, {v:this.playerVersion.applibar}, this.initializeInfo.userID, this.flashVars.watchFlashVars.bootApp, this.playerConfig, this.flashVars.watchFlashVars.appliInstalled, this.flashVars.watchFlashVars.isAppliPromotion);
+
+ loader.onLoaded.add(function(hug1:Boolean):void{ //MethodID:88, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 26
+ if(!hug1) return;
+
+ nicoViewControllerClient.applibarLoader = loader;
+
+ loader.setPluginClient(pluginClient);
+ });
+ loader.onPageOpen.add(function():void{ //MethodID:89, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 18
+ if(videoController.isPlaying) videoController.stop();
+ });
+ this._playlistSequences.forEach(function(hug1:Function, hug2:int, hug3:Array):Boolean{ //MethodID:90, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 22
+ if(hug1 == initializePlugin){
+ _playlistSequences.splice(hug2, 1);
+
+ return false;
+ }
+
+ return true;
+ });
+ EventSequence.current.next();
+ }
+
+ private function _delayVideo():void
+ { //MethodID:93, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 101
+ internal var delay:Number; //slotID:1
+ internal var timer:Timer; //slotID:2
+ internal var handler:Function; //slotID:3
+
+ timer = null;
+ handler = null;
+ delay = PlayDelay.getPlayDelayTime(this.initializeInfo.isPremium, this.isThumbWatchMode);
+ timer = new Timer(delay, 1);
+ handler = EventSequence.bind(function():void{ //MethodID:92, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 40
+ timer.stop();
+ timer.reset();
+ timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handler);
+ EventSequence.current.next();
+ });
+ timer.addEventListener(TimerEvent.TIMER_COMPLETE, handler);
+ timer.start();
+ }
+
+ private function _loadVideo():void
+ { //MethodID:97, LocalCount= 5 , MaxScope= 2, MaxStack= 10, CodeLength= 779
+ internal var barrier:EventBarrier; //slotID:1
+ internal var succeeded_all:Boolean; //slotID:2
+ internal var bgmNeeded:Boolean; //slotID:3
+ internal var bgmVideos:Object; //slotID:4
+ internal var cmVideos:Object; //slotID:5
+ internal var bgmInfo:BGMVideoInfo; //slotID:6
+ internal var bgmVideo:IVideo; //slotID:7
+ internal var container:Sprite; //slotID:8
+
+ succeeded_all = false;
+ bgmNeeded = false;
+ bgmVideos = null;
+ cmVideos = null;
+ bgmInfo = null;
+ bgmVideo = null;
+ container = null;
+
+ if(this._logManager) this._logManager.observer.onVideoLoadStarted();
+
+ barrier = new EventBarrier();
+ succeeded_all = true;
+
+ this.systemMessage.informln(__MSG__("動画の読み込みを開始"));
+
+ if((this.getFLV.videoProtocol == "rtmp") || (this.getFLV.videoProtocol == "rtmpe") || (this.getFLV.videoProtocol == "rtmpt") || (this.getFLV.videoProtocol == "rtmpte")) this.systemMessage.informln(__MSG__("動画に接続"));
+
+ this.video.isRetryable = false;
+
+ this.video.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:94, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 110
+ succeeded_all = (succeeded_all && hug1);
+
+ if(!hug1 && !isThumbWatchMode && _logManager) _logManager.observer.onVideoLoadErrorOccurred();
+
+ if(_startVposConfig.halfwayStartEnabled) _startVposConfig.judgebyVideoLength(video);
+
+ if(!_startVposConfig.halfwayStartEnabled){
+ nicoViewController.initVideoEventPipe(vposWatcher);
+ nicoViewController.onVideoInitialized(hug1);
+ }
+
+ _videoLoadSucceeded = hug1;
+ }));
+
+ bgmNeeded = Boolean(this.BGMVideoInfos.length != 0);
+
+ bgmVideos = {};
+ cmVideos = {};
+
+ if(this.flashVars.watchFlashVars && !this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.thumbFlashVars && this.BGMVideoInfos && bgmNeeded){
+ for each(bgmInfo in this.BGMVideoInfos){
+ if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
+ container = new Sprite();
+
+ container.graphics.beginFill(0);
+ container.graphics.drawRect(0, 0, NicoSConstants.ATBGM_VIDEO_WIDTH, NicoSConstants.ATBGM_VIDEO_HEIGHT);
+ }else{
+ container = new MovieClip();
+
+ container.graphics.beginFill(0);
+ container.graphics.drawRect(0, 0, NicoSConstants.ATCM_VIDEO_WIDTH, NicoSConstants.ATCM_VIDEO_HEIGHT);
+ }
+
+ container.graphics.endFill();
+
+ switch(bgmInfo.movieType){
+ case VideoType.FLV:
+ case VideoType.MP4:
+ bgmVideo = new FLVVideo(bgmInfo.URL, container, -1);
+ break;
+ case VideoType.SWF:
+ bgmVideo = new SWFVideo(bgmInfo.URL, container, NaN, false, "", null, "", bgmInfo.isAS3);
+ break;
+ default:
+ throw new Error("未定義のBGMタイプ:" + bgmInfo.movieType);
+ break;
+ }
+
+ if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
+ bgmVideos[bgmInfo.ID] = bgmVideo;
+ }else{
+ cmVideos[bgmInfo.ID] = bgmVideo;
+ }
+
+ bgmVideo.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:95, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 102
+ if(!succeeded_all) return;
+
+ succeeded_all = (succeeded_all && hug1);
+
+ if(!hug1){
+ if(!isThumbWatchMode) SystemMessage.instance.alert("<p><b>" + __MSG__("引用動画の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("問題解消に向けて努力しております。") + "<br />" + __MSG__("しばらく時間をおいて再度アクセスしてみて下さい。") + "</p>");
+
+ return;
+ }
+ }));
+ }
+ }
+
+ barrier.finish(EventSequence.bind(function():void{ //MethodID:96, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 145
+ var hug1:* = undefined;
+ var hug2:* = undefined;
+ _wholeVideoLoadSucceeded = succeeded_all;
+
+ if(!succeeded_all){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ if(bgmNeeded){
+ hug1 = {};
+
+ for(hug2 in cmVideos){
+ hug1[hug2] = cmVideos[hug2].movieClip;
+ }
+
+ nicosClient.setBGMVideos(bgmVideos, hug1);
+ }
+
+ if(getFLV.deleted == 0) PlayDelay.countUp();
+
+ if(marqueeClient) marqueeClient.load();
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializeLogger():void
+ { //MethodID:98, LocalCount= 1 , MaxScope= 1, MaxStack= 13, CodeLength= 63
+ this._logManager.initialize(this.initializeInfo, this.configure, this.flashVars, this.getFLV, this.playerConfig, this.playerInfo, this, this.isThumbWatchMode, this.video, this, this._isPlaylist, this._videoenderTesterConfig);
+ EventSequence.current.next();
+ }
+
+ private function initializeCommentLists():void
+ { //MethodID:102, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 241
+ internal var barrier:EventBarrier; //slotID:1
+ internal var error:CommentStorageError; //slotID:2
+ internal var init_handler:Function; //slotID:3
+
+ barrier = null;
+ error = null;
+ init_handler = null;
+ init_handler = function(hug1:CommentStorageError):void{ //MethodID:99, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 38
+ var hug2:CommentStorageError = hug1;
+ error = hug2;
+
+ if(!(error || hug2)) return;
+ barrier.finish();
+ };
+
+ if(this.nicosClient) this.nicosClient.setup();
+ this.systemMessage.informln(__MSG__("コメントサーバーへの接続を開始"));
+
+ barrier = new EventBarrier();
+ error = null;
+
+ this.commentList.onCommentPostFinished.add(function(hug1:String, hug2:int, hug3:int):void{ //MethodID:100, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 63
+ var hug4:XMLList = null;
+
+ if(hug2 == MessageServerClient.POST_INVALID_THREAD){
+ hug4 = playerInfo.getThreadError;
+
+ if(hug4 && (hug4.post_invalid_thread != "")) SystemMessage.instance.alert(hug4.post_invalid_thread);
+ }
+ });
+ this.commentList.initialize(barrier.bind(init_handler));
+
+ if(this.flashVars.isCommunityThread) this.privateCommentList.initialize(barrier.bind(init_handler));
+
+ if(this.nicoSCommentList) this.nicoSCommentList.initialize(barrier.bind(init_handler));
+
+ if(this.flashVars.hasOwnerThread) this.ownerCommentList.initialize(barrier.bind(init_handler));
+ barrier.finish(function():void{ //MethodID:101, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 201
+ var hug1:String = null;
+
+ if(error){
+ if(error.isInLowerLayer){
+ systemMessage.informln(__MSG__("コメントサーバーへの接続に失敗"));
+ }else{
+ systemMessage.informln(threadStatusCodeToMessage(error.status));
+ }
+
+ nicoViewController.onCommentListInitialized(false);
+
+ return;
+ }
+
+ systemMessage.informln(__MSG__("コメントサーバーへの接続に成功"));
+
+ if(flashVars.thumbFlashVars && flashVars.thumbFlashVars.thumbComment || !isThumbWatchMode && !flashVars.isMymemory){
+ for(hug1 in commentListContainer){
+ commentRouter.add(hug1, commentListContainer[hug1]);
+ }
+ }
+
+ nicoViewController.onCommentListInitialized(true);
+ setupCommentListEventPipes();
+ });
+ EventSequence.current.next();
+ }
+
+ private function setupCommentListEventPipes():void
+ { //MethodID:103, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 51
+ var hug1:ICommentList = null;
+
+ this.nicoViewController.initCommentEventPipe();
+
+ for each(hug1 in this.commentListContainer){
+ hug1.serveCommentList();
+ }
+ }
+
+ private function beginToPlayVideo():void
+ { //MethodID:108, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 216
+ internal var alreadyBegan:Boolean; //slotID:1
+ internal var begin:Function; //slotID:2
+ internal var vpos:Number; //slotID:3
+
+ alreadyBegan = false;
+ vpos = NaN;
+ begin = function():void{ //MethodID:104, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 129
+ if(_startVposConfig.halfwayStartEnabled) nicoViewController.initVideoEventPipe(vposWatcher);
+
+ if(isThumbWatchMode){
+ if(!flashVars.thumbFlashVars.isP4Mode) videoController.play();
+ }else{
+ videoController.startToPlay(_startVposConfig.isAutoPlay || (nicoViewControllerClient.initializeInfo.isPremium && playerConfig.autoPlay));
+
+ if(!_wholeVideoLoadSucceeded) videoController.stop();
+ }
+
+ if(_startVposConfig.halfwayStartEnabled) nicoViewController.onVideoInitialized(_videoLoadSucceeded);
+ };
+
+ this.externalClient.onPlayerReady();
+
+ if(this.isThumbWatchMode){
+ begin();
+
+ return;
+ }
+
+ if(this.flashVars.watchFlashVars.jumpReturnVideoID){
+ vpos = this.flashVars.watchFlashVars.jumpPlayLength;
+
+ if(this._startVposConfig.halfwayStartEnabled) vpos += this.flashVars.watchFlashVars.jumpVPosPlayFrom;
+
+ vpos *= 1000;
+
+ this.vposWatcher.addWatchPoint(function():void{ //MethodID:106, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 97
+ internal var params:Object; //slotID:1
+
+ params = null;
+
+ videoController.stop();
+
+ params = {};
+
+ if(flashVars.watchFlashVars.jumpVPosReturnTo > 0) params.from = flashVars.watchFlashVars.jumpVPosReturnTo;
+ SystemMessage.instance.informJumpMessage(function():void{ //MethodID:105, LocalCount= 4 , MaxScope= 0, MaxStack= 10, CodeLength= 109
+ var hug1:Object = jumper.tossedObject;
+ var hug2:String = flashVars.watchFlashVars.jumpReturnVideoID;
+ var hug3:Object = {};
+
+ if(hug1 && hug1.jumpHistory) hug3 = hug1.jumpHistory;
+
+ hug3[flashVars.watchID] = true;
+
+ jumper.jump(hug2, params, false, {jumpFrom:flashVars.watchID, jumpHistory:hug3, jumpHash_:(hug1 ? hug1.jumpHash : undefined)});
+ }, (flashVars.watchFlashVars.jumpReturnMessage || __MSG__("元の動画にジャンプします")));
+ }, vpos, 0x7FFFFFFF);
+ }
+
+ if(!this._startVposConfig.halfwayStartEnabled){
+ begin();
+
+ return;
+ }
+
+ alreadyBegan = false;
+
+ EventPipe.serial(new EventChunk(this.video, ["onVideoSeeked"]), this.videoController, EventSequence.bind(function(hug1:String, hug2:Array):EventResult{ //MethodID:107, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 28
+ if(!alreadyBegan){
+ alreadyBegan = true;
+
+ begin();
+ }
+
+ return EventResult.BREAK;
+ }));
+ this.videoController.seek(this._startVposConfig.fromMsec, true);
+ }
+
+ private function initializeCommentLayerView():void
+ { //MethodID:109, LocalCount= 2 , MaxScope= 1, MaxStack= 7, CodeLength= 343
+ this.commentLayer = new CommentLayer(this.videoLayerManager.commentLayer, this.playerConfig, this.initializeInfo.isPremium);
+
+ this.commentLayer.addLayer(CommentLayerID.MAIN);
+ this.commentLayer.addLayer(CommentLayerID.OWNER);
+
+ var hug1:Object = {};
+
+ if(this.flashVars.isCommunityThread){
+ hug1[CommentLayerID.MAIN] = [CommentConstants.CL_PRIVATE, CommentConstants.CL_LOCAL];
+ hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
+ hug1[CommentLayerID.OPTION] = [CommentConstants.CL_MAIN];
+
+ this.commentLayer.addLayer(CommentLayerID.OPTION, 0);
+ this.commentLayer.setOptionalLayer(CommentLayerID.OPTION);
+ }else{
+ hug1[CommentLayerID.MAIN] = [CommentConstants.CL_MAIN, CommentConstants.CL_LOCAL, CommentConstants.CL_NICOS];
+ hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
+ }
+
+ this.commentLayerView = new CommentLayerView(this, this.video, VideoLayerConstants.COMMENT_LAYER_SD_WIDTH, VideoLayerConstants.COMMENT_LAYER_SD_HEIGHT, this.getFLV.videoLength);
+ this.commentViewTransformer = new CommentViewTransformer(hug1, this.commentLayer, this.commentLayerView, (this.nicosClient ? this.nicosClient.player : null));
+
+ if(this.isThumbWatchMode && this.flashVars.thumbFlashVars && this.flashVars.thumbFlashVars.isP4Mode) this.commentViewTransformer.setP4Mode();
+ }
+
+ private function threadStatusCodeToMessage(hug1:int):String
+ { //MethodID:110, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 415
+ var hug2:XMLList = null;
+ var hug3:int = hug1;
+
+ switch(hug3){
+ case MessageServerClient.THREAD_FOUND:
+ return __MSG__("...");
+ case MessageServerClient.THREAD_INVALID:
+ return __MSG__("メッセージサーバーへの接続に失敗");
+ case MessageServerClient.THREAD_NOT_FOUND:
+ hug2 = this.playerInfo.getThreadError;
+
+ if(hug2 && (hug2.thread_not_found != "")) SystemMessage.instance.alert(hug2.thread_not_found);
+
+ return __MSG__("スレッドが見つかりません");
+ case MessageServerClient.THREAD_VERSION:
+ return __MSG__("プレイヤーのバージョンが不正");
+ case MessageServerClient.THREAD_INVALID_ADMINKEY:
+ return __MSG__("AdminKeyが不正");
+ case MessageServerClient.THREAD_TOO_OLD_ADMINKEY:
+ return __MSG__("AdminKeyが失効");
+ case MessageServerClient.THREAD_INVALID_WAYBACKKEY:
+ return __MSG__("WaybackKeyが不正");
+ case MessageServerClient.THREAD_TOO_OLD_WAYBACKKEY:
+ return __MSG__("WaybackKeyが失効");
+ case MessageServerClient.THREAD_INVALID_THREADKEY:
+ return __MSG__("ThreadKeyが不正");
+ case MessageServerClient.THREAD_TOO_OLD_THREADKEY:
+ return __MSG__("ThreadKeyが失効");
+ default:
+ return __MSG__("不明なエラー:code=[code]", hug1);
+ break;
+ }
+ }
+
+ private function _loadThumbViewSWF():void
+ { //MethodID:112, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:111, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 73
+ if(!hug1) throw new Error("NicoPlayer._loadThumbViewSWF: load failure.");
+
+ if(!hug1 is MovieClip) throw new Error("NicoPlayer._loadThumbViewSWF: content is not MovieClip.");
+ addChild(hug1 as DisplayObject);
+
+ (hug1 as DisplayObject).visible = false;
+ nicoViewControllerClient.viewRoot = hug1;
+
+ EventSequence.current.next();
+ }), this.configure.THUMBPLAYER_VIEW_URL, {t:this.playerVersion.thumbplayerView});
+ }
+
+ private function _loadThumbControllerSWF():void
+ { //MethodID:114, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:113, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 67
+ if(!hug1) throw new Error("NicoPlayer._loadThumbControllerSWF: load failure.");
+
+ nicoViewController = INicoViewController(hug1);
+
+ if(!nicoViewController) throw new Error("NicoPlayer._loadThumbControllerSWF: content is not INicoViewController.");
+ nicoViewController.startInit(nicoViewControllerClient);
+ EventSequence.current.next();
+ }), this.configure.THUMBPLAYER_CONTROLLER_URL, {t:this.playerVersion.thumbplayerController});
+ }
+
+ private function _loadThumbVideoInfo():void
+ { //MethodID:116, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 148
+ internal var apiParams:Object; //slotID:1
+
+ apiParams = {};
+ apiParams["as3"] = "1";
+ apiParams["v"] = this.flashVars.watchID;
+ apiParams["k"] = this.flashVars.thumbFlashVars.thumbPlayKey;
+
+ if(this.flashVars.forceLowMode) apiParams["lo"] = "1";
+
+ if(this.flashVars.economyMode) apiParams["eco"] = this.flashVars.economyMode;
+
+ this.getFLV = new GetFLV(this.configure.THUMBWATCH_URL, apiParams, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:115, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 41
+ nicoViewControllerClient.getFLVData = getFLV;
+ initializeInfo = InitializeInfo.getInstance();
+ nicoViewControllerClient.initializeInfo = initializeInfo;
+
+ EventSequence.current.next();
+ }));
+ }
+
+ private function _initializeModelAndViewThumbWatch():void
+ { //MethodID:119, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 118
+ if(this.flashVars.thumbFlashVars.thumbComment){
+ this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, null, this.nicosClient, this.initializeInfo.isPremium);
+
+ this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{ //MethodID:117, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 346
+ var hug2:String = hug1;
+
+ switch(hug2){
+ case CommentRouter.ERROR_POST_184:
+ systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません。"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
+ case CommentRouter.ERROR_POST_BUTTON_ONCE:
+ case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
+ case CommentRouter.ERROR_POST_BUTTON_DISABLED:
+ systemMessage.informComment(__MSG__("@ボタンは、使用できません。"));
+ break;
+ case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
+ systemMessage.informComment(__MSG__("その@コメントは存在しないか、投稿者以外は使えないかのどちらかです。"));
+ break;
+ case CommentRouter.ERROR_POST_INITIALIZE:
+ systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です。"));
+ break;
+ case CommentRouter.ERROR_POST_SAME_COMMENT:
+ systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
+ break;
+ case CommentRouter.ERROR_POST_CHANNEL_FILTER:
+ systemMessage.informComment(__MSG__("入力されたコメントはチャンネルにより規制されています。"));
+ break;
+ default:
+ break;
+ }
+ });
+ this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:118, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
+ if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
+ });
+
+ if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
+
+ this.nicoViewControllerClient.commentRouter = this.commentRouter;
+ }
+
+ EventSequence.current.next();
+ }
+ }
+}
+
+//■script002■
+
+package{
+
+ import jp.nicovideo.nicoplayer.NicoPlayer
+
+ //■class(instance)_index:2
+ public class nicoplayer extends NicoPlayer
+ {
+ //static constructor
+ public static function nicoplayer$cinit()
+ { //MethodID:121, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function nicoplayer()
+ { //MethodID:122, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script003■
+
+package jp.nicovideo.ext.config{
+
+ //■class(instance)_index:3
+ public interface IThumbConfig
+ {
+ //static constructor
+ public static function IThumbConfig$cinit()
+ { //MethodID:124, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get nicovideoURL():String; //MethodID:125, dispID:0
+
+ function get playerURL():String; //MethodID:126, dispID:0
+
+ //constructor
+ public function IThumbConfig(); //MethodID:127, dispID:0
+ }
+}
+
+//■script004■
+
+package jp.nicovideo.nicoplayer.models.flashvars{
+
+ //■class(instance)_index:4
+ public class NicoFlashVars extends Object
+ {
+ //static constructor
+ public static function NicoFlashVars$cinit()
+ { //MethodID:129, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
+ LEAF_NO_LOCK = 0;
+ LEAF_HIDDEN_MENU = 1;
+ LEAF_DISABLE = 2;
+ }
+
+ //static variables/etc.
+ public static const LEAF_NO_LOCK:uint = 0; //slotID:1
+ public static const LEAF_HIDDEN_MENU:uint = 1; //slotID:2
+ public static const LEAF_DISABLE:uint = 2; //slotID:3
+
+ //variables/etc.
+ private var _watchFlashVars:WatchFlashVars; //slotID:0
+ private var _thumbFlashVars:ThumbFlashVars; //slotID:0
+ private var _watchID:String; //slotID:0
+ private var _originalVideoID:String; //slotID:0
+ private var _mylistCount:uint; //slotID:0
+ private var _videoType:String; //slotID:0
+ private var _videoTitle:String = ""; //slotID:0
+ private var _videoDescription:String = ""; //slotID:0
+ private var _isMymemory:Boolean; //slotID:0
+ private var _waitsSWFVideoInit:Boolean; //slotID:0
+ private var _forceLowMode:Boolean; //slotID:0
+ private var _economyMode:String; //slotID:0
+ private var _playerVersionUpdated:String; //slotID:0
+ private var _playerInfoUpdated:String; //slotID:0
+ private var _isCommunityVideo:Boolean; //slotID:0
+ private var _isCommunityThread:Boolean; //slotID:0
+ private var _hasOwnerThread:Boolean; //slotID:0
+ private var _isDeepenedCommentForce:Boolean; //slotID:0
+ private var _isChannel:Boolean; //slotID:0
+ private var _isNoComment:Boolean; //slotID:0
+ private var _importedBGMVideos:Array; //slotID:0
+ private var _category:String; //slotID:0
+ private var _categoryGroup:String; //slotID:0
+ private var _communityID:String; //slotID:0
+ private var _communityGlobalID:String; //slotID:0
+ private var _isNoCommand:Boolean; //slotID:0
+ private var _isNoAtComment:Boolean; //slotID:0
+ private var _isWide:Boolean; //slotID:0
+ private var _countryCode:String; //slotID:0
+ private var _videoDetail:Object; //slotID:0
+ private var _leafSwitch:uint = 0; //slotID:0
+ private var _noRelation:Boolean; //slotID:0
+ private var _noRelatedVideo:Boolean; //slotID:0
+
+ public function get watchID():String
+ { //MethodID:130, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._watchID;
+ }
+
+ internal function set watchID(hug1:String):void
+ { //MethodID:131, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._watchID = hug1;
+ }
+
+ public function get originalVideoID():String
+ { //MethodID:132, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._originalVideoID;
+ }
+
+ internal function set originalVideoID(hug1:String):void
+ { //MethodID:133, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._originalVideoID = hug1;
+ }
+
+ public function get mylistCount():uint
+ { //MethodID:134, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._mylistCount;
+ }
+
+ internal function set mylistCount(hug1:uint):void
+ { //MethodID:135, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._mylistCount = hug1;
+ }
+
+ public function get videoType():String
+ { //MethodID:136, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoType;
+ }
+
+ internal function set videoType(hug1:String):void
+ { //MethodID:137, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoType = hug1;
+ }
+
+ public function get videoTitle():String
+ { //MethodID:138, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoTitle;
+ }
+
+ internal function set videoTitle(hug1:String):void
+ { //MethodID:139, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoTitle = hug1;
+ }
+
+ public function get videoDescription():String
+ { //MethodID:140, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoDescription;
+ }
+
+ internal function set videoDescription(hug1:String):void
+ { //MethodID:141, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoDescription = hug1;
+ }
+
+ public function get isMymemory():Boolean
+ { //MethodID:142, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isMymemory;
+ }
+
+ internal function set isMymemory(hug1:Boolean):void
+ { //MethodID:143, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isMymemory = hug1;
+ }
+
+ public function get waitsSWFVideoInit():Boolean
+ { //MethodID:144, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._waitsSWFVideoInit;
+ }
+
+ internal function set waitsSWFVideoInit(hug1:Boolean):void
+ { //MethodID:145, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._waitsSWFVideoInit = hug1;
+ }
+
+ public function get forceLowMode():Boolean
+ { //MethodID:146, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._forceLowMode;
+ }
+
+ internal function set forceLowMode(hug1:Boolean):void
+ { //MethodID:147, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._forceLowMode = hug1;
+ }
+
+ public function get economyMode():String
+ { //MethodID:148, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._economyMode;
+ }
+
+ internal function set economyMode(hug1:String):void
+ { //MethodID:149, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._economyMode = hug1;
+ }
+
+ public function get playerVersionUpdated():String
+ { //MethodID:150, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._playerVersionUpdated;
+ }
+
+ internal function set playerVersionUpdated(hug1:String):void
+ { //MethodID:151, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._playerVersionUpdated = hug1;
+ }
+
+ public function get playerInfoUpdated():String
+ { //MethodID:152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._playerInfoUpdated;
+ }
+
+ internal function set playerInfoUpdated(hug1:String):void
+ { //MethodID:153, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._playerInfoUpdated = hug1;
+ }
+
+ public function get isCommunityVideo():Boolean
+ { //MethodID:154, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isCommunityVideo;
+ }
+
+ internal function set isCommunityVideo(hug1:Boolean):void
+ { //MethodID:155, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isCommunityVideo = hug1;
+ }
+
+ public function get isCommunityThread():Boolean
+ { //MethodID:156, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isCommunityThread;
+ }
+
+ internal function set isCommunityThread(hug1:Boolean):void
+ { //MethodID:157, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isCommunityThread = hug1;
+ }
+
+ public function get hasOwnerThread():Boolean
+ { //MethodID:158, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._hasOwnerThread;
+ }
+
+ internal function set hasOwnerThread(hug1:Boolean):void
+ { //MethodID:159, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._hasOwnerThread = hug1;
+ }
+
+ public function get isDeepenedCommentForce():Boolean
+ { //MethodID:160, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isDeepenedCommentForce;
+ }
+
+ internal function set isDeepenedCommentForce(hug1:Boolean):void
+ { //MethodID:161, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isDeepenedCommentForce = hug1;
+ }
+
+ public function get importedBGMVideos():Array
+ { //MethodID:162, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._importedBGMVideos;
+ }
+
+ internal function set importedBGMVideos(hug1:Array):void
+ { //MethodID:163, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._importedBGMVideos = hug1;
+ }
+
+ public function get isChannel():Boolean
+ { //MethodID:164, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isChannel;
+ }
+
+ internal function set isChannel(hug1:Boolean):void
+ { //MethodID:165, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isChannel = hug1;
+ }
+
+ public function get isNoComment():Boolean
+ { //MethodID:166, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNoComment;
+ }
+
+ internal function set isNoComment(hug1:Boolean):void
+ { //MethodID:167, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isNoComment = hug1;
+ }
+
+ public function get category():String
+ { //MethodID:168, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._category;
+ }
+
+ internal function set category(hug1:String):void
+ { //MethodID:169, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._category = hug1;
+ }
+
+ public function get categoryGroup():String
+ { //MethodID:170, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._categoryGroup;
+ }
+
+ internal function set categoryGroup(hug1:String):void
+ { //MethodID:171, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._categoryGroup = hug1;
+ }
+
+ public function get watchFlashVars():WatchFlashVars
+ { //MethodID:172, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._watchFlashVars;
+ }
+
+ internal function set watchFlashVars(hug1:WatchFlashVars):void
+ { //MethodID:173, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._watchFlashVars = hug1;
+ }
+
+ public function get thumbFlashVars():ThumbFlashVars
+ { //MethodID:174, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._thumbFlashVars;
+ }
+
+ internal function set thumbFlashVars(hug1:ThumbFlashVars):void
+ { //MethodID:175, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._thumbFlashVars = hug1;
+ }
+
+ public function get communityID():String
+ { //MethodID:176, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._communityID;
+ }
+
+ internal function set communityID(hug1:String):void
+ { //MethodID:177, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._communityID = hug1;
+ }
+
+ public function get communityGlobalID():String
+ { //MethodID:178, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._communityGlobalID;
+ }
+
+ internal function set communityGlobalID(hug1:String):void
+ { //MethodID:179, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._communityGlobalID = hug1;
+ }
+
+ public function get isNoCommand():Boolean
+ { //MethodID:180, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNoCommand;
+ }
+
+ internal function set isNoCommand(hug1:Boolean):void
+ { //MethodID:181, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isNoCommand = hug1;
+ }
+
+ public function get isNoAtComment():Boolean
+ { //MethodID:182, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNoAtComment;
+ }
+
+ internal function set isNoAtComment(hug1:Boolean):void
+ { //MethodID:183, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isNoAtComment = hug1;
+ }
+
+ public function get isWide():Boolean
+ { //MethodID:184, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isWide;
+ }
+
+ internal function set isWide(hug1:Boolean):void
+ { //MethodID:185, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isWide = hug1;
+ }
+
+ public function get countryCode():String
+ { //MethodID:186, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._countryCode;
+ }
+
+ internal function set countryCode(hug1:String):void
+ { //MethodID:187, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._countryCode = hug1;
+ }
+
+ public function get videoDetail():Object
+ { //MethodID:188, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoDetail;
+ }
+
+ internal function set videoDetail(hug1:Object):void
+ { //MethodID:189, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoDetail = hug1;
+ }
+
+ public function get leafSwitch():uint
+ { //MethodID:190, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._leafSwitch;
+ }
+
+ internal function set leafSwitch(hug1:uint):void
+ { //MethodID:191, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._leafSwitch = hug1;
+ }
+
+ public function get forceRelationInvisible():Boolean
+ { //MethodID:192, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._noRelation;
+ }
+
+ internal function set forceRelationInvisible(hug1:Boolean):void
+ { //MethodID:193, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._noRelation = hug1;
+ }
+
+ public function get noRelatedVideo():Boolean
+ { //MethodID:194, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._noRelatedVideo;
+ }
+
+ internal function set noRelatedVideo(hug1:Boolean):void
+