text:
import warnings

from tencentcloud.common.abstract_model import AbstractModel

class AudioResult(AbstractModel):
    """音频输出参数

    """

    def __init__(self):
        r"""
        :param HitFlag: 是否命中
0 未命中
1 命中
注意:此字段可能返回 null,表示取不到有效值。
        :type HitFlag: int
        :param Label: 命中的标签
Porn 色情
Polity 政治
Illegal 违法
Abuse 谩骂
Terror 暴恐
Ad 广告
Moan 呻吟
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param Suggestion: 审核建议,可选值:
Pass 通过,
Review 建议人审,
Block 确认违规
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        :param Score: 得分,0-100
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        :param Text: 音频ASR文本
注意:此字段可能返回 null,表示取不到有效值。
        :type Text: str
        :param Url: 音频片段存储URL,有效期为1天
注意:此字段可能返回 null,表示取不到有效值。
        :type Url: str
        :param Duration: 音频时长
注意:此字段可能返回 null,表示取不到有效值。
        :type Duration: str
        :param Extra: 拓展字段
注意:此字段可能返回 null,表示取不到有效值。
        :type Extra: str
        :param TextResults: 文本审核结果
注意:此字段可能返回 null,表示取不到有效值。
        :type TextResults: list of AudioResultDetailTextResult
        :param MoanResults: 音频呻吟审核结果
注意:此字段可能返回 null,表示取不到有效值。
        :type MoanResults: list of AudioResultDetailMoanResult
        :param LanguageResults: 音频语种检测结果
注意:此字段可能返回 null,表示取不到有效值。
        :type LanguageResults: list of AudioResultDetailLanguageResult
        """
        self.HitFlag = None
        self.Label = None
        self.Suggestion = None
        self.Score = None
        self.Text = None
        self.Url = None
        self.Duration = None
        self.Extra = None
        self.TextResults = None
        self.MoanResults = None
        self.LanguageResults = None

    def _deserialize(self, params):
        self.HitFlag = params.get("HitFlag")
        self.Label = params.get("Label")
        self.Suggestion = params.get("Suggestion")
        self.Score = params.get("Score")
        self.Text = params.get("Text")
        self.Url = params.get("Url")
        self.Duration = params.get("Duration")
        self.Extra = params.get("Extra")
        if params.get("TextResults") is not None:
            self.TextResults = []
            for item in params.get("TextResults"):
                obj = AudioResultDetailTextResult()
                obj._deserialize(item)
                self.TextResults.append(obj)
        if params.get("MoanResults") is not None:
            self.MoanResults = []
            for item in params.get("MoanResults"):
                obj = AudioResultDetailMoanResult()
                obj._deserialize(item)
                self.MoanResults.append(obj)
        if params.get("LanguageResults") is not None:
            self.LanguageResults = []
            for item in params.get("LanguageResults"):
                obj = AudioResultDetailLanguageResult()
                obj._deserialize(item)
                self.LanguageResults.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AudioResultDetailLanguageResult(AbstractModel):
    """音频小语种检测结果

    """

    def __init__(self):
        r"""
        :param Label: 语种
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param Score: 得分
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        :param StartTime: 开始时间
注意:此字段可能返回 null,表示取不到有效值。
        :type StartTime: float
        :param EndTime: 结束时间
注意:此字段可能返回 null,表示取不到有效值。
        :type EndTime: float
        :param SubLabelCode: 子标签码
注意:此字段可能返回 null,表示取不到有效值。
        :type SubLabelCode: str
        """
        self.Label = None
        self.Score = None
        self.StartTime = None
        self.EndTime = None
        self.SubLabelCode = None

    def _deserialize(self, params):
        self.Label = params.get("Label")
        self.Score = params.get("Score")
        self.StartTime = params.get("StartTime")
        self.EndTime = params.get("EndTime")
        self.SubLabelCode = params.get("SubLabelCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AudioResultDetailMoanResult(AbstractModel):
    """音频呻吟审核结果

    """

    def __init__(self):
        r"""
        :param Label: 固定为Moan
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param Score: 分数
        :type Score: int
        :param StartTime: 开始时间
        :type StartTime: float
        :param EndTime: 结束时间
        :type EndTime: float
        :param SubLabelCode: 子标签码
        :type SubLabelCode: str
        """
        self.Label = None
        self.Score = None
        self.StartTime = None
        self.EndTime = None
        self.SubLabelCode = None

    def _deserialize(self, params):
        self.Label = params.get("Label")
        self.Score = params.get("Score")
        self.StartTime = params.get("StartTime")
        self.EndTime = params.get("EndTime")
        self.SubLabelCode = params.get("SubLabelCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AudioResultDetailTextResult(AbstractModel):
    """音频ASR文本审核结果

    """

    def __init__(self):
        r"""
        :param Label: 标签
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param Keywords: 命中的关键词
注意:此字段可能返回 null,表示取不到有效值。
        :type Keywords: list of str
        :param LibId: 命中的LibId
注意:此字段可能返回 null,表示取不到有效值。
        :type LibId: str
        :param LibName: 命中的LibName
注意:此字段可能返回 null,表示取不到有效值。
        :type LibName: str
        :param Score: 得分
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        :param LibType: 词库类型 1 黑白库 2 自定义库
注意:此字段可能返回 null,表示取不到有效值。
        :type LibType: int
        :param Suggestion: 审核建议
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        """
        self.Label = None
        self.Keywords = None
        self.LibId = None
        self.LibName = None
        self.Score = None
        self.LibType = None
        self.Suggestion = None

    def _deserialize(self, params):
        self.Label = params.get("Label")
        self.Keywords = params.get("Keywords")
        self.LibId = params.get("LibId")
        self.LibName = params.get("LibName")
        self.Score = params.get("Score")
        self.LibType = params.get("LibType")
        self.Suggestion = params.get("Suggestion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AudioSegments(AbstractModel):
    """声音段信息

    """

    def __init__(self):
        r"""
        :param OffsetTime: 截帧时间。
点播文件:该值为相对于视频偏移时间,单位为秒,例如:0,5,10
直播流:该值为时间戳,例如:1594650717
注意:此字段可能返回 null,表示取不到有效值。
        :type OffsetTime: str
        :param Result: 结果集
注意:此字段可能返回 null,表示取不到有效值。
        :type Result: :class:`tencentcloud.vm.v20200709.models.AudioResult`
        """
        self.OffsetTime = None
        self.Result = None

    def _deserialize(self, params):
        self.OffsetTime = params.get("OffsetTime")
        if params.get("Result") is not None:
            self.Result = AudioResult()
            self.Result._deserialize(params.get("Result"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class BucketInfo(AbstractModel):
    """文件桶信息
    参考腾讯云存储相关说明 https://cloud.tencent.com/document/product/436/44352

    """

    def __init__(self):
        r"""
        :param Bucket: 腾讯云对象存储,存储桶名称
        :type Bucket: str
        :param Region: 地域
        :type Region: str
        :param Object: 对象Key
        :type Object: str
        """
        self.Bucket = None
        self.Region = None
        self.Object = None

    def _deserialize(self, params):
        self.Bucket = params.get("Bucket")
        self.Region = params.get("Region")
        self.Object = params.get("Object")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CancelTaskRequest(AbstractModel):
    """CancelTask请求参数结构体

    """

    def __init__(self):
        r"""
        :param TaskId: 任务ID
        :type TaskId: str
        """
        self.TaskId = None

    def _deserialize(self, params):
        self.TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CancelTaskResponse(AbstractModel):
    """CancelTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.RequestId = None

    def _deserialize(self, params):
        self.RequestId = params.get("RequestId")

class CreateBizConfigRequest(AbstractModel):
    """CreateBizConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizType: 业务ID,仅限英文字母、数字和下划线(_)组成,长度不超过8位
        :type BizType: str
        :param MediaModeration: 审核分类信息
        :type MediaModeration: :class:`tencentcloud.vm.v20200709.models.MediaModerationConfig`
        :param BizName: 业务名称,用于标识业务场景,长度不超过32位
        :type BizName: str
        :param ModerationCategories: 审核内容,可选:Polity (政治); Porn (色情); Illegal(违法);Abuse (谩骂); Terror (暴恐); Ad (广告); Custom (自定义);
        :type ModerationCategories: list of str
        """
        self.BizType = None
        self.MediaModeration = None
        self.BizName = None
        self.ModerationCategories = None

    def _deserialize(self, params):
        self.BizType = params.get("BizType")
        if params.get("MediaModeration") is not None:
            self.MediaModeration = MediaModerationConfig()
            self.MediaModeration._deserialize(params.get("MediaModeration"))
        self.BizName = params.get("BizName")
        self.ModerationCategories = params.get("ModerationCategories")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateBizConfigResponse(AbstractModel):
    """CreateBizConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.RequestId = None

    def _deserialize(self, params):
        self.RequestId = params.get("RequestId")

class CreateVideoModerationTaskRequest(AbstractModel):
    """CreateVideoModerationTask请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizType: 业务类型, 定义 模版策略,输出存储配置。如果没有BizType,可以先参考 【创建业务配置】接口进行创建
        :type BizType: str
        :param Type: 任务类型:可选VIDEO(点播视频),LIVE_VIDEO(直播视频)
        :type Type: str
        :param Tasks: 输入的任务信息,最多可以同时创建10个任务
        :type Tasks: list of TaskInput
        :param Seed: 回调签名key,具体可以查看签名文档。
        :type Seed: str
        :param CallbackUrl: 接收审核信息回调地址,如果设置,则审核过程中产生的违规音频片段和画面截帧发送此接口
        :type CallbackUrl: str
        :param Priority: 审核排队优先级。当您有多个视频审核任务排队时,可以根据这个参数控制排队优先级。用于处理插队等逻辑。默认该参数为0
        :type Priority: int
        """
        self.BizType = None
        self.Type = None
        self.Tasks = None
        self.Seed = None
        self.CallbackUrl = None
        self.Priority = None

    def _deserialize(self, params):
        self.BizType = params.get("BizType")
        self.Type = params.get("Type")
        if params.get("Tasks") is not None:
            self.Tasks = []
            for item in params.get("Tasks"):
                obj = TaskInput()
                obj._deserialize(item)
                self.Tasks.append(obj)
        self.Seed = params.get("Seed")
        self.CallbackUrl = params.get("CallbackUrl")
        self.Priority = params.get("Priority")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateVideoModerationTaskResponse(AbstractModel):
    """CreateVideoModerationTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param Results: 任务创建结果
注意:此字段可能返回 null,表示取不到有效值。
        :type Results: list of TaskResult
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Results = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Results") is not None:
            self.Results = []
            for item in params.get("Results"):
                obj = TaskResult()
                obj._deserialize(item)
                self.Results.append(obj)
        self.RequestId = params.get("RequestId")

class DescribeTaskDetailRequest(AbstractModel):
    """DescribeTaskDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param TaskId: 任务ID,创建任务后返回的TaskId字段
        :type TaskId: str
        :param ShowAllSegments: 是否展示所有分片,默认只展示命中规则的分片
        :type ShowAllSegments: bool
        """
        self.TaskId = None
        self.ShowAllSegments = None

    def _deserialize(self, params):
        self.TaskId = params.get("TaskId")
        self.ShowAllSegments = params.get("ShowAllSegments")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeTaskDetailResponse(AbstractModel):
    """DescribeTaskDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param TaskId: 任务Id
注意:此字段可能返回 null,表示取不到有效值。
        :type TaskId: str
        :param DataId: 审核时传入的数据Id
注意:此字段可能返回 null,表示取不到有效值。
        :type DataId: str
        :param BizType: 业务类型
注意:此字段可能返回 null,表示取不到有效值。
        :type BizType: str
        :param Name: 任务名称
注意:此字段可能返回 null,表示取不到有效值。
        :type Name: str
        :param Status: 状态,可选值:
FINISH 已完成
PENDING 等待中
RUNNING 进行中
ERROR 出错
CANCELLED 已取消
注意:此字段可能返回 null,表示取不到有效值。
        :type Status: str
        :param Type: 类型
注意:此字段可能返回 null,表示取不到有效值。
        :type Type: str
        :param Suggestion: 审核建议
可选:
Pass 通过
Reveiw 建议复审
Block 确认违规
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        :param Labels: 审核结果
注意:此字段可能返回 null,表示取不到有效值。
        :type Labels: list of TaskLabel
        :param MediaInfo: 媒体解码信息
注意:此字段可能返回 null,表示取不到有效值。
        :type MediaInfo: :class:`tencentcloud.vm.v20200709.models.MediaInfo`
        :param InputInfo: 任务信息
注意:此字段可能返回 null,表示取不到有效值。
        :type InputInfo: :class:`tencentcloud.vm.v20200709.models.InputInfo`
        :param CreatedAt: 创建时间
注意:此字段可能返回 null,表示取不到有效值。
        :type CreatedAt: str
        :param UpdatedAt: 更新时间
注意:此字段可能返回 null,表示取不到有效值。
        :type UpdatedAt: str
        :param TryInSeconds: 在秒后重试
注意:此字段可能返回 null,表示取不到有效值。
        :type TryInSeconds: int
        :param ImageSegments: 图片结果
注意:此字段可能返回 null,表示取不到有效值。
        :type ImageSegments: list of ImageSegments
        :param AudioSegments: 音频结果
注意:此字段可能返回 null,表示取不到有效值。
        :type AudioSegments: list of AudioSegments
        :param ErrorType: 如果返回的状态为ERROR,该字段会标记错误类型。
可选值::
DECODE_ERROR: 解码失败。(输入资源中可能包含无法解码的视频)
URL_ERROR:下载地址验证失败。
TIMEOUT_ERROR:处理超时。
注意:此字段可能返回 null,表示取不到有效值。
        :type ErrorType: str
        :param ErrorDescription: 审核任务错误日志。当Error不为空时,会展示该字段
注意:此字段可能返回 null,表示取不到有效值。
        :type ErrorDescription: str
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.TaskId = None
        self.DataId = None
        self.BizType = None
        self.Name = None
        self.Status = None
        self.Type = None
        self.Suggestion = None
        self.Labels = None
        self.MediaInfo = None
        self.InputInfo = None
        self.CreatedAt = None
        self.UpdatedAt = None
        self.TryInSeconds = None
        self.ImageSegments = None
        self.AudioSegments = None
        self.ErrorType = None
        self.ErrorDescription = None
        self.RequestId = None

    def _deserialize(self, params):
        self.TaskId = params.get("TaskId")
        self.DataId = params.get("DataId")
        self.BizType = params.get("BizType")
        self.Name = params.get("Name")
        self.Status = params.get("Status")
        self.Type = params.get("Type")
        self.Suggestion = params.get("Suggestion")
        if params.get("Labels") is not None:
            self.Labels = []
            for item in params.get("Labels"):
                obj = TaskLabel()
                obj._deserialize(item)
                self.Labels.append(obj)
        if params.get("MediaInfo") is not None:
            self.MediaInfo = MediaInfo()
            self.MediaInfo._deserialize(params.get("MediaInfo"))
        if params.get("InputInfo") is not None:
            self.InputInfo = InputInfo()
            self.InputInfo._deserialize(params.get("InputInfo"))
        self.CreatedAt = params.get("CreatedAt")
        self.UpdatedAt = params.get("UpdatedAt")
        self.TryInSeconds = params.get("TryInSeconds")
        if params.get("ImageSegments") is not None:
            self.ImageSegments = []
            for item in params.get("ImageSegments"):
                obj = ImageSegments()
                obj._deserialize(item)
                self.ImageSegments.append(obj)
        if params.get("AudioSegments") is not None:
            self.AudioSegments = []
            for item in params.get("AudioSegments"):
                obj = AudioSegments()
                obj._deserialize(item)
                self.AudioSegments.append(obj)
        self.ErrorType = params.get("ErrorType")
        self.ErrorDescription = params.get("ErrorDescription")
        self.RequestId = params.get("RequestId")

class DescribeVideoStatRequest(AbstractModel):
    """DescribeVideoStat请求参数结构体

    """

    def __init__(self):
        r"""
        :param AuditType: 审核类型 1: 机器审核; 2: 人工审核
        :type AuditType: int
        :param Filters: 查询条件
        :type Filters: list of Filters
        """
        self.AuditType = None
        self.Filters = None

    def _deserialize(self, params):
        self.AuditType = params.get("AuditType")
        if params.get("Filters") is not None:
            self.Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self.Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeVideoStatResponse(AbstractModel):
    """DescribeVideoStat返回参数结构体

    """

    def __init__(self):
        r"""
        :param Overview: 识别结果统计
        :type Overview: :class:`tencentcloud.vm.v20200709.models.Overview`
        :param TrendCount: 识别量统计
        :type TrendCount: list of TrendCount
        :param EvilCount: 违规数据分布
        :type EvilCount: list of EvilCount
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Overview = None
        self.TrendCount = None
        self.EvilCount = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Overview") is not None:
            self.Overview = Overview()
            self.Overview._deserialize(params.get("Overview"))
        if params.get("TrendCount") is not None:
            self.TrendCount = []
            for item in params.get("TrendCount"):
                obj = TrendCount()
                obj._deserialize(item)
                self.TrendCount.append(obj)
        if params.get("EvilCount") is not None:
            self.EvilCount = []
            for item in params.get("EvilCount"):
                obj = EvilCount()
                obj._deserialize(item)
                self.EvilCount.append(obj)
        self.RequestId = params.get("RequestId")

class EvilCount(AbstractModel):
    """违规数据分布

    """

    def __init__(self):
        r"""
        :param EvilType: 违规类型:
Terror	24001
Porn	20002
Polity	20001
Ad	20105
Abuse	20007
Illegal	20006
Spam	25001
Moan	26001
        :type EvilType: str
        :param Count: 分布类型总量
        :type Count: int
        """
        self.EvilType = None
        self.Count = None

    def _deserialize(self, params):
        self.EvilType = params.get("EvilType")
        self.Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class FileOutput(AbstractModel):
    """Cos FileOutput

    """

    def __init__(self):
        r"""
        :param Bucket: 存储的Bucket
        :type Bucket: str
        :param Region: Cos Region
        :type Region: str
        :param ObjectPrefix: 对象前缀
        :type ObjectPrefix: str
        """
        self.Bucket = None
        self.Region = None
        self.ObjectPrefix = None

    def _deserialize(self, params):
        self.Bucket = params.get("Bucket")
        self.Region = params.get("Region")
        self.ObjectPrefix = params.get("ObjectPrefix")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class Filters(AbstractModel):
    """视频过滤条件

    """

    def __init__(self):
        r"""
        :param Name: 查询字段:
策略BizType
子账号SubUin
日期区间DateRange
        :type Name: str
        :param Values: 查询值
        :type Values: list of str
        """
        self.Name = None
        self.Values = None

    def _deserialize(self, params):
        self.Name = params.get("Name")
        self.Values = params.get("Values")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ImageResult(AbstractModel):
    """Result结果详情

    """

    def __init__(self):
        r"""
        :param HitFlag: 违规标志
0 未命中
1 命中
注意:此字段可能返回 null,表示取不到有效值。
        :type HitFlag: int
        :param Label: 命中的标签
Porn 色情
Sexy 性感
Polity 政治
Illegal 违法
Abuse 谩骂
Terror 暴恐
Ad 广告
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param Suggestion: 审核建议,可选值:
Pass 通过,
Review 建议人审,
Block 确认违规
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        :param Score: 得分
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        :param Results: 画面截帧图片结果集
注意:此字段可能返回 null,表示取不到有效值。
        :type Results: list of ImageResultResult
        :param Url: 图片URL地址
注意:此字段可能返回 null,表示取不到有效值。
        :type Url: str
        :param Extra: 附加字段
注意:此字段可能返回 null,表示取不到有效值。
        :type Extra: str
        """
        self.HitFlag = None
        self.Label = None
        self.Suggestion = None
        self.Score = None
        self.Results = None
        self.Url = None
        self.Extra = None

    def _deserialize(self, params):
        self.HitFlag = params.get("HitFlag")
        self.Label = params.get("Label")
        self.Suggestion = params.get("Suggestion")
        self.Score = params.get("Score")
        if params.get("Results") is not None:
            self.Results = []
            for item in params.get("Results"):
                obj = ImageResultResult()
                obj._deserialize(item)
                self.Results.append(obj)
        self.Url = params.get("Url")
        self.Extra = params.get("Extra")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ImageResultResult(AbstractModel):
    """图片输出结果的子结果

    """

    def __init__(self):
        r"""
        :param Scene: 场景
Porn 色情
Sexy 性感
Polity 政治
Illegal 违法
Abuse 谩骂
Terror 暴恐
Ad 广告
注意:此字段可能返回 null,表示取不到有效值。
        :type Scene: str
        :param HitFlag: 是否命中
0 未命中
1 命中
注意:此字段可能返回 null,表示取不到有效值。
        :type HitFlag: int
        :param Suggestion: 审核建议,可选值:
Pass 通过,
Review 建议人审,
Block 确认违规
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        :param Label: 标签
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param SubLabel: 子标签
注意:此字段可能返回 null,表示取不到有效值。
        :type SubLabel: str
        :param Score: 分数
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        :param Names: 如果命中场景为涉政,则该数据为人物姓名列表,否则null
注意:此字段可能返回 null,表示取不到有效值。
        :type Names: list of str
        :param Text: 图片OCR文本
注意:此字段可能返回 null,表示取不到有效值。
        :type Text: str
        :param Details: 其他详情
注意:此字段可能返回 null,表示取不到有效值。
        :type Details: list of ImageResultsResultDetail
        """
        self.Scene = None
        self.HitFlag = None
        self.Suggestion = None
        self.Label = None
        self.SubLabel = None
        self.Score = None
        self.Names = None
        self.Text = None
        self.Details = None

    def _deserialize(self, params):
        self.Scene = params.get("Scene")
        self.HitFlag = params.get("HitFlag")
        self.Suggestion = params.get("Suggestion")
        self.Label = params.get("Label")
        self.SubLabel = params.get("SubLabel")
        self.Score = params.get("Score")
        self.Names = params.get("Names")
        self.Text = params.get("Text")
        if params.get("Details") is not None:
            self.Details = []
            for item in params.get("Details"):
                obj = ImageResultsResultDetail()
                obj._deserialize(item)
                self.Details.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ImageResultsResultDetail(AbstractModel):
    """具体场景下的图片识别结果

    """

    def __init__(self):
        r"""
        :param Name: 任务名称
注意:此字段可能返回 null,表示取不到有效值。
        :type Name: str
        :param Text: OCR识别文本
注意:此字段可能返回 null,表示取不到有效值。
        :type Text: str
        :param Location: 位置信息
注意:此字段可能返回 null,表示取不到有效值。
        :type Location: :class:`tencentcloud.vm.v20200709.models.ImageResultsResultDetailLocation`
        :param Label: 标签
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param LibId: 库ID
注意:此字段可能返回 null,表示取不到有效值。
        :type LibId: str
        :param LibName: 库名称
注意:此字段可能返回 null,表示取不到有效值。
        :type LibName: str
        :param Keywords: 命中的关键词
注意:此字段可能返回 null,表示取不到有效值。
        :type Keywords: list of str
        :param Suggestion: 建议
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        :param Score: 得分
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        :param SubLabelCode: 子标签码
注意:此字段可能返回 null,表示取不到有效值。
        :type SubLabelCode: str
        """
        self.Name = None
        self.Text = None
        self.Location = None
        self.Label = None
        self.LibId = None
        self.LibName = None
        self.Keywords = None
        self.Suggestion = None
        self.Score = None
        self.SubLabelCode = None

    def _deserialize(self, params):
        self.Name = params.get("Name")
        self.Text = params.get("Text")
        if params.get("Location") is not None:
            self.Location = ImageResultsResultDetailLocation()
            self.Location._deserialize(params.get("Location"))
        self.Label = params.get("Label")
        self.LibId = params.get("LibId")
        self.LibName = params.get("LibName")
        self.Keywords = params.get("Keywords")
        self.Suggestion = params.get("Suggestion")
        self.Score = params.get("Score")
        self.SubLabelCode = params.get("SubLabelCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ImageResultsResultDetailLocation(AbstractModel):
    """图片详情位置信息

    """

    def __init__(self):
        r"""
        :param X: x坐标
注意:此字段可能返回 null,表示取不到有效值。
        :type X: float
        :param Y: y坐标
注意:此字段可能返回 null,表示取不到有效值。
        :type Y: float
        :param Width: 宽度
注意:此字段可能返回 null,表示取不到有效值。
        :type Width: int
        :param Height: 高度
注意:此字段可能返回 null,表示取不到有效值。
        :type Height: int
        :param Rotate: 旋转角度
注意:此字段可能返回 null,表示取不到有效值。
        :type Rotate: float
        """
        self.X = None
        self.Y = None
        self.Width = None
        self.Height = None
        self.Rotate = None

    def _deserialize(self, params):
        self.X = params.get("X")
        self.Y = params.get("Y")
        self.Width = params.get("Width")
        self.Height = params.get("Height")
        self.Rotate = params.get("Rotate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ImageSegments(AbstractModel):
    """图片段信息

    """

    def __init__(self):
        r"""
        :param OffsetTime: 截帧时间。
点播文件:该值为相对于视频偏移时间,单位为秒,例如:0,5,10
直播流:该值为时间戳,例如:1594650717
        :type OffsetTime: str
        :param Result: 画面截帧结果详情
        :type Result: :class:`tencentcloud.vm.v20200709.models.ImageResult`
        """
        self.OffsetTime = None
        self.Result = None

    def _deserialize(self, params):
        self.OffsetTime = params.get("OffsetTime")
        if params.get("Result") is not None:
            self.Result = ImageResult()
            self.Result._deserialize(params.get("Result"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class InputInfo(AbstractModel):
    """输入信息详情

    """

    def __init__(self):
        r"""
        :param Type: 传入的类型可选:URL,COS
注意:此字段可能返回 null,表示取不到有效值。
        :type Type: str
        :param Url: Url地址
注意:此字段可能返回 null,表示取不到有效值。
        :type Url: str
        :param BucketInfo: 桶信息。当输入当时COS时,该字段不为空
注意:此字段可能返回 null,表示取不到有效值。
        :type BucketInfo: str
        """
        self.Type = None
        self.Url = None
        self.BucketInfo = None

    def _deserialize(self, params):
        self.Type = params.get("Type")
        self.Url = params.get("Url")
        self.BucketInfo = params.get("BucketInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class MediaInfo(AbstractModel):
    """媒体类型

    """

    def __init__(self):
        r"""
        :param Codecs: 编码格式
        :type Codecs: str
        :param Duration: 流检测时分片时长
注意:此字段可能返回 0,表示取不到有效值。
        :type Duration: int
        :param Width: 宽,单位为像素
        :type Width: int
        :param Height: 高,单位为像素
        :type Height: int
        """
        self.Codecs = None
        self.Duration = None
        self.Width = None
        self.Height = None

    def _deserialize(self, params):
        self.Codecs = params.get("Codecs")
        self.Duration = params.get("Duration")
        self.Width = params.get("Width")
        self.Height = params.get("Height")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class MediaModerationConfig(AbstractModel):
    """媒体审核配置

    """

    def __init__(self):
        r"""
        :param UseOCR: 是否使用OCR,默认为true
        :type UseOCR: bool
        :param UseAudio: 是否使用音频,默认为true。视频场景下,默认为 false
        :type UseAudio: bool
        :param ImageFrequency: 图片取帧频率, 单位(秒/帧),默认 5, 可选 1 ~ 300
        :type ImageFrequency: int
        :param AudioFrequency: 音频片段长度。单位为:秒
        :type AudioFrequency: int
        :param SegmentOutput: 临时文件存储位置
        :type SegmentOutput: :class:`tencentcloud.vm.v20200709.models.FileOutput`
        :param CallbackUrl: 回调地址
        :type CallbackUrl: str
        """
        self.UseOCR = None
        self.UseAudio = None
        self.ImageFrequency = None
        self.AudioFrequency = None
        self.SegmentOutput = None
        self.CallbackUrl = None

    def _deserialize(self, params):
        self.UseOCR = params.get("UseOCR")
        self.UseAudio = params.get("UseAudio")
        self.ImageFrequency = params.get("ImageFrequency")
        self.AudioFrequency = params.get("AudioFrequency")
        if params.get("SegmentOutput") is not None:
            self.SegmentOutput = FileOutput()
            self.SegmentOutput._deserialize(params.get("SegmentOutput"))
        self.CallbackUrl = params.get("CallbackUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class Overview(AbstractModel):
    """识别结果统计

    """

    def __init__(self):
        r"""
        :param TotalCount: 总调用量
        :type TotalCount: int
        :param TotalHour: 总调用时长
        :type TotalHour: int
        :param PassCount: 通过量
        :type PassCount: int
        :param PassHour: 通过时长
        :type PassHour: int
        :param EvilCount: 违规量
        :type EvilCount: int
        :param EvilHour: 违规时长
        :type EvilHour: int
        :param SuspectCount: 疑似违规量
        :type SuspectCount: int
        :param SuspectHour: 疑似违规时长
        :type SuspectHour: int
        """
        self.TotalCount = None
        self.TotalHour = None
        self.PassCount = None
        self.PassHour = None
        self.EvilCount = None
        self.EvilHour = None
        self.SuspectCount = None
        self.SuspectHour = None

    def _deserialize(self, params):
        self.TotalCount = params.get("TotalCount")
        self.TotalHour = params.get("TotalHour")
        self.PassCount = params.get("PassCount")
        self.PassHour = params.get("PassHour")
        self.EvilCount = params.get("EvilCount")
        self.EvilHour = params.get("EvilHour")
        self.SuspectCount = params.get("SuspectCount")
        self.SuspectHour = params.get("SuspectHour")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class StorageInfo(AbstractModel):
    """数据存储信息

    """

    def __init__(self):
        r"""
        :param Type: 类型 可选:
URL 资源链接类型
COS 腾讯云对象存储类型
        :type Type: str
        :param Url: 资源链接
        :type Url: str
        :param BucketInfo: 腾讯云存储桶信息
        :type BucketInfo: :class:`tencentcloud.vm.v20200709.models.BucketInfo`
        """
        self.Type = None
        self.Url = None
        self.BucketInfo = None

    def _deserialize(self, params):
        self.Type = params.get("Type")
        self.Url = params.get("Url")
        if params.get("BucketInfo") is not None:
            self.BucketInfo = BucketInfo()
            self.BucketInfo._deserialize(params.get("BucketInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class TaskInput(AbstractModel):
    """音视频任务结构

    """

    def __init__(self):
        r"""
        :param DataId: 数据ID
        :type DataId: str
        :param Name: 任务名
        :type Name: str
        :param Input: 任务输入
        :type Input: :class:`tencentcloud.vm.v20200709.models.StorageInfo`
        """
        self.DataId = None
        self.Name = None
        self.Input = None

    def _deserialize(self, params):
        self.DataId = params.get("DataId")
        self.Name = params.get("Name")
        if params.get("Input") is not None:
            self.Input = StorageInfo()
            self.Input._deserialize(params.get("Input"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class TaskLabel(AbstractModel):
    """任务输出标签

    """

    def __init__(self):
        r"""
        :param Label: 命中的标签
Porn 色情
Sexy 性感
Polity 政治
Illegal 违法
Abuse 谩骂
Terror 暴恐
Ad 广告
注意:此字段可能返回 null,表示取不到有效值。
        :type Label: str
        :param Suggestion: 审核建议,可选值:
Pass 通过,
Review 建议人审,
Block 确认违规
注意:此字段可能返回 null,表示取不到有效值。
        :type Suggestion: str
        :param Score: 得分,分数是 0 ~ 100
注意:此字段可能返回 null,表示取不到有效值。
        :type Score: int
        """
        self.Label = None
        self.Suggestion = None
        self.Score = None

    def _deserialize(self, params):
        self.Label = params.get("Label")
        self.Suggestion = params.get("Suggestion")
        self.Score = params.get("Score")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class TaskResult(AbstractModel):
    """创建任务时的返回结果

    """

    def __init__(self):
        r"""
        :param DataId: 请求时传入的DataId
注意:此字段可能返回 null,表示取不到有效值。
        :type DataId: str
        :param TaskId: TaskId,任务ID
注意:此字段可能返回 null,表示取不到有效值。
        :type TaskId: str
        :param Code: 错误码。如果code为OK,则表示创建成功,其他则参考公共错误码
注意:此字段可能返回 null,表示取不到有效值。
        :type Code: str
        :param Message: 如果错误,该字段表示错误详情
注意:此字段可能返回 null,表示取不到有效值。
        :type Message: str
        """
        self.DataId = None
        self.TaskId = None
        self.Code = None
        self.Message = None

    def _deserialize(self, params):
        self.DataId = params.get("DataId")
        self.TaskId = params.get("TaskId")
        self.Code = params.get("Code")
        self.Message = params.get("Message")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class TrendCount(AbstractModel):
    """识别量统计

    """

    def __init__(self):
        r"""
        :param TotalCount: 总调用量
        :type TotalCount: int
        :param TotalHour: 总调用时长
        :type TotalHour: int
        :param PassCount: 通过量
        :type PassCount: int
        :param PassHour: 通过时长
        :type PassHour: int
        :param EvilCount: 违规量
        :type EvilCount: int
        :param EvilHour: 违规时长
        :type EvilHour: int
        :param SuspectCount: 疑似违规量
        :type SuspectCount: int
        :param SuspectHour: 疑似违规时长
        :type SuspectHour: int
        :param Date: 日期
        :type Date: str
        """
        self.TotalCount = None
        self.TotalHour = None
        self.PassCount = None
        self.PassHour = None
        self.EvilCount = None
        self.EvilHour = None
        self.SuspectCount = None
        self.SuspectHour = None
        self.Date = None

    def _deserialize(self, params):
        self.TotalCount = params.get("TotalCount")
        self.TotalHour = params.get("TotalHour")
        self.PassCount = params.get("PassCount")
        self.PassHour = params.get("PassHour")
        self.EvilCount = params.get("EvilCount")
        self.EvilHour = params.get("EvilHour")
        self.SuspectCount = params.get("SuspectCount")
        self.SuspectHour = params.get("SuspectHour")
        self.Date = params.get("Date")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

redpajama_set_name: RedPajamaGithub


Key and proclamation of the Miami City.
On January 25, 2017 Antillean Marine Shipping Corp. was honored by receiving the KEY of our wonderful Miami City and the City of Miami PROCLAMATION given by our honorable Mayor Tomas Regalado.
Copyright © 2018 Antillean Marine Shipping Corp. All rights reserved.


The BEAR Network Summer School Graduate Mobility Grants allow graduate students to travel to Montreal to participate in the second BEAR Summer School "Between the EU and Russia: Zone of Contestation," taking place June 17-22, 2019 at Université de Montréal.
Eight successful applicants from the BEAR Network will join twelve third-year undergraduate students from the University of Glasgow for a field trip to the Baltic. The trip takes place across three cities: Riga (Latvia), Narva and Tallinn (Estonia) where the students will experience a rich program of cultural and research-based activities.This field trip, designed for upper-level undergraduate students in the Social Sciences, provides students with an opportunity to consider how to conduct research 'in the field'.
Be enrolled in an undergraduate degree program at one of the BEAR partner universities.
Be under the supervision of one of the BEAR Network members.
The BEAR Network Graduate Mobility Grants supports graduate students to spend 1-2 weeks at one of the BEAR partner universities to work with faculty members who specialize in the field of the students' research. The grants are available to full-time thesis students enrolled in a graduate degree program at a BEAR partner university who are under the supervision of a network member. A limited number of Grants are available each year on a competitive basis.
Be enrolled in a graduate degree program at one of the BEAR partner universities.
Priority goes to PhD students but Master students are welcome to apply.
Conference travel is NOT eligible.
The BEAR Network Graduate Mobility Grant supported students from partner universities to attend the Multi-Methods Workshop in Glasgow from October 3-5, 2018.
The BEAR Network Summer School Mobility Grants allowed graduate students to travel to Montreal to participate in the first BEAR Summer School "Between the EU and Russia: Transnational 'Soft Power' and Societal Activism," held at University of Montreal, June 18-23, 2018.


text:
INTRO: Interrupted Histories archive constellation contemporary, the emancipation estrangement heterochronia humanism intuition pathological fracture phantom (pain) reconstruction self-historicisation temporalities temporally embodied sound tendencies in art
INTRO: Time-specific Exhibitions bodywise creleasure dancing as insurrectional practice decolonise evidence fragility interest kapwa loser over-identification radical imagination self-determination self-representation the subject travesti unrest
INTRO: Alignment: An Attempt at Refusal agitational visual language alignment catastrophe eurasia event global resistance institutional geopolitical strategies migrancy non-aligned movement pandemic postsocialism south tudigong, god of the land white space
INTRO: The Rest is Missing agency autonomy biotope bureaucratisation collaboration / co-labour construction the continuity-form and counter-continuity de-professionalisation eternal network / la fête permanente intervenor labour ñande / ore the rest is missing
INTRO: Will You Stay Here? The Commons and the Blue Brain to baffle basic income brotherhood & unity constituent power of the common corrected slogan data asymmetry friendship heterotopian homonymy intuition noosphere palimpsest rog self-management solidarity theft
INTRO: Institution alternating the art hypothesis conspiratorial institutions? dark room deviant family interdependence lobbying minor universalisms reflexive/reflexivity a residual stultifera navis the sustainable museum translation
anti-fascism earth ecofeminism emancipatory propaganda epistemic diversity harbour instant new extractivism occidentosis self-organisation shipwrecks solidarity Southeast Asia southern constellation
care care is conflictual decommodification hapticality I, a __________ interdependence la perruque liberation the lucid interval raised fist re-un-learning repair revolt school situated museum translation
alignment, Boris Buden
narrator Boris Buden
term alignment
published December 2015, Berlin/Zagreb
The notion of "alignment" almost automatically evokes the idea of space. Concretely, it invites us to think of taking a certain position within a geopolitical space. But the fact is, however, that the term "alignment" as such does not at all belong to the vocabulary of geopolitics. It is rather its negation that more than a half-century ago entered the political stage of the world. The so-called → Non-Aligned Movement was founded in the midst of the Cold War at the first Conference of Heads of State or Government of Non-Aligned Countries, held in September 1961 in Belgrade, the capital of what was then socialist Yugoslavia. It was initiated by Josip Broz Tito, then the President of the country, and attended by Jawaharlal Nehru of India, Sukarno of Indonesia, Gamal Abdel Nasser of Egypt and Kwame Nkrumah of Ghana. Soon over 100 countries, mostly from the Third World, joined the Movement, which played a significant role in international politics in the second half of the 20th century.
Today, none of the founding fathers of the Movement is still alive. The country, where it was founded, Yugoslavia, fell apart in a civil war, without any of its successor states showing → interest in the legacy of the non-alignment. Yet the Movement itself, although having lost any significant influence on international politics, has curiously survived the end of the Cold War, in opposition to which it had once found its raison d'être. This, however, seems to be changing now.
Since Narendra Modī took office as India's prime minister in 2014, the world's second-most-populous nation, and one of the founding members of the Non-Aligned Movement, has openly abandoned non-alignment as the guiding principle of its foreign-policy. The change is even more significant if we remember that it was in fact an Indian, V. K. Krishna Menon, who in 1953 coined the term "non-alignment". Yet another Indian, Jawaharlal Nehru, was first to define it as a geopolitical concept based on five principles: mutual respect for each other's territorial integrity and sovereignty; mutual non-aggression; mutual non-interference in domestic affairs; equality and mutual benefit; peaceful co-existence.
But today India's prime minister has a better idea, something he calls a "multi-alignment policy". Behind what some commentators not without irony call a "grand vision" there are no more regulative ideas in the tradition of Kantian "eternal peace", but rather a very pragmatic idea of doing business with all. Without abandoning its independent course, India has moved to a contemporary, globalised practicality, according to which it will carefully balance closer cooperation with the major players in today's global geopolitics, like US, Russia or China. It has been doing it in a way that advances the country's economic and security interests, without being forced to choose one power over another.
As long as a particular vision of international politics was based in no more then pure negativity to alignment, there was no need to introduce the term into the vocabulary of geopolitics. But now, after the non-alignment has been turned into a multi-alignment claiming similar strategic vision of international politics there is obviously sufficient reason to conceive of "alignment" as a new concept of the contemporary geopolitics.
This change in the vocabulary of international politics corresponds, however, with the change in the perception of historical reality, or more precisely, it implies a new "grand narrative" of recent history, a narrative that makes sense of particular political decisions, causally connects them and depicts a broader historical picture in which these decisions are made. Such a narrative, in which the aforementioned turn in the general strategy of Indian foreign policy from the old principle of non-alignment to the new one of multi-alignment, appears as a symptom of a much deeper historical transformation, is offered in Immanuel Wallenstein's short essay "Precipitate Decline: The Advent of Multipolarity" published in 2007.
As the title already suggests, the emergence of a new paradigm in today's international relations, the so-called multipolarity, reflects a very concrete historical process, the decline of the United States of America, which, according to Wallenstein, has become apparent only after the fiasco of the 2003 invasion of Iraq. Contrary to most analysts who see the United States hegemony in the world-system at its peak in the post-1991 era, the era dominated by another paradigm of international relations, the unipolarity, he argues that this hegemony has been in decline ever since 1970. In fact, he tells a generally different story of the last hundred years, not one of the two World Wars, but of the "Second Thirty Years War" from 1914-1945, a concept that was introduced in 1946 by Charles de Gaulle. For Wallenstein the principal antagonists of this single 30 years war were the United States and Germany. According to his view, the USSR was only militarily assisting in the victory of the United States 1945 with which began the period of its unquestioned hegemony that lasted until 1970. It was a period in which the United States absolutely dominated the world-economy as its most productive and efficient producer. It turned its former enemies, Germany and Japan into its political satellites and struck a deal with its sole challenger, at least on a military level, the Soviet Union. According to the agreements in Yalta, the world was divided into two blocks, which respected its clearly demarcated boundaries. Despite many crises, which often culminated into local wars, like in Korea, Vietnam or Afghanistan, the military status quo between two blocks guaranteed a long-lasting global peace, a peace that was, curiously, called war, or more precisely the Cold War.
Wallerstein argues that already by the mid-1960s both Western Europe and Japan had reached virtual economic parity with the United States, which had no longer any particular advantage over its allies. At the same time, the countries and political movements of the developing world, for whom the Yalta deal had not brought any significant benefits, started to pursue their own → interests. This was politically articulated in the form of a struggle for national liberation that often had a clearly → anti-colonial character. Wallerstein sums up this political process under the name of "the world revolutions of 1968", meaning the multiple revolutions that occurred between 1966 and 1970.
This is where we should situate, both historically and in terms of a transformation of the world system, the emergence of the → Non-Aligned Movement. It was generally a revolt against the neo-colonial and neo-imperial order, which concretely targeted a political arrangement that brought this order into being and guaranteed its persistence, the Yalta deal and the bipolar logic of global power-relations.
These two historical events, the coming of the Non-Aligned Movement on the stage of world politics, as well as the "the world revolutions of 1968", also mark the historical moment at which, according to Wallerstein, the structural decline of US power and authority in the world-system began. It was a new reality of which those in power in the United States soon become aware. Wallerstein argues that the key objective of all presidential regimes after the1970s, from Nixon to Clinton, was nothing more than to slow down this decline. As one of the consequences of the series of structural adjustments that US politics has undertaken ever since – making of the former satellites, Western Europe and Japan, partners in the implementation of common world policies with whom it works in various international institutions, from the Trilateral Commission and the G-7 to the World Economic Forum in Davos – the new geopolitical order has emerged, an order we might call "multilateralism". At stake is a new global condition in which, as Walenstein writes, "the United States has been reduced to the position of being one strong power in a multipolar world."
But this is also a condition in which the alignment, or should we say, the politics of alignment, becomes an imperative, although it is not felt as such. The decision to align is made today as a matter of rational choice. And it is made everywhere, not only on the geopolitical level. One cannot see oneself as a member of a community if this community is at the same time not seen as a member of something else, of another, larger community aligned around a so-called value, a cultural or religious identity or simply an interest. The urge to align seems to have become a driving force of social being, not one of its affects that regulates external relations of a society and is activated only after this society has already ben created, but a sort of condition of its possibility that precedes and facilitates its very formation and assures its inner consistency and historical reproducibility. To be social today means to be always already aligned. And since becoming social is always already a matter of becoming political, alignment is a political issue or even better, an issue of the political, that is, an issue of creating society and bringing into existence the social being as such.
Yet the multipolar world in which alignment no longer follows some universal principles grounded in a vision of a more just world, free of war, but has become instead a matter of "rational choice" led by egoistic interests of a particular country or its current government, is far from being a world of social stability and peace. On the contrary, ever-larger parts of the existing geopolitical order deteriorate into a sort of permanent state of exception in which the former social contracts appear to be dissolved forever. These new spaces of disorder, lawlessness and violence generate new forms of social misery, economic regression and political extremism, which can no longer be contained outside of the actually existing democratic order. As a consequence, the old bastions of socio-political stability come under increasing pressure from no longer controllable migration and the greater threat of terrorism. Only two decades ago there was a widespread feeling that the world had entered a permanent state of peace, and this idea is now severely shaken. Even the vocabulary of geopolitics (and Wikipedia too) has reacted to the new reality. It has coined a new concept, the notion of "The Cold War II". The idea, which is also known as "The New Cold War" and the even more sinister "The Colder War", refers to the renewed tensions, hostilities, and political rivalry that intensified dramatically in 2014 between the Russian Federation on the one hand, and the United States, European Union and some other countries on the other. The tensions escalated in 2014 after Russia's annexation of Crimea and its military intervention in Ukraine.
So the Cold War is back, moreover, the geopolitics is back on the agenda.
At this place we should come back to what Wallerstein calls "the world revolutions of 1968". Not only did they denounce the Yalta deal; they also denounced "The Old Left", the traditional anti-systemic movements comprised of three components, Communist parties, Social-Democratic parties, and national liberation movements, and which Wallerstein defines as having a two-step strategy: first to conquer state power, and then to change the world. The revolutionaries of 1968 concentrated primarily on the second step, to change the world, which has become a differentia specifica of the New Left.
Yet today when it comes to the politics of the global Left, both practically and in terms of its historical visions, it is not difficult to diagnose certain deficits. According to Alberto Toscano, in the last 25 years the Left has almost completely ignored the geopolitical perspective. Totally devoted to all sorts of so-called struggles for hegemony, mostly in the realm of culture and education, as well as socially focused on the sphere of civil society, it has forgotten, as Toscano argues, that geopolitics frames the conditions of a political action, especially in terms of a politics of radical transformation, → emancipation or revolution. Geopolitics situates all these struggles into the reality of geopolitical constraints like economic competition, scarcity of resources, biopolitics of population or military calculations.
The old anti-imperialist, anti-colonialist Left, including the left involved in class struggles, was much more realistic and was concretely involved in instrumental geopolitical calculations. Toscano calls this "battle-hardened realism" and argues that it disappeared from the strategy of the Left after 1989/90, i.e., after the fall of historical communism. It seems as though the Left for more than 20 years completely accepted the proclamation of historical closure and liberal-democratic hegemony, and thus Fukuyama's turn to so-called post-history in which no historical move is imaginable outside the ultimate horizon of capitalism and Western liberal democracy.
Yet this is changing now. The circle of historical idleness and immobility is finally closed. If the Cold War is back, the geopolitics too should be back on the left-wing agenda, and with this, the drama of alignment as well.
Alberto Toscano, "Carl Schmitt in Beijing: partisanship, geopolitics and the demolition of the Eurocentric world", Postcolonial Studies 11, no. 4 (2008), 417–433.
Dmitri Trenin, "Welcome to Cold War II", Foreign Policy (4 March 2014).
Immanuel Wallerstein, "Precipitate Decline: The Advent of Multipolarity", Harvard International Review 29, no. 1 (Spring 2007), 54–59.
alignment non-aligned movement postsocialism
Boris Buden, alignment, 23:22 min, 2015, MG+MSUM
Group Discussion, Geopolitics - Discussion #1, 1:31:03 min, 2015, MG+MSUM
map of connections
+MSUM, geopolitics: map of connections, 1250 x 800 mm, 2015, MG+MSUM
alignment, Boris Buden, 8 September 2015, Berlin, Germany

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: How to output in multiple terminal windows with a c program I am writing a simple chat-room application in c using posix sockets.
However I'll have this issue in sending messages.
(client1)say something: Hello folks! what are

client2 said: xyzabc

client3 said: dsgh

Here above is the client1's terminal window where he was trying to send "Hello folks! what are you doing?" but before he could write his messsage and press enter, client2 and client3 sent something.(separate thread for receiving messages)
I'm trying to tackle this issue by using 2 different terminal windows for each client, one for writing the message and another for displaying the chat messages.
To begin with I've opened a gnome-terminal window by writing
system("gnome-terminal");

but now,
I want to perform some read write operations on the terminal window I've opened and the existing window.
printf("This is existing window"); //want to print this on existing terminal

printf("this is new terminal window"); //want to print this on new terminal

scanf("%d",&a); //take input from existing window

scanf("%d",&b); //take input from new window

I've read here that I can do it by reading/writing from proper /dev/pts/<n> file.
But how do I find the n in the /dev/pts/<n> for the current terminal and the new terminal window I just opened? Is there any better way of solving the issue?

A: One known good way is using the alternate interface to GNU Readline:

Some applications need to interleave keyboard I/O with file, device, or window system I/O, typically by using a main loop to select() on various file descriptors. To accomodate this need, readline can also be invoked as a `callback' function from an event loop.

The pseudocode skeleton is as follows:
  rl_callback_handler_install (prompt, my_handler)

  while true
     wait on stdin and socket (select or poll)
     if stdin is ready
        rl_callback_read_char();
     if socket is ready
        read message from socket
        save readline state
        print message
        restore readline state

   void my_handler(char* line)
        send line to socket

Saving and restoring readline state is
  saved_line = rl_copy_text(0, rl_end);
  rl_save_prompt();
  rl_replace_line("", 0);
  rl_redisplay();

  rl_restore_prompt();
  rl_replace_line(saved_line, 0);
  rl_point = saved_point;
  rl_redisplay();
  free(saved_line);

A complete, if rudimentary, chat program that utilises this method can bee found here.

redpajama_set_name: RedPajamaStackExchange


From September 2017 we are asking you to order your repeat medicine directly from us at the Practice, rather than allowing your repeat prescriptions to be ordered on your behalf by your local Pharmacy or outside companies. If you already order in this way, you will not be affected by the change.
There is a National 'Only Order What You Need' campaign which has been adopted locally to reduce medicines waste. You can access further details on this campaign through the following website http://www.medicinewaste.com/campaign.
From the week commencing 4 September 2017, we will only accept repeat prescription requests from you, your carer, or a family member/friend – NOT from your local pharmacy.
Ordering online – it is easier than you think and we at the practice will help you to set this up, meaning you can order 24/7. You will need to collect a letter from the practice which will give you your access ID. Please contact the surgery if you require further information.
Ordering via Patient Access Mobile App – this is a free mobile app and can be used to order your medications. You can sign up to this App at the login screen for Patient Access if you are already using online ordering – a screenshot of where to find this new App is below. Please note that you cannot at present order medication via the MyGP App.
Email your request direct to us – Email any repeat requests to wiccg.hamilton@nhs.net please include your full name, date of birth and items required.
Unfortunately we are unable to take prescription requests over the phone. To avoid disappointment please do not ring the practice to request your repeat prescription.
Remember to allow enough time when ordering your repeat prescription for those items that you need. You should order at least 48 hours before your medication is due, so that your prescription is ready to collect at the Practice or at your nominated Pharmacy.
We will work with you to try and make it as convenient as possible to order your prescription using the method that suits you best.
We can help you to set up on-line ordering.
Where possible we can forward your prescription to your nominated Pharmacy via the Electronic Prescribing Service so you can collect your medication directly from there.
Although the way you order prescriptions may be changing, the options you have for collecting your prescription(s) are not affected.
If you already order repeat prescriptions directly from your GP yourself please continue to do this.
Pharmacies will still collect prescriptions from GP Practices or receive them electronically.
Please let your Pharmacy know when you have ordered your required items.
Pharmacies will still deliver medicines and other items to your home where appropriate.
If you feel you are unable to order your repeat medication directly yourself through one of the available methods, then please contact Adrian Jones at the practice to discuss this.


text:
Rate the Reds: Toronto FC 3-0 Ottawa Fury
A solid, comfortable win from the Reds to move on to the final.
By Charlie O'Connor-Clarke@charliejclarke Jul 25, 2018, 9:50pm EDT
Share All sharing options for: Rate the Reds: Toronto FC 3-0 Ottawa Fury
Nick Turchiaro-USA TODAY Sports
Toronto FC stamped their ticket to the Voyageurs Cup final on Wednesday by beating the Ottawa Fury 3-0 at BMO Field, and 4-0 on aggregate. The Reds now await the winner between the Montreal Impact and Vancouver Whitecaps to find out who they'll be seeing in the next tie.
It was a fairly comfortable one for TFC; they were buzzing around the Ottawa box all evening with lots of chances. This is Toronto's third win in a row, including Saturday's victory in Chicago and last Wednesday's triumph in Ottawa.
Did TFC's young Canadians impress you? How about the veterans starting to work their way back into the lineup? Was there anybody you would've liked to see more of?


text:
Watch: Mika Singh and Chahatt Khanna's 'quarantine love' song is all about romance and chemistry | Music News
Apr 16, 2020 Chahatt Khanna, Mika Singh, Mika Singh Chahatt Khanna quarantine love, quarantine love
New Delhi: Folks, remember how the internet went into a tizzy after singer Mika Singh and TV actress Chahatt Khanna's pictures titled 'quarantine love' went viral? Well, it was actually a promotion gimmick as the title of their new music video, which released recently, is also the same. 'Quarantine Love' has been shot at the duo's homes amid the lockdown as they are neighbours and speaks of love, chemistry and romance. The song is a mashup of old tracks 'Bade Achche Lagte Hai' and 'Kehna Hai Kehna Hai'.
'Quarantine Love' narrates the story of a day in the life of a couple – Mika and Chahatt – and how they try to keep their romance alive. It ends on the note, "While we are all in quarantine, let's not forget to love."
Watch 'Quarantine Love' here:
Meanwhile, take a look at the pictures which sparks their dating rumours:
After the pictures went viral, Chahatt and Mika clarified that they are not dating, but both of them admire each other and are caring and genuine.
Addressing the relationship rumours, Mika said in an interview, "We were just posting stories tagging each other, but if people think that we are in a relationship, so be it. It's personal and also too early to talk about something at such an initial stage."


text:
Q: MvvmCross Xamarin.Forms iOS application never launches on iPhone Simulator and simulator remains black I am developing Xamarin.Forms Application using MVVMCross. The application works perfectly in Android but in iOS, when I deploy the app, iPhone Simulator is black and it seems completely dead. And in Visual Studio 2019, its showing that App is Launching in iPhone Xs 12.0 and it remains this forever

A: Thanks to everyone who tried to help. But I have found the answer.
There were no error logs or exceptions thrown, whenever I tried to deploy or debug the code in Simulator, it just kept showing that App is Launching in the iPhone XS ...
The problem was that I had not selected "Remote Simulator to Windows" (Options->Xamarin->iOS Settings-> Simulator). Checking this option, resolved the issue.


The day after Halloween is a tough day. We are all tired from last night's trick or treating, and we need to rest. You may think that, but what we really need to do is party! We have to celebrate a holiday called Dia de los Muertos, otherwise known as Day of the Dead. Day of the Dead is a Mexican holiday that celebrates, and honors relatives that have died. A lot of people on this holiday make altars, and offer bread and flowers to welcome the spirits into their homes. People dress up and share food with neighbors and paint their faces like a skull. People often try to feel the presence of their loved ones. This holiday lasts for two days: November 1st and 2nd.
Now you might be wondering, what does this have to do with food. Well, for Day of the Dead, my dad took me out to a special dinner at Dirt Candy where we had a special Day of the Dead themed dinner. This was a special event so you had to get a special ticket for an eight course meal. Dirt Candy is a vegetarian restaurant owned, and run by Chef Amanda Cohen.
The first course we had was a corn brioche with elote butter. The brioche was a warm, spongy bread that had a slight taste of lemon zest in it. The elote butter was a creme fresca, with cilantro oil in it. It did give off a little tang but it was nice. The butter was creamy and light. The warm spongy bread with the light creamy elote butter went great together.
The next course was beet tacos. The dish was a beet infused taco, and in it was creamy chipotle, salt roasted beets, and purple cabbage. I honestly thought that I was not going to like the dish but it was really tasty. The dish was crunchy, soft, and spicy. It was like a party in my mouth.
This third course was my favorite. The dish was tostilocos with chipotle, jalapeño, and orange jicama sauce. I am not kidding when I say this the only thing that was wrong with the dish was that there was not enough sauce! My dad and I cleaned the plate. The flavors in this dish popped. It was spicy, crunchy, smooth, and the pickles on the dish made it stand out. I thought that the chipotle and the jalepeño were really spicy but that the orange jicama sort of cooled it down. That was the end of the appetizers.
The first entree was a pumpkin ceviche. Well, if you do not know what ceviche is, it is usually a fish appetizer that is made of raw fish and has lime juice on it. So, now you can probably guess what this dish was. It was raw pumpkin with avocado and lime juice. There were sunflower seeds on it with some fresh herbs. The pumpkin was cut like a carpaccio and was very smooth and thin. When I had it, I could taste a hint of olive oil, and it was seasoned very nicely. I got salt and pepper with a bit of lime or lemon juice on it. Simple but tasty. I also want to say that I really liked the sunflower seeds. It gave it that balance of crunchy and soft.
The next dish was a sweet pea enchilada. An enchilada to me is like a burrito, but cut into slices, so this one was no different but I liked it a lot. It had a very soft outside and a more crunchy inside. It was also a little bit sweet and a little bit sour. There were also different sauces on the plate that I dipped peas into and it was really good. I especially liked the sour cream and hummus. This was a fun dish that I enjoyed, and would love to come back for more.
This third dish was called Pepper. It was not exactly pepper though. It was beans in a little skillet with pepper "life savers" all around it which I thought was clever. The beans were in a sauce that was a five pepper sauce. This dish, specifically the sauce, reminded me of oyster sauce and was very smooth. I also thought that the salad with the beans and the sauce was stupendous. I know I said the "life savers" were clever, but they were also really fun to eat. Overall, I thought this dish was the most fun dish with the "life savers" and the tiny skillet.
Now, this last dish was my favorite entree, and my third favorite after the tostilocos and the pumpkin semifreddo that you can read about in my next paragraph. It was the brussels sprout tacos! The dish was a "make your own" taco which I love when we have taco night at my house. So, the layout was the brussels sprouts were on a really hot plate that you could not touch like a bibimbap bowl. To the side of the brussels sprouts were lettuce leaves they were the shell. Then, the rest of the plate had toppings on it; creme, radish, sour cream, crunchy corn sticks...etc. I went all out. I took the lettuce leaf put brussel sprouts and all of the toppings on it. The taco was delicious. It was smooth, spicy, and creamy. The brussels sprouts were packed with a nice kick, that made me want to eat them all day long. Just typing this paragraph makes my mouth water. Before my dad and I went to Dirt Candy he kept saying how much he loved the brussels sprout tacos, so I waited all night long for them and it was well worth it.
Last, but certainly not least was dessert. It was a pumpkin semifreddo pie with mango and chili. The semifreddo was like a frozen pumpkin pie with a slab of crust under it which gave it a cool hip style. I tasted like pumpkin ice cream and the mango and chili was a nice compliment with the pumpkin. The crust was so good it was hard and flaky just the way I like it. With the semifreddo we also had a mexican hot chocolate that we shared. It was very heavy with a little bit of paprika in it and not watery at all. It was perfect.
Overall I had a wonderful meal and would love to come back to Dirt Candy with my whole family including the new addition, Josie.
Halloween is a super fun holiday especially when you make treats. But when you cannot have treats because of allergies, that is not fun. My brother has a tree nut allergy and cannot have the treats his class brings in because it risks him having an allergic reaction. So I decided to make him treats that he can have and share with his class! I was going to make him mummy Rice Krispie treats and if you have an allergy to peanuts or tree nuts this is a good recipe for you.
I started off by melting three tablespoons of butter on low heat. I stirred them until they melted completely and then added a bag of mini marshmallows along with some rainbow sprinkles to add some color. You want to keep stirring until it is completely melted before adding six cups of Rice Krispies. Then, you want to keep folding the mixture until the marshmallows look like they are stretching the Rice Krispies. After it looks like cobwebs, turn off the stove. Then get a pan and spray it with cooking spray. Slowly start pouring the mixture into the pan. You want them to cool so put them in the fridge for fifteen minutes. When you take them out of the fridge, you want to put parchment paper over a cutting board. Then, you want to flip the pan onto the board and tap it a few times. Lift the pan, and it should have come out nice and clean. You next want to cut the treats into even squares. Heat up a bowl of chocolate until it is silky smooth. After you heat up the chocolate, you want to take a knife and spread the chocolate on one side of the Rice Krispie treats. To add the finishing touch, cut a mini twizzler in half and stick the two pieces on the treat to make creepy eyes! Keep repeating until you have finished all of them. I hope you will use this recipe and enjoy it just as my family did. Happy Halloween!!!!!
It is not every day that you get to go down to Washington D.C. to see your cousin become a United States Ambassador. Last week, I was really lucky to get to go down to Washington D.C. for a few days for this exact opportunity. As you may have seen on one of my previous blog posts, I went to Vietnam for a couple of weeks to visit my Cousin Rena and to taste the wonderful Vietnamese cuisine. Now, she has been appointed the United States Ambassador to Laos, which is a neighboring country to Vietnam, and from what I have heard, has the best South Asian food.
Washington D.C. is far from New York so it was a very long ride, but when we eventually got there we had a family at a Laotian restaurant so we can taste, and get a feel for the cuisine of Laos and to have a party before the ceremony that was the next day. My cousin Rena knows that I love food. She was so nice and she had someone show me all of the different Laotian foods and tell me what was in it. I made a plate with some different stuff on it. I was honestly not starving but I took a good amount of food. I got spicy eggplant salad, sticky rice, pork shoulder, and sun dried beef.
I had a little bit of each dish because I was not that hungry, but all of them were satisfying. Let's start off with the pork. I really enjoyed the pork. It was fatty, and had a nice char on it with a lot of really good flavors. Next, was the eggplant salad. It might have been my favorite one even if I did not have a lot of it. Considering I do not love eggplant, this dish caught my attention. It was very spicy but in a good way. The sticky rice was cool. Sticky rice is a glutinous rice and I kind of liked it better than regular white rice. Lastly, I tried the sun dried beef. It was almost like beef jerky because it was tough but it was better because it had a tang to it.
The next day we went to go see her get sworn in at The United States Department of State. It was super cool because inside there were a lot of historic papers. We even got to see the real Emancipation Proclamation signed by Abraham Lincoln! Her speech was very nice although it was a little weird looking up at the stage thinking this is my cousin and not someone I do not know. Overall the whole experience was great and the meal was very good. I cannot wait to go to Laos to see my Cousin Rena again and try more amazing food there!
What is better than going out for your parent's anniversary and getting a hot dog, fries, and a milkshake? Going out to get a Black Tap milkshake, with a Walter's hot dog, and potato puffs is better than that!.
Walter's Hot Dogs is located in Mamaroneck and, in my opinion, has the best hot dogs you will ever taste. They are split down the middle and charred with a grilled bun. They also are famous for these tiny fried mashed potato balls that are addictive. Black Tap is located in New York City and have these huge amazing milkshakes that are to die for. They are not super heavy, but they are light, creamy, and airy. For one weekend only, they decided to do a little swap. Walter's was going to sell Black Tap milkshakes and Black Tap was going to sell Walter's hot dogs. So, obviously my family was going to go to Walter's and to make it even better we were going on my parents wedding anniversary.
Walter's is unlike any hot dog stand you've ever seen. It looks just like a pagoda. A pagoda is a South Asian temple, that is used to to keep remains of saints, and kings. Even though Walter's was selling the milkshakes they were also still selling their famous hot dogs. So, when we went we got four hot dogs, two orders of potato puffs, and two milkshakes. We got two because my family of four was not going to drink those huge milkshakes all by themselves.
The first time you bite into a Walter's hot dog, something is born in your body that hasn't been there before: the need to go here every weekend. When you bite in the hot dog, you notice a couple of things that make them unique. First, most hot dogs aren't split. Splitting them makes them get a char inside and outside which makes them crunchy. Also they are not all beef. They are half pork, half veal. I love that it has that nice char and they get so much flavor from the veal and the pork. Next, the potato puffs were perfect. The outside was a crispy fried shell and the inside potato was so soft. The very last thing is the milkshakes. The thing that I really liked about their milkshakes was that they didn't fill you up so much, and it was very silky and not really heavy. It was a good shake but I just wanted to taste a little bit more of the oreo in the shake. Everything else about it was really good, especially the frosting. Overall it was a really satisfying meal, and I hope to go there again soon!
What better way to kick off summer than a barbecue! Well, personally, I love barbecues, playing, and eating delicious food.....especially the food. So, that is exactly what my family did. We went to our friend's (the Braunings) house for a delicious and fun barbecue. My family wanted to bring something we had never made before so we made a chocolate mousse. We started by separating egg yolks which you get when you crack the eggs you sort of toss the yolk back and forth between the egg shells so you can get all of the egg whites. Then you are just left with the yolks. We did that 11 more times and put them in our Kitchen Aid mixer and whisked them until we saw the peaks rise. After that we put whipping cream in a small pot and put it on simmer. When it started bubbling, we put that into the the egg mixture until it was all mixed. Then we put that mixture back into the the pot and put it on simmer again and then mixed in chocolate chips (Ghirardelli) and kept mixing it until all the lumps are gone. We put the mixture into a bowl and then put plastic wrap over it and put it into the fridge for two hours. While that was freezing, we started to make our whipped cream. Before we started, we the whipped cream, we put a stainless steel Kitchen Aid bowl into the freezer for about 15 minutes. The amount of whipping cream you put into it depends on how much whipped cream you want to make. We put in a lot since we were going to a pretty big barbecue. We used a setting of about six on the mixer. It took a little bit for the whipping cream to start to look creamy so when you do it, do not get frustrated if it doesn't get creamy. When it starts to get creamy add in about three cups of sugar. Then we started it back up on the mixer at about a setting of four so it isn't too creamy. Then we put that back in the refrigerator. When the time was up, we folded half of the whipped cream into the chocolate mixture and the other half we saved to put onto the chocolate mousse.
My favorite thing that I had to eat at the barbecue was the corn they made. Corn is good on the grill, which I personally think is the best way to make it, but it is even better how the Braunings made it. The first thing you do is put this really good cheese sauce on it and then roll it in this really good Mexican Cheese. Then you are done! It might not sound good, but it is amazing! Then we had the Chocolate Mousse. The first thing I have to say about it is that it is very rich so, I would not have seconds of it because it might make you a little queasy. Although it is really good I would totally make it again, and it was super chocolaty and the whipped cream on it was very delicious. I was so glad to make something different, and know that it is good to make it again.
If you have ever eaten Kellogg's Rice Krispies I'm sure you have seen the recipe on the back of the box for Rice Krispie Treats. Well I have when I eat them I always see that recipe. Each time I saw it I got more and more interested in making them. So, finally I decided I'd make them. I got lucky and I found a full box of Rice Krispies, mini marshmallows, and butter. I heated the stove to medium, and in a skillet I melted three tablespoons of butter. When it was fully melted (which takes a little while), I added in the full bag of mini marshmallows, and melted them until they were fully melted, so that it sort of looked like fluff. Then, I added in six cups of Rice Krispies (which is almost the whole bag), and I mixed it all together until it looked like a Rice Krispie treat. If you have ever seen a Rice Krispie treat you will know that the marshmallow sort of clings to the Rice Krispies. That is how it should look. After you do that you turn the stove off and pour it into a tinfoil pan, and press it down to look like a rectangle. Then, you let them cool for about fifteen minutes, and then cut them. Then enjoy!! The next time you have a box of Rice Krispies lying around maybe you can make these easy yummy treats just like I did. Keep checking my blog because, I have been really getting into cooking and baking more so there will be a lot of blog posts coming up on Jordan's Lunch Box.
During February break my family went to Disney. I know a lot of people might think Disney is only a great amusement park, and it is, but the food is equally as awesome. So, in the next few paragraphs I will tell you my top four restaurants and the top two snacks that I had.
The first restaurant I loved was one that we went there on our first and third nights there. This place is called Boma and it is an African themed buffet that has soups, stews, and sliced meat. Some of my favorite things there were the sliced meats and the bread pudding. I really enjoyed the sliced steak because it was cooked well. It was a little chewy, but that gave it nice flavor, and it was seasoned perfectly. Another one of the sliced meats was the pork shoulder. I really liked this meat because it was soft, and I particularly like softer pork. The bread pudding was the best dessert ever. If I ever went back it would definitely, no doubt, be on my list to have again. It was served warm with chocolate, vanilla, and banana flavors and was a nice way to end a meal in my opinion especially being in an airport and plane for most of the day.
The next restaurant I would be delighted to talk about is called Sanaa and it is an Indian fusion restaurant at the Animal Kingdom Lodge. The #1 thing we had there was the bread platter. The bread platter was a couple of different types of naan (an Indian flat bread) with twelve different types of sauces put in order from spicy to sweet. My family split up all the bread up equally, and then we dug in! The first one I tried was one that was recommended to me by someone was the pickled garlic. I remember it giving heat but not so much that it wasn't enjoyable. I think out of all the sauces, that one really stood out to me. After that, I tried a few more of the sauces that were really good too.
My favorite park in out of the Magic Kingdom parks is Epcot. I love Epcot because I love going to all of the different countries and trying new, exotic flavors. When we went to Epcot for dinner, we went to a Moroccan themed restaurant. As soon as we stepped in, I loved it. There was music, and a belly dancer and all of these yummy smells. We were seated right next to the dance floor which I really loved. We ordered two dishes, and both of them were packed with new and interesting flavors. The first dish we got was chicken bastilla. It was like a samosa. It had meat, and it was dipped in powdered sugar so, it was a sweet and savory samosa. I thought it was pretty good. I guess I just don't like how the flavors contrasted a little bit, but that is just my opinion. The next thing we had was beef kabobs with couscous. I loved the moroccan spices on the beef which gave it really bold flavors and the couscous went well with the beef. I liked the restaurant and it was also rated as one of the best restaurants in Epcot.
Everybody knows that Magic Kingdom is a magical place but it also has magical food. Be Our Guest is in a restaurant in the center of Magic Kingdom that is based off of the Beast's Castle from the movie Beauty and the Beast. Be Our Guest is the best restaurant in Magic Kingdom and is really hard to get into without a reservation. We got really lucky and made a reservation for our last day. When you walked it was huge and it was really beautiful. When you got in you waited on a line to go to this computer. Once you got to it, you ordered on its touch screen which foods you wanted. It game with a drink, an entree, and a dessert. I got a tuna salad and potato leek soup. The dining room was a "seat yourself" with huge tables and a sculpture of Beauty and the Beast dancing in the middle. Your food came on a cart that servers had. Now let's talk about the food. My tuna salad was really good. The tuna was very nicely cooked and I really enjoyed the crust on the outside. My potato leek soup was outstanding! At first when I ordered it I was a little hesitant, but the potato gave the soup a nice creamy taste, and the leek was very tasty in the soup. For dessert, I had the Master's Cupcake which had grey frosting. Try the grey stuff, it's delicious! Overall, I'm really glad we went there as our last meal and I really did have a magical time.
Even the snacks are special in Disney. In Magic Kingdom some of you may have heard of an ice cream called the Dole Whip. It is a pineapple ice cream made in Magic Kingdom, and throughout Disney. Personally I don't like tropical flavors but I was ready to give these a shot because Disney is magical after all. The Dole Whip was amazing! It was creamy with a fruity taste that went well with the cream. Now that I am back in New York, I am really craving another Dole Whip.
The next special snack is the turkey leg. It is a giant turkey leg that we got at Magic Kingdom. It was nice and smoky and had crispy skin. It was so huge that my whole family went through one and we were all pretty full after that. I really enjoyed my time at Disney, and I hope that if you plan to go to Disney, you will go and eat some of the things I have recommended. If you do go, I wish you have as magical a trip as I had.
I've been to many dinners at restaurants before but the one that I am writing about is one of the most interesting restaurants I have ever been to. It is called The Bohemian and it is a hidden restaurant and you have to go with a member in order to get into it. It is hidden behind a Japanese butcher's shop in New York City. You find it by going into a special passageway on the side of the butcher to get to it. My dad is a member so he took me, my mom, and some friends. Since I went, I am a member now too. That is how it works.
The whole restaurant was comfortable and well put together. It had beautiful artwork which added a nice bright touch to the room. One of the artwork pieces I really enjoyed. It had a nice blend of colors that stood out. It looked like it had different textures to it which made it look unique and different. Also, there was a little diorama of this little house made out of stone with real leaves and grass. When we were eating I was thinking what other restaurant has a cute little diorama besides this one. I thought it was very unique. Another thing, that was awesome besides the food and drinks was the tables. While you are eating dinner, you sit on couches and there is a little glass table in front of you. I thought that usually in some restaurants they just have chairs and tables, but this is way more comfortable when you are eating.
The first dish we had was a cheese fondue. The sauce consisted of: cream cheese, garlic, butter, and the special ingredient was anchovies. What they do is they make the sauce, and then in front of you they heat it up in a little bowl. Then, when it is all heated up they come out with a big bowl of vegetables for you to dip in the sauce. The sauce was nice and thick, and had a nice cheesy taste. Not too cheesy, but cheesy enough to get a nice flavor. You really could not taste the anchovies, but I think they put it in there to get the heaviness. The crunchy, cold vegetables just went very well with the hot cheesy sauce, and I thought you had to take a lot of it to really enjoy it as much as I did. If I had to put a sauce on everything, that would definitely be the sauce.
The next dish was a sea urchin croquette. It had a crunchy ball on the outside, and on the inside was mushrooms topped with uni. What you usually do is mash it up together and then eat it which is what we did. It tasted soft, and had a nice balance of mushroom and uni. I am a person who doesn't like slimy consistencies, so I didn't really like the uni, but I thought it was a good overall dish. If you go though you should definitely order it.
Next was a mac & cheese. It had six cheeses in it. Two of the cheeses were Gruyere and a spanish blue cheese. Now, usually I do not like blue cheese, but that mac & cheese was so good that I could eat it all day. With the mac & cheese there was toasted bread with a homemade tomato sauce on it. When you put the mac & cheese on the bread, it was so good. You have the oozy good cheese on top of the crunchy bread with a nice, savory tomato sauce. I would totally get that again when I go back.
After that dish was my favorite one. It was a wagyu steak sashimi, with homemade wasabi, pickled radish, and roasted garlic. I really liked how the garlic gave the beef a nice kick while the beef gave out good flavor and nice seasoning. The beef melted a little bit in your mouth. I love when beef melts in your mouth. In my opinion, it really outshined the other dishes.
Next, was the famous and most delightful bacon. This time, it was a different style of bacon. It was double smoked, and under it was creamy mashed potatoes along with toast that had a raisin spread on it. The bacon went surprisingly well with the potatoes. It was a little heavy, but very tender and delicious. I like what they did with the toast. They put raisins on it that melted a little which acted like a jam on the toast. Also, I thought that if you put them all together on the toast it tasted amazing. This dish was my second favorite after the steak sashimi.
This next dish was an interesting miso black cod. It was sweet, but had that sea flavor to it which went nice together. What I thought was interesting was that there was a tiny pickled plum in the dish. It tasted nothing like a plum I thought it tasted more like an olive to be honest, but it was very good. There was also a roasted shisito pepper that was in the dish. It was soft, and a little salty which was a nice combination. I enjoyed that dish overall. I thought it had nice flavor.
We then had branzino. We got two of them, and they were huge, so we split them, and we still had leftover branzino. The branzino was very good it was a little sweet and a little salty. My favorite part was the cheeks because they were the sweetest part of the fish. The vegetables that came with the fish went so well with dish itself. The vegetables were: cauliflower, brussels sprouts, olives, and zucchini. If you had everything on the dish in one bite it would probably be the best bite of your entire life.
The next dish I had I took a bite of because it was very strong, and sweet it was foie gras sushi. The foie gras was on top of the rice, and had a powerful flavor. Usually I don't enjoy foie gras but this was very good, and the sweetness was sort of shield to the parts I don't like.
The last entree was a wagyu beef burger. The lettuce gave it a nice little crunch. I like meatier flavors and this one was both sweet and savory. I think I've had better burgers though like the ramen burger.
added a nice citrus taste to the yuzu/vanilla base on the bottom. All the citrus flavors combined were awesome it made my mouth tingle. This was a favorite dish of mine. It is making my mouth water writing this paragraph.
All in all, it was a great dinner and I am so excited for the next time we can go. All of the dishes were wonderful, and I hoping to try new dishes, and have old dishes next time.


Manuscripts, circa 1800, of Scottish and English tunes, previously owned by Helen Banks, Haddington.
Verse and music of Thomas Stewart, music-seller, Edinburgh.
Manuscript drafts and printed copy of "Robin`s Christmas Song", original lyrics attributed to Robert Burns.
Papers of and concerning John Corrie.
Song book (the last four attributed to Robert Wilcox) of Andrew Hume, Dunbar.
Music belonging to Mary Grant, Cullen House.