精华内容
下载资源
问答
  • js事件基本概念

    千次阅读 2018-07-15 20:08:10
     概念事件流指的是事件从捕获、处于目标、事件冒泡三个阶段 3.DOM的三个阶段?  DOM0:事件的添加用onclick添加。  DOM2: 事件的添加用addEvenListener(type. function , buhuo);并且可以添加多个事件,this...

    1.事件模型:

     

    •         事件冒泡。
    •         事件捕获。

    2.事件流

        概念:事件流指的是事件从捕获、处于目标、事件冒泡三个阶段

    3.DOM的三个阶段?

        DOM0:事件的添加用onclick添加。

        DOM2:  事件的添加用addEvenListener(type. function , buhuo);并且可以添加多个事件,this===当前的对象。IE浏览器是通过attachEvent方式添加事件的,当使用它创建多个事件的时候,它会从后向前触发事件。并且他的事件处理会在全局作用域执行,this===window。

        DOM3:新增键盘事件。

    4.event对象

        event对象中包含着所有事件相关的属性,如bubbles、stopPropagation(),target依次分别表示,是否冒泡、取消冒泡、时间的目标等。IE浏览器是通过event.srcElement来获取当前对象。其他都是event.target

    5.事件委托

        事件委托就是利用事件冒泡,只指定一个事件,就可以处理某一类型的所有事件。

        优点:

                减少了对DOM的引用,降低了DOM操作的花费事件。

                整个页面占用的内存空间更少,能够提升整体性能。

    3.1 这里的IE是IE11以下; 3.2 参数的差别: attachEvent()的第一个参数比addEventListener()的事件名多一个"on", 且没有第三个参数,因为IE事件模型只支持冒泡事件流; 3.3 事件处理函数作用域的区别: IE中事件处理程序处于全局作用域,其内的this会指向window; 而用DOM(0或2)级事件的事件处理程序的作用域是元素作用域,其内的this指向其所属的元素 例: document.addEventListener("click", function(){ if(this == document){ alert("此时this指向document"); } }, false); 3.4 事件对象event的属性方法的差别 IE DOM cancelBubble = true stopPropagation() //停止冒泡 returnValue = false preventDefault() //阻止元素默认事件 srcEelement target //事件目标

     

     

    展开全文
  • C#委托和事件概念

    千次阅读 2018-10-10 14:26:41
    事件是软件系统里的两个子系统之间,或者两个模块之间,或者两个对象之间发送消息,处理消息的过程。在面向对象的世界里,就可以统一认为是两个对象之间的行为。 两个对象之间发送的这种消息,对发送方来讲是产生...

    一、事件的本质

    事件是软件系统里的两个子系统之间,或者两个模块之间,或者两个对象之间发送消息,并处理消息的过程。在面向对象的世界里,就可以统一认为是两个对象之间的行为。

    两个对象之间发送的这种消息,对发送方来讲是产生一个事件,对接受方来讲是需要处理某个事件。这种消息可以是用户操作产生的或者软件系统里的某个对象产生的。

                                                                                              对象之间的事件处理
     

    从上图可见,对象一产生一个事件,这个事件发生以后需要对象二执行某种动作。这就是事件机制。对象一是事件的产生者,或者发送者;对象二是事件的接收者或者订阅者。对象一产生某种消息,需要对象二响应并处理这给消息,这就是事件的本质。

    以往的很多软件系统都在采用事件机制处理很多问题。例如从最本质的计算机体系中的软中断处理,到masm中的jump,到c/c++中的回调函数等等。只不过越高级的软件系统处理事件或者其提供的很多处理方法越接近人的思维,而越远离机器思维。构建软件系统的方法从本质上就是从机器思维走向人的思维的过程。

    二、事件机制的好处

    1、直接调用

    采用事件机制有什么好处?事件发送者为什么不直接调用事件接受者提供的处理函数呢?

                                                                                                     调用机制
     

    如果所示,两个对象之间的调用机制。对象B调用对象A的方法,可以通过函数指针或者跳转(汇编语言)等实现。这种方法造成的结果是A和B的紧密耦合,即B对A有很强的依赖性。可以看成B是事件的发布者,A是事件的响应和处理者。不过这种机制用事件机制解释从理论上就比较牵强了。同一种事物,其实现的思想不一样。

    现在假设有个对象C也要响应B的事件。那么,按照上面的这种机制,需求修改对象B的代码,调用对象C的方法。这样机制造成了非常强的依赖关系。代码的修改和扩展非常麻烦。如果对象越多,这种关系越多,整个系统越复杂。如果一个系统里面对象很多,这种依赖关系也很多的情况下,这种调用关系就会十分复杂,对系统的健壮性和优良性会造成影响。

    2、回调机制

    如果按照c#的委托思想,B需要事先提供对事件处理函数的某些回调指针。这样,其它对象,例如A和C就去修改它的回调指针,把自己的方法联系到上面。但是它们之间的耦合关系就比上面简单了。

                                                                                                     回调机制
     

    回调机制的思想已经比较接近委托的概念。其实委托在本质上也就和回调指针差不多,只是概念上更加高级。对象B作为事件的发布者,事先定义一些回调函数指针,然后在本地合适的地方调用这些指针指向的函数。而事件订阅者或者处理者A和C所作的就是让给这些空指针赋值,把自己的事件处理方法赋给它,从而实现B调用A和C的方法。

    在 C 或 C++ 中与委托最为相似的是函数指针。然而,函数指针只能引用静态函数,而委托可以引用静态方法和实例方法。当委托引用实例方法时,委托不仅存储对方法入口点的引用,还存储对为其调用该方法的类实例的引用。与函数指针不同,委托是面向对象、类型安全并且安全的。

    三、事件机制的实现

    1、委托的局限

    如果单纯用委托,对于事件的发布者B来说,假设它发布事件e,对于事件e,它目前已经知道有A和C对象需要订阅这个事件。所以,它就申明两个委托对象引用(本质上类似于函数指针),然后让A和C对象来采用类似回调的机制订阅和响应事件。

    如果后来,有个对象D也需要订阅B的事件e,它怎么办呢?一种情况是D修改B的一个委托对象引用,把自己的处理方法包装成一个委托对象付给它。这样,D就抢夺了A或者C的订阅。否则,就需要修改B的代码,添加一个类似的委托对象引用,以便让D来使用。

    这样做的后果是事件发布者B需要申明很多委托对象的引用变量。结果是弄得代码维护比较混乱,并且使用者也很多,依赖关系也不容易搞清楚,容易发生错误。

    2、事件的引入

    有了委托,就提供了类似回调一样的功能。但是,回调机制需要事件发布者和事件订阅者双方的共同参与和努力。也就是,每增加一个订阅者,那么发布者对象就需要提供一个委托引用,让订阅者挂钩。

    如果事件的发布者发布一个事件以后就不在关心谁来订阅它,那么以后的处理就交给了使用者,而发布者不再关心事件处理者的问题。

                                                                                                    订阅机制
     

    C#事件的事件就是这种订阅机制,真正的订阅。发布者不需要关心订阅者。

    C#事件给订阅者提供了对事件响应的注册和反注册功能。订阅和撤销完全是事件接受方的行为。

    C#事件机制的实现包括以下几步:

    1、 事件发布者定义一个委托类型;

    2、 事件发布者定义一个事件,并且关联到已经定义的委托上。

    3、 事件订阅者需要产生一个委托实例,并把它添加到委托列表。

    所以,事件event可以看成是一个事件列表,订阅者可以注册和撤销自己的响应和处理机制,但是它没有办法更改整个列表(原则上)。所以,提供了更强、更安全的方式。

    四、事件机制的代码实例

                                                                                              应用程序结构图
     

    如图所示,事件发布对象发布一个事件;事件订阅对象订阅和处理该事件。

    using System;

    namespace EventExample

    {

        ///<summary>

        /// MainClass : 主应用程序类

        ///</summary>

        class MainClass

        {

           ///<summary>

           ///应用程序的主入口点。

           ///</summary>

           [STAThread]

           static void Main(string[] args)

           {

               EventPublisher publisher = new EventPublisher();

               EventReader1 reader1 = new EventReader1(publisher);

               EventReader2 reader2 = new EventReader2(publisher);

               publisher.DoSomthing();

               Console.WriteLine("This program already finished!");

               Console.ReadLine();

           }

        }

        ///<summary>

        /// EventPublisher : 事件的发布者。

        ///</summary>

        public class EventPublisher

        {

           // 第一步是申明委托

           public delegate int sampleEventDelegate(string messageInfo);

           // 第二步是申明与上述委托相关的事件

           public event sampleEventDelegate sampleEvent;

           public EventPublisher()

           {

           }

           public void DoSomthing()

           {

               /* ... */

               // 激发事件

               if(this.sampleEvent != null)

               {

                  this.sampleEvent("hello world!");

               }

               /* ... */

           }

        }

        ///<summary>

        /// EventReader1 : 事件的订阅者1。

        ///</summary>

        public class EventReader1

        {

           public EventReader1(EventPublisher publisher)

           {

               publisher.sampleEvent +=

                  new EventExample.EventPublisher.sampleEventDelegate(ResponseEvent);

           }

           private int ResponseEvent(string msg)

           {

               Console.WriteLine(msg + " --- This is from reader1");

               return 0;

           }

        }

        ///<summary>

        /// EventReader2 : 事件的订阅者2。

        ///</summary>

        public class EventReader2

        {

           public EventReader2(EventPublisher publisher)

           {

               publisher.sampleEvent +=

                  new EventExample.EventPublisher.sampleEventDelegate(ResponseEvent);

    publisher.sampleEvent +=

                  new EventExample.EventPublisher.sampleEventDelegate(ResponseEvent);

           }

           private int ResponseEvent(string msg)

           {

               Console.WriteLine(msg + " --- This is from reader2");

               Console.WriteLine("Please:down enter key!");

               Console.ReadLine();

               Console.WriteLine("ok");

               return 0;

           }

        }

    }

                                                                                              程序运行结果
     

    总结:事件发布者发布的事件在实质上可以看成对外提供的回调函数指针列表。这个列表的容量可以动态增长。事件订阅者可以把自己的事件注册到这个列表或者撤销注册,但是它从原则上无法更改或者对其它订阅者的注册产生影响。事件发布者通过两种手段使得订阅者正确地使用事件机制:一是定义一种delegate委托类型,事件订阅者只能按照这种类型定义事件的处理方法;二是定义与这个委托相关的event对象,使得订阅者只负责注册和撤销自己的处理过程而不能随意对别人的处理过程产生影响。

    从运行结果和reader2对象把同一个处理方法注册了两次的前提可以看到,对于一个事件,同一个订阅者可以把同一个处理过程注册多次,而这个方法最终也会被执行多次。

    执行事件订阅列表中方法的顺序不能被保证;而且,在这里采用的是同步调用方法,只有一个响应函数执行完毕,其它函数才会被执行。如果要方法不被阻塞(包括这里的等待用户输入等),就需要采用异步调用方式。

    展开全文
  • 事件抽取及方法 参考:读书笔记:关系抽取和事件抽取 关系抽取 定义:自动识别实体之间具有的某种语义关系。根据参与实体的多少可以分为二元关系抽取(两个实体)和多元关系抽取(三个及以上实体)。 通过关注两...

    目录

    实体抽取(实体命名,NER)

    关系抽取

    关系抽取方法

    事件抽取及方法


    实体抽取(实体命名,NER)

    参考:实体关系抽取一

    参考:HMM、CRF、LSTM+CRF

    参考:读书笔记:关系抽取和事件抽取

    关系抽取

    定义:自动识别实体之间具有的某种语义关系。根据参与实体的多少可以分为二元关系抽取(两个实体)和多元关系抽取(三个及以上实体)。

    通过关注两个实体间的语义关系,可以得到(arg1, relation, arg2)三元组,其中arg1和arg2表示两个实体,relation表示实体间的语义关系。(比如通过Hanlp分析工具可以得到句子中各词之间的语义关系)

    抽取数据源分类:

    1. 面向结构化文本的关系抽取:包括表格文档、XML文档、数据库数据等

    2. 面向非结构化文本的关系抽取:纯文本

    3. 面向半结构化文本的关系抽取:介于结构化和非结构化之间

    抽取范围分类:

    1. 句子级关系抽取:从一个句子中判别两个实体间是何种语义关系
    2. 语料(篇章)级关系抽取:不限定两个目标实体所出现的上下文

    抽取领域分类:

    1. 限定域关系抽取:在一个或者多个限定的领域内对实体间的语义关系进行抽取,限定关系的类别,可看成是一个文本分类任务
    2. 开放域关系抽取:不限定关系的类别

    关系抽取方法

    限定域关系抽取方法:

    • 基于模板的关系抽取方法:通过人工编辑或者学习得到的模板对文本中的实体关系进行抽取和判别,受限于模板的质量和覆盖度,可扩张性不强。(自己做的法院文书属于基于模板的抽取)

    • 基于机器学习的关系抽取方法:将关系抽取看成是一个分类问题

    其中,基于机器学习的关系抽取方法又可分为 有监督 和 弱监督。

    有监督的关系抽取方法:

    • 基于特征工程的方法:需要显示地将关系实例转换成分类器可以接受的特征向量

    • 基于核函数的方法:直接以结构树为处理对象,在计算关系之间距离的时候不再使用特征向量的内积而是用核函数

    • 基于神经网络的方法:直接从输入的文本中自动学习有效的特征表示,端到端

    弱监督的关系抽取方法:不需要人工标注大量数据。

    距离监督:用开放知识图谱自动标注训练样本,不需要人工逐一标注,属弱监督关系抽取的一种。

    开放域关系抽取方法:

    不需要预先定义关系类别,使用实体对上下文中的一些词语来描述实体之间的关系。

    事件抽取及方法

    定义:从描述事件信息的文本中抽取出用户感兴趣的事件并以结构化的形式呈现出来。

    步骤:首先识别出事件及其类型,其次要识别出事件所涉及的元素(一般是实体),最后需要确定每个元素在事件中所扮演的角色。

    事件抽取相关概念:

    • 事件指称:对一个客观发生的具体事件进行的自然语言形式的描述,通常是一个句子或句群
    • 事件触发词:指一个事件指称中最能代表事件发生的词,是决定事件类别的重要特征,一般是动词或名词
    • 事件元素:事件中的参与者,主要由实体、时间和属性值组成
    • 元素角色:事件元素在相应的事件中扮演什么角色
    • 事件类别:事件元素和触发词决定了事件的类别(类别又定义了若干子类别)

    限定域事件抽取:在进行抽取之前,预先定义好目标事件的类型及每种类型的具体结构(包含哪些具体的事件元素),通常会给出一定数量的标注数据。

    限定域事件抽取方法:

    • 基于模式匹配的方法:对某种类型事件的识别和抽取是在一些模式的指导下进行的(步骤:模式获取、模式匹配)
      • 有监督的事件模式匹配:模式的获取完全基于人工标注的语料
      • 弱监督的事件模式匹配:不需要对语料进行完全标注,只需要人工对语料进行一定的预分类或者制定少量种子模式
    • 基于机器学习的方法
      • 有监督事件抽取方法:将事件抽取建模成一个多分类问题
        • 基于特征工程的方法:需要显示地将事件实例转换成分类器可以接受的特征向量,研究重点在于怎样提取具有区分性的特征
        • 基于神经网络的方法:自动从文本中获取特征进而完成事件抽取,避免使用传统自然语言处理工具带来的误差累积问题
      • 弱监督事件抽取方法:不需要人工大量标注样本,但需要给出具有规范语义标签(事件类别、角色名称等)的标注训练数据
        • 基于Bootstrapping的事件抽取:利用少部分人工标注的数据自动生成大规模标注数据(高置信度抽取结果会作为训练样本,然后再训练,不断迭代)
        • 基于Distant Supervison的事件抽取:完全自动生成事件标注样本,利用结构化的事件知识库直接在非结构化文本中回标训练样本

    开放域事件抽取:在进行事件识别之前,可能的事件类型以及事件的结构都是未知的,因此该任务通常没有标注数据,主要基于无监督的方法和分布假设理论。

    分布假设理论:如果候选事件触发词或者候选事件元素具有相似的语境,那么这些候选事件触发词倾向于触发相同类型的事件,相应的候选事件元素倾向于扮演相同的事件元素。

    开放域事件抽取方法:

    • 基于内容特征的事件抽取方法
    • 基于异常检测的事件抽取方法

    事件关系抽取,以事件为基本语义单元,实现事件逻辑关系的深层检测和抽取,包括:

    • 事件共指关系抽取
    • 事件因果关系抽取
    • 子事件关系抽取
    • 事件时序关系抽取

    总结:

    组织和构建同时包含实体、实体关系、事件、事件关系的事件知识图谱得到了越来越多的关注。

    展开全文
  • 事件对象:事件发生后,在flex中就称为事件对象,事件对象有针对其的侦听器,事件对象有其属性,比如:target。 事件发生的对象:指事件源。 事件源:发生事件的对象,一般指某一具体的组件,比如:...

    事件指的是鼠标点击,键盘输入等用户操作。其本身就是一个对象。

    事件对象:事件发生后,在flex中就称为事件对象,事件对象有针对其的侦听器,事件对象有其属性,比如:target。

    事件发生的对象:指事件源。

    事件源:发生事件的对象,一般指某一具体的组件,比如:用户点击某Button,则此Button即为事件源。

    侦听器:是一个方法,用以响应事件。

    展开全文
  • 互斥事件

    千次阅读 2020-12-28 22:44:14
    [编辑]互斥事件与对立事件的区别与联系互斥事件是指事件A与事件B在一次试验中不会同时发生,其具体包括三种不同的情形:(1)事件A发生且事件B不发生;(2)事件A不发生且事件B发生;(3)事件A与事件B同时不发生,而对立...
  • 随机事件的几个概念

    千次阅读 2014-08-15 17:52:00
    设A,B为两事件,则事件“A发生或者B发生”称为A与B的和(事件,记为A∪B,也就是说,A与B至少有一个发生。此概念可以扩展到多个事件事件的积(交): 设A,B为两事件,则事件“A与B都发生”称为A与B的...
  • C#事件概念

    万次阅读 2009-12-09 15:16:00
    原则:1、C#事件本质就是对消息的封装,用作对象之间的通信;发送方叫事件发送器,接收方叫事件接收器;2、发送器不知道接收器的任何情况,但接收器有一个事件处理程序来处理这个事件(当事件发生时);那么发送器...
  • Android的事件处理机制(概念理解)

    千次阅读 2014-02-25 16:12:52
    随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。 ... Android提供了两套事件处理机制: ... 基于监听的事件...
  • 样本空间,随机事件概念(概统1) 概率论是一个难点,也是一个重点,难点主要是基本概念难以理清,看似很简单,但是很混乱,理不清。本小节是整理样本空间与随机事件的基本概念。 随机事件间的关系 包含 A ⊂ B,...
  • 相互独立事件与互斥事件的区别

    千次阅读 2021-01-14 21:26:55
    接触∶独立事件可能是互斥事件可能不会是互斥事件,相互排斥的事件不能是独立事件事件A和B的交叉口为空,A以及B只是是互斥事件,它也被称为不相容事件。它也可以描述为:不能同时发生的事件。作为A∩B这是不可能的...
  • 在基于对象的编程中,经常会出现类、对象、属性、方法和事件概念,然后这么概念之间是有联系和区别的,弄清楚它们之间的不同是学好编程的第一步,但熟悉它们之后,这样我们更容易去理解基于对象的编程。...
  • 事件事件抽取与事理图谱

    万次阅读 多人点赞 2019-01-04 23:06:04
    人类社会是一个静态事物进行动态活动所创造形成的世界,人类的命题记忆是以“事件”为存储单位的,存储的是组成事件概念及其之间的关系以及事件及其之间的关系,以事件作为知识的基本单元更能反映客观世界的知识,...
  • vue 事件总线前言EventBus的简介...子传父通过$emit发送事件携带数据给父组件。而有时两个组件之间毫无关系,或者他们之间的结构复杂,如何传递数据呢?这时就要用到 vue 中的事件总线 EventBus的概念 EventB...
  • 01概率论与数量统计之基本概念(随机实验、样本空间、随机事件事件运算:和、积、差、补;事件的关系:包含、互斥、对立)及概率
  • 本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列http://www.sqlservercentral.com/articles/Stairway+Series/145063/
  • 大白话概念性东西--事件句柄

    千次阅读 2018-05-08 10:30:40
    按现在的理解句柄大体分为两种:windows句柄和javascript中的事件句柄这是比较通俗的概念事件句柄:事件句柄(又称事件处理函数),是指事件发生时要进行的操作。每一个事件均对应一个事件句柄,在程序执行时,将...
  • Concept Drift(概念漂移)

    千次阅读 2018-08-22 20:49:02
    如果是在机器学习领域中,这个概念指的就是一个模型要去预测的一个目标变量,概念漂移就是这个目标变量随着时间的推移发生改变。概念漂移在很多领域都具有很重要的意义,例如对金融衍生品价格预测、动态控制等。 ...
  • 解题中需要特别提醒的点1、要分清“互斥事件”与“等可能性事件”是两个不同的概念。在一次试验中,如果若干个随机事件中每一事件... 互不相容又叫互斥,即两个事件不能同时发生,强调“同时发生”。发生了A就不能...
  • 为了进一步了解微信小程序的事件机制,在原DEMO的基础上增加了一个简单的页面。效果如下。 Paste_Image.png 红黄绿分别代表三个view。 红是最外层的, 黄绿依次为中底层。 每一层view对应着一个点击事件。...
  • nodejs事件事件循环简介

    万次阅读 2020-12-06 21:37:03
    熟悉javascript的朋友应该都使用过事件,比如鼠标的移动,鼠标的点击,键盘的输入等等。我们在javascript中监听这些事件,从而...同时事件事件循环也是nodejs构建异步IO的非常重要的概念。 今天我们来详细了解一下。
  • 发布-订阅模式(Publish-Subscribe Pattern) 事件的生命周期-注册和注销 事件与scope继承树-$emit以及$broadcast 事件的停止传播以及阻止默认行为 事件在scope生命周期中的应用 本节介绍1和2。
  • 探索 React 合成事件

    千次阅读 2020-11-22 20:00:19
    合成事件概念和作用; 合成事件与原生事件的 3 个区别; 合成事件与原生事件的执行顺序; 合成事件事件池; 合成事件 4 个常见问题。 接下来和我一起开始学习吧~ 一、概念介绍 React 合成事件(SyntheticEvent...
  • 事件抽取

    千次阅读 2018-11-09 16:29:23
    基本概念 1.1 事件  1.定义  作为信息的一种表现形式,其定义为特定的人、物在特定时间和特定地点相互作用的客观事实。一般是句子级的。在TDT ( Topic Detection Tracking) 中,事件是指关于某一主题的一组相关...
  • 事件的定义

    千次阅读 2018-02-26 23:11:41
    事件event,只能在类里面进行调用执行。在类外只能进行+-操作事件是类或对象向其他类或对象通知发生事件的一种特殊签名的委托。事件的声明:public event 委托类型 委托名。观察者设计模式事件是一种特殊的委托。...
  • 事件触发机制

    万次阅读 2016-09-12 11:12:28
    转自...事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操
  • ACE事件抽取任务之事件类型定义

    千次阅读 2019-06-09 11:25:10
    ACE定义的8大类事件类型和33小类事件类型 原博文介绍很详细,这里不再亲手编写。博文连接:Hi-Cloud总结的ACE事件类型和模板
  • 概念漂移简介

    千次阅读 2020-08-10 15:03:44
    本文在总结文献的基础上进行一些个人的看法和分析。主要分为概念漂移的产生背景,概念漂移分类,概念漂移相关技术以及概念漂移的应用领域。
  • 01 假设检验概念 02 小概率事件 03 P-Value与显著性水平 04 假设检验步骤
  • Java NIO AIO 基本概念

    千次阅读 2018-10-02 09:01:50
    在介绍NIO编程之前,我们首先需要澄清一个概念:NIO到底是什么的简称?有人称之为New I/O,因为它相对于之前的I/O类库是新增的,所以被称为New I/O,这是它的官方叫法。但是,由于之前老的I/O类库是阻塞I/O,New I/O...
  • 面向对象程序设计的基本概念

    千次阅读 多人点赞 2021-01-31 17:03:44
    正因为这一原因,所以在设计应用程序时理解事件驱动模型牢记在心是非常重要的。 4.交互式开发 传统的应用程序开发过程可以分为三个明显的步骤:编码、编译和测试代码。但是 Visual Basic 与传统的语言不同,它使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 517,382
精华内容 206,952
关键字:

并事件概念

友情链接: ca_prng_latest.tar.gz