C# 词典嵌入其他词典的次数是否有实际限制?

C# 词典嵌入其他词典的次数是否有实际限制?,c#,dictionary,C#,Dictionary,我想我能做到: Dictionary<string, <Dictionary<int, int>> targetChapterAdjustments = new Dictionary<string, <Dictionary<int, int>>(); 创建一个将字典作为其定义成员的字典 但这能走多远?是有一个固定的限制,还是一个实际的限制 能给我一本这样的字典吗 Dictionary<string, <Dictionary

我想我能做到:

Dictionary<string, <Dictionary<int, int>> targetChapterAdjustments = new Dictionary<string, <Dictionary<int, int>>();
创建一个将字典作为其定义成员的字典

但这能走多远?是有一个固定的限制,还是一个实际的限制

能给我一本这样的字典吗

Dictionary<string, <Dictionary<int, Dictionary<string, <Dictionary<int, Dictionary<bool, <Dictionary<float, Dictionary<string, <Dictionary<int>>>>>>>>>>>>
…例如

我很想/不想看到创建这样一个类会是什么样子

使现代化 好吧,后卫说服了我;我试过了,但这个:

Dictionary<string, <Dictionary<int, Dictionary<string, <Dictionary<int, Dictionary<bool, <Dictionary<float, Dictionary<string, <Dictionary<int>>>>>>>>>>>> funWithDictionaries = 
    new Dictionary<string, <Dictionary<int, Dictionary<string, <Dictionary<int, Dictionary<bool, <Dictionary<float, Dictionary<string, <Dictionary<int>>>>>>>>>>>>();
…失败,出现多个语法错误

按L.B编辑抱歉,评论太大

这段代码可以编译。你的案子够了吗


C或CLR没有强制执行任意限制。最终会达到的限制是系统内存,但这将应用于任何对象的创建,而不仅仅是嵌套结构


泛型的设计是合理的,并且无论您提供什么类型参数(假设它们是有效的类型),它们都会工作。这意味着任何具体类型都可以替换字典的TKey和TValue部分。我相信预编译器实际上在幕后创建了一个类,具体类型替换了它们相应的类型参数,所以您所做的只是增加它必须做的工作。如果你要构造一个证明,你会发现这种做法对任何数量的嵌套都是合理的,理论上它可能是无限的,当然你在实践中不能这样做。

如果你只是问资源限制,我认为@EvanMcDonaldl的答案是正确的,但是,如果您关心代码设计,您应该避免使用许多嵌套字典,因为它们违反了OOP的许多良好实践,如抽象和OCP

实际上没有限制。但是,如果你发现自己使用了嵌套字典,我建议你退一步,考虑是否应该使用类来更明确地说出正在发生的事情。@ B.Cayyhanon我也更新了你的答案:这是我见过的最搞笑的代码-谢谢!有些猫没有幽默感,但我不是其中之一。你有没有特别的理由想要用这样的数据结构折磨自己?不,我只是好奇它们的局限性。C编译器没有创建一个具有我所理解的具体类型的类,C++编译器用它的模板来描述你所做的事情。运行时JIT和/或CLR必须是使其具体化的东西。@TimS。我不会对此感到惊讶。正如我所说,我不知道那里到底发生了什么,这只是对我的解释。这更像是一个理论问题。我无法想象一个普通人在没有失控的参选国会的欲望的情况下,可能只会浏览几本嵌入式词典,但我只是好奇。好吧,我想那是你的想法。我只是想说明这一点,因为不幸的是,我看到许多开发人员使用了大量嵌套字典。像这样更改或重构代码就像一个字典地狱:
var dict = new Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,Dictionary<string,string>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>();