Transcription
以下是与斯图尔特·罗素的对话。他是加州大学伯克利分校的计算机科学教授,也是一本介绍我和数百万其他人接触人工智能奇妙世界的书的合著者,这本书名为《人工智能:一种现代方法》。因此,我很荣幸能与他进行这次对话,作为麻省理工学院人工智能与通用人工智能课程以及人工智能播客的一部分。如果您喜欢,请在 YouTube、iTunes 或您选择的播客提供商上订阅,或者直接在 Twitter 上与我联系,我的用户名是 Lex Friedman,拼写为 Fri D。现在,这是我和斯图尔特·罗素的对话。
你提到在 1975 年上高中时,你编写了第一个人工智能程序,可以下棋。你有没有能够编写一个程序击败你下棋或其他棋盘游戏?
所以,我的程序从未在国际象棋上击败过我。我实际上是在帝国理工学院写的程序。我过去每周三都带着一盒这么大的卡片坐公交车,然后把它们塞进读卡器。我们有八秒钟的 CPU 时间。读取卡片和编译代码大约需要五秒钟,所以我们有三秒钟的 CPU 时间,这足以走一步棋,你知道,搜索深度不是很大。然后我们会打印出这一步棋,然后我们必须回到队伍后面,等待再次输入卡片。
你是如何进行搜索的?
嗯,我会和……不,我想我们达到了深度为八的搜索,你知道,使用 Alpha-Beta 剪枝。我们还有一些我们自己的关于走法排序和一些树的剪枝技巧。我们仍然能够击败那个程序。是的,是的。我年轻时是一名不错的棋手。我写了一个西洋跳棋程序和一个双陆棋程序。所以当我来到伯克利时,我做了很多关于我们称之为元推理的工作,这实际上意味着关于推理的推理。在玩游戏程序的情况下,你需要推理你实际上要探索搜索树的哪些部分,因为搜索树是巨大的,你知道,比宇宙中的原子数量还要大。程序成功的方式,人类成功的方式,是通过只查看搜索树的一小部分。如果你查看了正确的部分,你就会玩得很好。如果你查看了错误的部分,如果你浪费时间思考那些永远不会发生的事情,那些没有人会走的棋,那么你就会输,因为你无法弄清楚正确的决定。所以,机器如何管理自己的计算,或者它们如何决定思考什么,这个问题就是元推理问题。我们开发了一些方法来做到这一点。非常简单地说,机器应该思考任何能提高其决策质量的想法。我们能够证明,无论是对于西洋跳棋(一种标准的两人游戏)还是双陆棋(其中包含骰子),这都是一个两人游戏,双方都有不确定性。对于这两种情况,我们都能找到比当时国际象棋程序使用的标准 Alpha-Beta 搜索更有效的算法。而那些程序能够击败我。我认为你今天在 AlphaGo 和 AlphaZero 中可以看到相同的基本思想。它们探索树的方式是使用一种元推理形式,根据思考的有用性来选择思考什么。
你能用非希腊字母的语言描述一下我们如何选择走哪条路吗?
有两种学习方式。正如你所说,AlphaGo 学习评估棋盘位置,所以它可以……它可以看一个围棋棋盘,它实际上可能拥有超人的能力,可以立即判断出这个局面有多大希望。对我来说,AlphaGo 最令人惊叹的不是它能蒙着眼睛击败世界冠军,而是如果你阻止它进行任何搜索,所以你说,好吧,你不能提前思考,对吧?你只能考虑你合法的每一步棋,然后看看由此产生的局面并进行评估。所以我们称之为深度一搜索,所以只是你走棋的直接结果,并决定它是好是坏。那个版本的 AlphaGo 仍然可以以专业水平进行比赛,对吧?而人类职业选手坐在那里花五到十分钟决定该做什么,而 AlphaGo 在不到一秒钟的时间里就能立即找出正确的走法,这取决于它评估局面的能力。这很了不起,因为你知道,我们对围棋没有那么直观的理解,我们实际上必须思考局面。所以,无论如何,AlphaGo 所拥有的这种能力是它击败人类的一个重要原因。另一个重要原因是它能够向前看 40、50、60 步。嗯哼。你知道,如果它考虑了 40、50 或 60 步棋的所有可能性,那将是……你知道,10 的 200 次方种可能性,远远超过……你知道,宇宙中的原子数量等等。所以,它在选择看什么方面非常非常挑剔。
所以,让我试着给你一个关于你如何决定思考什么的直觉。这是两件事的结合。一是它有多大希望,对吧?所以,如果你已经确信一步棋很糟糕,那么就没有必要花更多时间说服自己它很糟糕,因为它可能不会改变你的想法。所以,你真正思考的原因是,有可能改变你对该做什么的想法。嗯哼。对吧?而这种改变想法是否会最终导致在现实世界中做出更好的最终行动?所以,思考的目的是为了改善现实世界中的最终行动。所以,如果你思考一步棋,它注定是糟糕的,你可以说服自己它很糟糕,你仍然不会改变主意。好吧?但另一方面,我想你可以在两步棋之间做出选择。其中一步,你已经想清楚了,它注定是平局,比如说。然后另一步看起来稍微差一点,就像很有可能如果你走那一步棋,你就会输,但仍然有一些关于那一步棋价值的不确定性。仍然有一些可能性,它最终会赢。好吧?那么,思考它就值得了。所以,即使它平均来说不如另一步棋有希望,而另一步棋注定是平局,但思考它仍然有意义,因为有可能你会改变主意,发现事实上它是一步更好的棋。所以,这是你的棋子看起来有多好以及它的价值有多大不确定性的结合。不确定性越大,越值得思考,因为如果你想这样想,潜在的回报就越高。当然,一开始,尤其是在 AlphaGo Zero 的制定中,一切都笼罩在不确定性之中。所以你真的在不确定性的海洋中游泳。所以,它也对你有好处。我的意思是,实际上遵循你描述的相同过程,但因为你对一切都如此不确定,你基本上必须尝试很多不同的方向。是的。所以,搜索树的早期部分相当庞大,它会……在看很多不同的可能性时,但相当快地,关于某些走法的确定性程度……我的意思是,如果一步棋真的很糟糕,你会很快发现,对吧?你失去了一半的棋子或一半的领地。然后你会说,好吧,这个……这个不值得再想了。然后,树的更深处变得非常长而窄,你沿着各种走法,你知道,10、20、30、40、50 步向前走。你知道,这又是一个人类很难做到的事情,主要是因为他们缺乏短期记忆。你就是记不住 50 步棋的序列,你也记不住……你无法正确地想象未来那么多步棋的棋盘。当然,顶尖棋手……我对国际象棋更熟悉,但顶尖棋手可能拥有与 AlphaGo 在看到棋盘时瞬间应用的直觉本能相同的回响。我的意思是,他们见过那些模式。人类在顶尖水平,在特级大师水平,似乎有一些相似之处,或者也许是……是我们的想象力创造了这些相似之处的景象,但感觉 AlphaGo 方法所使用的这种模式识别与人类顶尖水平所使用的相似。
我认为这有一些道理,但并非完全正确。我的意思是,我认为人类特级大师能够可靠地瞬间识别正确走法,瞬间识别局面价值的程度,我认为这有点被高估了。但如果你牺牲一个皇后,比如说……我的意思是,有一些……有一些美丽的国际象棋比赛,有鲍比·菲舍尔,他似乎走了一步坏棋,我不确定其中有多少是完美的计算,他们计算了所有可能发生的事情,但那里有一种直觉,对吧?它以某种方式加起来……是的。所以,我认为发生的是,你……你有一种感觉,这个局面有一些可能性,即使你走了一步看起来很奇怪的棋,它也打开了一些……一些计算的线路,否则这些线路肯定会很糟糕。然后,正是这种直觉,这个局面中有一些东西可能会带来胜利,然后你就跟着它走。对吧?在某种意义上,当一个棋手走一条路时,在他的脑海里,他们会在心理上模拟对方会做什么,而对手会做什么。只要这些走法是……你知道,是强制的,也就是说,对手没有太多选择如何回应,然后你看看你是否能迫使他们进入一个你获胜的局面。你知道,我们看到很多错误,即使在特级大师的比赛中,他们也只是错过了某些简单的三、四、五步的组合,你知道,在局面中并不特别明显,但仍然存在。这就是让我们成为人类的东西。是的。所以,当你提到西洋跳棋那些游戏在一些元推理改进和研究之后,我能够击败你时,你感觉如何?元推理能力的一部分是基于学习的,你可以第二天坐下来,你可以感觉到它变得更聪明了。砰。你知道,突然之间,你真的感觉自己被逼到了墙角,因为它……它更具攻击性,而且对你可能犯的任何小错误都毫不留情。而且,它似乎比我更理解游戏。你知道,加里·卡斯帕罗夫有句名言,在他与深蓝的比赛中,他说他突然感觉到棋盘对面有一种新的智能。你认为这是一种可怕的还是令人兴奋的可能性,就你个人而言,在纯粹的国际象棋背景下,就像那种感觉,无论那是什么?
我认为这绝对是一种令人兴奋的感觉。你知道,这正是我最初从事人工智能的原因。一旦我真正理解了计算机是什么,我就想让它变得聪明。你知道,我从我写的第一个程序开始,它是为 Sinclair 可编程计算器编写的。我想你可以写一个 21 步的算法,这是你能写的最大程序,做一些小的算术计算。所以,我想我实现了牛顿法来计算平方根和其他一些东西。但是然后,你知道,我想,好吧,如果我能有更多的空间,我就可以让这个东西变得智能。所以我开始思考人工智能,我认为……我认为可怕的事情不是……不是国际象棋程序,因为你知道,国际象棋程序它们没有……它们没有接管世界的业务。但是如果你推断一下,你知道,国际象棋中有一些东西与现实世界不相似。我们知道……我们知道国际象棋的规则。棋盘对程序员来说是完全可见的。当然,现实世界不是。你坐在那里,大部分现实世界都是看不见的。所以,要克服这些问题,你需要质的不同的算法。关于现实世界的另一件事是,你知道,我们……我们经常计划……在涉及数十亿或数万亿步的时间尺度上进行计划。我们没有详细计划,但你知道,当你选择在伯克利攻读博士学位时,这是一个五年的承诺,这相当于大约一万亿次你最终将要进行的运动控制步骤,包括上楼梯、开门、喝水等等。我的意思是,你打字的每一个手指动作,论文的每一个字符,以及论文和所有其他东西。所以,你不是提前承诺具体的运动控制步骤,但你仍然在推理一个最终会归结为数万亿次运动控制动作的时间尺度。所以,出于所有这些原因,你知道,AlphaGo 和……深蓝等等,它们并不代表对人类的任何威胁,但它们是朝着这个方向迈出的一步,对吧?近乎如此。人工智能的进步本质上是通过逐一消除那些使问题变得容易的假设来实现的,比如完全可观察性的假设。我们消除了这个假设,你需要一种更复杂的计算设计,你需要一些能够实际跟踪所有你看不到的东西并试图估计正在发生的事情的东西,而且其中必然存在不确定性。所以,它变成了一个更复杂的问题。但是,你知道,我们正在消除这些假设。我们开始拥有能够处理更长的时间尺度的算法。它们可以处理不确定性。它们可以处理部分可观察性。所以,这些步骤中的每一个都将我们能够用人工智能系统做的事情的范围放大了大约一千倍。所以,我开始的方式……我曾经想当一名精神科医生很长时间,以便在高中的时候理解心智,当然还有编程等等。然后我去了伊利诺伊大学人工智能实验室,他们说,好吧,我没时间给你,但这里有一本书,《人工智能:一种现代方法》,我想当时是第一版。嗯哼。去吧,去学习这个。我记得当时的情况是,我们解决了国际象棋真是太不可思议了,但我们永远也解决不了围棋。我的意思是,当时很确定,围棋,以我们思考系统推理的方式,是不可能解决的。现在我们已经解决了。我认为……我会说,使用国际象棋的算法类型,然后让它扩展并很好地用于围棋,这是不太可能的。当时我们认为,为了解决围棋,我们将不得不做一些类似于人类管理围棋复杂性的事情,那就是将其分解成……分解成子游戏。所以,当一个人看围棋棋盘时,他们会把棋盘的不同部分看作是……彼此之间联系很弱。他们会想,好吧,在这个棋盘的这个部分,事情可能会这样发展。那个部分……事情可能会那样发展。然后你试着……试着将这两种分析结合起来,处理它们之间的相互作用,然后可能修正你对每个部分将如何发展的看法。然后你可能有五个、六个、七个、十个棋盘部分。这实际上比国际象棋更像现实世界,因为在现实世界中,你知道,我们有工作,我们有家庭生活,我们有运动,你知道,任何不同类型的活动,你知道,购物,这些都相互关联,但它们联系很弱。所以,当我打字一篇论文时,你知道,我不需要同时决定我要按什么顺序去买……你知道,牛奶和黄油。这不会影响打字。但我确实需要意识到,好吧,最好在商店关门前完成这个,因为我家里没有食物了。好吧?好吧。所以,有一些微弱的联系,但不是像国际象棋那样,一切都 tied 到一个单一的思维流中。所以,想法是,围棋……围棋会让我们在对现实世界有用的事情上取得进展。在某种意义上,AlphaGo 有点令人失望,因为……因为为 AlphaGo 设计的程序实际上与深蓝,甚至与 Arthur Samuel 在 1950 年代的西洋跳棋程序并没有太大区别。事实上,让 AlphaGo 起作用的两件事是:一是它评估局面的惊人能力,二是元推理能力,它允许它……它能够非常深入地探索树中的一些路径,并非常迅速地放弃其他路径。所以,这个词“元推理”,虽然技术上是正确的,但可能激发了 AlphaGo 所拥有的……所拥有的力量的错误程度。例如,“推理”这个词是一个强大的词。让我问你……所以,你曾经是符号人工智能世界的一部分,就像……无论人工智能是什么,那里有很多优秀、有趣的观点,不幸的是,它们遇到了一个冬天。所以,你认为它真的……它真的出现了吗?
嗯,我会说,是的,它不像那么简单。所以,人工智能冬天……所以,第一个被称为这样的冬天是 80 年代末。它之所以出现,是因为在 80 年代中期,人们曾有过一次认真的尝试,利用所谓的专家系统技术将人工智能推向现实世界。在大多数情况下,这项技术还没有准备好。在许多情况下,他们试图进行一种不确定的推理,判断……你知道,证据的组合,诊断,那些类型的事情,这根本是无效的。当你试图将无效的推理方法应用于实际问题时,你可以对问题的较小版本进行修饰,但当它开始变大时,事情就会崩溃。所以,许多公司发现这些东西根本不起作用,他们花费了大量的钱请顾问来尝试让它起作用。还有其他实际原因,比如……你知道,他们……他们要求公司购买极其昂贵的 Lisp 工作站,在 80 年代,这些工作站的价格在 5 万到 10 万美元之间,相当于现在的 15 万到 30 万美元。所以,底线是,他们没有看到利润。是的,在许多情况下,我认为有一些成功,这一点毫无疑问。但是,我认为人们……我认为人们过度投资了。就像现在一样,每家大公司都开始成立人工智能部门。我有点担心我们可能会看到类似的失望,不是因为技术无效,而是因为它……它的范围有限,而且它几乎是……你知道,专家系统所面临的范围问题的……双重问题。
那么,你从那个炒作周期中学到了什么?我们如何才能防止另一个冬天?例如。
所以,当我今天做演讲时,我给出的警告之一是,你知道,与其说数据是新的石油,不如说数据是新的“蛇油”。这是一个很好的说法。然后……然后另一个是,我们可能会在一些主要的应用程序领域看到一种非常明显的失败。我认为自动驾驶汽车将是旗舰。我认为当你回顾历史时……第一辆自动驾驶汽车是在 1987 年在高速公路上自动驾驶、变道、超车的。所以,已经 30 多年了。这看起来就像我们今天所处的位置,你知道,原型车在高速公路上变道和超车。现在,我认为已经取得了重大进展,特别是在感知方面。所以,我们在 90 年代初中期在伯克利做了很多关于自动驾驶汽车的工作。你知道,我们自己也有过大型演示。你知道,我们让国会议员坐进我们的自动驾驶汽车,让他们在高速公路上飞驰。当时的问题显然是感知。感知的问题,是的。所以,在具有完美感知的模拟中,你可以证明,即使其他车辆行为不当,你也可以安全驾驶很长时间。同时,我们也研究了机器视觉,用于检测汽车和跟踪行人等。我们无法将检测和跟踪的可靠性提高到足够高的特定水平,尤其是在恶劣天气条件下,夜间,下雨。对于演示来说足够了,但可能不足以涵盖一般……一般……是的。关于驾驶的事情是,你知道,假设你是一名出租车司机,你知道,你每天开车八小时,十年。那就是一亿秒的驾驶。你知道,在其中任何一秒钟,你都可能犯下致命的错误。所以,你谈论的是八个九的可靠性。现在,如果你的视觉系统只检测到 98.3% 的车辆,那么……你知道,那就是一个九点几的可靠性。所以,你还有七个数量级的差距。这就是人们不理解的地方。他们认为,哦,因为我有一个成功的演示,我几乎就完成了。但是,你知道,你甚至还没有接近完成七个数量级。这就是困难所在。它不是……我能跟着白线走吗?那不是问题,对吧?我们沿着白线走遍全国。但是……但是是奇怪的事情发生了。是一些边缘情况。是的,边缘情况。其他司机做奇怪的事情。你知道,所以,如果你和谷歌谈谈,他们实际上有一个非常经典的架构,你知道,有机器视觉,它会检测所有其他汽车、行人和白线、路标。然后基本上,这些信息被输入到一个逻辑数据库。然后你有一个经典的 1970 年代的基于规则的专家系统告诉你,好吧,如果你在中间车道,右车道有一个骑自行车的人正在打信号,那么……那么……那么你不需要做那个。是的。对吧?他们发现的是,他们每天出去,都会遇到另一个规则没有涵盖的情况。你知道,所以他们来到一个环岛,有一个小女孩骑着自行车逆着环岛方向骑行。好吧,你该怎么办?我们没有规则。哦,我的天。好吧,停下来。然后,你知道,他们回来,添加了更多的规则。他们只是发现这并没有真正收敛。而且,如果你想想,对吧?你如何处理一个意外情况,也就是说,一个你以前从未遇到过的情况?而……而解决这种情况所需的推理从来没有做过。它与之前的情况在推理类型上不匹配。嗯,你知道,在国际象棋程序中,这种情况经常发生。你不断遇到你以前没见过的情况,你必须推理它们。你必须思考,好吧,这里是我可能做的所有事情,这里是结果,这里是结果的吸引力程度,然后选择正确的。你知道,在 90 年代,我们说,好吧,这就是自动驾驶汽车必须具备的超前能力。但是驾驶的超前能力比国际象棋更难,因为……因为有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有……有
并且输入,对于 I 等于 1 到 50 亿,进行操作,突然之间,你对全球产生了影响,然而,我们却没有 FDA,根本没有任何控制,这完全是一群大学生,喝了太多咖啡,对世界造成的后果,你知道,我们看看 Facebook 发生了什么,或者说社交媒体,以及点击率优化,所以你有一个简单的反馈算法,它试图仅仅优化点击率,这听起来很合理,对吧?因为你不想给人们推送他们不感兴趣的广告,我对此不感兴趣,你甚至可能认为这个过程仅仅是调整广告或新闻文章的推送,或者任何可能的东西,以匹配人们的偏好,这听起来是个好主意,但实际上,算法并非如此运作,你赚的钱越多,算法赚的钱就越多,如果它能更好地预测人们会点击什么,因为它就能准确地推送给他们,所以最大化点击率的方法实际上是改变人们,让他们变得更可预测,而做到这一点的一种方法是向他们提供信息,这些信息将改变他们的行为和偏好,使其趋向于极端,从而使他们变得可预测,无论最近的极端是什么,或者最近的可预测点是什么,你最终都会在那里,机器会强迫你到那里,然后,我认为有一个合理的论点可以认为,这与其他因素一起,正在导致世界民主的毁灭,这个过程的监督在哪里?那些说“好吧,你想将此算法应用于地球上 50 亿人,你能向我证明它是安全的吗?你能向我证明它不会产生各种负面影响吗?”的人在哪里?没有人问这个问题,没有人被置于,你知道,那些喝了太多咖啡的大学生和人类之间,嗯,他们只是做了,但某种程度上超出了我的知识范围,所以经济学家会争辩说,那是什么?“无形之手”,所以资本主义制度,它是监督,所以如果你要用你作为公司所做的任何决定来腐蚀社会,那么人们就会因此不使用你的产品,这是一种监督模式,所以我们将拭目以待,但你知道,与此同时,你知道,但你甚至可能已经破坏了使资本主义得以运作的政治体系,嗯,你已经改变了它,所以我们应该看到,是的,变化,变化往往是痛苦的,所以我的问题是,绝对,这很迷人,你绝对是对的,算法可以产生深刻的、改变文明的影响,但对算法却零监督,所以你认为这可能吗?我的意思是,我还没有,你见过政府吗?所以你认为有可能创建监管机构,对人工智能算法进行监督,而这些算法本质上是一套前沿的思想和技术?是的,但我认为需要时间来弄清楚什么样的监督,什么样的控制,我的意思是,设计 FDA 制度也花了很长时间,你知道,有些人仍然不喜欢它,他们想修复它,我认为有一些明确的方法可以改进它,但整个概念是,你有第一阶段、第二阶段、第三阶段,以及通过第一阶段试验的标准,我们甚至还没有考虑过算法的标准,所以我的意思是,我认为有一些事情我们可以立即做,例如关于偏见,我们对如何检测传播数据集中存在的偏见的算法,如何消除这些算法的偏见,甚至这样做会付出什么代价,我们已经有了很好的技术掌握,所以我认为我们可以开始在这方面制定一些标准,我认为在冒充和伪造方面有一些事情我们可以努力,所以,谢谢,或者,你知道,一个非常简单的观点,所以冒充是一种机器假装成人的行为,我找不到任何真正的理由,为什么我们不应该坚持机器自我识别为机器,你知道,欺骗人们认为这是一个真正的人,而实际上不是,有什么社会效益呢?你知道,如果它使用一种易于理解的人类声音,那没关系,那很好,但它应该只是以某种形式说“我是一台机器”,人们正在谈论,我认为相对明显的因素,我认为大多数是的,我的意思是,加州确实有一项法律禁止冒充,但仅限于某些受限情况,为了进行欺骗性交易,以及为了改变某人的投票行为,所以这些是机器必须自我识别的情况,但我认为这,可以说,应该在所有情况下都如此,然后当你谈论深度伪造时,我们才刚刚开始,但已经有可能制作任何人的电影,让他们说任何话,而且很难被发现,包括你自己,因为你现在在镜头前,你的声音也很高分辨率,所以你可以把我说的换成任何你想让我说的,是的,它甚至会改变我的嘴唇和表情,以适应,而且实际上没有多少真正的法律保护,我认为在商业领域,你可以说,是的,你正在使用我的品牌等等,有关于那的规定,但在政治领域,我认为目前,你知道,一切皆有可能,所以这可能真的,真的很有破坏性,让我试着做一个不是论证,而是试着回顾历史,说一些本质上黑暗的事情,虽然监管似乎是正确的做法,但人类天生就会等待事情出错,如果你谈论核武器,你不能说核武器是危险的,直到有人,就像美国扔了炸弹,或者切尔诺贝利熔毁,你认为我们必须等到事情以明显损害社会的方式出错,而不是存在风险,而是明显损害,还是你相信?我希望不是,但我想我们确实必须回顾历史,当你,你知道,你给出的两个例子,核武器和核能,非常非常有趣,因为你知道,在核武器方面,我们在 20 世纪早期就知道原子蕴含着巨大的能量,我们有 E=mc²,我们知道不同原子及其组成部分之间的质量差异,我们知道你可能能够制造出一种极其强大的炸药,所以 H.G. 威尔斯写了一本科幻小说,我认为是在 1912 年,弗雷德里克·索迪,他是发现同位素的人,诺贝尔奖得主,他在 1915 年发表了一篇演讲,说这种新炸药相当于 150 吨炸药,事实证明是正确的,你知道,这是在一战期间,所以他想象如果我们使用那种炸药,世界会变得多么糟糕,但物理学界根本不相信这些东西可以被制造出来,包括那些制造它的人,嗯,所以他们正在进行核物理研究,我的意思是,最终是他们制造了它,洛克威尔或者谁,嗯,所以直到,发展主要是理论上的,所以是人们使用原始的粒子加速器,并在单个粒子或粒子集合的水平上进行实验,他们还没有考虑如何制造炸弹或类似的东西,但他们知道能量在那里,他们认为如果他们能更好地理解它,也许是可能的,但物理学界的观点,我认为是因为他们不希望它是真的,他们的观点是它不可能是真的,这不可能提供制造超级武器的方法,你知道,拉瑟福德,他是核物理学的领导者,发表了一个著名的演讲,是在 1933 年 9 月 11 日,他说,任何谈论从原子转化中获取能量的可能性的人,都在胡说八道,第二天早上,利奥·西拉德读了那篇演讲,然后发明了核链式反应,所以一旦他有了这个想法,他就可以用中子制造链式反应,因为中子不会被原子核排斥,所以它们可以进入原子核并继续反应,一旦他有了这个想法,他立刻意识到世界陷入了深深的困境,因为这是 1933 年,你知道,希特勒最近在德国掌权,西拉德在伦敦,最终成为难民,并来到美国,在产生链式反应的想法的过程中,他基本上想出了如何制造炸弹,以及如何制造反应堆,他为反应堆申请了专利,在 1934 年,但由于他能看到的权力冲突局势,他对此保密,所以从那时到第二次世界大战开始,人们一直在努力,包括德国人,如何实际制造中子源,什么样的裂变反应会产生合适能量的中子来继续反应,我认为这在 1938 年在德国得到了证实,如果我没记错的话,第一个核武器专利是 1939 年由法国人获得的,所以这实际上,你知道,这实际上是在第二次世界大战真正开始之前就已经发生了,然后,你知道,英国在这方面可能拥有最先进的能力,但出于安全原因,以及其他原因,以及资源,他们将该计划从英国转移到了美国,然后就成了曼哈顿计划,所以,我们无法对核武器和核技术进行任何监督的原因是,我们基本上已经处于军备竞赛和战争之中了,但你提到了 20 年代和 30 年代,那么有什么回声呢?你描述这个故事的方式,我的意思是,显然有回声,你认为为什么大多数人工智能研究人员,那些真正接近核心的人,他们并不担心它,他们也不去想它,是他们不想去想它吗?但那是什么?你为什么认为会这样?核能情况与当前情况有什么回声?我们能做些什么?我认为有一种,你知道,一种“动机性认知”,这是心理学中的一个术语,意思是相信你希望为真的东西,而不是真实的东西,你知道,想到你正在做的事情可能是人类的终结,这显然是令人不安的,所以你宁愿立即否认它,并想出一些理由来解释为什么它不可能发生,我收集了一长串原因,极具智慧和能力的 AI 科学家提出的,关于为什么我们不应该担心这个问题,例如,计算器在算术方面比人类强,它们也没有接管世界,所以没什么可担心的,好吧,我的五岁孩子就能弄清楚为什么这是一个不合理的,而且确实很弱的论点,另一个是,虽然理论上可能出现超人类 AI 毁灭世界,但理论上也可能出现黑洞在我们地球旁边出现并摧毁人类,我的意思是,是的,理论上是可能的,量子理论上极不可能它会正好出现在那里,但这是一个完全错误的类比,因为如果地球上的整个物理学界都在努力在近地轨道上制造一个黑洞,你难道不应该问他们,这是个好主意吗?安全吗?如果你成功了呢?好吧,对了,这就是问题所在,人工智能似乎拒绝问自己,如果你成功了呢?起初,我认为是因为太难了,但艾伦·图灵问了自己,他说我们会完蛋的,如果我们幸运的话,我们也许能关掉电源,但我们很可能会完蛋,但也有一个方面是,因为我们不确定未来会怎样,所以不清楚具体的技术上应该担心什么,以及事情会如何出错,所以有一种感觉,也许你能纠正我,如果我错了,但担心逻辑上不可避免但你又不知道它会是什么样子的事情,似乎会让人瘫痪,是的,我认为这是个合理的观点,你知道,就存在风险而言,这与小行星撞击地球不同,再次,这是非常可能的,它过去发生过,将来很可能还会发生,我们现在不知道,但如果我们探测到一颗将在 75 年后撞击地球的小行星,我们肯定会采取行动,嗯,很明显有大石头,我们可能会开个会,看看我们该怎么办,用人工智能,我的意思是,很少有人认为这不会在未来 75 年内发生,我知道罗德·布鲁克斯不这么认为,也许也不行,但你知道,很多日复一日地工作的人,就像你说的,在第一线,他们认为这会发生,我认为人工智能研究人员的平均估计是,从现在开始的四五十年,或者可能更长一点,你知道,在亚洲,他们认为会更快,我稍微保守一些,我认为可能需要更长时间,但我认为,就像核武器一样,它可能一夜之间发生,你会有这些突破,我们需要不止一个突破,但你知道,大约需要半打,这是一个非常粗略的比例,所以需要大约半打这样的突破,才能达到超人类人工智能,但你知道,人工智能研究界现在非常庞大,政府和公司的巨额投资,大量非常聪明的人,你只需要看看人工智能不同领域的进步速度,就能看出事情正在快速发展,所以说“这要几千年了”,我看不出任何依据,你知道,例如,斯坦福百年人工智能项目,它应该被认为是,你知道,严肃的官方观点,他们最新的报告实际上说,这甚至可能不可能,哇,如果你想要一个人们否认的完美例子,那就是这个,因为在人工智能的整个历史中,我们一直在对哲学家说,他们说这不可能,你根本不知道你在说什么,当然这是可能的,给我一个为什么它不可能发生的论点,没有一个,现在,因为人们担心人工智能可能会名誉扫地,或者我只是不想考虑这个问题,他们说,“好吧,当然,这真的不可能”,你知道,我们想象一下,如果癌症生物学界的领导者站出来说,“好吧,当然,治愈癌症,这真的不可能”,完全的愤怒和沮丧,你知道,我发现这是一个非常奇怪的现象,所以,如果你接受它是可能的,如果你接受它很可能会发生,你提出的观点,你知道,它如何出错,这是一个有效的问题,没有这个问题的答案,那么你就陷入了我所谓的“大猩猩问题”,你知道,大猩猩面临的问题,他们创造了比他们更聪明的东西,即我们,几百万年前,现在他们陷入了深深的困境,是的,他们无能为力,他们失去了控制权,他们未能解决控制人类的控制问题,所以他们失败了,所以我们不想处于这种情况,如果大猩猩问题是你拥有的唯一表述,那么你无能为力,除了说“好吧,我们应该尝试停止”,我们不应该制造人类,或者在这种情况下,不制造人工智能,我认为这真的很难做到,我实际上并没有提议这是一个可行的行动方案,我也认为,如果得到妥善控制,人工智能可能非常有益,但对我来说,似乎有一个共识,主要的失败模式之一是这种失控,我们创造了追求错误目标的人工智能系统,因为人工智能系统认为它知道目标是什么,它不再有动力听我们的话,所以,可以说,它只是在执行它计算出的最佳解决方案策略,而且,你知道,在这个过程中,它可能需要获取更多资源,以提高成功的可能性,或者通过防御自己免受干扰来防止各种故障模式,我认为这些问题我们可以解决,是的,其他问题大致来说是,你知道,滥用,所以即使我们解决了控制问题,我们制造了完全安全、可控的人工智能系统,那么,为什么,为什么邪恶博士会使用它们?他想接管世界,他会制造不安全的人工智能系统,然后失控,所以这是一个问题,它在某种程度上是一个,你知道,部分是执法问题,部分是,一种文化问题,关于我们如何教人们什么样的 AI 系统是安全的,你谈论自主武器系统,以及几乎所有人都同意,它有很多方式可能出大问题,如果那个伟大的屠杀机器人电影,那种电影很漂亮地说明了这一点,我想谈谈,这是另一个话题,我很乐意谈论,我只想提到我看到的第三种主要的失败模式,即过度使用,不是滥用,而是过度使用人工智能,我们变得过于依赖,我称之为“瓦力问题”,你见过瓦力这部电影吗?所有人类都在飞船上,机器照顾他们的一切,他们只是看电视,喝大杯饮料,他们都肥胖而愚蠢,他们完全失去了人类自主性的概念,你知道,所以,实际上,这就像慢煮青蛙一样,我们会逐渐将我们文明的管理权越来越多地交给机器,就像我们已经在做的,你知道,如果这个过程继续下去,你知道,我们会逐渐从技术的主人变成客人,所以,我们变成了游轮上的客人,你知道,这一个星期还可以,但不是永恒的,你知道,而且几乎不可逆转,一旦你失去了动力,例如,你知道,学习成为一名工程师、医生、卫生操作员,或者我们维护和传播文明的无数种方式中的任何一种,你知道,如果你没有动力去做任何事情,你也不会去做,然后就很难恢复了,当然,这只是可能导致第三种失败模式的技术之一,可能还有其他技术,总的来说,它让我们与之脱节,但区别在于,就运行我们文明的知识而言,你知道,到目前为止,我们别无选择,只能将它灌输到人们的头脑中,你知道,如果你,不是我们和谷歌,我的意思是,所以总的来说是软件,所以我可能,如果计算机总的来说,但你知道,关于卫生系统如何运作的知识,你知道,把这些知识灌输到谷歌里是没用的,我的意思是,我们一直把知识写在纸上,但纸张不会运行我们的文明,它只有在从纸张进入人们的头脑时才运行,所以我们一直通过人类的心灵传播文明,我们为此付出了大约一万亿人年的努力,文学,你可以计算出来,是的,但大约有十亿人曾经活过,每个人都花了大约十年时间学习东西,以维持他们的文明,所以这是我们为此付出的努力,一万亿人年的努力,这是描述整个文明的美妙方式,现在我们,你知道,我们有危险地抛弃它,所以这是一个人工智能可以解决的问题,这不是一个技术问题,这是一个,你知道,如果我们做得对,人工智能系统会说,“人类从长远来看不希望成为游轮上的乘客,人类想要自主权,这是人类偏好的一部分,所以,人工智能系统不会为你做这些事情,你必须自己做”,我不会用自动驾驶直升机把你带到珠穆朗玛峰顶,如果你想获得收益,你必须自己爬,等等,但我担心,因为我们目光短浅和懒惰,我们会否决人工智能系统,有一个很棒的短篇故事,我推荐给所有我谈论这个问题的人,叫做“机器停止”,写于 1909 年,伊恩·福斯特,他写了关于大英帝国的小说,以及后来成为 BBC 服装剧的东西,但他写了这篇科幻故事,它对未来有着惊人的设想,它基本上有 iPad,有视频会议,有 MOOC,有计算机和计算机引起的肥胖,我的意思是,字面上的全部内容,人们花时间在参加在线课程或听在线课程,谈论想法,但他们从不走出真实世界,他们没有多少面对面的接触,一切都在网上进行,你知道,我们现在担心的所有事情都在这个故事中被描述了,然后人类变得越来越依赖机器,失去了对事物如何真正运作的了解,然后变得容易崩溃,所以这是一个令人难以置信的惊人故事,对于一个在 1909 年写作的人来说,他能想象到这一切的损失,是的,很少有人比你更代表人工智能,罗素,所以这都是我的错,你经常被提及,斯图尔特·罗素,人工智能专家,对此感到担忧,所以你也应该担心,你是否感到这种负担?我不知道你是否感觉到,但当我与计算机科学以外的人交谈时,他们想到这一点,斯图尔特·罗素担心人工智能安全,你也应该担心,你是否感觉到这种负担?我的意思是,在实际意义上,是的,因为我每天都会收到,你知道,几十次,有时是 25 次邀请,谈论它,接受采访,写新闻文章等等,所以从这个非常实际的意义上说,我看到人们对此感到担忧和真正感兴趣,你是否担心你可能错了?就像所有好的科学家一样,当然,我一直担心这一点,我的意思是,我一直以来都是这样工作的,就像我脑子里有一场与自己的辩论,我有一个想法,然后我想,好吧,这怎么会错?或者别人已经有了这个想法?所以我去,你知道,搜索尽可能多的文献,看看是否有人已经想过,或者甚至反驳过它,所以,你知道,我现在正在读很多哲学,因为,你知道,在辩论的形式中,关于功利主义和其他道德公式,我们姑且这么说,人们已经对其中一些问题进行了思考,但你知道,我没有在很多这些辩论中看到的一件事是,关于目标不确定性的重要性的这个特定想法,这就是我们应该如何看待对人类有益的机器,这个关于可证明有益的机器的想法,基于目标中的明确不确定性,你知道,我的直觉是,这是核心,它将需要朝着许多不同的方向进行阐述,而且有很多有益的,是的,但它们,我的意思是,必须是正确的,我们不能负担不起,你知道,含糊不清的有益,因为你知道,每当我们做含糊不清的事情时,都会有漏洞,而超级智能机器的问题是,它们会找到漏洞,就像,你知道,逃税者一样,如果你没有正确地编写税法,人们就会找到漏洞,最终不纳税,你应该这样想,在获得这些定义时,你知道,这是一个非常漫长的过程,你知道,你可以定义数学框架,在该框架内,你可以证明数学定理,是的,这将,这个理论实体将被证明对那个理论实体有益,但该框架可能在某些关键方面与现实世界不符,所以这是一个漫长的过程,思考它,迭代等等,最后一个问题,你还有十秒钟回答,你最喜欢的人工智能科幻电影是什么?我会说《星际穿越》有我最喜欢的机器人,或者《2001 太空漫游》,是的,是的,所以,所以塔尔,星际穿越中的机器人,是机器人应该有的行为方式,我会说《机械姬》在某种程度上,它让你以一种紧张的方式思考我们未来的方向,好吧,斯图尔特,非常感谢你今天的谈话,很高兴。